diff --git a/assets/@braintree-DzxiOROe.js b/assets/@braintree-DzxiOROe.js new file mode 100644 index 0000000000000000000000000000000000000000..7f42c3abf77129806f3b96b63aa0e2830c235616 --- /dev/null +++ b/assets/@braintree-DzxiOROe.js @@ -0,0 +1,2 @@ +var R=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function b(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={},u;function h(){return u||(u=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.sanitizeUrl=e.BLANK_URL=void 0;var o=/^([^\w]*)(javascript|data|vbscript)/im,c=/&#(\w+)(^\w|;)?/g,f=/&(newline|tab);/gi,l=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,d=/^.+(:|:)/gim,s=[".","/"];e.BLANK_URL="about:blank";function v(t){return s.indexOf(t[0])>-1}function m(t){var r=t.replace(l,"");return r.replace(c,function(a,i){return String.fromCharCode(i)})}function g(t){if(!t)return e.BLANK_URL;var r=m(t).replace(f,"").replace(l,"").trim();if(!r)return e.BLANK_URL;if(v(r))return r;var a=r.match(d);if(!a)return r;var i=a[0];return o.test(i)?e.BLANK_URL:r}e.sanitizeUrl=g})(n)),n}var p=h();export{R as c,p as d,b as g}; +//# sourceMappingURL=@braintree-DzxiOROe.js.map diff --git a/assets/@braintree-DzxiOROe.js.map b/assets/@braintree-DzxiOROe.js.map new file mode 100644 index 0000000000000000000000000000000000000000..625e887b35b240aa99244287e69b17aece0fd4a2 --- /dev/null +++ b/assets/@braintree-DzxiOROe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"@braintree-DzxiOROe.js","sources":["../../node_modules/@braintree/sanitize-url/dist/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = exports.BLANK_URL = void 0;\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar htmlCtrlEntityRegex = /&(newline|tab);/gi;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^.+(:|:)/gim;\nvar relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\nfunction isRelativeUrlWithoutProtocol(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return exports.BLANK_URL;\n }\n var sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return exports.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return exports.BLANK_URL;\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n"],"names":["exports","invalidProtocolRegex","htmlEntitiesRegex","htmlCtrlEntityRegex","ctrlCharactersRegex","urlSchemeRegex","relativeFirstCharacters","isRelativeUrlWithoutProtocol","url","decodeHtmlCharacters","str","removedNullByte","match","dec","sanitizeUrl","sanitizedUrl","urlSchemeParseResults","urlScheme"],"mappings":"yQACA,OAAO,eAAcA,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,YAAsBA,EAAA,UAAoB,OAC1C,IAAIC,EAAuB,wCACvBC,EAAoB,mBACpBC,EAAsB,oBACtBC,EAAsB,qDACtBC,EAAiB,oBACjBC,EAA0B,CAAC,IAAK,GAAG,EACvCN,EAAA,UAAoB,cACpB,SAASO,EAA6BC,EAAK,CACvC,OAAOF,EAAwB,QAAQE,EAAI,CAAC,CAAC,EAAI,EACrD,CAEA,SAASC,EAAqBC,EAAK,CAC/B,IAAIC,EAAkBD,EAAI,QAAQN,EAAqB,EAAE,EACzD,OAAOO,EAAgB,QAAQT,EAAmB,SAAUU,EAAOC,EAAK,CACpE,OAAO,OAAO,aAAaA,CAAG,CACtC,CAAK,CACL,CACA,SAASC,EAAYN,EAAK,CACtB,GAAI,CAACA,EACD,OAAOR,EAAQ,UAEnB,IAAIe,EAAeN,EAAqBD,CAAG,EACtC,QAAQL,EAAqB,EAAE,EAC/B,QAAQC,EAAqB,EAAE,EAC/B,KAAI,EACT,GAAI,CAACW,EACD,OAAOf,EAAQ,UAEnB,GAAIO,EAA6BQ,CAAY,EACzC,OAAOA,EAEX,IAAIC,EAAwBD,EAAa,MAAMV,CAAc,EAC7D,GAAI,CAACW,EACD,OAAOD,EAEX,IAAIE,EAAYD,EAAsB,CAAC,EACvC,OAAIf,EAAqB,KAAKgB,CAAS,EAC5BjB,EAAQ,UAEZe,CACX,CACAf,EAAA,YAAsBc","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/@google-CcUHq7Ay.js b/assets/@google-CcUHq7Ay.js new file mode 100644 index 0000000000000000000000000000000000000000..5c68bbde558504a09b5d2c8cad02109294587c22 --- /dev/null +++ b/assets/@google-CcUHq7Ay.js @@ -0,0 +1,130 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */let yt,Tt;function Ct(){return{geminiUrl:yt,vertexUrl:Tt}}function _t(n,e,t,o){var r,l;if(!n?.baseUrl){const a=Ct();return e?(r=a.vertexUrl)!==null&&r!==void 0?r:t:(l=a.geminiUrl)!==null&&l!==void 0?l:o}return n.baseUrl}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class Y{}function T(n,e){const t=/\{([^}]+)\}/g;return n.replace(t,(o,r)=>{if(Object.prototype.hasOwnProperty.call(e,r)){const l=e[r];return l!=null?String(l):""}else throw new Error(`Key '${r}' not found in valueMap.`)})}function s(n,e,t){for(let l=0;l({}));else throw new Error(`Value must be a list given an array path ${a}`);if(Array.isArray(n[d])){const f=n[d];if(Array.isArray(t))for(let u=0;ui(d,e.slice(o+1),t)):t}else return t}else n=n[r]}return n}catch(o){if(o instanceof TypeError)return t;throw o}}function Et(n,e){for(const[t,o]of Object.entries(e)){const r=t.split("."),l=o.split("."),a=new Set;let d=-1;for(let f=0;fd)for(let f=d;f=e.length||typeof n!="object"||n===null)return;const l=e[o];if(l.endsWith("[]")){const a=l.slice(0,-2),d=n;if(a in d&&Array.isArray(d[a]))for(const f of d[a])fe(f,e,t,o+1,r)}else if(l==="*"){if(typeof n=="object"&&n!==null&&!Array.isArray(n)){const a=n,d=Object.keys(a).filter(u=>!u.startsWith("_")&&!r.has(u)),f={};for(const u of d)f[u]=a[u];for(const[u,c]of Object.entries(f)){const p=[];for(const m of t.slice(o))m==="*"?p.push(u):p.push(m);s(a,p,c)}for(const u of d)delete a[u]}}else{const a=n;l in a&&fe(a[l],e,t,o+1,r)}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function _e(n){if(typeof n!="string")throw new Error("fromImageBytes must be a string");return n}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function It(n){const e={},t=i(n,["operationName"]);t!=null&&s(e,["operationName"],t);const o=i(n,["resourceName"]);return o!=null&&s(e,["_url","resourceName"],o),e}function vt(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response","generateVideoResponse"]);return a!=null&&s(e,["response"],St(a)),e}function At(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response"]);return a!=null&&s(e,["response"],Rt(a)),e}function St(n){const e={},t=i(n,["generatedSamples"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Mt(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Rt(n){const e={},t=i(n,["videos"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Pt(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Mt(n){const e={},t=i(n,["video"]);return t!=null&&s(e,["video"],Dt(t)),e}function Pt(n){const e={},t=i(n,["_self"]);return t!=null&&s(e,["video"],xt(t)),e}function Nt(n){const e={},t=i(n,["operationName"]);return t!=null&&s(e,["_url","operationName"],t),e}function wt(n){const e={},t=i(n,["operationName"]);return t!=null&&s(e,["_url","operationName"],t),e}function Dt(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["encodedVideo"]);o!=null&&s(e,["videoBytes"],_e(o));const r=i(n,["encoding"]);return r!=null&&s(e,["mimeType"],r),e}function xt(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["uri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["videoBytes"],_e(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */var Pe;(function(n){n.OUTCOME_UNSPECIFIED="OUTCOME_UNSPECIFIED",n.OUTCOME_OK="OUTCOME_OK",n.OUTCOME_FAILED="OUTCOME_FAILED",n.OUTCOME_DEADLINE_EXCEEDED="OUTCOME_DEADLINE_EXCEEDED"})(Pe||(Pe={}));var Ne;(function(n){n.LANGUAGE_UNSPECIFIED="LANGUAGE_UNSPECIFIED",n.PYTHON="PYTHON"})(Ne||(Ne={}));var we;(function(n){n.SCHEDULING_UNSPECIFIED="SCHEDULING_UNSPECIFIED",n.SILENT="SILENT",n.WHEN_IDLE="WHEN_IDLE",n.INTERRUPT="INTERRUPT"})(we||(we={}));var H;(function(n){n.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",n.STRING="STRING",n.NUMBER="NUMBER",n.INTEGER="INTEGER",n.BOOLEAN="BOOLEAN",n.ARRAY="ARRAY",n.OBJECT="OBJECT",n.NULL="NULL"})(H||(H={}));var De;(function(n){n.HARM_CATEGORY_UNSPECIFIED="HARM_CATEGORY_UNSPECIFIED",n.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",n.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",n.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",n.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT",n.HARM_CATEGORY_CIVIC_INTEGRITY="HARM_CATEGORY_CIVIC_INTEGRITY",n.HARM_CATEGORY_IMAGE_HATE="HARM_CATEGORY_IMAGE_HATE",n.HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT="HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT",n.HARM_CATEGORY_IMAGE_HARASSMENT="HARM_CATEGORY_IMAGE_HARASSMENT",n.HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT="HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT",n.HARM_CATEGORY_JAILBREAK="HARM_CATEGORY_JAILBREAK"})(De||(De={}));var xe;(function(n){n.HARM_BLOCK_METHOD_UNSPECIFIED="HARM_BLOCK_METHOD_UNSPECIFIED",n.SEVERITY="SEVERITY",n.PROBABILITY="PROBABILITY"})(xe||(xe={}));var Ue;(function(n){n.HARM_BLOCK_THRESHOLD_UNSPECIFIED="HARM_BLOCK_THRESHOLD_UNSPECIFIED",n.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",n.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",n.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",n.BLOCK_NONE="BLOCK_NONE",n.OFF="OFF"})(Ue||(Ue={}));var ke;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.MODE_DYNAMIC="MODE_DYNAMIC"})(ke||(ke={}));var Le;(function(n){n.AUTH_TYPE_UNSPECIFIED="AUTH_TYPE_UNSPECIFIED",n.NO_AUTH="NO_AUTH",n.API_KEY_AUTH="API_KEY_AUTH",n.HTTP_BASIC_AUTH="HTTP_BASIC_AUTH",n.GOOGLE_SERVICE_ACCOUNT_AUTH="GOOGLE_SERVICE_ACCOUNT_AUTH",n.OAUTH="OAUTH",n.OIDC_AUTH="OIDC_AUTH"})(Le||(Le={}));var Ve;(function(n){n.API_SPEC_UNSPECIFIED="API_SPEC_UNSPECIFIED",n.SIMPLE_SEARCH="SIMPLE_SEARCH",n.ELASTIC_SEARCH="ELASTIC_SEARCH"})(Ve||(Ve={}));var Fe;(function(n){n.URL_RETRIEVAL_STATUS_UNSPECIFIED="URL_RETRIEVAL_STATUS_UNSPECIFIED",n.URL_RETRIEVAL_STATUS_SUCCESS="URL_RETRIEVAL_STATUS_SUCCESS",n.URL_RETRIEVAL_STATUS_ERROR="URL_RETRIEVAL_STATUS_ERROR",n.URL_RETRIEVAL_STATUS_PAYWALL="URL_RETRIEVAL_STATUS_PAYWALL",n.URL_RETRIEVAL_STATUS_UNSAFE="URL_RETRIEVAL_STATUS_UNSAFE"})(Fe||(Fe={}));var qe;(function(n){n.FINISH_REASON_UNSPECIFIED="FINISH_REASON_UNSPECIFIED",n.STOP="STOP",n.MAX_TOKENS="MAX_TOKENS",n.SAFETY="SAFETY",n.RECITATION="RECITATION",n.LANGUAGE="LANGUAGE",n.OTHER="OTHER",n.BLOCKLIST="BLOCKLIST",n.PROHIBITED_CONTENT="PROHIBITED_CONTENT",n.SPII="SPII",n.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",n.IMAGE_SAFETY="IMAGE_SAFETY",n.UNEXPECTED_TOOL_CALL="UNEXPECTED_TOOL_CALL",n.IMAGE_PROHIBITED_CONTENT="IMAGE_PROHIBITED_CONTENT",n.NO_IMAGE="NO_IMAGE"})(qe||(qe={}));var Ge;(function(n){n.HARM_PROBABILITY_UNSPECIFIED="HARM_PROBABILITY_UNSPECIFIED",n.NEGLIGIBLE="NEGLIGIBLE",n.LOW="LOW",n.MEDIUM="MEDIUM",n.HIGH="HIGH"})(Ge||(Ge={}));var He;(function(n){n.HARM_SEVERITY_UNSPECIFIED="HARM_SEVERITY_UNSPECIFIED",n.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",n.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",n.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",n.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"})(He||(He={}));var Be;(function(n){n.BLOCKED_REASON_UNSPECIFIED="BLOCKED_REASON_UNSPECIFIED",n.SAFETY="SAFETY",n.OTHER="OTHER",n.BLOCKLIST="BLOCKLIST",n.PROHIBITED_CONTENT="PROHIBITED_CONTENT",n.IMAGE_SAFETY="IMAGE_SAFETY",n.MODEL_ARMOR="MODEL_ARMOR",n.JAILBREAK="JAILBREAK"})(Be||(Be={}));var Je;(function(n){n.TRAFFIC_TYPE_UNSPECIFIED="TRAFFIC_TYPE_UNSPECIFIED",n.ON_DEMAND="ON_DEMAND",n.PROVISIONED_THROUGHPUT="PROVISIONED_THROUGHPUT"})(Je||(Je={}));var te;(function(n){n.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",n.TEXT="TEXT",n.IMAGE="IMAGE",n.AUDIO="AUDIO"})(te||(te={}));var Ye;(function(n){n.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",n.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",n.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",n.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH"})(Ye||(Ye={}));var ce;(function(n){n.JOB_STATE_UNSPECIFIED="JOB_STATE_UNSPECIFIED",n.JOB_STATE_QUEUED="JOB_STATE_QUEUED",n.JOB_STATE_PENDING="JOB_STATE_PENDING",n.JOB_STATE_RUNNING="JOB_STATE_RUNNING",n.JOB_STATE_SUCCEEDED="JOB_STATE_SUCCEEDED",n.JOB_STATE_FAILED="JOB_STATE_FAILED",n.JOB_STATE_CANCELLING="JOB_STATE_CANCELLING",n.JOB_STATE_CANCELLED="JOB_STATE_CANCELLED",n.JOB_STATE_PAUSED="JOB_STATE_PAUSED",n.JOB_STATE_EXPIRED="JOB_STATE_EXPIRED",n.JOB_STATE_UPDATING="JOB_STATE_UPDATING",n.JOB_STATE_PARTIALLY_SUCCEEDED="JOB_STATE_PARTIALLY_SUCCEEDED"})(ce||(ce={}));var $e;(function(n){n.TUNING_MODE_UNSPECIFIED="TUNING_MODE_UNSPECIFIED",n.TUNING_MODE_FULL="TUNING_MODE_FULL",n.TUNING_MODE_PEFT_ADAPTER="TUNING_MODE_PEFT_ADAPTER"})($e||($e={}));var We;(function(n){n.ADAPTER_SIZE_UNSPECIFIED="ADAPTER_SIZE_UNSPECIFIED",n.ADAPTER_SIZE_ONE="ADAPTER_SIZE_ONE",n.ADAPTER_SIZE_TWO="ADAPTER_SIZE_TWO",n.ADAPTER_SIZE_FOUR="ADAPTER_SIZE_FOUR",n.ADAPTER_SIZE_EIGHT="ADAPTER_SIZE_EIGHT",n.ADAPTER_SIZE_SIXTEEN="ADAPTER_SIZE_SIXTEEN",n.ADAPTER_SIZE_THIRTY_TWO="ADAPTER_SIZE_THIRTY_TWO"})(We||(We={}));var Ke;(function(n){n.TUNING_TASK_UNSPECIFIED="TUNING_TASK_UNSPECIFIED",n.TUNING_TASK_I2V="TUNING_TASK_I2V",n.TUNING_TASK_T2V="TUNING_TASK_T2V"})(Ke||(Ke={}));var ze;(function(n){n.FEATURE_SELECTION_PREFERENCE_UNSPECIFIED="FEATURE_SELECTION_PREFERENCE_UNSPECIFIED",n.PRIORITIZE_QUALITY="PRIORITIZE_QUALITY",n.BALANCED="BALANCED",n.PRIORITIZE_COST="PRIORITIZE_COST"})(ze||(ze={}));var Xe;(function(n){n.UNSPECIFIED="UNSPECIFIED",n.BLOCKING="BLOCKING",n.NON_BLOCKING="NON_BLOCKING"})(Xe||(Xe={}));var Qe;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.MODE_DYNAMIC="MODE_DYNAMIC"})(Qe||(Qe={}));var be;(function(n){n.ENVIRONMENT_UNSPECIFIED="ENVIRONMENT_UNSPECIFIED",n.ENVIRONMENT_BROWSER="ENVIRONMENT_BROWSER"})(be||(be={}));var Ze;(function(n){n.MODE_UNSPECIFIED="MODE_UNSPECIFIED",n.AUTO="AUTO",n.ANY="ANY",n.NONE="NONE",n.VALIDATED="VALIDATED"})(Ze||(Ze={}));var Oe;(function(n){n.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",n.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",n.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",n.BLOCK_NONE="BLOCK_NONE"})(Oe||(Oe={}));var je;(function(n){n.DONT_ALLOW="DONT_ALLOW",n.ALLOW_ADULT="ALLOW_ADULT",n.ALLOW_ALL="ALLOW_ALL"})(je||(je={}));var en;(function(n){n.auto="auto",n.en="en",n.ja="ja",n.ko="ko",n.hi="hi",n.zh="zh",n.pt="pt",n.es="es"})(en||(en={}));var nn;(function(n){n.MASK_MODE_DEFAULT="MASK_MODE_DEFAULT",n.MASK_MODE_USER_PROVIDED="MASK_MODE_USER_PROVIDED",n.MASK_MODE_BACKGROUND="MASK_MODE_BACKGROUND",n.MASK_MODE_FOREGROUND="MASK_MODE_FOREGROUND",n.MASK_MODE_SEMANTIC="MASK_MODE_SEMANTIC"})(nn||(nn={}));var tn;(function(n){n.CONTROL_TYPE_DEFAULT="CONTROL_TYPE_DEFAULT",n.CONTROL_TYPE_CANNY="CONTROL_TYPE_CANNY",n.CONTROL_TYPE_SCRIBBLE="CONTROL_TYPE_SCRIBBLE",n.CONTROL_TYPE_FACE_MESH="CONTROL_TYPE_FACE_MESH"})(tn||(tn={}));var on;(function(n){n.SUBJECT_TYPE_DEFAULT="SUBJECT_TYPE_DEFAULT",n.SUBJECT_TYPE_PERSON="SUBJECT_TYPE_PERSON",n.SUBJECT_TYPE_ANIMAL="SUBJECT_TYPE_ANIMAL",n.SUBJECT_TYPE_PRODUCT="SUBJECT_TYPE_PRODUCT"})(on||(on={}));var sn;(function(n){n.EDIT_MODE_DEFAULT="EDIT_MODE_DEFAULT",n.EDIT_MODE_INPAINT_REMOVAL="EDIT_MODE_INPAINT_REMOVAL",n.EDIT_MODE_INPAINT_INSERTION="EDIT_MODE_INPAINT_INSERTION",n.EDIT_MODE_OUTPAINT="EDIT_MODE_OUTPAINT",n.EDIT_MODE_CONTROLLED_EDITING="EDIT_MODE_CONTROLLED_EDITING",n.EDIT_MODE_STYLE="EDIT_MODE_STYLE",n.EDIT_MODE_BGSWAP="EDIT_MODE_BGSWAP",n.EDIT_MODE_PRODUCT_IMAGE="EDIT_MODE_PRODUCT_IMAGE"})(sn||(sn={}));var rn;(function(n){n.FOREGROUND="FOREGROUND",n.BACKGROUND="BACKGROUND",n.PROMPT="PROMPT",n.SEMANTIC="SEMANTIC",n.INTERACTIVE="INTERACTIVE"})(rn||(rn={}));var ln;(function(n){n.ASSET="ASSET",n.STYLE="STYLE"})(ln||(ln={}));var an;(function(n){n.INSERT="INSERT",n.REMOVE="REMOVE",n.REMOVE_STATIC="REMOVE_STATIC",n.OUTPAINT="OUTPAINT"})(an||(an={}));var un;(function(n){n.OPTIMIZED="OPTIMIZED",n.LOSSLESS="LOSSLESS"})(un||(un={}));var dn;(function(n){n.STATE_UNSPECIFIED="STATE_UNSPECIFIED",n.PROCESSING="PROCESSING",n.ACTIVE="ACTIVE",n.FAILED="FAILED"})(dn||(dn={}));var fn;(function(n){n.SOURCE_UNSPECIFIED="SOURCE_UNSPECIFIED",n.UPLOADED="UPLOADED",n.GENERATED="GENERATED"})(fn||(fn={}));var cn;(function(n){n.TURN_COMPLETE_REASON_UNSPECIFIED="TURN_COMPLETE_REASON_UNSPECIFIED",n.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",n.RESPONSE_REJECTED="RESPONSE_REJECTED",n.NEED_MORE_INPUT="NEED_MORE_INPUT"})(cn||(cn={}));var pn;(function(n){n.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",n.TEXT="TEXT",n.IMAGE="IMAGE",n.VIDEO="VIDEO",n.AUDIO="AUDIO",n.DOCUMENT="DOCUMENT"})(pn||(pn={}));var mn;(function(n){n.START_SENSITIVITY_UNSPECIFIED="START_SENSITIVITY_UNSPECIFIED",n.START_SENSITIVITY_HIGH="START_SENSITIVITY_HIGH",n.START_SENSITIVITY_LOW="START_SENSITIVITY_LOW"})(mn||(mn={}));var hn;(function(n){n.END_SENSITIVITY_UNSPECIFIED="END_SENSITIVITY_UNSPECIFIED",n.END_SENSITIVITY_HIGH="END_SENSITIVITY_HIGH",n.END_SENSITIVITY_LOW="END_SENSITIVITY_LOW"})(hn||(hn={}));var gn;(function(n){n.ACTIVITY_HANDLING_UNSPECIFIED="ACTIVITY_HANDLING_UNSPECIFIED",n.START_OF_ACTIVITY_INTERRUPTS="START_OF_ACTIVITY_INTERRUPTS",n.NO_INTERRUPTION="NO_INTERRUPTION"})(gn||(gn={}));var yn;(function(n){n.TURN_COVERAGE_UNSPECIFIED="TURN_COVERAGE_UNSPECIFIED",n.TURN_INCLUDES_ONLY_ACTIVITY="TURN_INCLUDES_ONLY_ACTIVITY",n.TURN_INCLUDES_ALL_INPUT="TURN_INCLUDES_ALL_INPUT"})(yn||(yn={}));var Tn;(function(n){n.SCALE_UNSPECIFIED="SCALE_UNSPECIFIED",n.C_MAJOR_A_MINOR="C_MAJOR_A_MINOR",n.D_FLAT_MAJOR_B_FLAT_MINOR="D_FLAT_MAJOR_B_FLAT_MINOR",n.D_MAJOR_B_MINOR="D_MAJOR_B_MINOR",n.E_FLAT_MAJOR_C_MINOR="E_FLAT_MAJOR_C_MINOR",n.E_MAJOR_D_FLAT_MINOR="E_MAJOR_D_FLAT_MINOR",n.F_MAJOR_D_MINOR="F_MAJOR_D_MINOR",n.G_FLAT_MAJOR_E_FLAT_MINOR="G_FLAT_MAJOR_E_FLAT_MINOR",n.G_MAJOR_E_MINOR="G_MAJOR_E_MINOR",n.A_FLAT_MAJOR_F_MINOR="A_FLAT_MAJOR_F_MINOR",n.A_MAJOR_G_FLAT_MINOR="A_MAJOR_G_FLAT_MINOR",n.B_FLAT_MAJOR_G_MINOR="B_FLAT_MAJOR_G_MINOR",n.B_MAJOR_A_FLAT_MINOR="B_MAJOR_A_FLAT_MINOR"})(Tn||(Tn={}));var Cn;(function(n){n.MUSIC_GENERATION_MODE_UNSPECIFIED="MUSIC_GENERATION_MODE_UNSPECIFIED",n.QUALITY="QUALITY",n.DIVERSITY="DIVERSITY",n.VOCALIZATION="VOCALIZATION"})(Cn||(Cn={}));var $;(function(n){n.PLAYBACK_CONTROL_UNSPECIFIED="PLAYBACK_CONTROL_UNSPECIFIED",n.PLAY="PLAY",n.PAUSE="PAUSE",n.STOP="STOP",n.RESET_CONTEXT="RESET_CONTEXT"})($||($={}));class pe{constructor(e){const t={};for(const o of e.headers.entries())t[o[0]]=o[1];this.headers=t,this.responseInternal=e}json(){return this.responseInternal.json()}}class Z{get text(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning text from the first one.");let u="",c=!1;const p=[];for(const m of(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)!==null&&f!==void 0?f:[]){for(const[h,g]of Object.entries(m))h!=="text"&&h!=="thought"&&(g!==null||g!==void 0)&&p.push(h);if(typeof m.text=="string"){if(typeof m.thought=="boolean"&&m.thought)continue;c=!0,u+=m.text}}return p.length>0&&console.warn(`there are non-text parts ${p} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),c?u:void 0}get data(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning data from the first one.");let u="";const c=[];for(const p of(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)!==null&&f!==void 0?f:[]){for(const[m,h]of Object.entries(p))m!=="inlineData"&&(h!==null||h!==void 0)&&c.push(m);p.inlineData&&typeof p.inlineData.data=="string"&&(u+=atob(p.inlineData.data))}return c.length>0&&console.warn(`there are non-data parts ${c} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),u.length>0?btoa(u):void 0}get functionCalls(){var e,t,o,r,l,a,d,f;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning function calls from the first one.");const u=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(c=>c.functionCall).map(c=>c.functionCall).filter(c=>c!==void 0);if(u?.length!==0)return u}get executableCode(){var e,t,o,r,l,a,d,f,u;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning executable code from the first one.");const c=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(p=>p.executableCode).map(p=>p.executableCode).filter(p=>p!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.code}get codeExecutionResult(){var e,t,o,r,l,a,d,f,u;if(((r=(o=(t=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||t===void 0?void 0:t.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning code execution result from the first one.");const c=(f=(d=(a=(l=this.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content)===null||d===void 0?void 0:d.parts)===null||f===void 0?void 0:f.filter(p=>p.codeExecutionResult).map(p=>p.codeExecutionResult).filter(p=>p!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.output}}class _n{}class En{}class Ut{}class kt{}class Lt{}class Vt{}class In{}class vn{}class An{}class Ft{}class oe{_fromAPIResponse({apiResponse:e,isVertexAI:t}){const o=new oe;let r;const l=e;return t?r=At(l):r=vt(l),Object.assign(o,r),o}}class Sn{}class Rn{}class Mn{}class qt{}class Gt{}class Ht{}class Pn{}class Bt{get text(){var e,t,o;let r="",l=!1;const a=[];for(const d of(o=(t=(e=this.serverContent)===null||e===void 0?void 0:e.modelTurn)===null||t===void 0?void 0:t.parts)!==null&&o!==void 0?o:[]){for(const[f,u]of Object.entries(d))f!=="text"&&f!=="thought"&&u!==null&&a.push(f);if(typeof d.text=="string"){if(typeof d.thought=="boolean"&&d.thought)continue;l=!0,r+=d.text}}return a.length>0&&console.warn(`there are non-text parts ${a} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`),l?r:void 0}get data(){var e,t,o;let r="";const l=[];for(const a of(o=(t=(e=this.serverContent)===null||e===void 0?void 0:e.modelTurn)===null||t===void 0?void 0:t.parts)!==null&&o!==void 0?o:[]){for(const[d,f]of Object.entries(a))d!=="inlineData"&&f!==null&&l.push(d);a.inlineData&&typeof a.inlineData.data=="string"&&(r+=atob(a.inlineData.data))}return l.length>0&&console.warn(`there are non-data parts ${l} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),r.length>0?btoa(r):void 0}}class Jt{get audioChunk(){if(this.serverContent&&this.serverContent.audioChunks&&this.serverContent.audioChunks.length>0)return this.serverContent.audioChunks[0]}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function P(n,e){if(!e||typeof e!="string")throw new Error("model is required and must be a string");if(n.isVertexAI()){if(e.startsWith("publishers/")||e.startsWith("projects/")||e.startsWith("models/"))return e;if(e.indexOf("/")>=0){const t=e.split("/",2);return`publishers/${t[0]}/models/${t[1]}`}else return`publishers/google/models/${e}`}else return e.startsWith("models/")||e.startsWith("tunedModels/")?e:`models/${e}`}function Kn(n,e){const t=P(n,e);return t?t.startsWith("publishers/")&&n.isVertexAI()?`projects/${n.getProject()}/locations/${n.getLocation()}/${t}`:t.startsWith("models/")&&n.isVertexAI()?`projects/${n.getProject()}/locations/${n.getLocation()}/publishers/google/${t}`:t:""}function zn(n){return Array.isArray(n)?n.map(e=>ie(e)):[ie(n)]}function ie(n){if(typeof n=="object"&&n!==null)return n;throw new Error(`Could not parse input as Blob. Unsupported blob type: ${typeof n}`)}function Xn(n){const e=ie(n);if(e.mimeType&&e.mimeType.startsWith("image/"))return e;throw new Error(`Unsupported mime type: ${e.mimeType}`)}function Qn(n){const e=ie(n);if(e.mimeType&&e.mimeType.startsWith("audio/"))return e;throw new Error(`Unsupported mime type: ${e.mimeType}`)}function Nn(n){if(n==null)throw new Error("PartUnion is required");if(typeof n=="object")return n;if(typeof n=="string")return{text:n};throw new Error(`Unsupported part type: ${typeof n}`)}function bn(n){if(n==null||Array.isArray(n)&&n.length===0)throw new Error("PartListUnion is required");return Array.isArray(n)?n.map(e=>Nn(e)):[Nn(n)]}function me(n){return n!=null&&typeof n=="object"&&"parts"in n&&Array.isArray(n.parts)}function wn(n){return n!=null&&typeof n=="object"&&"functionCall"in n}function Dn(n){return n!=null&&typeof n=="object"&&"functionResponse"in n}function U(n){if(n==null)throw new Error("ContentUnion is required");return me(n)?n:{role:"user",parts:bn(n)}}function Ee(n,e){if(!e)return[];if(n.isVertexAI()&&Array.isArray(e))return e.flatMap(t=>{const o=U(t);return o.parts&&o.parts.length>0&&o.parts[0].text!==void 0?[o.parts[0].text]:[]});if(n.isVertexAI()){const t=U(e);return t.parts&&t.parts.length>0&&t.parts[0].text!==void 0?[t.parts[0].text]:[]}return Array.isArray(e)?e.map(t=>U(t)):[U(e)]}function L(n){if(n==null||Array.isArray(n)&&n.length===0)throw new Error("contents are required");if(!Array.isArray(n)){if(wn(n)||Dn(n))throw new Error("To specify functionCall or functionResponse parts, please wrap them in a Content object, specifying the role for them");return[U(n)]}const e=[],t=[],o=me(n[0]);for(const r of n){const l=me(r);if(l!=o)throw new Error("Mixing Content and Parts is not supported, please group the parts into a the appropriate Content objects and specify the roles for them");if(l)e.push(r);else{if(wn(r)||Dn(r))throw new Error("To specify functionCall or functionResponse parts, please wrap them, and any other parts, in Content objects as appropriate, specifying the role for them");t.push(r)}}return o||e.push({role:"user",parts:bn(t)}),e}function Yt(n,e){n.includes("null")&&(e.nullable=!0);const t=n.filter(o=>o!=="null");if(t.length===1)e.type=Object.values(H).includes(t[0].toUpperCase())?t[0].toUpperCase():H.TYPE_UNSPECIFIED;else{e.anyOf=[];for(const o of t)e.anyOf.push({type:Object.values(H).includes(o.toUpperCase())?o.toUpperCase():H.TYPE_UNSPECIFIED})}}function W(n){const e={},t=["items"],o=["anyOf"],r=["properties"];if(n.type&&n.anyOf)throw new Error("type and anyOf cannot be both populated.");const l=n.anyOf;l!=null&&l.length==2&&(l[0].type==="null"?(e.nullable=!0,n=l[1]):l[1].type==="null"&&(e.nullable=!0,n=l[0])),n.type instanceof Array&&Yt(n.type,e);for(const[a,d]of Object.entries(n))if(d!=null)if(a=="type"){if(d==="null")throw new Error("type: null can not be the only possible type for the field.");if(d instanceof Array)continue;e.type=Object.values(H).includes(d.toUpperCase())?d.toUpperCase():H.TYPE_UNSPECIFIED}else if(t.includes(a))e[a]=W(d);else if(o.includes(a)){const f=[];for(const u of d){if(u.type=="null"){e.nullable=!0;continue}f.push(W(u))}e[a]=f}else if(r.includes(a)){const f={};for(const[u,c]of Object.entries(d))f[u]=W(c);e[a]=f}else{if(a==="additionalProperties")continue;e[a]=d}return e}function Ie(n){return W(n)}function ve(n){if(typeof n=="object")return n;if(typeof n=="string")return{voiceConfig:{prebuiltVoiceConfig:{voiceName:n}}};throw new Error(`Unsupported speechConfig type: ${typeof n}`)}function Ae(n){if("multiSpeakerVoiceConfig"in n)throw new Error("multiSpeakerVoiceConfig is not supported in the live API.");return n}function X(n){if(n.functionDeclarations)for(const e of n.functionDeclarations)e.parameters&&(Object.keys(e.parameters).includes("$schema")?e.parametersJsonSchema||(e.parametersJsonSchema=e.parameters,delete e.parameters):e.parameters=W(e.parameters)),e.response&&(Object.keys(e.response).includes("$schema")?e.responseJsonSchema||(e.responseJsonSchema=e.response,delete e.response):e.response=W(e.response));return n}function Q(n){if(n==null)throw new Error("tools is required");if(!Array.isArray(n))throw new Error("tools is required and must be an array of Tools");const e=[];for(const t of n)e.push(t);return e}function $t(n,e,t,o=1){const r=!e.startsWith(`${t}/`)&&e.split("/").length===o;return n.isVertexAI()?e.startsWith("projects/")?e:e.startsWith("locations/")?`projects/${n.getProject()}/${e}`:e.startsWith(`${t}/`)?`projects/${n.getProject()}/locations/${n.getLocation()}/${e}`:r?`projects/${n.getProject()}/locations/${n.getLocation()}/${t}/${e}`:e:r?`${t}/${e}`:e}function G(n,e){if(typeof e!="string")throw new Error("name must be a string");return $t(n,e,"cachedContents")}function Zn(n){switch(n){case"STATE_UNSPECIFIED":return"JOB_STATE_UNSPECIFIED";case"CREATING":return"JOB_STATE_RUNNING";case"ACTIVE":return"JOB_STATE_SUCCEEDED";case"FAILED":return"JOB_STATE_FAILED";default:return n}}function B(n){return _e(n)}function Wt(n){return n!=null&&typeof n=="object"&&"name"in n}function Kt(n){return n!=null&&typeof n=="object"&&"video"in n}function zt(n){return n!=null&&typeof n=="object"&&"uri"in n}function On(n){var e;let t;if(Wt(n)&&(t=n.name),!(zt(n)&&(t=n.uri,t===void 0))&&!(Kt(n)&&(t=(e=n.video)===null||e===void 0?void 0:e.uri,t===void 0))){if(typeof n=="string"&&(t=n),t===void 0)throw new Error("Could not extract file name from the provided input.");if(t.startsWith("https://")){const r=t.split("files/")[1].match(/[a-z0-9]+/);if(r===null)throw new Error(`Could not extract file name from URI ${t}`);t=r[0]}else t.startsWith("files/")&&(t=t.split("files/")[1]);return t}}function jn(n,e){let t;return n.isVertexAI()?t=e?"publishers/google/models":"models":t=e?"models":"tunedModels",t}function et(n){for(const e of["models","tunedModels","publisherModels"])if(Xt(n,e))return n[e];return[]}function Xt(n,e){return n!==null&&typeof n=="object"&&e in n}function Qt(n,e={}){const t=n,o={name:t.name,description:t.description,parametersJsonSchema:t.inputSchema};return t.outputSchema&&(o.responseJsonSchema=t.outputSchema),e.behavior&&(o.behavior=e.behavior),{functionDeclarations:[o]}}function bt(n,e={}){const t=[],o=new Set;for(const r of n){const l=r.name;if(o.has(l))throw new Error(`Duplicate function name ${l} found in MCP tools. Please ensure function names are unique.`);o.add(l);const a=Qt(r,e);a.functionDeclarations&&t.push(...a.functionDeclarations)}return{functionDeclarations:t}}function nt(n,e){let t;if(typeof e=="string")if(n.isVertexAI())if(e.startsWith("gs://"))t={format:"jsonl",gcsUri:[e]};else if(e.startsWith("bq://"))t={format:"bigquery",bigqueryUri:e};else throw new Error(`Unsupported string source for Vertex AI: ${e}`);else if(e.startsWith("files/"))t={fileName:e};else throw new Error(`Unsupported string source for Gemini API: ${e}`);else if(Array.isArray(e)){if(n.isVertexAI())throw new Error("InlinedRequest[] is not supported in Vertex AI.");t={inlinedRequests:e}}else t=e;const o=[t.gcsUri,t.bigqueryUri].filter(Boolean).length,r=[t.inlinedRequests,t.fileName].filter(Boolean).length;if(n.isVertexAI()){if(r>0||o!==1)throw new Error("Exactly one of `gcsUri` or `bigqueryUri` must be set for Vertex AI.")}else if(o>0||r!==1)throw new Error("Exactly one of `inlinedRequests`, `fileName`, must be set for Gemini API.");return t}function Zt(n){if(typeof n!="string")return n;const e=n;if(e.startsWith("gs://"))return{format:"jsonl",gcsUri:e};if(e.startsWith("bq://"))return{format:"bigquery",bigqueryUri:e};throw new Error(`Unsupported destination: ${e}`)}function tt(n){if(typeof n!="object"||n===null)return{};const e=n,t=e.inlinedResponses;if(typeof t!="object"||t===null)return n;const r=t.inlinedResponses;if(!Array.isArray(r)||r.length===0)return n;let l=!1;for(const a of r){if(typeof a!="object"||a===null)continue;const f=a.response;if(typeof f!="object"||f===null)continue;if(f.embedding!==void 0){l=!0;break}}return l&&(e.inlinedEmbedContentResponses=e.inlinedResponses,delete e.inlinedResponses),n}function b(n,e){const t=e;if(!n.isVertexAI()){if(/batches\/[^/]+$/.test(t))return t.split("/").pop();throw new Error(`Invalid batch job name: ${t}.`)}if(/^projects\/[^/]+\/locations\/[^/]+\/batchPredictionJobs\/[^/]+$/.test(t))return t.split("/").pop();if(/^\d+$/.test(t))return t;throw new Error(`Invalid batch job name: ${t}.`)}function ot(n){const e=n;return e==="BATCH_STATE_UNSPECIFIED"?"JOB_STATE_UNSPECIFIED":e==="BATCH_STATE_PENDING"?"JOB_STATE_PENDING":e==="BATCH_STATE_RUNNING"?"JOB_STATE_RUNNING":e==="BATCH_STATE_SUCCEEDED"?"JOB_STATE_SUCCEEDED":e==="BATCH_STATE_FAILED"?"JOB_STATE_FAILED":e==="BATCH_STATE_CANCELLED"?"JOB_STATE_CANCELLED":e==="BATCH_STATE_EXPIRED"?"JOB_STATE_EXPIRED":e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function Ot(n){const e={},t=i(n,["responsesFile"]);t!=null&&s(e,["fileName"],t);const o=i(n,["inlinedResponses","inlinedResponses"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>wo(a))),s(e,["inlinedResponses"],l)}const r=i(n,["inlinedEmbedContentResponses","inlinedResponses"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["inlinedEmbedContentResponses"],l)}return e}function jt(n){const e={},t=i(n,["predictionsFormat"]);t!=null&&s(e,["format"],t);const o=i(n,["gcsDestination","outputUriPrefix"]);o!=null&&s(e,["gcsUri"],o);const r=i(n,["bigqueryDestination","outputUri"]);return r!=null&&s(e,["bigqueryUri"],r),e}function eo(n){const e={},t=i(n,["format"]);t!=null&&s(e,["predictionsFormat"],t);const o=i(n,["gcsUri"]);o!=null&&s(e,["gcsDestination","outputUriPrefix"],o);const r=i(n,["bigqueryUri"]);if(r!=null&&s(e,["bigqueryDestination","outputUri"],r),i(n,["fileName"])!==void 0)throw new Error("fileName parameter is not supported in Vertex AI.");if(i(n,["inlinedResponses"])!==void 0)throw new Error("inlinedResponses parameter is not supported in Vertex AI.");if(i(n,["inlinedEmbedContentResponses"])!==void 0)throw new Error("inlinedEmbedContentResponses parameter is not supported in Vertex AI.");return e}function ee(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata","displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["metadata","state"]);r!=null&&s(e,["state"],ot(r));const l=i(n,["metadata","createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["metadata","endTime"]);a!=null&&s(e,["endTime"],a);const d=i(n,["metadata","updateTime"]);d!=null&&s(e,["updateTime"],d);const f=i(n,["metadata","model"]);f!=null&&s(e,["model"],f);const u=i(n,["metadata","output"]);return u!=null&&s(e,["dest"],Ot(tt(u))),e}function he(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],ot(r));const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["createTime"]);a!=null&&s(e,["createTime"],a);const d=i(n,["startTime"]);d!=null&&s(e,["startTime"],d);const f=i(n,["endTime"]);f!=null&&s(e,["endTime"],f);const u=i(n,["updateTime"]);u!=null&&s(e,["updateTime"],u);const c=i(n,["model"]);c!=null&&s(e,["model"],c);const p=i(n,["inputConfig"]);p!=null&&s(e,["src"],no(p));const m=i(n,["outputConfig"]);return m!=null&&s(e,["dest"],jt(tt(m))),e}function no(n){const e={},t=i(n,["instancesFormat"]);t!=null&&s(e,["format"],t);const o=i(n,["gcsSource","uris"]);o!=null&&s(e,["gcsUri"],o);const r=i(n,["bigquerySource","inputUri"]);return r!=null&&s(e,["bigqueryUri"],r),e}function to(n,e){const t={};if(i(e,["format"])!==void 0)throw new Error("format parameter is not supported in Gemini API.");if(i(e,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");if(i(e,["bigqueryUri"])!==void 0)throw new Error("bigqueryUri parameter is not supported in Gemini API.");const o=i(e,["fileName"]);o!=null&&s(t,["fileName"],o);const r=i(e,["inlinedRequests"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>No(n,a))),s(t,["requests","requests"],l)}return t}function oo(n){const e={},t=i(n,["format"]);t!=null&&s(e,["instancesFormat"],t);const o=i(n,["gcsUri"]);o!=null&&s(e,["gcsSource","uris"],o);const r=i(n,["bigqueryUri"]);if(r!=null&&s(e,["bigquerySource","inputUri"],r),i(n,["fileName"])!==void 0)throw new Error("fileName parameter is not supported in Vertex AI.");if(i(n,["inlinedRequests"])!==void 0)throw new Error("inlinedRequests parameter is not supported in Vertex AI.");return e}function io(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function so(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function ro(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function lo(n){const e={},t=i(n,["content"]);t!=null&&s(e,["content"],t);const o=i(n,["citationMetadata"]);o!=null&&s(e,["citationMetadata"],ao(o));const r=i(n,["tokenCount"]);r!=null&&s(e,["tokenCount"],r);const l=i(n,["finishReason"]);l!=null&&s(e,["finishReason"],l);const a=i(n,["urlContextMetadata"]);a!=null&&s(e,["urlContextMetadata"],a);const d=i(n,["avgLogprobs"]);d!=null&&s(e,["avgLogprobs"],d);const f=i(n,["groundingMetadata"]);f!=null&&s(e,["groundingMetadata"],f);const u=i(n,["index"]);u!=null&&s(e,["index"],u);const c=i(n,["logprobsResult"]);c!=null&&s(e,["logprobsResult"],c);const p=i(n,["safetyRatings"]);if(p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>h)),s(e,["safetyRatings"],m)}return e}function ao(n){const e={},t=i(n,["citationSources"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["citations"],o)}return e}function it(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>Fo(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function uo(n,e){const t={},o=i(n,["displayName"]);if(e!==void 0&&o!=null&&s(e,["batch","displayName"],o),i(n,["dest"])!==void 0)throw new Error("dest parameter is not supported in Gemini API.");return t}function fo(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["dest"]);return e!==void 0&&r!=null&&s(e,["outputConfig"],eo(Zt(r))),t}function xn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["batch","inputConfig"],to(n,nt(n,r)));const l=i(e,["config"]);return l!=null&&uo(l,t),t}function co(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["inputConfig"],oo(nt(n,r)));const l=i(e,["config"]);return l!=null&&fo(l,t),t}function po(n,e){const t={},o=i(n,["displayName"]);return e!==void 0&&o!=null&&s(e,["batch","displayName"],o),t}function mo(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["src"]);r!=null&&s(t,["batch","inputConfig"],Eo(n,r));const l=i(e,["config"]);return l!=null&&po(l,t),t}function ho(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function go(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function yo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);return l!=null&&s(e,["error"],l),e}function To(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);return l!=null&&s(e,["error"],l),e}function Co(n,e){const t={},o=i(e,["contents"]);if(o!=null){let l=Ee(n,o);Array.isArray(l)&&(l=l.map(a=>a)),s(t,["requests[]","request","content"],l)}const r=i(e,["config"]);return r!=null&&(s(t,["_self"],_o(r,t)),Et(t,{"requests[].*":"requests[].request.*"})),t}function _o(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["requests[]","taskType"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["requests[]","title"],r);const l=i(n,["outputDimensionality"]);if(e!==void 0&&l!=null&&s(e,["requests[]","outputDimensionality"],l),i(n,["mimeType"])!==void 0)throw new Error("mimeType parameter is not supported in Gemini API.");if(i(n,["autoTruncate"])!==void 0)throw new Error("autoTruncate parameter is not supported in Gemini API.");return t}function Eo(n,e){const t={},o=i(e,["fileName"]);o!=null&&s(t,["file_name"],o);const r=i(e,["inlinedRequests"]);return r!=null&&s(t,["requests"],Co(n,r)),t}function Io(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function vo(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],it(U(r)));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);if(E!=null&&s(o,["responseJsonSchema"],E),i(e,["routingConfig"])!==void 0)throw new Error("routingConfig parameter is not supported in Gemini API.");if(i(e,["modelSelectionConfig"])!==void 0)throw new Error("modelSelectionConfig parameter is not supported in Gemini API.");const C=i(e,["safetySettings"]);if(t!==void 0&&C!=null){let D=C;Array.isArray(D)&&(D=D.map(F=>qo(F))),s(t,["safetySettings"],D)}const v=i(e,["tools"]);if(t!==void 0&&v!=null){let D=Q(v);Array.isArray(D)&&(D=D.map(F=>Go(X(F)))),s(t,["tools"],D)}const S=i(e,["toolConfig"]);if(t!==void 0&&S!=null&&s(t,["toolConfig"],S),i(e,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const R=i(e,["cachedContent"]);t!==void 0&&R!=null&&s(t,["cachedContent"],G(n,R));const M=i(e,["responseModalities"]);M!=null&&s(o,["responseModalities"],M);const x=i(e,["mediaResolution"]);x!=null&&s(o,["mediaResolution"],x);const A=i(e,["speechConfig"]);if(A!=null&&s(o,["speechConfig"],ve(A)),i(e,["audioTimestamp"])!==void 0)throw new Error("audioTimestamp parameter is not supported in Gemini API.");const N=i(e,["thinkingConfig"]);N!=null&&s(o,["thinkingConfig"],N);const k=i(e,["imageConfig"]);return k!=null&&s(o,["imageConfig"],k),o}function Ao(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let f=o;Array.isArray(f)&&(f=f.map(u=>lo(u))),s(e,["candidates"],f)}const r=i(n,["modelVersion"]);r!=null&&s(e,["modelVersion"],r);const l=i(n,["promptFeedback"]);l!=null&&s(e,["promptFeedback"],l);const a=i(n,["responseId"]);a!=null&&s(e,["responseId"],a);const d=i(n,["usageMetadata"]);return d!=null&&s(e,["usageMetadata"],d),e}function So(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function Ro(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],b(n,o)),t}function Mo(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function Po(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function No(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["request","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let d=L(r);Array.isArray(d)&&(d=d.map(f=>it(f))),s(t,["request","contents"],d)}const l=i(e,["metadata"]);l!=null&&s(t,["metadata"],l);const a=i(e,["config"]);return a!=null&&s(t,["request","generationConfig"],vo(n,a,i(t,["request"],{}))),t}function wo(n){const e={},t=i(n,["response"]);t!=null&&s(e,["response"],Ao(t));const o=i(n,["error"]);return o!=null&&s(e,["error"],o),e}function Do(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);if(e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),i(n,["filter"])!==void 0)throw new Error("filter parameter is not supported in Gemini API.");return t}function xo(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function Uo(n){const e={},t=i(n,["config"]);return t!=null&&Do(t,e),e}function ko(n){const e={},t=i(n,["config"]);return t!=null&&xo(t,e),e}function Lo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["operations"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>ee(a))),s(e,["batchJobs"],l)}return e}function Vo(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["batchPredictionJobs"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>he(a))),s(e,["batchJobs"],l)}return e}function Fo(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],io(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],Io(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function qo(n){const e={};if(i(n,["method"])!==void 0)throw new Error("method parameter is not supported in Gemini API.");const t=i(n,["category"]);t!=null&&s(e,["category"],t);const o=i(n,["threshold"]);return o!=null&&s(e,["threshold"],o),e}function Go(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],Po(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],Mo(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */var J;(function(n){n.PAGED_ITEM_BATCH_JOBS="batchJobs",n.PAGED_ITEM_MODELS="models",n.PAGED_ITEM_TUNING_JOBS="tuningJobs",n.PAGED_ITEM_FILES="files",n.PAGED_ITEM_CACHED_CONTENTS="cachedContents"})(J||(J={}));class j{constructor(e,t,o,r){this.pageInternal=[],this.paramsInternal={},this.requestInternal=t,this.init(e,o,r)}init(e,t,o){var r,l;this.nameInternal=e,this.pageInternal=t[this.nameInternal]||[],this.sdkHttpResponseInternal=t?.sdkHttpResponse,this.idxInternal=0;let a={config:{}};!o||Object.keys(o).length===0?a={config:{}}:typeof o=="object"?a=Object.assign({},o):a=o,a.config&&(a.config.pageToken=t.nextPageToken),this.paramsInternal=a,this.pageInternalSize=(l=(r=a.config)===null||r===void 0?void 0:r.pageSize)!==null&&l!==void 0?l:this.pageInternal.length}initNextPage(e){this.init(this.nameInternal,e,this.paramsInternal)}get page(){return this.pageInternal}get name(){return this.nameInternal}get pageSize(){return this.pageInternalSize}get sdkHttpResponse(){return this.sdkHttpResponseInternal}get params(){return this.paramsInternal}get pageLength(){return this.pageInternal.length}getItem(e){return this.pageInternal[e]}[Symbol.asyncIterator](){return{next:async()=>{if(this.idxInternal>=this.pageLength)if(this.hasNextPage())await this.nextPage();else return{value:void 0,done:!0};const e=this.getItem(this.idxInternal);return this.idxInternal+=1,{value:e,done:!1}},return:async()=>({value:void 0,done:!0})}}async nextPage(){if(!this.hasNextPage())throw new Error("No more pages to fetch.");const e=await this.requestInternal(this.params);return this.initNextPage(e),this.page}hasNextPage(){var e;return((e=this.params.config)===null||e===void 0?void 0:e.pageToken)!==void 0}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class Ho extends Y{constructor(e){super(),this.apiClient=e,this.create=async t=>(this.apiClient.isVertexAI()&&(t.config=this.formatDestination(t.src,t.config)),this.createInternal(t)),this.createEmbeddings=async t=>{if(console.warn("batches.createEmbeddings() is experimental and may change without notice."),this.apiClient.isVertexAI())throw new Error("Vertex AI does not support batches.createEmbeddings.");return this.createEmbeddingsInternal(t)},this.list=async(t={})=>new j(J.PAGED_ITEM_BATCH_JOBS,o=>this.listInternal(o),await this.listInternal(t),t)}createInlinedGenerateContentRequest(e){const t=xn(this.apiClient,e),o=t._url,r=T("{model}:batchGenerateContent",o),d=t.batch.inputConfig.requests,f=d.requests,u=[];for(const c of f){const p=Object.assign({},c);if(p.systemInstruction){const m=p.systemInstruction;delete p.systemInstruction;const h=p.request;h.systemInstruction=m,p.request=h}u.push(p)}return d.requests=u,delete t.config,delete t._url,delete t._query,{path:r,body:t}}getGcsUri(e){if(typeof e=="string")return e.startsWith("gs://")?e:void 0;if(!Array.isArray(e)&&e.gcsUri&&e.gcsUri.length>0)return e.gcsUri[0]}getBigqueryUri(e){if(typeof e=="string")return e.startsWith("bq://")?e:void 0;if(!Array.isArray(e))return e.bigqueryUri}formatDestination(e,t){const o=t?Object.assign({},t):{},r=Date.now().toString();if(o.displayName||(o.displayName=`genaiBatchJob_${r}`),o.dest===void 0){const l=this.getGcsUri(e),a=this.getBigqueryUri(e);if(l)l.endsWith(".jsonl")?o.dest=`${l.slice(0,-6)}/dest`:o.dest=`${l}_dest_${r}`;else if(a)o.dest=`${a}_dest_${r}`;else throw new Error("Unsupported source for Vertex AI: No GCS or BigQuery URI found.")}return o}async createInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=co(this.apiClient,e);return d=T("batchPredictionJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>he(c))}else{const u=xn(this.apiClient,e);return d=T("{model}:batchGenerateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ee(c))}}async createEmbeddingsInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=mo(this.apiClient,e);return l=T("{model}:asyncBatchEmbedContent",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>ee(f))}}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Ro(this.apiClient,e);return d=T("batchPredictionJobs/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>he(c))}else{const u=So(this.apiClient,e);return d=T("batches/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ee(c))}}async cancel(e){var t,o,r,l;let a="",d={};if(this.apiClient.isVertexAI()){const f=ro(this.apiClient,e);a=T("batchPredictionJobs/{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal})}else{const f=so(this.apiClient,e);a=T("batches/{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal})}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ko(e);return d=T("batchPredictionJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Vo(c),m=new Pn;return Object.assign(m,p),m})}else{const u=Uo(e);return d=T("batches",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Lo(c),m=new Pn;return Object.assign(m,p),m})}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=go(this.apiClient,e);return d=T("batchPredictionJobs/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>To(c))}else{const u=ho(this.apiClient,e);return d=T("batches/{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>yo(c))}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function Bo(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Un(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>ai(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function Jo(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);e!==void 0&&r!=null&&s(e,["expireTime"],r);const l=i(n,["displayName"]);e!==void 0&&l!=null&&s(e,["displayName"],l);const a=i(n,["contents"]);if(e!==void 0&&a!=null){let c=L(a);Array.isArray(c)&&(c=c.map(p=>Un(p))),s(e,["contents"],c)}const d=i(n,["systemInstruction"]);e!==void 0&&d!=null&&s(e,["systemInstruction"],Un(U(d)));const f=i(n,["tools"]);if(e!==void 0&&f!=null){let c=f;Array.isArray(c)&&(c=c.map(p=>ui(p))),s(e,["tools"],c)}const u=i(n,["toolConfig"]);if(e!==void 0&&u!=null&&s(e,["toolConfig"],u),i(n,["kmsKeyName"])!==void 0)throw new Error("kmsKeyName parameter is not supported in Gemini API.");return t}function Yo(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);e!==void 0&&r!=null&&s(e,["expireTime"],r);const l=i(n,["displayName"]);e!==void 0&&l!=null&&s(e,["displayName"],l);const a=i(n,["contents"]);if(e!==void 0&&a!=null){let p=L(a);Array.isArray(p)&&(p=p.map(m=>m)),s(e,["contents"],p)}const d=i(n,["systemInstruction"]);e!==void 0&&d!=null&&s(e,["systemInstruction"],U(d));const f=i(n,["tools"]);if(e!==void 0&&f!=null){let p=f;Array.isArray(p)&&(p=p.map(m=>di(m))),s(e,["tools"],p)}const u=i(n,["toolConfig"]);e!==void 0&&u!=null&&s(e,["toolConfig"],u);const c=i(n,["kmsKeyName"]);return e!==void 0&&c!=null&&s(e,["encryption_spec","kmsKeyName"],c),t}function $o(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],Kn(n,o));const r=i(e,["config"]);return r!=null&&Jo(r,t),t}function Wo(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["model"],Kn(n,o));const r=i(e,["config"]);return r!=null&&Yo(r,t),t}function Ko(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function zo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function Xo(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Qo(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function bo(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Zo(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function Oo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function jo(n,e){const t={},o=i(e,["name"]);return o!=null&&s(t,["_url","name"],G(n,o)),t}function ei(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function ni(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function ti(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function oi(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function ii(n){const e={},t=i(n,["config"]);return t!=null&&ti(t,e),e}function si(n){const e={},t=i(n,["config"]);return t!=null&&oi(t,e),e}function ri(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["cachedContents"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["cachedContents"],l)}return e}function li(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["cachedContents"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["cachedContents"],l)}return e}function ai(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],Bo(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],bo(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function ui(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],ni(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],ei(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function di(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>Zo(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function fi(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);return e!==void 0&&r!=null&&s(e,["expireTime"],r),t}function ci(n,e){const t={},o=i(n,["ttl"]);e!==void 0&&o!=null&&s(e,["ttl"],o);const r=i(n,["expireTime"]);return e!==void 0&&r!=null&&s(e,["expireTime"],r),t}function pi(n,e){const t={},o=i(e,["name"]);o!=null&&s(t,["_url","name"],G(n,o));const r=i(e,["config"]);return r!=null&&fi(r,t),t}function mi(n,e){const t={},o=i(e,["name"]);o!=null&&s(t,["_url","name"],G(n,o));const r=i(e,["config"]);return r!=null&&ci(r,t),t}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class hi extends Y{constructor(e){super(),this.apiClient=e,this.list=async(t={})=>new j(J.PAGED_ITEM_CACHED_CONTENTS,o=>this.listInternal(o),await this.listInternal(t),t)}async create(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Wo(this.apiClient,e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=$o(this.apiClient,e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=jo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=Oo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=zo(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Qo(c),m=new Rn;return Object.assign(m,p),m})}else{const u=Ko(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Xo(c),m=new Rn;return Object.assign(m,p),m})}}async update(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=mi(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>c)}else{const u=pi(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>c)}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=si(e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=li(c),m=new Mn;return Object.assign(m,p),m})}else{const u=ii(e);return d=T("cachedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ri(c),m=new Mn;return Object.assign(m,p),m})}}}function kn(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],o=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&o>=n.length&&(n=void 0),{value:n&&n[o++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(n){return this instanceof w?(this.v=n,this):new w(n)}function K(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=t.apply(n,e||[]),r,l=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),d("next"),d("throw"),d("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(h){return function(g){return Promise.resolve(g).then(h,p)}}function d(h,g){o[h]&&(r[h]=function(y){return new Promise(function(_,I){l.push([h,y,_,I])>1||f(h,y)})},g&&(r[h]=g(r[h])))}function f(h,g){try{u(o[h](g))}catch(y){m(l[0][3],y)}}function u(h){h.value instanceof w?Promise.resolve(h.value.v).then(c,p):m(l[0][2],h)}function c(h){f("next",h)}function p(h){f("throw",h)}function m(h,g){h(g),l.shift(),l.length&&f(l[0][0],l[0][1])}}function O(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof kn=="function"?kn(n):n[Symbol.iterator](),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(l){t[l]=n[l]&&function(a){return new Promise(function(d,f){a=n[l](a),r(d,f,a.done,a.value)})}}function r(l,a,d,f){Promise.resolve(f).then(function(u){l({value:u,done:d})},a)}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function gi(n){var e;if(n.candidates==null||n.candidates.length===0)return!1;const t=(e=n.candidates[0])===null||e===void 0?void 0:e.content;return t===void 0?!1:st(t)}function st(n){if(n.parts===void 0||n.parts.length===0)return!1;for(const e of n.parts)if(e===void 0||Object.keys(e).length===0)return!1;return!0}function yi(n){if(n.length!==0){for(const e of n)if(e.role!=="user"&&e.role!=="model")throw new Error(`Role must be user or model, but got ${e.role}.`)}}function Ln(n){if(n===void 0||n.length===0)return[];const e=[],t=n.length;let o=0;for(;o{var l,a,d;const f=await r,u=(a=(l=f.candidates)===null||l===void 0?void 0:l[0])===null||a===void 0?void 0:a.content,c=f.automaticFunctionCallingHistory,p=this.getHistory(!0).length;let m=[];c!=null&&(m=(d=c.slice(p))!==null&&d!==void 0?d:[]);const h=u?[u]:[];this.recordHistory(o,h,m)})(),await this.sendPromise.catch(()=>{this.sendPromise=Promise.resolve()}),r}async sendMessageStream(e){var t;await this.sendPromise;const o=U(e.message),r=this.modelsModule.generateContentStream({model:this.model,contents:this.getHistory(!0).concat(o),config:(t=e.config)!==null&&t!==void 0?t:this.config});this.sendPromise=r.then(()=>{}).catch(()=>{});const l=await r;return this.processStreamResponse(l,o)}getHistory(e=!1){const t=e?Ln(this.history):this.history;return structuredClone(t)}processStreamResponse(e,t){var o,r;return K(this,arguments,function*(){var a,d,f,u;const c=[];try{for(var p=!0,m=O(e),h;h=yield w(m.next()),a=h.done,!a;p=!0){u=h.value,p=!1;const g=u;if(gi(g)){const y=(r=(o=g.candidates)===null||o===void 0?void 0:o[0])===null||r===void 0?void 0:r.content;y!==void 0&&c.push(y)}yield yield w(g)}}catch(g){d={error:g}}finally{try{!p&&!a&&(f=m.return)&&(yield w(f.call(m)))}finally{if(d)throw d.error}}this.recordHistory(t,c)})}recordHistory(e,t,o){let r=[];t.length>0&&t.every(l=>l.role!==void 0)?r=t:r.push({role:"model",parts:[]}),o&&o.length>0?this.history.push(...Ln(o)):this.history.push(e),this.history.push(...r)}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class se extends Error{constructor(e){super(e.message),this.name="ApiError",this.status=e.status,Object.setPrototypeOf(this,se.prototype)}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function _i(n){const e={},t=i(n,["file"]);return t!=null&&s(e,["file"],t),e}function Ei(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Ii(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","file"],On(t)),e}function vi(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function Ai(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","file"],On(t)),e}function Si(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);return e!==void 0&&r!=null&&s(e,["_query","pageToken"],r),t}function Ri(n){const e={},t=i(n,["config"]);return t!=null&&Si(t,e),e}function Mi(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["files"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["files"],l)}return e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class Pi extends Y{constructor(e){super(),this.apiClient=e,this.list=async(t={})=>new j(J.PAGED_ITEM_FILES,o=>this.listInternal(o),await this.listInternal(t),t)}async upload(e){if(this.apiClient.isVertexAI())throw new Error("Vertex AI does not support uploading files. You can share files through a GCS bucket.");return this.apiClient.uploadFile(e.file,e.config).then(t=>t)}async download(e){await this.apiClient.downloadFile(e)}async listInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ri(e);return l=T("files",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=Mi(f),c=new qt;return Object.assign(c,u),c})}}async createInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=_i(e);return l=T("upload/v1beta/files",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=Ei(f),c=new Gt;return Object.assign(c,u),c})}}async get(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ai(e);return l=T("files/{file}",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>f)}}async delete(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Ii(e);return l=T("files/{file}",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=vi(f),c=new Ht;return Object.assign(c,u),c})}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function ne(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Ni(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>$i(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function wi(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function Di(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function xi(n){const e={},t=i(n,["modelSelectionConfig"]);t!=null&&s(e,["modelConfig"],t);const o=i(n,["audioTimestamp"]);o!=null&&s(e,["audioTimestamp"],o);const r=i(n,["candidateCount"]);r!=null&&s(e,["candidateCount"],r);const l=i(n,["enableAffectiveDialog"]);l!=null&&s(e,["enableAffectiveDialog"],l);const a=i(n,["frequencyPenalty"]);a!=null&&s(e,["frequencyPenalty"],a);const d=i(n,["logprobs"]);d!=null&&s(e,["logprobs"],d);const f=i(n,["maxOutputTokens"]);f!=null&&s(e,["maxOutputTokens"],f);const u=i(n,["mediaResolution"]);u!=null&&s(e,["mediaResolution"],u);const c=i(n,["presencePenalty"]);c!=null&&s(e,["presencePenalty"],c);const p=i(n,["responseJsonSchema"]);p!=null&&s(e,["responseJsonSchema"],p);const m=i(n,["responseLogprobs"]);m!=null&&s(e,["responseLogprobs"],m);const h=i(n,["responseMimeType"]);h!=null&&s(e,["responseMimeType"],h);const g=i(n,["responseModalities"]);g!=null&&s(e,["responseModalities"],g);const y=i(n,["responseSchema"]);y!=null&&s(e,["responseSchema"],y);const _=i(n,["routingConfig"]);_!=null&&s(e,["routingConfig"],_);const I=i(n,["seed"]);I!=null&&s(e,["seed"],I);const E=i(n,["speechConfig"]);E!=null&&s(e,["speechConfig"],rt(E));const C=i(n,["stopSequences"]);C!=null&&s(e,["stopSequences"],C);const v=i(n,["temperature"]);v!=null&&s(e,["temperature"],v);const S=i(n,["thinkingConfig"]);S!=null&&s(e,["thinkingConfig"],S);const R=i(n,["topK"]);R!=null&&s(e,["topK"],R);const M=i(n,["topP"]);if(M!=null&&s(e,["topP"],M),i(n,["enableEnhancedCivicAnswers"])!==void 0)throw new Error("enableEnhancedCivicAnswers parameter is not supported in Vertex AI.");return e}function Ui(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function ki(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function Li(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],o);const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],Ae(p));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],Ni(U(g)));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>Ki(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],Wi(_));const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function Vi(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],xi(o));const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],rt(Ae(p)));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],U(g));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>zi(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],_);const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function Fi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],Li(r,t)),t}function qi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],Vi(r,t)),t}function Gi(n){const e={},t=i(n,["musicGenerationConfig"]);return t!=null&&s(e,["musicGenerationConfig"],t),e}function Hi(n){const e={},t=i(n,["weightedPrompts"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["weightedPrompts"],o)}return e}function Bi(n){const e={},t=i(n,["media"]);if(t!=null){let u=zn(t);Array.isArray(u)&&(u=u.map(c=>ne(c))),s(e,["mediaChunks"],u)}const o=i(n,["audio"]);o!=null&&s(e,["audio"],ne(Qn(o)));const r=i(n,["audioStreamEnd"]);r!=null&&s(e,["audioStreamEnd"],r);const l=i(n,["video"]);l!=null&&s(e,["video"],ne(Xn(l)));const a=i(n,["text"]);a!=null&&s(e,["text"],a);const d=i(n,["activityStart"]);d!=null&&s(e,["activityStart"],d);const f=i(n,["activityEnd"]);return f!=null&&s(e,["activityEnd"],f),e}function Ji(n){const e={},t=i(n,["media"]);if(t!=null){let u=zn(t);Array.isArray(u)&&(u=u.map(c=>c)),s(e,["mediaChunks"],u)}const o=i(n,["audio"]);o!=null&&s(e,["audio"],Qn(o));const r=i(n,["audioStreamEnd"]);r!=null&&s(e,["audioStreamEnd"],r);const l=i(n,["video"]);l!=null&&s(e,["video"],Xn(l));const a=i(n,["text"]);a!=null&&s(e,["text"],a);const d=i(n,["activityStart"]);d!=null&&s(e,["activityStart"],d);const f=i(n,["activityEnd"]);return f!=null&&s(e,["activityEnd"],f),e}function Yi(n){const e={},t=i(n,["setupComplete"]);t!=null&&s(e,["setupComplete"],t);const o=i(n,["serverContent"]);o!=null&&s(e,["serverContent"],o);const r=i(n,["toolCall"]);r!=null&&s(e,["toolCall"],r);const l=i(n,["toolCallCancellation"]);l!=null&&s(e,["toolCallCancellation"],l);const a=i(n,["usageMetadata"]);a!=null&&s(e,["usageMetadata"],Xi(a));const d=i(n,["goAway"]);d!=null&&s(e,["goAway"],d);const f=i(n,["sessionResumptionUpdate"]);return f!=null&&s(e,["sessionResumptionUpdate"],f),e}function $i(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],ne(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],wi(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function Wi(n){const e={},t=i(n,["handle"]);if(t!=null&&s(e,["handle"],t),i(n,["transparent"])!==void 0)throw new Error("transparent parameter is not supported in Gemini API.");return e}function rt(n){const e={},t=i(n,["voiceConfig"]);if(t!=null&&s(e,["voiceConfig"],t),i(n,["multiSpeakerVoiceConfig"])!==void 0)throw new Error("multiSpeakerVoiceConfig parameter is not supported in Vertex AI.");const o=i(n,["languageCode"]);return o!=null&&s(e,["languageCode"],o),e}function Ki(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],ki(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],Ui(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function zi(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>Di(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function Xi(n){const e={},t=i(n,["promptTokenCount"]);t!=null&&s(e,["promptTokenCount"],t);const o=i(n,["cachedContentTokenCount"]);o!=null&&s(e,["cachedContentTokenCount"],o);const r=i(n,["candidatesTokenCount"]);r!=null&&s(e,["responseTokenCount"],r);const l=i(n,["toolUsePromptTokenCount"]);l!=null&&s(e,["toolUsePromptTokenCount"],l);const a=i(n,["thoughtsTokenCount"]);a!=null&&s(e,["thoughtsTokenCount"],a);const d=i(n,["totalTokenCount"]);d!=null&&s(e,["totalTokenCount"],d);const f=i(n,["promptTokensDetails"]);if(f!=null){let h=f;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["promptTokensDetails"],h)}const u=i(n,["cacheTokensDetails"]);if(u!=null){let h=u;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["cacheTokensDetails"],h)}const c=i(n,["candidatesTokensDetails"]);if(c!=null){let h=c;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["responseTokensDetails"],h)}const p=i(n,["toolUsePromptTokensDetails"]);if(p!=null){let h=p;Array.isArray(h)&&(h=h.map(g=>g)),s(e,["toolUsePromptTokensDetails"],h)}const m=i(n,["trafficType"]);return m!=null&&s(e,["trafficType"],m),e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function Qi(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function bi(n){const e={},t=i(n,["content"]);t!=null&&s(e,["content"],t);const o=i(n,["citationMetadata"]);o!=null&&s(e,["citationMetadata"],Zi(o));const r=i(n,["tokenCount"]);r!=null&&s(e,["tokenCount"],r);const l=i(n,["finishReason"]);l!=null&&s(e,["finishReason"],l);const a=i(n,["urlContextMetadata"]);a!=null&&s(e,["urlContextMetadata"],a);const d=i(n,["avgLogprobs"]);d!=null&&s(e,["avgLogprobs"],d);const f=i(n,["groundingMetadata"]);f!=null&&s(e,["groundingMetadata"],f);const u=i(n,["index"]);u!=null&&s(e,["index"],u);const c=i(n,["logprobsResult"]);c!=null&&s(e,["logprobsResult"],c);const p=i(n,["safetyRatings"]);if(p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>h)),s(e,["safetyRatings"],m)}return e}function Zi(n){const e={},t=i(n,["citationSources"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["citations"],o)}return e}function Oi(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let l=L(r);Array.isArray(l)&&(l=l.map(a=>a)),s(t,["contents"],l)}return t}function ji(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["tokensInfo"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>l)),s(e,["tokensInfo"],r)}return e}function es(n){const e={},t=i(n,["values"]);t!=null&&s(e,["values"],t);const o=i(n,["statistics"]);return o!=null&&s(e,["statistics"],ns(o)),e}function ns(n){const e={},t=i(n,["truncated"]);t!=null&&s(e,["truncated"],t);const o=i(n,["token_count"]);return o!=null&&s(e,["tokenCount"],o),e}function re(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>rr(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function ts(n){const e={},t=i(n,["controlType"]);t!=null&&s(e,["controlType"],t);const o=i(n,["enableControlImageComputation"]);return o!=null&&s(e,["computeControl"],o),e}function os(n){const e={};if(i(n,["systemInstruction"])!==void 0)throw new Error("systemInstruction parameter is not supported in Gemini API.");if(i(n,["tools"])!==void 0)throw new Error("tools parameter is not supported in Gemini API.");if(i(n,["generationConfig"])!==void 0)throw new Error("generationConfig parameter is not supported in Gemini API.");return e}function is(n,e){const t={},o=i(n,["systemInstruction"]);e!==void 0&&o!=null&&s(e,["systemInstruction"],U(o));const r=i(n,["tools"]);if(e!==void 0&&r!=null){let a=r;Array.isArray(a)&&(a=a.map(d=>ft(d))),s(e,["tools"],a)}const l=i(n,["generationConfig"]);return e!==void 0&&l!=null&&s(e,["generationConfig"],zs(l)),t}function ss(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>re(d))),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&os(l),t}function rs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&is(l,t),t}function ls(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["totalTokens"]);o!=null&&s(e,["totalTokens"],o);const r=i(n,["cachedContentTokenCount"]);return r!=null&&s(e,["cachedContentTokenCount"],r),e}function as(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["totalTokens"]);return o!=null&&s(e,["totalTokens"],o),e}function us(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function ds(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function fs(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function cs(n){const e={},t=i(n,["sdkHttpResponse"]);return t!=null&&s(e,["sdkHttpResponse"],t),e}function ps(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["negativePrompt"]);e!==void 0&&r!=null&&s(e,["parameters","negativePrompt"],r);const l=i(n,["numberOfImages"]);e!==void 0&&l!=null&&s(e,["parameters","sampleCount"],l);const a=i(n,["aspectRatio"]);e!==void 0&&a!=null&&s(e,["parameters","aspectRatio"],a);const d=i(n,["guidanceScale"]);e!==void 0&&d!=null&&s(e,["parameters","guidanceScale"],d);const f=i(n,["seed"]);e!==void 0&&f!=null&&s(e,["parameters","seed"],f);const u=i(n,["safetyFilterLevel"]);e!==void 0&&u!=null&&s(e,["parameters","safetySetting"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["includeSafetyAttributes"]);e!==void 0&&p!=null&&s(e,["parameters","includeSafetyAttributes"],p);const m=i(n,["includeRaiReason"]);e!==void 0&&m!=null&&s(e,["parameters","includeRaiReason"],m);const h=i(n,["language"]);e!==void 0&&h!=null&&s(e,["parameters","language"],h);const g=i(n,["outputMimeType"]);e!==void 0&&g!=null&&s(e,["parameters","outputOptions","mimeType"],g);const y=i(n,["outputCompressionQuality"]);e!==void 0&&y!=null&&s(e,["parameters","outputOptions","compressionQuality"],y);const _=i(n,["addWatermark"]);e!==void 0&&_!=null&&s(e,["parameters","addWatermark"],_);const I=i(n,["labels"]);e!==void 0&&I!=null&&s(e,["labels"],I);const E=i(n,["editMode"]);e!==void 0&&E!=null&&s(e,["parameters","editMode"],E);const C=i(n,["baseSteps"]);return e!==void 0&&C!=null&&s(e,["parameters","editConfig","baseSteps"],C),t}function ms(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["referenceImages"]);if(l!=null){let d=l;Array.isArray(d)&&(d=d.map(f=>cr(f))),s(t,["instances[0]","referenceImages"],d)}const a=i(e,["config"]);return a!=null&&ps(a,t),t}function hs(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>le(l))),s(e,["generatedImages"],r)}return e}function gs(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["requests[]","taskType"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["requests[]","title"],r);const l=i(n,["outputDimensionality"]);if(e!==void 0&&l!=null&&s(e,["requests[]","outputDimensionality"],l),i(n,["mimeType"])!==void 0)throw new Error("mimeType parameter is not supported in Gemini API.");if(i(n,["autoTruncate"])!==void 0)throw new Error("autoTruncate parameter is not supported in Gemini API.");return t}function ys(n,e){const t={},o=i(n,["taskType"]);e!==void 0&&o!=null&&s(e,["instances[]","task_type"],o);const r=i(n,["title"]);e!==void 0&&r!=null&&s(e,["instances[]","title"],r);const l=i(n,["outputDimensionality"]);e!==void 0&&l!=null&&s(e,["parameters","outputDimensionality"],l);const a=i(n,["mimeType"]);e!==void 0&&a!=null&&s(e,["instances[]","mimeType"],a);const d=i(n,["autoTruncate"]);return e!==void 0&&d!=null&&s(e,["parameters","autoTruncate"],d),t}function Ts(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let d=Ee(n,r);Array.isArray(d)&&(d=d.map(f=>f)),s(t,["requests[]","content"],d)}const l=i(e,["config"]);l!=null&&gs(l,t);const a=i(e,["model"]);return a!==void 0&&s(t,["requests[]","model"],P(n,a)),t}function Cs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=Ee(n,r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["instances[]","content"],a)}const l=i(e,["config"]);return l!=null&&ys(l,t),t}function _s(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["embeddings"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>a)),s(e,["embeddings"],l)}const r=i(n,["metadata"]);return r!=null&&s(e,["metadata"],r),e}function Es(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions[]","embeddings"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>es(a))),s(e,["embeddings"],l)}const r=i(n,["metadata"]);return r!=null&&s(e,["metadata"],r),e}function Is(n){const e={},t=i(n,["endpoint"]);t!=null&&s(e,["name"],t);const o=i(n,["deployedModelId"]);return o!=null&&s(e,["deployedModelId"],o),e}function vs(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function As(n){const e={};if(i(n,["behavior"])!==void 0)throw new Error("behavior parameter is not supported in Vertex AI.");const t=i(n,["description"]);t!=null&&s(e,["description"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["parameters"]);r!=null&&s(e,["parameters"],r);const l=i(n,["parametersJsonSchema"]);l!=null&&s(e,["parametersJsonSchema"],l);const a=i(n,["response"]);a!=null&&s(e,["response"],a);const d=i(n,["responseJsonSchema"]);return d!=null&&s(e,["responseJsonSchema"],d),e}function Ss(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],re(U(r)));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);if(E!=null&&s(o,["responseJsonSchema"],E),i(e,["routingConfig"])!==void 0)throw new Error("routingConfig parameter is not supported in Gemini API.");if(i(e,["modelSelectionConfig"])!==void 0)throw new Error("modelSelectionConfig parameter is not supported in Gemini API.");const C=i(e,["safetySettings"]);if(t!==void 0&&C!=null){let D=C;Array.isArray(D)&&(D=D.map(F=>pr(F))),s(t,["safetySettings"],D)}const v=i(e,["tools"]);if(t!==void 0&&v!=null){let D=Q(v);Array.isArray(D)&&(D=D.map(F=>Cr(X(F)))),s(t,["tools"],D)}const S=i(e,["toolConfig"]);if(t!==void 0&&S!=null&&s(t,["toolConfig"],S),i(e,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const R=i(e,["cachedContent"]);t!==void 0&&R!=null&&s(t,["cachedContent"],G(n,R));const M=i(e,["responseModalities"]);M!=null&&s(o,["responseModalities"],M);const x=i(e,["mediaResolution"]);x!=null&&s(o,["mediaResolution"],x);const A=i(e,["speechConfig"]);if(A!=null&&s(o,["speechConfig"],ve(A)),i(e,["audioTimestamp"])!==void 0)throw new Error("audioTimestamp parameter is not supported in Gemini API.");const N=i(e,["thinkingConfig"]);N!=null&&s(o,["thinkingConfig"],N);const k=i(e,["imageConfig"]);return k!=null&&s(o,["imageConfig"],k),o}function Rs(n,e,t){const o={},r=i(e,["systemInstruction"]);t!==void 0&&r!=null&&s(t,["systemInstruction"],U(r));const l=i(e,["temperature"]);l!=null&&s(o,["temperature"],l);const a=i(e,["topP"]);a!=null&&s(o,["topP"],a);const d=i(e,["topK"]);d!=null&&s(o,["topK"],d);const f=i(e,["candidateCount"]);f!=null&&s(o,["candidateCount"],f);const u=i(e,["maxOutputTokens"]);u!=null&&s(o,["maxOutputTokens"],u);const c=i(e,["stopSequences"]);c!=null&&s(o,["stopSequences"],c);const p=i(e,["responseLogprobs"]);p!=null&&s(o,["responseLogprobs"],p);const m=i(e,["logprobs"]);m!=null&&s(o,["logprobs"],m);const h=i(e,["presencePenalty"]);h!=null&&s(o,["presencePenalty"],h);const g=i(e,["frequencyPenalty"]);g!=null&&s(o,["frequencyPenalty"],g);const y=i(e,["seed"]);y!=null&&s(o,["seed"],y);const _=i(e,["responseMimeType"]);_!=null&&s(o,["responseMimeType"],_);const I=i(e,["responseSchema"]);I!=null&&s(o,["responseSchema"],Ie(I));const E=i(e,["responseJsonSchema"]);E!=null&&s(o,["responseJsonSchema"],E);const C=i(e,["routingConfig"]);C!=null&&s(o,["routingConfig"],C);const v=i(e,["modelSelectionConfig"]);v!=null&&s(o,["modelConfig"],v);const S=i(e,["safetySettings"]);if(t!==void 0&&S!=null){let q=S;Array.isArray(q)&&(q=q.map(ue=>ue)),s(t,["safetySettings"],q)}const R=i(e,["tools"]);if(t!==void 0&&R!=null){let q=Q(R);Array.isArray(q)&&(q=q.map(ue=>ft(X(ue)))),s(t,["tools"],q)}const M=i(e,["toolConfig"]);t!==void 0&&M!=null&&s(t,["toolConfig"],M);const x=i(e,["labels"]);t!==void 0&&x!=null&&s(t,["labels"],x);const A=i(e,["cachedContent"]);t!==void 0&&A!=null&&s(t,["cachedContent"],G(n,A));const N=i(e,["responseModalities"]);N!=null&&s(o,["responseModalities"],N);const k=i(e,["mediaResolution"]);k!=null&&s(o,["mediaResolution"],k);const D=i(e,["speechConfig"]);D!=null&&s(o,["speechConfig"],dt(ve(D)));const F=i(e,["audioTimestamp"]);F!=null&&s(o,["audioTimestamp"],F);const Re=i(e,["thinkingConfig"]);Re!=null&&s(o,["thinkingConfig"],Re);const Me=i(e,["imageConfig"]);return Me!=null&&s(o,["imageConfig"],Me),o}function Vn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>re(d))),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&s(t,["generationConfig"],Ss(n,l,t)),t}function Fn(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["contents"]);if(r!=null){let a=L(r);Array.isArray(a)&&(a=a.map(d=>d)),s(t,["contents"],a)}const l=i(e,["config"]);return l!=null&&s(t,["generationConfig"],Rs(n,l,t)),t}function qn(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let f=o;Array.isArray(f)&&(f=f.map(u=>bi(u))),s(e,["candidates"],f)}const r=i(n,["modelVersion"]);r!=null&&s(e,["modelVersion"],r);const l=i(n,["promptFeedback"]);l!=null&&s(e,["promptFeedback"],l);const a=i(n,["responseId"]);a!=null&&s(e,["responseId"],a);const d=i(n,["usageMetadata"]);return d!=null&&s(e,["usageMetadata"],d),e}function Gn(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["candidates"]);if(o!=null){let u=o;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["candidates"],u)}const r=i(n,["createTime"]);r!=null&&s(e,["createTime"],r);const l=i(n,["modelVersion"]);l!=null&&s(e,["modelVersion"],l);const a=i(n,["promptFeedback"]);a!=null&&s(e,["promptFeedback"],a);const d=i(n,["responseId"]);d!=null&&s(e,["responseId"],d);const f=i(n,["usageMetadata"]);return f!=null&&s(e,["usageMetadata"],f),e}function Ms(n,e){const t={};if(i(n,["outputGcsUri"])!==void 0)throw new Error("outputGcsUri parameter is not supported in Gemini API.");if(i(n,["negativePrompt"])!==void 0)throw new Error("negativePrompt parameter is not supported in Gemini API.");const o=i(n,["numberOfImages"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["aspectRatio"]);e!==void 0&&r!=null&&s(e,["parameters","aspectRatio"],r);const l=i(n,["guidanceScale"]);if(e!==void 0&&l!=null&&s(e,["parameters","guidanceScale"],l),i(n,["seed"])!==void 0)throw new Error("seed parameter is not supported in Gemini API.");const a=i(n,["safetyFilterLevel"]);e!==void 0&&a!=null&&s(e,["parameters","safetySetting"],a);const d=i(n,["personGeneration"]);e!==void 0&&d!=null&&s(e,["parameters","personGeneration"],d);const f=i(n,["includeSafetyAttributes"]);e!==void 0&&f!=null&&s(e,["parameters","includeSafetyAttributes"],f);const u=i(n,["includeRaiReason"]);e!==void 0&&u!=null&&s(e,["parameters","includeRaiReason"],u);const c=i(n,["language"]);e!==void 0&&c!=null&&s(e,["parameters","language"],c);const p=i(n,["outputMimeType"]);e!==void 0&&p!=null&&s(e,["parameters","outputOptions","mimeType"],p);const m=i(n,["outputCompressionQuality"]);if(e!==void 0&&m!=null&&s(e,["parameters","outputOptions","compressionQuality"],m),i(n,["addWatermark"])!==void 0)throw new Error("addWatermark parameter is not supported in Gemini API.");if(i(n,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");const h=i(n,["imageSize"]);if(e!==void 0&&h!=null&&s(e,["parameters","sampleImageSize"],h),i(n,["enhancePrompt"])!==void 0)throw new Error("enhancePrompt parameter is not supported in Gemini API.");return t}function Ps(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["negativePrompt"]);e!==void 0&&r!=null&&s(e,["parameters","negativePrompt"],r);const l=i(n,["numberOfImages"]);e!==void 0&&l!=null&&s(e,["parameters","sampleCount"],l);const a=i(n,["aspectRatio"]);e!==void 0&&a!=null&&s(e,["parameters","aspectRatio"],a);const d=i(n,["guidanceScale"]);e!==void 0&&d!=null&&s(e,["parameters","guidanceScale"],d);const f=i(n,["seed"]);e!==void 0&&f!=null&&s(e,["parameters","seed"],f);const u=i(n,["safetyFilterLevel"]);e!==void 0&&u!=null&&s(e,["parameters","safetySetting"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["includeSafetyAttributes"]);e!==void 0&&p!=null&&s(e,["parameters","includeSafetyAttributes"],p);const m=i(n,["includeRaiReason"]);e!==void 0&&m!=null&&s(e,["parameters","includeRaiReason"],m);const h=i(n,["language"]);e!==void 0&&h!=null&&s(e,["parameters","language"],h);const g=i(n,["outputMimeType"]);e!==void 0&&g!=null&&s(e,["parameters","outputOptions","mimeType"],g);const y=i(n,["outputCompressionQuality"]);e!==void 0&&y!=null&&s(e,["parameters","outputOptions","compressionQuality"],y);const _=i(n,["addWatermark"]);e!==void 0&&_!=null&&s(e,["parameters","addWatermark"],_);const I=i(n,["labels"]);e!==void 0&&I!=null&&s(e,["labels"],I);const E=i(n,["imageSize"]);e!==void 0&&E!=null&&s(e,["parameters","sampleImageSize"],E);const C=i(n,["enhancePrompt"]);return e!==void 0&&C!=null&&s(e,["parameters","enhancePrompt"],C),t}function Ns(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["config"]);return l!=null&&Ms(l,t),t}function ws(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["config"]);return l!=null&&Ps(l,t),t}function Ds(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>Ys(a))),s(e,["generatedImages"],l)}const r=i(n,["positivePromptSafetyAttributes"]);return r!=null&&s(e,["positivePromptSafetyAttributes"],at(r)),e}function xs(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let l=o;Array.isArray(l)&&(l=l.map(a=>le(a))),s(e,["generatedImages"],l)}const r=i(n,["positivePromptSafetyAttributes"]);return r!=null&&s(e,["positivePromptSafetyAttributes"],ut(r)),e}function Us(n,e){const t={},o=i(n,["numberOfVideos"]);if(e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o),i(n,["outputGcsUri"])!==void 0)throw new Error("outputGcsUri parameter is not supported in Gemini API.");if(i(n,["fps"])!==void 0)throw new Error("fps parameter is not supported in Gemini API.");const r=i(n,["durationSeconds"]);if(e!==void 0&&r!=null&&s(e,["parameters","durationSeconds"],r),i(n,["seed"])!==void 0)throw new Error("seed parameter is not supported in Gemini API.");const l=i(n,["aspectRatio"]);e!==void 0&&l!=null&&s(e,["parameters","aspectRatio"],l);const a=i(n,["resolution"]);e!==void 0&&a!=null&&s(e,["parameters","resolution"],a);const d=i(n,["personGeneration"]);if(e!==void 0&&d!=null&&s(e,["parameters","personGeneration"],d),i(n,["pubsubTopic"])!==void 0)throw new Error("pubsubTopic parameter is not supported in Gemini API.");const f=i(n,["negativePrompt"]);e!==void 0&&f!=null&&s(e,["parameters","negativePrompt"],f);const u=i(n,["enhancePrompt"]);if(e!==void 0&&u!=null&&s(e,["parameters","enhancePrompt"],u),i(n,["generateAudio"])!==void 0)throw new Error("generateAudio parameter is not supported in Gemini API.");const c=i(n,["lastFrame"]);e!==void 0&&c!=null&&s(e,["instances[0]","lastFrame"],ae(c));const p=i(n,["referenceImages"]);if(e!==void 0&&p!=null){let m=p;Array.isArray(m)&&(m=m.map(h=>xr(h))),s(e,["instances[0]","referenceImages"],m)}if(i(n,["mask"])!==void 0)throw new Error("mask parameter is not supported in Gemini API.");if(i(n,["compressionQuality"])!==void 0)throw new Error("compressionQuality parameter is not supported in Gemini API.");return t}function ks(n,e){const t={},o=i(n,["numberOfVideos"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["outputGcsUri"]);e!==void 0&&r!=null&&s(e,["parameters","storageUri"],r);const l=i(n,["fps"]);e!==void 0&&l!=null&&s(e,["parameters","fps"],l);const a=i(n,["durationSeconds"]);e!==void 0&&a!=null&&s(e,["parameters","durationSeconds"],a);const d=i(n,["seed"]);e!==void 0&&d!=null&&s(e,["parameters","seed"],d);const f=i(n,["aspectRatio"]);e!==void 0&&f!=null&&s(e,["parameters","aspectRatio"],f);const u=i(n,["resolution"]);e!==void 0&&u!=null&&s(e,["parameters","resolution"],u);const c=i(n,["personGeneration"]);e!==void 0&&c!=null&&s(e,["parameters","personGeneration"],c);const p=i(n,["pubsubTopic"]);e!==void 0&&p!=null&&s(e,["parameters","pubsubTopic"],p);const m=i(n,["negativePrompt"]);e!==void 0&&m!=null&&s(e,["parameters","negativePrompt"],m);const h=i(n,["enhancePrompt"]);e!==void 0&&h!=null&&s(e,["parameters","enhancePrompt"],h);const g=i(n,["generateAudio"]);e!==void 0&&g!=null&&s(e,["parameters","generateAudio"],g);const y=i(n,["lastFrame"]);e!==void 0&&y!=null&&s(e,["instances[0]","lastFrame"],V(y));const _=i(n,["referenceImages"]);if(e!==void 0&&_!=null){let C=_;Array.isArray(C)&&(C=C.map(v=>Ur(v))),s(e,["instances[0]","referenceImages"],C)}const I=i(n,["mask"]);e!==void 0&&I!=null&&s(e,["instances[0]","mask"],Dr(I));const E=i(n,["compressionQuality"]);return e!==void 0&&E!=null&&s(e,["parameters","compressionQuality"],E),t}function Ls(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response","generateVideoResponse"]);return a!=null&&s(e,["response"],Gs(a)),e}function Vs(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["metadata"]);o!=null&&s(e,["metadata"],o);const r=i(n,["done"]);r!=null&&s(e,["done"],r);const l=i(n,["error"]);l!=null&&s(e,["error"],l);const a=i(n,["response"]);return a!=null&&s(e,["response"],Hs(a)),e}function Fs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["image"]);l!=null&&s(t,["instances[0]","image"],ae(l));const a=i(e,["video"]);a!=null&&s(t,["instances[0]","video"],ct(a));const d=i(e,["source"]);d!=null&&Bs(d,t);const f=i(e,["config"]);return f!=null&&Us(f,t),t}function qs(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["prompt"]);r!=null&&s(t,["instances[0]","prompt"],r);const l=i(e,["image"]);l!=null&&s(t,["instances[0]","image"],V(l));const a=i(e,["video"]);a!=null&&s(t,["instances[0]","video"],pt(a));const d=i(e,["source"]);d!=null&&Js(d,t);const f=i(e,["config"]);return f!=null&&ks(f,t),t}function Gs(n){const e={},t=i(n,["generatedSamples"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Ws(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Hs(n){const e={},t=i(n,["videos"]);if(t!=null){let l=t;Array.isArray(l)&&(l=l.map(a=>Ks(a))),s(e,["generatedVideos"],l)}const o=i(n,["raiMediaFilteredCount"]);o!=null&&s(e,["raiMediaFilteredCount"],o);const r=i(n,["raiMediaFilteredReasons"]);return r!=null&&s(e,["raiMediaFilteredReasons"],r),e}function Bs(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],ae(r));const l=i(n,["video"]);return e!==void 0&&l!=null&&s(e,["instances[0]","video"],ct(l)),t}function Js(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],V(r));const l=i(n,["video"]);return e!==void 0&&l!=null&&s(e,["instances[0]","video"],pt(l)),t}function Ys(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["image"],Os(t));const o=i(n,["raiFilteredReason"]);o!=null&&s(e,["raiFilteredReason"],o);const r=i(n,["_self"]);return r!=null&&s(e,["safetyAttributes"],at(r)),e}function le(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["image"],lt(t));const o=i(n,["raiFilteredReason"]);o!=null&&s(e,["raiFilteredReason"],o);const r=i(n,["_self"]);r!=null&&s(e,["safetyAttributes"],ut(r));const l=i(n,["prompt"]);return l!=null&&s(e,["enhancedPrompt"],l),e}function $s(n){const e={},t=i(n,["_self"]);t!=null&&s(e,["mask"],lt(t));const o=i(n,["labels"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>l)),s(e,["labels"],r)}return e}function Ws(n){const e={},t=i(n,["video"]);return t!=null&&s(e,["video"],Nr(t)),e}function Ks(n){const e={},t=i(n,["_self"]);return t!=null&&s(e,["video"],wr(t)),e}function zs(n){const e={},t=i(n,["modelSelectionConfig"]);t!=null&&s(e,["modelConfig"],t);const o=i(n,["audioTimestamp"]);o!=null&&s(e,["audioTimestamp"],o);const r=i(n,["candidateCount"]);r!=null&&s(e,["candidateCount"],r);const l=i(n,["enableAffectiveDialog"]);l!=null&&s(e,["enableAffectiveDialog"],l);const a=i(n,["frequencyPenalty"]);a!=null&&s(e,["frequencyPenalty"],a);const d=i(n,["logprobs"]);d!=null&&s(e,["logprobs"],d);const f=i(n,["maxOutputTokens"]);f!=null&&s(e,["maxOutputTokens"],f);const u=i(n,["mediaResolution"]);u!=null&&s(e,["mediaResolution"],u);const c=i(n,["presencePenalty"]);c!=null&&s(e,["presencePenalty"],c);const p=i(n,["responseJsonSchema"]);p!=null&&s(e,["responseJsonSchema"],p);const m=i(n,["responseLogprobs"]);m!=null&&s(e,["responseLogprobs"],m);const h=i(n,["responseMimeType"]);h!=null&&s(e,["responseMimeType"],h);const g=i(n,["responseModalities"]);g!=null&&s(e,["responseModalities"],g);const y=i(n,["responseSchema"]);y!=null&&s(e,["responseSchema"],y);const _=i(n,["routingConfig"]);_!=null&&s(e,["routingConfig"],_);const I=i(n,["seed"]);I!=null&&s(e,["seed"],I);const E=i(n,["speechConfig"]);E!=null&&s(e,["speechConfig"],dt(E));const C=i(n,["stopSequences"]);C!=null&&s(e,["stopSequences"],C);const v=i(n,["temperature"]);v!=null&&s(e,["temperature"],v);const S=i(n,["thinkingConfig"]);S!=null&&s(e,["thinkingConfig"],S);const R=i(n,["topK"]);R!=null&&s(e,["topK"],R);const M=i(n,["topP"]);if(M!=null&&s(e,["topP"],M),i(n,["enableEnhancedCivicAnswers"])!==void 0)throw new Error("enableEnhancedCivicAnswers parameter is not supported in Vertex AI.");return e}function Xs(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function Qs(n,e){const t={},o=i(e,["model"]);return o!=null&&s(t,["_url","name"],P(n,o)),t}function bs(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function Zs(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function Os(n){const e={},t=i(n,["bytesBase64Encoded"]);t!=null&&s(e,["imageBytes"],B(t));const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function lt(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["imageBytes"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function ae(n){const e={};if(i(n,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");const t=i(n,["imageBytes"]);t!=null&&s(e,["bytesBase64Encoded"],B(t));const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function V(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["imageBytes"]);o!=null&&s(e,["bytesBase64Encoded"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function js(n,e,t){const o={},r=i(e,["pageSize"]);t!==void 0&&r!=null&&s(t,["_query","pageSize"],r);const l=i(e,["pageToken"]);t!==void 0&&l!=null&&s(t,["_query","pageToken"],l);const a=i(e,["filter"]);t!==void 0&&a!=null&&s(t,["_query","filter"],a);const d=i(e,["queryBase"]);return t!==void 0&&d!=null&&s(t,["_url","models_url"],jn(n,d)),o}function er(n,e,t){const o={},r=i(e,["pageSize"]);t!==void 0&&r!=null&&s(t,["_query","pageSize"],r);const l=i(e,["pageToken"]);t!==void 0&&l!=null&&s(t,["_query","pageToken"],l);const a=i(e,["filter"]);t!==void 0&&a!=null&&s(t,["_query","filter"],a);const d=i(e,["queryBase"]);return t!==void 0&&d!=null&&s(t,["_url","models_url"],jn(n,d)),o}function nr(n,e){const t={},o=i(e,["config"]);return o!=null&&js(n,o,t),t}function tr(n,e){const t={},o=i(e,["config"]);return o!=null&&er(n,o,t),t}function or(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["_self"]);if(r!=null){let l=et(r);Array.isArray(l)&&(l=l.map(a=>ge(a))),s(e,["models"],l)}return e}function ir(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["_self"]);if(r!=null){let l=et(r);Array.isArray(l)&&(l=l.map(a=>ye(a))),s(e,["models"],l)}return e}function sr(n){const e={},t=i(n,["maskMode"]);t!=null&&s(e,["maskMode"],t);const o=i(n,["segmentationClasses"]);o!=null&&s(e,["maskClasses"],o);const r=i(n,["maskDilation"]);return r!=null&&s(e,["dilation"],r),e}function ge(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);r!=null&&s(e,["description"],r);const l=i(n,["version"]);l!=null&&s(e,["version"],l);const a=i(n,["_self"]);a!=null&&s(e,["tunedModelInfo"],_r(a));const d=i(n,["inputTokenLimit"]);d!=null&&s(e,["inputTokenLimit"],d);const f=i(n,["outputTokenLimit"]);f!=null&&s(e,["outputTokenLimit"],f);const u=i(n,["supportedGenerationMethods"]);return u!=null&&s(e,["supportedActions"],u),e}function ye(n){const e={},t=i(n,["name"]);t!=null&&s(e,["name"],t);const o=i(n,["displayName"]);o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);r!=null&&s(e,["description"],r);const l=i(n,["versionId"]);l!=null&&s(e,["version"],l);const a=i(n,["deployedModels"]);if(a!=null){let p=a;Array.isArray(p)&&(p=p.map(m=>Is(m))),s(e,["endpoints"],p)}const d=i(n,["labels"]);d!=null&&s(e,["labels"],d);const f=i(n,["_self"]);f!=null&&s(e,["tunedModelInfo"],Er(f));const u=i(n,["defaultCheckpointId"]);u!=null&&s(e,["defaultCheckpointId"],u);const c=i(n,["checkpoints"]);if(c!=null){let p=c;Array.isArray(p)&&(p=p.map(m=>m)),s(e,["checkpoints"],p)}return e}function rr(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],Qi(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],vs(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function lr(n){const e={},t=i(n,["productImage"]);return t!=null&&s(e,["image"],V(t)),e}function ar(n,e){const t={},o=i(n,["numberOfImages"]);e!==void 0&&o!=null&&s(e,["parameters","sampleCount"],o);const r=i(n,["baseSteps"]);e!==void 0&&r!=null&&s(e,["parameters","editConfig","baseSteps"],r);const l=i(n,["outputGcsUri"]);e!==void 0&&l!=null&&s(e,["parameters","storageUri"],l);const a=i(n,["seed"]);e!==void 0&&a!=null&&s(e,["parameters","seed"],a);const d=i(n,["safetyFilterLevel"]);e!==void 0&&d!=null&&s(e,["parameters","safetySetting"],d);const f=i(n,["personGeneration"]);e!==void 0&&f!=null&&s(e,["parameters","personGeneration"],f);const u=i(n,["addWatermark"]);e!==void 0&&u!=null&&s(e,["parameters","addWatermark"],u);const c=i(n,["outputMimeType"]);e!==void 0&&c!=null&&s(e,["parameters","outputOptions","mimeType"],c);const p=i(n,["outputCompressionQuality"]);e!==void 0&&p!=null&&s(e,["parameters","outputOptions","compressionQuality"],p);const m=i(n,["enhancePrompt"]);e!==void 0&&m!=null&&s(e,["parameters","enhancePrompt"],m);const h=i(n,["labels"]);return e!==void 0&&h!=null&&s(e,["labels"],h),t}function ur(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["source"]);r!=null&&fr(r,t);const l=i(e,["config"]);return l!=null&&ar(l,t),t}function dr(n){const e={},t=i(n,["predictions"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>le(r))),s(e,["generatedImages"],o)}return e}function fr(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["personImage"]);e!==void 0&&r!=null&&s(e,["instances[0]","personImage","image"],V(r));const l=i(n,["productImages"]);if(e!==void 0&&l!=null){let a=l;Array.isArray(a)&&(a=a.map(d=>lr(d))),s(e,["instances[0]","productImages"],a)}return t}function cr(n){const e={},t=i(n,["referenceImage"]);t!=null&&s(e,["referenceImage"],V(t));const o=i(n,["referenceId"]);o!=null&&s(e,["referenceId"],o);const r=i(n,["referenceType"]);r!=null&&s(e,["referenceType"],r);const l=i(n,["maskImageConfig"]);l!=null&&s(e,["maskImageConfig"],sr(l));const a=i(n,["controlImageConfig"]);a!=null&&s(e,["controlImageConfig"],ts(a));const d=i(n,["styleImageConfig"]);d!=null&&s(e,["styleImageConfig"],d);const f=i(n,["subjectImageConfig"]);return f!=null&&s(e,["subjectImageConfig"],f),e}function at(n){const e={},t=i(n,["safetyAttributes","categories"]);t!=null&&s(e,["categories"],t);const o=i(n,["safetyAttributes","scores"]);o!=null&&s(e,["scores"],o);const r=i(n,["contentType"]);return r!=null&&s(e,["contentType"],r),e}function ut(n){const e={},t=i(n,["safetyAttributes","categories"]);t!=null&&s(e,["categories"],t);const o=i(n,["safetyAttributes","scores"]);o!=null&&s(e,["scores"],o);const r=i(n,["contentType"]);return r!=null&&s(e,["contentType"],r),e}function pr(n){const e={};if(i(n,["method"])!==void 0)throw new Error("method parameter is not supported in Gemini API.");const t=i(n,["category"]);t!=null&&s(e,["category"],t);const o=i(n,["threshold"]);return o!=null&&s(e,["threshold"],o),e}function mr(n){const e={},t=i(n,["image"]);return t!=null&&s(e,["image"],V(t)),e}function hr(n,e){const t={},o=i(n,["mode"]);e!==void 0&&o!=null&&s(e,["parameters","mode"],o);const r=i(n,["maxPredictions"]);e!==void 0&&r!=null&&s(e,["parameters","maxPredictions"],r);const l=i(n,["confidenceThreshold"]);e!==void 0&&l!=null&&s(e,["parameters","confidenceThreshold"],l);const a=i(n,["maskDilation"]);e!==void 0&&a!=null&&s(e,["parameters","maskDilation"],a);const d=i(n,["binaryColorThreshold"]);e!==void 0&&d!=null&&s(e,["parameters","binaryColorThreshold"],d);const f=i(n,["labels"]);return e!==void 0&&f!=null&&s(e,["labels"],f),t}function gr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["source"]);r!=null&&Tr(r,t);const l=i(e,["config"]);return l!=null&&hr(l,t),t}function yr(n){const e={},t=i(n,["predictions"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>$s(r))),s(e,["generatedMasks"],o)}return e}function Tr(n,e){const t={},o=i(n,["prompt"]);e!==void 0&&o!=null&&s(e,["instances[0]","prompt"],o);const r=i(n,["image"]);e!==void 0&&r!=null&&s(e,["instances[0]","image"],V(r));const l=i(n,["scribbleImage"]);return e!==void 0&&l!=null&&s(e,["instances[0]","scribble"],mr(l)),t}function dt(n){const e={},t=i(n,["voiceConfig"]);if(t!=null&&s(e,["voiceConfig"],t),i(n,["multiSpeakerVoiceConfig"])!==void 0)throw new Error("multiSpeakerVoiceConfig parameter is not supported in Vertex AI.");const o=i(n,["languageCode"]);return o!=null&&s(e,["languageCode"],o),e}function Cr(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],Zs(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],bs(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}function ft(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let p=t;Array.isArray(p)&&(p=p.map(m=>As(m))),s(e,["functionDeclarations"],p)}const o=i(n,["retrieval"]);o!=null&&s(e,["retrieval"],o);const r=i(n,["googleSearch"]);r!=null&&s(e,["googleSearch"],r);const l=i(n,["googleSearchRetrieval"]);l!=null&&s(e,["googleSearchRetrieval"],l);const a=i(n,["enterpriseWebSearch"]);a!=null&&s(e,["enterpriseWebSearch"],a);const d=i(n,["googleMaps"]);d!=null&&s(e,["googleMaps"],d);const f=i(n,["urlContext"]);f!=null&&s(e,["urlContext"],f);const u=i(n,["computerUse"]);u!=null&&s(e,["computerUse"],u);const c=i(n,["codeExecution"]);return c!=null&&s(e,["codeExecution"],c),e}function _r(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["createTime"]);o!=null&&s(e,["createTime"],o);const r=i(n,["updateTime"]);return r!=null&&s(e,["updateTime"],r),e}function Er(n){const e={},t=i(n,["labels","google-vertex-llm-tuning-base-model-id"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["createTime"]);o!=null&&s(e,["createTime"],o);const r=i(n,["updateTime"]);return r!=null&&s(e,["updateTime"],r),e}function Ir(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);e!==void 0&&r!=null&&s(e,["description"],r);const l=i(n,["defaultCheckpointId"]);return e!==void 0&&l!=null&&s(e,["defaultCheckpointId"],l),t}function vr(n,e){const t={},o=i(n,["displayName"]);e!==void 0&&o!=null&&s(e,["displayName"],o);const r=i(n,["description"]);e!==void 0&&r!=null&&s(e,["description"],r);const l=i(n,["defaultCheckpointId"]);return e!==void 0&&l!=null&&s(e,["defaultCheckpointId"],l),t}function Ar(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","name"],P(n,o));const r=i(e,["config"]);return r!=null&&Ir(r,t),t}function Sr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["config"]);return r!=null&&vr(r,t),t}function Rr(n,e){const t={},o=i(n,["outputGcsUri"]);e!==void 0&&o!=null&&s(e,["parameters","storageUri"],o);const r=i(n,["includeRaiReason"]);e!==void 0&&r!=null&&s(e,["parameters","includeRaiReason"],r);const l=i(n,["outputMimeType"]);e!==void 0&&l!=null&&s(e,["parameters","outputOptions","mimeType"],l);const a=i(n,["outputCompressionQuality"]);e!==void 0&&a!=null&&s(e,["parameters","outputOptions","compressionQuality"],a);const d=i(n,["enhanceInputImage"]);e!==void 0&&d!=null&&s(e,["parameters","upscaleConfig","enhanceInputImage"],d);const f=i(n,["imagePreservationFactor"]);e!==void 0&&f!=null&&s(e,["parameters","upscaleConfig","imagePreservationFactor"],f);const u=i(n,["labels"]);e!==void 0&&u!=null&&s(e,["labels"],u);const c=i(n,["numberOfImages"]);e!==void 0&&c!=null&&s(e,["parameters","sampleCount"],c);const p=i(n,["mode"]);return e!==void 0&&p!=null&&s(e,["parameters","mode"],p),t}function Mr(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["_url","model"],P(n,o));const r=i(e,["image"]);r!=null&&s(t,["instances[0]","image"],V(r));const l=i(e,["upscaleFactor"]);l!=null&&s(t,["parameters","upscaleConfig","upscaleFactor"],l);const a=i(e,["config"]);return a!=null&&Rr(a,t),t}function Pr(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["predictions"]);if(o!=null){let r=o;Array.isArray(r)&&(r=r.map(l=>le(l))),s(e,["generatedImages"],r)}return e}function Nr(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["encodedVideo"]);o!=null&&s(e,["videoBytes"],B(o));const r=i(n,["encoding"]);return r!=null&&s(e,["mimeType"],r),e}function wr(n){const e={},t=i(n,["gcsUri"]);t!=null&&s(e,["uri"],t);const o=i(n,["bytesBase64Encoded"]);o!=null&&s(e,["videoBytes"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}function Dr(n){const e={},t=i(n,["image"]);t!=null&&s(e,["_self"],V(t));const o=i(n,["maskMode"]);return o!=null&&s(e,["maskMode"],o),e}function xr(n){const e={},t=i(n,["image"]);t!=null&&s(e,["image"],ae(t));const o=i(n,["referenceType"]);return o!=null&&s(e,["referenceType"],o),e}function Ur(n){const e={},t=i(n,["image"]);t!=null&&s(e,["image"],V(t));const o=i(n,["referenceType"]);return o!=null&&s(e,["referenceType"],o),e}function ct(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["uri"],t);const o=i(n,["videoBytes"]);o!=null&&s(e,["encodedVideo"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["encoding"],r),e}function pt(n){const e={},t=i(n,["uri"]);t!=null&&s(e,["gcsUri"],t);const o=i(n,["videoBytes"]);o!=null&&s(e,["bytesBase64Encoded"],B(o));const r=i(n,["mimeType"]);return r!=null&&s(e,["mimeType"],r),e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const kr="Content-Type",Lr="X-Server-Timeout",Vr="User-Agent",Te="x-goog-api-client",Fr="1.26.0",qr=`google-genai-sdk/${Fr}`,Gr="v1beta1",Hr="v1beta",Hn=/^\s*data: (.*)(?:\n\n|\r\r|\r\n\r\n)/;class Br{constructor(e){var t,o;this.clientOptions=Object.assign(Object.assign({},e),{project:e.project,location:e.location,apiKey:e.apiKey,vertexai:e.vertexai});const r={};this.clientOptions.vertexai?(r.apiVersion=(t=this.clientOptions.apiVersion)!==null&&t!==void 0?t:Gr,r.baseUrl=this.baseUrlFromProjectLocation(),this.normalizeAuthParameters()):(r.apiVersion=(o=this.clientOptions.apiVersion)!==null&&o!==void 0?o:Hr,r.baseUrl="https://generativelanguage.googleapis.com/"),r.headers=this.getDefaultHeaders(),this.clientOptions.httpOptions=r,e.httpOptions&&(this.clientOptions.httpOptions=this.patchHttpOptions(r,e.httpOptions))}baseUrlFromProjectLocation(){return this.clientOptions.project&&this.clientOptions.location&&this.clientOptions.location!=="global"?`https://${this.clientOptions.location}-aiplatform.googleapis.com/`:"https://aiplatform.googleapis.com/"}normalizeAuthParameters(){if(this.clientOptions.project&&this.clientOptions.location){this.clientOptions.apiKey=void 0;return}this.clientOptions.project=void 0,this.clientOptions.location=void 0}isVertexAI(){var e;return(e=this.clientOptions.vertexai)!==null&&e!==void 0?e:!1}getProject(){return this.clientOptions.project}getLocation(){return this.clientOptions.location}getApiVersion(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.apiVersion!==void 0)return this.clientOptions.httpOptions.apiVersion;throw new Error("API version is not set.")}getBaseUrl(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.baseUrl!==void 0)return this.clientOptions.httpOptions.baseUrl;throw new Error("Base URL is not set.")}getRequestUrl(){return this.getRequestUrlInternal(this.clientOptions.httpOptions)}getHeaders(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.headers!==void 0)return this.clientOptions.httpOptions.headers;throw new Error("Headers are not set.")}getRequestUrlInternal(e){if(!e||e.baseUrl===void 0||e.apiVersion===void 0)throw new Error("HTTP options are not correctly set.");const o=[e.baseUrl.endsWith("/")?e.baseUrl.slice(0,-1):e.baseUrl];return e.apiVersion&&e.apiVersion!==""&&o.push(e.apiVersion),o.join("/")}getBaseResourcePath(){return`projects/${this.clientOptions.project}/locations/${this.clientOptions.location}`}getApiKey(){return this.clientOptions.apiKey}getWebsocketBaseUrl(){const e=this.getBaseUrl(),t=new URL(e);return t.protocol=t.protocol=="http:"?"ws":"wss",t.toString()}setBaseUrl(e){if(this.clientOptions.httpOptions)this.clientOptions.httpOptions.baseUrl=e;else throw new Error("HTTP options are not correctly set.")}constructUrl(e,t,o){const r=[this.getRequestUrlInternal(t)];return o&&r.push(this.getBaseResourcePath()),e!==""&&r.push(e),new URL(`${r.join("/")}`)}shouldPrependVertexProjectPath(e){return!(this.clientOptions.apiKey||!this.clientOptions.vertexai||e.path.startsWith("projects/")||e.httpMethod==="GET"&&e.path.startsWith("publishers/google/models"))}async request(e){let t=this.clientOptions.httpOptions;e.httpOptions&&(t=this.patchHttpOptions(this.clientOptions.httpOptions,e.httpOptions));const o=this.shouldPrependVertexProjectPath(e),r=this.constructUrl(e.path,t,o);if(e.queryParams)for(const[a,d]of Object.entries(e.queryParams))r.searchParams.append(a,String(d));let l={};if(e.httpMethod==="GET"){if(e.body&&e.body!=="{}")throw new Error("Request body should be empty for GET request, but got non empty request body")}else l.body=e.body;return l=await this.includeExtraHttpOptionsToRequestInit(l,t,e.abortSignal),this.unaryApiCall(r,l,e.httpMethod)}patchHttpOptions(e,t){const o=JSON.parse(JSON.stringify(e));for(const[r,l]of Object.entries(t))typeof l=="object"?o[r]=Object.assign(Object.assign({},o[r]),l):l!==void 0&&(o[r]=l);return o}async requestStream(e){let t=this.clientOptions.httpOptions;e.httpOptions&&(t=this.patchHttpOptions(this.clientOptions.httpOptions,e.httpOptions));const o=this.shouldPrependVertexProjectPath(e),r=this.constructUrl(e.path,t,o);(!r.searchParams.has("alt")||r.searchParams.get("alt")!=="sse")&&r.searchParams.set("alt","sse");let l={};return l.body=e.body,l=await this.includeExtraHttpOptionsToRequestInit(l,t,e.abortSignal),this.streamApiCall(r,l,e.httpMethod)}async includeExtraHttpOptionsToRequestInit(e,t,o){if(t&&t.timeout||o){const r=new AbortController,l=r.signal;if(t.timeout&&t?.timeout>0){const a=setTimeout(()=>r.abort(),t.timeout);a&&typeof a.unref=="function"&&a.unref()}o&&o.addEventListener("abort",()=>{r.abort()}),e.signal=l}return t&&t.extraBody!==null&&Jr(e,t.extraBody),e.headers=await this.getHeadersInternal(t),e}async unaryApiCall(e,t,o){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:o})).then(async r=>(await Bn(r),new pe(r))).catch(r=>{throw r instanceof Error?r:new Error(JSON.stringify(r))})}async streamApiCall(e,t,o){return this.apiCall(e.toString(),Object.assign(Object.assign({},t),{method:o})).then(async r=>(await Bn(r),this.processStreamResponse(r))).catch(r=>{throw r instanceof Error?r:new Error(JSON.stringify(r))})}processStreamResponse(e){var t;return K(this,arguments,function*(){const r=(t=e?.body)===null||t===void 0?void 0:t.getReader(),l=new TextDecoder("utf-8");if(!r)throw new Error("Response body is empty");try{let a="";for(;;){const{done:d,value:f}=yield w(r.read());if(d){if(a.trim().length>0)throw new Error("Incomplete JSON segment at the end");break}const u=l.decode(f,{stream:!0});try{const p=JSON.parse(u);if("error"in p){const m=JSON.parse(JSON.stringify(p.error)),h=m.status,g=m.code,y=`got status: ${h}. ${JSON.stringify(p)}`;if(g>=400&&g<600)throw new se({message:y,status:g})}}catch(p){if(p.name==="ApiError")throw p}a+=u;let c=a.match(Hn);for(;c;){const p=c[1];try{const m=new Response(p,{headers:e?.headers,status:e?.status,statusText:e?.statusText});yield yield w(new pe(m)),a=a.slice(c[0].length),c=a.match(Hn)}catch(m){throw new Error(`exception parsing stream chunk ${p}. ${m}`)}}}}finally{r.releaseLock()}})}async apiCall(e,t){return fetch(e,t).catch(o=>{throw new Error(`exception ${o} sending request`)})}getDefaultHeaders(){const e={},t=qr+" "+this.clientOptions.userAgentExtra;return e[Vr]=t,e[Te]=t,e[kr]="application/json",e}async getHeadersInternal(e){const t=new Headers;if(e&&e.headers){for(const[o,r]of Object.entries(e.headers))t.append(o,r);e.timeout&&e.timeout>0&&t.append(Lr,String(Math.ceil(e.timeout/1e3)))}return await this.clientOptions.auth.addAuthHeaders(t),t}async uploadFile(e,t){var o;const r={};t!=null&&(r.mimeType=t.mimeType,r.name=t.name,r.displayName=t.displayName),r.name&&!r.name.startsWith("files/")&&(r.name=`files/${r.name}`);const l=this.clientOptions.uploader,a=await l.stat(e);r.sizeBytes=String(a.size);const d=(o=t?.mimeType)!==null&&o!==void 0?o:a.type;if(d===void 0||d==="")throw new Error("Can not determine mimeType. Please provide mimeType in the config.");r.mimeType=d;const f=await this.fetchUploadUrl(r,t);return l.upload(e,f,this)}async downloadFile(e){await this.clientOptions.downloader.download(e,this)}async fetchUploadUrl(e,t){var o;let r={};t?.httpOptions?r=t.httpOptions:r={apiVersion:"",headers:{"Content-Type":"application/json","X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${e.sizeBytes}`,"X-Goog-Upload-Header-Content-Type":`${e.mimeType}`}};const l={file:e},a=await this.request({path:T("upload/v1beta/files",l._url),body:JSON.stringify(l),httpMethod:"POST",httpOptions:r});if(!a||!a?.headers)throw new Error("Server did not return an HttpResponse or the returned HttpResponse did not have headers.");const d=(o=a?.headers)===null||o===void 0?void 0:o["x-goog-upload-url"];if(d===void 0)throw new Error("Failed to get upload url. Server did not return the x-google-upload-url in the headers");return d}}async function Bn(n){var e;if(n===void 0)throw new Error("response is undefined");if(!n.ok){const t=n.status;let o;!((e=n.headers.get("content-type"))===null||e===void 0)&&e.includes("application/json")?o=await n.json():o={error:{message:await n.text(),code:n.status,status:n.statusText}};const r=JSON.stringify(o);throw t>=400&&t<600?new se({message:r,status:t}):new Error(r)}}function Jr(n,e){if(!e||Object.keys(e).length===0)return;if(n.body instanceof Blob){console.warn("includeExtraBodyToRequestInit: extraBody provided but current request body is a Blob. extraBody will be ignored as merging is not supported for Blob bodies.");return}let t={};if(typeof n.body=="string"&&n.body.length>0)try{const l=JSON.parse(n.body);if(typeof l=="object"&&l!==null&&!Array.isArray(l))t=l;else{console.warn("includeExtraBodyToRequestInit: Original request body is valid JSON but not a non-array object. Skip applying extraBody to the request body.");return}}catch{console.warn("includeExtraBodyToRequestInit: Original request body is not valid JSON. Skip applying extraBody to the request body.");return}function o(l,a){const d=Object.assign({},l);for(const f in a)if(Object.prototype.hasOwnProperty.call(a,f)){const u=a[f],c=d[f];u&&typeof u=="object"&&!Array.isArray(u)&&c&&typeof c=="object"&&!Array.isArray(c)?d[f]=o(c,u):(c&&u&&typeof c!=typeof u&&console.warn(`includeExtraBodyToRequestInit:deepMerge: Type mismatch for key "${f}". Original type: ${typeof c}, New type: ${typeof u}. Overwriting.`),d[f]=u)}return d}const r=o(t,e);n.body=JSON.stringify(r)}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Yr="mcp_used/unknown";let $r=!1;function mt(n){for(const e of n)if(Wr(e)||typeof e=="object"&&"inputSchema"in e)return!0;return $r}function ht(n){var e;const t=(e=n[Te])!==null&&e!==void 0?e:"";n[Te]=(t+` ${Yr}`).trimStart()}function Wr(n){return n!==null&&typeof n=="object"&&n instanceof Se}function Kr(n,e=100){return K(this,arguments,function*(){let o,r=0;for(;r0)return;const l={},a=[];for(const c of this.mcpClients)try{for(var d=!0,f=(t=void 0,O(Kr(c))),u;u=await f.next(),e=u.done,!e;d=!0){r=u.value,d=!1;const p=r;a.push(p);const m=p.name;if(l[m])throw new Error(`Duplicate function name ${m} found in MCP tools. Please ensure function names are unique.`);l[m]=c}}catch(p){t={error:p}}finally{try{!d&&!e&&(o=f.return)&&await o.call(f)}finally{if(t)throw t.error}}this.mcpTools=a,this.functionNameToMcpClient=l}async tool(){return await this.initialize(),bt(this.mcpTools,this.config)}async callTool(e){await this.initialize();const t=[];for(const o of e)if(o.name in this.functionNameToMcpClient){const r=this.functionNameToMcpClient[o.name];let l;this.config.timeout&&(l={timeout:this.config.timeout});const a=await r.callTool({name:o.name,arguments:o.args},void 0,l);t.push({functionResponse:{name:o.name,response:a.isError?{error:a}:a}})}return t}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */async function zr(n,e,t){const o=new Jt;let r;t.data instanceof Blob?r=JSON.parse(await t.data.text()):r=JSON.parse(t.data),Object.assign(o,r),e(o)}class Xr{constructor(e,t,o){this.apiClient=e,this.auth=t,this.webSocketFactory=o}async connect(e){var t,o;if(this.apiClient.isVertexAI())throw new Error("Live music is not supported for Vertex AI.");console.warn("Live music generation is experimental and may change in future versions.");const r=this.apiClient.getWebsocketBaseUrl(),l=this.apiClient.getApiVersion(),a=Zr(this.apiClient.getDefaultHeaders()),d=this.apiClient.getApiKey(),f=`${r}/ws/google.ai.generativelanguage.${l}.GenerativeService.BidiGenerateMusic?key=${d}`;let u=()=>{};const c=new Promise(C=>{u=C}),p=e.callbacks,m=function(){u({})},h=this.apiClient,g={onopen:m,onmessage:C=>{zr(h,p.onmessage,C)},onerror:(t=p?.onerror)!==null&&t!==void 0?t:function(C){},onclose:(o=p?.onclose)!==null&&o!==void 0?o:function(C){}},y=this.webSocketFactory.create(f,br(a),g);y.connect(),await c;const E={setup:{model:P(this.apiClient,e.model)}};return y.send(JSON.stringify(E)),new Qr(y,this.apiClient)}}class Qr{constructor(e,t){this.conn=e,this.apiClient=t}async setWeightedPrompts(e){if(!e.weightedPrompts||Object.keys(e.weightedPrompts).length===0)throw new Error("Weighted prompts must be set and contain at least one entry.");const t=Hi(e);this.conn.send(JSON.stringify({clientContent:t}))}async setMusicGenerationConfig(e){e.musicGenerationConfig||(e.musicGenerationConfig={});const t=Gi(e);this.conn.send(JSON.stringify(t))}sendPlaybackControl(e){const t={playbackControl:e};this.conn.send(JSON.stringify(t))}play(){this.sendPlaybackControl($.PLAY)}pause(){this.sendPlaybackControl($.PAUSE)}stop(){this.sendPlaybackControl($.STOP)}resetContext(){this.sendPlaybackControl($.RESET_CONTEXT)}close(){this.conn.close()}}function br(n){const e={};return n.forEach((t,o)=>{e[o]=t}),e}function Zr(n){const e=new Headers;for(const[t,o]of Object.entries(n))e.append(t,o);return e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Or="FunctionResponse request must have an `id` field from the response of a ToolCall.FunctionalCalls in Google AI.";async function jr(n,e,t){const o=new Bt;let r;t.data instanceof Blob?r=await t.data.text():t.data instanceof ArrayBuffer?r=new TextDecoder().decode(t.data):r=t.data;const l=JSON.parse(r);if(n.isVertexAI()){const a=Yi(l);Object.assign(o,a)}else Object.assign(o,l);e(o)}class el{constructor(e,t,o){this.apiClient=e,this.auth=t,this.webSocketFactory=o,this.music=new Xr(this.apiClient,this.auth,this.webSocketFactory)}async connect(e){var t,o,r,l,a,d;if(e.config&&e.config.httpOptions)throw new Error("The Live module does not support httpOptions at request-level in LiveConnectConfig yet. Please use the client-level httpOptions configuration instead.");const f=this.apiClient.getWebsocketBaseUrl(),u=this.apiClient.getApiVersion();let c;const p=this.apiClient.getHeaders();e.config&&e.config.tools&&mt(e.config.tools)&&ht(p);const m=il(p);if(this.apiClient.isVertexAI())c=`${f}/ws/google.cloud.aiplatform.${u}.LlmBidiService/BidiGenerateContent`,await this.auth.addAuthHeaders(m);else{const A=this.apiClient.getApiKey();let N="BidiGenerateContent",k="key";A?.startsWith("auth_tokens/")&&(console.warn("Warning: Ephemeral token support is experimental and may change in future versions."),u!=="v1alpha"&&console.warn("Warning: The SDK's ephemeral token support is in v1alpha only. Please use const ai = new GoogleGenAI({apiKey: token.name, httpOptions: { apiVersion: 'v1alpha' }}); before session connection."),N="BidiGenerateContentConstrained",k="access_token"),c=`${f}/ws/google.ai.generativelanguage.${u}.GenerativeService.${N}?${k}=${A}`}let h=()=>{};const g=new Promise(A=>{h=A}),y=e.callbacks,_=function(){var A;(A=y?.onopen)===null||A===void 0||A.call(y),h({})},I=this.apiClient,E={onopen:_,onmessage:A=>{jr(I,y.onmessage,A)},onerror:(t=y?.onerror)!==null&&t!==void 0?t:function(A){},onclose:(o=y?.onclose)!==null&&o!==void 0?o:function(A){}},C=this.webSocketFactory.create(c,ol(m),E);C.connect(),await g;let v=P(this.apiClient,e.model);if(this.apiClient.isVertexAI()&&v.startsWith("publishers/")){const A=this.apiClient.getProject(),N=this.apiClient.getLocation();v=`projects/${A}/locations/${N}/`+v}let S={};this.apiClient.isVertexAI()&&((r=e.config)===null||r===void 0?void 0:r.responseModalities)===void 0&&(e.config===void 0?e.config={responseModalities:[te.AUDIO]}:e.config.responseModalities=[te.AUDIO]),!((l=e.config)===null||l===void 0)&&l.generationConfig&&console.warn("Setting `LiveConnectConfig.generation_config` is deprecated, please set the fields on `LiveConnectConfig` directly. This will become an error in a future version (not before Q3 2025).");const R=(d=(a=e.config)===null||a===void 0?void 0:a.tools)!==null&&d!==void 0?d:[],M=[];for(const A of R)if(this.isCallableTool(A)){const N=A;M.push(await N.tool())}else M.push(A);M.length>0&&(e.config.tools=M);const x={model:v,config:e.config,callbacks:e.callbacks};return this.apiClient.isVertexAI()?S=qi(this.apiClient,x):S=Fi(this.apiClient,x),delete S.config,C.send(JSON.stringify(S)),new tl(C,this.apiClient)}isCallableTool(e){return"callTool"in e&&typeof e.callTool=="function"}}const nl={turnComplete:!0};class tl{constructor(e,t){this.conn=e,this.apiClient=t}tLiveClientContent(e,t){if(t.turns!==null&&t.turns!==void 0){let o=[];try{o=L(t.turns),e.isVertexAI()||(o=o.map(r=>re(r)))}catch{throw new Error(`Failed to parse client content "turns", type: '${typeof t.turns}'`)}return{clientContent:{turns:o,turnComplete:t.turnComplete}}}return{clientContent:{turnComplete:t.turnComplete}}}tLiveClienttToolResponse(e,t){let o=[];if(t.functionResponses==null)throw new Error("functionResponses is required.");if(Array.isArray(t.functionResponses)?o=t.functionResponses:o=[t.functionResponses],o.length===0)throw new Error("functionResponses is required.");for(const l of o){if(typeof l!="object"||l===null||!("name"in l)||!("response"in l))throw new Error(`Could not parse function response, type '${typeof l}'.`);if(!e.isVertexAI()&&!("id"in l))throw new Error(Or)}return{toolResponse:{functionResponses:o}}}sendClientContent(e){e=Object.assign(Object.assign({},nl),e);const t=this.tLiveClientContent(this.apiClient,e);this.conn.send(JSON.stringify(t))}sendRealtimeInput(e){let t={};this.apiClient.isVertexAI()?t={realtimeInput:Ji(e)}:t={realtimeInput:Bi(e)},this.conn.send(JSON.stringify(t))}sendToolResponse(e){if(e.functionResponses==null)throw new Error("Tool response parameters are required.");const t=this.tLiveClienttToolResponse(this.apiClient,e);this.conn.send(JSON.stringify(t))}close(){this.conn.close()}}function ol(n){const e={};return n.forEach((t,o)=>{e[o]=t}),e}function il(n){const e=new Headers;for(const[t,o]of Object.entries(n))e.append(t,o);return e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Jn=10;function Yn(n){var e,t,o;if(!((e=n?.automaticFunctionCalling)===null||e===void 0)&&e.disable)return!0;let r=!1;for(const a of(t=n?.tools)!==null&&t!==void 0?t:[])if(z(a)){r=!0;break}if(!r)return!0;const l=(o=n?.automaticFunctionCalling)===null||o===void 0?void 0:o.maximumRemoteCalls;return l&&(l<0||!Number.isInteger(l))||l==0?(console.warn("Invalid maximumRemoteCalls value provided for automatic function calling. Disabled automatic function calling. Please provide a valid integer value greater than 0. maximumRemoteCalls provided:",l),!0):!1}function z(n){return"callTool"in n&&typeof n.callTool=="function"}function sl(n){var e,t,o;return(o=(t=(e=n.config)===null||e===void 0?void 0:e.tools)===null||t===void 0?void 0:t.some(r=>z(r)))!==null&&o!==void 0?o:!1}function rl(n){var e,t,o;return(o=(t=(e=n.config)===null||e===void 0?void 0:e.tools)===null||t===void 0?void 0:t.some(r=>!z(r)))!==null&&o!==void 0?o:!1}function $n(n){var e;return!(!((e=n?.automaticFunctionCalling)===null||e===void 0)&&e.ignoreCallHistory)}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class ll extends Y{constructor(e){super(),this.apiClient=e,this.generateContent=async t=>{var o,r,l,a,d;const f=await this.processParamsMaybeAddMcpUsage(t);if(this.maybeMoveToResponseJsonSchem(t),!sl(t)||Yn(t.config))return await this.generateContentInternal(f);if(rl(t))throw new Error("Automatic function calling with CallableTools and Tools is not yet supported.");let u,c;const p=L(f.contents),m=(l=(r=(o=f.config)===null||o===void 0?void 0:o.automaticFunctionCalling)===null||r===void 0?void 0:r.maximumRemoteCalls)!==null&&l!==void 0?l:Jn;let h=0;for(;h{if(this.maybeMoveToResponseJsonSchem(t),Yn(t.config)){const o=await this.processParamsMaybeAddMcpUsage(t);return await this.generateContentStreamInternal(o)}else return await this.processAfcStream(t)},this.generateImages=async t=>await this.generateImagesInternal(t).then(o=>{var r;let l;const a=[];if(o?.generatedImages)for(const f of o.generatedImages)f&&f?.safetyAttributes&&((r=f?.safetyAttributes)===null||r===void 0?void 0:r.contentType)==="Positive Prompt"?l=f?.safetyAttributes:a.push(f);let d;return l?d={generatedImages:a,positivePromptSafetyAttributes:l,sdkHttpResponse:o.sdkHttpResponse}:d={generatedImages:a,sdkHttpResponse:o.sdkHttpResponse},d}),this.list=async t=>{var o;const a={config:Object.assign(Object.assign({},{queryBase:!0}),t?.config)};if(this.apiClient.isVertexAI()&&!a.config.queryBase){if(!((o=a.config)===null||o===void 0)&&o.filter)throw new Error("Filtering tuned models list for Vertex AI is not currently supported");a.config.filter="labels.tune-type:*"}return new j(J.PAGED_ITEM_MODELS,d=>this.listInternal(d),await this.listInternal(a),a)},this.editImage=async t=>{const o={model:t.model,prompt:t.prompt,referenceImages:[],config:t.config};return t.referenceImages&&t.referenceImages&&(o.referenceImages=t.referenceImages.map(r=>r.toReferenceImageAPI())),await this.editImageInternal(o)},this.upscaleImage=async t=>{let o={numberOfImages:1,mode:"upscale"};t.config&&(o=Object.assign(Object.assign({},o),t.config));const r={model:t.model,image:t.image,upscaleFactor:t.upscaleFactor,config:o};return await this.upscaleImageInternal(r)},this.generateVideos=async t=>{var o,r,l,a,d,f;if((t.prompt||t.image||t.video)&&t.source)throw new Error("Source and prompt/image/video are mutually exclusive. Please only use source.");return this.apiClient.isVertexAI()||(!((o=t.video)===null||o===void 0)&&o.uri&&(!((r=t.video)===null||r===void 0)&&r.videoBytes)?t.video={uri:t.video.uri,mimeType:t.video.mimeType}:!((a=(l=t.source)===null||l===void 0?void 0:l.video)===null||a===void 0)&&a.uri&&(!((f=(d=t.source)===null||d===void 0?void 0:d.video)===null||f===void 0)&&f.videoBytes)&&(t.source.video={uri:t.source.video.uri,mimeType:t.source.video.mimeType})),await this.generateVideosInternal(t)}}maybeMoveToResponseJsonSchem(e){e.config&&e.config.responseSchema&&(e.config.responseJsonSchema||Object.keys(e.config.responseSchema).includes("$schema")&&(e.config.responseJsonSchema=e.config.responseSchema,delete e.config.responseSchema))}async processParamsMaybeAddMcpUsage(e){var t,o,r;const l=(t=e.config)===null||t===void 0?void 0:t.tools;if(!l)return e;const a=await Promise.all(l.map(async f=>z(f)?await f.tool():f)),d={model:e.model,contents:e.contents,config:Object.assign(Object.assign({},e.config),{tools:a})};if(d.config.tools=a,e.config&&e.config.tools&&mt(e.config.tools)){const f=(r=(o=e.config.httpOptions)===null||o===void 0?void 0:o.headers)!==null&&r!==void 0?r:{};let u=Object.assign({},f);Object.keys(u).length===0&&(u=this.apiClient.getDefaultHeaders()),ht(u),d.config.httpOptions=Object.assign(Object.assign({},e.config.httpOptions),{headers:u})}return d}async initAfcToolsMap(e){var t,o,r;const l=new Map;for(const a of(o=(t=e.config)===null||t===void 0?void 0:t.tools)!==null&&o!==void 0?o:[])if(z(a)){const d=a,f=await d.tool();for(const u of(r=f.functionDeclarations)!==null&&r!==void 0?r:[]){if(!u.name)throw new Error("Function declaration name is required.");if(l.has(u.name))throw new Error(`Duplicate tool declaration name: ${u.name}`);l.set(u.name,d)}}return l}async processAfcStream(e){var t,o,r;const l=(r=(o=(t=e.config)===null||t===void 0?void 0:t.automaticFunctionCalling)===null||o===void 0?void 0:o.maximumRemoteCalls)!==null&&r!==void 0?r:Jn;let a=!1,d=0;const f=await this.initAfcToolsMap(e);return(function(u,c,p){var m,h;return K(this,arguments,function*(){for(var g,y,_,I;d0){a=!0;const A=new Z;A.candidates=[{content:{role:"user",parts:M}}],yield yield w(A);const N=[];N.push(...x),N.push({role:"user",parts:M});const k=L(p.contents).concat(N);p.contents=k}else break}})})(this,f,e)}async generateContentInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Fn(this.apiClient,e);return d=T("{model}:generateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Gn(c),m=new Z;return Object.assign(m,p),m})}else{const u=Vn(this.apiClient,e);return d=T("{model}:generateContent",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=qn(c),m=new Z;return Object.assign(m,p),m})}}async generateContentStreamInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Fn(this.apiClient,e);return d=T("{model}:streamGenerateContent?alt=sse",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.requestStream({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}),a.then(function(p){return K(this,arguments,function*(){var m,h,g,y;try{for(var _=!0,I=O(p),E;E=yield w(I.next()),m=E.done,!m;_=!0){y=E.value,_=!1;const C=y,v=Gn(yield w(C.json()));v.sdkHttpResponse={headers:C.headers};const S=new Z;Object.assign(S,v),yield yield w(S)}}catch(C){h={error:C}}finally{try{!_&&!m&&(g=I.return)&&(yield w(g.call(I)))}finally{if(h)throw h.error}}})})}else{const u=Vn(this.apiClient,e);return d=T("{model}:streamGenerateContent?alt=sse",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.requestStream({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}),a.then(function(p){return K(this,arguments,function*(){var m,h,g,y;try{for(var _=!0,I=O(p),E;E=yield w(I.next()),m=E.done,!m;_=!0){y=E.value,_=!1;const C=y,v=qn(yield w(C.json()));v.sdkHttpResponse={headers:C.headers};const S=new Z;Object.assign(S,v),yield yield w(S)}}catch(C){h={error:C}}finally{try{!_&&!m&&(g=I.return)&&(yield w(g.call(I)))}finally{if(h)throw h.error}}})})}}async embedContent(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Cs(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Es(c),m=new _n;return Object.assign(m,p),m})}else{const u=Ts(this.apiClient,e);return d=T("{model}:batchEmbedContents",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=_s(c),m=new _n;return Object.assign(m,p),m})}}async generateImagesInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ws(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=xs(c),m=new En;return Object.assign(m,p),m})}else{const u=Ns(this.apiClient,e);return d=T("{model}:predict",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Ds(c),m=new En;return Object.assign(m,p),m})}}async editImageInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=ms(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=hs(f),c=new Ut;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async upscaleImageInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Mr(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=Pr(f),c=new kt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async recontextImage(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=ur(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=dr(f),c=new Lt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async segmentImage(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=gr(this.apiClient,e);return l=T("{model}:predict",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r.then(f=>{const u=yr(f),c=new Vt;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async get(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Qs(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>ye(c))}else{const u=Xs(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ge(c))}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=tr(this.apiClient,e);return d=T("{models_url}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ir(c),m=new In;return Object.assign(m,p),m})}else{const u=nr(this.apiClient,e);return d=T("{models_url}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=or(c),m=new In;return Object.assign(m,p),m})}}async update(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Sr(this.apiClient,e);return d=T("{model}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>ye(c))}else{const u=Ar(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"PATCH",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>ge(c))}}async delete(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=ds(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=cs(c),m=new vn;return Object.assign(m,p),m})}else{const u=us(this.apiClient,e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"DELETE",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=fs(c),m=new vn;return Object.assign(m,p),m})}}async countTokens(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=rs(this.apiClient,e);return d=T("{model}:countTokens",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=as(c),m=new An;return Object.assign(m,p),m})}else{const u=ss(this.apiClient,e);return d=T("{model}:countTokens",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=ls(c),m=new An;return Object.assign(m,p),m})}}async computeTokens(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Oi(this.apiClient,e);return l=T("{model}:computeTokens",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>{const u=ji(f),c=new Ft;return Object.assign(c,u),c})}else throw new Error("This method is only supported by the Vertex AI.")}async generateVideosInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=qs(this.apiClient,e);return d=T("{model}:predictLongRunning",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a.then(c=>{const p=Vs(c),m=new oe;return Object.assign(m,p),m})}else{const u=Fs(this.apiClient,e);return d=T("{model}:predictLongRunning",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a.then(c=>{const p=Ls(c),m=new oe;return Object.assign(m,p),m})}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class al extends Y{constructor(e){super(),this.apiClient=e}async getVideosOperation(e){const t=e.operation,o=e.config;if(t.name===void 0||t.name==="")throw new Error("Operation name is required.");if(this.apiClient.isVertexAI()){const r=t.name.split("/operations/")[0];let l;o&&"httpOptions"in o&&(l=o.httpOptions);const a=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:r,config:{httpOptions:l}});return t._fromAPIResponse({apiResponse:a,isVertexAI:!0})}else{const r=await this.getVideosOperationInternal({operationName:t.name,config:o});return t._fromAPIResponse({apiResponse:r,isVertexAI:!1})}}async get(e){const t=e.operation,o=e.config;if(t.name===void 0||t.name==="")throw new Error("Operation name is required.");if(this.apiClient.isVertexAI()){const r=t.name.split("/operations/")[0];let l;o&&"httpOptions"in o&&(l=o.httpOptions);const a=await this.fetchPredictVideosOperationInternal({operationName:t.name,resourceName:r,config:{httpOptions:l}});return t._fromAPIResponse({apiResponse:a,isVertexAI:!0})}else{const r=await this.getVideosOperationInternal({operationName:t.name,config:o});return t._fromAPIResponse({apiResponse:r,isVertexAI:!1})}}async getVideosOperationInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=wt(e);return d=T("{operationName}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json()),a}else{const u=Nt(e);return d=T("{operationName}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json()),a}}async fetchPredictVideosOperationInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=It(e);return l=T("{resourceName}:fetchPredictOperation",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json()),r}else throw new Error("This method is only supported by the Vertex AI.")}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function ul(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["data"]);t!=null&&s(e,["data"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function dl(n){const e={},t=i(n,["parts"]);if(t!=null){let r=t;Array.isArray(r)&&(r=r.map(l=>Tl(l))),s(e,["parts"],r)}const o=i(n,["role"]);return o!=null&&s(e,["role"],o),e}function fl(n,e,t){const o={},r=i(e,["expireTime"]);t!==void 0&&r!=null&&s(t,["expireTime"],r);const l=i(e,["newSessionExpireTime"]);t!==void 0&&l!=null&&s(t,["newSessionExpireTime"],l);const a=i(e,["uses"]);t!==void 0&&a!=null&&s(t,["uses"],a);const d=i(e,["liveConnectConstraints"]);t!==void 0&&d!=null&&s(t,["bidiGenerateContentSetup"],yl(n,d));const f=i(e,["lockAdditionalFields"]);return t!==void 0&&f!=null&&s(t,["fieldMask"],f),o}function cl(n,e){const t={},o=i(e,["config"]);return o!=null&&s(t,["config"],fl(n,o,t)),t}function pl(n){const e={};if(i(n,["displayName"])!==void 0)throw new Error("displayName parameter is not supported in Gemini API.");const t=i(n,["fileUri"]);t!=null&&s(e,["fileUri"],t);const o=i(n,["mimeType"]);return o!=null&&s(e,["mimeType"],o),e}function ml(n){const e={};if(i(n,["authConfig"])!==void 0)throw new Error("authConfig parameter is not supported in Gemini API.");const t=i(n,["enableWidget"]);return t!=null&&s(e,["enableWidget"],t),e}function hl(n){const e={},t=i(n,["timeRangeFilter"]);if(t!=null&&s(e,["timeRangeFilter"],t),i(n,["excludeDomains"])!==void 0)throw new Error("excludeDomains parameter is not supported in Gemini API.");return e}function gl(n,e){const t={},o=i(n,["generationConfig"]);e!==void 0&&o!=null&&s(e,["setup","generationConfig"],o);const r=i(n,["responseModalities"]);e!==void 0&&r!=null&&s(e,["setup","generationConfig","responseModalities"],r);const l=i(n,["temperature"]);e!==void 0&&l!=null&&s(e,["setup","generationConfig","temperature"],l);const a=i(n,["topP"]);e!==void 0&&a!=null&&s(e,["setup","generationConfig","topP"],a);const d=i(n,["topK"]);e!==void 0&&d!=null&&s(e,["setup","generationConfig","topK"],d);const f=i(n,["maxOutputTokens"]);e!==void 0&&f!=null&&s(e,["setup","generationConfig","maxOutputTokens"],f);const u=i(n,["mediaResolution"]);e!==void 0&&u!=null&&s(e,["setup","generationConfig","mediaResolution"],u);const c=i(n,["seed"]);e!==void 0&&c!=null&&s(e,["setup","generationConfig","seed"],c);const p=i(n,["speechConfig"]);e!==void 0&&p!=null&&s(e,["setup","generationConfig","speechConfig"],Ae(p));const m=i(n,["thinkingConfig"]);e!==void 0&&m!=null&&s(e,["setup","generationConfig","thinkingConfig"],m);const h=i(n,["enableAffectiveDialog"]);e!==void 0&&h!=null&&s(e,["setup","generationConfig","enableAffectiveDialog"],h);const g=i(n,["systemInstruction"]);e!==void 0&&g!=null&&s(e,["setup","systemInstruction"],dl(U(g)));const y=i(n,["tools"]);if(e!==void 0&&y!=null){let R=Q(y);Array.isArray(R)&&(R=R.map(M=>_l(X(M)))),s(e,["setup","tools"],R)}const _=i(n,["sessionResumption"]);e!==void 0&&_!=null&&s(e,["setup","sessionResumption"],Cl(_));const I=i(n,["inputAudioTranscription"]);e!==void 0&&I!=null&&s(e,["setup","inputAudioTranscription"],I);const E=i(n,["outputAudioTranscription"]);e!==void 0&&E!=null&&s(e,["setup","outputAudioTranscription"],E);const C=i(n,["realtimeInputConfig"]);e!==void 0&&C!=null&&s(e,["setup","realtimeInputConfig"],C);const v=i(n,["contextWindowCompression"]);e!==void 0&&v!=null&&s(e,["setup","contextWindowCompression"],v);const S=i(n,["proactivity"]);return e!==void 0&&S!=null&&s(e,["setup","proactivity"],S),t}function yl(n,e){const t={},o=i(e,["model"]);o!=null&&s(t,["setup","model"],P(n,o));const r=i(e,["config"]);return r!=null&&s(t,["config"],gl(r,t)),t}function Tl(n){const e={},t=i(n,["videoMetadata"]);t!=null&&s(e,["videoMetadata"],t);const o=i(n,["thought"]);o!=null&&s(e,["thought"],o);const r=i(n,["inlineData"]);r!=null&&s(e,["inlineData"],ul(r));const l=i(n,["fileData"]);l!=null&&s(e,["fileData"],pl(l));const a=i(n,["thoughtSignature"]);a!=null&&s(e,["thoughtSignature"],a);const d=i(n,["functionCall"]);d!=null&&s(e,["functionCall"],d);const f=i(n,["codeExecutionResult"]);f!=null&&s(e,["codeExecutionResult"],f);const u=i(n,["executableCode"]);u!=null&&s(e,["executableCode"],u);const c=i(n,["functionResponse"]);c!=null&&s(e,["functionResponse"],c);const p=i(n,["text"]);return p!=null&&s(e,["text"],p),e}function Cl(n){const e={},t=i(n,["handle"]);if(t!=null&&s(e,["handle"],t),i(n,["transparent"])!==void 0)throw new Error("transparent parameter is not supported in Gemini API.");return e}function _l(n){const e={},t=i(n,["functionDeclarations"]);if(t!=null){let u=t;Array.isArray(u)&&(u=u.map(c=>c)),s(e,["functionDeclarations"],u)}if(i(n,["retrieval"])!==void 0)throw new Error("retrieval parameter is not supported in Gemini API.");const o=i(n,["googleSearch"]);o!=null&&s(e,["googleSearch"],hl(o));const r=i(n,["googleSearchRetrieval"]);if(r!=null&&s(e,["googleSearchRetrieval"],r),i(n,["enterpriseWebSearch"])!==void 0)throw new Error("enterpriseWebSearch parameter is not supported in Gemini API.");const l=i(n,["googleMaps"]);l!=null&&s(e,["googleMaps"],ml(l));const a=i(n,["urlContext"]);a!=null&&s(e,["urlContext"],a);const d=i(n,["computerUse"]);d!=null&&s(e,["computerUse"],d);const f=i(n,["codeExecution"]);return f!=null&&s(e,["codeExecution"],f),e}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function El(n){const e=[];for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)){const o=n[t];if(typeof o=="object"&&o!=null&&Object.keys(o).length>0){const r=Object.keys(o).map(l=>`${t}.${l}`);e.push(...r)}else e.push(t)}return e.join(",")}function Il(n,e){let t=null;const o=n.bidiGenerateContentSetup;if(typeof o=="object"&&o!==null&&"setup"in o){const l=o.setup;typeof l=="object"&&l!==null?(n.bidiGenerateContentSetup=l,t=l):delete n.bidiGenerateContentSetup}else o!==void 0&&delete n.bidiGenerateContentSetup;const r=n.fieldMask;if(t){const l=El(t);if(Array.isArray(e?.lockAdditionalFields)&&e?.lockAdditionalFields.length===0)l?n.fieldMask=l:delete n.fieldMask;else if(e?.lockAdditionalFields&&e.lockAdditionalFields.length>0&&r!==null&&Array.isArray(r)&&r.length>0){const a=["temperature","topK","topP","maxOutputTokens","responseModalities","seed","speechConfig"];let d=[];r.length>0&&(d=r.map(u=>a.includes(u)?`generationConfig.${u}`:u));const f=[];l&&f.push(l),d.length>0&&f.push(...d),f.length>0?n.fieldMask=f.join(","):delete n.fieldMask}else delete n.fieldMask}else r!==null&&Array.isArray(r)&&r.length>0?n.fieldMask=r.join(","):delete n.fieldMask;return n}class vl extends Y{constructor(e){super(),this.apiClient=e}async create(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("The client.tokens.create method is only supported by the Gemini Developer API.");{const d=cl(this.apiClient,e);l=T("auth_tokens",d._url),a=d._query,delete d.config,delete d._url,delete d._query;const f=Il(d,e.config);return r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(u=>u.json()),r.then(u=>u)}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */function Al(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Sl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Rl(n,e){const t={};if(i(n,["validationDataset"])!==void 0)throw new Error("validationDataset parameter is not supported in Gemini API.");const o=i(n,["tunedModelDisplayName"]);if(e!==void 0&&o!=null&&s(e,["displayName"],o),i(n,["description"])!==void 0)throw new Error("description parameter is not supported in Gemini API.");const r=i(n,["epochCount"]);e!==void 0&&r!=null&&s(e,["tuningTask","hyperparameters","epochCount"],r);const l=i(n,["learningRateMultiplier"]);if(l!=null&&s(t,["tuningTask","hyperparameters","learningRateMultiplier"],l),i(n,["exportLastCheckpointOnly"])!==void 0)throw new Error("exportLastCheckpointOnly parameter is not supported in Gemini API.");if(i(n,["preTunedModelCheckpointId"])!==void 0)throw new Error("preTunedModelCheckpointId parameter is not supported in Gemini API.");if(i(n,["adapterSize"])!==void 0)throw new Error("adapterSize parameter is not supported in Gemini API.");const a=i(n,["batchSize"]);e!==void 0&&a!=null&&s(e,["tuningTask","hyperparameters","batchSize"],a);const d=i(n,["learningRate"]);if(e!==void 0&&d!=null&&s(e,["tuningTask","hyperparameters","learningRate"],d),i(n,["labels"])!==void 0)throw new Error("labels parameter is not supported in Gemini API.");return t}function Ml(n,e){const t={},o=i(n,["validationDataset"]);e!==void 0&&o!=null&&s(e,["supervisedTuningSpec"],Jl(o,t));const r=i(n,["tunedModelDisplayName"]);e!==void 0&&r!=null&&s(e,["tunedModelDisplayName"],r);const l=i(n,["description"]);e!==void 0&&l!=null&&s(e,["description"],l);const a=i(n,["epochCount"]);e!==void 0&&a!=null&&s(e,["supervisedTuningSpec","hyperParameters","epochCount"],a);const d=i(n,["learningRateMultiplier"]);e!==void 0&&d!=null&&s(e,["supervisedTuningSpec","hyperParameters","learningRateMultiplier"],d);const f=i(n,["exportLastCheckpointOnly"]);e!==void 0&&f!=null&&s(e,["supervisedTuningSpec","exportLastCheckpointOnly"],f);const u=i(n,["adapterSize"]);if(e!==void 0&&u!=null&&s(e,["supervisedTuningSpec","hyperParameters","adapterSize"],u),i(n,["batchSize"])!==void 0)throw new Error("batchSize parameter is not supported in Vertex AI.");if(i(n,["learningRate"])!==void 0)throw new Error("learningRate parameter is not supported in Vertex AI.");const c=i(n,["labels"]);return e!==void 0&&c!=null&&s(e,["labels"],c),t}function Pl(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["preTunedModel"]);o!=null&&s(e,["preTunedModel"],o);const r=i(n,["trainingDataset"]);r!=null&&s(e,["tuningTask","trainingData"],Gl(r));const l=i(n,["config"]);return l!=null&&Rl(l,e),e}function Nl(n){const e={},t=i(n,["baseModel"]);t!=null&&s(e,["baseModel"],t);const o=i(n,["preTunedModel"]);o!=null&&s(e,["preTunedModel"],o);const r=i(n,["trainingDataset"]);r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],Hl(r,e));const l=i(n,["config"]);return l!=null&&Ml(l,e),e}function wl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function Dl(n){const e={},t=i(n,["name"]);return t!=null&&s(e,["_url","name"],t),e}function xl(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function Ul(n,e){const t={},o=i(n,["pageSize"]);e!==void 0&&o!=null&&s(e,["_query","pageSize"],o);const r=i(n,["pageToken"]);e!==void 0&&r!=null&&s(e,["_query","pageToken"],r);const l=i(n,["filter"]);return e!==void 0&&l!=null&&s(e,["_query","filter"],l),t}function kl(n){const e={},t=i(n,["config"]);return t!=null&&xl(t,e),e}function Ll(n){const e={},t=i(n,["config"]);return t!=null&&Ul(t,e),e}function Vl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["tunedModels"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>gt(a))),s(e,["tuningJobs"],l)}return e}function Fl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["nextPageToken"]);o!=null&&s(e,["nextPageToken"],o);const r=i(n,["tuningJobs"]);if(r!=null){let l=r;Array.isArray(l)&&(l=l.map(a=>Ce(a))),s(e,["tuningJobs"],l)}return e}function ql(n){const e={},t=i(n,["name"]);t!=null&&s(e,["model"],t);const o=i(n,["name"]);return o!=null&&s(e,["endpoint"],o),e}function Gl(n){const e={};if(i(n,["gcsUri"])!==void 0)throw new Error("gcsUri parameter is not supported in Gemini API.");if(i(n,["vertexDatasetResource"])!==void 0)throw new Error("vertexDatasetResource parameter is not supported in Gemini API.");const t=i(n,["examples"]);if(t!=null){let o=t;Array.isArray(o)&&(o=o.map(r=>r)),s(e,["examples","examples"],o)}return e}function Hl(n,e){const t={},o=i(n,["gcsUri"]);e!==void 0&&o!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],o);const r=i(n,["vertexDatasetResource"]);if(e!==void 0&&r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],r),i(n,["examples"])!==void 0)throw new Error("examples parameter is not supported in Vertex AI.");return t}function gt(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],Zn(r));const l=i(n,["createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["tuningTask","startTime"]);a!=null&&s(e,["startTime"],a);const d=i(n,["tuningTask","completeTime"]);d!=null&&s(e,["endTime"],d);const f=i(n,["updateTime"]);f!=null&&s(e,["updateTime"],f);const u=i(n,["description"]);u!=null&&s(e,["description"],u);const c=i(n,["baseModel"]);c!=null&&s(e,["baseModel"],c);const p=i(n,["_self"]);return p!=null&&s(e,["tunedModel"],ql(p)),e}function Ce(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["state"]);r!=null&&s(e,["state"],Zn(r));const l=i(n,["createTime"]);l!=null&&s(e,["createTime"],l);const a=i(n,["startTime"]);a!=null&&s(e,["startTime"],a);const d=i(n,["endTime"]);d!=null&&s(e,["endTime"],d);const f=i(n,["updateTime"]);f!=null&&s(e,["updateTime"],f);const u=i(n,["error"]);u!=null&&s(e,["error"],u);const c=i(n,["description"]);c!=null&&s(e,["description"],c);const p=i(n,["baseModel"]);p!=null&&s(e,["baseModel"],p);const m=i(n,["tunedModel"]);m!=null&&s(e,["tunedModel"],m);const h=i(n,["preTunedModel"]);h!=null&&s(e,["preTunedModel"],h);const g=i(n,["supervisedTuningSpec"]);g!=null&&s(e,["supervisedTuningSpec"],g);const y=i(n,["tuningDataStats"]);y!=null&&s(e,["tuningDataStats"],y);const _=i(n,["encryptionSpec"]);_!=null&&s(e,["encryptionSpec"],_);const I=i(n,["partnerModelTuningSpec"]);I!=null&&s(e,["partnerModelTuningSpec"],I);const E=i(n,["customBaseModel"]);E!=null&&s(e,["customBaseModel"],E);const C=i(n,["experiment"]);C!=null&&s(e,["experiment"],C);const v=i(n,["labels"]);v!=null&&s(e,["labels"],v);const S=i(n,["outputUri"]);S!=null&&s(e,["outputUri"],S);const R=i(n,["pipelineJob"]);R!=null&&s(e,["pipelineJob"],R);const M=i(n,["serviceAccount"]);M!=null&&s(e,["serviceAccount"],M);const x=i(n,["tunedModelDisplayName"]);x!=null&&s(e,["tunedModelDisplayName"],x);const A=i(n,["veoTuningSpec"]);return A!=null&&s(e,["veoTuningSpec"],A),e}function Bl(n){const e={},t=i(n,["sdkHttpResponse"]);t!=null&&s(e,["sdkHttpResponse"],t);const o=i(n,["name"]);o!=null&&s(e,["name"],o);const r=i(n,["metadata"]);r!=null&&s(e,["metadata"],r);const l=i(n,["done"]);l!=null&&s(e,["done"],l);const a=i(n,["error"]);return a!=null&&s(e,["error"],a),e}function Jl(n,e){const t={},o=i(n,["gcsUri"]);o!=null&&s(t,["validationDatasetUri"],o);const r=i(n,["vertexDatasetResource"]);return e!==void 0&&r!=null&&s(e,["supervisedTuningSpec","trainingDatasetUri"],r),t}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class Yl extends Y{constructor(e){super(),this.apiClient=e,this.get=async t=>await this.getInternal(t),this.list=async(t={})=>new j(J.PAGED_ITEM_TUNING_JOBS,o=>this.listInternal(o),await this.listInternal(t),t),this.tune=async t=>{var o;if(this.apiClient.isVertexAI())if(t.baseModel.startsWith("projects/")){const r={tunedModelName:t.baseModel};!((o=t.config)===null||o===void 0)&&o.preTunedModelCheckpointId&&(r.checkpointId=t.config.preTunedModelCheckpointId);const l=Object.assign(Object.assign({},t),{preTunedModel:r});return l.baseModel=void 0,await this.tuneInternal(l)}else{const r=Object.assign({},t);return await this.tuneInternal(r)}else{const r=Object.assign({},t),l=await this.tuneMldevInternal(r);let a="";return l.metadata!==void 0&&l.metadata.tunedModel!==void 0?a=l.metadata.tunedModel:l.name!==void 0&&l.name.includes("/operations/")&&(a=l.name.split("/operations/")[0]),{name:a,state:ce.JOB_STATE_QUEUED}}}}async getInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Dl(e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>Ce(c))}else{const u=wl(e);return d=T("{name}",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>gt(c))}}async listInternal(e){var t,o,r,l;let a,d="",f={};if(this.apiClient.isVertexAI()){const u=Ll(e);return d=T("tuningJobs",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Fl(c),m=new Sn;return Object.assign(m,p),m})}else{const u=kl(e);return d=T("tunedModels",u._url),f=u._query,delete u._url,delete u._query,a=this.apiClient.request({path:d,queryParams:f,body:JSON.stringify(u),httpMethod:"GET",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal}).then(c=>c.json().then(p=>{const m=p;return m.sdkHttpResponse={headers:c.headers},m})),a.then(c=>{const p=Vl(c),m=new Sn;return Object.assign(m,p),m})}}async cancel(e){var t,o,r,l;let a="",d={};if(this.apiClient.isVertexAI()){const f=Sl(e);a=T("{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal})}else{const f=Al(e);a=T("{name}:cancel",f._url),d=f._query,delete f._url,delete f._query,await this.apiClient.request({path:a,queryParams:d,body:JSON.stringify(f),httpMethod:"POST",httpOptions:(r=e.config)===null||r===void 0?void 0:r.httpOptions,abortSignal:(l=e.config)===null||l===void 0?void 0:l.abortSignal})}}async tuneInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI()){const d=Nl(e);return l=T("tuningJobs",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>Ce(f))}else throw new Error("This method is only supported by the Vertex AI.")}async tuneMldevInternal(e){var t,o;let r,l="",a={};if(this.apiClient.isVertexAI())throw new Error("This method is only supported by the Gemini Developer API.");{const d=Pl(e);return l=T("tunedModels",d._url),a=d._query,delete d._url,delete d._query,r=this.apiClient.request({path:l,queryParams:a,body:JSON.stringify(d),httpMethod:"POST",httpOptions:(t=e.config)===null||t===void 0?void 0:t.httpOptions,abortSignal:(o=e.config)===null||o===void 0?void 0:o.abortSignal}).then(f=>f.json().then(u=>{const c=u;return c.sdkHttpResponse={headers:f.headers},c})),r.then(f=>Bl(f))}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class $l{async download(e,t){throw new Error("Download to file is not supported in the browser, please use a browser compliant download like an tag.")}}const Wl=1024*1024*8,Kl=3,zl=1e3,Xl=2,de="x-goog-upload-status";async function Ql(n,e,t){var o,r,l;let a=0,d=0,f=new pe(new Response),u="upload";for(a=n.size;d=a&&(u+=", finalize");let h=0,g=zl;for(;hsetTimeout(e,n))}class Ol{async upload(e,t,o){if(typeof e=="string")throw new Error("File path is not supported in browser uploader.");return await Ql(e,t,o)}async stat(e){if(typeof e=="string")throw new Error("File path is not supported in browser uploader.");return await bl(e)}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */class jl{create(e,t,o){return new ea(e,t,o)}}class ea{constructor(e,t,o){this.url=e,this.headers=t,this.callbacks=o}connect(){this.ws=new WebSocket(this.url),this.ws.onopen=this.callbacks.onopen,this.ws.onerror=this.callbacks.onerror,this.ws.onclose=this.callbacks.onclose,this.ws.onmessage=this.callbacks.onmessage}send(e){if(this.ws===void 0)throw new Error("WebSocket is not connected");this.ws.send(e)}close(){if(this.ws===void 0)throw new Error("WebSocket is not connected");this.ws.close()}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Wn="x-goog-api-key";class na{constructor(e){this.apiKey=e}async addAuthHeaders(e){if(e.get(Wn)===null){if(this.apiKey.startsWith("auth_tokens/"))throw new Error("Ephemeral tokens are only supported by the live API.");if(!this.apiKey)throw new Error("API key is missing. Please provide a valid API key.");e.append(Wn,this.apiKey)}}}/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const ta="gl-node/";class oa{constructor(e){var t;if(e.apiKey==null)throw new Error("An API Key must be set when running in a browser");if(e.project||e.location)throw new Error("Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.");this.vertexai=(t=e.vertexai)!==null&&t!==void 0?t:!1,this.apiKey=e.apiKey;const o=_t(e.httpOptions,e.vertexai,void 0,void 0);o&&(e.httpOptions?e.httpOptions.baseUrl=o:e.httpOptions={baseUrl:o}),this.apiVersion=e.apiVersion;const r=new na(this.apiKey);this.apiClient=new Br({auth:r,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:e.httpOptions,userAgentExtra:ta+"web",uploader:new Ol,downloader:new $l}),this.models=new ll(this.apiClient),this.live=new el(this.apiClient,r,new jl),this.batches=new Ho(this.apiClient),this.chats=new Ti(this.models,this.apiClient),this.caches=new hi(this.apiClient),this.files=new Pi(this.apiClient),this.operations=new al(this.apiClient),this.authTokens=new vl(this.apiClient),this.tunings=new Yl(this.apiClient)}}export{oa as G,te as M,H as T}; +//# sourceMappingURL=@google-CcUHq7Ay.js.map diff --git a/assets/@google-CcUHq7Ay.js.map b/assets/@google-CcUHq7Ay.js.map new file mode 100644 index 0000000000000000000000000000000000000000..5bba7f8ce4cd8d20986d83812a3087627699dbb1 --- /dev/null +++ b/assets/@google-CcUHq7Ay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"@google-CcUHq7Ay.js","sources":["../../node_modules/@google/genai/dist/web/index.mjs"],"sourcesContent":["/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nlet _defaultBaseGeminiUrl = undefined;\nlet _defaultBaseVertexUrl = undefined;\n/**\n * Overrides the base URLs for the Gemini API and Vertex AI API.\n *\n * @remarks This function should be called before initializing the SDK. If the\n * base URLs are set after initializing the SDK, the base URLs will not be\n * updated. Base URLs provided in the HttpOptions will also take precedence over\n * URLs set here.\n *\n * @example\n * ```ts\n * import {GoogleGenAI, setDefaultBaseUrls} from '@google/genai';\n * // Override the base URL for the Gemini API.\n * setDefaultBaseUrls({geminiUrl:'https://gemini.google.com'});\n *\n * // Override the base URL for the Vertex AI API.\n * setDefaultBaseUrls({vertexUrl: 'https://vertexai.googleapis.com'});\n *\n * const ai = new GoogleGenAI({apiKey: 'GEMINI_API_KEY'});\n * ```\n */\nfunction setDefaultBaseUrls(baseUrlParams) {\n _defaultBaseGeminiUrl = baseUrlParams.geminiUrl;\n _defaultBaseVertexUrl = baseUrlParams.vertexUrl;\n}\n/**\n * Returns the default base URLs for the Gemini API and Vertex AI API.\n */\nfunction getDefaultBaseUrls() {\n return {\n geminiUrl: _defaultBaseGeminiUrl,\n vertexUrl: _defaultBaseVertexUrl,\n };\n}\n/**\n * Returns the default base URL based on the following priority:\n * 1. Base URLs set via HttpOptions.\n * 2. Base URLs set via the latest call to setDefaultBaseUrls.\n * 3. Base URLs set via environment variables.\n */\nfunction getBaseUrl(httpOptions, vertexai, vertexBaseUrlFromEnv, geminiBaseUrlFromEnv) {\n var _a, _b;\n if (!(httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.baseUrl)) {\n const defaultBaseUrls = getDefaultBaseUrls();\n if (vertexai) {\n return (_a = defaultBaseUrls.vertexUrl) !== null && _a !== void 0 ? _a : vertexBaseUrlFromEnv;\n }\n else {\n return (_b = defaultBaseUrls.geminiUrl) !== null && _b !== void 0 ? _b : geminiBaseUrlFromEnv;\n }\n }\n return httpOptions.baseUrl;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass BaseModule {\n}\nfunction formatMap(templateString, valueMap) {\n // Use a regular expression to find all placeholders in the template string\n const regex = /\\{([^}]+)\\}/g;\n // Replace each placeholder with its corresponding value from the valueMap\n return templateString.replace(regex, (match, key) => {\n if (Object.prototype.hasOwnProperty.call(valueMap, key)) {\n const value = valueMap[key];\n // Convert the value to a string if it's not a string already\n return value !== undefined && value !== null ? String(value) : '';\n }\n else {\n // Handle missing keys\n throw new Error(`Key '${key}' not found in valueMap.`);\n }\n });\n}\nfunction setValueByPath(data, keys, value) {\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (key.endsWith('[]')) {\n const keyName = key.slice(0, -2);\n if (!(keyName in data)) {\n if (Array.isArray(value)) {\n data[keyName] = Array.from({ length: value.length }, () => ({}));\n }\n else {\n throw new Error(`Value must be a list given an array path ${key}`);\n }\n }\n if (Array.isArray(data[keyName])) {\n const arrayData = data[keyName];\n if (Array.isArray(value)) {\n for (let j = 0; j < arrayData.length; j++) {\n const entry = arrayData[j];\n setValueByPath(entry, keys.slice(i + 1), value[j]);\n }\n }\n else {\n for (const d of arrayData) {\n setValueByPath(d, keys.slice(i + 1), value);\n }\n }\n }\n return;\n }\n else if (key.endsWith('[0]')) {\n const keyName = key.slice(0, -3);\n if (!(keyName in data)) {\n data[keyName] = [{}];\n }\n const arrayData = data[keyName];\n setValueByPath(arrayData[0], keys.slice(i + 1), value);\n return;\n }\n if (!data[key] || typeof data[key] !== 'object') {\n data[key] = {};\n }\n data = data[key];\n }\n const keyToSet = keys[keys.length - 1];\n const existingData = data[keyToSet];\n if (existingData !== undefined) {\n if (!value ||\n (typeof value === 'object' && Object.keys(value).length === 0)) {\n return;\n }\n if (value === existingData) {\n return;\n }\n if (typeof existingData === 'object' &&\n typeof value === 'object' &&\n existingData !== null &&\n value !== null) {\n Object.assign(existingData, value);\n }\n else {\n throw new Error(`Cannot set value for an existing key. Key: ${keyToSet}`);\n }\n }\n else {\n if (keyToSet === '_self' &&\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value)) {\n const valueAsRecord = value;\n Object.assign(data, valueAsRecord);\n }\n else {\n data[keyToSet] = value;\n }\n }\n}\nfunction getValueByPath(data, keys, defaultValue = undefined) {\n try {\n if (keys.length === 1 && keys[0] === '_self') {\n return data;\n }\n for (let i = 0; i < keys.length; i++) {\n if (typeof data !== 'object' || data === null) {\n return defaultValue;\n }\n const key = keys[i];\n if (key.endsWith('[]')) {\n const keyName = key.slice(0, -2);\n if (keyName in data) {\n const arrayData = data[keyName];\n if (!Array.isArray(arrayData)) {\n return defaultValue;\n }\n return arrayData.map((d) => getValueByPath(d, keys.slice(i + 1), defaultValue));\n }\n else {\n return defaultValue;\n }\n }\n else {\n data = data[key];\n }\n }\n return data;\n }\n catch (error) {\n if (error instanceof TypeError) {\n return defaultValue;\n }\n throw error;\n }\n}\n/**\n * Moves values from source paths to destination paths.\n *\n * Examples:\n * moveValueByPath(\n * {'requests': [{'content': v1}, {'content': v2}]},\n * {'requests[].*': 'requests[].request.*'}\n * )\n * -> {'requests': [{'request': {'content': v1}}, {'request': {'content': v2}}]}\n */\nfunction moveValueByPath(data, paths) {\n for (const [sourcePath, destPath] of Object.entries(paths)) {\n const sourceKeys = sourcePath.split('.');\n const destKeys = destPath.split('.');\n // Determine keys to exclude from wildcard to avoid cyclic references\n const excludeKeys = new Set();\n let wildcardIdx = -1;\n for (let i = 0; i < sourceKeys.length; i++) {\n if (sourceKeys[i] === '*') {\n wildcardIdx = i;\n break;\n }\n }\n if (wildcardIdx !== -1 && destKeys.length > wildcardIdx) {\n // Extract the intermediate key between source and dest paths\n // Example: source=['requests[]', '*'], dest=['requests[]', 'request', '*']\n // We want to exclude 'request'\n for (let i = wildcardIdx; i < destKeys.length; i++) {\n const key = destKeys[i];\n if (key !== '*' && !key.endsWith('[]') && !key.endsWith('[0]')) {\n excludeKeys.add(key);\n }\n }\n }\n _moveValueRecursive(data, sourceKeys, destKeys, 0, excludeKeys);\n }\n}\n/**\n * Recursively moves values from source path to destination path.\n */\nfunction _moveValueRecursive(data, sourceKeys, destKeys, keyIdx, excludeKeys) {\n if (keyIdx >= sourceKeys.length) {\n return;\n }\n if (typeof data !== 'object' || data === null) {\n return;\n }\n const key = sourceKeys[keyIdx];\n if (key.endsWith('[]')) {\n const keyName = key.slice(0, -2);\n const dataRecord = data;\n if (keyName in dataRecord && Array.isArray(dataRecord[keyName])) {\n for (const item of dataRecord[keyName]) {\n _moveValueRecursive(item, sourceKeys, destKeys, keyIdx + 1, excludeKeys);\n }\n }\n }\n else if (key === '*') {\n // wildcard - move all fields\n if (typeof data === 'object' && data !== null && !Array.isArray(data)) {\n const dataRecord = data;\n const keysToMove = Object.keys(dataRecord).filter((k) => !k.startsWith('_') && !excludeKeys.has(k));\n const valuesToMove = {};\n for (const k of keysToMove) {\n valuesToMove[k] = dataRecord[k];\n }\n // Set values at destination\n for (const [k, v] of Object.entries(valuesToMove)) {\n const newDestKeys = [];\n for (const dk of destKeys.slice(keyIdx)) {\n if (dk === '*') {\n newDestKeys.push(k);\n }\n else {\n newDestKeys.push(dk);\n }\n }\n setValueByPath(dataRecord, newDestKeys, v);\n }\n for (const k of keysToMove) {\n delete dataRecord[k];\n }\n }\n }\n else {\n // Navigate to next level\n const dataRecord = data;\n if (key in dataRecord) {\n _moveValueRecursive(dataRecord[key], sourceKeys, destKeys, keyIdx + 1, excludeKeys);\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction tBytes$1(fromBytes) {\n if (typeof fromBytes !== 'string') {\n throw new Error('fromImageBytes must be a string');\n }\n // TODO(b/389133914): Remove dummy bytes converter.\n return fromBytes;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Code generated by the Google Gen AI SDK generator DO NOT EDIT.\nfunction fetchPredictOperationParametersToVertex(fromObject) {\n const toObject = {};\n const fromOperationName = getValueByPath(fromObject, [\n 'operationName',\n ]);\n if (fromOperationName != null) {\n setValueByPath(toObject, ['operationName'], fromOperationName);\n }\n const fromResourceName = getValueByPath(fromObject, ['resourceName']);\n if (fromResourceName != null) {\n setValueByPath(toObject, ['_url', 'resourceName'], fromResourceName);\n }\n return toObject;\n}\nfunction generateVideosOperationFromMldev$1(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromResponse = getValueByPath(fromObject, [\n 'response',\n 'generateVideoResponse',\n ]);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], generateVideosResponseFromMldev$1(fromResponse));\n }\n return toObject;\n}\nfunction generateVideosOperationFromVertex$1(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], generateVideosResponseFromVertex$1(fromResponse));\n }\n return toObject;\n}\nfunction generateVideosResponseFromMldev$1(fromObject) {\n const toObject = {};\n const fromGeneratedVideos = getValueByPath(fromObject, [\n 'generatedSamples',\n ]);\n if (fromGeneratedVideos != null) {\n let transformedList = fromGeneratedVideos;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedVideoFromMldev$1(item);\n });\n }\n setValueByPath(toObject, ['generatedVideos'], transformedList);\n }\n const fromRaiMediaFilteredCount = getValueByPath(fromObject, [\n 'raiMediaFilteredCount',\n ]);\n if (fromRaiMediaFilteredCount != null) {\n setValueByPath(toObject, ['raiMediaFilteredCount'], fromRaiMediaFilteredCount);\n }\n const fromRaiMediaFilteredReasons = getValueByPath(fromObject, [\n 'raiMediaFilteredReasons',\n ]);\n if (fromRaiMediaFilteredReasons != null) {\n setValueByPath(toObject, ['raiMediaFilteredReasons'], fromRaiMediaFilteredReasons);\n }\n return toObject;\n}\nfunction generateVideosResponseFromVertex$1(fromObject) {\n const toObject = {};\n const fromGeneratedVideos = getValueByPath(fromObject, ['videos']);\n if (fromGeneratedVideos != null) {\n let transformedList = fromGeneratedVideos;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedVideoFromVertex$1(item);\n });\n }\n setValueByPath(toObject, ['generatedVideos'], transformedList);\n }\n const fromRaiMediaFilteredCount = getValueByPath(fromObject, [\n 'raiMediaFilteredCount',\n ]);\n if (fromRaiMediaFilteredCount != null) {\n setValueByPath(toObject, ['raiMediaFilteredCount'], fromRaiMediaFilteredCount);\n }\n const fromRaiMediaFilteredReasons = getValueByPath(fromObject, [\n 'raiMediaFilteredReasons',\n ]);\n if (fromRaiMediaFilteredReasons != null) {\n setValueByPath(toObject, ['raiMediaFilteredReasons'], fromRaiMediaFilteredReasons);\n }\n return toObject;\n}\nfunction generatedVideoFromMldev$1(fromObject) {\n const toObject = {};\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], videoFromMldev$1(fromVideo));\n }\n return toObject;\n}\nfunction generatedVideoFromVertex$1(fromObject) {\n const toObject = {};\n const fromVideo = getValueByPath(fromObject, ['_self']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], videoFromVertex$1(fromVideo));\n }\n return toObject;\n}\nfunction getOperationParametersToMldev(fromObject) {\n const toObject = {};\n const fromOperationName = getValueByPath(fromObject, [\n 'operationName',\n ]);\n if (fromOperationName != null) {\n setValueByPath(toObject, ['_url', 'operationName'], fromOperationName);\n }\n return toObject;\n}\nfunction getOperationParametersToVertex(fromObject) {\n const toObject = {};\n const fromOperationName = getValueByPath(fromObject, [\n 'operationName',\n ]);\n if (fromOperationName != null) {\n setValueByPath(toObject, ['_url', 'operationName'], fromOperationName);\n }\n return toObject;\n}\nfunction videoFromMldev$1(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['uri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['uri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, ['encodedVideo']);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['videoBytes'], tBytes$1(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['encoding']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction videoFromVertex$1(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['uri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, [\n 'bytesBase64Encoded',\n ]);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['videoBytes'], tBytes$1(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/** Required. Outcome of the code execution. */\nvar Outcome;\n(function (Outcome) {\n /**\n * Unspecified status. This value should not be used.\n */\n Outcome[\"OUTCOME_UNSPECIFIED\"] = \"OUTCOME_UNSPECIFIED\";\n /**\n * Code execution completed successfully.\n */\n Outcome[\"OUTCOME_OK\"] = \"OUTCOME_OK\";\n /**\n * Code execution finished but with a failure. `stderr` should contain the reason.\n */\n Outcome[\"OUTCOME_FAILED\"] = \"OUTCOME_FAILED\";\n /**\n * Code execution ran for too long, and was cancelled. There may or may not be a partial output present.\n */\n Outcome[\"OUTCOME_DEADLINE_EXCEEDED\"] = \"OUTCOME_DEADLINE_EXCEEDED\";\n})(Outcome || (Outcome = {}));\n/** Required. Programming language of the `code`. */\nvar Language;\n(function (Language) {\n /**\n * Unspecified language. This value should not be used.\n */\n Language[\"LANGUAGE_UNSPECIFIED\"] = \"LANGUAGE_UNSPECIFIED\";\n /**\n * Python >= 3.10, with numpy and simpy available.\n */\n Language[\"PYTHON\"] = \"PYTHON\";\n})(Language || (Language = {}));\n/** Specifies how the response should be scheduled in the conversation. */\nvar FunctionResponseScheduling;\n(function (FunctionResponseScheduling) {\n /**\n * This value is unused.\n */\n FunctionResponseScheduling[\"SCHEDULING_UNSPECIFIED\"] = \"SCHEDULING_UNSPECIFIED\";\n /**\n * Only add the result to the conversation context, do not interrupt or trigger generation.\n */\n FunctionResponseScheduling[\"SILENT\"] = \"SILENT\";\n /**\n * Add the result to the conversation context, and prompt to generate output without interrupting ongoing generation.\n */\n FunctionResponseScheduling[\"WHEN_IDLE\"] = \"WHEN_IDLE\";\n /**\n * Add the result to the conversation context, interrupt ongoing generation and prompt to generate output.\n */\n FunctionResponseScheduling[\"INTERRUPT\"] = \"INTERRUPT\";\n})(FunctionResponseScheduling || (FunctionResponseScheduling = {}));\n/** Optional. The type of the data. */\nvar Type;\n(function (Type) {\n /**\n * Not specified, should not be used.\n */\n Type[\"TYPE_UNSPECIFIED\"] = \"TYPE_UNSPECIFIED\";\n /**\n * OpenAPI string type\n */\n Type[\"STRING\"] = \"STRING\";\n /**\n * OpenAPI number type\n */\n Type[\"NUMBER\"] = \"NUMBER\";\n /**\n * OpenAPI integer type\n */\n Type[\"INTEGER\"] = \"INTEGER\";\n /**\n * OpenAPI boolean type\n */\n Type[\"BOOLEAN\"] = \"BOOLEAN\";\n /**\n * OpenAPI array type\n */\n Type[\"ARRAY\"] = \"ARRAY\";\n /**\n * OpenAPI object type\n */\n Type[\"OBJECT\"] = \"OBJECT\";\n /**\n * Null type\n */\n Type[\"NULL\"] = \"NULL\";\n})(Type || (Type = {}));\n/** Required. Harm category. */\nvar HarmCategory;\n(function (HarmCategory) {\n /**\n * The harm category is unspecified.\n */\n HarmCategory[\"HARM_CATEGORY_UNSPECIFIED\"] = \"HARM_CATEGORY_UNSPECIFIED\";\n /**\n * The harm category is harassment.\n */\n HarmCategory[\"HARM_CATEGORY_HARASSMENT\"] = \"HARM_CATEGORY_HARASSMENT\";\n /**\n * The harm category is hate speech.\n */\n HarmCategory[\"HARM_CATEGORY_HATE_SPEECH\"] = \"HARM_CATEGORY_HATE_SPEECH\";\n /**\n * The harm category is sexually explicit content.\n */\n HarmCategory[\"HARM_CATEGORY_SEXUALLY_EXPLICIT\"] = \"HARM_CATEGORY_SEXUALLY_EXPLICIT\";\n /**\n * The harm category is dangerous content.\n */\n HarmCategory[\"HARM_CATEGORY_DANGEROUS_CONTENT\"] = \"HARM_CATEGORY_DANGEROUS_CONTENT\";\n /**\n * Deprecated: Election filter is not longer supported. The harm category is civic integrity.\n */\n HarmCategory[\"HARM_CATEGORY_CIVIC_INTEGRITY\"] = \"HARM_CATEGORY_CIVIC_INTEGRITY\";\n /**\n * The harm category is image hate.\n */\n HarmCategory[\"HARM_CATEGORY_IMAGE_HATE\"] = \"HARM_CATEGORY_IMAGE_HATE\";\n /**\n * The harm category is image dangerous content.\n */\n HarmCategory[\"HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT\"] = \"HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT\";\n /**\n * The harm category is image harassment.\n */\n HarmCategory[\"HARM_CATEGORY_IMAGE_HARASSMENT\"] = \"HARM_CATEGORY_IMAGE_HARASSMENT\";\n /**\n * The harm category is image sexually explicit content.\n */\n HarmCategory[\"HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT\"] = \"HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT\";\n /**\n * The harm category is for jailbreak prompts.\n */\n HarmCategory[\"HARM_CATEGORY_JAILBREAK\"] = \"HARM_CATEGORY_JAILBREAK\";\n})(HarmCategory || (HarmCategory = {}));\n/** Optional. Specify if the threshold is used for probability or severity score. If not specified, the threshold is used for probability score. */\nvar HarmBlockMethod;\n(function (HarmBlockMethod) {\n /**\n * The harm block method is unspecified.\n */\n HarmBlockMethod[\"HARM_BLOCK_METHOD_UNSPECIFIED\"] = \"HARM_BLOCK_METHOD_UNSPECIFIED\";\n /**\n * The harm block method uses both probability and severity scores.\n */\n HarmBlockMethod[\"SEVERITY\"] = \"SEVERITY\";\n /**\n * The harm block method uses the probability score.\n */\n HarmBlockMethod[\"PROBABILITY\"] = \"PROBABILITY\";\n})(HarmBlockMethod || (HarmBlockMethod = {}));\n/** Required. The harm block threshold. */\nvar HarmBlockThreshold;\n(function (HarmBlockThreshold) {\n /**\n * Unspecified harm block threshold.\n */\n HarmBlockThreshold[\"HARM_BLOCK_THRESHOLD_UNSPECIFIED\"] = \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\";\n /**\n * Block low threshold and above (i.e. block more).\n */\n HarmBlockThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n /**\n * Block medium threshold and above.\n */\n HarmBlockThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n /**\n * Block only high threshold (i.e. block less).\n */\n HarmBlockThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n /**\n * Block none.\n */\n HarmBlockThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n /**\n * Turn off the safety filter.\n */\n HarmBlockThreshold[\"OFF\"] = \"OFF\";\n})(HarmBlockThreshold || (HarmBlockThreshold = {}));\n/** The mode of the predictor to be used in dynamic retrieval. */\nvar Mode;\n(function (Mode) {\n /**\n * Always trigger retrieval.\n */\n Mode[\"MODE_UNSPECIFIED\"] = \"MODE_UNSPECIFIED\";\n /**\n * Run retrieval only when system decides it is necessary.\n */\n Mode[\"MODE_DYNAMIC\"] = \"MODE_DYNAMIC\";\n})(Mode || (Mode = {}));\n/** Type of auth scheme. */\nvar AuthType;\n(function (AuthType) {\n AuthType[\"AUTH_TYPE_UNSPECIFIED\"] = \"AUTH_TYPE_UNSPECIFIED\";\n /**\n * No Auth.\n */\n AuthType[\"NO_AUTH\"] = \"NO_AUTH\";\n /**\n * API Key Auth.\n */\n AuthType[\"API_KEY_AUTH\"] = \"API_KEY_AUTH\";\n /**\n * HTTP Basic Auth.\n */\n AuthType[\"HTTP_BASIC_AUTH\"] = \"HTTP_BASIC_AUTH\";\n /**\n * Google Service Account Auth.\n */\n AuthType[\"GOOGLE_SERVICE_ACCOUNT_AUTH\"] = \"GOOGLE_SERVICE_ACCOUNT_AUTH\";\n /**\n * OAuth auth.\n */\n AuthType[\"OAUTH\"] = \"OAUTH\";\n /**\n * OpenID Connect (OIDC) Auth.\n */\n AuthType[\"OIDC_AUTH\"] = \"OIDC_AUTH\";\n})(AuthType || (AuthType = {}));\n/** The API spec that the external API implements. */\nvar ApiSpec;\n(function (ApiSpec) {\n /**\n * Unspecified API spec. This value should not be used.\n */\n ApiSpec[\"API_SPEC_UNSPECIFIED\"] = \"API_SPEC_UNSPECIFIED\";\n /**\n * Simple search API spec.\n */\n ApiSpec[\"SIMPLE_SEARCH\"] = \"SIMPLE_SEARCH\";\n /**\n * Elastic search API spec.\n */\n ApiSpec[\"ELASTIC_SEARCH\"] = \"ELASTIC_SEARCH\";\n})(ApiSpec || (ApiSpec = {}));\n/** Status of the url retrieval. */\nvar UrlRetrievalStatus;\n(function (UrlRetrievalStatus) {\n /**\n * Default value. This value is unused\n */\n UrlRetrievalStatus[\"URL_RETRIEVAL_STATUS_UNSPECIFIED\"] = \"URL_RETRIEVAL_STATUS_UNSPECIFIED\";\n /**\n * Url retrieval is successful.\n */\n UrlRetrievalStatus[\"URL_RETRIEVAL_STATUS_SUCCESS\"] = \"URL_RETRIEVAL_STATUS_SUCCESS\";\n /**\n * Url retrieval is failed due to error.\n */\n UrlRetrievalStatus[\"URL_RETRIEVAL_STATUS_ERROR\"] = \"URL_RETRIEVAL_STATUS_ERROR\";\n /**\n * Url retrieval is failed because the content is behind paywall.\n */\n UrlRetrievalStatus[\"URL_RETRIEVAL_STATUS_PAYWALL\"] = \"URL_RETRIEVAL_STATUS_PAYWALL\";\n /**\n * Url retrieval is failed because the content is unsafe.\n */\n UrlRetrievalStatus[\"URL_RETRIEVAL_STATUS_UNSAFE\"] = \"URL_RETRIEVAL_STATUS_UNSAFE\";\n})(UrlRetrievalStatus || (UrlRetrievalStatus = {}));\n/** Output only. The reason why the model stopped generating tokens.\n\nIf empty, the model has not stopped generating the tokens. */\nvar FinishReason;\n(function (FinishReason) {\n /**\n * The finish reason is unspecified.\n */\n FinishReason[\"FINISH_REASON_UNSPECIFIED\"] = \"FINISH_REASON_UNSPECIFIED\";\n /**\n * Token generation reached a natural stopping point or a configured stop sequence.\n */\n FinishReason[\"STOP\"] = \"STOP\";\n /**\n * Token generation reached the configured maximum output tokens.\n */\n FinishReason[\"MAX_TOKENS\"] = \"MAX_TOKENS\";\n /**\n * Token generation stopped because the content potentially contains safety violations. NOTE: When streaming, [content][] is empty if content filters blocks the output.\n */\n FinishReason[\"SAFETY\"] = \"SAFETY\";\n /**\n * The token generation stopped because of potential recitation.\n */\n FinishReason[\"RECITATION\"] = \"RECITATION\";\n /**\n * The token generation stopped because of using an unsupported language.\n */\n FinishReason[\"LANGUAGE\"] = \"LANGUAGE\";\n /**\n * All other reasons that stopped the token generation.\n */\n FinishReason[\"OTHER\"] = \"OTHER\";\n /**\n * Token generation stopped because the content contains forbidden terms.\n */\n FinishReason[\"BLOCKLIST\"] = \"BLOCKLIST\";\n /**\n * Token generation stopped for potentially containing prohibited content.\n */\n FinishReason[\"PROHIBITED_CONTENT\"] = \"PROHIBITED_CONTENT\";\n /**\n * Token generation stopped because the content potentially contains Sensitive Personally Identifiable Information (SPII).\n */\n FinishReason[\"SPII\"] = \"SPII\";\n /**\n * The function call generated by the model is invalid.\n */\n FinishReason[\"MALFORMED_FUNCTION_CALL\"] = \"MALFORMED_FUNCTION_CALL\";\n /**\n * Token generation stopped because generated images have safety violations.\n */\n FinishReason[\"IMAGE_SAFETY\"] = \"IMAGE_SAFETY\";\n /**\n * The tool call generated by the model is invalid.\n */\n FinishReason[\"UNEXPECTED_TOOL_CALL\"] = \"UNEXPECTED_TOOL_CALL\";\n /**\n * Image generation stopped because the generated images have prohibited content.\n */\n FinishReason[\"IMAGE_PROHIBITED_CONTENT\"] = \"IMAGE_PROHIBITED_CONTENT\";\n /**\n * The model was expected to generate an image, but none was generated.\n */\n FinishReason[\"NO_IMAGE\"] = \"NO_IMAGE\";\n})(FinishReason || (FinishReason = {}));\n/** Output only. Harm probability levels in the content. */\nvar HarmProbability;\n(function (HarmProbability) {\n /**\n * Harm probability unspecified.\n */\n HarmProbability[\"HARM_PROBABILITY_UNSPECIFIED\"] = \"HARM_PROBABILITY_UNSPECIFIED\";\n /**\n * Negligible level of harm.\n */\n HarmProbability[\"NEGLIGIBLE\"] = \"NEGLIGIBLE\";\n /**\n * Low level of harm.\n */\n HarmProbability[\"LOW\"] = \"LOW\";\n /**\n * Medium level of harm.\n */\n HarmProbability[\"MEDIUM\"] = \"MEDIUM\";\n /**\n * High level of harm.\n */\n HarmProbability[\"HIGH\"] = \"HIGH\";\n})(HarmProbability || (HarmProbability = {}));\n/** Output only. Harm severity levels in the content. */\nvar HarmSeverity;\n(function (HarmSeverity) {\n /**\n * Harm severity unspecified.\n */\n HarmSeverity[\"HARM_SEVERITY_UNSPECIFIED\"] = \"HARM_SEVERITY_UNSPECIFIED\";\n /**\n * Negligible level of harm severity.\n */\n HarmSeverity[\"HARM_SEVERITY_NEGLIGIBLE\"] = \"HARM_SEVERITY_NEGLIGIBLE\";\n /**\n * Low level of harm severity.\n */\n HarmSeverity[\"HARM_SEVERITY_LOW\"] = \"HARM_SEVERITY_LOW\";\n /**\n * Medium level of harm severity.\n */\n HarmSeverity[\"HARM_SEVERITY_MEDIUM\"] = \"HARM_SEVERITY_MEDIUM\";\n /**\n * High level of harm severity.\n */\n HarmSeverity[\"HARM_SEVERITY_HIGH\"] = \"HARM_SEVERITY_HIGH\";\n})(HarmSeverity || (HarmSeverity = {}));\n/** Output only. The reason why the prompt was blocked. */\nvar BlockedReason;\n(function (BlockedReason) {\n /**\n * The blocked reason is unspecified.\n */\n BlockedReason[\"BLOCKED_REASON_UNSPECIFIED\"] = \"BLOCKED_REASON_UNSPECIFIED\";\n /**\n * The prompt was blocked for safety reasons.\n */\n BlockedReason[\"SAFETY\"] = \"SAFETY\";\n /**\n * The prompt was blocked for other reasons. For example, it may be due to the prompt's language, or because it contains other harmful content.\n */\n BlockedReason[\"OTHER\"] = \"OTHER\";\n /**\n * The prompt was blocked because it contains a term from the terminology blocklist.\n */\n BlockedReason[\"BLOCKLIST\"] = \"BLOCKLIST\";\n /**\n * The prompt was blocked because it contains prohibited content.\n */\n BlockedReason[\"PROHIBITED_CONTENT\"] = \"PROHIBITED_CONTENT\";\n /**\n * The prompt was blocked because it contains content that is unsafe for image generation.\n */\n BlockedReason[\"IMAGE_SAFETY\"] = \"IMAGE_SAFETY\";\n /**\n * The prompt was blocked by Model Armor.\n */\n BlockedReason[\"MODEL_ARMOR\"] = \"MODEL_ARMOR\";\n /**\n * The prompt was blocked as a jailbreak attempt.\n */\n BlockedReason[\"JAILBREAK\"] = \"JAILBREAK\";\n})(BlockedReason || (BlockedReason = {}));\n/** Output only. Traffic type. This shows whether a request consumes Pay-As-You-Go or Provisioned Throughput quota. */\nvar TrafficType;\n(function (TrafficType) {\n /**\n * Unspecified request traffic type.\n */\n TrafficType[\"TRAFFIC_TYPE_UNSPECIFIED\"] = \"TRAFFIC_TYPE_UNSPECIFIED\";\n /**\n * Type for Pay-As-You-Go traffic.\n */\n TrafficType[\"ON_DEMAND\"] = \"ON_DEMAND\";\n /**\n * Type for Provisioned Throughput traffic.\n */\n TrafficType[\"PROVISIONED_THROUGHPUT\"] = \"PROVISIONED_THROUGHPUT\";\n})(TrafficType || (TrafficType = {}));\n/** Server content modalities. */\nvar Modality;\n(function (Modality) {\n /**\n * The modality is unspecified.\n */\n Modality[\"MODALITY_UNSPECIFIED\"] = \"MODALITY_UNSPECIFIED\";\n /**\n * Indicates the model should return text\n */\n Modality[\"TEXT\"] = \"TEXT\";\n /**\n * Indicates the model should return images.\n */\n Modality[\"IMAGE\"] = \"IMAGE\";\n /**\n * Indicates the model should return audio.\n */\n Modality[\"AUDIO\"] = \"AUDIO\";\n})(Modality || (Modality = {}));\n/** The media resolution to use. */\nvar MediaResolution;\n(function (MediaResolution) {\n /**\n * Media resolution has not been set\n */\n MediaResolution[\"MEDIA_RESOLUTION_UNSPECIFIED\"] = \"MEDIA_RESOLUTION_UNSPECIFIED\";\n /**\n * Media resolution set to low (64 tokens).\n */\n MediaResolution[\"MEDIA_RESOLUTION_LOW\"] = \"MEDIA_RESOLUTION_LOW\";\n /**\n * Media resolution set to medium (256 tokens).\n */\n MediaResolution[\"MEDIA_RESOLUTION_MEDIUM\"] = \"MEDIA_RESOLUTION_MEDIUM\";\n /**\n * Media resolution set to high (zoomed reframing with 256 tokens).\n */\n MediaResolution[\"MEDIA_RESOLUTION_HIGH\"] = \"MEDIA_RESOLUTION_HIGH\";\n})(MediaResolution || (MediaResolution = {}));\n/** Job state. */\nvar JobState;\n(function (JobState) {\n /**\n * The job state is unspecified.\n */\n JobState[\"JOB_STATE_UNSPECIFIED\"] = \"JOB_STATE_UNSPECIFIED\";\n /**\n * The job has been just created or resumed and processing has not yet begun.\n */\n JobState[\"JOB_STATE_QUEUED\"] = \"JOB_STATE_QUEUED\";\n /**\n * The service is preparing to run the job.\n */\n JobState[\"JOB_STATE_PENDING\"] = \"JOB_STATE_PENDING\";\n /**\n * The job is in progress.\n */\n JobState[\"JOB_STATE_RUNNING\"] = \"JOB_STATE_RUNNING\";\n /**\n * The job completed successfully.\n */\n JobState[\"JOB_STATE_SUCCEEDED\"] = \"JOB_STATE_SUCCEEDED\";\n /**\n * The job failed.\n */\n JobState[\"JOB_STATE_FAILED\"] = \"JOB_STATE_FAILED\";\n /**\n * The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.\n */\n JobState[\"JOB_STATE_CANCELLING\"] = \"JOB_STATE_CANCELLING\";\n /**\n * The job has been cancelled.\n */\n JobState[\"JOB_STATE_CANCELLED\"] = \"JOB_STATE_CANCELLED\";\n /**\n * The job has been stopped, and can be resumed.\n */\n JobState[\"JOB_STATE_PAUSED\"] = \"JOB_STATE_PAUSED\";\n /**\n * The job has expired.\n */\n JobState[\"JOB_STATE_EXPIRED\"] = \"JOB_STATE_EXPIRED\";\n /**\n * The job is being updated. Only jobs in the `JOB_STATE_RUNNING` state can be updated. After updating, the job goes back to the `JOB_STATE_RUNNING` state.\n */\n JobState[\"JOB_STATE_UPDATING\"] = \"JOB_STATE_UPDATING\";\n /**\n * The job is partially succeeded, some results may be missing due to errors.\n */\n JobState[\"JOB_STATE_PARTIALLY_SUCCEEDED\"] = \"JOB_STATE_PARTIALLY_SUCCEEDED\";\n})(JobState || (JobState = {}));\n/** Tuning mode. */\nvar TuningMode;\n(function (TuningMode) {\n /**\n * Tuning mode is unspecified.\n */\n TuningMode[\"TUNING_MODE_UNSPECIFIED\"] = \"TUNING_MODE_UNSPECIFIED\";\n /**\n * Full fine-tuning mode.\n */\n TuningMode[\"TUNING_MODE_FULL\"] = \"TUNING_MODE_FULL\";\n /**\n * PEFT adapter tuning mode.\n */\n TuningMode[\"TUNING_MODE_PEFT_ADAPTER\"] = \"TUNING_MODE_PEFT_ADAPTER\";\n})(TuningMode || (TuningMode = {}));\n/** Optional. Adapter size for tuning. */\nvar AdapterSize;\n(function (AdapterSize) {\n /**\n * Adapter size is unspecified.\n */\n AdapterSize[\"ADAPTER_SIZE_UNSPECIFIED\"] = \"ADAPTER_SIZE_UNSPECIFIED\";\n /**\n * Adapter size 1.\n */\n AdapterSize[\"ADAPTER_SIZE_ONE\"] = \"ADAPTER_SIZE_ONE\";\n /**\n * Adapter size 2.\n */\n AdapterSize[\"ADAPTER_SIZE_TWO\"] = \"ADAPTER_SIZE_TWO\";\n /**\n * Adapter size 4.\n */\n AdapterSize[\"ADAPTER_SIZE_FOUR\"] = \"ADAPTER_SIZE_FOUR\";\n /**\n * Adapter size 8.\n */\n AdapterSize[\"ADAPTER_SIZE_EIGHT\"] = \"ADAPTER_SIZE_EIGHT\";\n /**\n * Adapter size 16.\n */\n AdapterSize[\"ADAPTER_SIZE_SIXTEEN\"] = \"ADAPTER_SIZE_SIXTEEN\";\n /**\n * Adapter size 32.\n */\n AdapterSize[\"ADAPTER_SIZE_THIRTY_TWO\"] = \"ADAPTER_SIZE_THIRTY_TWO\";\n})(AdapterSize || (AdapterSize = {}));\n/** Optional. The tuning task. Either I2V or T2V. */\nvar TuningTask;\n(function (TuningTask) {\n /**\n * Default value. This value is unused.\n */\n TuningTask[\"TUNING_TASK_UNSPECIFIED\"] = \"TUNING_TASK_UNSPECIFIED\";\n /**\n * Tuning task for image to video.\n */\n TuningTask[\"TUNING_TASK_I2V\"] = \"TUNING_TASK_I2V\";\n /**\n * Tuning task for text to video.\n */\n TuningTask[\"TUNING_TASK_T2V\"] = \"TUNING_TASK_T2V\";\n})(TuningTask || (TuningTask = {}));\n/** Options for feature selection preference. */\nvar FeatureSelectionPreference;\n(function (FeatureSelectionPreference) {\n FeatureSelectionPreference[\"FEATURE_SELECTION_PREFERENCE_UNSPECIFIED\"] = \"FEATURE_SELECTION_PREFERENCE_UNSPECIFIED\";\n FeatureSelectionPreference[\"PRIORITIZE_QUALITY\"] = \"PRIORITIZE_QUALITY\";\n FeatureSelectionPreference[\"BALANCED\"] = \"BALANCED\";\n FeatureSelectionPreference[\"PRIORITIZE_COST\"] = \"PRIORITIZE_COST\";\n})(FeatureSelectionPreference || (FeatureSelectionPreference = {}));\n/** Defines the function behavior. Defaults to `BLOCKING`. */\nvar Behavior;\n(function (Behavior) {\n /**\n * This value is unused.\n */\n Behavior[\"UNSPECIFIED\"] = \"UNSPECIFIED\";\n /**\n * If set, the system will wait to receive the function response before continuing the conversation.\n */\n Behavior[\"BLOCKING\"] = \"BLOCKING\";\n /**\n * If set, the system will not wait to receive the function response. Instead, it will attempt to handle function responses as they become available while maintaining the conversation between the user and the model.\n */\n Behavior[\"NON_BLOCKING\"] = \"NON_BLOCKING\";\n})(Behavior || (Behavior = {}));\n/** Config for the dynamic retrieval config mode. */\nvar DynamicRetrievalConfigMode;\n(function (DynamicRetrievalConfigMode) {\n /**\n * Always trigger retrieval.\n */\n DynamicRetrievalConfigMode[\"MODE_UNSPECIFIED\"] = \"MODE_UNSPECIFIED\";\n /**\n * Run retrieval only when system decides it is necessary.\n */\n DynamicRetrievalConfigMode[\"MODE_DYNAMIC\"] = \"MODE_DYNAMIC\";\n})(DynamicRetrievalConfigMode || (DynamicRetrievalConfigMode = {}));\n/** The environment being operated. */\nvar Environment;\n(function (Environment) {\n /**\n * Defaults to browser.\n */\n Environment[\"ENVIRONMENT_UNSPECIFIED\"] = \"ENVIRONMENT_UNSPECIFIED\";\n /**\n * Operates in a web browser.\n */\n Environment[\"ENVIRONMENT_BROWSER\"] = \"ENVIRONMENT_BROWSER\";\n})(Environment || (Environment = {}));\n/** Config for the function calling config mode. */\nvar FunctionCallingConfigMode;\n(function (FunctionCallingConfigMode) {\n /**\n * The function calling config mode is unspecified. Should not be used.\n */\n FunctionCallingConfigMode[\"MODE_UNSPECIFIED\"] = \"MODE_UNSPECIFIED\";\n /**\n * Default model behavior, model decides to predict either function calls or natural language response.\n */\n FunctionCallingConfigMode[\"AUTO\"] = \"AUTO\";\n /**\n * Model is constrained to always predicting function calls only. If \"allowed_function_names\" are set, the predicted function calls will be limited to any one of \"allowed_function_names\", else the predicted function calls will be any one of the provided \"function_declarations\".\n */\n FunctionCallingConfigMode[\"ANY\"] = \"ANY\";\n /**\n * Model will not predict any function calls. Model behavior is same as when not passing any function declarations.\n */\n FunctionCallingConfigMode[\"NONE\"] = \"NONE\";\n /**\n * Model decides to predict either a function call or a natural language response, but will validate function calls with constrained decoding. If \"allowed_function_names\" are set, the predicted function call will be limited to any one of \"allowed_function_names\", else the predicted function call will be any one of the provided \"function_declarations\".\n */\n FunctionCallingConfigMode[\"VALIDATED\"] = \"VALIDATED\";\n})(FunctionCallingConfigMode || (FunctionCallingConfigMode = {}));\n/** Enum that controls the safety filter level for objectionable content. */\nvar SafetyFilterLevel;\n(function (SafetyFilterLevel) {\n SafetyFilterLevel[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n SafetyFilterLevel[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n SafetyFilterLevel[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n SafetyFilterLevel[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n})(SafetyFilterLevel || (SafetyFilterLevel = {}));\n/** Enum that controls the generation of people. */\nvar PersonGeneration;\n(function (PersonGeneration) {\n /**\n * Block generation of images of people.\n */\n PersonGeneration[\"DONT_ALLOW\"] = \"DONT_ALLOW\";\n /**\n * Generate images of adults, but not children.\n */\n PersonGeneration[\"ALLOW_ADULT\"] = \"ALLOW_ADULT\";\n /**\n * Generate images that include adults and children.\n */\n PersonGeneration[\"ALLOW_ALL\"] = \"ALLOW_ALL\";\n})(PersonGeneration || (PersonGeneration = {}));\n/** Enum that specifies the language of the text in the prompt. */\nvar ImagePromptLanguage;\n(function (ImagePromptLanguage) {\n /**\n * Auto-detect the language.\n */\n ImagePromptLanguage[\"auto\"] = \"auto\";\n /**\n * English\n */\n ImagePromptLanguage[\"en\"] = \"en\";\n /**\n * Japanese\n */\n ImagePromptLanguage[\"ja\"] = \"ja\";\n /**\n * Korean\n */\n ImagePromptLanguage[\"ko\"] = \"ko\";\n /**\n * Hindi\n */\n ImagePromptLanguage[\"hi\"] = \"hi\";\n /**\n * Chinese\n */\n ImagePromptLanguage[\"zh\"] = \"zh\";\n /**\n * Portuguese\n */\n ImagePromptLanguage[\"pt\"] = \"pt\";\n /**\n * Spanish\n */\n ImagePromptLanguage[\"es\"] = \"es\";\n})(ImagePromptLanguage || (ImagePromptLanguage = {}));\n/** Enum representing the mask mode of a mask reference image. */\nvar MaskReferenceMode;\n(function (MaskReferenceMode) {\n MaskReferenceMode[\"MASK_MODE_DEFAULT\"] = \"MASK_MODE_DEFAULT\";\n MaskReferenceMode[\"MASK_MODE_USER_PROVIDED\"] = \"MASK_MODE_USER_PROVIDED\";\n MaskReferenceMode[\"MASK_MODE_BACKGROUND\"] = \"MASK_MODE_BACKGROUND\";\n MaskReferenceMode[\"MASK_MODE_FOREGROUND\"] = \"MASK_MODE_FOREGROUND\";\n MaskReferenceMode[\"MASK_MODE_SEMANTIC\"] = \"MASK_MODE_SEMANTIC\";\n})(MaskReferenceMode || (MaskReferenceMode = {}));\n/** Enum representing the control type of a control reference image. */\nvar ControlReferenceType;\n(function (ControlReferenceType) {\n ControlReferenceType[\"CONTROL_TYPE_DEFAULT\"] = \"CONTROL_TYPE_DEFAULT\";\n ControlReferenceType[\"CONTROL_TYPE_CANNY\"] = \"CONTROL_TYPE_CANNY\";\n ControlReferenceType[\"CONTROL_TYPE_SCRIBBLE\"] = \"CONTROL_TYPE_SCRIBBLE\";\n ControlReferenceType[\"CONTROL_TYPE_FACE_MESH\"] = \"CONTROL_TYPE_FACE_MESH\";\n})(ControlReferenceType || (ControlReferenceType = {}));\n/** Enum representing the subject type of a subject reference image. */\nvar SubjectReferenceType;\n(function (SubjectReferenceType) {\n SubjectReferenceType[\"SUBJECT_TYPE_DEFAULT\"] = \"SUBJECT_TYPE_DEFAULT\";\n SubjectReferenceType[\"SUBJECT_TYPE_PERSON\"] = \"SUBJECT_TYPE_PERSON\";\n SubjectReferenceType[\"SUBJECT_TYPE_ANIMAL\"] = \"SUBJECT_TYPE_ANIMAL\";\n SubjectReferenceType[\"SUBJECT_TYPE_PRODUCT\"] = \"SUBJECT_TYPE_PRODUCT\";\n})(SubjectReferenceType || (SubjectReferenceType = {}));\n/** Enum representing the editing mode. */\nvar EditMode;\n(function (EditMode) {\n EditMode[\"EDIT_MODE_DEFAULT\"] = \"EDIT_MODE_DEFAULT\";\n EditMode[\"EDIT_MODE_INPAINT_REMOVAL\"] = \"EDIT_MODE_INPAINT_REMOVAL\";\n EditMode[\"EDIT_MODE_INPAINT_INSERTION\"] = \"EDIT_MODE_INPAINT_INSERTION\";\n EditMode[\"EDIT_MODE_OUTPAINT\"] = \"EDIT_MODE_OUTPAINT\";\n EditMode[\"EDIT_MODE_CONTROLLED_EDITING\"] = \"EDIT_MODE_CONTROLLED_EDITING\";\n EditMode[\"EDIT_MODE_STYLE\"] = \"EDIT_MODE_STYLE\";\n EditMode[\"EDIT_MODE_BGSWAP\"] = \"EDIT_MODE_BGSWAP\";\n EditMode[\"EDIT_MODE_PRODUCT_IMAGE\"] = \"EDIT_MODE_PRODUCT_IMAGE\";\n})(EditMode || (EditMode = {}));\n/** Enum that represents the segmentation mode. */\nvar SegmentMode;\n(function (SegmentMode) {\n SegmentMode[\"FOREGROUND\"] = \"FOREGROUND\";\n SegmentMode[\"BACKGROUND\"] = \"BACKGROUND\";\n SegmentMode[\"PROMPT\"] = \"PROMPT\";\n SegmentMode[\"SEMANTIC\"] = \"SEMANTIC\";\n SegmentMode[\"INTERACTIVE\"] = \"INTERACTIVE\";\n})(SegmentMode || (SegmentMode = {}));\n/** Enum for the reference type of a video generation reference image. */\nvar VideoGenerationReferenceType;\n(function (VideoGenerationReferenceType) {\n /**\n * A reference image that provides assets to the generated video,\n such as the scene, an object, a character, etc.\n */\n VideoGenerationReferenceType[\"ASSET\"] = \"ASSET\";\n /**\n * A reference image that provides aesthetics including colors,\n lighting, texture, etc., to be used as the style of the generated video,\n such as 'anime', 'photography', 'origami', etc.\n */\n VideoGenerationReferenceType[\"STYLE\"] = \"STYLE\";\n})(VideoGenerationReferenceType || (VideoGenerationReferenceType = {}));\n/** Enum for the mask mode of a video generation mask. */\nvar VideoGenerationMaskMode;\n(function (VideoGenerationMaskMode) {\n /**\n * The image mask contains a masked rectangular region which is\n applied on the first frame of the input video. The object described in\n the prompt is inserted into this region and will appear in subsequent\n frames.\n */\n VideoGenerationMaskMode[\"INSERT\"] = \"INSERT\";\n /**\n * The image mask is used to determine an object in the\n first video frame to track. This object is removed from the video.\n */\n VideoGenerationMaskMode[\"REMOVE\"] = \"REMOVE\";\n /**\n * The image mask is used to determine a region in the\n video. Objects in this region will be removed.\n */\n VideoGenerationMaskMode[\"REMOVE_STATIC\"] = \"REMOVE_STATIC\";\n /**\n * The image mask contains a masked rectangular region where\n the input video will go. The remaining area will be generated. Video\n masks are not supported.\n */\n VideoGenerationMaskMode[\"OUTPAINT\"] = \"OUTPAINT\";\n})(VideoGenerationMaskMode || (VideoGenerationMaskMode = {}));\n/** Enum that controls the compression quality of the generated videos. */\nvar VideoCompressionQuality;\n(function (VideoCompressionQuality) {\n /**\n * Optimized video compression quality. This will produce videos\n with a compressed, smaller file size.\n */\n VideoCompressionQuality[\"OPTIMIZED\"] = \"OPTIMIZED\";\n /**\n * Lossless video compression quality. This will produce videos\n with a larger file size.\n */\n VideoCompressionQuality[\"LOSSLESS\"] = \"LOSSLESS\";\n})(VideoCompressionQuality || (VideoCompressionQuality = {}));\n/** State for the lifecycle of a File. */\nvar FileState;\n(function (FileState) {\n FileState[\"STATE_UNSPECIFIED\"] = \"STATE_UNSPECIFIED\";\n FileState[\"PROCESSING\"] = \"PROCESSING\";\n FileState[\"ACTIVE\"] = \"ACTIVE\";\n FileState[\"FAILED\"] = \"FAILED\";\n})(FileState || (FileState = {}));\n/** Source of the File. */\nvar FileSource;\n(function (FileSource) {\n FileSource[\"SOURCE_UNSPECIFIED\"] = \"SOURCE_UNSPECIFIED\";\n FileSource[\"UPLOADED\"] = \"UPLOADED\";\n FileSource[\"GENERATED\"] = \"GENERATED\";\n})(FileSource || (FileSource = {}));\n/** The reason why the turn is complete. */\nvar TurnCompleteReason;\n(function (TurnCompleteReason) {\n /**\n * Default value. Reason is unspecified.\n */\n TurnCompleteReason[\"TURN_COMPLETE_REASON_UNSPECIFIED\"] = \"TURN_COMPLETE_REASON_UNSPECIFIED\";\n /**\n * The function call generated by the model is invalid.\n */\n TurnCompleteReason[\"MALFORMED_FUNCTION_CALL\"] = \"MALFORMED_FUNCTION_CALL\";\n /**\n * The response is rejected by the model.\n */\n TurnCompleteReason[\"RESPONSE_REJECTED\"] = \"RESPONSE_REJECTED\";\n /**\n * Needs more input from the user.\n */\n TurnCompleteReason[\"NEED_MORE_INPUT\"] = \"NEED_MORE_INPUT\";\n})(TurnCompleteReason || (TurnCompleteReason = {}));\n/** Server content modalities. */\nvar MediaModality;\n(function (MediaModality) {\n /**\n * The modality is unspecified.\n */\n MediaModality[\"MODALITY_UNSPECIFIED\"] = \"MODALITY_UNSPECIFIED\";\n /**\n * Plain text.\n */\n MediaModality[\"TEXT\"] = \"TEXT\";\n /**\n * Images.\n */\n MediaModality[\"IMAGE\"] = \"IMAGE\";\n /**\n * Video.\n */\n MediaModality[\"VIDEO\"] = \"VIDEO\";\n /**\n * Audio.\n */\n MediaModality[\"AUDIO\"] = \"AUDIO\";\n /**\n * Document, e.g. PDF.\n */\n MediaModality[\"DOCUMENT\"] = \"DOCUMENT\";\n})(MediaModality || (MediaModality = {}));\n/** Start of speech sensitivity. */\nvar StartSensitivity;\n(function (StartSensitivity) {\n /**\n * The default is START_SENSITIVITY_LOW.\n */\n StartSensitivity[\"START_SENSITIVITY_UNSPECIFIED\"] = \"START_SENSITIVITY_UNSPECIFIED\";\n /**\n * Automatic detection will detect the start of speech more often.\n */\n StartSensitivity[\"START_SENSITIVITY_HIGH\"] = \"START_SENSITIVITY_HIGH\";\n /**\n * Automatic detection will detect the start of speech less often.\n */\n StartSensitivity[\"START_SENSITIVITY_LOW\"] = \"START_SENSITIVITY_LOW\";\n})(StartSensitivity || (StartSensitivity = {}));\n/** End of speech sensitivity. */\nvar EndSensitivity;\n(function (EndSensitivity) {\n /**\n * The default is END_SENSITIVITY_LOW.\n */\n EndSensitivity[\"END_SENSITIVITY_UNSPECIFIED\"] = \"END_SENSITIVITY_UNSPECIFIED\";\n /**\n * Automatic detection ends speech more often.\n */\n EndSensitivity[\"END_SENSITIVITY_HIGH\"] = \"END_SENSITIVITY_HIGH\";\n /**\n * Automatic detection ends speech less often.\n */\n EndSensitivity[\"END_SENSITIVITY_LOW\"] = \"END_SENSITIVITY_LOW\";\n})(EndSensitivity || (EndSensitivity = {}));\n/** The different ways of handling user activity. */\nvar ActivityHandling;\n(function (ActivityHandling) {\n /**\n * If unspecified, the default behavior is `START_OF_ACTIVITY_INTERRUPTS`.\n */\n ActivityHandling[\"ACTIVITY_HANDLING_UNSPECIFIED\"] = \"ACTIVITY_HANDLING_UNSPECIFIED\";\n /**\n * If true, start of activity will interrupt the model's response (also called \"barge in\"). The model's current response will be cut-off in the moment of the interruption. This is the default behavior.\n */\n ActivityHandling[\"START_OF_ACTIVITY_INTERRUPTS\"] = \"START_OF_ACTIVITY_INTERRUPTS\";\n /**\n * The model's response will not be interrupted.\n */\n ActivityHandling[\"NO_INTERRUPTION\"] = \"NO_INTERRUPTION\";\n})(ActivityHandling || (ActivityHandling = {}));\n/** Options about which input is included in the user's turn. */\nvar TurnCoverage;\n(function (TurnCoverage) {\n /**\n * If unspecified, the default behavior is `TURN_INCLUDES_ONLY_ACTIVITY`.\n */\n TurnCoverage[\"TURN_COVERAGE_UNSPECIFIED\"] = \"TURN_COVERAGE_UNSPECIFIED\";\n /**\n * The users turn only includes activity since the last turn, excluding inactivity (e.g. silence on the audio stream). This is the default behavior.\n */\n TurnCoverage[\"TURN_INCLUDES_ONLY_ACTIVITY\"] = \"TURN_INCLUDES_ONLY_ACTIVITY\";\n /**\n * The users turn includes all realtime input since the last turn, including inactivity (e.g. silence on the audio stream).\n */\n TurnCoverage[\"TURN_INCLUDES_ALL_INPUT\"] = \"TURN_INCLUDES_ALL_INPUT\";\n})(TurnCoverage || (TurnCoverage = {}));\n/** Scale of the generated music. */\nvar Scale;\n(function (Scale) {\n /**\n * Default value. This value is unused.\n */\n Scale[\"SCALE_UNSPECIFIED\"] = \"SCALE_UNSPECIFIED\";\n /**\n * C major or A minor.\n */\n Scale[\"C_MAJOR_A_MINOR\"] = \"C_MAJOR_A_MINOR\";\n /**\n * Db major or Bb minor.\n */\n Scale[\"D_FLAT_MAJOR_B_FLAT_MINOR\"] = \"D_FLAT_MAJOR_B_FLAT_MINOR\";\n /**\n * D major or B minor.\n */\n Scale[\"D_MAJOR_B_MINOR\"] = \"D_MAJOR_B_MINOR\";\n /**\n * Eb major or C minor\n */\n Scale[\"E_FLAT_MAJOR_C_MINOR\"] = \"E_FLAT_MAJOR_C_MINOR\";\n /**\n * E major or Db minor.\n */\n Scale[\"E_MAJOR_D_FLAT_MINOR\"] = \"E_MAJOR_D_FLAT_MINOR\";\n /**\n * F major or D minor.\n */\n Scale[\"F_MAJOR_D_MINOR\"] = \"F_MAJOR_D_MINOR\";\n /**\n * Gb major or Eb minor.\n */\n Scale[\"G_FLAT_MAJOR_E_FLAT_MINOR\"] = \"G_FLAT_MAJOR_E_FLAT_MINOR\";\n /**\n * G major or E minor.\n */\n Scale[\"G_MAJOR_E_MINOR\"] = \"G_MAJOR_E_MINOR\";\n /**\n * Ab major or F minor.\n */\n Scale[\"A_FLAT_MAJOR_F_MINOR\"] = \"A_FLAT_MAJOR_F_MINOR\";\n /**\n * A major or Gb minor.\n */\n Scale[\"A_MAJOR_G_FLAT_MINOR\"] = \"A_MAJOR_G_FLAT_MINOR\";\n /**\n * Bb major or G minor.\n */\n Scale[\"B_FLAT_MAJOR_G_MINOR\"] = \"B_FLAT_MAJOR_G_MINOR\";\n /**\n * B major or Ab minor.\n */\n Scale[\"B_MAJOR_A_FLAT_MINOR\"] = \"B_MAJOR_A_FLAT_MINOR\";\n})(Scale || (Scale = {}));\n/** The mode of music generation. */\nvar MusicGenerationMode;\n(function (MusicGenerationMode) {\n /**\n * Rely on the server default generation mode.\n */\n MusicGenerationMode[\"MUSIC_GENERATION_MODE_UNSPECIFIED\"] = \"MUSIC_GENERATION_MODE_UNSPECIFIED\";\n /**\n * Steer text prompts to regions of latent space with higher quality\n music.\n */\n MusicGenerationMode[\"QUALITY\"] = \"QUALITY\";\n /**\n * Steer text prompts to regions of latent space with a larger\n diversity of music.\n */\n MusicGenerationMode[\"DIVERSITY\"] = \"DIVERSITY\";\n /**\n * Steer text prompts to regions of latent space more likely to\n generate music with vocals.\n */\n MusicGenerationMode[\"VOCALIZATION\"] = \"VOCALIZATION\";\n})(MusicGenerationMode || (MusicGenerationMode = {}));\n/** The playback control signal to apply to the music generation. */\nvar LiveMusicPlaybackControl;\n(function (LiveMusicPlaybackControl) {\n /**\n * This value is unused.\n */\n LiveMusicPlaybackControl[\"PLAYBACK_CONTROL_UNSPECIFIED\"] = \"PLAYBACK_CONTROL_UNSPECIFIED\";\n /**\n * Start generating the music.\n */\n LiveMusicPlaybackControl[\"PLAY\"] = \"PLAY\";\n /**\n * Hold the music generation. Use PLAY to resume from the current position.\n */\n LiveMusicPlaybackControl[\"PAUSE\"] = \"PAUSE\";\n /**\n * Stop the music generation and reset the context (prompts retained).\n Use PLAY to restart the music generation.\n */\n LiveMusicPlaybackControl[\"STOP\"] = \"STOP\";\n /**\n * Reset the context of the music generation without stopping it.\n Retains the current prompts and config.\n */\n LiveMusicPlaybackControl[\"RESET_CONTEXT\"] = \"RESET_CONTEXT\";\n})(LiveMusicPlaybackControl || (LiveMusicPlaybackControl = {}));\n/** Raw media bytes for function response.\n\nText should not be sent as raw bytes, use the FunctionResponse.response\nfield. */\nclass FunctionResponseBlob {\n}\n/** URI based data for function response. */\nclass FunctionResponseFileData {\n}\n/** A datatype containing media that is part of a `FunctionResponse` message.\n\nA `FunctionResponsePart` consists of data which has an associated datatype. A\n`FunctionResponsePart` can only contain one of the accepted types in\n`FunctionResponsePart.data`.\n\nA `FunctionResponsePart` must have a fixed IANA MIME type identifying the\ntype and subtype of the media if the `inline_data` field is filled with raw\nbytes. */\nclass FunctionResponsePart {\n}\n/**\n * Creates a `FunctionResponsePart` object from a `base64` encoded `string`.\n */\nfunction createFunctionResponsePartFromBase64(data, mimeType) {\n return {\n inlineData: {\n data: data,\n mimeType: mimeType,\n },\n };\n}\n/**\n * Creates a `FunctionResponsePart` object from a `URI` string.\n */\nfunction createFunctionResponsePartFromUri(uri, mimeType) {\n return {\n fileData: {\n fileUri: uri,\n mimeType: mimeType,\n },\n };\n}\n/** A function response. */\nclass FunctionResponse {\n}\n/**\n * Creates a `Part` object from a `URI` string.\n */\nfunction createPartFromUri(uri, mimeType) {\n return {\n fileData: {\n fileUri: uri,\n mimeType: mimeType,\n },\n };\n}\n/**\n * Creates a `Part` object from a `text` string.\n */\nfunction createPartFromText(text) {\n return {\n text: text,\n };\n}\n/**\n * Creates a `Part` object from a `FunctionCall` object.\n */\nfunction createPartFromFunctionCall(name, args) {\n return {\n functionCall: {\n name: name,\n args: args,\n },\n };\n}\n/**\n * Creates a `Part` object from a `FunctionResponse` object.\n */\nfunction createPartFromFunctionResponse(id, name, response, parts = []) {\n return {\n functionResponse: Object.assign({ id: id, name: name, response: response }, (parts.length > 0 && { parts })),\n };\n}\n/**\n * Creates a `Part` object from a `base64` encoded `string`.\n */\nfunction createPartFromBase64(data, mimeType) {\n return {\n inlineData: {\n data: data,\n mimeType: mimeType,\n },\n };\n}\n/**\n * Creates a `Part` object from the `outcome` and `output` of a `CodeExecutionResult` object.\n */\nfunction createPartFromCodeExecutionResult(outcome, output) {\n return {\n codeExecutionResult: {\n outcome: outcome,\n output: output,\n },\n };\n}\n/**\n * Creates a `Part` object from the `code` and `language` of an `ExecutableCode` object.\n */\nfunction createPartFromExecutableCode(code, language) {\n return {\n executableCode: {\n code: code,\n language: language,\n },\n };\n}\nfunction _isPart(obj) {\n if (typeof obj === 'object' && obj !== null) {\n return ('fileData' in obj ||\n 'text' in obj ||\n 'functionCall' in obj ||\n 'functionResponse' in obj ||\n 'inlineData' in obj ||\n 'videoMetadata' in obj ||\n 'codeExecutionResult' in obj ||\n 'executableCode' in obj);\n }\n return false;\n}\nfunction _toParts(partOrString) {\n const parts = [];\n if (typeof partOrString === 'string') {\n parts.push(createPartFromText(partOrString));\n }\n else if (_isPart(partOrString)) {\n parts.push(partOrString);\n }\n else if (Array.isArray(partOrString)) {\n if (partOrString.length === 0) {\n throw new Error('partOrString cannot be an empty array');\n }\n for (const part of partOrString) {\n if (typeof part === 'string') {\n parts.push(createPartFromText(part));\n }\n else if (_isPart(part)) {\n parts.push(part);\n }\n else {\n throw new Error('element in PartUnion must be a Part object or string');\n }\n }\n }\n else {\n throw new Error('partOrString must be a Part object, string, or array');\n }\n return parts;\n}\n/**\n * Creates a `Content` object with a user role from a `PartListUnion` object or `string`.\n */\nfunction createUserContent(partOrString) {\n return {\n role: 'user',\n parts: _toParts(partOrString),\n };\n}\n/**\n * Creates a `Content` object with a model role from a `PartListUnion` object or `string`.\n */\nfunction createModelContent(partOrString) {\n return {\n role: 'model',\n parts: _toParts(partOrString),\n };\n}\n/** A wrapper class for the http response. */\nclass HttpResponse {\n constructor(response) {\n // Process the headers.\n const headers = {};\n for (const pair of response.headers.entries()) {\n headers[pair[0]] = pair[1];\n }\n this.headers = headers;\n // Keep the original response.\n this.responseInternal = response;\n }\n json() {\n return this.responseInternal.json();\n }\n}\n/** Content filter results for a prompt sent in the request. Note: This is sent only in the first stream chunk and only if no candidates were generated due to content violations. */\nclass GenerateContentResponsePromptFeedback {\n}\n/** Usage metadata about response(s). */\nclass GenerateContentResponseUsageMetadata {\n}\n/** Response message for PredictionService.GenerateContent. */\nclass GenerateContentResponse {\n /**\n * Returns the concatenation of all text parts from the first candidate in the response.\n *\n * @remarks\n * If there are multiple candidates in the response, the text from the first\n * one will be returned.\n * If there are non-text parts in the response, the concatenation of all text\n * parts will be returned, and a warning will be logged.\n * If there are thought parts in the response, the concatenation of all text\n * parts excluding the thought parts will be returned.\n *\n * @example\n * ```ts\n * const response = await ai.models.generateContent({\n * model: 'gemini-2.0-flash',\n * contents:\n * 'Why is the sky blue?',\n * });\n *\n * console.debug(response.text);\n * ```\n */\n get text() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (((_d = (_c = (_b = (_a = this.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.parts) === null || _d === void 0 ? void 0 : _d.length) === 0) {\n return undefined;\n }\n if (this.candidates && this.candidates.length > 1) {\n console.warn('there are multiple candidates in the response, returning text from the first one.');\n }\n let text = '';\n let anyTextPartText = false;\n const nonTextParts = [];\n for (const part of (_h = (_g = (_f = (_e = this.candidates) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g.parts) !== null && _h !== void 0 ? _h : []) {\n for (const [fieldName, fieldValue] of Object.entries(part)) {\n if (fieldName !== 'text' &&\n fieldName !== 'thought' &&\n (fieldValue !== null || fieldValue !== undefined)) {\n nonTextParts.push(fieldName);\n }\n }\n if (typeof part.text === 'string') {\n if (typeof part.thought === 'boolean' && part.thought) {\n continue;\n }\n anyTextPartText = true;\n text += part.text;\n }\n }\n if (nonTextParts.length > 0) {\n console.warn(`there are non-text parts ${nonTextParts} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`);\n }\n // part.text === '' is different from part.text is null\n return anyTextPartText ? text : undefined;\n }\n /**\n * Returns the concatenation of all inline data parts from the first candidate\n * in the response.\n *\n * @remarks\n * If there are multiple candidates in the response, the inline data from the\n * first one will be returned. If there are non-inline data parts in the\n * response, the concatenation of all inline data parts will be returned, and\n * a warning will be logged.\n */\n get data() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (((_d = (_c = (_b = (_a = this.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.parts) === null || _d === void 0 ? void 0 : _d.length) === 0) {\n return undefined;\n }\n if (this.candidates && this.candidates.length > 1) {\n console.warn('there are multiple candidates in the response, returning data from the first one.');\n }\n let data = '';\n const nonDataParts = [];\n for (const part of (_h = (_g = (_f = (_e = this.candidates) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g.parts) !== null && _h !== void 0 ? _h : []) {\n for (const [fieldName, fieldValue] of Object.entries(part)) {\n if (fieldName !== 'inlineData' &&\n (fieldValue !== null || fieldValue !== undefined)) {\n nonDataParts.push(fieldName);\n }\n }\n if (part.inlineData && typeof part.inlineData.data === 'string') {\n data += atob(part.inlineData.data);\n }\n }\n if (nonDataParts.length > 0) {\n console.warn(`there are non-data parts ${nonDataParts} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`);\n }\n return data.length > 0 ? btoa(data) : undefined;\n }\n /**\n * Returns the function calls from the first candidate in the response.\n *\n * @remarks\n * If there are multiple candidates in the response, the function calls from\n * the first one will be returned.\n * If there are no function calls in the response, undefined will be returned.\n *\n * @example\n * ```ts\n * const controlLightFunctionDeclaration: FunctionDeclaration = {\n * name: 'controlLight',\n * parameters: {\n * type: Type.OBJECT,\n * description: 'Set the brightness and color temperature of a room light.',\n * properties: {\n * brightness: {\n * type: Type.NUMBER,\n * description:\n * 'Light level from 0 to 100. Zero is off and 100 is full brightness.',\n * },\n * colorTemperature: {\n * type: Type.STRING,\n * description:\n * 'Color temperature of the light fixture which can be `daylight`, `cool` or `warm`.',\n * },\n * },\n * required: ['brightness', 'colorTemperature'],\n * };\n * const response = await ai.models.generateContent({\n * model: 'gemini-2.0-flash',\n * contents: 'Dim the lights so the room feels cozy and warm.',\n * config: {\n * tools: [{functionDeclarations: [controlLightFunctionDeclaration]}],\n * toolConfig: {\n * functionCallingConfig: {\n * mode: FunctionCallingConfigMode.ANY,\n * allowedFunctionNames: ['controlLight'],\n * },\n * },\n * },\n * });\n * console.debug(JSON.stringify(response.functionCalls));\n * ```\n */\n get functionCalls() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (((_d = (_c = (_b = (_a = this.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.parts) === null || _d === void 0 ? void 0 : _d.length) === 0) {\n return undefined;\n }\n if (this.candidates && this.candidates.length > 1) {\n console.warn('there are multiple candidates in the response, returning function calls from the first one.');\n }\n const functionCalls = (_h = (_g = (_f = (_e = this.candidates) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g.parts) === null || _h === void 0 ? void 0 : _h.filter((part) => part.functionCall).map((part) => part.functionCall).filter((functionCall) => functionCall !== undefined);\n if ((functionCalls === null || functionCalls === void 0 ? void 0 : functionCalls.length) === 0) {\n return undefined;\n }\n return functionCalls;\n }\n /**\n * Returns the first executable code from the first candidate in the response.\n *\n * @remarks\n * If there are multiple candidates in the response, the executable code from\n * the first one will be returned.\n * If there are no executable code in the response, undefined will be\n * returned.\n *\n * @example\n * ```ts\n * const response = await ai.models.generateContent({\n * model: 'gemini-2.0-flash',\n * contents:\n * 'What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50.'\n * config: {\n * tools: [{codeExecution: {}}],\n * },\n * });\n *\n * console.debug(response.executableCode);\n * ```\n */\n get executableCode() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (((_d = (_c = (_b = (_a = this.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.parts) === null || _d === void 0 ? void 0 : _d.length) === 0) {\n return undefined;\n }\n if (this.candidates && this.candidates.length > 1) {\n console.warn('there are multiple candidates in the response, returning executable code from the first one.');\n }\n const executableCode = (_h = (_g = (_f = (_e = this.candidates) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g.parts) === null || _h === void 0 ? void 0 : _h.filter((part) => part.executableCode).map((part) => part.executableCode).filter((executableCode) => executableCode !== undefined);\n if ((executableCode === null || executableCode === void 0 ? void 0 : executableCode.length) === 0) {\n return undefined;\n }\n return (_j = executableCode === null || executableCode === void 0 ? void 0 : executableCode[0]) === null || _j === void 0 ? void 0 : _j.code;\n }\n /**\n * Returns the first code execution result from the first candidate in the response.\n *\n * @remarks\n * If there are multiple candidates in the response, the code execution result from\n * the first one will be returned.\n * If there are no code execution result in the response, undefined will be returned.\n *\n * @example\n * ```ts\n * const response = await ai.models.generateContent({\n * model: 'gemini-2.0-flash',\n * contents:\n * 'What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50.'\n * config: {\n * tools: [{codeExecution: {}}],\n * },\n * });\n *\n * console.debug(response.codeExecutionResult);\n * ```\n */\n get codeExecutionResult() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (((_d = (_c = (_b = (_a = this.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.parts) === null || _d === void 0 ? void 0 : _d.length) === 0) {\n return undefined;\n }\n if (this.candidates && this.candidates.length > 1) {\n console.warn('there are multiple candidates in the response, returning code execution result from the first one.');\n }\n const codeExecutionResult = (_h = (_g = (_f = (_e = this.candidates) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.content) === null || _g === void 0 ? void 0 : _g.parts) === null || _h === void 0 ? void 0 : _h.filter((part) => part.codeExecutionResult).map((part) => part.codeExecutionResult).filter((codeExecutionResult) => codeExecutionResult !== undefined);\n if ((codeExecutionResult === null || codeExecutionResult === void 0 ? void 0 : codeExecutionResult.length) === 0) {\n return undefined;\n }\n return (_j = codeExecutionResult === null || codeExecutionResult === void 0 ? void 0 : codeExecutionResult[0]) === null || _j === void 0 ? void 0 : _j.output;\n }\n}\n/** Response for the embed_content method. */\nclass EmbedContentResponse {\n}\n/** The output images response. */\nclass GenerateImagesResponse {\n}\n/** Response for the request to edit an image. */\nclass EditImageResponse {\n}\nclass UpscaleImageResponse {\n}\n/** The output images response. */\nclass RecontextImageResponse {\n}\n/** The output images response. */\nclass SegmentImageResponse {\n}\nclass ListModelsResponse {\n}\nclass DeleteModelResponse {\n}\n/** Response for counting tokens. */\nclass CountTokensResponse {\n}\n/** Response for computing tokens. */\nclass ComputeTokensResponse {\n}\n/** Response with generated videos. */\nclass GenerateVideosResponse {\n}\n/** A video generation operation. */\nclass GenerateVideosOperation {\n /**\n * Instantiates an Operation of the same type as the one being called with the fields set from the API response.\n * @internal\n */\n _fromAPIResponse({ apiResponse, isVertexAI, }) {\n const operation = new GenerateVideosOperation();\n let response;\n const op = apiResponse;\n if (isVertexAI) {\n response = generateVideosOperationFromVertex$1(op);\n }\n else {\n response = generateVideosOperationFromMldev$1(op);\n }\n Object.assign(operation, response);\n return operation;\n }\n}\n/** Response for the list tuning jobs method. */\nclass ListTuningJobsResponse {\n}\n/** Empty response for caches.delete method. */\nclass DeleteCachedContentResponse {\n}\nclass ListCachedContentsResponse {\n}\n/** Response for the list files method. */\nclass ListFilesResponse {\n}\n/** Response for the create file method. */\nclass CreateFileResponse {\n}\n/** Response for the delete file method. */\nclass DeleteFileResponse {\n}\n/** Config for `inlined_responses` parameter. */\nclass InlinedResponse {\n}\n/** Config for `response` parameter. */\nclass SingleEmbedContentResponse {\n}\n/** Config for `inlined_embedding_responses` parameter. */\nclass InlinedEmbedContentResponse {\n}\n/** Config for batches.list return value. */\nclass ListBatchJobsResponse {\n}\n/** Represents a single response in a replay. */\nclass ReplayResponse {\n}\n/** A raw reference image.\n\nA raw reference image represents the base image to edit, provided by the user.\nIt can optionally be provided in addition to a mask reference image or\na style reference image. */\nclass RawReferenceImage {\n /** Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_RAW',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n };\n return referenceImageAPI;\n }\n}\n/** A mask reference image.\n\nThis encapsulates either a mask image provided by the user and configs for\nthe user provided mask, or only config parameters for the model to generate\na mask.\n\nA mask image is an image whose non-zero values indicate where to edit the base\nimage. If the user provides a mask image, the mask must be in the same\ndimensions as the raw image. */\nclass MaskReferenceImage {\n /** Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_MASK',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n maskImageConfig: this.config,\n };\n return referenceImageAPI;\n }\n}\n/** A control reference image.\n\nThe image of the control reference image is either a control image provided\nby the user, or a regular image which the backend will use to generate a\ncontrol image of. In the case of the latter, the\nenable_control_image_computation field in the config should be set to True.\n\nA control image is an image that represents a sketch image of areas for the\nmodel to fill in based on the prompt. */\nclass ControlReferenceImage {\n /** Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_CONTROL',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n controlImageConfig: this.config,\n };\n return referenceImageAPI;\n }\n}\n/** A style reference image.\n\nThis encapsulates a style reference image provided by the user, and\nadditionally optional config parameters for the style reference image.\n\nA raw reference image can also be provided as a destination for the style to\nbe applied to. */\nclass StyleReferenceImage {\n /** Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_STYLE',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n styleImageConfig: this.config,\n };\n return referenceImageAPI;\n }\n}\n/** A subject reference image.\n\nThis encapsulates a subject reference image provided by the user, and\nadditionally optional config parameters for the subject reference image.\n\nA raw reference image can also be provided as a destination for the subject to\nbe applied to. */\nclass SubjectReferenceImage {\n /* Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_SUBJECT',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n subjectImageConfig: this.config,\n };\n return referenceImageAPI;\n }\n}\n/** A content reference image.\n\nA content reference image represents a subject to reference (ex. person,\nproduct, animal) provided by the user. It can optionally be provided in\naddition to a style reference image (ex. background, style reference). */\nclass ContentReferenceImage {\n /** Internal method to convert to ReferenceImageAPIInternal. */\n toReferenceImageAPI() {\n const referenceImageAPI = {\n referenceType: 'REFERENCE_TYPE_CONTENT',\n referenceImage: this.referenceImage,\n referenceId: this.referenceId,\n };\n return referenceImageAPI;\n }\n}\n/** Response message for API call. */\nclass LiveServerMessage {\n /**\n * Returns the concatenation of all text parts from the server content if present.\n *\n * @remarks\n * If there are non-text parts in the response, the concatenation of all text\n * parts will be returned, and a warning will be logged.\n */\n get text() {\n var _a, _b, _c;\n let text = '';\n let anyTextPartFound = false;\n const nonTextParts = [];\n for (const part of (_c = (_b = (_a = this.serverContent) === null || _a === void 0 ? void 0 : _a.modelTurn) === null || _b === void 0 ? void 0 : _b.parts) !== null && _c !== void 0 ? _c : []) {\n for (const [fieldName, fieldValue] of Object.entries(part)) {\n if (fieldName !== 'text' &&\n fieldName !== 'thought' &&\n fieldValue !== null) {\n nonTextParts.push(fieldName);\n }\n }\n if (typeof part.text === 'string') {\n if (typeof part.thought === 'boolean' && part.thought) {\n continue;\n }\n anyTextPartFound = true;\n text += part.text;\n }\n }\n if (nonTextParts.length > 0) {\n console.warn(`there are non-text parts ${nonTextParts} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`);\n }\n // part.text === '' is different from part.text is null\n return anyTextPartFound ? text : undefined;\n }\n /**\n * Returns the concatenation of all inline data parts from the server content if present.\n *\n * @remarks\n * If there are non-inline data parts in the\n * response, the concatenation of all inline data parts will be returned, and\n * a warning will be logged.\n */\n get data() {\n var _a, _b, _c;\n let data = '';\n const nonDataParts = [];\n for (const part of (_c = (_b = (_a = this.serverContent) === null || _a === void 0 ? void 0 : _a.modelTurn) === null || _b === void 0 ? void 0 : _b.parts) !== null && _c !== void 0 ? _c : []) {\n for (const [fieldName, fieldValue] of Object.entries(part)) {\n if (fieldName !== 'inlineData' && fieldValue !== null) {\n nonDataParts.push(fieldName);\n }\n }\n if (part.inlineData && typeof part.inlineData.data === 'string') {\n data += atob(part.inlineData.data);\n }\n }\n if (nonDataParts.length > 0) {\n console.warn(`there are non-data parts ${nonDataParts} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`);\n }\n return data.length > 0 ? btoa(data) : undefined;\n }\n}\n/** Client generated response to a `ToolCall` received from the server.\n\nIndividual `FunctionResponse` objects are matched to the respective\n`FunctionCall` objects by the `id` field.\n\nNote that in the unary and server-streaming GenerateContent APIs function\ncalling happens by exchanging the `Content` parts, while in the bidi\nGenerateContent APIs function calling happens over this dedicated set of\nmessages. */\nclass LiveClientToolResponse {\n}\n/** Parameters for sending tool responses to the live API. */\nclass LiveSendToolResponseParameters {\n constructor() {\n /** Tool responses to send to the session. */\n this.functionResponses = [];\n }\n}\n/** Response message for the LiveMusicClientMessage call. */\nclass LiveMusicServerMessage {\n /**\n * Returns the first audio chunk from the server content, if present.\n *\n * @remarks\n * If there are no audio chunks in the response, undefined will be returned.\n */\n get audioChunk() {\n if (this.serverContent &&\n this.serverContent.audioChunks &&\n this.serverContent.audioChunks.length > 0) {\n return this.serverContent.audioChunks[0];\n }\n return undefined;\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction tModel(apiClient, model) {\n if (!model || typeof model !== 'string') {\n throw new Error('model is required and must be a string');\n }\n if (apiClient.isVertexAI()) {\n if (model.startsWith('publishers/') ||\n model.startsWith('projects/') ||\n model.startsWith('models/')) {\n return model;\n }\n else if (model.indexOf('/') >= 0) {\n const parts = model.split('/', 2);\n return `publishers/${parts[0]}/models/${parts[1]}`;\n }\n else {\n return `publishers/google/models/${model}`;\n }\n }\n else {\n if (model.startsWith('models/') || model.startsWith('tunedModels/')) {\n return model;\n }\n else {\n return `models/${model}`;\n }\n }\n}\nfunction tCachesModel(apiClient, model) {\n const transformedModel = tModel(apiClient, model);\n if (!transformedModel) {\n return '';\n }\n if (transformedModel.startsWith('publishers/') && apiClient.isVertexAI()) {\n // vertex caches only support model name start with projects.\n return `projects/${apiClient.getProject()}/locations/${apiClient.getLocation()}/${transformedModel}`;\n }\n else if (transformedModel.startsWith('models/') && apiClient.isVertexAI()) {\n return `projects/${apiClient.getProject()}/locations/${apiClient.getLocation()}/publishers/google/${transformedModel}`;\n }\n else {\n return transformedModel;\n }\n}\nfunction tBlobs(blobs) {\n if (Array.isArray(blobs)) {\n return blobs.map((blob) => tBlob(blob));\n }\n else {\n return [tBlob(blobs)];\n }\n}\nfunction tBlob(blob) {\n if (typeof blob === 'object' && blob !== null) {\n return blob;\n }\n throw new Error(`Could not parse input as Blob. Unsupported blob type: ${typeof blob}`);\n}\nfunction tImageBlob(blob) {\n const transformedBlob = tBlob(blob);\n if (transformedBlob.mimeType &&\n transformedBlob.mimeType.startsWith('image/')) {\n return transformedBlob;\n }\n throw new Error(`Unsupported mime type: ${transformedBlob.mimeType}`);\n}\nfunction tAudioBlob(blob) {\n const transformedBlob = tBlob(blob);\n if (transformedBlob.mimeType &&\n transformedBlob.mimeType.startsWith('audio/')) {\n return transformedBlob;\n }\n throw new Error(`Unsupported mime type: ${transformedBlob.mimeType}`);\n}\nfunction tPart(origin) {\n if (origin === null || origin === undefined) {\n throw new Error('PartUnion is required');\n }\n if (typeof origin === 'object') {\n return origin;\n }\n if (typeof origin === 'string') {\n return { text: origin };\n }\n throw new Error(`Unsupported part type: ${typeof origin}`);\n}\nfunction tParts(origin) {\n if (origin === null ||\n origin === undefined ||\n (Array.isArray(origin) && origin.length === 0)) {\n throw new Error('PartListUnion is required');\n }\n if (Array.isArray(origin)) {\n return origin.map((item) => tPart(item));\n }\n return [tPart(origin)];\n}\nfunction _isContent(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'parts' in origin &&\n Array.isArray(origin.parts));\n}\nfunction _isFunctionCallPart(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'functionCall' in origin);\n}\nfunction _isFunctionResponsePart(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'functionResponse' in origin);\n}\nfunction tContent(origin) {\n if (origin === null || origin === undefined) {\n throw new Error('ContentUnion is required');\n }\n if (_isContent(origin)) {\n // _isContent is a utility function that checks if the\n // origin is a Content.\n return origin;\n }\n return {\n role: 'user',\n parts: tParts(origin),\n };\n}\nfunction tContentsForEmbed(apiClient, origin) {\n if (!origin) {\n return [];\n }\n if (apiClient.isVertexAI() && Array.isArray(origin)) {\n return origin.flatMap((item) => {\n const content = tContent(item);\n if (content.parts &&\n content.parts.length > 0 &&\n content.parts[0].text !== undefined) {\n return [content.parts[0].text];\n }\n return [];\n });\n }\n else if (apiClient.isVertexAI()) {\n const content = tContent(origin);\n if (content.parts &&\n content.parts.length > 0 &&\n content.parts[0].text !== undefined) {\n return [content.parts[0].text];\n }\n return [];\n }\n if (Array.isArray(origin)) {\n return origin.map((item) => tContent(item));\n }\n return [tContent(origin)];\n}\nfunction tContents(origin) {\n if (origin === null ||\n origin === undefined ||\n (Array.isArray(origin) && origin.length === 0)) {\n throw new Error('contents are required');\n }\n if (!Array.isArray(origin)) {\n // If it's not an array, it's a single content or a single PartUnion.\n if (_isFunctionCallPart(origin) || _isFunctionResponsePart(origin)) {\n throw new Error('To specify functionCall or functionResponse parts, please wrap them in a Content object, specifying the role for them');\n }\n return [tContent(origin)];\n }\n const result = [];\n const accumulatedParts = [];\n const isContentArray = _isContent(origin[0]);\n for (const item of origin) {\n const isContent = _isContent(item);\n if (isContent != isContentArray) {\n throw new Error('Mixing Content and Parts is not supported, please group the parts into a the appropriate Content objects and specify the roles for them');\n }\n if (isContent) {\n // `isContent` contains the result of _isContent, which is a utility\n // function that checks if the item is a Content.\n result.push(item);\n }\n else if (_isFunctionCallPart(item) || _isFunctionResponsePart(item)) {\n throw new Error('To specify functionCall or functionResponse parts, please wrap them, and any other parts, in Content objects as appropriate, specifying the role for them');\n }\n else {\n accumulatedParts.push(item);\n }\n }\n if (!isContentArray) {\n result.push({ role: 'user', parts: tParts(accumulatedParts) });\n }\n return result;\n}\n/*\nTransform the type field from an array of types to an array of anyOf fields.\nExample:\n {type: ['STRING', 'NUMBER']}\nwill be transformed to\n {anyOf: [{type: 'STRING'}, {type: 'NUMBER'}]}\n*/\nfunction flattenTypeArrayToAnyOf(typeList, resultingSchema) {\n if (typeList.includes('null')) {\n resultingSchema['nullable'] = true;\n }\n const listWithoutNull = typeList.filter((type) => type !== 'null');\n if (listWithoutNull.length === 1) {\n resultingSchema['type'] = Object.values(Type).includes(listWithoutNull[0].toUpperCase())\n ? listWithoutNull[0].toUpperCase()\n : Type.TYPE_UNSPECIFIED;\n }\n else {\n resultingSchema['anyOf'] = [];\n for (const i of listWithoutNull) {\n resultingSchema['anyOf'].push({\n 'type': Object.values(Type).includes(i.toUpperCase())\n ? i.toUpperCase()\n : Type.TYPE_UNSPECIFIED,\n });\n }\n }\n}\nfunction processJsonSchema(_jsonSchema) {\n const genAISchema = {};\n const schemaFieldNames = ['items'];\n const listSchemaFieldNames = ['anyOf'];\n const dictSchemaFieldNames = ['properties'];\n if (_jsonSchema['type'] && _jsonSchema['anyOf']) {\n throw new Error('type and anyOf cannot be both populated.');\n }\n /*\n This is to handle the nullable array or object. The _jsonSchema will\n be in the format of {anyOf: [{type: 'null'}, {type: 'object'}]}. The\n logic is to check if anyOf has 2 elements and one of the element is null,\n if so, the anyOf field is unnecessary, so we need to get rid of the anyOf\n field and make the schema nullable. Then use the other element as the new\n _jsonSchema for processing. This is because the backend doesn't have a null\n type.\n This has to be checked before we process any other fields.\n For example:\n const objectNullable = z.object({\n nullableArray: z.array(z.string()).nullable(),\n });\n Will have the raw _jsonSchema as:\n {\n type: 'OBJECT',\n properties: {\n nullableArray: {\n anyOf: [\n {type: 'null'},\n {\n type: 'array',\n items: {type: 'string'},\n },\n ],\n }\n },\n required: [ 'nullableArray' ],\n }\n Will result in following schema compatible with Gemini API:\n {\n type: 'OBJECT',\n properties: {\n nullableArray: {\n nullable: true,\n type: 'ARRAY',\n items: {type: 'string'},\n }\n },\n required: [ 'nullableArray' ],\n }\n */\n const incomingAnyOf = _jsonSchema['anyOf'];\n if (incomingAnyOf != null && incomingAnyOf.length == 2) {\n if (incomingAnyOf[0]['type'] === 'null') {\n genAISchema['nullable'] = true;\n _jsonSchema = incomingAnyOf[1];\n }\n else if (incomingAnyOf[1]['type'] === 'null') {\n genAISchema['nullable'] = true;\n _jsonSchema = incomingAnyOf[0];\n }\n }\n if (_jsonSchema['type'] instanceof Array) {\n flattenTypeArrayToAnyOf(_jsonSchema['type'], genAISchema);\n }\n for (const [fieldName, fieldValue] of Object.entries(_jsonSchema)) {\n // Skip if the fieldvalue is undefined or null.\n if (fieldValue == null) {\n continue;\n }\n if (fieldName == 'type') {\n if (fieldValue === 'null') {\n throw new Error('type: null can not be the only possible type for the field.');\n }\n if (fieldValue instanceof Array) {\n // we have already handled the type field with array of types in the\n // beginning of this function.\n continue;\n }\n genAISchema['type'] = Object.values(Type).includes(fieldValue.toUpperCase())\n ? fieldValue.toUpperCase()\n : Type.TYPE_UNSPECIFIED;\n }\n else if (schemaFieldNames.includes(fieldName)) {\n genAISchema[fieldName] =\n processJsonSchema(fieldValue);\n }\n else if (listSchemaFieldNames.includes(fieldName)) {\n const listSchemaFieldValue = [];\n for (const item of fieldValue) {\n if (item['type'] == 'null') {\n genAISchema['nullable'] = true;\n continue;\n }\n listSchemaFieldValue.push(processJsonSchema(item));\n }\n genAISchema[fieldName] =\n listSchemaFieldValue;\n }\n else if (dictSchemaFieldNames.includes(fieldName)) {\n const dictSchemaFieldValue = {};\n for (const [key, value] of Object.entries(fieldValue)) {\n dictSchemaFieldValue[key] = processJsonSchema(value);\n }\n genAISchema[fieldName] =\n dictSchemaFieldValue;\n }\n else {\n // additionalProperties is not included in JSONSchema, skipping it.\n if (fieldName === 'additionalProperties') {\n continue;\n }\n genAISchema[fieldName] = fieldValue;\n }\n }\n return genAISchema;\n}\n// we take the unknown in the schema field because we want enable user to pass\n// the output of major schema declaration tools without casting. Tools such as\n// zodToJsonSchema, typebox, zodToJsonSchema function can return JsonSchema7Type\n// or object, see details in\n// https://github.com/StefanTerdell/zod-to-json-schema/blob/70525efe555cd226691e093d171370a3b10921d1/src/zodToJsonSchema.ts#L7\n// typebox can return unknown, see details in\n// https://github.com/sinclairzx81/typebox/blob/5a5431439f7d5ca6b494d0d18fbfd7b1a356d67c/src/type/create/type.ts#L35\n// Note: proper json schemas with the $schema field set never arrive to this\n// transformer. Schemas with $schema are routed to the equivalent API json\n// schema field.\nfunction tSchema(schema) {\n return processJsonSchema(schema);\n}\nfunction tSpeechConfig(speechConfig) {\n if (typeof speechConfig === 'object') {\n return speechConfig;\n }\n else if (typeof speechConfig === 'string') {\n return {\n voiceConfig: {\n prebuiltVoiceConfig: {\n voiceName: speechConfig,\n },\n },\n };\n }\n else {\n throw new Error(`Unsupported speechConfig type: ${typeof speechConfig}`);\n }\n}\nfunction tLiveSpeechConfig(speechConfig) {\n if ('multiSpeakerVoiceConfig' in speechConfig) {\n throw new Error('multiSpeakerVoiceConfig is not supported in the live API.');\n }\n return speechConfig;\n}\nfunction tTool(tool) {\n if (tool.functionDeclarations) {\n for (const functionDeclaration of tool.functionDeclarations) {\n if (functionDeclaration.parameters) {\n if (!Object.keys(functionDeclaration.parameters).includes('$schema')) {\n functionDeclaration.parameters = processJsonSchema(functionDeclaration.parameters);\n }\n else {\n if (!functionDeclaration.parametersJsonSchema) {\n functionDeclaration.parametersJsonSchema =\n functionDeclaration.parameters;\n delete functionDeclaration.parameters;\n }\n }\n }\n if (functionDeclaration.response) {\n if (!Object.keys(functionDeclaration.response).includes('$schema')) {\n functionDeclaration.response = processJsonSchema(functionDeclaration.response);\n }\n else {\n if (!functionDeclaration.responseJsonSchema) {\n functionDeclaration.responseJsonSchema =\n functionDeclaration.response;\n delete functionDeclaration.response;\n }\n }\n }\n }\n }\n return tool;\n}\nfunction tTools(tools) {\n // Check if the incoming type is defined.\n if (tools === undefined || tools === null) {\n throw new Error('tools is required');\n }\n if (!Array.isArray(tools)) {\n throw new Error('tools is required and must be an array of Tools');\n }\n const result = [];\n for (const tool of tools) {\n result.push(tool);\n }\n return result;\n}\n/**\n * Prepends resource name with project, location, resource_prefix if needed.\n *\n * @param client The API client.\n * @param resourceName The resource name.\n * @param resourcePrefix The resource prefix.\n * @param splitsAfterPrefix The number of splits after the prefix.\n * @returns The completed resource name.\n *\n * Examples:\n *\n * ```\n * resource_name = '123'\n * resource_prefix = 'cachedContents'\n * splits_after_prefix = 1\n * client.vertexai = True\n * client.project = 'bar'\n * client.location = 'us-west1'\n * _resource_name(client, resource_name, resource_prefix, splits_after_prefix)\n * returns: 'projects/bar/locations/us-west1/cachedContents/123'\n * ```\n *\n * ```\n * resource_name = 'projects/foo/locations/us-central1/cachedContents/123'\n * resource_prefix = 'cachedContents'\n * splits_after_prefix = 1\n * client.vertexai = True\n * client.project = 'bar'\n * client.location = 'us-west1'\n * _resource_name(client, resource_name, resource_prefix, splits_after_prefix)\n * returns: 'projects/foo/locations/us-central1/cachedContents/123'\n * ```\n *\n * ```\n * resource_name = '123'\n * resource_prefix = 'cachedContents'\n * splits_after_prefix = 1\n * client.vertexai = False\n * _resource_name(client, resource_name, resource_prefix, splits_after_prefix)\n * returns 'cachedContents/123'\n * ```\n *\n * ```\n * resource_name = 'some/wrong/cachedContents/resource/name/123'\n * resource_prefix = 'cachedContents'\n * splits_after_prefix = 1\n * client.vertexai = False\n * # client.vertexai = True\n * _resource_name(client, resource_name, resource_prefix, splits_after_prefix)\n * -> 'some/wrong/resource/name/123'\n * ```\n */\nfunction resourceName(client, resourceName, resourcePrefix, splitsAfterPrefix = 1) {\n const shouldAppendPrefix = !resourceName.startsWith(`${resourcePrefix}/`) &&\n resourceName.split('/').length === splitsAfterPrefix;\n if (client.isVertexAI()) {\n if (resourceName.startsWith('projects/')) {\n return resourceName;\n }\n else if (resourceName.startsWith('locations/')) {\n return `projects/${client.getProject()}/${resourceName}`;\n }\n else if (resourceName.startsWith(`${resourcePrefix}/`)) {\n return `projects/${client.getProject()}/locations/${client.getLocation()}/${resourceName}`;\n }\n else if (shouldAppendPrefix) {\n return `projects/${client.getProject()}/locations/${client.getLocation()}/${resourcePrefix}/${resourceName}`;\n }\n else {\n return resourceName;\n }\n }\n if (shouldAppendPrefix) {\n return `${resourcePrefix}/${resourceName}`;\n }\n return resourceName;\n}\nfunction tCachedContentName(apiClient, name) {\n if (typeof name !== 'string') {\n throw new Error('name must be a string');\n }\n return resourceName(apiClient, name, 'cachedContents');\n}\nfunction tTuningJobStatus(status) {\n switch (status) {\n case 'STATE_UNSPECIFIED':\n return 'JOB_STATE_UNSPECIFIED';\n case 'CREATING':\n return 'JOB_STATE_RUNNING';\n case 'ACTIVE':\n return 'JOB_STATE_SUCCEEDED';\n case 'FAILED':\n return 'JOB_STATE_FAILED';\n default:\n return status;\n }\n}\nfunction tBytes(fromImageBytes) {\n return tBytes$1(fromImageBytes);\n}\nfunction _isFile(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'name' in origin);\n}\nfunction isGeneratedVideo(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'video' in origin);\n}\nfunction isVideo(origin) {\n return (origin !== null &&\n origin !== undefined &&\n typeof origin === 'object' &&\n 'uri' in origin);\n}\nfunction tFileName(fromName) {\n var _a;\n let name;\n if (_isFile(fromName)) {\n name = fromName.name;\n }\n if (isVideo(fromName)) {\n name = fromName.uri;\n if (name === undefined) {\n return undefined;\n }\n }\n if (isGeneratedVideo(fromName)) {\n name = (_a = fromName.video) === null || _a === void 0 ? void 0 : _a.uri;\n if (name === undefined) {\n return undefined;\n }\n }\n if (typeof fromName === 'string') {\n name = fromName;\n }\n if (name === undefined) {\n throw new Error('Could not extract file name from the provided input.');\n }\n if (name.startsWith('https://')) {\n const suffix = name.split('files/')[1];\n const match = suffix.match(/[a-z0-9]+/);\n if (match === null) {\n throw new Error(`Could not extract file name from URI ${name}`);\n }\n name = match[0];\n }\n else if (name.startsWith('files/')) {\n name = name.split('files/')[1];\n }\n return name;\n}\nfunction tModelsUrl(apiClient, baseModels) {\n let res;\n if (apiClient.isVertexAI()) {\n res = baseModels ? 'publishers/google/models' : 'models';\n }\n else {\n res = baseModels ? 'models' : 'tunedModels';\n }\n return res;\n}\nfunction tExtractModels(response) {\n for (const key of ['models', 'tunedModels', 'publisherModels']) {\n if (hasField(response, key)) {\n return response[key];\n }\n }\n return [];\n}\nfunction hasField(data, fieldName) {\n return data !== null && typeof data === 'object' && fieldName in data;\n}\nfunction mcpToGeminiTool(mcpTool, config = {}) {\n const mcpToolSchema = mcpTool;\n const functionDeclaration = {\n name: mcpToolSchema['name'],\n description: mcpToolSchema['description'],\n parametersJsonSchema: mcpToolSchema['inputSchema'],\n };\n if (mcpToolSchema['outputSchema']) {\n functionDeclaration['responseJsonSchema'] = mcpToolSchema['outputSchema'];\n }\n if (config.behavior) {\n functionDeclaration['behavior'] = config.behavior;\n }\n const geminiTool = {\n functionDeclarations: [\n functionDeclaration,\n ],\n };\n return geminiTool;\n}\n/**\n * Converts a list of MCP tools to a single Gemini tool with a list of function\n * declarations.\n */\nfunction mcpToolsToGeminiTool(mcpTools, config = {}) {\n const functionDeclarations = [];\n const toolNames = new Set();\n for (const mcpTool of mcpTools) {\n const mcpToolName = mcpTool.name;\n if (toolNames.has(mcpToolName)) {\n throw new Error(`Duplicate function name ${mcpToolName} found in MCP tools. Please ensure function names are unique.`);\n }\n toolNames.add(mcpToolName);\n const geminiTool = mcpToGeminiTool(mcpTool, config);\n if (geminiTool.functionDeclarations) {\n functionDeclarations.push(...geminiTool.functionDeclarations);\n }\n }\n return { functionDeclarations: functionDeclarations };\n}\n// Transforms a source input into a BatchJobSource object with validation.\nfunction tBatchJobSource(client, src) {\n let sourceObj;\n if (typeof src === 'string') {\n if (client.isVertexAI()) {\n if (src.startsWith('gs://')) {\n sourceObj = { format: 'jsonl', gcsUri: [src] };\n }\n else if (src.startsWith('bq://')) {\n sourceObj = { format: 'bigquery', bigqueryUri: src };\n }\n else {\n throw new Error(`Unsupported string source for Vertex AI: ${src}`);\n }\n }\n else {\n // MLDEV\n if (src.startsWith('files/')) {\n sourceObj = { fileName: src }; // Default to fileName for string input\n }\n else {\n throw new Error(`Unsupported string source for Gemini API: ${src}`);\n }\n }\n }\n else if (Array.isArray(src)) {\n if (client.isVertexAI()) {\n throw new Error('InlinedRequest[] is not supported in Vertex AI.');\n }\n sourceObj = { inlinedRequests: src };\n }\n else {\n // It's already a BatchJobSource object\n sourceObj = src;\n }\n // Validation logic\n const vertexSourcesCount = [sourceObj.gcsUri, sourceObj.bigqueryUri].filter(Boolean).length;\n const mldevSourcesCount = [\n sourceObj.inlinedRequests,\n sourceObj.fileName,\n ].filter(Boolean).length;\n if (client.isVertexAI()) {\n if (mldevSourcesCount > 0 || vertexSourcesCount !== 1) {\n throw new Error('Exactly one of `gcsUri` or `bigqueryUri` must be set for Vertex AI.');\n }\n }\n else {\n // MLDEV\n if (vertexSourcesCount > 0 || mldevSourcesCount !== 1) {\n throw new Error('Exactly one of `inlinedRequests`, `fileName`, ' +\n 'must be set for Gemini API.');\n }\n }\n return sourceObj;\n}\nfunction tBatchJobDestination(dest) {\n if (typeof dest !== 'string') {\n return dest;\n }\n const destString = dest;\n if (destString.startsWith('gs://')) {\n return {\n format: 'jsonl',\n gcsUri: destString,\n };\n }\n else if (destString.startsWith('bq://')) {\n return {\n format: 'bigquery',\n bigqueryUri: destString,\n };\n }\n else {\n throw new Error(`Unsupported destination: ${destString}`);\n }\n}\nfunction tRecvBatchJobDestination(dest) {\n // Ensure dest is a non-null object before proceeding.\n if (typeof dest !== 'object' || dest === null) {\n // If the input is not an object, it cannot be a valid BatchJobDestination\n // based on the operations performed. Return it cast, or handle as an error.\n // Casting an empty object might be a safe default.\n return {};\n }\n // Cast to Record to allow string property access.\n const obj = dest;\n // Safely access nested properties.\n const inlineResponsesVal = obj['inlinedResponses'];\n if (typeof inlineResponsesVal !== 'object' || inlineResponsesVal === null) {\n return dest;\n }\n const inlineResponsesObj = inlineResponsesVal;\n const responsesArray = inlineResponsesObj['inlinedResponses'];\n if (!Array.isArray(responsesArray) || responsesArray.length === 0) {\n return dest;\n }\n // Check if any response has the 'embedding' property.\n let hasEmbedding = false;\n for (const responseItem of responsesArray) {\n if (typeof responseItem !== 'object' || responseItem === null) {\n continue;\n }\n const responseItemObj = responseItem;\n const responseVal = responseItemObj['response'];\n if (typeof responseVal !== 'object' || responseVal === null) {\n continue;\n }\n const responseObj = responseVal;\n // Check for the existence of the 'embedding' key.\n if (responseObj['embedding'] !== undefined) {\n hasEmbedding = true;\n break;\n }\n }\n // Perform the transformation if an embedding was found.\n if (hasEmbedding) {\n obj['inlinedEmbedContentResponses'] = obj['inlinedResponses'];\n delete obj['inlinedResponses'];\n }\n // Cast the (potentially) modified object to the target type.\n return dest;\n}\nfunction tBatchJobName(apiClient, name) {\n const nameString = name;\n if (!apiClient.isVertexAI()) {\n const mldevPattern = /batches\\/[^/]+$/;\n if (mldevPattern.test(nameString)) {\n return nameString.split('/').pop();\n }\n else {\n throw new Error(`Invalid batch job name: ${nameString}.`);\n }\n }\n const vertexPattern = /^projects\\/[^/]+\\/locations\\/[^/]+\\/batchPredictionJobs\\/[^/]+$/;\n if (vertexPattern.test(nameString)) {\n return nameString.split('/').pop();\n }\n else if (/^\\d+$/.test(nameString)) {\n return nameString;\n }\n else {\n throw new Error(`Invalid batch job name: ${nameString}.`);\n }\n}\nfunction tJobState(state) {\n const stateString = state;\n if (stateString === 'BATCH_STATE_UNSPECIFIED') {\n return 'JOB_STATE_UNSPECIFIED';\n }\n else if (stateString === 'BATCH_STATE_PENDING') {\n return 'JOB_STATE_PENDING';\n }\n else if (stateString === 'BATCH_STATE_RUNNING') {\n return 'JOB_STATE_RUNNING';\n }\n else if (stateString === 'BATCH_STATE_SUCCEEDED') {\n return 'JOB_STATE_SUCCEEDED';\n }\n else if (stateString === 'BATCH_STATE_FAILED') {\n return 'JOB_STATE_FAILED';\n }\n else if (stateString === 'BATCH_STATE_CANCELLED') {\n return 'JOB_STATE_CANCELLED';\n }\n else if (stateString === 'BATCH_STATE_EXPIRED') {\n return 'JOB_STATE_EXPIRED';\n }\n else {\n return stateString;\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction batchJobDestinationFromMldev(fromObject) {\n const toObject = {};\n const fromFileName = getValueByPath(fromObject, ['responsesFile']);\n if (fromFileName != null) {\n setValueByPath(toObject, ['fileName'], fromFileName);\n }\n const fromInlinedResponses = getValueByPath(fromObject, [\n 'inlinedResponses',\n 'inlinedResponses',\n ]);\n if (fromInlinedResponses != null) {\n let transformedList = fromInlinedResponses;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return inlinedResponseFromMldev(item);\n });\n }\n setValueByPath(toObject, ['inlinedResponses'], transformedList);\n }\n const fromInlinedEmbedContentResponses = getValueByPath(fromObject, [\n 'inlinedEmbedContentResponses',\n 'inlinedResponses',\n ]);\n if (fromInlinedEmbedContentResponses != null) {\n let transformedList = fromInlinedEmbedContentResponses;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['inlinedEmbedContentResponses'], transformedList);\n }\n return toObject;\n}\nfunction batchJobDestinationFromVertex(fromObject) {\n const toObject = {};\n const fromFormat = getValueByPath(fromObject, ['predictionsFormat']);\n if (fromFormat != null) {\n setValueByPath(toObject, ['format'], fromFormat);\n }\n const fromGcsUri = getValueByPath(fromObject, [\n 'gcsDestination',\n 'outputUriPrefix',\n ]);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsUri'], fromGcsUri);\n }\n const fromBigqueryUri = getValueByPath(fromObject, [\n 'bigqueryDestination',\n 'outputUri',\n ]);\n if (fromBigqueryUri != null) {\n setValueByPath(toObject, ['bigqueryUri'], fromBigqueryUri);\n }\n return toObject;\n}\nfunction batchJobDestinationToVertex(fromObject) {\n const toObject = {};\n const fromFormat = getValueByPath(fromObject, ['format']);\n if (fromFormat != null) {\n setValueByPath(toObject, ['predictionsFormat'], fromFormat);\n }\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsDestination', 'outputUriPrefix'], fromGcsUri);\n }\n const fromBigqueryUri = getValueByPath(fromObject, ['bigqueryUri']);\n if (fromBigqueryUri != null) {\n setValueByPath(toObject, ['bigqueryDestination', 'outputUri'], fromBigqueryUri);\n }\n if (getValueByPath(fromObject, ['fileName']) !== undefined) {\n throw new Error('fileName parameter is not supported in Vertex AI.');\n }\n if (getValueByPath(fromObject, ['inlinedResponses']) !== undefined) {\n throw new Error('inlinedResponses parameter is not supported in Vertex AI.');\n }\n if (getValueByPath(fromObject, ['inlinedEmbedContentResponses']) !==\n undefined) {\n throw new Error('inlinedEmbedContentResponses parameter is not supported in Vertex AI.');\n }\n return toObject;\n}\nfunction batchJobFromMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDisplayName = getValueByPath(fromObject, [\n 'metadata',\n 'displayName',\n ]);\n if (fromDisplayName != null) {\n setValueByPath(toObject, ['displayName'], fromDisplayName);\n }\n const fromState = getValueByPath(fromObject, ['metadata', 'state']);\n if (fromState != null) {\n setValueByPath(toObject, ['state'], tJobState(fromState));\n }\n const fromCreateTime = getValueByPath(fromObject, [\n 'metadata',\n 'createTime',\n ]);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromEndTime = getValueByPath(fromObject, [\n 'metadata',\n 'endTime',\n ]);\n if (fromEndTime != null) {\n setValueByPath(toObject, ['endTime'], fromEndTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, [\n 'metadata',\n 'updateTime',\n ]);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n const fromModel = getValueByPath(fromObject, ['metadata', 'model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], fromModel);\n }\n const fromDest = getValueByPath(fromObject, ['metadata', 'output']);\n if (fromDest != null) {\n setValueByPath(toObject, ['dest'], batchJobDestinationFromMldev(tRecvBatchJobDestination(fromDest)));\n }\n return toObject;\n}\nfunction batchJobFromVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (fromDisplayName != null) {\n setValueByPath(toObject, ['displayName'], fromDisplayName);\n }\n const fromState = getValueByPath(fromObject, ['state']);\n if (fromState != null) {\n setValueByPath(toObject, ['state'], tJobState(fromState));\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromStartTime = getValueByPath(fromObject, ['startTime']);\n if (fromStartTime != null) {\n setValueByPath(toObject, ['startTime'], fromStartTime);\n }\n const fromEndTime = getValueByPath(fromObject, ['endTime']);\n if (fromEndTime != null) {\n setValueByPath(toObject, ['endTime'], fromEndTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, ['updateTime']);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], fromModel);\n }\n const fromSrc = getValueByPath(fromObject, ['inputConfig']);\n if (fromSrc != null) {\n setValueByPath(toObject, ['src'], batchJobSourceFromVertex(fromSrc));\n }\n const fromDest = getValueByPath(fromObject, ['outputConfig']);\n if (fromDest != null) {\n setValueByPath(toObject, ['dest'], batchJobDestinationFromVertex(tRecvBatchJobDestination(fromDest)));\n }\n return toObject;\n}\nfunction batchJobSourceFromVertex(fromObject) {\n const toObject = {};\n const fromFormat = getValueByPath(fromObject, ['instancesFormat']);\n if (fromFormat != null) {\n setValueByPath(toObject, ['format'], fromFormat);\n }\n const fromGcsUri = getValueByPath(fromObject, ['gcsSource', 'uris']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsUri'], fromGcsUri);\n }\n const fromBigqueryUri = getValueByPath(fromObject, [\n 'bigquerySource',\n 'inputUri',\n ]);\n if (fromBigqueryUri != null) {\n setValueByPath(toObject, ['bigqueryUri'], fromBigqueryUri);\n }\n return toObject;\n}\nfunction batchJobSourceToMldev(apiClient, fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['format']) !== undefined) {\n throw new Error('format parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['gcsUri']) !== undefined) {\n throw new Error('gcsUri parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['bigqueryUri']) !== undefined) {\n throw new Error('bigqueryUri parameter is not supported in Gemini API.');\n }\n const fromFileName = getValueByPath(fromObject, ['fileName']);\n if (fromFileName != null) {\n setValueByPath(toObject, ['fileName'], fromFileName);\n }\n const fromInlinedRequests = getValueByPath(fromObject, [\n 'inlinedRequests',\n ]);\n if (fromInlinedRequests != null) {\n let transformedList = fromInlinedRequests;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return inlinedRequestToMldev(apiClient, item);\n });\n }\n setValueByPath(toObject, ['requests', 'requests'], transformedList);\n }\n return toObject;\n}\nfunction batchJobSourceToVertex(fromObject) {\n const toObject = {};\n const fromFormat = getValueByPath(fromObject, ['format']);\n if (fromFormat != null) {\n setValueByPath(toObject, ['instancesFormat'], fromFormat);\n }\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsSource', 'uris'], fromGcsUri);\n }\n const fromBigqueryUri = getValueByPath(fromObject, ['bigqueryUri']);\n if (fromBigqueryUri != null) {\n setValueByPath(toObject, ['bigquerySource', 'inputUri'], fromBigqueryUri);\n }\n if (getValueByPath(fromObject, ['fileName']) !== undefined) {\n throw new Error('fileName parameter is not supported in Vertex AI.');\n }\n if (getValueByPath(fromObject, ['inlinedRequests']) !== undefined) {\n throw new Error('inlinedRequests parameter is not supported in Vertex AI.');\n }\n return toObject;\n}\nfunction blobToMldev$4(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromData = getValueByPath(fromObject, ['data']);\n if (fromData != null) {\n setValueByPath(toObject, ['data'], fromData);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction cancelBatchJobParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction cancelBatchJobParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction candidateFromMldev$1(fromObject) {\n const toObject = {};\n const fromContent = getValueByPath(fromObject, ['content']);\n if (fromContent != null) {\n setValueByPath(toObject, ['content'], fromContent);\n }\n const fromCitationMetadata = getValueByPath(fromObject, [\n 'citationMetadata',\n ]);\n if (fromCitationMetadata != null) {\n setValueByPath(toObject, ['citationMetadata'], citationMetadataFromMldev$1(fromCitationMetadata));\n }\n const fromTokenCount = getValueByPath(fromObject, ['tokenCount']);\n if (fromTokenCount != null) {\n setValueByPath(toObject, ['tokenCount'], fromTokenCount);\n }\n const fromFinishReason = getValueByPath(fromObject, ['finishReason']);\n if (fromFinishReason != null) {\n setValueByPath(toObject, ['finishReason'], fromFinishReason);\n }\n const fromUrlContextMetadata = getValueByPath(fromObject, [\n 'urlContextMetadata',\n ]);\n if (fromUrlContextMetadata != null) {\n setValueByPath(toObject, ['urlContextMetadata'], fromUrlContextMetadata);\n }\n const fromAvgLogprobs = getValueByPath(fromObject, ['avgLogprobs']);\n if (fromAvgLogprobs != null) {\n setValueByPath(toObject, ['avgLogprobs'], fromAvgLogprobs);\n }\n const fromGroundingMetadata = getValueByPath(fromObject, [\n 'groundingMetadata',\n ]);\n if (fromGroundingMetadata != null) {\n setValueByPath(toObject, ['groundingMetadata'], fromGroundingMetadata);\n }\n const fromIndex = getValueByPath(fromObject, ['index']);\n if (fromIndex != null) {\n setValueByPath(toObject, ['index'], fromIndex);\n }\n const fromLogprobsResult = getValueByPath(fromObject, [\n 'logprobsResult',\n ]);\n if (fromLogprobsResult != null) {\n setValueByPath(toObject, ['logprobsResult'], fromLogprobsResult);\n }\n const fromSafetyRatings = getValueByPath(fromObject, [\n 'safetyRatings',\n ]);\n if (fromSafetyRatings != null) {\n let transformedList = fromSafetyRatings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['safetyRatings'], transformedList);\n }\n return toObject;\n}\nfunction citationMetadataFromMldev$1(fromObject) {\n const toObject = {};\n const fromCitations = getValueByPath(fromObject, ['citationSources']);\n if (fromCitations != null) {\n let transformedList = fromCitations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['citations'], transformedList);\n }\n return toObject;\n}\nfunction contentToMldev$4(fromObject) {\n const toObject = {};\n const fromParts = getValueByPath(fromObject, ['parts']);\n if (fromParts != null) {\n let transformedList = fromParts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return partToMldev$4(item);\n });\n }\n setValueByPath(toObject, ['parts'], transformedList);\n }\n const fromRole = getValueByPath(fromObject, ['role']);\n if (fromRole != null) {\n setValueByPath(toObject, ['role'], fromRole);\n }\n return toObject;\n}\nfunction createBatchJobConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['batch', 'displayName'], fromDisplayName);\n }\n if (getValueByPath(fromObject, ['dest']) !== undefined) {\n throw new Error('dest parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction createBatchJobConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromDisplayName);\n }\n const fromDest = getValueByPath(fromObject, ['dest']);\n if (parentObject !== undefined && fromDest != null) {\n setValueByPath(parentObject, ['outputConfig'], batchJobDestinationToVertex(tBatchJobDestination(fromDest)));\n }\n return toObject;\n}\nfunction createBatchJobParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromSrc = getValueByPath(fromObject, ['src']);\n if (fromSrc != null) {\n setValueByPath(toObject, ['batch', 'inputConfig'], batchJobSourceToMldev(apiClient, tBatchJobSource(apiClient, fromSrc)));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createBatchJobConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction createBatchJobParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], tModel(apiClient, fromModel));\n }\n const fromSrc = getValueByPath(fromObject, ['src']);\n if (fromSrc != null) {\n setValueByPath(toObject, ['inputConfig'], batchJobSourceToVertex(tBatchJobSource(apiClient, fromSrc)));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createBatchJobConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction createEmbeddingsBatchJobConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['batch', 'displayName'], fromDisplayName);\n }\n return toObject;\n}\nfunction createEmbeddingsBatchJobParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromSrc = getValueByPath(fromObject, ['src']);\n if (fromSrc != null) {\n setValueByPath(toObject, ['batch', 'inputConfig'], embeddingsBatchJobSourceToMldev(apiClient, fromSrc));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createEmbeddingsBatchJobConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction deleteBatchJobParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction deleteBatchJobParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction deleteResourceJobFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n return toObject;\n}\nfunction deleteResourceJobFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n return toObject;\n}\nfunction embedContentBatchToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContentsForEmbed(apiClient, fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['requests[]', 'request', 'content'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['_self'], embedContentConfigToMldev$1(fromConfig, toObject));\n moveValueByPath(toObject, { 'requests[].*': 'requests[].request.*' });\n }\n return toObject;\n}\nfunction embedContentConfigToMldev$1(fromObject, parentObject) {\n const toObject = {};\n const fromTaskType = getValueByPath(fromObject, ['taskType']);\n if (parentObject !== undefined && fromTaskType != null) {\n setValueByPath(parentObject, ['requests[]', 'taskType'], fromTaskType);\n }\n const fromTitle = getValueByPath(fromObject, ['title']);\n if (parentObject !== undefined && fromTitle != null) {\n setValueByPath(parentObject, ['requests[]', 'title'], fromTitle);\n }\n const fromOutputDimensionality = getValueByPath(fromObject, [\n 'outputDimensionality',\n ]);\n if (parentObject !== undefined && fromOutputDimensionality != null) {\n setValueByPath(parentObject, ['requests[]', 'outputDimensionality'], fromOutputDimensionality);\n }\n if (getValueByPath(fromObject, ['mimeType']) !== undefined) {\n throw new Error('mimeType parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['autoTruncate']) !== undefined) {\n throw new Error('autoTruncate parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction embeddingsBatchJobSourceToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromFileName = getValueByPath(fromObject, ['fileName']);\n if (fromFileName != null) {\n setValueByPath(toObject, ['file_name'], fromFileName);\n }\n const fromInlinedRequests = getValueByPath(fromObject, [\n 'inlinedRequests',\n ]);\n if (fromInlinedRequests != null) {\n setValueByPath(toObject, ['requests'], embedContentBatchToMldev(apiClient, fromInlinedRequests));\n }\n return toObject;\n}\nfunction fileDataToMldev$4(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromFileUri = getValueByPath(fromObject, ['fileUri']);\n if (fromFileUri != null) {\n setValueByPath(toObject, ['fileUri'], fromFileUri);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction generateContentConfigToMldev$1(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], contentToMldev$4(tContent(fromSystemInstruction)));\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (fromTemperature != null) {\n setValueByPath(toObject, ['temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (fromTopP != null) {\n setValueByPath(toObject, ['topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (fromTopK != null) {\n setValueByPath(toObject, ['topK'], fromTopK);\n }\n const fromCandidateCount = getValueByPath(fromObject, [\n 'candidateCount',\n ]);\n if (fromCandidateCount != null) {\n setValueByPath(toObject, ['candidateCount'], fromCandidateCount);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (fromMaxOutputTokens != null) {\n setValueByPath(toObject, ['maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromStopSequences = getValueByPath(fromObject, [\n 'stopSequences',\n ]);\n if (fromStopSequences != null) {\n setValueByPath(toObject, ['stopSequences'], fromStopSequences);\n }\n const fromResponseLogprobs = getValueByPath(fromObject, [\n 'responseLogprobs',\n ]);\n if (fromResponseLogprobs != null) {\n setValueByPath(toObject, ['responseLogprobs'], fromResponseLogprobs);\n }\n const fromLogprobs = getValueByPath(fromObject, ['logprobs']);\n if (fromLogprobs != null) {\n setValueByPath(toObject, ['logprobs'], fromLogprobs);\n }\n const fromPresencePenalty = getValueByPath(fromObject, [\n 'presencePenalty',\n ]);\n if (fromPresencePenalty != null) {\n setValueByPath(toObject, ['presencePenalty'], fromPresencePenalty);\n }\n const fromFrequencyPenalty = getValueByPath(fromObject, [\n 'frequencyPenalty',\n ]);\n if (fromFrequencyPenalty != null) {\n setValueByPath(toObject, ['frequencyPenalty'], fromFrequencyPenalty);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (fromSeed != null) {\n setValueByPath(toObject, ['seed'], fromSeed);\n }\n const fromResponseMimeType = getValueByPath(fromObject, [\n 'responseMimeType',\n ]);\n if (fromResponseMimeType != null) {\n setValueByPath(toObject, ['responseMimeType'], fromResponseMimeType);\n }\n const fromResponseSchema = getValueByPath(fromObject, [\n 'responseSchema',\n ]);\n if (fromResponseSchema != null) {\n setValueByPath(toObject, ['responseSchema'], tSchema(fromResponseSchema));\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n if (getValueByPath(fromObject, ['routingConfig']) !== undefined) {\n throw new Error('routingConfig parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['modelSelectionConfig']) !== undefined) {\n throw new Error('modelSelectionConfig parameter is not supported in Gemini API.');\n }\n const fromSafetySettings = getValueByPath(fromObject, [\n 'safetySettings',\n ]);\n if (parentObject !== undefined && fromSafetySettings != null) {\n let transformedList = fromSafetySettings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return safetySettingToMldev$1(item);\n });\n }\n setValueByPath(parentObject, ['safetySettings'], transformedList);\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToMldev$4(tTool(item));\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromToolConfig = getValueByPath(fromObject, ['toolConfig']);\n if (parentObject !== undefined && fromToolConfig != null) {\n setValueByPath(parentObject, ['toolConfig'], fromToolConfig);\n }\n if (getValueByPath(fromObject, ['labels']) !== undefined) {\n throw new Error('labels parameter is not supported in Gemini API.');\n }\n const fromCachedContent = getValueByPath(fromObject, [\n 'cachedContent',\n ]);\n if (parentObject !== undefined && fromCachedContent != null) {\n setValueByPath(parentObject, ['cachedContent'], tCachedContentName(apiClient, fromCachedContent));\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (fromResponseModalities != null) {\n setValueByPath(toObject, ['responseModalities'], fromResponseModalities);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (fromMediaResolution != null) {\n setValueByPath(toObject, ['mediaResolution'], fromMediaResolution);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (fromSpeechConfig != null) {\n setValueByPath(toObject, ['speechConfig'], tSpeechConfig(fromSpeechConfig));\n }\n if (getValueByPath(fromObject, ['audioTimestamp']) !== undefined) {\n throw new Error('audioTimestamp parameter is not supported in Gemini API.');\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (fromThinkingConfig != null) {\n setValueByPath(toObject, ['thinkingConfig'], fromThinkingConfig);\n }\n const fromImageConfig = getValueByPath(fromObject, ['imageConfig']);\n if (fromImageConfig != null) {\n setValueByPath(toObject, ['imageConfig'], fromImageConfig);\n }\n return toObject;\n}\nfunction generateContentResponseFromMldev$1(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromCandidates = getValueByPath(fromObject, ['candidates']);\n if (fromCandidates != null) {\n let transformedList = fromCandidates;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return candidateFromMldev$1(item);\n });\n }\n setValueByPath(toObject, ['candidates'], transformedList);\n }\n const fromModelVersion = getValueByPath(fromObject, ['modelVersion']);\n if (fromModelVersion != null) {\n setValueByPath(toObject, ['modelVersion'], fromModelVersion);\n }\n const fromPromptFeedback = getValueByPath(fromObject, [\n 'promptFeedback',\n ]);\n if (fromPromptFeedback != null) {\n setValueByPath(toObject, ['promptFeedback'], fromPromptFeedback);\n }\n const fromResponseId = getValueByPath(fromObject, ['responseId']);\n if (fromResponseId != null) {\n setValueByPath(toObject, ['responseId'], fromResponseId);\n }\n const fromUsageMetadata = getValueByPath(fromObject, [\n 'usageMetadata',\n ]);\n if (fromUsageMetadata != null) {\n setValueByPath(toObject, ['usageMetadata'], fromUsageMetadata);\n }\n return toObject;\n}\nfunction getBatchJobParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction getBatchJobParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tBatchJobName(apiClient, fromName));\n }\n return toObject;\n}\nfunction googleMapsToMldev$4(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['authConfig']) !== undefined) {\n throw new Error('authConfig parameter is not supported in Gemini API.');\n }\n const fromEnableWidget = getValueByPath(fromObject, ['enableWidget']);\n if (fromEnableWidget != null) {\n setValueByPath(toObject, ['enableWidget'], fromEnableWidget);\n }\n return toObject;\n}\nfunction googleSearchToMldev$4(fromObject) {\n const toObject = {};\n const fromTimeRangeFilter = getValueByPath(fromObject, [\n 'timeRangeFilter',\n ]);\n if (fromTimeRangeFilter != null) {\n setValueByPath(toObject, ['timeRangeFilter'], fromTimeRangeFilter);\n }\n if (getValueByPath(fromObject, ['excludeDomains']) !== undefined) {\n throw new Error('excludeDomains parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction inlinedRequestToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['request', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return contentToMldev$4(item);\n });\n }\n setValueByPath(toObject, ['request', 'contents'], transformedList);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['request', 'generationConfig'], generateContentConfigToMldev$1(apiClient, fromConfig, getValueByPath(toObject, ['request'], {})));\n }\n return toObject;\n}\nfunction inlinedResponseFromMldev(fromObject) {\n const toObject = {};\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], generateContentResponseFromMldev$1(fromResponse));\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n return toObject;\n}\nfunction listBatchJobsConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n if (getValueByPath(fromObject, ['filter']) !== undefined) {\n throw new Error('filter parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction listBatchJobsConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n const fromFilter = getValueByPath(fromObject, ['filter']);\n if (parentObject !== undefined && fromFilter != null) {\n setValueByPath(parentObject, ['_query', 'filter'], fromFilter);\n }\n return toObject;\n}\nfunction listBatchJobsParametersToMldev(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listBatchJobsConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listBatchJobsParametersToVertex(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listBatchJobsConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listBatchJobsResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromBatchJobs = getValueByPath(fromObject, ['operations']);\n if (fromBatchJobs != null) {\n let transformedList = fromBatchJobs;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return batchJobFromMldev(item);\n });\n }\n setValueByPath(toObject, ['batchJobs'], transformedList);\n }\n return toObject;\n}\nfunction listBatchJobsResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromBatchJobs = getValueByPath(fromObject, [\n 'batchPredictionJobs',\n ]);\n if (fromBatchJobs != null) {\n let transformedList = fromBatchJobs;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return batchJobFromVertex(item);\n });\n }\n setValueByPath(toObject, ['batchJobs'], transformedList);\n }\n return toObject;\n}\nfunction partToMldev$4(fromObject) {\n const toObject = {};\n const fromVideoMetadata = getValueByPath(fromObject, [\n 'videoMetadata',\n ]);\n if (fromVideoMetadata != null) {\n setValueByPath(toObject, ['videoMetadata'], fromVideoMetadata);\n }\n const fromThought = getValueByPath(fromObject, ['thought']);\n if (fromThought != null) {\n setValueByPath(toObject, ['thought'], fromThought);\n }\n const fromInlineData = getValueByPath(fromObject, ['inlineData']);\n if (fromInlineData != null) {\n setValueByPath(toObject, ['inlineData'], blobToMldev$4(fromInlineData));\n }\n const fromFileData = getValueByPath(fromObject, ['fileData']);\n if (fromFileData != null) {\n setValueByPath(toObject, ['fileData'], fileDataToMldev$4(fromFileData));\n }\n const fromThoughtSignature = getValueByPath(fromObject, [\n 'thoughtSignature',\n ]);\n if (fromThoughtSignature != null) {\n setValueByPath(toObject, ['thoughtSignature'], fromThoughtSignature);\n }\n const fromFunctionCall = getValueByPath(fromObject, ['functionCall']);\n if (fromFunctionCall != null) {\n setValueByPath(toObject, ['functionCall'], fromFunctionCall);\n }\n const fromCodeExecutionResult = getValueByPath(fromObject, [\n 'codeExecutionResult',\n ]);\n if (fromCodeExecutionResult != null) {\n setValueByPath(toObject, ['codeExecutionResult'], fromCodeExecutionResult);\n }\n const fromExecutableCode = getValueByPath(fromObject, [\n 'executableCode',\n ]);\n if (fromExecutableCode != null) {\n setValueByPath(toObject, ['executableCode'], fromExecutableCode);\n }\n const fromFunctionResponse = getValueByPath(fromObject, [\n 'functionResponse',\n ]);\n if (fromFunctionResponse != null) {\n setValueByPath(toObject, ['functionResponse'], fromFunctionResponse);\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n return toObject;\n}\nfunction safetySettingToMldev$1(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['method']) !== undefined) {\n throw new Error('method parameter is not supported in Gemini API.');\n }\n const fromCategory = getValueByPath(fromObject, ['category']);\n if (fromCategory != null) {\n setValueByPath(toObject, ['category'], fromCategory);\n }\n const fromThreshold = getValueByPath(fromObject, ['threshold']);\n if (fromThreshold != null) {\n setValueByPath(toObject, ['threshold'], fromThreshold);\n }\n return toObject;\n}\nfunction toolToMldev$4(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n if (getValueByPath(fromObject, ['retrieval']) !== undefined) {\n throw new Error('retrieval parameter is not supported in Gemini API.');\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], googleSearchToMldev$4(fromGoogleSearch));\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n if (getValueByPath(fromObject, ['enterpriseWebSearch']) !== undefined) {\n throw new Error('enterpriseWebSearch parameter is not supported in Gemini API.');\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], googleMapsToMldev$4(fromGoogleMaps));\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nvar PagedItem;\n(function (PagedItem) {\n PagedItem[\"PAGED_ITEM_BATCH_JOBS\"] = \"batchJobs\";\n PagedItem[\"PAGED_ITEM_MODELS\"] = \"models\";\n PagedItem[\"PAGED_ITEM_TUNING_JOBS\"] = \"tuningJobs\";\n PagedItem[\"PAGED_ITEM_FILES\"] = \"files\";\n PagedItem[\"PAGED_ITEM_CACHED_CONTENTS\"] = \"cachedContents\";\n})(PagedItem || (PagedItem = {}));\n/**\n * Pager class for iterating through paginated results.\n */\nclass Pager {\n constructor(name, request, response, params) {\n this.pageInternal = [];\n this.paramsInternal = {};\n this.requestInternal = request;\n this.init(name, response, params);\n }\n init(name, response, params) {\n var _a, _b;\n this.nameInternal = name;\n this.pageInternal = response[this.nameInternal] || [];\n this.sdkHttpResponseInternal = response === null || response === void 0 ? void 0 : response.sdkHttpResponse;\n this.idxInternal = 0;\n let requestParams = { config: {} };\n if (!params || Object.keys(params).length === 0) {\n requestParams = { config: {} };\n }\n else if (typeof params === 'object') {\n requestParams = Object.assign({}, params);\n }\n else {\n requestParams = params;\n }\n if (requestParams['config']) {\n requestParams['config']['pageToken'] = response['nextPageToken'];\n }\n this.paramsInternal = requestParams;\n this.pageInternalSize =\n (_b = (_a = requestParams['config']) === null || _a === void 0 ? void 0 : _a['pageSize']) !== null && _b !== void 0 ? _b : this.pageInternal.length;\n }\n initNextPage(response) {\n this.init(this.nameInternal, response, this.paramsInternal);\n }\n /**\n * Returns the current page, which is a list of items.\n *\n * @remarks\n * The first page is retrieved when the pager is created. The returned list of\n * items could be a subset of the entire list.\n */\n get page() {\n return this.pageInternal;\n }\n /**\n * Returns the type of paged item (for example, ``batch_jobs``).\n */\n get name() {\n return this.nameInternal;\n }\n /**\n * Returns the length of the page fetched each time by this pager.\n *\n * @remarks\n * The number of items in the page is less than or equal to the page length.\n */\n get pageSize() {\n return this.pageInternalSize;\n }\n /**\n * Returns the headers of the API response.\n */\n get sdkHttpResponse() {\n return this.sdkHttpResponseInternal;\n }\n /**\n * Returns the parameters when making the API request for the next page.\n *\n * @remarks\n * Parameters contain a set of optional configs that can be\n * used to customize the API request. For example, the `pageToken` parameter\n * contains the token to request the next page.\n */\n get params() {\n return this.paramsInternal;\n }\n /**\n * Returns the total number of items in the current page.\n */\n get pageLength() {\n return this.pageInternal.length;\n }\n /**\n * Returns the item at the given index.\n */\n getItem(index) {\n return this.pageInternal[index];\n }\n /**\n * Returns an async iterator that support iterating through all items\n * retrieved from the API.\n *\n * @remarks\n * The iterator will automatically fetch the next page if there are more items\n * to fetch from the API.\n *\n * @example\n *\n * ```ts\n * const pager = await ai.files.list({config: {pageSize: 10}});\n * for await (const file of pager) {\n * console.log(file.name);\n * }\n * ```\n */\n [Symbol.asyncIterator]() {\n return {\n next: async () => {\n if (this.idxInternal >= this.pageLength) {\n if (this.hasNextPage()) {\n await this.nextPage();\n }\n else {\n return { value: undefined, done: true };\n }\n }\n const item = this.getItem(this.idxInternal);\n this.idxInternal += 1;\n return { value: item, done: false };\n },\n return: async () => {\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * Fetches the next page of items. This makes a new API request.\n *\n * @throws {Error} If there are no more pages to fetch.\n *\n * @example\n *\n * ```ts\n * const pager = await ai.files.list({config: {pageSize: 10}});\n * let page = pager.page;\n * while (true) {\n * for (const file of page) {\n * console.log(file.name);\n * }\n * if (!pager.hasNextPage()) {\n * break;\n * }\n * page = await pager.nextPage();\n * }\n * ```\n */\n async nextPage() {\n if (!this.hasNextPage()) {\n throw new Error('No more pages to fetch.');\n }\n const response = await this.requestInternal(this.params);\n this.initNextPage(response);\n return this.page;\n }\n /**\n * Returns true if there are more pages to fetch from the API.\n */\n hasNextPage() {\n var _a;\n if (((_a = this.params['config']) === null || _a === void 0 ? void 0 : _a['pageToken']) !== undefined) {\n return true;\n }\n return false;\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Batches extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n /**\n * Create batch job.\n *\n * @param params - The parameters for create batch job request.\n * @return The created batch job.\n *\n * @example\n * ```ts\n * const response = await ai.batches.create({\n * model: 'gemini-2.0-flash',\n * src: {gcsUri: 'gs://bucket/path/to/file.jsonl', format: 'jsonl'},\n * config: {\n * dest: {gcsUri: 'gs://bucket/path/output/directory', format: 'jsonl'},\n * }\n * });\n * console.log(response);\n * ```\n */\n this.create = async (params) => {\n if (this.apiClient.isVertexAI()) {\n // Format destination if not provided\n // Cast params.src as Vertex AI path does not handle InlinedRequest[]\n params.config = this.formatDestination(params.src, params.config);\n }\n return this.createInternal(params);\n };\n /**\n * **Experimental** Creates an embedding batch job.\n *\n * @param params - The parameters for create embedding batch job request.\n * @return The created batch job.\n *\n * @example\n * ```ts\n * const response = await ai.batches.createEmbeddings({\n * model: 'text-embedding-004',\n * src: {fileName: 'files/my_embedding_input'},\n * });\n * console.log(response);\n * ```\n */\n this.createEmbeddings = async (params) => {\n console.warn('batches.createEmbeddings() is experimental and may change without notice.');\n if (this.apiClient.isVertexAI()) {\n throw new Error('Vertex AI does not support batches.createEmbeddings.');\n }\n return this.createEmbeddingsInternal(params);\n };\n /**\n * Lists batch job configurations.\n *\n * @param params - The parameters for the list request.\n * @return The paginated results of the list of batch jobs.\n *\n * @example\n * ```ts\n * const batchJobs = await ai.batches.list({config: {'pageSize': 2}});\n * for await (const batchJob of batchJobs) {\n * console.log(batchJob);\n * }\n * ```\n */\n this.list = async (params = {}) => {\n return new Pager(PagedItem.PAGED_ITEM_BATCH_JOBS, (x) => this.listInternal(x), await this.listInternal(params), params);\n };\n }\n // Helper function to handle inlined generate content requests\n createInlinedGenerateContentRequest(params) {\n const body = createBatchJobParametersToMldev(this.apiClient, // Use instance apiClient\n params);\n const urlParams = body['_url'];\n const path = formatMap('{model}:batchGenerateContent', urlParams);\n const batch = body['batch'];\n const inputConfig = batch['inputConfig'];\n const requestsWrapper = inputConfig['requests'];\n const requests = requestsWrapper['requests'];\n const newRequests = [];\n for (const request of requests) {\n const requestDict = Object.assign({}, request); // Clone\n if (requestDict['systemInstruction']) {\n const systemInstructionValue = requestDict['systemInstruction'];\n delete requestDict['systemInstruction'];\n const requestContent = requestDict['request'];\n requestContent['systemInstruction'] = systemInstructionValue;\n requestDict['request'] = requestContent;\n }\n newRequests.push(requestDict);\n }\n requestsWrapper['requests'] = newRequests;\n delete body['config'];\n delete body['_url'];\n delete body['_query'];\n return { path, body };\n }\n // Helper function to get the first GCS URI\n getGcsUri(src) {\n if (typeof src === 'string') {\n return src.startsWith('gs://') ? src : undefined;\n }\n if (!Array.isArray(src) && src.gcsUri && src.gcsUri.length > 0) {\n return src.gcsUri[0];\n }\n return undefined;\n }\n // Helper function to get the BigQuery URI\n getBigqueryUri(src) {\n if (typeof src === 'string') {\n return src.startsWith('bq://') ? src : undefined;\n }\n if (!Array.isArray(src)) {\n return src.bigqueryUri;\n }\n return undefined;\n }\n // Function to format the destination configuration for Vertex AI\n formatDestination(src, config) {\n const newConfig = config ? Object.assign({}, config) : {};\n const timestampStr = Date.now().toString();\n if (!newConfig.displayName) {\n newConfig.displayName = `genaiBatchJob_${timestampStr}`;\n }\n if (newConfig.dest === undefined) {\n const gcsUri = this.getGcsUri(src);\n const bigqueryUri = this.getBigqueryUri(src);\n if (gcsUri) {\n if (gcsUri.endsWith('.jsonl')) {\n // For .jsonl files, remove suffix and add /dest\n newConfig.dest = `${gcsUri.slice(0, -6)}/dest`;\n }\n else {\n // Fallback for other GCS URIs\n newConfig.dest = `${gcsUri}_dest_${timestampStr}`;\n }\n }\n else if (bigqueryUri) {\n newConfig.dest = `${bigqueryUri}_dest_${timestampStr}`;\n }\n else {\n throw new Error('Unsupported source for Vertex AI: No GCS or BigQuery URI found.');\n }\n }\n return newConfig;\n }\n /**\n * Internal method to create batch job.\n *\n * @param params - The parameters for create batch job request.\n * @return The created batch job.\n *\n */\n async createInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = createBatchJobParametersToVertex(this.apiClient, params);\n path = formatMap('batchPredictionJobs', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = batchJobFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = createBatchJobParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:batchGenerateContent', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = batchJobFromMldev(apiResponse);\n return resp;\n });\n }\n }\n /**\n * Internal method to create batch job.\n *\n * @param params - The parameters for create batch job request.\n * @return The created batch job.\n *\n */\n async createEmbeddingsInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = createEmbeddingsBatchJobParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:asyncBatchEmbedContent', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = batchJobFromMldev(apiResponse);\n return resp;\n });\n }\n }\n /**\n * Gets batch job configurations.\n *\n * @param params - The parameters for the get request.\n * @return The batch job.\n *\n * @example\n * ```ts\n * await ai.batches.get({name: '...'}); // The server-generated resource name.\n * ```\n */\n async get(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = getBatchJobParametersToVertex(this.apiClient, params);\n path = formatMap('batchPredictionJobs/{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = batchJobFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = getBatchJobParametersToMldev(this.apiClient, params);\n path = formatMap('batches/{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = batchJobFromMldev(apiResponse);\n return resp;\n });\n }\n }\n /**\n * Cancels a batch job.\n *\n * @param params - The parameters for the cancel request.\n * @return The empty response returned by the API.\n *\n * @example\n * ```ts\n * await ai.batches.cancel({name: '...'}); // The server-generated resource name.\n * ```\n */\n async cancel(params) {\n var _a, _b, _c, _d;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = cancelBatchJobParametersToVertex(this.apiClient, params);\n path = formatMap('batchPredictionJobs/{name}:cancel', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n await this.apiClient.request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n });\n }\n else {\n const body = cancelBatchJobParametersToMldev(this.apiClient, params);\n path = formatMap('batches/{name}:cancel', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n await this.apiClient.request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n });\n }\n }\n async listInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = listBatchJobsParametersToVertex(params);\n path = formatMap('batchPredictionJobs', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listBatchJobsResponseFromVertex(apiResponse);\n const typedResp = new ListBatchJobsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = listBatchJobsParametersToMldev(params);\n path = formatMap('batches', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listBatchJobsResponseFromMldev(apiResponse);\n const typedResp = new ListBatchJobsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Deletes a batch job.\n *\n * @param params - The parameters for the delete request.\n * @return The empty response returned by the API.\n *\n * @example\n * ```ts\n * await ai.batches.delete({name: '...'}); // The server-generated resource name.\n * ```\n */\n async delete(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = deleteBatchJobParametersToVertex(this.apiClient, params);\n path = formatMap('batchPredictionJobs/{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteResourceJobFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = deleteBatchJobParametersToMldev(this.apiClient, params);\n path = formatMap('batches/{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteResourceJobFromMldev(apiResponse);\n return resp;\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction blobToMldev$3(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromData = getValueByPath(fromObject, ['data']);\n if (fromData != null) {\n setValueByPath(toObject, ['data'], fromData);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction contentToMldev$3(fromObject) {\n const toObject = {};\n const fromParts = getValueByPath(fromObject, ['parts']);\n if (fromParts != null) {\n let transformedList = fromParts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return partToMldev$3(item);\n });\n }\n setValueByPath(toObject, ['parts'], transformedList);\n }\n const fromRole = getValueByPath(fromObject, ['role']);\n if (fromRole != null) {\n setValueByPath(toObject, ['role'], fromRole);\n }\n return toObject;\n}\nfunction createCachedContentConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromTtl = getValueByPath(fromObject, ['ttl']);\n if (parentObject !== undefined && fromTtl != null) {\n setValueByPath(parentObject, ['ttl'], fromTtl);\n }\n const fromExpireTime = getValueByPath(fromObject, ['expireTime']);\n if (parentObject !== undefined && fromExpireTime != null) {\n setValueByPath(parentObject, ['expireTime'], fromExpireTime);\n }\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromDisplayName);\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (parentObject !== undefined && fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return contentToMldev$3(item);\n });\n }\n setValueByPath(parentObject, ['contents'], transformedList);\n }\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], contentToMldev$3(tContent(fromSystemInstruction)));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = fromTools;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToMldev$3(item);\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromToolConfig = getValueByPath(fromObject, ['toolConfig']);\n if (parentObject !== undefined && fromToolConfig != null) {\n setValueByPath(parentObject, ['toolConfig'], fromToolConfig);\n }\n if (getValueByPath(fromObject, ['kmsKeyName']) !== undefined) {\n throw new Error('kmsKeyName parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction createCachedContentConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromTtl = getValueByPath(fromObject, ['ttl']);\n if (parentObject !== undefined && fromTtl != null) {\n setValueByPath(parentObject, ['ttl'], fromTtl);\n }\n const fromExpireTime = getValueByPath(fromObject, ['expireTime']);\n if (parentObject !== undefined && fromExpireTime != null) {\n setValueByPath(parentObject, ['expireTime'], fromExpireTime);\n }\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromDisplayName);\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (parentObject !== undefined && fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(parentObject, ['contents'], transformedList);\n }\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], tContent(fromSystemInstruction));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = fromTools;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToVertex$2(item);\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromToolConfig = getValueByPath(fromObject, ['toolConfig']);\n if (parentObject !== undefined && fromToolConfig != null) {\n setValueByPath(parentObject, ['toolConfig'], fromToolConfig);\n }\n const fromKmsKeyName = getValueByPath(fromObject, ['kmsKeyName']);\n if (parentObject !== undefined && fromKmsKeyName != null) {\n setValueByPath(parentObject, ['encryption_spec', 'kmsKeyName'], fromKmsKeyName);\n }\n return toObject;\n}\nfunction createCachedContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], tCachesModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createCachedContentConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction createCachedContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], tCachesModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createCachedContentConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction deleteCachedContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n return toObject;\n}\nfunction deleteCachedContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n return toObject;\n}\nfunction deleteCachedContentResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction deleteCachedContentResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction fileDataToMldev$3(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromFileUri = getValueByPath(fromObject, ['fileUri']);\n if (fromFileUri != null) {\n setValueByPath(toObject, ['fileUri'], fromFileUri);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction functionDeclarationToVertex$2(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['behavior']) !== undefined) {\n throw new Error('behavior parameter is not supported in Vertex AI.');\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromParameters = getValueByPath(fromObject, ['parameters']);\n if (fromParameters != null) {\n setValueByPath(toObject, ['parameters'], fromParameters);\n }\n const fromParametersJsonSchema = getValueByPath(fromObject, [\n 'parametersJsonSchema',\n ]);\n if (fromParametersJsonSchema != null) {\n setValueByPath(toObject, ['parametersJsonSchema'], fromParametersJsonSchema);\n }\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], fromResponse);\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n return toObject;\n}\nfunction getCachedContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n return toObject;\n}\nfunction getCachedContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n return toObject;\n}\nfunction googleMapsToMldev$3(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['authConfig']) !== undefined) {\n throw new Error('authConfig parameter is not supported in Gemini API.');\n }\n const fromEnableWidget = getValueByPath(fromObject, ['enableWidget']);\n if (fromEnableWidget != null) {\n setValueByPath(toObject, ['enableWidget'], fromEnableWidget);\n }\n return toObject;\n}\nfunction googleSearchToMldev$3(fromObject) {\n const toObject = {};\n const fromTimeRangeFilter = getValueByPath(fromObject, [\n 'timeRangeFilter',\n ]);\n if (fromTimeRangeFilter != null) {\n setValueByPath(toObject, ['timeRangeFilter'], fromTimeRangeFilter);\n }\n if (getValueByPath(fromObject, ['excludeDomains']) !== undefined) {\n throw new Error('excludeDomains parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction listCachedContentsConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n return toObject;\n}\nfunction listCachedContentsConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n return toObject;\n}\nfunction listCachedContentsParametersToMldev(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listCachedContentsConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listCachedContentsParametersToVertex(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listCachedContentsConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listCachedContentsResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromCachedContents = getValueByPath(fromObject, [\n 'cachedContents',\n ]);\n if (fromCachedContents != null) {\n let transformedList = fromCachedContents;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['cachedContents'], transformedList);\n }\n return toObject;\n}\nfunction listCachedContentsResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromCachedContents = getValueByPath(fromObject, [\n 'cachedContents',\n ]);\n if (fromCachedContents != null) {\n let transformedList = fromCachedContents;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['cachedContents'], transformedList);\n }\n return toObject;\n}\nfunction partToMldev$3(fromObject) {\n const toObject = {};\n const fromVideoMetadata = getValueByPath(fromObject, [\n 'videoMetadata',\n ]);\n if (fromVideoMetadata != null) {\n setValueByPath(toObject, ['videoMetadata'], fromVideoMetadata);\n }\n const fromThought = getValueByPath(fromObject, ['thought']);\n if (fromThought != null) {\n setValueByPath(toObject, ['thought'], fromThought);\n }\n const fromInlineData = getValueByPath(fromObject, ['inlineData']);\n if (fromInlineData != null) {\n setValueByPath(toObject, ['inlineData'], blobToMldev$3(fromInlineData));\n }\n const fromFileData = getValueByPath(fromObject, ['fileData']);\n if (fromFileData != null) {\n setValueByPath(toObject, ['fileData'], fileDataToMldev$3(fromFileData));\n }\n const fromThoughtSignature = getValueByPath(fromObject, [\n 'thoughtSignature',\n ]);\n if (fromThoughtSignature != null) {\n setValueByPath(toObject, ['thoughtSignature'], fromThoughtSignature);\n }\n const fromFunctionCall = getValueByPath(fromObject, ['functionCall']);\n if (fromFunctionCall != null) {\n setValueByPath(toObject, ['functionCall'], fromFunctionCall);\n }\n const fromCodeExecutionResult = getValueByPath(fromObject, [\n 'codeExecutionResult',\n ]);\n if (fromCodeExecutionResult != null) {\n setValueByPath(toObject, ['codeExecutionResult'], fromCodeExecutionResult);\n }\n const fromExecutableCode = getValueByPath(fromObject, [\n 'executableCode',\n ]);\n if (fromExecutableCode != null) {\n setValueByPath(toObject, ['executableCode'], fromExecutableCode);\n }\n const fromFunctionResponse = getValueByPath(fromObject, [\n 'functionResponse',\n ]);\n if (fromFunctionResponse != null) {\n setValueByPath(toObject, ['functionResponse'], fromFunctionResponse);\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n return toObject;\n}\nfunction toolToMldev$3(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n if (getValueByPath(fromObject, ['retrieval']) !== undefined) {\n throw new Error('retrieval parameter is not supported in Gemini API.');\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], googleSearchToMldev$3(fromGoogleSearch));\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n if (getValueByPath(fromObject, ['enterpriseWebSearch']) !== undefined) {\n throw new Error('enterpriseWebSearch parameter is not supported in Gemini API.');\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], googleMapsToMldev$3(fromGoogleMaps));\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction toolToVertex$2(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return functionDeclarationToVertex$2(item);\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n const fromRetrieval = getValueByPath(fromObject, ['retrieval']);\n if (fromRetrieval != null) {\n setValueByPath(toObject, ['retrieval'], fromRetrieval);\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], fromGoogleSearch);\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n const fromEnterpriseWebSearch = getValueByPath(fromObject, [\n 'enterpriseWebSearch',\n ]);\n if (fromEnterpriseWebSearch != null) {\n setValueByPath(toObject, ['enterpriseWebSearch'], fromEnterpriseWebSearch);\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], fromGoogleMaps);\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction updateCachedContentConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromTtl = getValueByPath(fromObject, ['ttl']);\n if (parentObject !== undefined && fromTtl != null) {\n setValueByPath(parentObject, ['ttl'], fromTtl);\n }\n const fromExpireTime = getValueByPath(fromObject, ['expireTime']);\n if (parentObject !== undefined && fromExpireTime != null) {\n setValueByPath(parentObject, ['expireTime'], fromExpireTime);\n }\n return toObject;\n}\nfunction updateCachedContentConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromTtl = getValueByPath(fromObject, ['ttl']);\n if (parentObject !== undefined && fromTtl != null) {\n setValueByPath(parentObject, ['ttl'], fromTtl);\n }\n const fromExpireTime = getValueByPath(fromObject, ['expireTime']);\n if (parentObject !== undefined && fromExpireTime != null) {\n setValueByPath(parentObject, ['expireTime'], fromExpireTime);\n }\n return toObject;\n}\nfunction updateCachedContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n updateCachedContentConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction updateCachedContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], tCachedContentName(apiClient, fromName));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n updateCachedContentConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Caches extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n /**\n * Lists cached content configurations.\n *\n * @param params - The parameters for the list request.\n * @return The paginated results of the list of cached contents.\n *\n * @example\n * ```ts\n * const cachedContents = await ai.caches.list({config: {'pageSize': 2}});\n * for await (const cachedContent of cachedContents) {\n * console.log(cachedContent);\n * }\n * ```\n */\n this.list = async (params = {}) => {\n return new Pager(PagedItem.PAGED_ITEM_CACHED_CONTENTS, (x) => this.listInternal(x), await this.listInternal(params), params);\n };\n }\n /**\n * Creates a cached contents resource.\n *\n * @remarks\n * Context caching is only supported for specific models. See [Gemini\n * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac)\n * and [Vertex AI reference](https://cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview#supported_models)\n * for more information.\n *\n * @param params - The parameters for the create request.\n * @return The created cached content.\n *\n * @example\n * ```ts\n * const contents = ...; // Initialize the content to cache.\n * const response = await ai.caches.create({\n * model: 'gemini-2.0-flash-001',\n * config: {\n * 'contents': contents,\n * 'displayName': 'test cache',\n * 'systemInstruction': 'What is the sum of the two pdfs?',\n * 'ttl': '86400s',\n * }\n * });\n * ```\n */\n async create(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = createCachedContentParametersToVertex(this.apiClient, params);\n path = formatMap('cachedContents', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n else {\n const body = createCachedContentParametersToMldev(this.apiClient, params);\n path = formatMap('cachedContents', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n }\n /**\n * Gets cached content configurations.\n *\n * @param params - The parameters for the get request.\n * @return The cached content.\n *\n * @example\n * ```ts\n * await ai.caches.get({name: '...'}); // The server-generated resource name.\n * ```\n */\n async get(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = getCachedContentParametersToVertex(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n else {\n const body = getCachedContentParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n }\n /**\n * Deletes cached content.\n *\n * @param params - The parameters for the delete request.\n * @return The empty response returned by the API.\n *\n * @example\n * ```ts\n * await ai.caches.delete({name: '...'}); // The server-generated resource name.\n * ```\n */\n async delete(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = deleteCachedContentParametersToVertex(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteCachedContentResponseFromVertex(apiResponse);\n const typedResp = new DeleteCachedContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = deleteCachedContentParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteCachedContentResponseFromMldev(apiResponse);\n const typedResp = new DeleteCachedContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Updates cached content configurations.\n *\n * @param params - The parameters for the update request.\n * @return The updated cached content.\n *\n * @example\n * ```ts\n * const response = await ai.caches.update({\n * name: '...', // The server-generated resource name.\n * config: {'ttl': '7600s'}\n * });\n * ```\n */\n async update(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = updateCachedContentParametersToVertex(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'PATCH',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n else {\n const body = updateCachedContentParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'PATCH',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n }\n async listInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = listCachedContentsParametersToVertex(params);\n path = formatMap('cachedContents', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listCachedContentsResponseFromVertex(apiResponse);\n const typedResp = new ListCachedContentsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = listCachedContentsParametersToMldev(params);\n path = formatMap('cachedContents', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listCachedContentsResponseFromMldev(apiResponse);\n const typedResp = new ListCachedContentsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Returns true if the response is valid, false otherwise.\n */\nfunction isValidResponse(response) {\n var _a;\n if (response.candidates == undefined || response.candidates.length === 0) {\n return false;\n }\n const content = (_a = response.candidates[0]) === null || _a === void 0 ? void 0 : _a.content;\n if (content === undefined) {\n return false;\n }\n return isValidContent(content);\n}\nfunction isValidContent(content) {\n if (content.parts === undefined || content.parts.length === 0) {\n return false;\n }\n for (const part of content.parts) {\n if (part === undefined || Object.keys(part).length === 0) {\n return false;\n }\n }\n return true;\n}\n/**\n * Validates the history contains the correct roles.\n *\n * @throws Error if the history does not start with a user turn.\n * @throws Error if the history contains an invalid role.\n */\nfunction validateHistory(history) {\n // Empty history is valid.\n if (history.length === 0) {\n return;\n }\n for (const content of history) {\n if (content.role !== 'user' && content.role !== 'model') {\n throw new Error(`Role must be user or model, but got ${content.role}.`);\n }\n }\n}\n/**\n * Extracts the curated (valid) history from a comprehensive history.\n *\n * @remarks\n * The model may sometimes generate invalid or empty contents(e.g., due to safty\n * filters or recitation). Extracting valid turns from the history\n * ensures that subsequent requests could be accpeted by the model.\n */\nfunction extractCuratedHistory(comprehensiveHistory) {\n if (comprehensiveHistory === undefined || comprehensiveHistory.length === 0) {\n return [];\n }\n const curatedHistory = [];\n const length = comprehensiveHistory.length;\n let i = 0;\n while (i < length) {\n if (comprehensiveHistory[i].role === 'user') {\n curatedHistory.push(comprehensiveHistory[i]);\n i++;\n }\n else {\n const modelOutput = [];\n let isValid = true;\n while (i < length && comprehensiveHistory[i].role === 'model') {\n modelOutput.push(comprehensiveHistory[i]);\n if (isValid && !isValidContent(comprehensiveHistory[i])) {\n isValid = false;\n }\n i++;\n }\n if (isValid) {\n curatedHistory.push(...modelOutput);\n }\n else {\n // Remove the last user input when model content is invalid.\n curatedHistory.pop();\n }\n }\n }\n return curatedHistory;\n}\n/**\n * A utility class to create a chat session.\n */\nclass Chats {\n constructor(modelsModule, apiClient) {\n this.modelsModule = modelsModule;\n this.apiClient = apiClient;\n }\n /**\n * Creates a new chat session.\n *\n * @remarks\n * The config in the params will be used for all requests within the chat\n * session unless overridden by a per-request `config` in\n * @see {@link types.SendMessageParameters#config}.\n *\n * @param params - Parameters for creating a chat session.\n * @returns A new chat session.\n *\n * @example\n * ```ts\n * const chat = ai.chats.create({\n * model: 'gemini-2.0-flash'\n * config: {\n * temperature: 0.5,\n * maxOutputTokens: 1024,\n * }\n * });\n * ```\n */\n create(params) {\n return new Chat(this.apiClient, this.modelsModule, params.model, params.config, \n // Deep copy the history to avoid mutating the history outside of the\n // chat session.\n structuredClone(params.history));\n }\n}\n/**\n * Chat session that enables sending messages to the model with previous\n * conversation context.\n *\n * @remarks\n * The session maintains all the turns between user and model.\n */\nclass Chat {\n constructor(apiClient, modelsModule, model, config = {}, history = []) {\n this.apiClient = apiClient;\n this.modelsModule = modelsModule;\n this.model = model;\n this.config = config;\n this.history = history;\n // A promise to represent the current state of the message being sent to the\n // model.\n this.sendPromise = Promise.resolve();\n validateHistory(history);\n }\n /**\n * Sends a message to the model and returns the response.\n *\n * @remarks\n * This method will wait for the previous message to be processed before\n * sending the next message.\n *\n * @see {@link Chat#sendMessageStream} for streaming method.\n * @param params - parameters for sending messages within a chat session.\n * @returns The model's response.\n *\n * @example\n * ```ts\n * const chat = ai.chats.create({model: 'gemini-2.0-flash'});\n * const response = await chat.sendMessage({\n * message: 'Why is the sky blue?'\n * });\n * console.log(response.text);\n * ```\n */\n async sendMessage(params) {\n var _a;\n await this.sendPromise;\n const inputContent = tContent(params.message);\n const responsePromise = this.modelsModule.generateContent({\n model: this.model,\n contents: this.getHistory(true).concat(inputContent),\n config: (_a = params.config) !== null && _a !== void 0 ? _a : this.config,\n });\n this.sendPromise = (async () => {\n var _a, _b, _c;\n const response = await responsePromise;\n const outputContent = (_b = (_a = response.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content;\n // Because the AFC input contains the entire curated chat history in\n // addition to the new user input, we need to truncate the AFC history\n // to deduplicate the existing chat history.\n const fullAutomaticFunctionCallingHistory = response.automaticFunctionCallingHistory;\n const index = this.getHistory(true).length;\n let automaticFunctionCallingHistory = [];\n if (fullAutomaticFunctionCallingHistory != null) {\n automaticFunctionCallingHistory =\n (_c = fullAutomaticFunctionCallingHistory.slice(index)) !== null && _c !== void 0 ? _c : [];\n }\n const modelOutput = outputContent ? [outputContent] : [];\n this.recordHistory(inputContent, modelOutput, automaticFunctionCallingHistory);\n return;\n })();\n await this.sendPromise.catch(() => {\n // Resets sendPromise to avoid subsequent calls failing\n this.sendPromise = Promise.resolve();\n });\n return responsePromise;\n }\n /**\n * Sends a message to the model and returns the response in chunks.\n *\n * @remarks\n * This method will wait for the previous message to be processed before\n * sending the next message.\n *\n * @see {@link Chat#sendMessage} for non-streaming method.\n * @param params - parameters for sending the message.\n * @return The model's response.\n *\n * @example\n * ```ts\n * const chat = ai.chats.create({model: 'gemini-2.0-flash'});\n * const response = await chat.sendMessageStream({\n * message: 'Why is the sky blue?'\n * });\n * for await (const chunk of response) {\n * console.log(chunk.text);\n * }\n * ```\n */\n async sendMessageStream(params) {\n var _a;\n await this.sendPromise;\n const inputContent = tContent(params.message);\n const streamResponse = this.modelsModule.generateContentStream({\n model: this.model,\n contents: this.getHistory(true).concat(inputContent),\n config: (_a = params.config) !== null && _a !== void 0 ? _a : this.config,\n });\n // Resolve the internal tracking of send completion promise - `sendPromise`\n // for both success and failure response. The actual failure is still\n // propagated by the `await streamResponse`.\n this.sendPromise = streamResponse\n .then(() => undefined)\n .catch(() => undefined);\n const response = await streamResponse;\n const result = this.processStreamResponse(response, inputContent);\n return result;\n }\n /**\n * Returns the chat history.\n *\n * @remarks\n * The history is a list of contents alternating between user and model.\n *\n * There are two types of history:\n * - The `curated history` contains only the valid turns between user and\n * model, which will be included in the subsequent requests sent to the model.\n * - The `comprehensive history` contains all turns, including invalid or\n * empty model outputs, providing a complete record of the history.\n *\n * The history is updated after receiving the response from the model,\n * for streaming response, it means receiving the last chunk of the response.\n *\n * The `comprehensive history` is returned by default. To get the `curated\n * history`, set the `curated` parameter to `true`.\n *\n * @param curated - whether to return the curated history or the comprehensive\n * history.\n * @return History contents alternating between user and model for the entire\n * chat session.\n */\n getHistory(curated = false) {\n const history = curated\n ? extractCuratedHistory(this.history)\n : this.history;\n // Deep copy the history to avoid mutating the history outside of the\n // chat session.\n return structuredClone(history);\n }\n processStreamResponse(streamResponse, inputContent) {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* processStreamResponse_1() {\n var _c, e_1, _d, _e;\n const outputContent = [];\n try {\n for (var _f = true, streamResponse_1 = __asyncValues(streamResponse), streamResponse_1_1; streamResponse_1_1 = yield __await(streamResponse_1.next()), _c = streamResponse_1_1.done, !_c; _f = true) {\n _e = streamResponse_1_1.value;\n _f = false;\n const chunk = _e;\n if (isValidResponse(chunk)) {\n const content = (_b = (_a = chunk.candidates) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.content;\n if (content !== undefined) {\n outputContent.push(content);\n }\n }\n yield yield __await(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_c && (_d = streamResponse_1.return)) yield __await(_d.call(streamResponse_1));\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.recordHistory(inputContent, outputContent);\n });\n }\n recordHistory(userInput, modelOutput, automaticFunctionCallingHistory) {\n let outputContents = [];\n if (modelOutput.length > 0 &&\n modelOutput.every((content) => content.role !== undefined)) {\n outputContents = modelOutput;\n }\n else {\n // Appends an empty content when model returns empty response, so that the\n // history is always alternating between user and model.\n outputContents.push({\n role: 'model',\n parts: [],\n });\n }\n if (automaticFunctionCallingHistory &&\n automaticFunctionCallingHistory.length > 0) {\n this.history.push(...extractCuratedHistory(automaticFunctionCallingHistory));\n }\n else {\n this.history.push(userInput);\n }\n this.history.push(...outputContents);\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * API errors raised by the GenAI API.\n */\nclass ApiError extends Error {\n constructor(options) {\n super(options.message);\n this.name = 'ApiError';\n this.status = options.status;\n Object.setPrototypeOf(this, ApiError.prototype);\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Code generated by the Google Gen AI SDK generator DO NOT EDIT.\nfunction createFileParametersToMldev(fromObject) {\n const toObject = {};\n const fromFile = getValueByPath(fromObject, ['file']);\n if (fromFile != null) {\n setValueByPath(toObject, ['file'], fromFile);\n }\n return toObject;\n}\nfunction createFileResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction deleteFileParametersToMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'file'], tFileName(fromName));\n }\n return toObject;\n}\nfunction deleteFileResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction getFileParametersToMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'file'], tFileName(fromName));\n }\n return toObject;\n}\nfunction listFilesConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n return toObject;\n}\nfunction listFilesParametersToMldev(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listFilesConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listFilesResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromFiles = getValueByPath(fromObject, ['files']);\n if (fromFiles != null) {\n let transformedList = fromFiles;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['files'], transformedList);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Files extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n /**\n * Lists all current project files from the service.\n *\n * @param params - The parameters for the list request\n * @return The paginated results of the list of files\n *\n * @example\n * The following code prints the names of all files from the service, the\n * size of each page is 10.\n *\n * ```ts\n * const listResponse = await ai.files.list({config: {'pageSize': 10}});\n * for await (const file of listResponse) {\n * console.log(file.name);\n * }\n * ```\n */\n this.list = async (params = {}) => {\n return new Pager(PagedItem.PAGED_ITEM_FILES, (x) => this.listInternal(x), await this.listInternal(params), params);\n };\n }\n /**\n * Uploads a file asynchronously to the Gemini API.\n * This method is not available in Vertex AI.\n * Supported upload sources:\n * - Node.js: File path (string) or Blob object.\n * - Browser: Blob object (e.g., File).\n *\n * @remarks\n * The `mimeType` can be specified in the `config` parameter. If omitted:\n * - For file path (string) inputs, the `mimeType` will be inferred from the\n * file extension.\n * - For Blob object inputs, the `mimeType` will be set to the Blob's `type`\n * property.\n * Somex eamples for file extension to mimeType mapping:\n * .txt -> text/plain\n * .json -> application/json\n * .jpg -> image/jpeg\n * .png -> image/png\n * .mp3 -> audio/mpeg\n * .mp4 -> video/mp4\n *\n * This section can contain multiple paragraphs and code examples.\n *\n * @param params - Optional parameters specified in the\n * `types.UploadFileParameters` interface.\n * @see {@link types.UploadFileParameters#config} for the optional\n * config in the parameters.\n * @return A promise that resolves to a `types.File` object.\n * @throws An error if called on a Vertex AI client.\n * @throws An error if the `mimeType` is not provided and can not be inferred,\n * the `mimeType` can be provided in the `params.config` parameter.\n * @throws An error occurs if a suitable upload location cannot be established.\n *\n * @example\n * The following code uploads a file to Gemini API.\n *\n * ```ts\n * const file = await ai.files.upload({file: 'file.txt', config: {\n * mimeType: 'text/plain',\n * }});\n * console.log(file.name);\n * ```\n */\n async upload(params) {\n if (this.apiClient.isVertexAI()) {\n throw new Error('Vertex AI does not support uploading files. You can share files through a GCS bucket.');\n }\n return this.apiClient\n .uploadFile(params.file, params.config)\n .then((resp) => {\n return resp;\n });\n }\n /**\n * Downloads a remotely stored file asynchronously to a location specified in\n * the `params` object. This method only works on Node environment, to\n * download files in the browser, use a browser compliant method like an \n * tag.\n *\n * @param params - The parameters for the download request.\n *\n * @example\n * The following code downloads an example file named \"files/mehozpxf877d\" as\n * \"file.txt\".\n *\n * ```ts\n * await ai.files.download({file: file.name, downloadPath: 'file.txt'});\n * ```\n */\n async download(params) {\n await this.apiClient.downloadFile(params);\n }\n async listInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = listFilesParametersToMldev(params);\n path = formatMap('files', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listFilesResponseFromMldev(apiResponse);\n const typedResp = new ListFilesResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n async createInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = createFileParametersToMldev(params);\n path = formatMap('upload/v1beta/files', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = createFileResponseFromMldev(apiResponse);\n const typedResp = new CreateFileResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Retrieves the file information from the service.\n *\n * @param params - The parameters for the get request\n * @return The Promise that resolves to the types.File object requested.\n *\n * @example\n * ```ts\n * const config: GetFileParameters = {\n * name: fileName,\n * };\n * file = await ai.files.get(config);\n * console.log(file.name);\n * ```\n */\n async get(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = getFileParametersToMldev(params);\n path = formatMap('files/{file}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n }\n /**\n * Deletes a remotely stored file.\n *\n * @param params - The parameters for the delete request.\n * @return The DeleteFileResponse, the response for the delete method.\n *\n * @example\n * The following code deletes an example file named \"files/mehozpxf877d\".\n *\n * ```ts\n * await ai.files.delete({name: file.name});\n * ```\n */\n async delete(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = deleteFileParametersToMldev(params);\n path = formatMap('files/{file}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteFileResponseFromMldev(apiResponse);\n const typedResp = new DeleteFileResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction blobToMldev$2(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromData = getValueByPath(fromObject, ['data']);\n if (fromData != null) {\n setValueByPath(toObject, ['data'], fromData);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction contentToMldev$2(fromObject) {\n const toObject = {};\n const fromParts = getValueByPath(fromObject, ['parts']);\n if (fromParts != null) {\n let transformedList = fromParts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return partToMldev$2(item);\n });\n }\n setValueByPath(toObject, ['parts'], transformedList);\n }\n const fromRole = getValueByPath(fromObject, ['role']);\n if (fromRole != null) {\n setValueByPath(toObject, ['role'], fromRole);\n }\n return toObject;\n}\nfunction fileDataToMldev$2(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromFileUri = getValueByPath(fromObject, ['fileUri']);\n if (fromFileUri != null) {\n setValueByPath(toObject, ['fileUri'], fromFileUri);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction functionDeclarationToVertex$1(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['behavior']) !== undefined) {\n throw new Error('behavior parameter is not supported in Vertex AI.');\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromParameters = getValueByPath(fromObject, ['parameters']);\n if (fromParameters != null) {\n setValueByPath(toObject, ['parameters'], fromParameters);\n }\n const fromParametersJsonSchema = getValueByPath(fromObject, [\n 'parametersJsonSchema',\n ]);\n if (fromParametersJsonSchema != null) {\n setValueByPath(toObject, ['parametersJsonSchema'], fromParametersJsonSchema);\n }\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], fromResponse);\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n return toObject;\n}\nfunction generationConfigToVertex$1(fromObject) {\n const toObject = {};\n const fromModelSelectionConfig = getValueByPath(fromObject, [\n 'modelSelectionConfig',\n ]);\n if (fromModelSelectionConfig != null) {\n setValueByPath(toObject, ['modelConfig'], fromModelSelectionConfig);\n }\n const fromAudioTimestamp = getValueByPath(fromObject, [\n 'audioTimestamp',\n ]);\n if (fromAudioTimestamp != null) {\n setValueByPath(toObject, ['audioTimestamp'], fromAudioTimestamp);\n }\n const fromCandidateCount = getValueByPath(fromObject, [\n 'candidateCount',\n ]);\n if (fromCandidateCount != null) {\n setValueByPath(toObject, ['candidateCount'], fromCandidateCount);\n }\n const fromEnableAffectiveDialog = getValueByPath(fromObject, [\n 'enableAffectiveDialog',\n ]);\n if (fromEnableAffectiveDialog != null) {\n setValueByPath(toObject, ['enableAffectiveDialog'], fromEnableAffectiveDialog);\n }\n const fromFrequencyPenalty = getValueByPath(fromObject, [\n 'frequencyPenalty',\n ]);\n if (fromFrequencyPenalty != null) {\n setValueByPath(toObject, ['frequencyPenalty'], fromFrequencyPenalty);\n }\n const fromLogprobs = getValueByPath(fromObject, ['logprobs']);\n if (fromLogprobs != null) {\n setValueByPath(toObject, ['logprobs'], fromLogprobs);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (fromMaxOutputTokens != null) {\n setValueByPath(toObject, ['maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (fromMediaResolution != null) {\n setValueByPath(toObject, ['mediaResolution'], fromMediaResolution);\n }\n const fromPresencePenalty = getValueByPath(fromObject, [\n 'presencePenalty',\n ]);\n if (fromPresencePenalty != null) {\n setValueByPath(toObject, ['presencePenalty'], fromPresencePenalty);\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n const fromResponseLogprobs = getValueByPath(fromObject, [\n 'responseLogprobs',\n ]);\n if (fromResponseLogprobs != null) {\n setValueByPath(toObject, ['responseLogprobs'], fromResponseLogprobs);\n }\n const fromResponseMimeType = getValueByPath(fromObject, [\n 'responseMimeType',\n ]);\n if (fromResponseMimeType != null) {\n setValueByPath(toObject, ['responseMimeType'], fromResponseMimeType);\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (fromResponseModalities != null) {\n setValueByPath(toObject, ['responseModalities'], fromResponseModalities);\n }\n const fromResponseSchema = getValueByPath(fromObject, [\n 'responseSchema',\n ]);\n if (fromResponseSchema != null) {\n setValueByPath(toObject, ['responseSchema'], fromResponseSchema);\n }\n const fromRoutingConfig = getValueByPath(fromObject, [\n 'routingConfig',\n ]);\n if (fromRoutingConfig != null) {\n setValueByPath(toObject, ['routingConfig'], fromRoutingConfig);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (fromSeed != null) {\n setValueByPath(toObject, ['seed'], fromSeed);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (fromSpeechConfig != null) {\n setValueByPath(toObject, ['speechConfig'], speechConfigToVertex$1(fromSpeechConfig));\n }\n const fromStopSequences = getValueByPath(fromObject, [\n 'stopSequences',\n ]);\n if (fromStopSequences != null) {\n setValueByPath(toObject, ['stopSequences'], fromStopSequences);\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (fromTemperature != null) {\n setValueByPath(toObject, ['temperature'], fromTemperature);\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (fromThinkingConfig != null) {\n setValueByPath(toObject, ['thinkingConfig'], fromThinkingConfig);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (fromTopK != null) {\n setValueByPath(toObject, ['topK'], fromTopK);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (fromTopP != null) {\n setValueByPath(toObject, ['topP'], fromTopP);\n }\n if (getValueByPath(fromObject, ['enableEnhancedCivicAnswers']) !==\n undefined) {\n throw new Error('enableEnhancedCivicAnswers parameter is not supported in Vertex AI.');\n }\n return toObject;\n}\nfunction googleMapsToMldev$2(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['authConfig']) !== undefined) {\n throw new Error('authConfig parameter is not supported in Gemini API.');\n }\n const fromEnableWidget = getValueByPath(fromObject, ['enableWidget']);\n if (fromEnableWidget != null) {\n setValueByPath(toObject, ['enableWidget'], fromEnableWidget);\n }\n return toObject;\n}\nfunction googleSearchToMldev$2(fromObject) {\n const toObject = {};\n const fromTimeRangeFilter = getValueByPath(fromObject, [\n 'timeRangeFilter',\n ]);\n if (fromTimeRangeFilter != null) {\n setValueByPath(toObject, ['timeRangeFilter'], fromTimeRangeFilter);\n }\n if (getValueByPath(fromObject, ['excludeDomains']) !== undefined) {\n throw new Error('excludeDomains parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction liveConnectConfigToMldev$1(fromObject, parentObject) {\n const toObject = {};\n const fromGenerationConfig = getValueByPath(fromObject, [\n 'generationConfig',\n ]);\n if (parentObject !== undefined && fromGenerationConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig'], fromGenerationConfig);\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (parentObject !== undefined && fromResponseModalities != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'responseModalities'], fromResponseModalities);\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (parentObject !== undefined && fromTemperature != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (parentObject !== undefined && fromTopP != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (parentObject !== undefined && fromTopK != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topK'], fromTopK);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (parentObject !== undefined && fromMaxOutputTokens != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (parentObject !== undefined && fromMediaResolution != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'mediaResolution'], fromMediaResolution);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'seed'], fromSeed);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (parentObject !== undefined && fromSpeechConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'speechConfig'], tLiveSpeechConfig(fromSpeechConfig));\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (parentObject !== undefined && fromThinkingConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'thinkingConfig'], fromThinkingConfig);\n }\n const fromEnableAffectiveDialog = getValueByPath(fromObject, [\n 'enableAffectiveDialog',\n ]);\n if (parentObject !== undefined && fromEnableAffectiveDialog != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'enableAffectiveDialog'], fromEnableAffectiveDialog);\n }\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['setup', 'systemInstruction'], contentToMldev$2(tContent(fromSystemInstruction)));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToMldev$2(tTool(item));\n });\n }\n setValueByPath(parentObject, ['setup', 'tools'], transformedList);\n }\n const fromSessionResumption = getValueByPath(fromObject, [\n 'sessionResumption',\n ]);\n if (parentObject !== undefined && fromSessionResumption != null) {\n setValueByPath(parentObject, ['setup', 'sessionResumption'], sessionResumptionConfigToMldev$1(fromSessionResumption));\n }\n const fromInputAudioTranscription = getValueByPath(fromObject, [\n 'inputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromInputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'inputAudioTranscription'], fromInputAudioTranscription);\n }\n const fromOutputAudioTranscription = getValueByPath(fromObject, [\n 'outputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromOutputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'outputAudioTranscription'], fromOutputAudioTranscription);\n }\n const fromRealtimeInputConfig = getValueByPath(fromObject, [\n 'realtimeInputConfig',\n ]);\n if (parentObject !== undefined && fromRealtimeInputConfig != null) {\n setValueByPath(parentObject, ['setup', 'realtimeInputConfig'], fromRealtimeInputConfig);\n }\n const fromContextWindowCompression = getValueByPath(fromObject, [\n 'contextWindowCompression',\n ]);\n if (parentObject !== undefined && fromContextWindowCompression != null) {\n setValueByPath(parentObject, ['setup', 'contextWindowCompression'], fromContextWindowCompression);\n }\n const fromProactivity = getValueByPath(fromObject, ['proactivity']);\n if (parentObject !== undefined && fromProactivity != null) {\n setValueByPath(parentObject, ['setup', 'proactivity'], fromProactivity);\n }\n return toObject;\n}\nfunction liveConnectConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromGenerationConfig = getValueByPath(fromObject, [\n 'generationConfig',\n ]);\n if (parentObject !== undefined && fromGenerationConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig'], generationConfigToVertex$1(fromGenerationConfig));\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (parentObject !== undefined && fromResponseModalities != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'responseModalities'], fromResponseModalities);\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (parentObject !== undefined && fromTemperature != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (parentObject !== undefined && fromTopP != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (parentObject !== undefined && fromTopK != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topK'], fromTopK);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (parentObject !== undefined && fromMaxOutputTokens != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (parentObject !== undefined && fromMediaResolution != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'mediaResolution'], fromMediaResolution);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'seed'], fromSeed);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (parentObject !== undefined && fromSpeechConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'speechConfig'], speechConfigToVertex$1(tLiveSpeechConfig(fromSpeechConfig)));\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (parentObject !== undefined && fromThinkingConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'thinkingConfig'], fromThinkingConfig);\n }\n const fromEnableAffectiveDialog = getValueByPath(fromObject, [\n 'enableAffectiveDialog',\n ]);\n if (parentObject !== undefined && fromEnableAffectiveDialog != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'enableAffectiveDialog'], fromEnableAffectiveDialog);\n }\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['setup', 'systemInstruction'], tContent(fromSystemInstruction));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToVertex$1(tTool(item));\n });\n }\n setValueByPath(parentObject, ['setup', 'tools'], transformedList);\n }\n const fromSessionResumption = getValueByPath(fromObject, [\n 'sessionResumption',\n ]);\n if (parentObject !== undefined && fromSessionResumption != null) {\n setValueByPath(parentObject, ['setup', 'sessionResumption'], fromSessionResumption);\n }\n const fromInputAudioTranscription = getValueByPath(fromObject, [\n 'inputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromInputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'inputAudioTranscription'], fromInputAudioTranscription);\n }\n const fromOutputAudioTranscription = getValueByPath(fromObject, [\n 'outputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromOutputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'outputAudioTranscription'], fromOutputAudioTranscription);\n }\n const fromRealtimeInputConfig = getValueByPath(fromObject, [\n 'realtimeInputConfig',\n ]);\n if (parentObject !== undefined && fromRealtimeInputConfig != null) {\n setValueByPath(parentObject, ['setup', 'realtimeInputConfig'], fromRealtimeInputConfig);\n }\n const fromContextWindowCompression = getValueByPath(fromObject, [\n 'contextWindowCompression',\n ]);\n if (parentObject !== undefined && fromContextWindowCompression != null) {\n setValueByPath(parentObject, ['setup', 'contextWindowCompression'], fromContextWindowCompression);\n }\n const fromProactivity = getValueByPath(fromObject, ['proactivity']);\n if (parentObject !== undefined && fromProactivity != null) {\n setValueByPath(parentObject, ['setup', 'proactivity'], fromProactivity);\n }\n return toObject;\n}\nfunction liveConnectParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['setup', 'model'], tModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['config'], liveConnectConfigToMldev$1(fromConfig, toObject));\n }\n return toObject;\n}\nfunction liveConnectParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['setup', 'model'], tModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['config'], liveConnectConfigToVertex(fromConfig, toObject));\n }\n return toObject;\n}\nfunction liveMusicSetConfigParametersToMldev(fromObject) {\n const toObject = {};\n const fromMusicGenerationConfig = getValueByPath(fromObject, [\n 'musicGenerationConfig',\n ]);\n if (fromMusicGenerationConfig != null) {\n setValueByPath(toObject, ['musicGenerationConfig'], fromMusicGenerationConfig);\n }\n return toObject;\n}\nfunction liveMusicSetWeightedPromptsParametersToMldev(fromObject) {\n const toObject = {};\n const fromWeightedPrompts = getValueByPath(fromObject, [\n 'weightedPrompts',\n ]);\n if (fromWeightedPrompts != null) {\n let transformedList = fromWeightedPrompts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['weightedPrompts'], transformedList);\n }\n return toObject;\n}\nfunction liveSendRealtimeInputParametersToMldev(fromObject) {\n const toObject = {};\n const fromMedia = getValueByPath(fromObject, ['media']);\n if (fromMedia != null) {\n let transformedList = tBlobs(fromMedia);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return blobToMldev$2(item);\n });\n }\n setValueByPath(toObject, ['mediaChunks'], transformedList);\n }\n const fromAudio = getValueByPath(fromObject, ['audio']);\n if (fromAudio != null) {\n setValueByPath(toObject, ['audio'], blobToMldev$2(tAudioBlob(fromAudio)));\n }\n const fromAudioStreamEnd = getValueByPath(fromObject, [\n 'audioStreamEnd',\n ]);\n if (fromAudioStreamEnd != null) {\n setValueByPath(toObject, ['audioStreamEnd'], fromAudioStreamEnd);\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], blobToMldev$2(tImageBlob(fromVideo)));\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n const fromActivityStart = getValueByPath(fromObject, [\n 'activityStart',\n ]);\n if (fromActivityStart != null) {\n setValueByPath(toObject, ['activityStart'], fromActivityStart);\n }\n const fromActivityEnd = getValueByPath(fromObject, ['activityEnd']);\n if (fromActivityEnd != null) {\n setValueByPath(toObject, ['activityEnd'], fromActivityEnd);\n }\n return toObject;\n}\nfunction liveSendRealtimeInputParametersToVertex(fromObject) {\n const toObject = {};\n const fromMedia = getValueByPath(fromObject, ['media']);\n if (fromMedia != null) {\n let transformedList = tBlobs(fromMedia);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['mediaChunks'], transformedList);\n }\n const fromAudio = getValueByPath(fromObject, ['audio']);\n if (fromAudio != null) {\n setValueByPath(toObject, ['audio'], tAudioBlob(fromAudio));\n }\n const fromAudioStreamEnd = getValueByPath(fromObject, [\n 'audioStreamEnd',\n ]);\n if (fromAudioStreamEnd != null) {\n setValueByPath(toObject, ['audioStreamEnd'], fromAudioStreamEnd);\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], tImageBlob(fromVideo));\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n const fromActivityStart = getValueByPath(fromObject, [\n 'activityStart',\n ]);\n if (fromActivityStart != null) {\n setValueByPath(toObject, ['activityStart'], fromActivityStart);\n }\n const fromActivityEnd = getValueByPath(fromObject, ['activityEnd']);\n if (fromActivityEnd != null) {\n setValueByPath(toObject, ['activityEnd'], fromActivityEnd);\n }\n return toObject;\n}\nfunction liveServerMessageFromVertex(fromObject) {\n const toObject = {};\n const fromSetupComplete = getValueByPath(fromObject, [\n 'setupComplete',\n ]);\n if (fromSetupComplete != null) {\n setValueByPath(toObject, ['setupComplete'], fromSetupComplete);\n }\n const fromServerContent = getValueByPath(fromObject, [\n 'serverContent',\n ]);\n if (fromServerContent != null) {\n setValueByPath(toObject, ['serverContent'], fromServerContent);\n }\n const fromToolCall = getValueByPath(fromObject, ['toolCall']);\n if (fromToolCall != null) {\n setValueByPath(toObject, ['toolCall'], fromToolCall);\n }\n const fromToolCallCancellation = getValueByPath(fromObject, [\n 'toolCallCancellation',\n ]);\n if (fromToolCallCancellation != null) {\n setValueByPath(toObject, ['toolCallCancellation'], fromToolCallCancellation);\n }\n const fromUsageMetadata = getValueByPath(fromObject, [\n 'usageMetadata',\n ]);\n if (fromUsageMetadata != null) {\n setValueByPath(toObject, ['usageMetadata'], usageMetadataFromVertex(fromUsageMetadata));\n }\n const fromGoAway = getValueByPath(fromObject, ['goAway']);\n if (fromGoAway != null) {\n setValueByPath(toObject, ['goAway'], fromGoAway);\n }\n const fromSessionResumptionUpdate = getValueByPath(fromObject, [\n 'sessionResumptionUpdate',\n ]);\n if (fromSessionResumptionUpdate != null) {\n setValueByPath(toObject, ['sessionResumptionUpdate'], fromSessionResumptionUpdate);\n }\n return toObject;\n}\nfunction partToMldev$2(fromObject) {\n const toObject = {};\n const fromVideoMetadata = getValueByPath(fromObject, [\n 'videoMetadata',\n ]);\n if (fromVideoMetadata != null) {\n setValueByPath(toObject, ['videoMetadata'], fromVideoMetadata);\n }\n const fromThought = getValueByPath(fromObject, ['thought']);\n if (fromThought != null) {\n setValueByPath(toObject, ['thought'], fromThought);\n }\n const fromInlineData = getValueByPath(fromObject, ['inlineData']);\n if (fromInlineData != null) {\n setValueByPath(toObject, ['inlineData'], blobToMldev$2(fromInlineData));\n }\n const fromFileData = getValueByPath(fromObject, ['fileData']);\n if (fromFileData != null) {\n setValueByPath(toObject, ['fileData'], fileDataToMldev$2(fromFileData));\n }\n const fromThoughtSignature = getValueByPath(fromObject, [\n 'thoughtSignature',\n ]);\n if (fromThoughtSignature != null) {\n setValueByPath(toObject, ['thoughtSignature'], fromThoughtSignature);\n }\n const fromFunctionCall = getValueByPath(fromObject, ['functionCall']);\n if (fromFunctionCall != null) {\n setValueByPath(toObject, ['functionCall'], fromFunctionCall);\n }\n const fromCodeExecutionResult = getValueByPath(fromObject, [\n 'codeExecutionResult',\n ]);\n if (fromCodeExecutionResult != null) {\n setValueByPath(toObject, ['codeExecutionResult'], fromCodeExecutionResult);\n }\n const fromExecutableCode = getValueByPath(fromObject, [\n 'executableCode',\n ]);\n if (fromExecutableCode != null) {\n setValueByPath(toObject, ['executableCode'], fromExecutableCode);\n }\n const fromFunctionResponse = getValueByPath(fromObject, [\n 'functionResponse',\n ]);\n if (fromFunctionResponse != null) {\n setValueByPath(toObject, ['functionResponse'], fromFunctionResponse);\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n return toObject;\n}\nfunction sessionResumptionConfigToMldev$1(fromObject) {\n const toObject = {};\n const fromHandle = getValueByPath(fromObject, ['handle']);\n if (fromHandle != null) {\n setValueByPath(toObject, ['handle'], fromHandle);\n }\n if (getValueByPath(fromObject, ['transparent']) !== undefined) {\n throw new Error('transparent parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction speechConfigToVertex$1(fromObject) {\n const toObject = {};\n const fromVoiceConfig = getValueByPath(fromObject, ['voiceConfig']);\n if (fromVoiceConfig != null) {\n setValueByPath(toObject, ['voiceConfig'], fromVoiceConfig);\n }\n if (getValueByPath(fromObject, ['multiSpeakerVoiceConfig']) !== undefined) {\n throw new Error('multiSpeakerVoiceConfig parameter is not supported in Vertex AI.');\n }\n const fromLanguageCode = getValueByPath(fromObject, ['languageCode']);\n if (fromLanguageCode != null) {\n setValueByPath(toObject, ['languageCode'], fromLanguageCode);\n }\n return toObject;\n}\nfunction toolToMldev$2(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n if (getValueByPath(fromObject, ['retrieval']) !== undefined) {\n throw new Error('retrieval parameter is not supported in Gemini API.');\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], googleSearchToMldev$2(fromGoogleSearch));\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n if (getValueByPath(fromObject, ['enterpriseWebSearch']) !== undefined) {\n throw new Error('enterpriseWebSearch parameter is not supported in Gemini API.');\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], googleMapsToMldev$2(fromGoogleMaps));\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction toolToVertex$1(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return functionDeclarationToVertex$1(item);\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n const fromRetrieval = getValueByPath(fromObject, ['retrieval']);\n if (fromRetrieval != null) {\n setValueByPath(toObject, ['retrieval'], fromRetrieval);\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], fromGoogleSearch);\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n const fromEnterpriseWebSearch = getValueByPath(fromObject, [\n 'enterpriseWebSearch',\n ]);\n if (fromEnterpriseWebSearch != null) {\n setValueByPath(toObject, ['enterpriseWebSearch'], fromEnterpriseWebSearch);\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], fromGoogleMaps);\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction usageMetadataFromVertex(fromObject) {\n const toObject = {};\n const fromPromptTokenCount = getValueByPath(fromObject, [\n 'promptTokenCount',\n ]);\n if (fromPromptTokenCount != null) {\n setValueByPath(toObject, ['promptTokenCount'], fromPromptTokenCount);\n }\n const fromCachedContentTokenCount = getValueByPath(fromObject, [\n 'cachedContentTokenCount',\n ]);\n if (fromCachedContentTokenCount != null) {\n setValueByPath(toObject, ['cachedContentTokenCount'], fromCachedContentTokenCount);\n }\n const fromResponseTokenCount = getValueByPath(fromObject, [\n 'candidatesTokenCount',\n ]);\n if (fromResponseTokenCount != null) {\n setValueByPath(toObject, ['responseTokenCount'], fromResponseTokenCount);\n }\n const fromToolUsePromptTokenCount = getValueByPath(fromObject, [\n 'toolUsePromptTokenCount',\n ]);\n if (fromToolUsePromptTokenCount != null) {\n setValueByPath(toObject, ['toolUsePromptTokenCount'], fromToolUsePromptTokenCount);\n }\n const fromThoughtsTokenCount = getValueByPath(fromObject, [\n 'thoughtsTokenCount',\n ]);\n if (fromThoughtsTokenCount != null) {\n setValueByPath(toObject, ['thoughtsTokenCount'], fromThoughtsTokenCount);\n }\n const fromTotalTokenCount = getValueByPath(fromObject, [\n 'totalTokenCount',\n ]);\n if (fromTotalTokenCount != null) {\n setValueByPath(toObject, ['totalTokenCount'], fromTotalTokenCount);\n }\n const fromPromptTokensDetails = getValueByPath(fromObject, [\n 'promptTokensDetails',\n ]);\n if (fromPromptTokensDetails != null) {\n let transformedList = fromPromptTokensDetails;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['promptTokensDetails'], transformedList);\n }\n const fromCacheTokensDetails = getValueByPath(fromObject, [\n 'cacheTokensDetails',\n ]);\n if (fromCacheTokensDetails != null) {\n let transformedList = fromCacheTokensDetails;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['cacheTokensDetails'], transformedList);\n }\n const fromResponseTokensDetails = getValueByPath(fromObject, [\n 'candidatesTokensDetails',\n ]);\n if (fromResponseTokensDetails != null) {\n let transformedList = fromResponseTokensDetails;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['responseTokensDetails'], transformedList);\n }\n const fromToolUsePromptTokensDetails = getValueByPath(fromObject, [\n 'toolUsePromptTokensDetails',\n ]);\n if (fromToolUsePromptTokensDetails != null) {\n let transformedList = fromToolUsePromptTokensDetails;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['toolUsePromptTokensDetails'], transformedList);\n }\n const fromTrafficType = getValueByPath(fromObject, ['trafficType']);\n if (fromTrafficType != null) {\n setValueByPath(toObject, ['trafficType'], fromTrafficType);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction blobToMldev$1(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromData = getValueByPath(fromObject, ['data']);\n if (fromData != null) {\n setValueByPath(toObject, ['data'], fromData);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction candidateFromMldev(fromObject) {\n const toObject = {};\n const fromContent = getValueByPath(fromObject, ['content']);\n if (fromContent != null) {\n setValueByPath(toObject, ['content'], fromContent);\n }\n const fromCitationMetadata = getValueByPath(fromObject, [\n 'citationMetadata',\n ]);\n if (fromCitationMetadata != null) {\n setValueByPath(toObject, ['citationMetadata'], citationMetadataFromMldev(fromCitationMetadata));\n }\n const fromTokenCount = getValueByPath(fromObject, ['tokenCount']);\n if (fromTokenCount != null) {\n setValueByPath(toObject, ['tokenCount'], fromTokenCount);\n }\n const fromFinishReason = getValueByPath(fromObject, ['finishReason']);\n if (fromFinishReason != null) {\n setValueByPath(toObject, ['finishReason'], fromFinishReason);\n }\n const fromUrlContextMetadata = getValueByPath(fromObject, [\n 'urlContextMetadata',\n ]);\n if (fromUrlContextMetadata != null) {\n setValueByPath(toObject, ['urlContextMetadata'], fromUrlContextMetadata);\n }\n const fromAvgLogprobs = getValueByPath(fromObject, ['avgLogprobs']);\n if (fromAvgLogprobs != null) {\n setValueByPath(toObject, ['avgLogprobs'], fromAvgLogprobs);\n }\n const fromGroundingMetadata = getValueByPath(fromObject, [\n 'groundingMetadata',\n ]);\n if (fromGroundingMetadata != null) {\n setValueByPath(toObject, ['groundingMetadata'], fromGroundingMetadata);\n }\n const fromIndex = getValueByPath(fromObject, ['index']);\n if (fromIndex != null) {\n setValueByPath(toObject, ['index'], fromIndex);\n }\n const fromLogprobsResult = getValueByPath(fromObject, [\n 'logprobsResult',\n ]);\n if (fromLogprobsResult != null) {\n setValueByPath(toObject, ['logprobsResult'], fromLogprobsResult);\n }\n const fromSafetyRatings = getValueByPath(fromObject, [\n 'safetyRatings',\n ]);\n if (fromSafetyRatings != null) {\n let transformedList = fromSafetyRatings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['safetyRatings'], transformedList);\n }\n return toObject;\n}\nfunction citationMetadataFromMldev(fromObject) {\n const toObject = {};\n const fromCitations = getValueByPath(fromObject, ['citationSources']);\n if (fromCitations != null) {\n let transformedList = fromCitations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['citations'], transformedList);\n }\n return toObject;\n}\nfunction computeTokensParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['contents'], transformedList);\n }\n return toObject;\n}\nfunction computeTokensResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromTokensInfo = getValueByPath(fromObject, ['tokensInfo']);\n if (fromTokensInfo != null) {\n let transformedList = fromTokensInfo;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['tokensInfo'], transformedList);\n }\n return toObject;\n}\nfunction contentEmbeddingFromVertex(fromObject) {\n const toObject = {};\n const fromValues = getValueByPath(fromObject, ['values']);\n if (fromValues != null) {\n setValueByPath(toObject, ['values'], fromValues);\n }\n const fromStatistics = getValueByPath(fromObject, ['statistics']);\n if (fromStatistics != null) {\n setValueByPath(toObject, ['statistics'], contentEmbeddingStatisticsFromVertex(fromStatistics));\n }\n return toObject;\n}\nfunction contentEmbeddingStatisticsFromVertex(fromObject) {\n const toObject = {};\n const fromTruncated = getValueByPath(fromObject, ['truncated']);\n if (fromTruncated != null) {\n setValueByPath(toObject, ['truncated'], fromTruncated);\n }\n const fromTokenCount = getValueByPath(fromObject, ['token_count']);\n if (fromTokenCount != null) {\n setValueByPath(toObject, ['tokenCount'], fromTokenCount);\n }\n return toObject;\n}\nfunction contentToMldev$1(fromObject) {\n const toObject = {};\n const fromParts = getValueByPath(fromObject, ['parts']);\n if (fromParts != null) {\n let transformedList = fromParts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return partToMldev$1(item);\n });\n }\n setValueByPath(toObject, ['parts'], transformedList);\n }\n const fromRole = getValueByPath(fromObject, ['role']);\n if (fromRole != null) {\n setValueByPath(toObject, ['role'], fromRole);\n }\n return toObject;\n}\nfunction controlReferenceConfigToVertex(fromObject) {\n const toObject = {};\n const fromControlType = getValueByPath(fromObject, ['controlType']);\n if (fromControlType != null) {\n setValueByPath(toObject, ['controlType'], fromControlType);\n }\n const fromEnableControlImageComputation = getValueByPath(fromObject, [\n 'enableControlImageComputation',\n ]);\n if (fromEnableControlImageComputation != null) {\n setValueByPath(toObject, ['computeControl'], fromEnableControlImageComputation);\n }\n return toObject;\n}\nfunction countTokensConfigToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['systemInstruction']) !== undefined) {\n throw new Error('systemInstruction parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['tools']) !== undefined) {\n throw new Error('tools parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['generationConfig']) !== undefined) {\n throw new Error('generationConfig parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction countTokensConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], tContent(fromSystemInstruction));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = fromTools;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToVertex(item);\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromGenerationConfig = getValueByPath(fromObject, [\n 'generationConfig',\n ]);\n if (parentObject !== undefined && fromGenerationConfig != null) {\n setValueByPath(parentObject, ['generationConfig'], generationConfigToVertex(fromGenerationConfig));\n }\n return toObject;\n}\nfunction countTokensParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return contentToMldev$1(item);\n });\n }\n setValueByPath(toObject, ['contents'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n countTokensConfigToMldev(fromConfig);\n }\n return toObject;\n}\nfunction countTokensParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['contents'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n countTokensConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction countTokensResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromTotalTokens = getValueByPath(fromObject, ['totalTokens']);\n if (fromTotalTokens != null) {\n setValueByPath(toObject, ['totalTokens'], fromTotalTokens);\n }\n const fromCachedContentTokenCount = getValueByPath(fromObject, [\n 'cachedContentTokenCount',\n ]);\n if (fromCachedContentTokenCount != null) {\n setValueByPath(toObject, ['cachedContentTokenCount'], fromCachedContentTokenCount);\n }\n return toObject;\n}\nfunction countTokensResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromTotalTokens = getValueByPath(fromObject, ['totalTokens']);\n if (fromTotalTokens != null) {\n setValueByPath(toObject, ['totalTokens'], fromTotalTokens);\n }\n return toObject;\n}\nfunction deleteModelParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'name'], tModel(apiClient, fromModel));\n }\n return toObject;\n}\nfunction deleteModelParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'name'], tModel(apiClient, fromModel));\n }\n return toObject;\n}\nfunction deleteModelResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction deleteModelResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n return toObject;\n}\nfunction editImageConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromOutputGcsUri = getValueByPath(fromObject, ['outputGcsUri']);\n if (parentObject !== undefined && fromOutputGcsUri != null) {\n setValueByPath(parentObject, ['parameters', 'storageUri'], fromOutputGcsUri);\n }\n const fromNegativePrompt = getValueByPath(fromObject, [\n 'negativePrompt',\n ]);\n if (parentObject !== undefined && fromNegativePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'negativePrompt'], fromNegativePrompt);\n }\n const fromNumberOfImages = getValueByPath(fromObject, [\n 'numberOfImages',\n ]);\n if (parentObject !== undefined && fromNumberOfImages != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfImages);\n }\n const fromAspectRatio = getValueByPath(fromObject, ['aspectRatio']);\n if (parentObject !== undefined && fromAspectRatio != null) {\n setValueByPath(parentObject, ['parameters', 'aspectRatio'], fromAspectRatio);\n }\n const fromGuidanceScale = getValueByPath(fromObject, [\n 'guidanceScale',\n ]);\n if (parentObject !== undefined && fromGuidanceScale != null) {\n setValueByPath(parentObject, ['parameters', 'guidanceScale'], fromGuidanceScale);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['parameters', 'seed'], fromSeed);\n }\n const fromSafetyFilterLevel = getValueByPath(fromObject, [\n 'safetyFilterLevel',\n ]);\n if (parentObject !== undefined && fromSafetyFilterLevel != null) {\n setValueByPath(parentObject, ['parameters', 'safetySetting'], fromSafetyFilterLevel);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n const fromIncludeSafetyAttributes = getValueByPath(fromObject, [\n 'includeSafetyAttributes',\n ]);\n if (parentObject !== undefined && fromIncludeSafetyAttributes != null) {\n setValueByPath(parentObject, ['parameters', 'includeSafetyAttributes'], fromIncludeSafetyAttributes);\n }\n const fromIncludeRaiReason = getValueByPath(fromObject, [\n 'includeRaiReason',\n ]);\n if (parentObject !== undefined && fromIncludeRaiReason != null) {\n setValueByPath(parentObject, ['parameters', 'includeRaiReason'], fromIncludeRaiReason);\n }\n const fromLanguage = getValueByPath(fromObject, ['language']);\n if (parentObject !== undefined && fromLanguage != null) {\n setValueByPath(parentObject, ['parameters', 'language'], fromLanguage);\n }\n const fromOutputMimeType = getValueByPath(fromObject, [\n 'outputMimeType',\n ]);\n if (parentObject !== undefined && fromOutputMimeType != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'mimeType'], fromOutputMimeType);\n }\n const fromOutputCompressionQuality = getValueByPath(fromObject, [\n 'outputCompressionQuality',\n ]);\n if (parentObject !== undefined && fromOutputCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'compressionQuality'], fromOutputCompressionQuality);\n }\n const fromAddWatermark = getValueByPath(fromObject, ['addWatermark']);\n if (parentObject !== undefined && fromAddWatermark != null) {\n setValueByPath(parentObject, ['parameters', 'addWatermark'], fromAddWatermark);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n const fromEditMode = getValueByPath(fromObject, ['editMode']);\n if (parentObject !== undefined && fromEditMode != null) {\n setValueByPath(parentObject, ['parameters', 'editMode'], fromEditMode);\n }\n const fromBaseSteps = getValueByPath(fromObject, ['baseSteps']);\n if (parentObject !== undefined && fromBaseSteps != null) {\n setValueByPath(parentObject, ['parameters', 'editConfig', 'baseSteps'], fromBaseSteps);\n }\n return toObject;\n}\nfunction editImageParametersInternalToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromPrompt != null) {\n setValueByPath(toObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromReferenceImages = getValueByPath(fromObject, [\n 'referenceImages',\n ]);\n if (fromReferenceImages != null) {\n let transformedList = fromReferenceImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return referenceImageAPIInternalToVertex(item);\n });\n }\n setValueByPath(toObject, ['instances[0]', 'referenceImages'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n editImageConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction editImageResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromGeneratedImages = getValueByPath(fromObject, [\n 'predictions',\n ]);\n if (fromGeneratedImages != null) {\n let transformedList = fromGeneratedImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedImages'], transformedList);\n }\n return toObject;\n}\nfunction embedContentConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromTaskType = getValueByPath(fromObject, ['taskType']);\n if (parentObject !== undefined && fromTaskType != null) {\n setValueByPath(parentObject, ['requests[]', 'taskType'], fromTaskType);\n }\n const fromTitle = getValueByPath(fromObject, ['title']);\n if (parentObject !== undefined && fromTitle != null) {\n setValueByPath(parentObject, ['requests[]', 'title'], fromTitle);\n }\n const fromOutputDimensionality = getValueByPath(fromObject, [\n 'outputDimensionality',\n ]);\n if (parentObject !== undefined && fromOutputDimensionality != null) {\n setValueByPath(parentObject, ['requests[]', 'outputDimensionality'], fromOutputDimensionality);\n }\n if (getValueByPath(fromObject, ['mimeType']) !== undefined) {\n throw new Error('mimeType parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['autoTruncate']) !== undefined) {\n throw new Error('autoTruncate parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction embedContentConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromTaskType = getValueByPath(fromObject, ['taskType']);\n if (parentObject !== undefined && fromTaskType != null) {\n setValueByPath(parentObject, ['instances[]', 'task_type'], fromTaskType);\n }\n const fromTitle = getValueByPath(fromObject, ['title']);\n if (parentObject !== undefined && fromTitle != null) {\n setValueByPath(parentObject, ['instances[]', 'title'], fromTitle);\n }\n const fromOutputDimensionality = getValueByPath(fromObject, [\n 'outputDimensionality',\n ]);\n if (parentObject !== undefined && fromOutputDimensionality != null) {\n setValueByPath(parentObject, ['parameters', 'outputDimensionality'], fromOutputDimensionality);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (parentObject !== undefined && fromMimeType != null) {\n setValueByPath(parentObject, ['instances[]', 'mimeType'], fromMimeType);\n }\n const fromAutoTruncate = getValueByPath(fromObject, ['autoTruncate']);\n if (parentObject !== undefined && fromAutoTruncate != null) {\n setValueByPath(parentObject, ['parameters', 'autoTruncate'], fromAutoTruncate);\n }\n return toObject;\n}\nfunction embedContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContentsForEmbed(apiClient, fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['requests[]', 'content'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n embedContentConfigToMldev(fromConfig, toObject);\n }\n const fromModelForEmbedContent = getValueByPath(fromObject, ['model']);\n if (fromModelForEmbedContent !== undefined) {\n setValueByPath(toObject, ['requests[]', 'model'], tModel(apiClient, fromModelForEmbedContent));\n }\n return toObject;\n}\nfunction embedContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContentsForEmbed(apiClient, fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['instances[]', 'content'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n embedContentConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction embedContentResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromEmbeddings = getValueByPath(fromObject, ['embeddings']);\n if (fromEmbeddings != null) {\n let transformedList = fromEmbeddings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['embeddings'], transformedList);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n return toObject;\n}\nfunction embedContentResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromEmbeddings = getValueByPath(fromObject, [\n 'predictions[]',\n 'embeddings',\n ]);\n if (fromEmbeddings != null) {\n let transformedList = fromEmbeddings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return contentEmbeddingFromVertex(item);\n });\n }\n setValueByPath(toObject, ['embeddings'], transformedList);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n return toObject;\n}\nfunction endpointFromVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['endpoint']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDeployedModelId = getValueByPath(fromObject, [\n 'deployedModelId',\n ]);\n if (fromDeployedModelId != null) {\n setValueByPath(toObject, ['deployedModelId'], fromDeployedModelId);\n }\n return toObject;\n}\nfunction fileDataToMldev$1(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromFileUri = getValueByPath(fromObject, ['fileUri']);\n if (fromFileUri != null) {\n setValueByPath(toObject, ['fileUri'], fromFileUri);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction functionDeclarationToVertex(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['behavior']) !== undefined) {\n throw new Error('behavior parameter is not supported in Vertex AI.');\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromParameters = getValueByPath(fromObject, ['parameters']);\n if (fromParameters != null) {\n setValueByPath(toObject, ['parameters'], fromParameters);\n }\n const fromParametersJsonSchema = getValueByPath(fromObject, [\n 'parametersJsonSchema',\n ]);\n if (fromParametersJsonSchema != null) {\n setValueByPath(toObject, ['parametersJsonSchema'], fromParametersJsonSchema);\n }\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], fromResponse);\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n return toObject;\n}\nfunction generateContentConfigToMldev(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], contentToMldev$1(tContent(fromSystemInstruction)));\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (fromTemperature != null) {\n setValueByPath(toObject, ['temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (fromTopP != null) {\n setValueByPath(toObject, ['topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (fromTopK != null) {\n setValueByPath(toObject, ['topK'], fromTopK);\n }\n const fromCandidateCount = getValueByPath(fromObject, [\n 'candidateCount',\n ]);\n if (fromCandidateCount != null) {\n setValueByPath(toObject, ['candidateCount'], fromCandidateCount);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (fromMaxOutputTokens != null) {\n setValueByPath(toObject, ['maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromStopSequences = getValueByPath(fromObject, [\n 'stopSequences',\n ]);\n if (fromStopSequences != null) {\n setValueByPath(toObject, ['stopSequences'], fromStopSequences);\n }\n const fromResponseLogprobs = getValueByPath(fromObject, [\n 'responseLogprobs',\n ]);\n if (fromResponseLogprobs != null) {\n setValueByPath(toObject, ['responseLogprobs'], fromResponseLogprobs);\n }\n const fromLogprobs = getValueByPath(fromObject, ['logprobs']);\n if (fromLogprobs != null) {\n setValueByPath(toObject, ['logprobs'], fromLogprobs);\n }\n const fromPresencePenalty = getValueByPath(fromObject, [\n 'presencePenalty',\n ]);\n if (fromPresencePenalty != null) {\n setValueByPath(toObject, ['presencePenalty'], fromPresencePenalty);\n }\n const fromFrequencyPenalty = getValueByPath(fromObject, [\n 'frequencyPenalty',\n ]);\n if (fromFrequencyPenalty != null) {\n setValueByPath(toObject, ['frequencyPenalty'], fromFrequencyPenalty);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (fromSeed != null) {\n setValueByPath(toObject, ['seed'], fromSeed);\n }\n const fromResponseMimeType = getValueByPath(fromObject, [\n 'responseMimeType',\n ]);\n if (fromResponseMimeType != null) {\n setValueByPath(toObject, ['responseMimeType'], fromResponseMimeType);\n }\n const fromResponseSchema = getValueByPath(fromObject, [\n 'responseSchema',\n ]);\n if (fromResponseSchema != null) {\n setValueByPath(toObject, ['responseSchema'], tSchema(fromResponseSchema));\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n if (getValueByPath(fromObject, ['routingConfig']) !== undefined) {\n throw new Error('routingConfig parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['modelSelectionConfig']) !== undefined) {\n throw new Error('modelSelectionConfig parameter is not supported in Gemini API.');\n }\n const fromSafetySettings = getValueByPath(fromObject, [\n 'safetySettings',\n ]);\n if (parentObject !== undefined && fromSafetySettings != null) {\n let transformedList = fromSafetySettings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return safetySettingToMldev(item);\n });\n }\n setValueByPath(parentObject, ['safetySettings'], transformedList);\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToMldev$1(tTool(item));\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromToolConfig = getValueByPath(fromObject, ['toolConfig']);\n if (parentObject !== undefined && fromToolConfig != null) {\n setValueByPath(parentObject, ['toolConfig'], fromToolConfig);\n }\n if (getValueByPath(fromObject, ['labels']) !== undefined) {\n throw new Error('labels parameter is not supported in Gemini API.');\n }\n const fromCachedContent = getValueByPath(fromObject, [\n 'cachedContent',\n ]);\n if (parentObject !== undefined && fromCachedContent != null) {\n setValueByPath(parentObject, ['cachedContent'], tCachedContentName(apiClient, fromCachedContent));\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (fromResponseModalities != null) {\n setValueByPath(toObject, ['responseModalities'], fromResponseModalities);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (fromMediaResolution != null) {\n setValueByPath(toObject, ['mediaResolution'], fromMediaResolution);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (fromSpeechConfig != null) {\n setValueByPath(toObject, ['speechConfig'], tSpeechConfig(fromSpeechConfig));\n }\n if (getValueByPath(fromObject, ['audioTimestamp']) !== undefined) {\n throw new Error('audioTimestamp parameter is not supported in Gemini API.');\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (fromThinkingConfig != null) {\n setValueByPath(toObject, ['thinkingConfig'], fromThinkingConfig);\n }\n const fromImageConfig = getValueByPath(fromObject, ['imageConfig']);\n if (fromImageConfig != null) {\n setValueByPath(toObject, ['imageConfig'], fromImageConfig);\n }\n return toObject;\n}\nfunction generateContentConfigToVertex(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['systemInstruction'], tContent(fromSystemInstruction));\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (fromTemperature != null) {\n setValueByPath(toObject, ['temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (fromTopP != null) {\n setValueByPath(toObject, ['topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (fromTopK != null) {\n setValueByPath(toObject, ['topK'], fromTopK);\n }\n const fromCandidateCount = getValueByPath(fromObject, [\n 'candidateCount',\n ]);\n if (fromCandidateCount != null) {\n setValueByPath(toObject, ['candidateCount'], fromCandidateCount);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (fromMaxOutputTokens != null) {\n setValueByPath(toObject, ['maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromStopSequences = getValueByPath(fromObject, [\n 'stopSequences',\n ]);\n if (fromStopSequences != null) {\n setValueByPath(toObject, ['stopSequences'], fromStopSequences);\n }\n const fromResponseLogprobs = getValueByPath(fromObject, [\n 'responseLogprobs',\n ]);\n if (fromResponseLogprobs != null) {\n setValueByPath(toObject, ['responseLogprobs'], fromResponseLogprobs);\n }\n const fromLogprobs = getValueByPath(fromObject, ['logprobs']);\n if (fromLogprobs != null) {\n setValueByPath(toObject, ['logprobs'], fromLogprobs);\n }\n const fromPresencePenalty = getValueByPath(fromObject, [\n 'presencePenalty',\n ]);\n if (fromPresencePenalty != null) {\n setValueByPath(toObject, ['presencePenalty'], fromPresencePenalty);\n }\n const fromFrequencyPenalty = getValueByPath(fromObject, [\n 'frequencyPenalty',\n ]);\n if (fromFrequencyPenalty != null) {\n setValueByPath(toObject, ['frequencyPenalty'], fromFrequencyPenalty);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (fromSeed != null) {\n setValueByPath(toObject, ['seed'], fromSeed);\n }\n const fromResponseMimeType = getValueByPath(fromObject, [\n 'responseMimeType',\n ]);\n if (fromResponseMimeType != null) {\n setValueByPath(toObject, ['responseMimeType'], fromResponseMimeType);\n }\n const fromResponseSchema = getValueByPath(fromObject, [\n 'responseSchema',\n ]);\n if (fromResponseSchema != null) {\n setValueByPath(toObject, ['responseSchema'], tSchema(fromResponseSchema));\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n const fromRoutingConfig = getValueByPath(fromObject, [\n 'routingConfig',\n ]);\n if (fromRoutingConfig != null) {\n setValueByPath(toObject, ['routingConfig'], fromRoutingConfig);\n }\n const fromModelSelectionConfig = getValueByPath(fromObject, [\n 'modelSelectionConfig',\n ]);\n if (fromModelSelectionConfig != null) {\n setValueByPath(toObject, ['modelConfig'], fromModelSelectionConfig);\n }\n const fromSafetySettings = getValueByPath(fromObject, [\n 'safetySettings',\n ]);\n if (parentObject !== undefined && fromSafetySettings != null) {\n let transformedList = fromSafetySettings;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(parentObject, ['safetySettings'], transformedList);\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToVertex(tTool(item));\n });\n }\n setValueByPath(parentObject, ['tools'], transformedList);\n }\n const fromToolConfig = getValueByPath(fromObject, ['toolConfig']);\n if (parentObject !== undefined && fromToolConfig != null) {\n setValueByPath(parentObject, ['toolConfig'], fromToolConfig);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n const fromCachedContent = getValueByPath(fromObject, [\n 'cachedContent',\n ]);\n if (parentObject !== undefined && fromCachedContent != null) {\n setValueByPath(parentObject, ['cachedContent'], tCachedContentName(apiClient, fromCachedContent));\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (fromResponseModalities != null) {\n setValueByPath(toObject, ['responseModalities'], fromResponseModalities);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (fromMediaResolution != null) {\n setValueByPath(toObject, ['mediaResolution'], fromMediaResolution);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (fromSpeechConfig != null) {\n setValueByPath(toObject, ['speechConfig'], speechConfigToVertex(tSpeechConfig(fromSpeechConfig)));\n }\n const fromAudioTimestamp = getValueByPath(fromObject, [\n 'audioTimestamp',\n ]);\n if (fromAudioTimestamp != null) {\n setValueByPath(toObject, ['audioTimestamp'], fromAudioTimestamp);\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (fromThinkingConfig != null) {\n setValueByPath(toObject, ['thinkingConfig'], fromThinkingConfig);\n }\n const fromImageConfig = getValueByPath(fromObject, ['imageConfig']);\n if (fromImageConfig != null) {\n setValueByPath(toObject, ['imageConfig'], fromImageConfig);\n }\n return toObject;\n}\nfunction generateContentParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return contentToMldev$1(item);\n });\n }\n setValueByPath(toObject, ['contents'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['generationConfig'], generateContentConfigToMldev(apiClient, fromConfig, toObject));\n }\n return toObject;\n}\nfunction generateContentParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromContents = getValueByPath(fromObject, ['contents']);\n if (fromContents != null) {\n let transformedList = tContents(fromContents);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['contents'], transformedList);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['generationConfig'], generateContentConfigToVertex(apiClient, fromConfig, toObject));\n }\n return toObject;\n}\nfunction generateContentResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromCandidates = getValueByPath(fromObject, ['candidates']);\n if (fromCandidates != null) {\n let transformedList = fromCandidates;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return candidateFromMldev(item);\n });\n }\n setValueByPath(toObject, ['candidates'], transformedList);\n }\n const fromModelVersion = getValueByPath(fromObject, ['modelVersion']);\n if (fromModelVersion != null) {\n setValueByPath(toObject, ['modelVersion'], fromModelVersion);\n }\n const fromPromptFeedback = getValueByPath(fromObject, [\n 'promptFeedback',\n ]);\n if (fromPromptFeedback != null) {\n setValueByPath(toObject, ['promptFeedback'], fromPromptFeedback);\n }\n const fromResponseId = getValueByPath(fromObject, ['responseId']);\n if (fromResponseId != null) {\n setValueByPath(toObject, ['responseId'], fromResponseId);\n }\n const fromUsageMetadata = getValueByPath(fromObject, [\n 'usageMetadata',\n ]);\n if (fromUsageMetadata != null) {\n setValueByPath(toObject, ['usageMetadata'], fromUsageMetadata);\n }\n return toObject;\n}\nfunction generateContentResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromCandidates = getValueByPath(fromObject, ['candidates']);\n if (fromCandidates != null) {\n let transformedList = fromCandidates;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['candidates'], transformedList);\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromModelVersion = getValueByPath(fromObject, ['modelVersion']);\n if (fromModelVersion != null) {\n setValueByPath(toObject, ['modelVersion'], fromModelVersion);\n }\n const fromPromptFeedback = getValueByPath(fromObject, [\n 'promptFeedback',\n ]);\n if (fromPromptFeedback != null) {\n setValueByPath(toObject, ['promptFeedback'], fromPromptFeedback);\n }\n const fromResponseId = getValueByPath(fromObject, ['responseId']);\n if (fromResponseId != null) {\n setValueByPath(toObject, ['responseId'], fromResponseId);\n }\n const fromUsageMetadata = getValueByPath(fromObject, [\n 'usageMetadata',\n ]);\n if (fromUsageMetadata != null) {\n setValueByPath(toObject, ['usageMetadata'], fromUsageMetadata);\n }\n return toObject;\n}\nfunction generateImagesConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['outputGcsUri']) !== undefined) {\n throw new Error('outputGcsUri parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['negativePrompt']) !== undefined) {\n throw new Error('negativePrompt parameter is not supported in Gemini API.');\n }\n const fromNumberOfImages = getValueByPath(fromObject, [\n 'numberOfImages',\n ]);\n if (parentObject !== undefined && fromNumberOfImages != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfImages);\n }\n const fromAspectRatio = getValueByPath(fromObject, ['aspectRatio']);\n if (parentObject !== undefined && fromAspectRatio != null) {\n setValueByPath(parentObject, ['parameters', 'aspectRatio'], fromAspectRatio);\n }\n const fromGuidanceScale = getValueByPath(fromObject, [\n 'guidanceScale',\n ]);\n if (parentObject !== undefined && fromGuidanceScale != null) {\n setValueByPath(parentObject, ['parameters', 'guidanceScale'], fromGuidanceScale);\n }\n if (getValueByPath(fromObject, ['seed']) !== undefined) {\n throw new Error('seed parameter is not supported in Gemini API.');\n }\n const fromSafetyFilterLevel = getValueByPath(fromObject, [\n 'safetyFilterLevel',\n ]);\n if (parentObject !== undefined && fromSafetyFilterLevel != null) {\n setValueByPath(parentObject, ['parameters', 'safetySetting'], fromSafetyFilterLevel);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n const fromIncludeSafetyAttributes = getValueByPath(fromObject, [\n 'includeSafetyAttributes',\n ]);\n if (parentObject !== undefined && fromIncludeSafetyAttributes != null) {\n setValueByPath(parentObject, ['parameters', 'includeSafetyAttributes'], fromIncludeSafetyAttributes);\n }\n const fromIncludeRaiReason = getValueByPath(fromObject, [\n 'includeRaiReason',\n ]);\n if (parentObject !== undefined && fromIncludeRaiReason != null) {\n setValueByPath(parentObject, ['parameters', 'includeRaiReason'], fromIncludeRaiReason);\n }\n const fromLanguage = getValueByPath(fromObject, ['language']);\n if (parentObject !== undefined && fromLanguage != null) {\n setValueByPath(parentObject, ['parameters', 'language'], fromLanguage);\n }\n const fromOutputMimeType = getValueByPath(fromObject, [\n 'outputMimeType',\n ]);\n if (parentObject !== undefined && fromOutputMimeType != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'mimeType'], fromOutputMimeType);\n }\n const fromOutputCompressionQuality = getValueByPath(fromObject, [\n 'outputCompressionQuality',\n ]);\n if (parentObject !== undefined && fromOutputCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'compressionQuality'], fromOutputCompressionQuality);\n }\n if (getValueByPath(fromObject, ['addWatermark']) !== undefined) {\n throw new Error('addWatermark parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['labels']) !== undefined) {\n throw new Error('labels parameter is not supported in Gemini API.');\n }\n const fromImageSize = getValueByPath(fromObject, ['imageSize']);\n if (parentObject !== undefined && fromImageSize != null) {\n setValueByPath(parentObject, ['parameters', 'sampleImageSize'], fromImageSize);\n }\n if (getValueByPath(fromObject, ['enhancePrompt']) !== undefined) {\n throw new Error('enhancePrompt parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction generateImagesConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromOutputGcsUri = getValueByPath(fromObject, ['outputGcsUri']);\n if (parentObject !== undefined && fromOutputGcsUri != null) {\n setValueByPath(parentObject, ['parameters', 'storageUri'], fromOutputGcsUri);\n }\n const fromNegativePrompt = getValueByPath(fromObject, [\n 'negativePrompt',\n ]);\n if (parentObject !== undefined && fromNegativePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'negativePrompt'], fromNegativePrompt);\n }\n const fromNumberOfImages = getValueByPath(fromObject, [\n 'numberOfImages',\n ]);\n if (parentObject !== undefined && fromNumberOfImages != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfImages);\n }\n const fromAspectRatio = getValueByPath(fromObject, ['aspectRatio']);\n if (parentObject !== undefined && fromAspectRatio != null) {\n setValueByPath(parentObject, ['parameters', 'aspectRatio'], fromAspectRatio);\n }\n const fromGuidanceScale = getValueByPath(fromObject, [\n 'guidanceScale',\n ]);\n if (parentObject !== undefined && fromGuidanceScale != null) {\n setValueByPath(parentObject, ['parameters', 'guidanceScale'], fromGuidanceScale);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['parameters', 'seed'], fromSeed);\n }\n const fromSafetyFilterLevel = getValueByPath(fromObject, [\n 'safetyFilterLevel',\n ]);\n if (parentObject !== undefined && fromSafetyFilterLevel != null) {\n setValueByPath(parentObject, ['parameters', 'safetySetting'], fromSafetyFilterLevel);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n const fromIncludeSafetyAttributes = getValueByPath(fromObject, [\n 'includeSafetyAttributes',\n ]);\n if (parentObject !== undefined && fromIncludeSafetyAttributes != null) {\n setValueByPath(parentObject, ['parameters', 'includeSafetyAttributes'], fromIncludeSafetyAttributes);\n }\n const fromIncludeRaiReason = getValueByPath(fromObject, [\n 'includeRaiReason',\n ]);\n if (parentObject !== undefined && fromIncludeRaiReason != null) {\n setValueByPath(parentObject, ['parameters', 'includeRaiReason'], fromIncludeRaiReason);\n }\n const fromLanguage = getValueByPath(fromObject, ['language']);\n if (parentObject !== undefined && fromLanguage != null) {\n setValueByPath(parentObject, ['parameters', 'language'], fromLanguage);\n }\n const fromOutputMimeType = getValueByPath(fromObject, [\n 'outputMimeType',\n ]);\n if (parentObject !== undefined && fromOutputMimeType != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'mimeType'], fromOutputMimeType);\n }\n const fromOutputCompressionQuality = getValueByPath(fromObject, [\n 'outputCompressionQuality',\n ]);\n if (parentObject !== undefined && fromOutputCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'compressionQuality'], fromOutputCompressionQuality);\n }\n const fromAddWatermark = getValueByPath(fromObject, ['addWatermark']);\n if (parentObject !== undefined && fromAddWatermark != null) {\n setValueByPath(parentObject, ['parameters', 'addWatermark'], fromAddWatermark);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n const fromImageSize = getValueByPath(fromObject, ['imageSize']);\n if (parentObject !== undefined && fromImageSize != null) {\n setValueByPath(parentObject, ['parameters', 'sampleImageSize'], fromImageSize);\n }\n const fromEnhancePrompt = getValueByPath(fromObject, [\n 'enhancePrompt',\n ]);\n if (parentObject !== undefined && fromEnhancePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'enhancePrompt'], fromEnhancePrompt);\n }\n return toObject;\n}\nfunction generateImagesParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromPrompt != null) {\n setValueByPath(toObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n generateImagesConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction generateImagesParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromPrompt != null) {\n setValueByPath(toObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n generateImagesConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction generateImagesResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromGeneratedImages = getValueByPath(fromObject, [\n 'predictions',\n ]);\n if (fromGeneratedImages != null) {\n let transformedList = fromGeneratedImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageFromMldev(item);\n });\n }\n setValueByPath(toObject, ['generatedImages'], transformedList);\n }\n const fromPositivePromptSafetyAttributes = getValueByPath(fromObject, [\n 'positivePromptSafetyAttributes',\n ]);\n if (fromPositivePromptSafetyAttributes != null) {\n setValueByPath(toObject, ['positivePromptSafetyAttributes'], safetyAttributesFromMldev(fromPositivePromptSafetyAttributes));\n }\n return toObject;\n}\nfunction generateImagesResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromGeneratedImages = getValueByPath(fromObject, [\n 'predictions',\n ]);\n if (fromGeneratedImages != null) {\n let transformedList = fromGeneratedImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedImages'], transformedList);\n }\n const fromPositivePromptSafetyAttributes = getValueByPath(fromObject, [\n 'positivePromptSafetyAttributes',\n ]);\n if (fromPositivePromptSafetyAttributes != null) {\n setValueByPath(toObject, ['positivePromptSafetyAttributes'], safetyAttributesFromVertex(fromPositivePromptSafetyAttributes));\n }\n return toObject;\n}\nfunction generateVideosConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromNumberOfVideos = getValueByPath(fromObject, [\n 'numberOfVideos',\n ]);\n if (parentObject !== undefined && fromNumberOfVideos != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfVideos);\n }\n if (getValueByPath(fromObject, ['outputGcsUri']) !== undefined) {\n throw new Error('outputGcsUri parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['fps']) !== undefined) {\n throw new Error('fps parameter is not supported in Gemini API.');\n }\n const fromDurationSeconds = getValueByPath(fromObject, [\n 'durationSeconds',\n ]);\n if (parentObject !== undefined && fromDurationSeconds != null) {\n setValueByPath(parentObject, ['parameters', 'durationSeconds'], fromDurationSeconds);\n }\n if (getValueByPath(fromObject, ['seed']) !== undefined) {\n throw new Error('seed parameter is not supported in Gemini API.');\n }\n const fromAspectRatio = getValueByPath(fromObject, ['aspectRatio']);\n if (parentObject !== undefined && fromAspectRatio != null) {\n setValueByPath(parentObject, ['parameters', 'aspectRatio'], fromAspectRatio);\n }\n const fromResolution = getValueByPath(fromObject, ['resolution']);\n if (parentObject !== undefined && fromResolution != null) {\n setValueByPath(parentObject, ['parameters', 'resolution'], fromResolution);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n if (getValueByPath(fromObject, ['pubsubTopic']) !== undefined) {\n throw new Error('pubsubTopic parameter is not supported in Gemini API.');\n }\n const fromNegativePrompt = getValueByPath(fromObject, [\n 'negativePrompt',\n ]);\n if (parentObject !== undefined && fromNegativePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'negativePrompt'], fromNegativePrompt);\n }\n const fromEnhancePrompt = getValueByPath(fromObject, [\n 'enhancePrompt',\n ]);\n if (parentObject !== undefined && fromEnhancePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'enhancePrompt'], fromEnhancePrompt);\n }\n if (getValueByPath(fromObject, ['generateAudio']) !== undefined) {\n throw new Error('generateAudio parameter is not supported in Gemini API.');\n }\n const fromLastFrame = getValueByPath(fromObject, ['lastFrame']);\n if (parentObject !== undefined && fromLastFrame != null) {\n setValueByPath(parentObject, ['instances[0]', 'lastFrame'], imageToMldev(fromLastFrame));\n }\n const fromReferenceImages = getValueByPath(fromObject, [\n 'referenceImages',\n ]);\n if (parentObject !== undefined && fromReferenceImages != null) {\n let transformedList = fromReferenceImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return videoGenerationReferenceImageToMldev(item);\n });\n }\n setValueByPath(parentObject, ['instances[0]', 'referenceImages'], transformedList);\n }\n if (getValueByPath(fromObject, ['mask']) !== undefined) {\n throw new Error('mask parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['compressionQuality']) !== undefined) {\n throw new Error('compressionQuality parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction generateVideosConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromNumberOfVideos = getValueByPath(fromObject, [\n 'numberOfVideos',\n ]);\n if (parentObject !== undefined && fromNumberOfVideos != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfVideos);\n }\n const fromOutputGcsUri = getValueByPath(fromObject, ['outputGcsUri']);\n if (parentObject !== undefined && fromOutputGcsUri != null) {\n setValueByPath(parentObject, ['parameters', 'storageUri'], fromOutputGcsUri);\n }\n const fromFps = getValueByPath(fromObject, ['fps']);\n if (parentObject !== undefined && fromFps != null) {\n setValueByPath(parentObject, ['parameters', 'fps'], fromFps);\n }\n const fromDurationSeconds = getValueByPath(fromObject, [\n 'durationSeconds',\n ]);\n if (parentObject !== undefined && fromDurationSeconds != null) {\n setValueByPath(parentObject, ['parameters', 'durationSeconds'], fromDurationSeconds);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['parameters', 'seed'], fromSeed);\n }\n const fromAspectRatio = getValueByPath(fromObject, ['aspectRatio']);\n if (parentObject !== undefined && fromAspectRatio != null) {\n setValueByPath(parentObject, ['parameters', 'aspectRatio'], fromAspectRatio);\n }\n const fromResolution = getValueByPath(fromObject, ['resolution']);\n if (parentObject !== undefined && fromResolution != null) {\n setValueByPath(parentObject, ['parameters', 'resolution'], fromResolution);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n const fromPubsubTopic = getValueByPath(fromObject, ['pubsubTopic']);\n if (parentObject !== undefined && fromPubsubTopic != null) {\n setValueByPath(parentObject, ['parameters', 'pubsubTopic'], fromPubsubTopic);\n }\n const fromNegativePrompt = getValueByPath(fromObject, [\n 'negativePrompt',\n ]);\n if (parentObject !== undefined && fromNegativePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'negativePrompt'], fromNegativePrompt);\n }\n const fromEnhancePrompt = getValueByPath(fromObject, [\n 'enhancePrompt',\n ]);\n if (parentObject !== undefined && fromEnhancePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'enhancePrompt'], fromEnhancePrompt);\n }\n const fromGenerateAudio = getValueByPath(fromObject, [\n 'generateAudio',\n ]);\n if (parentObject !== undefined && fromGenerateAudio != null) {\n setValueByPath(parentObject, ['parameters', 'generateAudio'], fromGenerateAudio);\n }\n const fromLastFrame = getValueByPath(fromObject, ['lastFrame']);\n if (parentObject !== undefined && fromLastFrame != null) {\n setValueByPath(parentObject, ['instances[0]', 'lastFrame'], imageToVertex(fromLastFrame));\n }\n const fromReferenceImages = getValueByPath(fromObject, [\n 'referenceImages',\n ]);\n if (parentObject !== undefined && fromReferenceImages != null) {\n let transformedList = fromReferenceImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return videoGenerationReferenceImageToVertex(item);\n });\n }\n setValueByPath(parentObject, ['instances[0]', 'referenceImages'], transformedList);\n }\n const fromMask = getValueByPath(fromObject, ['mask']);\n if (parentObject !== undefined && fromMask != null) {\n setValueByPath(parentObject, ['instances[0]', 'mask'], videoGenerationMaskToVertex(fromMask));\n }\n const fromCompressionQuality = getValueByPath(fromObject, [\n 'compressionQuality',\n ]);\n if (parentObject !== undefined && fromCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'compressionQuality'], fromCompressionQuality);\n }\n return toObject;\n}\nfunction generateVideosOperationFromMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromResponse = getValueByPath(fromObject, [\n 'response',\n 'generateVideoResponse',\n ]);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], generateVideosResponseFromMldev(fromResponse));\n }\n return toObject;\n}\nfunction generateVideosOperationFromVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromResponse = getValueByPath(fromObject, ['response']);\n if (fromResponse != null) {\n setValueByPath(toObject, ['response'], generateVideosResponseFromVertex(fromResponse));\n }\n return toObject;\n}\nfunction generateVideosParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromPrompt != null) {\n setValueByPath(toObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['instances[0]', 'image'], imageToMldev(fromImage));\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['instances[0]', 'video'], videoToMldev(fromVideo));\n }\n const fromSource = getValueByPath(fromObject, ['source']);\n if (fromSource != null) {\n generateVideosSourceToMldev(fromSource, toObject);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n generateVideosConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction generateVideosParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromPrompt != null) {\n setValueByPath(toObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['instances[0]', 'image'], imageToVertex(fromImage));\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['instances[0]', 'video'], videoToVertex(fromVideo));\n }\n const fromSource = getValueByPath(fromObject, ['source']);\n if (fromSource != null) {\n generateVideosSourceToVertex(fromSource, toObject);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n generateVideosConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction generateVideosResponseFromMldev(fromObject) {\n const toObject = {};\n const fromGeneratedVideos = getValueByPath(fromObject, [\n 'generatedSamples',\n ]);\n if (fromGeneratedVideos != null) {\n let transformedList = fromGeneratedVideos;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedVideoFromMldev(item);\n });\n }\n setValueByPath(toObject, ['generatedVideos'], transformedList);\n }\n const fromRaiMediaFilteredCount = getValueByPath(fromObject, [\n 'raiMediaFilteredCount',\n ]);\n if (fromRaiMediaFilteredCount != null) {\n setValueByPath(toObject, ['raiMediaFilteredCount'], fromRaiMediaFilteredCount);\n }\n const fromRaiMediaFilteredReasons = getValueByPath(fromObject, [\n 'raiMediaFilteredReasons',\n ]);\n if (fromRaiMediaFilteredReasons != null) {\n setValueByPath(toObject, ['raiMediaFilteredReasons'], fromRaiMediaFilteredReasons);\n }\n return toObject;\n}\nfunction generateVideosResponseFromVertex(fromObject) {\n const toObject = {};\n const fromGeneratedVideos = getValueByPath(fromObject, ['videos']);\n if (fromGeneratedVideos != null) {\n let transformedList = fromGeneratedVideos;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedVideoFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedVideos'], transformedList);\n }\n const fromRaiMediaFilteredCount = getValueByPath(fromObject, [\n 'raiMediaFilteredCount',\n ]);\n if (fromRaiMediaFilteredCount != null) {\n setValueByPath(toObject, ['raiMediaFilteredCount'], fromRaiMediaFilteredCount);\n }\n const fromRaiMediaFilteredReasons = getValueByPath(fromObject, [\n 'raiMediaFilteredReasons',\n ]);\n if (fromRaiMediaFilteredReasons != null) {\n setValueByPath(toObject, ['raiMediaFilteredReasons'], fromRaiMediaFilteredReasons);\n }\n return toObject;\n}\nfunction generateVideosSourceToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (parentObject !== undefined && fromPrompt != null) {\n setValueByPath(parentObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (parentObject !== undefined && fromImage != null) {\n setValueByPath(parentObject, ['instances[0]', 'image'], imageToMldev(fromImage));\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (parentObject !== undefined && fromVideo != null) {\n setValueByPath(parentObject, ['instances[0]', 'video'], videoToMldev(fromVideo));\n }\n return toObject;\n}\nfunction generateVideosSourceToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (parentObject !== undefined && fromPrompt != null) {\n setValueByPath(parentObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (parentObject !== undefined && fromImage != null) {\n setValueByPath(parentObject, ['instances[0]', 'image'], imageToVertex(fromImage));\n }\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (parentObject !== undefined && fromVideo != null) {\n setValueByPath(parentObject, ['instances[0]', 'video'], videoToVertex(fromVideo));\n }\n return toObject;\n}\nfunction generatedImageFromMldev(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['_self']);\n if (fromImage != null) {\n setValueByPath(toObject, ['image'], imageFromMldev(fromImage));\n }\n const fromRaiFilteredReason = getValueByPath(fromObject, [\n 'raiFilteredReason',\n ]);\n if (fromRaiFilteredReason != null) {\n setValueByPath(toObject, ['raiFilteredReason'], fromRaiFilteredReason);\n }\n const fromSafetyAttributes = getValueByPath(fromObject, ['_self']);\n if (fromSafetyAttributes != null) {\n setValueByPath(toObject, ['safetyAttributes'], safetyAttributesFromMldev(fromSafetyAttributes));\n }\n return toObject;\n}\nfunction generatedImageFromVertex(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['_self']);\n if (fromImage != null) {\n setValueByPath(toObject, ['image'], imageFromVertex(fromImage));\n }\n const fromRaiFilteredReason = getValueByPath(fromObject, [\n 'raiFilteredReason',\n ]);\n if (fromRaiFilteredReason != null) {\n setValueByPath(toObject, ['raiFilteredReason'], fromRaiFilteredReason);\n }\n const fromSafetyAttributes = getValueByPath(fromObject, ['_self']);\n if (fromSafetyAttributes != null) {\n setValueByPath(toObject, ['safetyAttributes'], safetyAttributesFromVertex(fromSafetyAttributes));\n }\n const fromEnhancedPrompt = getValueByPath(fromObject, ['prompt']);\n if (fromEnhancedPrompt != null) {\n setValueByPath(toObject, ['enhancedPrompt'], fromEnhancedPrompt);\n }\n return toObject;\n}\nfunction generatedImageMaskFromVertex(fromObject) {\n const toObject = {};\n const fromMask = getValueByPath(fromObject, ['_self']);\n if (fromMask != null) {\n setValueByPath(toObject, ['mask'], imageFromVertex(fromMask));\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (fromLabels != null) {\n let transformedList = fromLabels;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['labels'], transformedList);\n }\n return toObject;\n}\nfunction generatedVideoFromMldev(fromObject) {\n const toObject = {};\n const fromVideo = getValueByPath(fromObject, ['video']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], videoFromMldev(fromVideo));\n }\n return toObject;\n}\nfunction generatedVideoFromVertex(fromObject) {\n const toObject = {};\n const fromVideo = getValueByPath(fromObject, ['_self']);\n if (fromVideo != null) {\n setValueByPath(toObject, ['video'], videoFromVertex(fromVideo));\n }\n return toObject;\n}\nfunction generationConfigToVertex(fromObject) {\n const toObject = {};\n const fromModelSelectionConfig = getValueByPath(fromObject, [\n 'modelSelectionConfig',\n ]);\n if (fromModelSelectionConfig != null) {\n setValueByPath(toObject, ['modelConfig'], fromModelSelectionConfig);\n }\n const fromAudioTimestamp = getValueByPath(fromObject, [\n 'audioTimestamp',\n ]);\n if (fromAudioTimestamp != null) {\n setValueByPath(toObject, ['audioTimestamp'], fromAudioTimestamp);\n }\n const fromCandidateCount = getValueByPath(fromObject, [\n 'candidateCount',\n ]);\n if (fromCandidateCount != null) {\n setValueByPath(toObject, ['candidateCount'], fromCandidateCount);\n }\n const fromEnableAffectiveDialog = getValueByPath(fromObject, [\n 'enableAffectiveDialog',\n ]);\n if (fromEnableAffectiveDialog != null) {\n setValueByPath(toObject, ['enableAffectiveDialog'], fromEnableAffectiveDialog);\n }\n const fromFrequencyPenalty = getValueByPath(fromObject, [\n 'frequencyPenalty',\n ]);\n if (fromFrequencyPenalty != null) {\n setValueByPath(toObject, ['frequencyPenalty'], fromFrequencyPenalty);\n }\n const fromLogprobs = getValueByPath(fromObject, ['logprobs']);\n if (fromLogprobs != null) {\n setValueByPath(toObject, ['logprobs'], fromLogprobs);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (fromMaxOutputTokens != null) {\n setValueByPath(toObject, ['maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (fromMediaResolution != null) {\n setValueByPath(toObject, ['mediaResolution'], fromMediaResolution);\n }\n const fromPresencePenalty = getValueByPath(fromObject, [\n 'presencePenalty',\n ]);\n if (fromPresencePenalty != null) {\n setValueByPath(toObject, ['presencePenalty'], fromPresencePenalty);\n }\n const fromResponseJsonSchema = getValueByPath(fromObject, [\n 'responseJsonSchema',\n ]);\n if (fromResponseJsonSchema != null) {\n setValueByPath(toObject, ['responseJsonSchema'], fromResponseJsonSchema);\n }\n const fromResponseLogprobs = getValueByPath(fromObject, [\n 'responseLogprobs',\n ]);\n if (fromResponseLogprobs != null) {\n setValueByPath(toObject, ['responseLogprobs'], fromResponseLogprobs);\n }\n const fromResponseMimeType = getValueByPath(fromObject, [\n 'responseMimeType',\n ]);\n if (fromResponseMimeType != null) {\n setValueByPath(toObject, ['responseMimeType'], fromResponseMimeType);\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (fromResponseModalities != null) {\n setValueByPath(toObject, ['responseModalities'], fromResponseModalities);\n }\n const fromResponseSchema = getValueByPath(fromObject, [\n 'responseSchema',\n ]);\n if (fromResponseSchema != null) {\n setValueByPath(toObject, ['responseSchema'], fromResponseSchema);\n }\n const fromRoutingConfig = getValueByPath(fromObject, [\n 'routingConfig',\n ]);\n if (fromRoutingConfig != null) {\n setValueByPath(toObject, ['routingConfig'], fromRoutingConfig);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (fromSeed != null) {\n setValueByPath(toObject, ['seed'], fromSeed);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (fromSpeechConfig != null) {\n setValueByPath(toObject, ['speechConfig'], speechConfigToVertex(fromSpeechConfig));\n }\n const fromStopSequences = getValueByPath(fromObject, [\n 'stopSequences',\n ]);\n if (fromStopSequences != null) {\n setValueByPath(toObject, ['stopSequences'], fromStopSequences);\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (fromTemperature != null) {\n setValueByPath(toObject, ['temperature'], fromTemperature);\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (fromThinkingConfig != null) {\n setValueByPath(toObject, ['thinkingConfig'], fromThinkingConfig);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (fromTopK != null) {\n setValueByPath(toObject, ['topK'], fromTopK);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (fromTopP != null) {\n setValueByPath(toObject, ['topP'], fromTopP);\n }\n if (getValueByPath(fromObject, ['enableEnhancedCivicAnswers']) !==\n undefined) {\n throw new Error('enableEnhancedCivicAnswers parameter is not supported in Vertex AI.');\n }\n return toObject;\n}\nfunction getModelParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'name'], tModel(apiClient, fromModel));\n }\n return toObject;\n}\nfunction getModelParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'name'], tModel(apiClient, fromModel));\n }\n return toObject;\n}\nfunction googleMapsToMldev$1(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['authConfig']) !== undefined) {\n throw new Error('authConfig parameter is not supported in Gemini API.');\n }\n const fromEnableWidget = getValueByPath(fromObject, ['enableWidget']);\n if (fromEnableWidget != null) {\n setValueByPath(toObject, ['enableWidget'], fromEnableWidget);\n }\n return toObject;\n}\nfunction googleSearchToMldev$1(fromObject) {\n const toObject = {};\n const fromTimeRangeFilter = getValueByPath(fromObject, [\n 'timeRangeFilter',\n ]);\n if (fromTimeRangeFilter != null) {\n setValueByPath(toObject, ['timeRangeFilter'], fromTimeRangeFilter);\n }\n if (getValueByPath(fromObject, ['excludeDomains']) !== undefined) {\n throw new Error('excludeDomains parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction imageFromMldev(fromObject) {\n const toObject = {};\n const fromImageBytes = getValueByPath(fromObject, [\n 'bytesBase64Encoded',\n ]);\n if (fromImageBytes != null) {\n setValueByPath(toObject, ['imageBytes'], tBytes(fromImageBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction imageFromVertex(fromObject) {\n const toObject = {};\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsUri'], fromGcsUri);\n }\n const fromImageBytes = getValueByPath(fromObject, [\n 'bytesBase64Encoded',\n ]);\n if (fromImageBytes != null) {\n setValueByPath(toObject, ['imageBytes'], tBytes(fromImageBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction imageToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['gcsUri']) !== undefined) {\n throw new Error('gcsUri parameter is not supported in Gemini API.');\n }\n const fromImageBytes = getValueByPath(fromObject, ['imageBytes']);\n if (fromImageBytes != null) {\n setValueByPath(toObject, ['bytesBase64Encoded'], tBytes(fromImageBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction imageToVertex(fromObject) {\n const toObject = {};\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['gcsUri'], fromGcsUri);\n }\n const fromImageBytes = getValueByPath(fromObject, ['imageBytes']);\n if (fromImageBytes != null) {\n setValueByPath(toObject, ['bytesBase64Encoded'], tBytes(fromImageBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction listModelsConfigToMldev(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n const fromFilter = getValueByPath(fromObject, ['filter']);\n if (parentObject !== undefined && fromFilter != null) {\n setValueByPath(parentObject, ['_query', 'filter'], fromFilter);\n }\n const fromQueryBase = getValueByPath(fromObject, ['queryBase']);\n if (parentObject !== undefined && fromQueryBase != null) {\n setValueByPath(parentObject, ['_url', 'models_url'], tModelsUrl(apiClient, fromQueryBase));\n }\n return toObject;\n}\nfunction listModelsConfigToVertex(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n const fromFilter = getValueByPath(fromObject, ['filter']);\n if (parentObject !== undefined && fromFilter != null) {\n setValueByPath(parentObject, ['_query', 'filter'], fromFilter);\n }\n const fromQueryBase = getValueByPath(fromObject, ['queryBase']);\n if (parentObject !== undefined && fromQueryBase != null) {\n setValueByPath(parentObject, ['_url', 'models_url'], tModelsUrl(apiClient, fromQueryBase));\n }\n return toObject;\n}\nfunction listModelsParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listModelsConfigToMldev(apiClient, fromConfig, toObject);\n }\n return toObject;\n}\nfunction listModelsParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listModelsConfigToVertex(apiClient, fromConfig, toObject);\n }\n return toObject;\n}\nfunction listModelsResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromModels = getValueByPath(fromObject, ['_self']);\n if (fromModels != null) {\n let transformedList = tExtractModels(fromModels);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return modelFromMldev(item);\n });\n }\n setValueByPath(toObject, ['models'], transformedList);\n }\n return toObject;\n}\nfunction listModelsResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromModels = getValueByPath(fromObject, ['_self']);\n if (fromModels != null) {\n let transformedList = tExtractModels(fromModels);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return modelFromVertex(item);\n });\n }\n setValueByPath(toObject, ['models'], transformedList);\n }\n return toObject;\n}\nfunction maskReferenceConfigToVertex(fromObject) {\n const toObject = {};\n const fromMaskMode = getValueByPath(fromObject, ['maskMode']);\n if (fromMaskMode != null) {\n setValueByPath(toObject, ['maskMode'], fromMaskMode);\n }\n const fromSegmentationClasses = getValueByPath(fromObject, [\n 'segmentationClasses',\n ]);\n if (fromSegmentationClasses != null) {\n setValueByPath(toObject, ['maskClasses'], fromSegmentationClasses);\n }\n const fromMaskDilation = getValueByPath(fromObject, ['maskDilation']);\n if (fromMaskDilation != null) {\n setValueByPath(toObject, ['dilation'], fromMaskDilation);\n }\n return toObject;\n}\nfunction modelFromMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (fromDisplayName != null) {\n setValueByPath(toObject, ['displayName'], fromDisplayName);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromVersion = getValueByPath(fromObject, ['version']);\n if (fromVersion != null) {\n setValueByPath(toObject, ['version'], fromVersion);\n }\n const fromTunedModelInfo = getValueByPath(fromObject, ['_self']);\n if (fromTunedModelInfo != null) {\n setValueByPath(toObject, ['tunedModelInfo'], tunedModelInfoFromMldev(fromTunedModelInfo));\n }\n const fromInputTokenLimit = getValueByPath(fromObject, [\n 'inputTokenLimit',\n ]);\n if (fromInputTokenLimit != null) {\n setValueByPath(toObject, ['inputTokenLimit'], fromInputTokenLimit);\n }\n const fromOutputTokenLimit = getValueByPath(fromObject, [\n 'outputTokenLimit',\n ]);\n if (fromOutputTokenLimit != null) {\n setValueByPath(toObject, ['outputTokenLimit'], fromOutputTokenLimit);\n }\n const fromSupportedActions = getValueByPath(fromObject, [\n 'supportedGenerationMethods',\n ]);\n if (fromSupportedActions != null) {\n setValueByPath(toObject, ['supportedActions'], fromSupportedActions);\n }\n return toObject;\n}\nfunction modelFromVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (fromDisplayName != null) {\n setValueByPath(toObject, ['displayName'], fromDisplayName);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromVersion = getValueByPath(fromObject, ['versionId']);\n if (fromVersion != null) {\n setValueByPath(toObject, ['version'], fromVersion);\n }\n const fromEndpoints = getValueByPath(fromObject, ['deployedModels']);\n if (fromEndpoints != null) {\n let transformedList = fromEndpoints;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return endpointFromVertex(item);\n });\n }\n setValueByPath(toObject, ['endpoints'], transformedList);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (fromLabels != null) {\n setValueByPath(toObject, ['labels'], fromLabels);\n }\n const fromTunedModelInfo = getValueByPath(fromObject, ['_self']);\n if (fromTunedModelInfo != null) {\n setValueByPath(toObject, ['tunedModelInfo'], tunedModelInfoFromVertex(fromTunedModelInfo));\n }\n const fromDefaultCheckpointId = getValueByPath(fromObject, [\n 'defaultCheckpointId',\n ]);\n if (fromDefaultCheckpointId != null) {\n setValueByPath(toObject, ['defaultCheckpointId'], fromDefaultCheckpointId);\n }\n const fromCheckpoints = getValueByPath(fromObject, ['checkpoints']);\n if (fromCheckpoints != null) {\n let transformedList = fromCheckpoints;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['checkpoints'], transformedList);\n }\n return toObject;\n}\nfunction partToMldev$1(fromObject) {\n const toObject = {};\n const fromVideoMetadata = getValueByPath(fromObject, [\n 'videoMetadata',\n ]);\n if (fromVideoMetadata != null) {\n setValueByPath(toObject, ['videoMetadata'], fromVideoMetadata);\n }\n const fromThought = getValueByPath(fromObject, ['thought']);\n if (fromThought != null) {\n setValueByPath(toObject, ['thought'], fromThought);\n }\n const fromInlineData = getValueByPath(fromObject, ['inlineData']);\n if (fromInlineData != null) {\n setValueByPath(toObject, ['inlineData'], blobToMldev$1(fromInlineData));\n }\n const fromFileData = getValueByPath(fromObject, ['fileData']);\n if (fromFileData != null) {\n setValueByPath(toObject, ['fileData'], fileDataToMldev$1(fromFileData));\n }\n const fromThoughtSignature = getValueByPath(fromObject, [\n 'thoughtSignature',\n ]);\n if (fromThoughtSignature != null) {\n setValueByPath(toObject, ['thoughtSignature'], fromThoughtSignature);\n }\n const fromFunctionCall = getValueByPath(fromObject, ['functionCall']);\n if (fromFunctionCall != null) {\n setValueByPath(toObject, ['functionCall'], fromFunctionCall);\n }\n const fromCodeExecutionResult = getValueByPath(fromObject, [\n 'codeExecutionResult',\n ]);\n if (fromCodeExecutionResult != null) {\n setValueByPath(toObject, ['codeExecutionResult'], fromCodeExecutionResult);\n }\n const fromExecutableCode = getValueByPath(fromObject, [\n 'executableCode',\n ]);\n if (fromExecutableCode != null) {\n setValueByPath(toObject, ['executableCode'], fromExecutableCode);\n }\n const fromFunctionResponse = getValueByPath(fromObject, [\n 'functionResponse',\n ]);\n if (fromFunctionResponse != null) {\n setValueByPath(toObject, ['functionResponse'], fromFunctionResponse);\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n return toObject;\n}\nfunction productImageToVertex(fromObject) {\n const toObject = {};\n const fromProductImage = getValueByPath(fromObject, ['productImage']);\n if (fromProductImage != null) {\n setValueByPath(toObject, ['image'], imageToVertex(fromProductImage));\n }\n return toObject;\n}\nfunction recontextImageConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromNumberOfImages = getValueByPath(fromObject, [\n 'numberOfImages',\n ]);\n if (parentObject !== undefined && fromNumberOfImages != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfImages);\n }\n const fromBaseSteps = getValueByPath(fromObject, ['baseSteps']);\n if (parentObject !== undefined && fromBaseSteps != null) {\n setValueByPath(parentObject, ['parameters', 'editConfig', 'baseSteps'], fromBaseSteps);\n }\n const fromOutputGcsUri = getValueByPath(fromObject, ['outputGcsUri']);\n if (parentObject !== undefined && fromOutputGcsUri != null) {\n setValueByPath(parentObject, ['parameters', 'storageUri'], fromOutputGcsUri);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['parameters', 'seed'], fromSeed);\n }\n const fromSafetyFilterLevel = getValueByPath(fromObject, [\n 'safetyFilterLevel',\n ]);\n if (parentObject !== undefined && fromSafetyFilterLevel != null) {\n setValueByPath(parentObject, ['parameters', 'safetySetting'], fromSafetyFilterLevel);\n }\n const fromPersonGeneration = getValueByPath(fromObject, [\n 'personGeneration',\n ]);\n if (parentObject !== undefined && fromPersonGeneration != null) {\n setValueByPath(parentObject, ['parameters', 'personGeneration'], fromPersonGeneration);\n }\n const fromAddWatermark = getValueByPath(fromObject, ['addWatermark']);\n if (parentObject !== undefined && fromAddWatermark != null) {\n setValueByPath(parentObject, ['parameters', 'addWatermark'], fromAddWatermark);\n }\n const fromOutputMimeType = getValueByPath(fromObject, [\n 'outputMimeType',\n ]);\n if (parentObject !== undefined && fromOutputMimeType != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'mimeType'], fromOutputMimeType);\n }\n const fromOutputCompressionQuality = getValueByPath(fromObject, [\n 'outputCompressionQuality',\n ]);\n if (parentObject !== undefined && fromOutputCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'compressionQuality'], fromOutputCompressionQuality);\n }\n const fromEnhancePrompt = getValueByPath(fromObject, [\n 'enhancePrompt',\n ]);\n if (parentObject !== undefined && fromEnhancePrompt != null) {\n setValueByPath(parentObject, ['parameters', 'enhancePrompt'], fromEnhancePrompt);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n return toObject;\n}\nfunction recontextImageParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromSource = getValueByPath(fromObject, ['source']);\n if (fromSource != null) {\n recontextImageSourceToVertex(fromSource, toObject);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n recontextImageConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction recontextImageResponseFromVertex(fromObject) {\n const toObject = {};\n const fromGeneratedImages = getValueByPath(fromObject, [\n 'predictions',\n ]);\n if (fromGeneratedImages != null) {\n let transformedList = fromGeneratedImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedImages'], transformedList);\n }\n return toObject;\n}\nfunction recontextImageSourceToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (parentObject !== undefined && fromPrompt != null) {\n setValueByPath(parentObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromPersonImage = getValueByPath(fromObject, ['personImage']);\n if (parentObject !== undefined && fromPersonImage != null) {\n setValueByPath(parentObject, ['instances[0]', 'personImage', 'image'], imageToVertex(fromPersonImage));\n }\n const fromProductImages = getValueByPath(fromObject, [\n 'productImages',\n ]);\n if (parentObject !== undefined && fromProductImages != null) {\n let transformedList = fromProductImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return productImageToVertex(item);\n });\n }\n setValueByPath(parentObject, ['instances[0]', 'productImages'], transformedList);\n }\n return toObject;\n}\nfunction referenceImageAPIInternalToVertex(fromObject) {\n const toObject = {};\n const fromReferenceImage = getValueByPath(fromObject, [\n 'referenceImage',\n ]);\n if (fromReferenceImage != null) {\n setValueByPath(toObject, ['referenceImage'], imageToVertex(fromReferenceImage));\n }\n const fromReferenceId = getValueByPath(fromObject, ['referenceId']);\n if (fromReferenceId != null) {\n setValueByPath(toObject, ['referenceId'], fromReferenceId);\n }\n const fromReferenceType = getValueByPath(fromObject, [\n 'referenceType',\n ]);\n if (fromReferenceType != null) {\n setValueByPath(toObject, ['referenceType'], fromReferenceType);\n }\n const fromMaskImageConfig = getValueByPath(fromObject, [\n 'maskImageConfig',\n ]);\n if (fromMaskImageConfig != null) {\n setValueByPath(toObject, ['maskImageConfig'], maskReferenceConfigToVertex(fromMaskImageConfig));\n }\n const fromControlImageConfig = getValueByPath(fromObject, [\n 'controlImageConfig',\n ]);\n if (fromControlImageConfig != null) {\n setValueByPath(toObject, ['controlImageConfig'], controlReferenceConfigToVertex(fromControlImageConfig));\n }\n const fromStyleImageConfig = getValueByPath(fromObject, [\n 'styleImageConfig',\n ]);\n if (fromStyleImageConfig != null) {\n setValueByPath(toObject, ['styleImageConfig'], fromStyleImageConfig);\n }\n const fromSubjectImageConfig = getValueByPath(fromObject, [\n 'subjectImageConfig',\n ]);\n if (fromSubjectImageConfig != null) {\n setValueByPath(toObject, ['subjectImageConfig'], fromSubjectImageConfig);\n }\n return toObject;\n}\nfunction safetyAttributesFromMldev(fromObject) {\n const toObject = {};\n const fromCategories = getValueByPath(fromObject, [\n 'safetyAttributes',\n 'categories',\n ]);\n if (fromCategories != null) {\n setValueByPath(toObject, ['categories'], fromCategories);\n }\n const fromScores = getValueByPath(fromObject, [\n 'safetyAttributes',\n 'scores',\n ]);\n if (fromScores != null) {\n setValueByPath(toObject, ['scores'], fromScores);\n }\n const fromContentType = getValueByPath(fromObject, ['contentType']);\n if (fromContentType != null) {\n setValueByPath(toObject, ['contentType'], fromContentType);\n }\n return toObject;\n}\nfunction safetyAttributesFromVertex(fromObject) {\n const toObject = {};\n const fromCategories = getValueByPath(fromObject, [\n 'safetyAttributes',\n 'categories',\n ]);\n if (fromCategories != null) {\n setValueByPath(toObject, ['categories'], fromCategories);\n }\n const fromScores = getValueByPath(fromObject, [\n 'safetyAttributes',\n 'scores',\n ]);\n if (fromScores != null) {\n setValueByPath(toObject, ['scores'], fromScores);\n }\n const fromContentType = getValueByPath(fromObject, ['contentType']);\n if (fromContentType != null) {\n setValueByPath(toObject, ['contentType'], fromContentType);\n }\n return toObject;\n}\nfunction safetySettingToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['method']) !== undefined) {\n throw new Error('method parameter is not supported in Gemini API.');\n }\n const fromCategory = getValueByPath(fromObject, ['category']);\n if (fromCategory != null) {\n setValueByPath(toObject, ['category'], fromCategory);\n }\n const fromThreshold = getValueByPath(fromObject, ['threshold']);\n if (fromThreshold != null) {\n setValueByPath(toObject, ['threshold'], fromThreshold);\n }\n return toObject;\n}\nfunction scribbleImageToVertex(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['image'], imageToVertex(fromImage));\n }\n return toObject;\n}\nfunction segmentImageConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromMode = getValueByPath(fromObject, ['mode']);\n if (parentObject !== undefined && fromMode != null) {\n setValueByPath(parentObject, ['parameters', 'mode'], fromMode);\n }\n const fromMaxPredictions = getValueByPath(fromObject, [\n 'maxPredictions',\n ]);\n if (parentObject !== undefined && fromMaxPredictions != null) {\n setValueByPath(parentObject, ['parameters', 'maxPredictions'], fromMaxPredictions);\n }\n const fromConfidenceThreshold = getValueByPath(fromObject, [\n 'confidenceThreshold',\n ]);\n if (parentObject !== undefined && fromConfidenceThreshold != null) {\n setValueByPath(parentObject, ['parameters', 'confidenceThreshold'], fromConfidenceThreshold);\n }\n const fromMaskDilation = getValueByPath(fromObject, ['maskDilation']);\n if (parentObject !== undefined && fromMaskDilation != null) {\n setValueByPath(parentObject, ['parameters', 'maskDilation'], fromMaskDilation);\n }\n const fromBinaryColorThreshold = getValueByPath(fromObject, [\n 'binaryColorThreshold',\n ]);\n if (parentObject !== undefined && fromBinaryColorThreshold != null) {\n setValueByPath(parentObject, ['parameters', 'binaryColorThreshold'], fromBinaryColorThreshold);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n return toObject;\n}\nfunction segmentImageParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromSource = getValueByPath(fromObject, ['source']);\n if (fromSource != null) {\n segmentImageSourceToVertex(fromSource, toObject);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n segmentImageConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction segmentImageResponseFromVertex(fromObject) {\n const toObject = {};\n const fromGeneratedMasks = getValueByPath(fromObject, ['predictions']);\n if (fromGeneratedMasks != null) {\n let transformedList = fromGeneratedMasks;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageMaskFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedMasks'], transformedList);\n }\n return toObject;\n}\nfunction segmentImageSourceToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPrompt = getValueByPath(fromObject, ['prompt']);\n if (parentObject !== undefined && fromPrompt != null) {\n setValueByPath(parentObject, ['instances[0]', 'prompt'], fromPrompt);\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (parentObject !== undefined && fromImage != null) {\n setValueByPath(parentObject, ['instances[0]', 'image'], imageToVertex(fromImage));\n }\n const fromScribbleImage = getValueByPath(fromObject, [\n 'scribbleImage',\n ]);\n if (parentObject !== undefined && fromScribbleImage != null) {\n setValueByPath(parentObject, ['instances[0]', 'scribble'], scribbleImageToVertex(fromScribbleImage));\n }\n return toObject;\n}\nfunction speechConfigToVertex(fromObject) {\n const toObject = {};\n const fromVoiceConfig = getValueByPath(fromObject, ['voiceConfig']);\n if (fromVoiceConfig != null) {\n setValueByPath(toObject, ['voiceConfig'], fromVoiceConfig);\n }\n if (getValueByPath(fromObject, ['multiSpeakerVoiceConfig']) !== undefined) {\n throw new Error('multiSpeakerVoiceConfig parameter is not supported in Vertex AI.');\n }\n const fromLanguageCode = getValueByPath(fromObject, ['languageCode']);\n if (fromLanguageCode != null) {\n setValueByPath(toObject, ['languageCode'], fromLanguageCode);\n }\n return toObject;\n}\nfunction toolToMldev$1(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n if (getValueByPath(fromObject, ['retrieval']) !== undefined) {\n throw new Error('retrieval parameter is not supported in Gemini API.');\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], googleSearchToMldev$1(fromGoogleSearch));\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n if (getValueByPath(fromObject, ['enterpriseWebSearch']) !== undefined) {\n throw new Error('enterpriseWebSearch parameter is not supported in Gemini API.');\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], googleMapsToMldev$1(fromGoogleMaps));\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction toolToVertex(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return functionDeclarationToVertex(item);\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n const fromRetrieval = getValueByPath(fromObject, ['retrieval']);\n if (fromRetrieval != null) {\n setValueByPath(toObject, ['retrieval'], fromRetrieval);\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], fromGoogleSearch);\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n const fromEnterpriseWebSearch = getValueByPath(fromObject, [\n 'enterpriseWebSearch',\n ]);\n if (fromEnterpriseWebSearch != null) {\n setValueByPath(toObject, ['enterpriseWebSearch'], fromEnterpriseWebSearch);\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], fromGoogleMaps);\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\nfunction tunedModelInfoFromMldev(fromObject) {\n const toObject = {};\n const fromBaseModel = getValueByPath(fromObject, ['baseModel']);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, ['updateTime']);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n return toObject;\n}\nfunction tunedModelInfoFromVertex(fromObject) {\n const toObject = {};\n const fromBaseModel = getValueByPath(fromObject, [\n 'labels',\n 'google-vertex-llm-tuning-base-model-id',\n ]);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, ['updateTime']);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n return toObject;\n}\nfunction updateModelConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromDisplayName);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (parentObject !== undefined && fromDescription != null) {\n setValueByPath(parentObject, ['description'], fromDescription);\n }\n const fromDefaultCheckpointId = getValueByPath(fromObject, [\n 'defaultCheckpointId',\n ]);\n if (parentObject !== undefined && fromDefaultCheckpointId != null) {\n setValueByPath(parentObject, ['defaultCheckpointId'], fromDefaultCheckpointId);\n }\n return toObject;\n}\nfunction updateModelConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromDisplayName = getValueByPath(fromObject, ['displayName']);\n if (parentObject !== undefined && fromDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromDisplayName);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (parentObject !== undefined && fromDescription != null) {\n setValueByPath(parentObject, ['description'], fromDescription);\n }\n const fromDefaultCheckpointId = getValueByPath(fromObject, [\n 'defaultCheckpointId',\n ]);\n if (parentObject !== undefined && fromDefaultCheckpointId != null) {\n setValueByPath(parentObject, ['defaultCheckpointId'], fromDefaultCheckpointId);\n }\n return toObject;\n}\nfunction updateModelParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'name'], tModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n updateModelConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction updateModelParametersToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n updateModelConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction upscaleImageAPIConfigInternalToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromOutputGcsUri = getValueByPath(fromObject, ['outputGcsUri']);\n if (parentObject !== undefined && fromOutputGcsUri != null) {\n setValueByPath(parentObject, ['parameters', 'storageUri'], fromOutputGcsUri);\n }\n const fromIncludeRaiReason = getValueByPath(fromObject, [\n 'includeRaiReason',\n ]);\n if (parentObject !== undefined && fromIncludeRaiReason != null) {\n setValueByPath(parentObject, ['parameters', 'includeRaiReason'], fromIncludeRaiReason);\n }\n const fromOutputMimeType = getValueByPath(fromObject, [\n 'outputMimeType',\n ]);\n if (parentObject !== undefined && fromOutputMimeType != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'mimeType'], fromOutputMimeType);\n }\n const fromOutputCompressionQuality = getValueByPath(fromObject, [\n 'outputCompressionQuality',\n ]);\n if (parentObject !== undefined && fromOutputCompressionQuality != null) {\n setValueByPath(parentObject, ['parameters', 'outputOptions', 'compressionQuality'], fromOutputCompressionQuality);\n }\n const fromEnhanceInputImage = getValueByPath(fromObject, [\n 'enhanceInputImage',\n ]);\n if (parentObject !== undefined && fromEnhanceInputImage != null) {\n setValueByPath(parentObject, ['parameters', 'upscaleConfig', 'enhanceInputImage'], fromEnhanceInputImage);\n }\n const fromImagePreservationFactor = getValueByPath(fromObject, [\n 'imagePreservationFactor',\n ]);\n if (parentObject !== undefined && fromImagePreservationFactor != null) {\n setValueByPath(parentObject, ['parameters', 'upscaleConfig', 'imagePreservationFactor'], fromImagePreservationFactor);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n const fromNumberOfImages = getValueByPath(fromObject, [\n 'numberOfImages',\n ]);\n if (parentObject !== undefined && fromNumberOfImages != null) {\n setValueByPath(parentObject, ['parameters', 'sampleCount'], fromNumberOfImages);\n }\n const fromMode = getValueByPath(fromObject, ['mode']);\n if (parentObject !== undefined && fromMode != null) {\n setValueByPath(parentObject, ['parameters', 'mode'], fromMode);\n }\n return toObject;\n}\nfunction upscaleImageAPIParametersInternalToVertex(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['_url', 'model'], tModel(apiClient, fromModel));\n }\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['instances[0]', 'image'], imageToVertex(fromImage));\n }\n const fromUpscaleFactor = getValueByPath(fromObject, [\n 'upscaleFactor',\n ]);\n if (fromUpscaleFactor != null) {\n setValueByPath(toObject, ['parameters', 'upscaleConfig', 'upscaleFactor'], fromUpscaleFactor);\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n upscaleImageAPIConfigInternalToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction upscaleImageResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromGeneratedImages = getValueByPath(fromObject, [\n 'predictions',\n ]);\n if (fromGeneratedImages != null) {\n let transformedList = fromGeneratedImages;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return generatedImageFromVertex(item);\n });\n }\n setValueByPath(toObject, ['generatedImages'], transformedList);\n }\n return toObject;\n}\nfunction videoFromMldev(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['uri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['uri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, ['encodedVideo']);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['videoBytes'], tBytes(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['encoding']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction videoFromVertex(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['uri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, [\n 'bytesBase64Encoded',\n ]);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['videoBytes'], tBytes(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction videoGenerationMaskToVertex(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['_self'], imageToVertex(fromImage));\n }\n const fromMaskMode = getValueByPath(fromObject, ['maskMode']);\n if (fromMaskMode != null) {\n setValueByPath(toObject, ['maskMode'], fromMaskMode);\n }\n return toObject;\n}\nfunction videoGenerationReferenceImageToMldev(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['image'], imageToMldev(fromImage));\n }\n const fromReferenceType = getValueByPath(fromObject, [\n 'referenceType',\n ]);\n if (fromReferenceType != null) {\n setValueByPath(toObject, ['referenceType'], fromReferenceType);\n }\n return toObject;\n}\nfunction videoGenerationReferenceImageToVertex(fromObject) {\n const toObject = {};\n const fromImage = getValueByPath(fromObject, ['image']);\n if (fromImage != null) {\n setValueByPath(toObject, ['image'], imageToVertex(fromImage));\n }\n const fromReferenceType = getValueByPath(fromObject, [\n 'referenceType',\n ]);\n if (fromReferenceType != null) {\n setValueByPath(toObject, ['referenceType'], fromReferenceType);\n }\n return toObject;\n}\nfunction videoToMldev(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['uri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['uri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, ['videoBytes']);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['encodedVideo'], tBytes(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['encoding'], fromMimeType);\n }\n return toObject;\n}\nfunction videoToVertex(fromObject) {\n const toObject = {};\n const fromUri = getValueByPath(fromObject, ['uri']);\n if (fromUri != null) {\n setValueByPath(toObject, ['gcsUri'], fromUri);\n }\n const fromVideoBytes = getValueByPath(fromObject, ['videoBytes']);\n if (fromVideoBytes != null) {\n setValueByPath(toObject, ['bytesBase64Encoded'], tBytes(fromVideoBytes));\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst CONTENT_TYPE_HEADER = 'Content-Type';\nconst SERVER_TIMEOUT_HEADER = 'X-Server-Timeout';\nconst USER_AGENT_HEADER = 'User-Agent';\nconst GOOGLE_API_CLIENT_HEADER = 'x-goog-api-client';\nconst SDK_VERSION = '1.26.0'; // x-release-please-version\nconst LIBRARY_LABEL = `google-genai-sdk/${SDK_VERSION}`;\nconst VERTEX_AI_API_DEFAULT_VERSION = 'v1beta1';\nconst GOOGLE_AI_API_DEFAULT_VERSION = 'v1beta';\nconst responseLineRE = /^\\s*data: (.*)(?:\\n\\n|\\r\\r|\\r\\n\\r\\n)/;\n/**\n * The ApiClient class is used to send requests to the Gemini API or Vertex AI\n * endpoints.\n */\nclass ApiClient {\n constructor(opts) {\n var _a, _b;\n this.clientOptions = Object.assign(Object.assign({}, opts), { project: opts.project, location: opts.location, apiKey: opts.apiKey, vertexai: opts.vertexai });\n const initHttpOptions = {};\n if (this.clientOptions.vertexai) {\n initHttpOptions.apiVersion =\n (_a = this.clientOptions.apiVersion) !== null && _a !== void 0 ? _a : VERTEX_AI_API_DEFAULT_VERSION;\n initHttpOptions.baseUrl = this.baseUrlFromProjectLocation();\n this.normalizeAuthParameters();\n }\n else {\n // Gemini API\n initHttpOptions.apiVersion =\n (_b = this.clientOptions.apiVersion) !== null && _b !== void 0 ? _b : GOOGLE_AI_API_DEFAULT_VERSION;\n initHttpOptions.baseUrl = `https://generativelanguage.googleapis.com/`;\n }\n initHttpOptions.headers = this.getDefaultHeaders();\n this.clientOptions.httpOptions = initHttpOptions;\n if (opts.httpOptions) {\n this.clientOptions.httpOptions = this.patchHttpOptions(initHttpOptions, opts.httpOptions);\n }\n }\n /**\n * Determines the base URL for Vertex AI based on project and location.\n * Uses the global endpoint if location is 'global' or if project/location\n * are not specified (implying API key usage).\n * @private\n */\n baseUrlFromProjectLocation() {\n if (this.clientOptions.project &&\n this.clientOptions.location &&\n this.clientOptions.location !== 'global') {\n // Regional endpoint\n return `https://${this.clientOptions.location}-aiplatform.googleapis.com/`;\n }\n // Global endpoint (covers 'global' location and API key usage)\n return `https://aiplatform.googleapis.com/`;\n }\n /**\n * Normalizes authentication parameters for Vertex AI.\n * If project and location are provided, API key is cleared.\n * If project and location are not provided (implying API key usage),\n * project and location are cleared.\n * @private\n */\n normalizeAuthParameters() {\n if (this.clientOptions.project && this.clientOptions.location) {\n // Using project/location for auth, clear potential API key\n this.clientOptions.apiKey = undefined;\n return;\n }\n // Using API key for auth (or no auth provided yet), clear project/location\n this.clientOptions.project = undefined;\n this.clientOptions.location = undefined;\n }\n isVertexAI() {\n var _a;\n return (_a = this.clientOptions.vertexai) !== null && _a !== void 0 ? _a : false;\n }\n getProject() {\n return this.clientOptions.project;\n }\n getLocation() {\n return this.clientOptions.location;\n }\n getApiVersion() {\n if (this.clientOptions.httpOptions &&\n this.clientOptions.httpOptions.apiVersion !== undefined) {\n return this.clientOptions.httpOptions.apiVersion;\n }\n throw new Error('API version is not set.');\n }\n getBaseUrl() {\n if (this.clientOptions.httpOptions &&\n this.clientOptions.httpOptions.baseUrl !== undefined) {\n return this.clientOptions.httpOptions.baseUrl;\n }\n throw new Error('Base URL is not set.');\n }\n getRequestUrl() {\n return this.getRequestUrlInternal(this.clientOptions.httpOptions);\n }\n getHeaders() {\n if (this.clientOptions.httpOptions &&\n this.clientOptions.httpOptions.headers !== undefined) {\n return this.clientOptions.httpOptions.headers;\n }\n else {\n throw new Error('Headers are not set.');\n }\n }\n getRequestUrlInternal(httpOptions) {\n if (!httpOptions ||\n httpOptions.baseUrl === undefined ||\n httpOptions.apiVersion === undefined) {\n throw new Error('HTTP options are not correctly set.');\n }\n const baseUrl = httpOptions.baseUrl.endsWith('/')\n ? httpOptions.baseUrl.slice(0, -1)\n : httpOptions.baseUrl;\n const urlElement = [baseUrl];\n if (httpOptions.apiVersion && httpOptions.apiVersion !== '') {\n urlElement.push(httpOptions.apiVersion);\n }\n return urlElement.join('/');\n }\n getBaseResourcePath() {\n return `projects/${this.clientOptions.project}/locations/${this.clientOptions.location}`;\n }\n getApiKey() {\n return this.clientOptions.apiKey;\n }\n getWebsocketBaseUrl() {\n const baseUrl = this.getBaseUrl();\n const urlParts = new URL(baseUrl);\n urlParts.protocol = urlParts.protocol == 'http:' ? 'ws' : 'wss';\n return urlParts.toString();\n }\n setBaseUrl(url) {\n if (this.clientOptions.httpOptions) {\n this.clientOptions.httpOptions.baseUrl = url;\n }\n else {\n throw new Error('HTTP options are not correctly set.');\n }\n }\n constructUrl(path, httpOptions, prependProjectLocation) {\n const urlElement = [this.getRequestUrlInternal(httpOptions)];\n if (prependProjectLocation) {\n urlElement.push(this.getBaseResourcePath());\n }\n if (path !== '') {\n urlElement.push(path);\n }\n const url = new URL(`${urlElement.join('/')}`);\n return url;\n }\n shouldPrependVertexProjectPath(request) {\n if (this.clientOptions.apiKey) {\n return false;\n }\n if (!this.clientOptions.vertexai) {\n return false;\n }\n if (request.path.startsWith('projects/')) {\n // Assume the path already starts with\n // `projects//location/`.\n return false;\n }\n if (request.httpMethod === 'GET' &&\n request.path.startsWith('publishers/google/models')) {\n // These paths are used by Vertex's models.get and models.list\n // calls. For base models Vertex does not accept a project/location\n // prefix (for tuned model the prefix is required).\n return false;\n }\n return true;\n }\n async request(request) {\n let patchedHttpOptions = this.clientOptions.httpOptions;\n if (request.httpOptions) {\n patchedHttpOptions = this.patchHttpOptions(this.clientOptions.httpOptions, request.httpOptions);\n }\n const prependProjectLocation = this.shouldPrependVertexProjectPath(request);\n const url = this.constructUrl(request.path, patchedHttpOptions, prependProjectLocation);\n if (request.queryParams) {\n for (const [key, value] of Object.entries(request.queryParams)) {\n url.searchParams.append(key, String(value));\n }\n }\n let requestInit = {};\n if (request.httpMethod === 'GET') {\n if (request.body && request.body !== '{}') {\n throw new Error('Request body should be empty for GET request, but got non empty request body');\n }\n }\n else {\n requestInit.body = request.body;\n }\n requestInit = await this.includeExtraHttpOptionsToRequestInit(requestInit, patchedHttpOptions, request.abortSignal);\n return this.unaryApiCall(url, requestInit, request.httpMethod);\n }\n patchHttpOptions(baseHttpOptions, requestHttpOptions) {\n const patchedHttpOptions = JSON.parse(JSON.stringify(baseHttpOptions));\n for (const [key, value] of Object.entries(requestHttpOptions)) {\n // Records compile to objects.\n if (typeof value === 'object') {\n // @ts-expect-error TS2345TS7053: Element implicitly has an 'any' type\n // because expression of type 'string' can't be used to index type\n // 'HttpOptions'.\n patchedHttpOptions[key] = Object.assign(Object.assign({}, patchedHttpOptions[key]), value);\n }\n else if (value !== undefined) {\n // @ts-expect-error TS2345TS7053: Element implicitly has an 'any' type\n // because expression of type 'string' can't be used to index type\n // 'HttpOptions'.\n patchedHttpOptions[key] = value;\n }\n }\n return patchedHttpOptions;\n }\n async requestStream(request) {\n let patchedHttpOptions = this.clientOptions.httpOptions;\n if (request.httpOptions) {\n patchedHttpOptions = this.patchHttpOptions(this.clientOptions.httpOptions, request.httpOptions);\n }\n const prependProjectLocation = this.shouldPrependVertexProjectPath(request);\n const url = this.constructUrl(request.path, patchedHttpOptions, prependProjectLocation);\n if (!url.searchParams.has('alt') || url.searchParams.get('alt') !== 'sse') {\n url.searchParams.set('alt', 'sse');\n }\n let requestInit = {};\n requestInit.body = request.body;\n requestInit = await this.includeExtraHttpOptionsToRequestInit(requestInit, patchedHttpOptions, request.abortSignal);\n return this.streamApiCall(url, requestInit, request.httpMethod);\n }\n async includeExtraHttpOptionsToRequestInit(requestInit, httpOptions, abortSignal) {\n if ((httpOptions && httpOptions.timeout) || abortSignal) {\n const abortController = new AbortController();\n const signal = abortController.signal;\n if (httpOptions.timeout && (httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.timeout) > 0) {\n const timeoutHandle = setTimeout(() => abortController.abort(), httpOptions.timeout);\n if (timeoutHandle &&\n typeof timeoutHandle.unref ===\n 'function') {\n // call unref to prevent nodejs process from hanging, see\n // https://nodejs.org/api/timers.html#timeoutunref\n timeoutHandle.unref();\n }\n }\n if (abortSignal) {\n abortSignal.addEventListener('abort', () => {\n abortController.abort();\n });\n }\n requestInit.signal = signal;\n }\n if (httpOptions && httpOptions.extraBody !== null) {\n includeExtraBodyToRequestInit(requestInit, httpOptions.extraBody);\n }\n requestInit.headers = await this.getHeadersInternal(httpOptions);\n return requestInit;\n }\n async unaryApiCall(url, requestInit, httpMethod) {\n return this.apiCall(url.toString(), Object.assign(Object.assign({}, requestInit), { method: httpMethod }))\n .then(async (response) => {\n await throwErrorIfNotOK(response);\n return new HttpResponse(response);\n })\n .catch((e) => {\n if (e instanceof Error) {\n throw e;\n }\n else {\n throw new Error(JSON.stringify(e));\n }\n });\n }\n async streamApiCall(url, requestInit, httpMethod) {\n return this.apiCall(url.toString(), Object.assign(Object.assign({}, requestInit), { method: httpMethod }))\n .then(async (response) => {\n await throwErrorIfNotOK(response);\n return this.processStreamResponse(response);\n })\n .catch((e) => {\n if (e instanceof Error) {\n throw e;\n }\n else {\n throw new Error(JSON.stringify(e));\n }\n });\n }\n processStreamResponse(response) {\n var _a;\n return __asyncGenerator(this, arguments, function* processStreamResponse_1() {\n const reader = (_a = response === null || response === void 0 ? void 0 : response.body) === null || _a === void 0 ? void 0 : _a.getReader();\n const decoder = new TextDecoder('utf-8');\n if (!reader) {\n throw new Error('Response body is empty');\n }\n try {\n let buffer = '';\n while (true) {\n const { done, value } = yield __await(reader.read());\n if (done) {\n if (buffer.trim().length > 0) {\n throw new Error('Incomplete JSON segment at the end');\n }\n break;\n }\n const chunkString = decoder.decode(value, { stream: true });\n // Parse and throw an error if the chunk contains an error.\n try {\n const chunkJson = JSON.parse(chunkString);\n if ('error' in chunkJson) {\n const errorJson = JSON.parse(JSON.stringify(chunkJson['error']));\n const status = errorJson['status'];\n const code = errorJson['code'];\n const errorMessage = `got status: ${status}. ${JSON.stringify(chunkJson)}`;\n if (code >= 400 && code < 600) {\n const apiError = new ApiError({\n message: errorMessage,\n status: code,\n });\n throw apiError;\n }\n }\n }\n catch (e) {\n const error = e;\n if (error.name === 'ApiError') {\n throw e;\n }\n }\n buffer += chunkString;\n let match = buffer.match(responseLineRE);\n while (match) {\n const processedChunkString = match[1];\n try {\n const partialResponse = new Response(processedChunkString, {\n headers: response === null || response === void 0 ? void 0 : response.headers,\n status: response === null || response === void 0 ? void 0 : response.status,\n statusText: response === null || response === void 0 ? void 0 : response.statusText,\n });\n yield yield __await(new HttpResponse(partialResponse));\n buffer = buffer.slice(match[0].length);\n match = buffer.match(responseLineRE);\n }\n catch (e) {\n throw new Error(`exception parsing stream chunk ${processedChunkString}. ${e}`);\n }\n }\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n }\n async apiCall(url, requestInit) {\n return fetch(url, requestInit).catch((e) => {\n throw new Error(`exception ${e} sending request`);\n });\n }\n getDefaultHeaders() {\n const headers = {};\n const versionHeaderValue = LIBRARY_LABEL + ' ' + this.clientOptions.userAgentExtra;\n headers[USER_AGENT_HEADER] = versionHeaderValue;\n headers[GOOGLE_API_CLIENT_HEADER] = versionHeaderValue;\n headers[CONTENT_TYPE_HEADER] = 'application/json';\n return headers;\n }\n async getHeadersInternal(httpOptions) {\n const headers = new Headers();\n if (httpOptions && httpOptions.headers) {\n for (const [key, value] of Object.entries(httpOptions.headers)) {\n headers.append(key, value);\n }\n // Append a timeout header if it is set, note that the timeout option is\n // in milliseconds but the header is in seconds.\n if (httpOptions.timeout && httpOptions.timeout > 0) {\n headers.append(SERVER_TIMEOUT_HEADER, String(Math.ceil(httpOptions.timeout / 1000)));\n }\n }\n await this.clientOptions.auth.addAuthHeaders(headers);\n return headers;\n }\n /**\n * Uploads a file asynchronously using Gemini API only, this is not supported\n * in Vertex AI.\n *\n * @param file The string path to the file to be uploaded or a Blob object.\n * @param config Optional parameters specified in the `UploadFileConfig`\n * interface. @see {@link UploadFileConfig}\n * @return A promise that resolves to a `File` object.\n * @throws An error if called on a Vertex AI client.\n * @throws An error if the `mimeType` is not provided and can not be inferred,\n */\n async uploadFile(file, config) {\n var _a;\n const fileToUpload = {};\n if (config != null) {\n fileToUpload.mimeType = config.mimeType;\n fileToUpload.name = config.name;\n fileToUpload.displayName = config.displayName;\n }\n if (fileToUpload.name && !fileToUpload.name.startsWith('files/')) {\n fileToUpload.name = `files/${fileToUpload.name}`;\n }\n const uploader = this.clientOptions.uploader;\n const fileStat = await uploader.stat(file);\n fileToUpload.sizeBytes = String(fileStat.size);\n const mimeType = (_a = config === null || config === void 0 ? void 0 : config.mimeType) !== null && _a !== void 0 ? _a : fileStat.type;\n if (mimeType === undefined || mimeType === '') {\n throw new Error('Can not determine mimeType. Please provide mimeType in the config.');\n }\n fileToUpload.mimeType = mimeType;\n const uploadUrl = await this.fetchUploadUrl(fileToUpload, config);\n return uploader.upload(file, uploadUrl, this);\n }\n /**\n * Downloads a file asynchronously to the specified path.\n *\n * @params params - The parameters for the download request, see {@link\n * DownloadFileParameters}\n */\n async downloadFile(params) {\n const downloader = this.clientOptions.downloader;\n await downloader.download(params, this);\n }\n async fetchUploadUrl(file, config) {\n var _a;\n let httpOptions = {};\n if (config === null || config === void 0 ? void 0 : config.httpOptions) {\n httpOptions = config.httpOptions;\n }\n else {\n httpOptions = {\n apiVersion: '',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Goog-Upload-Protocol': 'resumable',\n 'X-Goog-Upload-Command': 'start',\n 'X-Goog-Upload-Header-Content-Length': `${file.sizeBytes}`,\n 'X-Goog-Upload-Header-Content-Type': `${file.mimeType}`,\n },\n };\n }\n const body = {\n 'file': file,\n };\n const httpResponse = await this.request({\n path: formatMap('upload/v1beta/files', body['_url']),\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions,\n });\n if (!httpResponse || !(httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.headers)) {\n throw new Error('Server did not return an HttpResponse or the returned HttpResponse did not have headers.');\n }\n const uploadUrl = (_a = httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.headers) === null || _a === void 0 ? void 0 : _a['x-goog-upload-url'];\n if (uploadUrl === undefined) {\n throw new Error('Failed to get upload url. Server did not return the x-google-upload-url in the headers');\n }\n return uploadUrl;\n }\n}\nasync function throwErrorIfNotOK(response) {\n var _a;\n if (response === undefined) {\n throw new Error('response is undefined');\n }\n if (!response.ok) {\n const status = response.status;\n let errorBody;\n if ((_a = response.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.includes('application/json')) {\n errorBody = await response.json();\n }\n else {\n errorBody = {\n error: {\n message: await response.text(),\n code: response.status,\n status: response.statusText,\n },\n };\n }\n const errorMessage = JSON.stringify(errorBody);\n if (status >= 400 && status < 600) {\n const apiError = new ApiError({\n message: errorMessage,\n status: status,\n });\n throw apiError;\n }\n throw new Error(errorMessage);\n }\n}\n/**\n * Recursively updates the `requestInit.body` with values from an `extraBody` object.\n *\n * If `requestInit.body` is a string, it's assumed to be JSON and will be parsed.\n * The `extraBody` is then deeply merged into this parsed object.\n * If `requestInit.body` is a Blob, `extraBody` will be ignored, and a warning logged,\n * as merging structured data into an opaque Blob is not supported.\n *\n * The function does not enforce that updated values from `extraBody` have the\n * same type as existing values in `requestInit.body`. Type mismatches during\n * the merge will result in a warning, but the value from `extraBody` will overwrite\n * the original. `extraBody` users are responsible for ensuring `extraBody` has the correct structure.\n *\n * @param requestInit The RequestInit object whose body will be updated.\n * @param extraBody The object containing updates to be merged into `requestInit.body`.\n */\nfunction includeExtraBodyToRequestInit(requestInit, extraBody) {\n if (!extraBody || Object.keys(extraBody).length === 0) {\n return;\n }\n if (requestInit.body instanceof Blob) {\n console.warn('includeExtraBodyToRequestInit: extraBody provided but current request body is a Blob. extraBody will be ignored as merging is not supported for Blob bodies.');\n return;\n }\n let currentBodyObject = {};\n // If adding new type to HttpRequest.body, please check the code below to\n // see if we need to update the logic.\n if (typeof requestInit.body === 'string' && requestInit.body.length > 0) {\n try {\n const parsedBody = JSON.parse(requestInit.body);\n if (typeof parsedBody === 'object' &&\n parsedBody !== null &&\n !Array.isArray(parsedBody)) {\n currentBodyObject = parsedBody;\n }\n else {\n console.warn('includeExtraBodyToRequestInit: Original request body is valid JSON but not a non-array object. Skip applying extraBody to the request body.');\n return;\n }\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\n }\n catch (e) {\n console.warn('includeExtraBodyToRequestInit: Original request body is not valid JSON. Skip applying extraBody to the request body.');\n return;\n }\n }\n function deepMerge(target, source) {\n const output = Object.assign({}, target);\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const sourceValue = source[key];\n const targetValue = output[key];\n if (sourceValue &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)) {\n output[key] = deepMerge(targetValue, sourceValue);\n }\n else {\n if (targetValue &&\n sourceValue &&\n typeof targetValue !== typeof sourceValue) {\n console.warn(`includeExtraBodyToRequestInit:deepMerge: Type mismatch for key \"${key}\". Original type: ${typeof targetValue}, New type: ${typeof sourceValue}. Overwriting.`);\n }\n output[key] = sourceValue;\n }\n }\n }\n return output;\n }\n const mergedBody = deepMerge(currentBodyObject, extraBody);\n requestInit.body = JSON.stringify(mergedBody);\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// TODO: b/416041229 - Determine how to retrieve the MCP package version.\nconst MCP_LABEL = 'mcp_used/unknown';\n// Whether MCP tool usage is detected from mcpToTool. This is used for\n// telemetry.\nlet hasMcpToolUsageFromMcpToTool = false;\n// Checks whether the list of tools contains any MCP tools.\nfunction hasMcpToolUsage(tools) {\n for (const tool of tools) {\n if (isMcpCallableTool(tool)) {\n return true;\n }\n if (typeof tool === 'object' && 'inputSchema' in tool) {\n return true;\n }\n }\n return hasMcpToolUsageFromMcpToTool;\n}\n// Sets the MCP version label in the Google API client header.\nfunction setMcpUsageHeader(headers) {\n var _a;\n const existingHeader = (_a = headers[GOOGLE_API_CLIENT_HEADER]) !== null && _a !== void 0 ? _a : '';\n headers[GOOGLE_API_CLIENT_HEADER] = (existingHeader + ` ${MCP_LABEL}`).trimStart();\n}\n// Returns true if the object is a MCP CallableTool, otherwise false.\nfunction isMcpCallableTool(object) {\n return (object !== null &&\n typeof object === 'object' &&\n object instanceof McpCallableTool);\n}\n// List all tools from the MCP client.\nfunction listAllTools(mcpClient, maxTools = 100) {\n return __asyncGenerator(this, arguments, function* listAllTools_1() {\n let cursor = undefined;\n let numTools = 0;\n while (numTools < maxTools) {\n const t = yield __await(mcpClient.listTools({ cursor }));\n for (const tool of t.tools) {\n yield yield __await(tool);\n numTools++;\n }\n if (!t.nextCursor) {\n break;\n }\n cursor = t.nextCursor;\n }\n });\n}\n/**\n * McpCallableTool can be used for model inference and invoking MCP clients with\n * given function call arguments.\n *\n * @experimental Built-in MCP support is an experimental feature, may change in future\n * versions.\n */\nclass McpCallableTool {\n constructor(mcpClients = [], config) {\n this.mcpTools = [];\n this.functionNameToMcpClient = {};\n this.mcpClients = mcpClients;\n this.config = config;\n }\n /**\n * Creates a McpCallableTool.\n */\n static create(mcpClients, config) {\n return new McpCallableTool(mcpClients, config);\n }\n /**\n * Validates the function names are not duplicate and initialize the function\n * name to MCP client mapping.\n *\n * @throws {Error} if the MCP tools from the MCP clients have duplicate tool\n * names.\n */\n async initialize() {\n var _a, e_1, _b, _c;\n if (this.mcpTools.length > 0) {\n return;\n }\n const functionMap = {};\n const mcpTools = [];\n for (const mcpClient of this.mcpClients) {\n try {\n for (var _d = true, _e = (e_1 = void 0, __asyncValues(listAllTools(mcpClient))), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {\n _c = _f.value;\n _d = false;\n const mcpTool = _c;\n mcpTools.push(mcpTool);\n const mcpToolName = mcpTool.name;\n if (functionMap[mcpToolName]) {\n throw new Error(`Duplicate function name ${mcpToolName} found in MCP tools. Please ensure function names are unique.`);\n }\n functionMap[mcpToolName] = mcpClient;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = _e.return)) await _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n this.mcpTools = mcpTools;\n this.functionNameToMcpClient = functionMap;\n }\n async tool() {\n await this.initialize();\n return mcpToolsToGeminiTool(this.mcpTools, this.config);\n }\n async callTool(functionCalls) {\n await this.initialize();\n const functionCallResponseParts = [];\n for (const functionCall of functionCalls) {\n if (functionCall.name in this.functionNameToMcpClient) {\n const mcpClient = this.functionNameToMcpClient[functionCall.name];\n let requestOptions = undefined;\n // TODO: b/424238654 - Add support for finer grained timeout control.\n if (this.config.timeout) {\n requestOptions = {\n timeout: this.config.timeout,\n };\n }\n const callToolResponse = await mcpClient.callTool({\n name: functionCall.name,\n arguments: functionCall.args,\n }, \n // Set the result schema to undefined to allow MCP to rely on the\n // default schema.\n undefined, requestOptions);\n functionCallResponseParts.push({\n functionResponse: {\n name: functionCall.name,\n response: callToolResponse.isError\n ? { error: callToolResponse }\n : callToolResponse,\n },\n });\n }\n }\n return functionCallResponseParts;\n }\n}\nfunction isMcpClient(client) {\n return (client !== null &&\n typeof client === 'object' &&\n 'listTools' in client &&\n typeof client.listTools === 'function');\n}\n/**\n * Creates a McpCallableTool from MCP clients and an optional config.\n *\n * The callable tool can invoke the MCP clients with given function call\n * arguments. (often for automatic function calling).\n * Use the config to modify tool parameters such as behavior.\n *\n * @experimental Built-in MCP support is an experimental feature, may change in future\n * versions.\n */\nfunction mcpToTool(...args) {\n // Set MCP usage for telemetry.\n hasMcpToolUsageFromMcpToTool = true;\n if (args.length === 0) {\n throw new Error('No MCP clients provided');\n }\n const maybeConfig = args[args.length - 1];\n if (isMcpClient(maybeConfig)) {\n return McpCallableTool.create(args, {});\n }\n return McpCallableTool.create(args.slice(0, args.length - 1), maybeConfig);\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Handles incoming messages from the WebSocket.\n *\n * @remarks\n * This function is responsible for parsing incoming messages, transforming them\n * into LiveMusicServerMessage, and then calling the onmessage callback.\n * Note that the first message which is received from the server is a\n * setupComplete message.\n *\n * @param apiClient The ApiClient instance.\n * @param onmessage The user-provided onmessage callback (if any).\n * @param event The MessageEvent from the WebSocket.\n */\nasync function handleWebSocketMessage$1(apiClient, onmessage, event) {\n const serverMessage = new LiveMusicServerMessage();\n let data;\n if (event.data instanceof Blob) {\n data = JSON.parse(await event.data.text());\n }\n else {\n data = JSON.parse(event.data);\n }\n Object.assign(serverMessage, data);\n onmessage(serverMessage);\n}\n/**\n LiveMusic class encapsulates the configuration for live music\n generation via Lyria Live models.\n\n @experimental\n */\nclass LiveMusic {\n constructor(apiClient, auth, webSocketFactory) {\n this.apiClient = apiClient;\n this.auth = auth;\n this.webSocketFactory = webSocketFactory;\n }\n /**\n Establishes a connection to the specified model and returns a\n LiveMusicSession object representing that connection.\n \n @experimental\n \n @remarks\n \n @param params - The parameters for establishing a connection to the model.\n @return A live session.\n \n @example\n ```ts\n let model = 'models/lyria-realtime-exp';\n const session = await ai.live.music.connect({\n model: model,\n callbacks: {\n onmessage: (e: MessageEvent) => {\n console.log('Received message from the server: %s\\n', debug(e.data));\n },\n onerror: (e: ErrorEvent) => {\n console.log('Error occurred: %s\\n', debug(e.error));\n },\n onclose: (e: CloseEvent) => {\n console.log('Connection closed.');\n },\n },\n });\n ```\n */\n async connect(params) {\n var _a, _b;\n if (this.apiClient.isVertexAI()) {\n throw new Error('Live music is not supported for Vertex AI.');\n }\n console.warn('Live music generation is experimental and may change in future versions.');\n const websocketBaseUrl = this.apiClient.getWebsocketBaseUrl();\n const apiVersion = this.apiClient.getApiVersion();\n const headers = mapToHeaders$1(this.apiClient.getDefaultHeaders());\n const apiKey = this.apiClient.getApiKey();\n const url = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.BidiGenerateMusic?key=${apiKey}`;\n let onopenResolve = () => { };\n const onopenPromise = new Promise((resolve) => {\n onopenResolve = resolve;\n });\n const callbacks = params.callbacks;\n const onopenAwaitedCallback = function () {\n onopenResolve({});\n };\n const apiClient = this.apiClient;\n const websocketCallbacks = {\n onopen: onopenAwaitedCallback,\n onmessage: (event) => {\n void handleWebSocketMessage$1(apiClient, callbacks.onmessage, event);\n },\n onerror: (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onerror) !== null && _a !== void 0 ? _a : function (e) {\n },\n onclose: (_b = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onclose) !== null && _b !== void 0 ? _b : function (e) {\n },\n };\n const conn = this.webSocketFactory.create(url, headersToMap$1(headers), websocketCallbacks);\n conn.connect();\n // Wait for the websocket to open before sending requests.\n await onopenPromise;\n const model = tModel(this.apiClient, params.model);\n const setup = { model };\n const clientMessage = { setup };\n conn.send(JSON.stringify(clientMessage));\n return new LiveMusicSession(conn, this.apiClient);\n }\n}\n/**\n Represents a connection to the API.\n\n @experimental\n */\nclass LiveMusicSession {\n constructor(conn, apiClient) {\n this.conn = conn;\n this.apiClient = apiClient;\n }\n /**\n Sets inputs to steer music generation. Updates the session's current\n weighted prompts.\n \n @param params - Contains one property, `weightedPrompts`.\n \n - `weightedPrompts` to send to the model; weights are normalized to\n sum to 1.0.\n \n @experimental\n */\n async setWeightedPrompts(params) {\n if (!params.weightedPrompts ||\n Object.keys(params.weightedPrompts).length === 0) {\n throw new Error('Weighted prompts must be set and contain at least one entry.');\n }\n const clientContent = liveMusicSetWeightedPromptsParametersToMldev(params);\n this.conn.send(JSON.stringify({ clientContent }));\n }\n /**\n Sets a configuration to the model. Updates the session's current\n music generation config.\n \n @param params - Contains one property, `musicGenerationConfig`.\n \n - `musicGenerationConfig` to set in the model. Passing an empty or\n undefined config to the model will reset the config to defaults.\n \n @experimental\n */\n async setMusicGenerationConfig(params) {\n if (!params.musicGenerationConfig) {\n params.musicGenerationConfig = {};\n }\n const setConfigParameters = liveMusicSetConfigParametersToMldev(params);\n this.conn.send(JSON.stringify(setConfigParameters));\n }\n sendPlaybackControl(playbackControl) {\n const clientMessage = { playbackControl };\n this.conn.send(JSON.stringify(clientMessage));\n }\n /**\n * Start the music stream.\n *\n * @experimental\n */\n play() {\n this.sendPlaybackControl(LiveMusicPlaybackControl.PLAY);\n }\n /**\n * Temporarily halt the music stream. Use `play` to resume from the current\n * position.\n *\n * @experimental\n */\n pause() {\n this.sendPlaybackControl(LiveMusicPlaybackControl.PAUSE);\n }\n /**\n * Stop the music stream and reset the state. Retains the current prompts\n * and config.\n *\n * @experimental\n */\n stop() {\n this.sendPlaybackControl(LiveMusicPlaybackControl.STOP);\n }\n /**\n * Resets the context of the music generation without stopping it.\n * Retains the current prompts and config.\n *\n * @experimental\n */\n resetContext() {\n this.sendPlaybackControl(LiveMusicPlaybackControl.RESET_CONTEXT);\n }\n /**\n Terminates the WebSocket connection.\n \n @experimental\n */\n close() {\n this.conn.close();\n }\n}\n// Converts an headers object to a \"map\" object as expected by the WebSocket\n// constructor. We use this as the Auth interface works with Headers objects\n// while the WebSocket constructor takes a map.\nfunction headersToMap$1(headers) {\n const headerMap = {};\n headers.forEach((value, key) => {\n headerMap[key] = value;\n });\n return headerMap;\n}\n// Converts a \"map\" object to a headers object. We use this as the Auth\n// interface works with Headers objects while the API client default headers\n// returns a map.\nfunction mapToHeaders$1(map) {\n const headers = new Headers();\n for (const [key, value] of Object.entries(map)) {\n headers.append(key, value);\n }\n return headers;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst FUNCTION_RESPONSE_REQUIRES_ID = 'FunctionResponse request must have an `id` field from the response of a ToolCall.FunctionalCalls in Google AI.';\n/**\n * Handles incoming messages from the WebSocket.\n *\n * @remarks\n * This function is responsible for parsing incoming messages, transforming them\n * into LiveServerMessages, and then calling the onmessage callback. Note that\n * the first message which is received from the server is a setupComplete\n * message.\n *\n * @param apiClient The ApiClient instance.\n * @param onmessage The user-provided onmessage callback (if any).\n * @param event The MessageEvent from the WebSocket.\n */\nasync function handleWebSocketMessage(apiClient, onmessage, event) {\n const serverMessage = new LiveServerMessage();\n let jsonData;\n if (event.data instanceof Blob) {\n jsonData = await event.data.text();\n }\n else if (event.data instanceof ArrayBuffer) {\n jsonData = new TextDecoder().decode(event.data);\n }\n else {\n jsonData = event.data;\n }\n const data = JSON.parse(jsonData);\n if (apiClient.isVertexAI()) {\n const resp = liveServerMessageFromVertex(data);\n Object.assign(serverMessage, resp);\n }\n else {\n const resp = data;\n Object.assign(serverMessage, resp);\n }\n onmessage(serverMessage);\n}\n/**\n Live class encapsulates the configuration for live interaction with the\n Generative Language API. It embeds ApiClient for general API settings.\n\n @experimental\n */\nclass Live {\n constructor(apiClient, auth, webSocketFactory) {\n this.apiClient = apiClient;\n this.auth = auth;\n this.webSocketFactory = webSocketFactory;\n this.music = new LiveMusic(this.apiClient, this.auth, this.webSocketFactory);\n }\n /**\n Establishes a connection to the specified model with the given\n configuration and returns a Session object representing that connection.\n \n @experimental Built-in MCP support is an experimental feature, may change in\n future versions.\n \n @remarks\n \n @param params - The parameters for establishing a connection to the model.\n @return A live session.\n \n @example\n ```ts\n let model: string;\n if (GOOGLE_GENAI_USE_VERTEXAI) {\n model = 'gemini-2.0-flash-live-preview-04-09';\n } else {\n model = 'gemini-live-2.5-flash-preview';\n }\n const session = await ai.live.connect({\n model: model,\n config: {\n responseModalities: [Modality.AUDIO],\n },\n callbacks: {\n onopen: () => {\n console.log('Connected to the socket.');\n },\n onmessage: (e: MessageEvent) => {\n console.log('Received message from the server: %s\\n', debug(e.data));\n },\n onerror: (e: ErrorEvent) => {\n console.log('Error occurred: %s\\n', debug(e.error));\n },\n onclose: (e: CloseEvent) => {\n console.log('Connection closed.');\n },\n },\n });\n ```\n */\n async connect(params) {\n var _a, _b, _c, _d, _e, _f;\n // TODO: b/404946746 - Support per request HTTP options.\n if (params.config && params.config.httpOptions) {\n throw new Error('The Live module does not support httpOptions at request-level in' +\n ' LiveConnectConfig yet. Please use the client-level httpOptions' +\n ' configuration instead.');\n }\n const websocketBaseUrl = this.apiClient.getWebsocketBaseUrl();\n const apiVersion = this.apiClient.getApiVersion();\n let url;\n const clientHeaders = this.apiClient.getHeaders();\n if (params.config &&\n params.config.tools &&\n hasMcpToolUsage(params.config.tools)) {\n setMcpUsageHeader(clientHeaders);\n }\n const headers = mapToHeaders(clientHeaders);\n if (this.apiClient.isVertexAI()) {\n url = `${websocketBaseUrl}/ws/google.cloud.aiplatform.${apiVersion}.LlmBidiService/BidiGenerateContent`;\n await this.auth.addAuthHeaders(headers);\n }\n else {\n const apiKey = this.apiClient.getApiKey();\n let method = 'BidiGenerateContent';\n let keyName = 'key';\n if (apiKey === null || apiKey === void 0 ? void 0 : apiKey.startsWith('auth_tokens/')) {\n console.warn('Warning: Ephemeral token support is experimental and may change in future versions.');\n if (apiVersion !== 'v1alpha') {\n console.warn(\"Warning: The SDK's ephemeral token support is in v1alpha only. Please use const ai = new GoogleGenAI({apiKey: token.name, httpOptions: { apiVersion: 'v1alpha' }}); before session connection.\");\n }\n method = 'BidiGenerateContentConstrained';\n keyName = 'access_token';\n }\n url = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.${method}?${keyName}=${apiKey}`;\n }\n let onopenResolve = () => { };\n const onopenPromise = new Promise((resolve) => {\n onopenResolve = resolve;\n });\n const callbacks = params.callbacks;\n const onopenAwaitedCallback = function () {\n var _a;\n (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onopen) === null || _a === void 0 ? void 0 : _a.call(callbacks);\n onopenResolve({});\n };\n const apiClient = this.apiClient;\n const websocketCallbacks = {\n onopen: onopenAwaitedCallback,\n onmessage: (event) => {\n void handleWebSocketMessage(apiClient, callbacks.onmessage, event);\n },\n onerror: (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onerror) !== null && _a !== void 0 ? _a : function (e) {\n },\n onclose: (_b = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onclose) !== null && _b !== void 0 ? _b : function (e) {\n },\n };\n const conn = this.webSocketFactory.create(url, headersToMap(headers), websocketCallbacks);\n conn.connect();\n // Wait for the websocket to open before sending requests.\n await onopenPromise;\n let transformedModel = tModel(this.apiClient, params.model);\n if (this.apiClient.isVertexAI() &&\n transformedModel.startsWith('publishers/')) {\n const project = this.apiClient.getProject();\n const location = this.apiClient.getLocation();\n transformedModel =\n `projects/${project}/locations/${location}/` + transformedModel;\n }\n let clientMessage = {};\n if (this.apiClient.isVertexAI() &&\n ((_c = params.config) === null || _c === void 0 ? void 0 : _c.responseModalities) === undefined) {\n // Set default to AUDIO to align with MLDev API.\n if (params.config === undefined) {\n params.config = { responseModalities: [Modality.AUDIO] };\n }\n else {\n params.config.responseModalities = [Modality.AUDIO];\n }\n }\n if ((_d = params.config) === null || _d === void 0 ? void 0 : _d.generationConfig) {\n // Raise deprecation warning for generationConfig.\n console.warn('Setting `LiveConnectConfig.generation_config` is deprecated, please set the fields on `LiveConnectConfig` directly. This will become an error in a future version (not before Q3 2025).');\n }\n const inputTools = (_f = (_e = params.config) === null || _e === void 0 ? void 0 : _e.tools) !== null && _f !== void 0 ? _f : [];\n const convertedTools = [];\n for (const tool of inputTools) {\n if (this.isCallableTool(tool)) {\n const callableTool = tool;\n convertedTools.push(await callableTool.tool());\n }\n else {\n convertedTools.push(tool);\n }\n }\n if (convertedTools.length > 0) {\n params.config.tools = convertedTools;\n }\n const liveConnectParameters = {\n model: transformedModel,\n config: params.config,\n callbacks: params.callbacks,\n };\n if (this.apiClient.isVertexAI()) {\n clientMessage = liveConnectParametersToVertex(this.apiClient, liveConnectParameters);\n }\n else {\n clientMessage = liveConnectParametersToMldev(this.apiClient, liveConnectParameters);\n }\n delete clientMessage['config'];\n conn.send(JSON.stringify(clientMessage));\n return new Session(conn, this.apiClient);\n }\n // TODO: b/416041229 - Abstract this method to a common place.\n isCallableTool(tool) {\n return 'callTool' in tool && typeof tool.callTool === 'function';\n }\n}\nconst defaultLiveSendClientContentParamerters = {\n turnComplete: true,\n};\n/**\n Represents a connection to the API.\n\n @experimental\n */\nclass Session {\n constructor(conn, apiClient) {\n this.conn = conn;\n this.apiClient = apiClient;\n }\n tLiveClientContent(apiClient, params) {\n if (params.turns !== null && params.turns !== undefined) {\n let contents = [];\n try {\n contents = tContents(params.turns);\n if (!apiClient.isVertexAI()) {\n contents = contents.map((item) => contentToMldev$1(item));\n }\n }\n catch (_a) {\n throw new Error(`Failed to parse client content \"turns\", type: '${typeof params.turns}'`);\n }\n return {\n clientContent: { turns: contents, turnComplete: params.turnComplete },\n };\n }\n return {\n clientContent: { turnComplete: params.turnComplete },\n };\n }\n tLiveClienttToolResponse(apiClient, params) {\n let functionResponses = [];\n if (params.functionResponses == null) {\n throw new Error('functionResponses is required.');\n }\n if (!Array.isArray(params.functionResponses)) {\n functionResponses = [params.functionResponses];\n }\n else {\n functionResponses = params.functionResponses;\n }\n if (functionResponses.length === 0) {\n throw new Error('functionResponses is required.');\n }\n for (const functionResponse of functionResponses) {\n if (typeof functionResponse !== 'object' ||\n functionResponse === null ||\n !('name' in functionResponse) ||\n !('response' in functionResponse)) {\n throw new Error(`Could not parse function response, type '${typeof functionResponse}'.`);\n }\n if (!apiClient.isVertexAI() && !('id' in functionResponse)) {\n throw new Error(FUNCTION_RESPONSE_REQUIRES_ID);\n }\n }\n const clientMessage = {\n toolResponse: { functionResponses: functionResponses },\n };\n return clientMessage;\n }\n /**\n Send a message over the established connection.\n \n @param params - Contains two **optional** properties, `turns` and\n `turnComplete`.\n \n - `turns` will be converted to a `Content[]`\n - `turnComplete: true` [default] indicates that you are done sending\n content and expect a response. If `turnComplete: false`, the server\n will wait for additional messages before starting generation.\n \n @experimental\n \n @remarks\n There are two ways to send messages to the live API:\n `sendClientContent` and `sendRealtimeInput`.\n \n `sendClientContent` messages are added to the model context **in order**.\n Having a conversation using `sendClientContent` messages is roughly\n equivalent to using the `Chat.sendMessageStream`, except that the state of\n the `chat` history is stored on the API server instead of locally.\n \n Because of `sendClientContent`'s order guarantee, the model cannot respons\n as quickly to `sendClientContent` messages as to `sendRealtimeInput`\n messages. This makes the biggest difference when sending objects that have\n significant preprocessing time (typically images).\n \n The `sendClientContent` message sends a `Content[]`\n which has more options than the `Blob` sent by `sendRealtimeInput`.\n \n So the main use-cases for `sendClientContent` over `sendRealtimeInput` are:\n \n - Sending anything that can't be represented as a `Blob` (text,\n `sendClientContent({turns=\"Hello?\"}`)).\n - Managing turns when not using audio input and voice activity detection.\n (`sendClientContent({turnComplete:true})` or the short form\n `sendClientContent()`)\n - Prefilling a conversation context\n ```\n sendClientContent({\n turns: [\n Content({role:user, parts:...}),\n Content({role:user, parts:...}),\n ...\n ]\n })\n ```\n @experimental\n */\n sendClientContent(params) {\n params = Object.assign(Object.assign({}, defaultLiveSendClientContentParamerters), params);\n const clientMessage = this.tLiveClientContent(this.apiClient, params);\n this.conn.send(JSON.stringify(clientMessage));\n }\n /**\n Send a realtime message over the established connection.\n \n @param params - Contains one property, `media`.\n \n - `media` will be converted to a `Blob`\n \n @experimental\n \n @remarks\n Use `sendRealtimeInput` for realtime audio chunks and video frames (images).\n \n With `sendRealtimeInput` the api will respond to audio automatically\n based on voice activity detection (VAD).\n \n `sendRealtimeInput` is optimized for responsivness at the expense of\n deterministic ordering guarantees. Audio and video tokens are to the\n context when they become available.\n \n Note: The Call signature expects a `Blob` object, but only a subset\n of audio and image mimetypes are allowed.\n */\n sendRealtimeInput(params) {\n let clientMessage = {};\n if (this.apiClient.isVertexAI()) {\n clientMessage = {\n 'realtimeInput': liveSendRealtimeInputParametersToVertex(params),\n };\n }\n else {\n clientMessage = {\n 'realtimeInput': liveSendRealtimeInputParametersToMldev(params),\n };\n }\n this.conn.send(JSON.stringify(clientMessage));\n }\n /**\n Send a function response message over the established connection.\n \n @param params - Contains property `functionResponses`.\n \n - `functionResponses` will be converted to a `functionResponses[]`\n \n @remarks\n Use `sendFunctionResponse` to reply to `LiveServerToolCall` from the server.\n \n Use {@link types.LiveConnectConfig#tools} to configure the callable functions.\n \n @experimental\n */\n sendToolResponse(params) {\n if (params.functionResponses == null) {\n throw new Error('Tool response parameters are required.');\n }\n const clientMessage = this.tLiveClienttToolResponse(this.apiClient, params);\n this.conn.send(JSON.stringify(clientMessage));\n }\n /**\n Terminates the WebSocket connection.\n \n @experimental\n \n @example\n ```ts\n let model: string;\n if (GOOGLE_GENAI_USE_VERTEXAI) {\n model = 'gemini-2.0-flash-live-preview-04-09';\n } else {\n model = 'gemini-live-2.5-flash-preview';\n }\n const session = await ai.live.connect({\n model: model,\n config: {\n responseModalities: [Modality.AUDIO],\n }\n });\n \n session.close();\n ```\n */\n close() {\n this.conn.close();\n }\n}\n// Converts an headers object to a \"map\" object as expected by the WebSocket\n// constructor. We use this as the Auth interface works with Headers objects\n// while the WebSocket constructor takes a map.\nfunction headersToMap(headers) {\n const headerMap = {};\n headers.forEach((value, key) => {\n headerMap[key] = value;\n });\n return headerMap;\n}\n// Converts a \"map\" object to a headers object. We use this as the Auth\n// interface works with Headers objects while the API client default headers\n// returns a map.\nfunction mapToHeaders(map) {\n const headers = new Headers();\n for (const [key, value] of Object.entries(map)) {\n headers.append(key, value);\n }\n return headers;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst DEFAULT_MAX_REMOTE_CALLS = 10;\n/** Returns whether automatic function calling is disabled. */\nfunction shouldDisableAfc(config) {\n var _a, _b, _c;\n if ((_a = config === null || config === void 0 ? void 0 : config.automaticFunctionCalling) === null || _a === void 0 ? void 0 : _a.disable) {\n return true;\n }\n let callableToolsPresent = false;\n for (const tool of (_b = config === null || config === void 0 ? void 0 : config.tools) !== null && _b !== void 0 ? _b : []) {\n if (isCallableTool(tool)) {\n callableToolsPresent = true;\n break;\n }\n }\n if (!callableToolsPresent) {\n return true;\n }\n const maxCalls = (_c = config === null || config === void 0 ? void 0 : config.automaticFunctionCalling) === null || _c === void 0 ? void 0 : _c.maximumRemoteCalls;\n if ((maxCalls && (maxCalls < 0 || !Number.isInteger(maxCalls))) ||\n maxCalls == 0) {\n console.warn('Invalid maximumRemoteCalls value provided for automatic function calling. Disabled automatic function calling. Please provide a valid integer value greater than 0. maximumRemoteCalls provided:', maxCalls);\n return true;\n }\n return false;\n}\nfunction isCallableTool(tool) {\n return 'callTool' in tool && typeof tool.callTool === 'function';\n}\n// Checks whether the list of tools contains any CallableTools. Will return true\n// if there is at least one CallableTool.\nfunction hasCallableTools(params) {\n var _a, _b, _c;\n return (_c = (_b = (_a = params.config) === null || _a === void 0 ? void 0 : _a.tools) === null || _b === void 0 ? void 0 : _b.some((tool) => isCallableTool(tool))) !== null && _c !== void 0 ? _c : false;\n}\n// Checks whether the list of tools contains any non-callable tools. Will return\n// true if there is at least one non-Callable tool.\nfunction hasNonCallableTools(params) {\n var _a, _b, _c;\n return (_c = (_b = (_a = params.config) === null || _a === void 0 ? void 0 : _a.tools) === null || _b === void 0 ? void 0 : _b.some((tool) => !isCallableTool(tool))) !== null && _c !== void 0 ? _c : false;\n}\n/**\n * Returns whether to append automatic function calling history to the\n * response.\n */\nfunction shouldAppendAfcHistory(config) {\n var _a;\n return !((_a = config === null || config === void 0 ? void 0 : config.automaticFunctionCalling) === null || _a === void 0 ? void 0 : _a.ignoreCallHistory);\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Models extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n /**\n * Makes an API request to generate content with a given model.\n *\n * For the `model` parameter, supported formats for Vertex AI API include:\n * - The Gemini model ID, for example: 'gemini-2.0-flash'\n * - The full resource name starts with 'projects/', for example:\n * 'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'\n * - The partial resource name with 'publishers/', for example:\n * 'publishers/google/models/gemini-2.0-flash' or\n * 'publishers/meta/models/llama-3.1-405b-instruct-maas'\n * - `/` separated publisher and model name, for example:\n * 'google/gemini-2.0-flash' or 'meta/llama-3.1-405b-instruct-maas'\n *\n * For the `model` parameter, supported formats for Gemini API include:\n * - The Gemini model ID, for example: 'gemini-2.0-flash'\n * - The model name starts with 'models/', for example:\n * 'models/gemini-2.0-flash'\n * - For tuned models, the model name starts with 'tunedModels/',\n * for example:\n * 'tunedModels/1234567890123456789'\n *\n * Some models support multimodal input and output.\n *\n * @param params - The parameters for generating content.\n * @return The response from generating content.\n *\n * @example\n * ```ts\n * const response = await ai.models.generateContent({\n * model: 'gemini-2.0-flash',\n * contents: 'why is the sky blue?',\n * config: {\n * candidateCount: 2,\n * }\n * });\n * console.log(response);\n * ```\n */\n this.generateContent = async (params) => {\n var _a, _b, _c, _d, _e;\n const transformedParams = await this.processParamsMaybeAddMcpUsage(params);\n this.maybeMoveToResponseJsonSchem(params);\n if (!hasCallableTools(params) || shouldDisableAfc(params.config)) {\n return await this.generateContentInternal(transformedParams);\n }\n if (hasNonCallableTools(params)) {\n throw new Error('Automatic function calling with CallableTools and Tools is not yet supported.');\n }\n let response;\n let functionResponseContent;\n const automaticFunctionCallingHistory = tContents(transformedParams.contents);\n const maxRemoteCalls = (_c = (_b = (_a = transformedParams.config) === null || _a === void 0 ? void 0 : _a.automaticFunctionCalling) === null || _b === void 0 ? void 0 : _b.maximumRemoteCalls) !== null && _c !== void 0 ? _c : DEFAULT_MAX_REMOTE_CALLS;\n let remoteCalls = 0;\n while (remoteCalls < maxRemoteCalls) {\n response = await this.generateContentInternal(transformedParams);\n if (!response.functionCalls || response.functionCalls.length === 0) {\n break;\n }\n const responseContent = response.candidates[0].content;\n const functionResponseParts = [];\n for (const tool of (_e = (_d = params.config) === null || _d === void 0 ? void 0 : _d.tools) !== null && _e !== void 0 ? _e : []) {\n if (isCallableTool(tool)) {\n const callableTool = tool;\n const parts = await callableTool.callTool(response.functionCalls);\n functionResponseParts.push(...parts);\n }\n }\n remoteCalls++;\n functionResponseContent = {\n role: 'user',\n parts: functionResponseParts,\n };\n transformedParams.contents = tContents(transformedParams.contents);\n transformedParams.contents.push(responseContent);\n transformedParams.contents.push(functionResponseContent);\n if (shouldAppendAfcHistory(transformedParams.config)) {\n automaticFunctionCallingHistory.push(responseContent);\n automaticFunctionCallingHistory.push(functionResponseContent);\n }\n }\n if (shouldAppendAfcHistory(transformedParams.config)) {\n response.automaticFunctionCallingHistory =\n automaticFunctionCallingHistory;\n }\n return response;\n };\n /**\n * Makes an API request to generate content with a given model and yields the\n * response in chunks.\n *\n * For the `model` parameter, supported formats for Vertex AI API include:\n * - The Gemini model ID, for example: 'gemini-2.0-flash'\n * - The full resource name starts with 'projects/', for example:\n * 'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'\n * - The partial resource name with 'publishers/', for example:\n * 'publishers/google/models/gemini-2.0-flash' or\n * 'publishers/meta/models/llama-3.1-405b-instruct-maas'\n * - `/` separated publisher and model name, for example:\n * 'google/gemini-2.0-flash' or 'meta/llama-3.1-405b-instruct-maas'\n *\n * For the `model` parameter, supported formats for Gemini API include:\n * - The Gemini model ID, for example: 'gemini-2.0-flash'\n * - The model name starts with 'models/', for example:\n * 'models/gemini-2.0-flash'\n * - For tuned models, the model name starts with 'tunedModels/',\n * for example:\n * 'tunedModels/1234567890123456789'\n *\n * Some models support multimodal input and output.\n *\n * @param params - The parameters for generating content with streaming response.\n * @return The response from generating content.\n *\n * @example\n * ```ts\n * const response = await ai.models.generateContentStream({\n * model: 'gemini-2.0-flash',\n * contents: 'why is the sky blue?',\n * config: {\n * maxOutputTokens: 200,\n * }\n * });\n * for await (const chunk of response) {\n * console.log(chunk);\n * }\n * ```\n */\n this.generateContentStream = async (params) => {\n this.maybeMoveToResponseJsonSchem(params);\n if (shouldDisableAfc(params.config)) {\n const transformedParams = await this.processParamsMaybeAddMcpUsage(params);\n return await this.generateContentStreamInternal(transformedParams);\n }\n else {\n return await this.processAfcStream(params);\n }\n };\n /**\n * Generates an image based on a text description and configuration.\n *\n * @param params - The parameters for generating images.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await client.models.generateImages({\n * model: 'imagen-3.0-generate-002',\n * prompt: 'Robot holding a red skateboard',\n * config: {\n * numberOfImages: 1,\n * includeRaiReason: true,\n * },\n * });\n * console.log(response?.generatedImages?.[0]?.image?.imageBytes);\n * ```\n */\n this.generateImages = async (params) => {\n return await this.generateImagesInternal(params).then((apiResponse) => {\n var _a;\n let positivePromptSafetyAttributes;\n const generatedImages = [];\n if (apiResponse === null || apiResponse === void 0 ? void 0 : apiResponse.generatedImages) {\n for (const generatedImage of apiResponse.generatedImages) {\n if (generatedImage &&\n (generatedImage === null || generatedImage === void 0 ? void 0 : generatedImage.safetyAttributes) &&\n ((_a = generatedImage === null || generatedImage === void 0 ? void 0 : generatedImage.safetyAttributes) === null || _a === void 0 ? void 0 : _a.contentType) === 'Positive Prompt') {\n positivePromptSafetyAttributes = generatedImage === null || generatedImage === void 0 ? void 0 : generatedImage.safetyAttributes;\n }\n else {\n generatedImages.push(generatedImage);\n }\n }\n }\n let response;\n if (positivePromptSafetyAttributes) {\n response = {\n generatedImages: generatedImages,\n positivePromptSafetyAttributes: positivePromptSafetyAttributes,\n sdkHttpResponse: apiResponse.sdkHttpResponse,\n };\n }\n else {\n response = {\n generatedImages: generatedImages,\n sdkHttpResponse: apiResponse.sdkHttpResponse,\n };\n }\n return response;\n });\n };\n this.list = async (params) => {\n var _a;\n const defaultConfig = {\n queryBase: true,\n };\n const actualConfig = Object.assign(Object.assign({}, defaultConfig), params === null || params === void 0 ? void 0 : params.config);\n const actualParams = {\n config: actualConfig,\n };\n if (this.apiClient.isVertexAI()) {\n if (!actualParams.config.queryBase) {\n if ((_a = actualParams.config) === null || _a === void 0 ? void 0 : _a.filter) {\n throw new Error('Filtering tuned models list for Vertex AI is not currently supported');\n }\n else {\n actualParams.config.filter = 'labels.tune-type:*';\n }\n }\n }\n return new Pager(PagedItem.PAGED_ITEM_MODELS, (x) => this.listInternal(x), await this.listInternal(actualParams), actualParams);\n };\n /**\n * Edits an image based on a prompt, list of reference images, and configuration.\n *\n * @param params - The parameters for editing an image.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await client.models.editImage({\n * model: 'imagen-3.0-capability-001',\n * prompt: 'Generate an image containing a mug with the product logo [1] visible on the side of the mug.',\n * referenceImages: [subjectReferenceImage]\n * config: {\n * numberOfImages: 1,\n * includeRaiReason: true,\n * },\n * });\n * console.log(response?.generatedImages?.[0]?.image?.imageBytes);\n * ```\n */\n this.editImage = async (params) => {\n const paramsInternal = {\n model: params.model,\n prompt: params.prompt,\n referenceImages: [],\n config: params.config,\n };\n if (params.referenceImages) {\n if (params.referenceImages) {\n paramsInternal.referenceImages = params.referenceImages.map((img) => img.toReferenceImageAPI());\n }\n }\n return await this.editImageInternal(paramsInternal);\n };\n /**\n * Upscales an image based on an image, upscale factor, and configuration.\n * Only supported in Vertex AI currently.\n *\n * @param params - The parameters for upscaling an image.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await client.models.upscaleImage({\n * model: 'imagen-3.0-generate-002',\n * image: image,\n * upscaleFactor: 'x2',\n * config: {\n * includeRaiReason: true,\n * },\n * });\n * console.log(response?.generatedImages?.[0]?.image?.imageBytes);\n * ```\n */\n this.upscaleImage = async (params) => {\n let apiConfig = {\n numberOfImages: 1,\n mode: 'upscale',\n };\n if (params.config) {\n apiConfig = Object.assign(Object.assign({}, apiConfig), params.config);\n }\n const apiParams = {\n model: params.model,\n image: params.image,\n upscaleFactor: params.upscaleFactor,\n config: apiConfig,\n };\n return await this.upscaleImageInternal(apiParams);\n };\n /**\n * Generates videos based on a text description and configuration.\n *\n * @param params - The parameters for generating videos.\n * @return A Promise which allows you to track the progress and eventually retrieve the generated videos using the operations.get method.\n *\n * @example\n * ```ts\n * const operation = await ai.models.generateVideos({\n * model: 'veo-2.0-generate-001',\n * source: {\n * prompt: 'A neon hologram of a cat driving at top speed',\n * },\n * config: {\n * numberOfVideos: 1\n * });\n *\n * while (!operation.done) {\n * await new Promise(resolve => setTimeout(resolve, 10000));\n * operation = await ai.operations.getVideosOperation({operation: operation});\n * }\n *\n * console.log(operation.response?.generatedVideos?.[0]?.video?.uri);\n * ```\n */\n this.generateVideos = async (params) => {\n var _a, _b, _c, _d, _e, _f;\n if ((params.prompt || params.image || params.video) && params.source) {\n throw new Error('Source and prompt/image/video are mutually exclusive. Please only use source.');\n }\n // Gemini API does not support video bytes.\n if (!this.apiClient.isVertexAI()) {\n if (((_a = params.video) === null || _a === void 0 ? void 0 : _a.uri) && ((_b = params.video) === null || _b === void 0 ? void 0 : _b.videoBytes)) {\n params.video = {\n uri: params.video.uri,\n mimeType: params.video.mimeType,\n };\n }\n else if (((_d = (_c = params.source) === null || _c === void 0 ? void 0 : _c.video) === null || _d === void 0 ? void 0 : _d.uri) &&\n ((_f = (_e = params.source) === null || _e === void 0 ? void 0 : _e.video) === null || _f === void 0 ? void 0 : _f.videoBytes)) {\n params.source.video = {\n uri: params.source.video.uri,\n mimeType: params.source.video.mimeType,\n };\n }\n }\n return await this.generateVideosInternal(params);\n };\n }\n /**\n * This logic is needed for GenerateContentConfig only.\n * Previously we made GenerateContentConfig.responseSchema field to accept\n * unknown. Since v1.9.0, we switch to use backend JSON schema support.\n * To maintain backward compatibility, we move the data that was treated as\n * JSON schema from the responseSchema field to the responseJsonSchema field.\n */\n maybeMoveToResponseJsonSchem(params) {\n if (params.config && params.config.responseSchema) {\n if (!params.config.responseJsonSchema) {\n if (Object.keys(params.config.responseSchema).includes('$schema')) {\n params.config.responseJsonSchema = params.config.responseSchema;\n delete params.config.responseSchema;\n }\n }\n }\n return;\n }\n /**\n * Transforms the CallableTools in the parameters to be simply Tools, it\n * copies the params into a new object and replaces the tools, it does not\n * modify the original params. Also sets the MCP usage header if there are\n * MCP tools in the parameters.\n */\n async processParamsMaybeAddMcpUsage(params) {\n var _a, _b, _c;\n const tools = (_a = params.config) === null || _a === void 0 ? void 0 : _a.tools;\n if (!tools) {\n return params;\n }\n const transformedTools = await Promise.all(tools.map(async (tool) => {\n if (isCallableTool(tool)) {\n const callableTool = tool;\n return await callableTool.tool();\n }\n return tool;\n }));\n const newParams = {\n model: params.model,\n contents: params.contents,\n config: Object.assign(Object.assign({}, params.config), { tools: transformedTools }),\n };\n newParams.config.tools = transformedTools;\n if (params.config &&\n params.config.tools &&\n hasMcpToolUsage(params.config.tools)) {\n const headers = (_c = (_b = params.config.httpOptions) === null || _b === void 0 ? void 0 : _b.headers) !== null && _c !== void 0 ? _c : {};\n let newHeaders = Object.assign({}, headers);\n if (Object.keys(newHeaders).length === 0) {\n newHeaders = this.apiClient.getDefaultHeaders();\n }\n setMcpUsageHeader(newHeaders);\n newParams.config.httpOptions = Object.assign(Object.assign({}, params.config.httpOptions), { headers: newHeaders });\n }\n return newParams;\n }\n async initAfcToolsMap(params) {\n var _a, _b, _c;\n const afcTools = new Map();\n for (const tool of (_b = (_a = params.config) === null || _a === void 0 ? void 0 : _a.tools) !== null && _b !== void 0 ? _b : []) {\n if (isCallableTool(tool)) {\n const callableTool = tool;\n const toolDeclaration = await callableTool.tool();\n for (const declaration of (_c = toolDeclaration.functionDeclarations) !== null && _c !== void 0 ? _c : []) {\n if (!declaration.name) {\n throw new Error('Function declaration name is required.');\n }\n if (afcTools.has(declaration.name)) {\n throw new Error(`Duplicate tool declaration name: ${declaration.name}`);\n }\n afcTools.set(declaration.name, callableTool);\n }\n }\n }\n return afcTools;\n }\n async processAfcStream(params) {\n var _a, _b, _c;\n const maxRemoteCalls = (_c = (_b = (_a = params.config) === null || _a === void 0 ? void 0 : _a.automaticFunctionCalling) === null || _b === void 0 ? void 0 : _b.maximumRemoteCalls) !== null && _c !== void 0 ? _c : DEFAULT_MAX_REMOTE_CALLS;\n let wereFunctionsCalled = false;\n let remoteCallCount = 0;\n const afcToolsMap = await this.initAfcToolsMap(params);\n return (function (models, afcTools, params) {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* () {\n var _c, e_1, _d, _e;\n while (remoteCallCount < maxRemoteCalls) {\n if (wereFunctionsCalled) {\n remoteCallCount++;\n wereFunctionsCalled = false;\n }\n const transformedParams = yield __await(models.processParamsMaybeAddMcpUsage(params));\n const response = yield __await(models.generateContentStreamInternal(transformedParams));\n const functionResponses = [];\n const responseContents = [];\n try {\n for (var _f = true, response_1 = (e_1 = void 0, __asyncValues(response)), response_1_1; response_1_1 = yield __await(response_1.next()), _c = response_1_1.done, !_c; _f = true) {\n _e = response_1_1.value;\n _f = false;\n const chunk = _e;\n yield yield __await(chunk);\n if (chunk.candidates && ((_a = chunk.candidates[0]) === null || _a === void 0 ? void 0 : _a.content)) {\n responseContents.push(chunk.candidates[0].content);\n for (const part of (_b = chunk.candidates[0].content.parts) !== null && _b !== void 0 ? _b : []) {\n if (remoteCallCount < maxRemoteCalls && part.functionCall) {\n if (!part.functionCall.name) {\n throw new Error('Function call name was not returned by the model.');\n }\n if (!afcTools.has(part.functionCall.name)) {\n throw new Error(`Automatic function calling was requested, but not all the tools the model used implement the CallableTool interface. Available tools: ${afcTools.keys()}, mising tool: ${part.functionCall.name}`);\n }\n else {\n const responseParts = yield __await(afcTools\n .get(part.functionCall.name)\n .callTool([part.functionCall]));\n functionResponses.push(...responseParts);\n }\n }\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_c && (_d = response_1.return)) yield __await(_d.call(response_1));\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (functionResponses.length > 0) {\n wereFunctionsCalled = true;\n const typedResponseChunk = new GenerateContentResponse();\n typedResponseChunk.candidates = [\n {\n content: {\n role: 'user',\n parts: functionResponses,\n },\n },\n ];\n yield yield __await(typedResponseChunk);\n const newContents = [];\n newContents.push(...responseContents);\n newContents.push({\n role: 'user',\n parts: functionResponses,\n });\n const updatedContents = tContents(params.contents).concat(newContents);\n params.contents = updatedContents;\n }\n else {\n break;\n }\n }\n });\n })(this, afcToolsMap, params);\n }\n async generateContentInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = generateContentParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:generateContent', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = generateContentResponseFromVertex(apiResponse);\n const typedResp = new GenerateContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = generateContentParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:generateContent', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = generateContentResponseFromMldev(apiResponse);\n const typedResp = new GenerateContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n async generateContentStreamInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = generateContentParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:streamGenerateContent?alt=sse', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n const apiClient = this.apiClient;\n response = apiClient.requestStream({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n });\n return response.then(function (apiResponse) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, apiResponse_1 = __asyncValues(apiResponse), apiResponse_1_1; apiResponse_1_1 = yield __await(apiResponse_1.next()), _a = apiResponse_1_1.done, !_a; _d = true) {\n _c = apiResponse_1_1.value;\n _d = false;\n const chunk = _c;\n const resp = generateContentResponseFromVertex((yield __await(chunk.json())));\n resp['sdkHttpResponse'] = {\n headers: chunk.headers,\n };\n const typedResp = new GenerateContentResponse();\n Object.assign(typedResp, resp);\n yield yield __await(typedResp);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = apiResponse_1.return)) yield __await(_b.call(apiResponse_1));\n }\n finally { if (e_2) throw e_2.error; }\n }\n });\n });\n }\n else {\n const body = generateContentParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:streamGenerateContent?alt=sse', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n const apiClient = this.apiClient;\n response = apiClient.requestStream({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n });\n return response.then(function (apiResponse) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n try {\n for (var _d = true, apiResponse_2 = __asyncValues(apiResponse), apiResponse_2_1; apiResponse_2_1 = yield __await(apiResponse_2.next()), _a = apiResponse_2_1.done, !_a; _d = true) {\n _c = apiResponse_2_1.value;\n _d = false;\n const chunk = _c;\n const resp = generateContentResponseFromMldev((yield __await(chunk.json())));\n resp['sdkHttpResponse'] = {\n headers: chunk.headers,\n };\n const typedResp = new GenerateContentResponse();\n Object.assign(typedResp, resp);\n yield yield __await(typedResp);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = apiResponse_2.return)) yield __await(_b.call(apiResponse_2));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n });\n }\n }\n /**\n * Calculates embeddings for the given contents. Only text is supported.\n *\n * @param params - The parameters for embedding contents.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.embedContent({\n * model: 'text-embedding-004',\n * contents: [\n * 'What is your name?',\n * 'What is your favorite color?',\n * ],\n * config: {\n * outputDimensionality: 64,\n * },\n * });\n * console.log(response);\n * ```\n */\n async embedContent(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = embedContentParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = embedContentResponseFromVertex(apiResponse);\n const typedResp = new EmbedContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = embedContentParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:batchEmbedContents', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = embedContentResponseFromMldev(apiResponse);\n const typedResp = new EmbedContentResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Private method for generating images.\n */\n async generateImagesInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = generateImagesParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = generateImagesResponseFromVertex(apiResponse);\n const typedResp = new GenerateImagesResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = generateImagesParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = generateImagesResponseFromMldev(apiResponse);\n const typedResp = new GenerateImagesResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Private method for editing an image.\n */\n async editImageInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = editImageParametersInternalToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = editImageResponseFromVertex(apiResponse);\n const typedResp = new EditImageResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n /**\n * Private method for upscaling an image.\n */\n async upscaleImageInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = upscaleImageAPIParametersInternalToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = upscaleImageResponseFromVertex(apiResponse);\n const typedResp = new UpscaleImageResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n /**\n * Recontextualizes an image.\n *\n * There are two types of recontextualization currently supported:\n * 1) Imagen Product Recontext - Generate images of products in new scenes\n * and contexts.\n * 2) Virtual Try-On: Generate images of persons modeling fashion products.\n *\n * @param params - The parameters for recontextualizing an image.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response1 = await ai.models.recontextImage({\n * model: 'imagen-product-recontext-preview-06-30',\n * source: {\n * prompt: 'In a modern kitchen setting.',\n * productImages: [productImage],\n * },\n * config: {\n * numberOfImages: 1,\n * },\n * });\n * console.log(response1?.generatedImages?.[0]?.image?.imageBytes);\n *\n * const response2 = await ai.models.recontextImage({\n * model: 'virtual-try-on-preview-08-04',\n * source: {\n * personImage: personImage,\n * productImages: [productImage],\n * },\n * config: {\n * numberOfImages: 1,\n * },\n * });\n * console.log(response2?.generatedImages?.[0]?.image?.imageBytes);\n * ```\n */\n async recontextImage(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = recontextImageParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = recontextImageResponseFromVertex(apiResponse);\n const typedResp = new RecontextImageResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n /**\n * Segments an image, creating a mask of a specified area.\n *\n * @param params - The parameters for segmenting an image.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.segmentImage({\n * model: 'image-segmentation-001',\n * source: {\n * image: image,\n * },\n * config: {\n * mode: 'foreground',\n * },\n * });\n * console.log(response?.generatedMasks?.[0]?.mask?.imageBytes);\n * ```\n */\n async segmentImage(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = segmentImageParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:predict', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = segmentImageResponseFromVertex(apiResponse);\n const typedResp = new SegmentImageResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n /**\n * Fetches information about a model by name.\n *\n * @example\n * ```ts\n * const modelInfo = await ai.models.get({model: 'gemini-2.0-flash'});\n * ```\n */\n async get(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = getModelParametersToVertex(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = modelFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = getModelParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = modelFromMldev(apiResponse);\n return resp;\n });\n }\n }\n async listInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = listModelsParametersToVertex(this.apiClient, params);\n path = formatMap('{models_url}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listModelsResponseFromVertex(apiResponse);\n const typedResp = new ListModelsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = listModelsParametersToMldev(this.apiClient, params);\n path = formatMap('{models_url}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listModelsResponseFromMldev(apiResponse);\n const typedResp = new ListModelsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Updates a tuned model by its name.\n *\n * @param params - The parameters for updating the model.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.update({\n * model: 'tuned-model-name',\n * config: {\n * displayName: 'New display name',\n * description: 'New description',\n * },\n * });\n * ```\n */\n async update(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = updateModelParametersToVertex(this.apiClient, params);\n path = formatMap('{model}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'PATCH',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = modelFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = updateModelParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'PATCH',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = modelFromMldev(apiResponse);\n return resp;\n });\n }\n }\n /**\n * Deletes a tuned model by its name.\n *\n * @param params - The parameters for deleting the model.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.delete({model: 'tuned-model-name'});\n * ```\n */\n async delete(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = deleteModelParametersToVertex(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteModelResponseFromVertex(apiResponse);\n const typedResp = new DeleteModelResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = deleteModelParametersToMldev(this.apiClient, params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'DELETE',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = deleteModelResponseFromMldev(apiResponse);\n const typedResp = new DeleteModelResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Counts the number of tokens in the given contents. Multimodal input is\n * supported for Gemini models.\n *\n * @param params - The parameters for counting tokens.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.countTokens({\n * model: 'gemini-2.0-flash',\n * contents: 'The quick brown fox jumps over the lazy dog.'\n * });\n * console.log(response);\n * ```\n */\n async countTokens(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = countTokensParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:countTokens', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = countTokensResponseFromVertex(apiResponse);\n const typedResp = new CountTokensResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = countTokensParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:countTokens', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = countTokensResponseFromMldev(apiResponse);\n const typedResp = new CountTokensResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Given a list of contents, returns a corresponding TokensInfo containing\n * the list of tokens and list of token ids.\n *\n * This method is not supported by the Gemini Developer API.\n *\n * @param params - The parameters for computing tokens.\n * @return The response from the API.\n *\n * @example\n * ```ts\n * const response = await ai.models.computeTokens({\n * model: 'gemini-2.0-flash',\n * contents: 'What is your name?'\n * });\n * console.log(response);\n * ```\n */\n async computeTokens(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = computeTokensParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:computeTokens', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = computeTokensResponseFromVertex(apiResponse);\n const typedResp = new ComputeTokensResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n /**\n * Private method for generating videos.\n */\n async generateVideosInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = generateVideosParametersToVertex(this.apiClient, params);\n path = formatMap('{model}:predictLongRunning', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = generateVideosOperationFromVertex(apiResponse);\n const typedResp = new GenerateVideosOperation();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = generateVideosParametersToMldev(this.apiClient, params);\n path = formatMap('{model}:predictLongRunning', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((apiResponse) => {\n const resp = generateVideosOperationFromMldev(apiResponse);\n const typedResp = new GenerateVideosOperation();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Operations extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n }\n /**\n * Gets the status of a long-running operation.\n *\n * @param parameters The parameters for the get operation request.\n * @return The updated Operation object, with the latest status or result.\n */\n async getVideosOperation(parameters) {\n const operation = parameters.operation;\n const config = parameters.config;\n if (operation.name === undefined || operation.name === '') {\n throw new Error('Operation name is required.');\n }\n if (this.apiClient.isVertexAI()) {\n const resourceName = operation.name.split('/operations/')[0];\n let httpOptions = undefined;\n if (config && 'httpOptions' in config) {\n httpOptions = config.httpOptions;\n }\n const rawOperation = await this.fetchPredictVideosOperationInternal({\n operationName: operation.name,\n resourceName: resourceName,\n config: { httpOptions: httpOptions },\n });\n return operation._fromAPIResponse({\n apiResponse: rawOperation,\n isVertexAI: true,\n });\n }\n else {\n const rawOperation = await this.getVideosOperationInternal({\n operationName: operation.name,\n config: config,\n });\n return operation._fromAPIResponse({\n apiResponse: rawOperation,\n isVertexAI: false,\n });\n }\n }\n /**\n * Gets the status of a long-running operation.\n *\n * @param parameters The parameters for the get operation request.\n * @return The updated Operation object, with the latest status or result.\n */\n async get(parameters) {\n const operation = parameters.operation;\n const config = parameters.config;\n if (operation.name === undefined || operation.name === '') {\n throw new Error('Operation name is required.');\n }\n if (this.apiClient.isVertexAI()) {\n const resourceName = operation.name.split('/operations/')[0];\n let httpOptions = undefined;\n if (config && 'httpOptions' in config) {\n httpOptions = config.httpOptions;\n }\n const rawOperation = await this.fetchPredictVideosOperationInternal({\n operationName: operation.name,\n resourceName: resourceName,\n config: { httpOptions: httpOptions },\n });\n return operation._fromAPIResponse({\n apiResponse: rawOperation,\n isVertexAI: true,\n });\n }\n else {\n const rawOperation = await this.getVideosOperationInternal({\n operationName: operation.name,\n config: config,\n });\n return operation._fromAPIResponse({\n apiResponse: rawOperation,\n isVertexAI: false,\n });\n }\n }\n async getVideosOperationInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = getOperationParametersToVertex(params);\n path = formatMap('{operationName}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response;\n }\n else {\n const body = getOperationParametersToMldev(params);\n path = formatMap('{operationName}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response;\n }\n }\n async fetchPredictVideosOperationInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = fetchPredictOperationParametersToVertex(params);\n path = formatMap('{resourceName}:fetchPredictOperation', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response;\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nfunction blobToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromData = getValueByPath(fromObject, ['data']);\n if (fromData != null) {\n setValueByPath(toObject, ['data'], fromData);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction contentToMldev(fromObject) {\n const toObject = {};\n const fromParts = getValueByPath(fromObject, ['parts']);\n if (fromParts != null) {\n let transformedList = fromParts;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return partToMldev(item);\n });\n }\n setValueByPath(toObject, ['parts'], transformedList);\n }\n const fromRole = getValueByPath(fromObject, ['role']);\n if (fromRole != null) {\n setValueByPath(toObject, ['role'], fromRole);\n }\n return toObject;\n}\nfunction createAuthTokenConfigToMldev(apiClient, fromObject, parentObject) {\n const toObject = {};\n const fromExpireTime = getValueByPath(fromObject, ['expireTime']);\n if (parentObject !== undefined && fromExpireTime != null) {\n setValueByPath(parentObject, ['expireTime'], fromExpireTime);\n }\n const fromNewSessionExpireTime = getValueByPath(fromObject, [\n 'newSessionExpireTime',\n ]);\n if (parentObject !== undefined && fromNewSessionExpireTime != null) {\n setValueByPath(parentObject, ['newSessionExpireTime'], fromNewSessionExpireTime);\n }\n const fromUses = getValueByPath(fromObject, ['uses']);\n if (parentObject !== undefined && fromUses != null) {\n setValueByPath(parentObject, ['uses'], fromUses);\n }\n const fromLiveConnectConstraints = getValueByPath(fromObject, [\n 'liveConnectConstraints',\n ]);\n if (parentObject !== undefined && fromLiveConnectConstraints != null) {\n setValueByPath(parentObject, ['bidiGenerateContentSetup'], liveConnectConstraintsToMldev(apiClient, fromLiveConnectConstraints));\n }\n const fromLockAdditionalFields = getValueByPath(fromObject, [\n 'lockAdditionalFields',\n ]);\n if (parentObject !== undefined && fromLockAdditionalFields != null) {\n setValueByPath(parentObject, ['fieldMask'], fromLockAdditionalFields);\n }\n return toObject;\n}\nfunction createAuthTokenParametersToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['config'], createAuthTokenConfigToMldev(apiClient, fromConfig, toObject));\n }\n return toObject;\n}\nfunction fileDataToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['displayName']) !== undefined) {\n throw new Error('displayName parameter is not supported in Gemini API.');\n }\n const fromFileUri = getValueByPath(fromObject, ['fileUri']);\n if (fromFileUri != null) {\n setValueByPath(toObject, ['fileUri'], fromFileUri);\n }\n const fromMimeType = getValueByPath(fromObject, ['mimeType']);\n if (fromMimeType != null) {\n setValueByPath(toObject, ['mimeType'], fromMimeType);\n }\n return toObject;\n}\nfunction googleMapsToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['authConfig']) !== undefined) {\n throw new Error('authConfig parameter is not supported in Gemini API.');\n }\n const fromEnableWidget = getValueByPath(fromObject, ['enableWidget']);\n if (fromEnableWidget != null) {\n setValueByPath(toObject, ['enableWidget'], fromEnableWidget);\n }\n return toObject;\n}\nfunction googleSearchToMldev(fromObject) {\n const toObject = {};\n const fromTimeRangeFilter = getValueByPath(fromObject, [\n 'timeRangeFilter',\n ]);\n if (fromTimeRangeFilter != null) {\n setValueByPath(toObject, ['timeRangeFilter'], fromTimeRangeFilter);\n }\n if (getValueByPath(fromObject, ['excludeDomains']) !== undefined) {\n throw new Error('excludeDomains parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction liveConnectConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromGenerationConfig = getValueByPath(fromObject, [\n 'generationConfig',\n ]);\n if (parentObject !== undefined && fromGenerationConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig'], fromGenerationConfig);\n }\n const fromResponseModalities = getValueByPath(fromObject, [\n 'responseModalities',\n ]);\n if (parentObject !== undefined && fromResponseModalities != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'responseModalities'], fromResponseModalities);\n }\n const fromTemperature = getValueByPath(fromObject, ['temperature']);\n if (parentObject !== undefined && fromTemperature != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'temperature'], fromTemperature);\n }\n const fromTopP = getValueByPath(fromObject, ['topP']);\n if (parentObject !== undefined && fromTopP != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topP'], fromTopP);\n }\n const fromTopK = getValueByPath(fromObject, ['topK']);\n if (parentObject !== undefined && fromTopK != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'topK'], fromTopK);\n }\n const fromMaxOutputTokens = getValueByPath(fromObject, [\n 'maxOutputTokens',\n ]);\n if (parentObject !== undefined && fromMaxOutputTokens != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'maxOutputTokens'], fromMaxOutputTokens);\n }\n const fromMediaResolution = getValueByPath(fromObject, [\n 'mediaResolution',\n ]);\n if (parentObject !== undefined && fromMediaResolution != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'mediaResolution'], fromMediaResolution);\n }\n const fromSeed = getValueByPath(fromObject, ['seed']);\n if (parentObject !== undefined && fromSeed != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'seed'], fromSeed);\n }\n const fromSpeechConfig = getValueByPath(fromObject, ['speechConfig']);\n if (parentObject !== undefined && fromSpeechConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'speechConfig'], tLiveSpeechConfig(fromSpeechConfig));\n }\n const fromThinkingConfig = getValueByPath(fromObject, [\n 'thinkingConfig',\n ]);\n if (parentObject !== undefined && fromThinkingConfig != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'thinkingConfig'], fromThinkingConfig);\n }\n const fromEnableAffectiveDialog = getValueByPath(fromObject, [\n 'enableAffectiveDialog',\n ]);\n if (parentObject !== undefined && fromEnableAffectiveDialog != null) {\n setValueByPath(parentObject, ['setup', 'generationConfig', 'enableAffectiveDialog'], fromEnableAffectiveDialog);\n }\n const fromSystemInstruction = getValueByPath(fromObject, [\n 'systemInstruction',\n ]);\n if (parentObject !== undefined && fromSystemInstruction != null) {\n setValueByPath(parentObject, ['setup', 'systemInstruction'], contentToMldev(tContent(fromSystemInstruction)));\n }\n const fromTools = getValueByPath(fromObject, ['tools']);\n if (parentObject !== undefined && fromTools != null) {\n let transformedList = tTools(fromTools);\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return toolToMldev(tTool(item));\n });\n }\n setValueByPath(parentObject, ['setup', 'tools'], transformedList);\n }\n const fromSessionResumption = getValueByPath(fromObject, [\n 'sessionResumption',\n ]);\n if (parentObject !== undefined && fromSessionResumption != null) {\n setValueByPath(parentObject, ['setup', 'sessionResumption'], sessionResumptionConfigToMldev(fromSessionResumption));\n }\n const fromInputAudioTranscription = getValueByPath(fromObject, [\n 'inputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromInputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'inputAudioTranscription'], fromInputAudioTranscription);\n }\n const fromOutputAudioTranscription = getValueByPath(fromObject, [\n 'outputAudioTranscription',\n ]);\n if (parentObject !== undefined && fromOutputAudioTranscription != null) {\n setValueByPath(parentObject, ['setup', 'outputAudioTranscription'], fromOutputAudioTranscription);\n }\n const fromRealtimeInputConfig = getValueByPath(fromObject, [\n 'realtimeInputConfig',\n ]);\n if (parentObject !== undefined && fromRealtimeInputConfig != null) {\n setValueByPath(parentObject, ['setup', 'realtimeInputConfig'], fromRealtimeInputConfig);\n }\n const fromContextWindowCompression = getValueByPath(fromObject, [\n 'contextWindowCompression',\n ]);\n if (parentObject !== undefined && fromContextWindowCompression != null) {\n setValueByPath(parentObject, ['setup', 'contextWindowCompression'], fromContextWindowCompression);\n }\n const fromProactivity = getValueByPath(fromObject, ['proactivity']);\n if (parentObject !== undefined && fromProactivity != null) {\n setValueByPath(parentObject, ['setup', 'proactivity'], fromProactivity);\n }\n return toObject;\n}\nfunction liveConnectConstraintsToMldev(apiClient, fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['model']);\n if (fromModel != null) {\n setValueByPath(toObject, ['setup', 'model'], tModel(apiClient, fromModel));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n setValueByPath(toObject, ['config'], liveConnectConfigToMldev(fromConfig, toObject));\n }\n return toObject;\n}\nfunction partToMldev(fromObject) {\n const toObject = {};\n const fromVideoMetadata = getValueByPath(fromObject, [\n 'videoMetadata',\n ]);\n if (fromVideoMetadata != null) {\n setValueByPath(toObject, ['videoMetadata'], fromVideoMetadata);\n }\n const fromThought = getValueByPath(fromObject, ['thought']);\n if (fromThought != null) {\n setValueByPath(toObject, ['thought'], fromThought);\n }\n const fromInlineData = getValueByPath(fromObject, ['inlineData']);\n if (fromInlineData != null) {\n setValueByPath(toObject, ['inlineData'], blobToMldev(fromInlineData));\n }\n const fromFileData = getValueByPath(fromObject, ['fileData']);\n if (fromFileData != null) {\n setValueByPath(toObject, ['fileData'], fileDataToMldev(fromFileData));\n }\n const fromThoughtSignature = getValueByPath(fromObject, [\n 'thoughtSignature',\n ]);\n if (fromThoughtSignature != null) {\n setValueByPath(toObject, ['thoughtSignature'], fromThoughtSignature);\n }\n const fromFunctionCall = getValueByPath(fromObject, ['functionCall']);\n if (fromFunctionCall != null) {\n setValueByPath(toObject, ['functionCall'], fromFunctionCall);\n }\n const fromCodeExecutionResult = getValueByPath(fromObject, [\n 'codeExecutionResult',\n ]);\n if (fromCodeExecutionResult != null) {\n setValueByPath(toObject, ['codeExecutionResult'], fromCodeExecutionResult);\n }\n const fromExecutableCode = getValueByPath(fromObject, [\n 'executableCode',\n ]);\n if (fromExecutableCode != null) {\n setValueByPath(toObject, ['executableCode'], fromExecutableCode);\n }\n const fromFunctionResponse = getValueByPath(fromObject, [\n 'functionResponse',\n ]);\n if (fromFunctionResponse != null) {\n setValueByPath(toObject, ['functionResponse'], fromFunctionResponse);\n }\n const fromText = getValueByPath(fromObject, ['text']);\n if (fromText != null) {\n setValueByPath(toObject, ['text'], fromText);\n }\n return toObject;\n}\nfunction sessionResumptionConfigToMldev(fromObject) {\n const toObject = {};\n const fromHandle = getValueByPath(fromObject, ['handle']);\n if (fromHandle != null) {\n setValueByPath(toObject, ['handle'], fromHandle);\n }\n if (getValueByPath(fromObject, ['transparent']) !== undefined) {\n throw new Error('transparent parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction toolToMldev(fromObject) {\n const toObject = {};\n const fromFunctionDeclarations = getValueByPath(fromObject, [\n 'functionDeclarations',\n ]);\n if (fromFunctionDeclarations != null) {\n let transformedList = fromFunctionDeclarations;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['functionDeclarations'], transformedList);\n }\n if (getValueByPath(fromObject, ['retrieval']) !== undefined) {\n throw new Error('retrieval parameter is not supported in Gemini API.');\n }\n const fromGoogleSearch = getValueByPath(fromObject, ['googleSearch']);\n if (fromGoogleSearch != null) {\n setValueByPath(toObject, ['googleSearch'], googleSearchToMldev(fromGoogleSearch));\n }\n const fromGoogleSearchRetrieval = getValueByPath(fromObject, [\n 'googleSearchRetrieval',\n ]);\n if (fromGoogleSearchRetrieval != null) {\n setValueByPath(toObject, ['googleSearchRetrieval'], fromGoogleSearchRetrieval);\n }\n if (getValueByPath(fromObject, ['enterpriseWebSearch']) !== undefined) {\n throw new Error('enterpriseWebSearch parameter is not supported in Gemini API.');\n }\n const fromGoogleMaps = getValueByPath(fromObject, ['googleMaps']);\n if (fromGoogleMaps != null) {\n setValueByPath(toObject, ['googleMaps'], googleMapsToMldev(fromGoogleMaps));\n }\n const fromUrlContext = getValueByPath(fromObject, ['urlContext']);\n if (fromUrlContext != null) {\n setValueByPath(toObject, ['urlContext'], fromUrlContext);\n }\n const fromComputerUse = getValueByPath(fromObject, ['computerUse']);\n if (fromComputerUse != null) {\n setValueByPath(toObject, ['computerUse'], fromComputerUse);\n }\n const fromCodeExecution = getValueByPath(fromObject, [\n 'codeExecution',\n ]);\n if (fromCodeExecution != null) {\n setValueByPath(toObject, ['codeExecution'], fromCodeExecution);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/**\n * Returns a comma-separated list of field masks from a given object.\n *\n * @param setup The object to extract field masks from.\n * @return A comma-separated list of field masks.\n */\nfunction getFieldMasks(setup) {\n const fields = [];\n for (const key in setup) {\n if (Object.prototype.hasOwnProperty.call(setup, key)) {\n const value = setup[key];\n // 2nd layer, recursively get field masks see TODO(b/418290100)\n if (typeof value === 'object' &&\n value != null &&\n Object.keys(value).length > 0) {\n const field = Object.keys(value).map((kk) => `${key}.${kk}`);\n fields.push(...field);\n }\n else {\n fields.push(key); // 1st layer\n }\n }\n }\n return fields.join(',');\n}\n/**\n * Converts bidiGenerateContentSetup.\n * @param requestDict - The request dictionary.\n * @param config - The configuration object.\n * @return - The modified request dictionary.\n */\nfunction convertBidiSetupToTokenSetup(requestDict, config) {\n // Convert bidiGenerateContentSetup from bidiGenerateContentSetup.setup.\n let setupForMaskGeneration = null;\n const bidiGenerateContentSetupValue = requestDict['bidiGenerateContentSetup'];\n if (typeof bidiGenerateContentSetupValue === 'object' &&\n bidiGenerateContentSetupValue !== null &&\n 'setup' in bidiGenerateContentSetupValue) {\n // Now we know bidiGenerateContentSetupValue is an object and has a 'setup'\n // property.\n const innerSetup = bidiGenerateContentSetupValue\n .setup;\n if (typeof innerSetup === 'object' && innerSetup !== null) {\n // Valid inner setup found.\n requestDict['bidiGenerateContentSetup'] = innerSetup;\n setupForMaskGeneration = innerSetup;\n }\n else {\n // `bidiGenerateContentSetupValue.setup` is not a valid object; treat as\n // if bidiGenerateContentSetup is invalid.\n delete requestDict['bidiGenerateContentSetup'];\n }\n }\n else if (bidiGenerateContentSetupValue !== undefined) {\n // `bidiGenerateContentSetup` exists but not in the expected\n // shape {setup: {...}}; treat as invalid.\n delete requestDict['bidiGenerateContentSetup'];\n }\n const preExistingFieldMask = requestDict['fieldMask'];\n // Handle mask generation setup.\n if (setupForMaskGeneration) {\n const generatedMaskFromBidi = getFieldMasks(setupForMaskGeneration);\n if (Array.isArray(config === null || config === void 0 ? void 0 : config.lockAdditionalFields) &&\n (config === null || config === void 0 ? void 0 : config.lockAdditionalFields.length) === 0) {\n // Case 1: lockAdditionalFields is an empty array. Lock only fields from\n // bidi setup.\n if (generatedMaskFromBidi) {\n // Only assign if mask is not empty\n requestDict['fieldMask'] = generatedMaskFromBidi;\n }\n else {\n delete requestDict['fieldMask']; // If mask is empty, effectively no\n // specific fields locked by bidi\n }\n }\n else if ((config === null || config === void 0 ? void 0 : config.lockAdditionalFields) &&\n config.lockAdditionalFields.length > 0 &&\n preExistingFieldMask !== null &&\n Array.isArray(preExistingFieldMask) &&\n preExistingFieldMask.length > 0) {\n // Case 2: Lock fields from bidi setup + additional fields\n // (preExistingFieldMask).\n const generationConfigFields = [\n 'temperature',\n 'topK',\n 'topP',\n 'maxOutputTokens',\n 'responseModalities',\n 'seed',\n 'speechConfig',\n ];\n let mappedFieldsFromPreExisting = [];\n if (preExistingFieldMask.length > 0) {\n mappedFieldsFromPreExisting = preExistingFieldMask.map((field) => {\n if (generationConfigFields.includes(field)) {\n return `generationConfig.${field}`;\n }\n return field; // Keep original field name if not in\n // generationConfigFields\n });\n }\n const finalMaskParts = [];\n if (generatedMaskFromBidi) {\n finalMaskParts.push(generatedMaskFromBidi);\n }\n if (mappedFieldsFromPreExisting.length > 0) {\n finalMaskParts.push(...mappedFieldsFromPreExisting);\n }\n if (finalMaskParts.length > 0) {\n requestDict['fieldMask'] = finalMaskParts.join(',');\n }\n else {\n // If no fields from bidi and no valid additional fields from\n // pre-existing mask.\n delete requestDict['fieldMask'];\n }\n }\n else {\n // Case 3: \"Lock all fields\" (meaning, don't send a field_mask, let server\n // defaults apply or all are mutable). This is hit if:\n // - `config.lockAdditionalFields` is undefined.\n // - `config.lockAdditionalFields` is non-empty, BUT\n // `preExistingFieldMask` is null, not a string, or an empty string.\n delete requestDict['fieldMask'];\n }\n }\n else {\n // No valid `bidiGenerateContentSetup` was found or extracted.\n // \"Lock additional null fields if any\".\n if (preExistingFieldMask !== null &&\n Array.isArray(preExistingFieldMask) &&\n preExistingFieldMask.length > 0) {\n // If there's a pre-existing field mask, it's a string, and it's not\n // empty, then we should lock all fields.\n requestDict['fieldMask'] = preExistingFieldMask.join(',');\n }\n else {\n delete requestDict['fieldMask'];\n }\n }\n return requestDict;\n}\nclass Tokens extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n }\n /**\n * Creates an ephemeral auth token resource.\n *\n * @experimental\n *\n * @remarks\n * Ephemeral auth tokens is only supported in the Gemini Developer API.\n * It can be used for the session connection to the Live constrained API.\n * Support in v1alpha only.\n *\n * @param params - The parameters for the create request.\n * @return The created auth token.\n *\n * @example\n * ```ts\n * const ai = new GoogleGenAI({\n * apiKey: token.name,\n * httpOptions: { apiVersion: 'v1alpha' } // Support in v1alpha only.\n * });\n *\n * // Case 1: If LiveEphemeralParameters is unset, unlock LiveConnectConfig\n * // when using the token in Live API sessions. Each session connection can\n * // use a different configuration.\n * const config: CreateAuthTokenConfig = {\n * uses: 3,\n * expireTime: '2025-05-01T00:00:00Z',\n * }\n * const token = await ai.tokens.create(config);\n *\n * // Case 2: If LiveEphemeralParameters is set, lock all fields in\n * // LiveConnectConfig when using the token in Live API sessions. For\n * // example, changing `outputAudioTranscription` in the Live API\n * // connection will be ignored by the API.\n * const config: CreateAuthTokenConfig =\n * uses: 3,\n * expireTime: '2025-05-01T00:00:00Z',\n * LiveEphemeralParameters: {\n * model: 'gemini-2.0-flash-001',\n * config: {\n * 'responseModalities': ['AUDIO'],\n * 'systemInstruction': 'Always answer in English.',\n * }\n * }\n * }\n * const token = await ai.tokens.create(config);\n *\n * // Case 3: If LiveEphemeralParameters is set and lockAdditionalFields is\n * // set, lock LiveConnectConfig with set and additional fields (e.g.\n * // responseModalities, systemInstruction, temperature in this example) when\n * // using the token in Live API sessions.\n * const config: CreateAuthTokenConfig =\n * uses: 3,\n * expireTime: '2025-05-01T00:00:00Z',\n * LiveEphemeralParameters: {\n * model: 'gemini-2.0-flash-001',\n * config: {\n * 'responseModalities': ['AUDIO'],\n * 'systemInstruction': 'Always answer in English.',\n * }\n * },\n * lockAdditionalFields: ['temperature'],\n * }\n * const token = await ai.tokens.create(config);\n *\n * // Case 4: If LiveEphemeralParameters is set and lockAdditionalFields is\n * // empty array, lock LiveConnectConfig with set fields (e.g.\n * // responseModalities, systemInstruction in this example) when using the\n * // token in Live API sessions.\n * const config: CreateAuthTokenConfig =\n * uses: 3,\n * expireTime: '2025-05-01T00:00:00Z',\n * LiveEphemeralParameters: {\n * model: 'gemini-2.0-flash-001',\n * config: {\n * 'responseModalities': ['AUDIO'],\n * 'systemInstruction': 'Always answer in English.',\n * }\n * },\n * lockAdditionalFields: [],\n * }\n * const token = await ai.tokens.create(config);\n * ```\n */\n async create(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('The client.tokens.create method is only supported by the Gemini Developer API.');\n }\n else {\n const body = createAuthTokenParametersToMldev(this.apiClient, params);\n path = formatMap('auth_tokens', body['_url']);\n queryParams = body['_query'];\n delete body['config'];\n delete body['_url'];\n delete body['_query'];\n const transformedBody = convertBidiSetupToTokenSetup(body, params.config);\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(transformedBody),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json();\n });\n return response.then((resp) => {\n return resp;\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Code generated by the Google Gen AI SDK generator DO NOT EDIT.\nfunction cancelTuningJobParametersToMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], fromName);\n }\n return toObject;\n}\nfunction cancelTuningJobParametersToVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], fromName);\n }\n return toObject;\n}\nfunction createTuningJobConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['validationDataset']) !== undefined) {\n throw new Error('validationDataset parameter is not supported in Gemini API.');\n }\n const fromTunedModelDisplayName = getValueByPath(fromObject, [\n 'tunedModelDisplayName',\n ]);\n if (parentObject !== undefined && fromTunedModelDisplayName != null) {\n setValueByPath(parentObject, ['displayName'], fromTunedModelDisplayName);\n }\n if (getValueByPath(fromObject, ['description']) !== undefined) {\n throw new Error('description parameter is not supported in Gemini API.');\n }\n const fromEpochCount = getValueByPath(fromObject, ['epochCount']);\n if (parentObject !== undefined && fromEpochCount != null) {\n setValueByPath(parentObject, ['tuningTask', 'hyperparameters', 'epochCount'], fromEpochCount);\n }\n const fromLearningRateMultiplier = getValueByPath(fromObject, [\n 'learningRateMultiplier',\n ]);\n if (fromLearningRateMultiplier != null) {\n setValueByPath(toObject, ['tuningTask', 'hyperparameters', 'learningRateMultiplier'], fromLearningRateMultiplier);\n }\n if (getValueByPath(fromObject, ['exportLastCheckpointOnly']) !==\n undefined) {\n throw new Error('exportLastCheckpointOnly parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['preTunedModelCheckpointId']) !==\n undefined) {\n throw new Error('preTunedModelCheckpointId parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['adapterSize']) !== undefined) {\n throw new Error('adapterSize parameter is not supported in Gemini API.');\n }\n const fromBatchSize = getValueByPath(fromObject, ['batchSize']);\n if (parentObject !== undefined && fromBatchSize != null) {\n setValueByPath(parentObject, ['tuningTask', 'hyperparameters', 'batchSize'], fromBatchSize);\n }\n const fromLearningRate = getValueByPath(fromObject, ['learningRate']);\n if (parentObject !== undefined && fromLearningRate != null) {\n setValueByPath(parentObject, ['tuningTask', 'hyperparameters', 'learningRate'], fromLearningRate);\n }\n if (getValueByPath(fromObject, ['labels']) !== undefined) {\n throw new Error('labels parameter is not supported in Gemini API.');\n }\n return toObject;\n}\nfunction createTuningJobConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromValidationDataset = getValueByPath(fromObject, [\n 'validationDataset',\n ]);\n if (parentObject !== undefined && fromValidationDataset != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec'], tuningValidationDatasetToVertex(fromValidationDataset, toObject));\n }\n const fromTunedModelDisplayName = getValueByPath(fromObject, [\n 'tunedModelDisplayName',\n ]);\n if (parentObject !== undefined && fromTunedModelDisplayName != null) {\n setValueByPath(parentObject, ['tunedModelDisplayName'], fromTunedModelDisplayName);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (parentObject !== undefined && fromDescription != null) {\n setValueByPath(parentObject, ['description'], fromDescription);\n }\n const fromEpochCount = getValueByPath(fromObject, ['epochCount']);\n if (parentObject !== undefined && fromEpochCount != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'hyperParameters', 'epochCount'], fromEpochCount);\n }\n const fromLearningRateMultiplier = getValueByPath(fromObject, [\n 'learningRateMultiplier',\n ]);\n if (parentObject !== undefined && fromLearningRateMultiplier != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'hyperParameters', 'learningRateMultiplier'], fromLearningRateMultiplier);\n }\n const fromExportLastCheckpointOnly = getValueByPath(fromObject, [\n 'exportLastCheckpointOnly',\n ]);\n if (parentObject !== undefined && fromExportLastCheckpointOnly != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'exportLastCheckpointOnly'], fromExportLastCheckpointOnly);\n }\n const fromAdapterSize = getValueByPath(fromObject, ['adapterSize']);\n if (parentObject !== undefined && fromAdapterSize != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'hyperParameters', 'adapterSize'], fromAdapterSize);\n }\n if (getValueByPath(fromObject, ['batchSize']) !== undefined) {\n throw new Error('batchSize parameter is not supported in Vertex AI.');\n }\n if (getValueByPath(fromObject, ['learningRate']) !== undefined) {\n throw new Error('learningRate parameter is not supported in Vertex AI.');\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (parentObject !== undefined && fromLabels != null) {\n setValueByPath(parentObject, ['labels'], fromLabels);\n }\n return toObject;\n}\nfunction createTuningJobParametersPrivateToMldev(fromObject) {\n const toObject = {};\n const fromBaseModel = getValueByPath(fromObject, ['baseModel']);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromPreTunedModel = getValueByPath(fromObject, [\n 'preTunedModel',\n ]);\n if (fromPreTunedModel != null) {\n setValueByPath(toObject, ['preTunedModel'], fromPreTunedModel);\n }\n const fromTrainingDataset = getValueByPath(fromObject, [\n 'trainingDataset',\n ]);\n if (fromTrainingDataset != null) {\n setValueByPath(toObject, ['tuningTask', 'trainingData'], tuningDatasetToMldev(fromTrainingDataset));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createTuningJobConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction createTuningJobParametersPrivateToVertex(fromObject) {\n const toObject = {};\n const fromBaseModel = getValueByPath(fromObject, ['baseModel']);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromPreTunedModel = getValueByPath(fromObject, [\n 'preTunedModel',\n ]);\n if (fromPreTunedModel != null) {\n setValueByPath(toObject, ['preTunedModel'], fromPreTunedModel);\n }\n const fromTrainingDataset = getValueByPath(fromObject, [\n 'trainingDataset',\n ]);\n if (fromTrainingDataset != null) {\n setValueByPath(toObject, ['supervisedTuningSpec', 'trainingDatasetUri'], tuningDatasetToVertex(fromTrainingDataset, toObject));\n }\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n createTuningJobConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction getTuningJobParametersToMldev(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], fromName);\n }\n return toObject;\n}\nfunction getTuningJobParametersToVertex(fromObject) {\n const toObject = {};\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['_url', 'name'], fromName);\n }\n return toObject;\n}\nfunction listTuningJobsConfigToMldev(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n const fromFilter = getValueByPath(fromObject, ['filter']);\n if (parentObject !== undefined && fromFilter != null) {\n setValueByPath(parentObject, ['_query', 'filter'], fromFilter);\n }\n return toObject;\n}\nfunction listTuningJobsConfigToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromPageSize = getValueByPath(fromObject, ['pageSize']);\n if (parentObject !== undefined && fromPageSize != null) {\n setValueByPath(parentObject, ['_query', 'pageSize'], fromPageSize);\n }\n const fromPageToken = getValueByPath(fromObject, ['pageToken']);\n if (parentObject !== undefined && fromPageToken != null) {\n setValueByPath(parentObject, ['_query', 'pageToken'], fromPageToken);\n }\n const fromFilter = getValueByPath(fromObject, ['filter']);\n if (parentObject !== undefined && fromFilter != null) {\n setValueByPath(parentObject, ['_query', 'filter'], fromFilter);\n }\n return toObject;\n}\nfunction listTuningJobsParametersToMldev(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listTuningJobsConfigToMldev(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listTuningJobsParametersToVertex(fromObject) {\n const toObject = {};\n const fromConfig = getValueByPath(fromObject, ['config']);\n if (fromConfig != null) {\n listTuningJobsConfigToVertex(fromConfig, toObject);\n }\n return toObject;\n}\nfunction listTuningJobsResponseFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromTuningJobs = getValueByPath(fromObject, ['tunedModels']);\n if (fromTuningJobs != null) {\n let transformedList = fromTuningJobs;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return tuningJobFromMldev(item);\n });\n }\n setValueByPath(toObject, ['tuningJobs'], transformedList);\n }\n return toObject;\n}\nfunction listTuningJobsResponseFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromNextPageToken = getValueByPath(fromObject, [\n 'nextPageToken',\n ]);\n if (fromNextPageToken != null) {\n setValueByPath(toObject, ['nextPageToken'], fromNextPageToken);\n }\n const fromTuningJobs = getValueByPath(fromObject, ['tuningJobs']);\n if (fromTuningJobs != null) {\n let transformedList = fromTuningJobs;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return tuningJobFromVertex(item);\n });\n }\n setValueByPath(toObject, ['tuningJobs'], transformedList);\n }\n return toObject;\n}\nfunction tunedModelFromMldev(fromObject) {\n const toObject = {};\n const fromModel = getValueByPath(fromObject, ['name']);\n if (fromModel != null) {\n setValueByPath(toObject, ['model'], fromModel);\n }\n const fromEndpoint = getValueByPath(fromObject, ['name']);\n if (fromEndpoint != null) {\n setValueByPath(toObject, ['endpoint'], fromEndpoint);\n }\n return toObject;\n}\nfunction tuningDatasetToMldev(fromObject) {\n const toObject = {};\n if (getValueByPath(fromObject, ['gcsUri']) !== undefined) {\n throw new Error('gcsUri parameter is not supported in Gemini API.');\n }\n if (getValueByPath(fromObject, ['vertexDatasetResource']) !== undefined) {\n throw new Error('vertexDatasetResource parameter is not supported in Gemini API.');\n }\n const fromExamples = getValueByPath(fromObject, ['examples']);\n if (fromExamples != null) {\n let transformedList = fromExamples;\n if (Array.isArray(transformedList)) {\n transformedList = transformedList.map((item) => {\n return item;\n });\n }\n setValueByPath(toObject, ['examples', 'examples'], transformedList);\n }\n return toObject;\n}\nfunction tuningDatasetToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (parentObject !== undefined && fromGcsUri != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'trainingDatasetUri'], fromGcsUri);\n }\n const fromVertexDatasetResource = getValueByPath(fromObject, [\n 'vertexDatasetResource',\n ]);\n if (parentObject !== undefined && fromVertexDatasetResource != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'trainingDatasetUri'], fromVertexDatasetResource);\n }\n if (getValueByPath(fromObject, ['examples']) !== undefined) {\n throw new Error('examples parameter is not supported in Vertex AI.');\n }\n return toObject;\n}\nfunction tuningJobFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromState = getValueByPath(fromObject, ['state']);\n if (fromState != null) {\n setValueByPath(toObject, ['state'], tTuningJobStatus(fromState));\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromStartTime = getValueByPath(fromObject, [\n 'tuningTask',\n 'startTime',\n ]);\n if (fromStartTime != null) {\n setValueByPath(toObject, ['startTime'], fromStartTime);\n }\n const fromEndTime = getValueByPath(fromObject, [\n 'tuningTask',\n 'completeTime',\n ]);\n if (fromEndTime != null) {\n setValueByPath(toObject, ['endTime'], fromEndTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, ['updateTime']);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromBaseModel = getValueByPath(fromObject, ['baseModel']);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromTunedModel = getValueByPath(fromObject, ['_self']);\n if (fromTunedModel != null) {\n setValueByPath(toObject, ['tunedModel'], tunedModelFromMldev(fromTunedModel));\n }\n return toObject;\n}\nfunction tuningJobFromVertex(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromState = getValueByPath(fromObject, ['state']);\n if (fromState != null) {\n setValueByPath(toObject, ['state'], tTuningJobStatus(fromState));\n }\n const fromCreateTime = getValueByPath(fromObject, ['createTime']);\n if (fromCreateTime != null) {\n setValueByPath(toObject, ['createTime'], fromCreateTime);\n }\n const fromStartTime = getValueByPath(fromObject, ['startTime']);\n if (fromStartTime != null) {\n setValueByPath(toObject, ['startTime'], fromStartTime);\n }\n const fromEndTime = getValueByPath(fromObject, ['endTime']);\n if (fromEndTime != null) {\n setValueByPath(toObject, ['endTime'], fromEndTime);\n }\n const fromUpdateTime = getValueByPath(fromObject, ['updateTime']);\n if (fromUpdateTime != null) {\n setValueByPath(toObject, ['updateTime'], fromUpdateTime);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n const fromDescription = getValueByPath(fromObject, ['description']);\n if (fromDescription != null) {\n setValueByPath(toObject, ['description'], fromDescription);\n }\n const fromBaseModel = getValueByPath(fromObject, ['baseModel']);\n if (fromBaseModel != null) {\n setValueByPath(toObject, ['baseModel'], fromBaseModel);\n }\n const fromTunedModel = getValueByPath(fromObject, ['tunedModel']);\n if (fromTunedModel != null) {\n setValueByPath(toObject, ['tunedModel'], fromTunedModel);\n }\n const fromPreTunedModel = getValueByPath(fromObject, [\n 'preTunedModel',\n ]);\n if (fromPreTunedModel != null) {\n setValueByPath(toObject, ['preTunedModel'], fromPreTunedModel);\n }\n const fromSupervisedTuningSpec = getValueByPath(fromObject, [\n 'supervisedTuningSpec',\n ]);\n if (fromSupervisedTuningSpec != null) {\n setValueByPath(toObject, ['supervisedTuningSpec'], fromSupervisedTuningSpec);\n }\n const fromTuningDataStats = getValueByPath(fromObject, [\n 'tuningDataStats',\n ]);\n if (fromTuningDataStats != null) {\n setValueByPath(toObject, ['tuningDataStats'], fromTuningDataStats);\n }\n const fromEncryptionSpec = getValueByPath(fromObject, [\n 'encryptionSpec',\n ]);\n if (fromEncryptionSpec != null) {\n setValueByPath(toObject, ['encryptionSpec'], fromEncryptionSpec);\n }\n const fromPartnerModelTuningSpec = getValueByPath(fromObject, [\n 'partnerModelTuningSpec',\n ]);\n if (fromPartnerModelTuningSpec != null) {\n setValueByPath(toObject, ['partnerModelTuningSpec'], fromPartnerModelTuningSpec);\n }\n const fromCustomBaseModel = getValueByPath(fromObject, [\n 'customBaseModel',\n ]);\n if (fromCustomBaseModel != null) {\n setValueByPath(toObject, ['customBaseModel'], fromCustomBaseModel);\n }\n const fromExperiment = getValueByPath(fromObject, ['experiment']);\n if (fromExperiment != null) {\n setValueByPath(toObject, ['experiment'], fromExperiment);\n }\n const fromLabels = getValueByPath(fromObject, ['labels']);\n if (fromLabels != null) {\n setValueByPath(toObject, ['labels'], fromLabels);\n }\n const fromOutputUri = getValueByPath(fromObject, ['outputUri']);\n if (fromOutputUri != null) {\n setValueByPath(toObject, ['outputUri'], fromOutputUri);\n }\n const fromPipelineJob = getValueByPath(fromObject, ['pipelineJob']);\n if (fromPipelineJob != null) {\n setValueByPath(toObject, ['pipelineJob'], fromPipelineJob);\n }\n const fromServiceAccount = getValueByPath(fromObject, [\n 'serviceAccount',\n ]);\n if (fromServiceAccount != null) {\n setValueByPath(toObject, ['serviceAccount'], fromServiceAccount);\n }\n const fromTunedModelDisplayName = getValueByPath(fromObject, [\n 'tunedModelDisplayName',\n ]);\n if (fromTunedModelDisplayName != null) {\n setValueByPath(toObject, ['tunedModelDisplayName'], fromTunedModelDisplayName);\n }\n const fromVeoTuningSpec = getValueByPath(fromObject, [\n 'veoTuningSpec',\n ]);\n if (fromVeoTuningSpec != null) {\n setValueByPath(toObject, ['veoTuningSpec'], fromVeoTuningSpec);\n }\n return toObject;\n}\nfunction tuningOperationFromMldev(fromObject) {\n const toObject = {};\n const fromSdkHttpResponse = getValueByPath(fromObject, [\n 'sdkHttpResponse',\n ]);\n if (fromSdkHttpResponse != null) {\n setValueByPath(toObject, ['sdkHttpResponse'], fromSdkHttpResponse);\n }\n const fromName = getValueByPath(fromObject, ['name']);\n if (fromName != null) {\n setValueByPath(toObject, ['name'], fromName);\n }\n const fromMetadata = getValueByPath(fromObject, ['metadata']);\n if (fromMetadata != null) {\n setValueByPath(toObject, ['metadata'], fromMetadata);\n }\n const fromDone = getValueByPath(fromObject, ['done']);\n if (fromDone != null) {\n setValueByPath(toObject, ['done'], fromDone);\n }\n const fromError = getValueByPath(fromObject, ['error']);\n if (fromError != null) {\n setValueByPath(toObject, ['error'], fromError);\n }\n return toObject;\n}\nfunction tuningValidationDatasetToVertex(fromObject, parentObject) {\n const toObject = {};\n const fromGcsUri = getValueByPath(fromObject, ['gcsUri']);\n if (fromGcsUri != null) {\n setValueByPath(toObject, ['validationDatasetUri'], fromGcsUri);\n }\n const fromVertexDatasetResource = getValueByPath(fromObject, [\n 'vertexDatasetResource',\n ]);\n if (parentObject !== undefined && fromVertexDatasetResource != null) {\n setValueByPath(parentObject, ['supervisedTuningSpec', 'trainingDatasetUri'], fromVertexDatasetResource);\n }\n return toObject;\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass Tunings extends BaseModule {\n constructor(apiClient) {\n super();\n this.apiClient = apiClient;\n /**\n * Gets a TuningJob.\n *\n * @param name - The resource name of the tuning job.\n * @return - A TuningJob object.\n *\n * @experimental - The SDK's tuning implementation is experimental, and may\n * change in future versions.\n */\n this.get = async (params) => {\n return await this.getInternal(params);\n };\n /**\n * Lists tuning jobs.\n *\n * @param config - The configuration for the list request.\n * @return - A list of tuning jobs.\n *\n * @experimental - The SDK's tuning implementation is experimental, and may\n * change in future versions.\n */\n this.list = async (params = {}) => {\n return new Pager(PagedItem.PAGED_ITEM_TUNING_JOBS, (x) => this.listInternal(x), await this.listInternal(params), params);\n };\n /**\n * Creates a supervised fine-tuning job.\n *\n * @param params - The parameters for the tuning job.\n * @return - A TuningJob operation.\n *\n * @experimental - The SDK's tuning implementation is experimental, and may\n * change in future versions.\n */\n this.tune = async (params) => {\n var _a;\n if (this.apiClient.isVertexAI()) {\n if (params.baseModel.startsWith('projects/')) {\n const preTunedModel = {\n tunedModelName: params.baseModel,\n };\n if ((_a = params.config) === null || _a === void 0 ? void 0 : _a.preTunedModelCheckpointId) {\n preTunedModel.checkpointId = params.config.preTunedModelCheckpointId;\n }\n const paramsPrivate = Object.assign(Object.assign({}, params), { preTunedModel: preTunedModel });\n paramsPrivate.baseModel = undefined;\n return await this.tuneInternal(paramsPrivate);\n }\n else {\n const paramsPrivate = Object.assign({}, params);\n return await this.tuneInternal(paramsPrivate);\n }\n }\n else {\n const paramsPrivate = Object.assign({}, params);\n const operation = await this.tuneMldevInternal(paramsPrivate);\n let tunedModelName = '';\n if (operation['metadata'] !== undefined &&\n operation['metadata']['tunedModel'] !== undefined) {\n tunedModelName = operation['metadata']['tunedModel'];\n }\n else if (operation['name'] !== undefined &&\n operation['name'].includes('/operations/')) {\n tunedModelName = operation['name'].split('/operations/')[0];\n }\n const tuningJob = {\n name: tunedModelName,\n state: JobState.JOB_STATE_QUEUED,\n };\n return tuningJob;\n }\n };\n }\n async getInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = getTuningJobParametersToVertex(params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = tuningJobFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n const body = getTuningJobParametersToMldev(params);\n path = formatMap('{name}', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = tuningJobFromMldev(apiResponse);\n return resp;\n });\n }\n }\n async listInternal(params) {\n var _a, _b, _c, _d;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = listTuningJobsParametersToVertex(params);\n path = formatMap('tuningJobs', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listTuningJobsResponseFromVertex(apiResponse);\n const typedResp = new ListTuningJobsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n else {\n const body = listTuningJobsParametersToMldev(params);\n path = formatMap('tunedModels', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'GET',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = listTuningJobsResponseFromMldev(apiResponse);\n const typedResp = new ListTuningJobsResponse();\n Object.assign(typedResp, resp);\n return typedResp;\n });\n }\n }\n /**\n * Cancels a tuning job.\n *\n * @param params - The parameters for the cancel request.\n * @return The empty response returned by the API.\n *\n * @example\n * ```ts\n * await ai.tunings.cancel({name: '...'}); // The server-generated resource name.\n * ```\n */\n async cancel(params) {\n var _a, _b, _c, _d;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = cancelTuningJobParametersToVertex(params);\n path = formatMap('{name}:cancel', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n await this.apiClient.request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n });\n }\n else {\n const body = cancelTuningJobParametersToMldev(params);\n path = formatMap('{name}:cancel', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n await this.apiClient.request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_c = params.config) === null || _c === void 0 ? void 0 : _c.httpOptions,\n abortSignal: (_d = params.config) === null || _d === void 0 ? void 0 : _d.abortSignal,\n });\n }\n }\n async tuneInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n const body = createTuningJobParametersPrivateToVertex(params);\n path = formatMap('tuningJobs', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = tuningJobFromVertex(apiResponse);\n return resp;\n });\n }\n else {\n throw new Error('This method is only supported by the Vertex AI.');\n }\n }\n async tuneMldevInternal(params) {\n var _a, _b;\n let response;\n let path = '';\n let queryParams = {};\n if (this.apiClient.isVertexAI()) {\n throw new Error('This method is only supported by the Gemini Developer API.');\n }\n else {\n const body = createTuningJobParametersPrivateToMldev(params);\n path = formatMap('tunedModels', body['_url']);\n queryParams = body['_query'];\n delete body['_url'];\n delete body['_query'];\n response = this.apiClient\n .request({\n path: path,\n queryParams: queryParams,\n body: JSON.stringify(body),\n httpMethod: 'POST',\n httpOptions: (_a = params.config) === null || _a === void 0 ? void 0 : _a.httpOptions,\n abortSignal: (_b = params.config) === null || _b === void 0 ? void 0 : _b.abortSignal,\n })\n .then((httpResponse) => {\n return httpResponse.json().then((jsonResponse) => {\n const response = jsonResponse;\n response.sdkHttpResponse = {\n headers: httpResponse.headers,\n };\n return response;\n });\n });\n return response.then((apiResponse) => {\n const resp = tuningOperationFromMldev(apiResponse);\n return resp;\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass BrowserDownloader {\n async download(_params, _apiClient) {\n throw new Error('Download to file is not supported in the browser, please use a browser compliant download like an tag.');\n }\n}\n\nconst MAX_CHUNK_SIZE = 1024 * 1024 * 8; // bytes\nconst MAX_RETRY_COUNT = 3;\nconst INITIAL_RETRY_DELAY_MS = 1000;\nconst DELAY_MULTIPLIER = 2;\nconst X_GOOG_UPLOAD_STATUS_HEADER_FIELD = 'x-goog-upload-status';\nasync function uploadBlob(file, uploadUrl, apiClient) {\n var _a, _b, _c;\n let fileSize = 0;\n let offset = 0;\n let response = new HttpResponse(new Response());\n let uploadCommand = 'upload';\n fileSize = file.size;\n while (offset < fileSize) {\n const chunkSize = Math.min(MAX_CHUNK_SIZE, fileSize - offset);\n const chunk = file.slice(offset, offset + chunkSize);\n if (offset + chunkSize >= fileSize) {\n uploadCommand += ', finalize';\n }\n let retryCount = 0;\n let currentDelayMs = INITIAL_RETRY_DELAY_MS;\n while (retryCount < MAX_RETRY_COUNT) {\n response = await apiClient.request({\n path: '',\n body: chunk,\n httpMethod: 'POST',\n httpOptions: {\n apiVersion: '',\n baseUrl: uploadUrl,\n headers: {\n 'X-Goog-Upload-Command': uploadCommand,\n 'X-Goog-Upload-Offset': String(offset),\n 'Content-Length': String(chunkSize),\n },\n },\n });\n if ((_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a[X_GOOG_UPLOAD_STATUS_HEADER_FIELD]) {\n break;\n }\n retryCount++;\n await sleep(currentDelayMs);\n currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;\n }\n offset += chunkSize;\n // The `x-goog-upload-status` header field can be `active`, `final` and\n //`cancelled` in resposne.\n if (((_b = response === null || response === void 0 ? void 0 : response.headers) === null || _b === void 0 ? void 0 : _b[X_GOOG_UPLOAD_STATUS_HEADER_FIELD]) !== 'active') {\n break;\n }\n // TODO(b/401391430) Investigate why the upload status is not finalized\n // even though all content has been uploaded.\n if (fileSize <= offset) {\n throw new Error('All content has been uploaded, but the upload status is not finalized.');\n }\n }\n const responseJson = (await (response === null || response === void 0 ? void 0 : response.json()));\n if (((_c = response === null || response === void 0 ? void 0 : response.headers) === null || _c === void 0 ? void 0 : _c[X_GOOG_UPLOAD_STATUS_HEADER_FIELD]) !== 'final') {\n throw new Error('Failed to upload file: Upload status is not finalized.');\n }\n return responseJson['file'];\n}\nasync function getBlobStat(file) {\n const fileStat = { size: file.size, type: file.type };\n return fileStat;\n}\nfunction sleep(ms) {\n return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));\n}\n\nclass BrowserUploader {\n async upload(file, uploadUrl, apiClient) {\n if (typeof file === 'string') {\n throw new Error('File path is not supported in browser uploader.');\n }\n return await uploadBlob(file, uploadUrl, apiClient);\n }\n async stat(file) {\n if (typeof file === 'string') {\n throw new Error('File path is not supported in browser uploader.');\n }\n else {\n return await getBlobStat(file);\n }\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nclass BrowserWebSocketFactory {\n create(url, headers, callbacks) {\n return new BrowserWebSocket(url, headers, callbacks);\n }\n}\nclass BrowserWebSocket {\n constructor(url, headers, callbacks) {\n this.url = url;\n this.headers = headers;\n this.callbacks = callbacks;\n }\n connect() {\n this.ws = new WebSocket(this.url);\n this.ws.onopen = this.callbacks.onopen;\n this.ws.onerror = this.callbacks.onerror;\n this.ws.onclose = this.callbacks.onclose;\n this.ws.onmessage = this.callbacks.onmessage;\n }\n send(message) {\n if (this.ws === undefined) {\n throw new Error('WebSocket is not connected');\n }\n this.ws.send(message);\n }\n close() {\n if (this.ws === undefined) {\n throw new Error('WebSocket is not connected');\n }\n this.ws.close();\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst GOOGLE_API_KEY_HEADER = 'x-goog-api-key';\n// TODO(b/395122533): We need a secure client side authentication mechanism.\nclass WebAuth {\n constructor(apiKey) {\n this.apiKey = apiKey;\n }\n async addAuthHeaders(headers) {\n if (headers.get(GOOGLE_API_KEY_HEADER) !== null) {\n return;\n }\n if (this.apiKey.startsWith('auth_tokens/')) {\n throw new Error('Ephemeral tokens are only supported by the live API.');\n }\n // Check if API key is empty or null\n if (!this.apiKey) {\n throw new Error('API key is missing. Please provide a valid API key.');\n }\n headers.append(GOOGLE_API_KEY_HEADER, this.apiKey);\n }\n}\n\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst LANGUAGE_LABEL_PREFIX = 'gl-node/';\n/**\n * The Google GenAI SDK.\n *\n * @remarks\n * Provides access to the GenAI features through either the {@link\n * https://cloud.google.com/vertex-ai/docs/reference/rest | Gemini API} or\n * the {@link https://cloud.google.com/vertex-ai/docs/reference/rest | Vertex AI\n * API}.\n *\n * The {@link GoogleGenAIOptions.vertexai} value determines which of the API\n * services to use.\n *\n * When using the Gemini API, a {@link GoogleGenAIOptions.apiKey} must also be\n * set. When using Vertex AI, currently only {@link GoogleGenAIOptions.apiKey}\n * is supported via Express mode. {@link GoogleGenAIOptions.project} and {@link\n * GoogleGenAIOptions.location} should not be set.\n *\n * @example\n * Initializing the SDK for using the Gemini API:\n * ```ts\n * import {GoogleGenAI} from '@google/genai';\n * const ai = new GoogleGenAI({apiKey: 'GEMINI_API_KEY'});\n * ```\n *\n * @example\n * Initializing the SDK for using the Vertex AI API:\n * ```ts\n * import {GoogleGenAI} from '@google/genai';\n * const ai = new GoogleGenAI({\n * vertexai: true,\n * project: 'PROJECT_ID',\n * location: 'PROJECT_LOCATION'\n * });\n * ```\n *\n */\nclass GoogleGenAI {\n constructor(options) {\n var _a;\n if (options.apiKey == null) {\n throw new Error('An API Key must be set when running in a browser');\n }\n // Web client only supports API key mode for Vertex AI.\n if (options.project || options.location) {\n throw new Error('Vertex AI project based authentication is not supported on browser runtimes. Please do not provide a project or location.');\n }\n this.vertexai = (_a = options.vertexai) !== null && _a !== void 0 ? _a : false;\n this.apiKey = options.apiKey;\n const baseUrl = getBaseUrl(options.httpOptions, options.vertexai, \n /*vertexBaseUrlFromEnv*/ undefined, \n /*geminiBaseUrlFromEnv*/ undefined);\n if (baseUrl) {\n if (options.httpOptions) {\n options.httpOptions.baseUrl = baseUrl;\n }\n else {\n options.httpOptions = { baseUrl: baseUrl };\n }\n }\n this.apiVersion = options.apiVersion;\n const auth = new WebAuth(this.apiKey);\n this.apiClient = new ApiClient({\n auth: auth,\n apiVersion: this.apiVersion,\n apiKey: this.apiKey,\n vertexai: this.vertexai,\n httpOptions: options.httpOptions,\n userAgentExtra: LANGUAGE_LABEL_PREFIX + 'web',\n uploader: new BrowserUploader(),\n downloader: new BrowserDownloader(),\n });\n this.models = new Models(this.apiClient);\n this.live = new Live(this.apiClient, auth, new BrowserWebSocketFactory());\n this.batches = new Batches(this.apiClient);\n this.chats = new Chats(this.models, this.apiClient);\n this.caches = new Caches(this.apiClient);\n this.files = new Files(this.apiClient);\n this.operations = new Operations(this.apiClient);\n this.authTokens = new Tokens(this.apiClient);\n this.tunings = new Tunings(this.apiClient);\n }\n}\n\nexport { ActivityHandling, AdapterSize, ApiError, ApiSpec, AuthType, Batches, Behavior, BlockedReason, Caches, Chat, Chats, ComputeTokensResponse, ContentReferenceImage, ControlReferenceImage, ControlReferenceType, CountTokensResponse, CreateFileResponse, DeleteCachedContentResponse, DeleteFileResponse, DeleteModelResponse, DynamicRetrievalConfigMode, EditImageResponse, EditMode, EmbedContentResponse, EndSensitivity, Environment, FeatureSelectionPreference, FileSource, FileState, Files, FinishReason, FunctionCallingConfigMode, FunctionResponse, FunctionResponseBlob, FunctionResponseFileData, FunctionResponsePart, FunctionResponseScheduling, GenerateContentResponse, GenerateContentResponsePromptFeedback, GenerateContentResponseUsageMetadata, GenerateImagesResponse, GenerateVideosOperation, GenerateVideosResponse, GoogleGenAI, HarmBlockMethod, HarmBlockThreshold, HarmCategory, HarmProbability, HarmSeverity, HttpResponse, ImagePromptLanguage, InlinedEmbedContentResponse, InlinedResponse, JobState, Language, ListBatchJobsResponse, ListCachedContentsResponse, ListFilesResponse, ListModelsResponse, ListTuningJobsResponse, Live, LiveClientToolResponse, LiveMusicPlaybackControl, LiveMusicServerMessage, LiveSendToolResponseParameters, LiveServerMessage, MaskReferenceImage, MaskReferenceMode, MediaModality, MediaResolution, Modality, Mode, Models, MusicGenerationMode, Operations, Outcome, PagedItem, Pager, PersonGeneration, RawReferenceImage, RecontextImageResponse, ReplayResponse, SafetyFilterLevel, Scale, SegmentImageResponse, SegmentMode, Session, SingleEmbedContentResponse, StartSensitivity, StyleReferenceImage, SubjectReferenceImage, SubjectReferenceType, Tokens, TrafficType, TuningMode, TuningTask, TurnCompleteReason, TurnCoverage, Type, UpscaleImageResponse, UrlRetrievalStatus, VideoCompressionQuality, VideoGenerationMaskMode, VideoGenerationReferenceType, createFunctionResponsePartFromBase64, createFunctionResponsePartFromUri, createModelContent, createPartFromBase64, createPartFromCodeExecutionResult, createPartFromExecutableCode, createPartFromFunctionCall, createPartFromFunctionResponse, createPartFromText, createPartFromUri, createUserContent, mcpToTool, setDefaultBaseUrls };\n//# sourceMappingURL=index.mjs.map\n"],"names":["_defaultBaseGeminiUrl","_defaultBaseVertexUrl","getDefaultBaseUrls","getBaseUrl","httpOptions","vertexai","vertexBaseUrlFromEnv","geminiBaseUrlFromEnv","_a","_b","defaultBaseUrls","BaseModule","formatMap","templateString","valueMap","regex","match","key","value","setValueByPath","data","keys","i","keyName","arrayData","j","entry","d","keyToSet","existingData","getValueByPath","defaultValue","error","moveValueByPath","paths","sourcePath","destPath","sourceKeys","destKeys","excludeKeys","wildcardIdx","_moveValueRecursive","keyIdx","dataRecord","item","keysToMove","k","valuesToMove","v","newDestKeys","dk","tBytes$1","fromBytes","fetchPredictOperationParametersToVertex","fromObject","toObject","fromOperationName","fromResourceName","generateVideosOperationFromMldev$1","fromName","fromMetadata","fromDone","fromError","fromResponse","generateVideosResponseFromMldev$1","generateVideosOperationFromVertex$1","generateVideosResponseFromVertex$1","fromGeneratedVideos","transformedList","generatedVideoFromMldev$1","fromRaiMediaFilteredCount","fromRaiMediaFilteredReasons","generatedVideoFromVertex$1","fromVideo","videoFromMldev$1","videoFromVertex$1","getOperationParametersToMldev","getOperationParametersToVertex","fromUri","fromVideoBytes","fromMimeType","Outcome","Language","FunctionResponseScheduling","Type","HarmCategory","HarmBlockMethod","HarmBlockThreshold","Mode","AuthType","ApiSpec","UrlRetrievalStatus","FinishReason","HarmProbability","HarmSeverity","BlockedReason","TrafficType","Modality","MediaResolution","JobState","TuningMode","AdapterSize","TuningTask","FeatureSelectionPreference","Behavior","DynamicRetrievalConfigMode","Environment","FunctionCallingConfigMode","SafetyFilterLevel","PersonGeneration","ImagePromptLanguage","MaskReferenceMode","ControlReferenceType","SubjectReferenceType","EditMode","SegmentMode","VideoGenerationReferenceType","VideoGenerationMaskMode","VideoCompressionQuality","FileState","FileSource","TurnCompleteReason","MediaModality","StartSensitivity","EndSensitivity","ActivityHandling","TurnCoverage","Scale","MusicGenerationMode","LiveMusicPlaybackControl","HttpResponse","response","headers","pair","GenerateContentResponse","_c","_d","_e","_f","_g","_h","text","anyTextPartText","nonTextParts","part","fieldName","fieldValue","nonDataParts","functionCalls","functionCall","_j","executableCode","codeExecutionResult","EmbedContentResponse","GenerateImagesResponse","EditImageResponse","UpscaleImageResponse","RecontextImageResponse","SegmentImageResponse","ListModelsResponse","DeleteModelResponse","CountTokensResponse","ComputeTokensResponse","GenerateVideosOperation","apiResponse","isVertexAI","operation","op","ListTuningJobsResponse","DeleteCachedContentResponse","ListCachedContentsResponse","ListFilesResponse","CreateFileResponse","DeleteFileResponse","ListBatchJobsResponse","LiveServerMessage","anyTextPartFound","LiveMusicServerMessage","tModel","apiClient","model","parts","tCachesModel","transformedModel","tBlobs","blobs","blob","tBlob","tImageBlob","transformedBlob","tAudioBlob","tPart","origin","tParts","_isContent","_isFunctionCallPart","_isFunctionResponsePart","tContent","tContentsForEmbed","content","tContents","result","accumulatedParts","isContentArray","isContent","flattenTypeArrayToAnyOf","typeList","resultingSchema","listWithoutNull","type","processJsonSchema","_jsonSchema","genAISchema","schemaFieldNames","listSchemaFieldNames","dictSchemaFieldNames","incomingAnyOf","listSchemaFieldValue","dictSchemaFieldValue","tSchema","schema","tSpeechConfig","speechConfig","tLiveSpeechConfig","tTool","tool","functionDeclaration","tTools","tools","resourceName","client","resourcePrefix","splitsAfterPrefix","shouldAppendPrefix","tCachedContentName","name","tTuningJobStatus","status","tBytes","fromImageBytes","_isFile","isGeneratedVideo","isVideo","tFileName","tModelsUrl","baseModels","res","tExtractModels","hasField","mcpToGeminiTool","mcpTool","config","mcpToolSchema","mcpToolsToGeminiTool","mcpTools","functionDeclarations","toolNames","mcpToolName","geminiTool","tBatchJobSource","src","sourceObj","vertexSourcesCount","mldevSourcesCount","tBatchJobDestination","dest","destString","tRecvBatchJobDestination","obj","inlineResponsesVal","responsesArray","hasEmbedding","responseItem","responseVal","tBatchJobName","nameString","tJobState","state","stateString","batchJobDestinationFromMldev","fromFileName","fromInlinedResponses","inlinedResponseFromMldev","fromInlinedEmbedContentResponses","batchJobDestinationFromVertex","fromFormat","fromGcsUri","fromBigqueryUri","batchJobDestinationToVertex","batchJobFromMldev","fromDisplayName","fromState","fromCreateTime","fromEndTime","fromUpdateTime","fromModel","fromDest","batchJobFromVertex","fromStartTime","fromSrc","batchJobSourceFromVertex","batchJobSourceToMldev","fromInlinedRequests","inlinedRequestToMldev","batchJobSourceToVertex","blobToMldev$4","fromData","cancelBatchJobParametersToMldev","cancelBatchJobParametersToVertex","candidateFromMldev$1","fromContent","fromCitationMetadata","citationMetadataFromMldev$1","fromTokenCount","fromFinishReason","fromUrlContextMetadata","fromAvgLogprobs","fromGroundingMetadata","fromIndex","fromLogprobsResult","fromSafetyRatings","fromCitations","contentToMldev$4","fromParts","partToMldev$4","fromRole","createBatchJobConfigToMldev","parentObject","createBatchJobConfigToVertex","createBatchJobParametersToMldev","fromConfig","createBatchJobParametersToVertex","createEmbeddingsBatchJobConfigToMldev","createEmbeddingsBatchJobParametersToMldev","embeddingsBatchJobSourceToMldev","deleteBatchJobParametersToMldev","deleteBatchJobParametersToVertex","deleteResourceJobFromMldev","fromSdkHttpResponse","deleteResourceJobFromVertex","embedContentBatchToMldev","fromContents","embedContentConfigToMldev$1","fromTaskType","fromTitle","fromOutputDimensionality","fileDataToMldev$4","fromFileUri","generateContentConfigToMldev$1","fromSystemInstruction","fromTemperature","fromTopP","fromTopK","fromCandidateCount","fromMaxOutputTokens","fromStopSequences","fromResponseLogprobs","fromLogprobs","fromPresencePenalty","fromFrequencyPenalty","fromSeed","fromResponseMimeType","fromResponseSchema","fromResponseJsonSchema","fromSafetySettings","safetySettingToMldev$1","fromTools","toolToMldev$4","fromToolConfig","fromCachedContent","fromResponseModalities","fromMediaResolution","fromSpeechConfig","fromThinkingConfig","fromImageConfig","generateContentResponseFromMldev$1","fromCandidates","fromModelVersion","fromPromptFeedback","fromResponseId","fromUsageMetadata","getBatchJobParametersToMldev","getBatchJobParametersToVertex","googleMapsToMldev$4","fromEnableWidget","googleSearchToMldev$4","fromTimeRangeFilter","listBatchJobsConfigToMldev","fromPageSize","fromPageToken","listBatchJobsConfigToVertex","fromFilter","listBatchJobsParametersToMldev","listBatchJobsParametersToVertex","listBatchJobsResponseFromMldev","fromNextPageToken","fromBatchJobs","listBatchJobsResponseFromVertex","fromVideoMetadata","fromThought","fromInlineData","fromFileData","fromThoughtSignature","fromFunctionCall","fromCodeExecutionResult","fromExecutableCode","fromFunctionResponse","fromText","fromCategory","fromThreshold","fromFunctionDeclarations","fromGoogleSearch","fromGoogleSearchRetrieval","fromGoogleMaps","fromUrlContext","fromComputerUse","fromCodeExecution","PagedItem","Pager","request","params","requestParams","index","Batches","x","body","urlParams","path","requestsWrapper","requests","newRequests","requestDict","systemInstructionValue","requestContent","newConfig","timestampStr","gcsUri","bigqueryUri","queryParams","httpResponse","jsonResponse","resp","typedResp","blobToMldev$3","contentToMldev$3","partToMldev$3","createCachedContentConfigToMldev","fromTtl","fromExpireTime","toolToMldev$3","createCachedContentConfigToVertex","toolToVertex$2","fromKmsKeyName","createCachedContentParametersToMldev","createCachedContentParametersToVertex","deleteCachedContentParametersToMldev","deleteCachedContentParametersToVertex","deleteCachedContentResponseFromMldev","deleteCachedContentResponseFromVertex","fileDataToMldev$3","functionDeclarationToVertex$2","fromDescription","fromParameters","fromParametersJsonSchema","getCachedContentParametersToMldev","getCachedContentParametersToVertex","googleMapsToMldev$3","googleSearchToMldev$3","listCachedContentsConfigToMldev","listCachedContentsConfigToVertex","listCachedContentsParametersToMldev","listCachedContentsParametersToVertex","listCachedContentsResponseFromMldev","fromCachedContents","listCachedContentsResponseFromVertex","fromRetrieval","fromEnterpriseWebSearch","updateCachedContentConfigToMldev","updateCachedContentConfigToVertex","updateCachedContentParametersToMldev","updateCachedContentParametersToVertex","Caches","__values","o","s","m","__await","__asyncGenerator","thisArg","_arguments","generator","g","q","verb","awaitReturn","f","reject","n","a","b","resume","step","e","settle","r","fulfill","__asyncValues","resolve","isValidResponse","isValidContent","validateHistory","history","extractCuratedHistory","comprehensiveHistory","curatedHistory","length","modelOutput","isValid","Chats","modelsModule","Chat","inputContent","responsePromise","outputContent","fullAutomaticFunctionCallingHistory","automaticFunctionCallingHistory","streamResponse","curated","e_1","streamResponse_1","streamResponse_1_1","chunk","e_1_1","userInput","outputContents","ApiError","options","createFileParametersToMldev","fromFile","createFileResponseFromMldev","deleteFileParametersToMldev","deleteFileResponseFromMldev","getFileParametersToMldev","listFilesConfigToMldev","listFilesParametersToMldev","listFilesResponseFromMldev","fromFiles","Files","blobToMldev$2","contentToMldev$2","partToMldev$2","fileDataToMldev$2","functionDeclarationToVertex$1","generationConfigToVertex$1","fromModelSelectionConfig","fromAudioTimestamp","fromEnableAffectiveDialog","fromRoutingConfig","speechConfigToVertex$1","googleMapsToMldev$2","googleSearchToMldev$2","liveConnectConfigToMldev$1","fromGenerationConfig","toolToMldev$2","fromSessionResumption","sessionResumptionConfigToMldev$1","fromInputAudioTranscription","fromOutputAudioTranscription","fromRealtimeInputConfig","fromContextWindowCompression","fromProactivity","liveConnectConfigToVertex","toolToVertex$1","liveConnectParametersToMldev","liveConnectParametersToVertex","liveMusicSetConfigParametersToMldev","fromMusicGenerationConfig","liveMusicSetWeightedPromptsParametersToMldev","fromWeightedPrompts","liveSendRealtimeInputParametersToMldev","fromMedia","fromAudio","fromAudioStreamEnd","fromActivityStart","fromActivityEnd","liveSendRealtimeInputParametersToVertex","liveServerMessageFromVertex","fromSetupComplete","fromServerContent","fromToolCall","fromToolCallCancellation","usageMetadataFromVertex","fromGoAway","fromSessionResumptionUpdate","fromHandle","fromVoiceConfig","fromLanguageCode","fromPromptTokenCount","fromCachedContentTokenCount","fromResponseTokenCount","fromToolUsePromptTokenCount","fromThoughtsTokenCount","fromTotalTokenCount","fromPromptTokensDetails","fromCacheTokensDetails","fromResponseTokensDetails","fromToolUsePromptTokensDetails","fromTrafficType","blobToMldev$1","candidateFromMldev","citationMetadataFromMldev","computeTokensParametersToVertex","computeTokensResponseFromVertex","fromTokensInfo","contentEmbeddingFromVertex","fromValues","fromStatistics","contentEmbeddingStatisticsFromVertex","fromTruncated","contentToMldev$1","partToMldev$1","controlReferenceConfigToVertex","fromControlType","fromEnableControlImageComputation","countTokensConfigToMldev","countTokensConfigToVertex","toolToVertex","generationConfigToVertex","countTokensParametersToMldev","countTokensParametersToVertex","countTokensResponseFromMldev","fromTotalTokens","countTokensResponseFromVertex","deleteModelParametersToMldev","deleteModelParametersToVertex","deleteModelResponseFromMldev","deleteModelResponseFromVertex","editImageConfigToVertex","fromOutputGcsUri","fromNegativePrompt","fromNumberOfImages","fromAspectRatio","fromGuidanceScale","fromSafetyFilterLevel","fromPersonGeneration","fromIncludeSafetyAttributes","fromIncludeRaiReason","fromLanguage","fromOutputMimeType","fromOutputCompressionQuality","fromAddWatermark","fromLabels","fromEditMode","fromBaseSteps","editImageParametersInternalToVertex","fromPrompt","fromReferenceImages","referenceImageAPIInternalToVertex","editImageResponseFromVertex","fromGeneratedImages","generatedImageFromVertex","embedContentConfigToMldev","embedContentConfigToVertex","fromAutoTruncate","embedContentParametersToMldev","fromModelForEmbedContent","embedContentParametersToVertex","embedContentResponseFromMldev","fromEmbeddings","embedContentResponseFromVertex","endpointFromVertex","fromDeployedModelId","fileDataToMldev$1","functionDeclarationToVertex","generateContentConfigToMldev","safetySettingToMldev","toolToMldev$1","generateContentConfigToVertex","speechConfigToVertex","generateContentParametersToMldev","generateContentParametersToVertex","generateContentResponseFromMldev","generateContentResponseFromVertex","generateImagesConfigToMldev","fromImageSize","generateImagesConfigToVertex","fromEnhancePrompt","generateImagesParametersToMldev","generateImagesParametersToVertex","generateImagesResponseFromMldev","generatedImageFromMldev","fromPositivePromptSafetyAttributes","safetyAttributesFromMldev","generateImagesResponseFromVertex","safetyAttributesFromVertex","generateVideosConfigToMldev","fromNumberOfVideos","fromDurationSeconds","fromResolution","fromLastFrame","imageToMldev","videoGenerationReferenceImageToMldev","generateVideosConfigToVertex","fromFps","fromPubsubTopic","fromGenerateAudio","imageToVertex","videoGenerationReferenceImageToVertex","fromMask","videoGenerationMaskToVertex","fromCompressionQuality","generateVideosOperationFromMldev","generateVideosResponseFromMldev","generateVideosOperationFromVertex","generateVideosResponseFromVertex","generateVideosParametersToMldev","fromImage","videoToMldev","fromSource","generateVideosSourceToMldev","generateVideosParametersToVertex","videoToVertex","generateVideosSourceToVertex","generatedVideoFromMldev","generatedVideoFromVertex","imageFromMldev","fromRaiFilteredReason","fromSafetyAttributes","imageFromVertex","fromEnhancedPrompt","generatedImageMaskFromVertex","videoFromMldev","videoFromVertex","getModelParametersToMldev","getModelParametersToVertex","googleMapsToMldev$1","googleSearchToMldev$1","listModelsConfigToMldev","fromQueryBase","listModelsConfigToVertex","listModelsParametersToMldev","listModelsParametersToVertex","listModelsResponseFromMldev","fromModels","modelFromMldev","listModelsResponseFromVertex","modelFromVertex","maskReferenceConfigToVertex","fromMaskMode","fromSegmentationClasses","fromMaskDilation","fromVersion","fromTunedModelInfo","tunedModelInfoFromMldev","fromInputTokenLimit","fromOutputTokenLimit","fromSupportedActions","fromEndpoints","tunedModelInfoFromVertex","fromDefaultCheckpointId","fromCheckpoints","productImageToVertex","fromProductImage","recontextImageConfigToVertex","recontextImageParametersToVertex","recontextImageSourceToVertex","recontextImageResponseFromVertex","fromPersonImage","fromProductImages","fromReferenceImage","fromReferenceId","fromReferenceType","fromMaskImageConfig","fromControlImageConfig","fromStyleImageConfig","fromSubjectImageConfig","fromCategories","fromScores","fromContentType","scribbleImageToVertex","segmentImageConfigToVertex","fromMode","fromMaxPredictions","fromConfidenceThreshold","fromBinaryColorThreshold","segmentImageParametersToVertex","segmentImageSourceToVertex","segmentImageResponseFromVertex","fromGeneratedMasks","fromScribbleImage","fromBaseModel","updateModelConfigToMldev","updateModelConfigToVertex","updateModelParametersToMldev","updateModelParametersToVertex","upscaleImageAPIConfigInternalToVertex","fromEnhanceInputImage","fromImagePreservationFactor","upscaleImageAPIParametersInternalToVertex","fromUpscaleFactor","upscaleImageResponseFromVertex","CONTENT_TYPE_HEADER","SERVER_TIMEOUT_HEADER","USER_AGENT_HEADER","GOOGLE_API_CLIENT_HEADER","SDK_VERSION","LIBRARY_LABEL","VERTEX_AI_API_DEFAULT_VERSION","GOOGLE_AI_API_DEFAULT_VERSION","responseLineRE","ApiClient","opts","initHttpOptions","urlElement","baseUrl","urlParts","url","prependProjectLocation","patchedHttpOptions","requestInit","baseHttpOptions","requestHttpOptions","abortSignal","abortController","signal","timeoutHandle","includeExtraBodyToRequestInit","httpMethod","throwErrorIfNotOK","reader","decoder","buffer","done","chunkString","chunkJson","errorJson","code","errorMessage","processedChunkString","partialResponse","versionHeaderValue","file","fileToUpload","uploader","fileStat","mimeType","uploadUrl","errorBody","extraBody","currentBodyObject","parsedBody","deepMerge","target","source","output","sourceValue","targetValue","mergedBody","MCP_LABEL","hasMcpToolUsageFromMcpToTool","hasMcpToolUsage","isMcpCallableTool","setMcpUsageHeader","existingHeader","object","McpCallableTool","listAllTools","mcpClient","maxTools","cursor","numTools","t","mcpClients","functionMap","functionCallResponseParts","requestOptions","callToolResponse","handleWebSocketMessage$1","onmessage","event","serverMessage","LiveMusic","auth","webSocketFactory","websocketBaseUrl","apiVersion","mapToHeaders$1","apiKey","onopenResolve","onopenPromise","callbacks","onopenAwaitedCallback","websocketCallbacks","conn","headersToMap$1","clientMessage","LiveMusicSession","clientContent","setConfigParameters","playbackControl","headerMap","map","FUNCTION_RESPONSE_REQUIRES_ID","handleWebSocketMessage","jsonData","Live","clientHeaders","mapToHeaders","method","headersToMap","project","location","inputTools","convertedTools","callableTool","liveConnectParameters","Session","defaultLiveSendClientContentParamerters","contents","functionResponses","functionResponse","DEFAULT_MAX_REMOTE_CALLS","shouldDisableAfc","callableToolsPresent","isCallableTool","maxCalls","hasCallableTools","hasNonCallableTools","shouldAppendAfcHistory","Models","transformedParams","functionResponseContent","maxRemoteCalls","remoteCalls","responseContent","functionResponseParts","positivePromptSafetyAttributes","generatedImages","generatedImage","actualParams","paramsInternal","img","apiConfig","apiParams","transformedTools","newParams","newHeaders","afcTools","toolDeclaration","declaration","wereFunctionsCalled","remoteCallCount","afcToolsMap","models","responseContents","response_1","response_1_1","responseParts","typedResponseChunk","newContents","updatedContents","e_2","apiResponse_1","apiResponse_1_1","e_2_1","e_3","apiResponse_2","apiResponse_2_1","e_3_1","Operations","parameters","rawOperation","blobToMldev","contentToMldev","partToMldev","createAuthTokenConfigToMldev","fromNewSessionExpireTime","fromUses","fromLiveConnectConstraints","liveConnectConstraintsToMldev","fromLockAdditionalFields","createAuthTokenParametersToMldev","fileDataToMldev","googleMapsToMldev","googleSearchToMldev","liveConnectConfigToMldev","toolToMldev","sessionResumptionConfigToMldev","getFieldMasks","setup","fields","field","kk","convertBidiSetupToTokenSetup","setupForMaskGeneration","bidiGenerateContentSetupValue","innerSetup","preExistingFieldMask","generatedMaskFromBidi","generationConfigFields","mappedFieldsFromPreExisting","finalMaskParts","Tokens","transformedBody","cancelTuningJobParametersToMldev","cancelTuningJobParametersToVertex","createTuningJobConfigToMldev","fromTunedModelDisplayName","fromEpochCount","fromLearningRateMultiplier","fromBatchSize","fromLearningRate","createTuningJobConfigToVertex","fromValidationDataset","tuningValidationDatasetToVertex","fromExportLastCheckpointOnly","fromAdapterSize","createTuningJobParametersPrivateToMldev","fromPreTunedModel","fromTrainingDataset","tuningDatasetToMldev","createTuningJobParametersPrivateToVertex","tuningDatasetToVertex","getTuningJobParametersToMldev","getTuningJobParametersToVertex","listTuningJobsConfigToMldev","listTuningJobsConfigToVertex","listTuningJobsParametersToMldev","listTuningJobsParametersToVertex","listTuningJobsResponseFromMldev","fromTuningJobs","tuningJobFromMldev","listTuningJobsResponseFromVertex","tuningJobFromVertex","tunedModelFromMldev","fromEndpoint","fromExamples","fromVertexDatasetResource","fromTunedModel","fromSupervisedTuningSpec","fromTuningDataStats","fromEncryptionSpec","fromPartnerModelTuningSpec","fromCustomBaseModel","fromExperiment","fromOutputUri","fromPipelineJob","fromServiceAccount","fromVeoTuningSpec","tuningOperationFromMldev","Tunings","preTunedModel","paramsPrivate","tunedModelName","BrowserDownloader","_params","_apiClient","MAX_CHUNK_SIZE","MAX_RETRY_COUNT","INITIAL_RETRY_DELAY_MS","DELAY_MULTIPLIER","X_GOOG_UPLOAD_STATUS_HEADER_FIELD","uploadBlob","fileSize","offset","uploadCommand","chunkSize","retryCount","currentDelayMs","sleep","responseJson","getBlobStat","ms","resolvePromise","BrowserUploader","BrowserWebSocketFactory","BrowserWebSocket","message","GOOGLE_API_KEY_HEADER","WebAuth","LANGUAGE_LABEL_PREFIX","GoogleGenAI"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/@octokit-MBEWYTsi.js b/assets/@octokit-MBEWYTsi.js new file mode 100644 index 0000000000000000000000000000000000000000..27973ee3d31cc2031879668c7bad9c2425ac9df0 --- /dev/null +++ b/assets/@octokit-MBEWYTsi.js @@ -0,0 +1,14 @@ +import{B as z}from"./bottleneck-D_vuF9V7.js";import{g as y}from"./universal-user-agent-CLgqIJsR.js";import{H as ue}from"./before-after-hook-y8XtM9xW.js";import{f as le}from"./fast-content-type-parse-3SwieiST.js";var ge="0.0.0-development",de=`octokit-endpoint.js/${ge} ${y()}`,me={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":de},mediaType:{format:""}};function Te(e){return e?Object.keys(e).reduce((r,s)=>(r[s.toLowerCase()]=e[s],r),{}):{}}function Ee(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;const r=Object.getPrototypeOf(e);if(r===null)return!0;const s=Object.prototype.hasOwnProperty.call(r,"constructor")&&r.constructor;return typeof s=="function"&&s instanceof s&&Function.prototype.call(s)===Function.prototype.call(e)}function N(e,r){const s=Object.assign({},e);return Object.keys(r).forEach(o=>{Ee(r[o])?o in e?s[o]=N(e[o],r[o]):Object.assign(s,{[o]:r[o]}):Object.assign(s,{[o]:r[o]})}),s}function I(e){for(const r in e)e[r]===void 0&&delete e[r];return e}function U(e,r,s){if(typeof r=="string"){let[t,n]=r.split(" ");s=Object.assign(n?{method:t,url:n}:{url:t},s)}else s=Object.assign({},r);s.headers=Te(s.headers),I(s),I(s.headers);const o=N(e||{},s);return s.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(o.mediaType.previews=e.mediaType.previews.filter(t=>!o.mediaType.previews.includes(t)).concat(o.mediaType.previews)),o.mediaType.previews=(o.mediaType.previews||[]).map(t=>t.replace(/-preview/,""))),o}function he(e,r){const s=/\?/.test(e)?"&":"?",o=Object.keys(r);return o.length===0?e:e+s+o.map(t=>t==="q"?"q="+r.q.split("+").map(encodeURIComponent).join("+"):`${t}=${encodeURIComponent(r[t])}`).join("&")}var we=/\{[^{}}]+\}/g;function _e(e){return e.replace(new RegExp("(?:^\\W+)|(?:(?s.concat(o),[]):[]}function j(e,r){const s={__proto__:null};for(const o of Object.keys(e))r.indexOf(o)===-1&&(s[o]=e[o]);return s}function K(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(r){return/%[0-9A-Fa-f]/.test(r)||(r=encodeURI(r).replace(/%5B/g,"[").replace(/%5D/g,"]")),r}).join("")}function h(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(r){return"%"+r.charCodeAt(0).toString(16).toUpperCase()})}function _(e,r,s){return r=e==="+"||e==="#"?K(r):h(r),s?h(s)+"="+r:r}function E(e){return e!=null}function O(e){return e===";"||e==="&"||e==="?"}function fe(e,r,s,o){var t=e[s],n=[];if(E(t)&&t!=="")if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")t=t.toString(),o&&o!=="*"&&(t=t.substring(0,parseInt(o,10))),n.push(_(r,t,O(r)?s:""));else if(o==="*")Array.isArray(t)?t.filter(E).forEach(function(i){n.push(_(r,i,O(r)?s:""))}):Object.keys(t).forEach(function(i){E(t[i])&&n.push(_(r,t[i],i))});else{const i=[];Array.isArray(t)?t.filter(E).forEach(function(a){i.push(_(r,a))}):Object.keys(t).forEach(function(a){E(t[a])&&(i.push(h(a)),i.push(_(r,t[a].toString())))}),O(r)?n.push(h(s)+"="+i.join(",")):i.length!==0&&n.push(i.join(","))}else r===";"?E(t)&&n.push(h(s)):t===""&&(r==="&"||r==="?")?n.push(h(s)+"="):t===""&&n.push("");return n}function ye(e){return{expand:Ge.bind(null,e)}}function Ge(e,r){var s=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(o,t,n){if(t){let a="";const c=[];if(s.indexOf(t.charAt(0))!==-1&&(a=t.charAt(0),t=t.substr(1)),t.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(fe(r,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return K(n)}),e==="/"?e:e.replace(/\/$/,"")}function J(e){let r=e.method.toUpperCase(),s=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),o=Object.assign({},e.headers),t,n=j(e,["method","baseUrl","url","headers","request","mediaType"]);const i=be(s);s=ye(s).expand(n),/^http/.test(s)||(s=e.baseUrl+s);const a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=j(n,a);if(!/application\/octet-stream/i.test(o.accept)&&(e.mediaType.format&&(o.accept=o.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),s.endsWith("/graphql")&&e.mediaType.previews?.length)){const l=o.accept.match(new RegExp("(?{const g=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${g}`}).join(",")}return["GET","HEAD"].includes(r)?s=he(s,c):"data"in c?t=c.data:Object.keys(c).length&&(t=c),!o["content-type"]&&typeof t<"u"&&(o["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(r)&&typeof t>"u"&&(t=""),Object.assign({method:r,url:s,headers:o},typeof t<"u"?{body:t}:null,e.request?{request:e.request}:null)}function Pe(e,r,s){return J(U(e,r,s))}function Q(e,r){const s=U(e,r),o=Pe.bind(null,s);return Object.assign(o,{DEFAULTS:s,defaults:Q.bind(null,s),merge:U.bind(null,s),parse:J})}var ke=Q(null,me);class b extends Error{name;status;request;response;constructor(r,s,o){super(r),this.name="HttpError",this.status=Number.parseInt(s),Number.isNaN(this.status)&&(this.status=0),"response"in o&&(this.response=o.response);const t=Object.assign({},o.request);o.request.headers.authorization&&(t.headers=Object.assign({},o.request.headers,{authorization:o.request.headers.authorization.replace(new RegExp("(?[p,String(g)]));let i;try{i=await r(e.url,{method:e.method,body:t,redirect:e.request?.redirect,headers:n,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(p){let g="Unknown Error";if(p instanceof Error){if(p.name==="AbortError")throw p.status=500,p;g=p.message,p.name==="TypeError"&&"cause"in p&&(p.cause instanceof Error?g=p.cause.message:typeof p.cause=="string"&&(g=p.cause))}const w=new b(g,500,{request:e});throw w.cause=p,w}const a=i.status,c=i.url,u={};for(const[p,g]of i.headers)u[p]=g;const l={url:c,status:a,headers:u,data:""};if("deprecation"in u){const p=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),g=p&&p.pop();s.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${g?`. See ${g}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new b(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await A(i),new b("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await A(i),new b(Se(l.data),a,{response:l,request:e});return l.data=o?await A(i):i.body,l}async function A(e){const r=e.headers.get("content-type");if(!r)return e.text().catch(()=>"");const s=le.safeParse(r);if(Re(s)){let o="";try{return o=await e.text(),JSON.parse(o)}catch{return o}}else return s.type.startsWith("text/")||s.parameters.charset?.toLowerCase()==="utf-8"?e.text().catch(()=>""):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function Re(e){return e.type==="application/json"||e.type==="application/scim+json"}function Se(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){const r="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(s=>JSON.stringify(s)).join(", ")}${r}`:`${e.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function C(e,r){const s=e.defaults(r);return Object.assign(function(t,n){const i=s.merge(t,n);if(!i.request||!i.request.hook)return H(s.parse(i));const a=(c,u)=>H(s.parse(s.merge(c,u)));return Object.assign(a,{endpoint:s,defaults:C.bind(null,s)}),i.request.hook(a,i)},{endpoint:s,defaults:C.bind(null,s)})}var D=C(ke,Oe),Fe="0.0.0-development";function Ue(e){return`Request failed due to following response errors: +`+e.errors.map(r=>` - ${r.message}`).join(` +`)}var Ce=class extends Error{constructor(e,r,s){super(Ue(s)),this.request=e,this.headers=r,this.response=s,this.errors=s.errors,this.data=s.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},De=["method","baseUrl","url","headers","request","query","mediaType","operationName"],Le=["query","method","url"],W=/\/api\/v3\/?$/;function qe(e,r,s){if(s){if(typeof r=="string"&&"query"in s)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(const i in s)if(Le.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}const o=typeof r=="string"?Object.assign({query:r},s):r,t=Object.keys(o).reduce((i,a)=>De.includes(a)?(i[a]=o[a],i):(i.variables||(i.variables={}),i.variables[a]=o[a],i),{}),n=o.baseUrl||e.endpoint.DEFAULTS.baseUrl;return W.test(n)&&(t.url=n.replace(W,"/api/graphql")),e(t).then(i=>{if(i.data.errors){const a={};for(const c of Object.keys(i.headers))a[c]=i.headers[c];throw new Ce(t,a,i.data)}return i.data.data})}function L(e,r){const s=e.defaults(r);return Object.assign((t,n)=>qe(s,t,n),{defaults:L.bind(null,s),endpoint:s.endpoint})}L(D,{headers:{"user-agent":`octokit-graphql.js/${Fe} ${y()}`},method:"POST",url:"/graphql"});function Ie(e){return L(e,{method:"POST",url:"/graphql"})}var R="(?:[a-zA-Z0-9_-]+)",V="\\.",B=new RegExp(`^${R}${V}${R}${V}${R}$`),je=B.test.bind(B);async function He(e){const r=je(e),s=e.startsWith("v1.")||e.startsWith("ghs_"),o=e.startsWith("ghu_");return{type:"token",token:e,tokenType:r?"app":s?"installation":o?"user-to-server":"oauth"}}function We(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Ve(e,r,s,o){const t=r.endpoint.merge(s,o);return t.headers.authorization=We(e),r(t)}var Be=function(r){if(!r)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof r!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return r=r.replace(/^(token|bearer) +/i,""),Object.assign(He.bind(null,r),{hook:Ve.bind(null,r)})};const Z="6.1.6",x=()=>{},xe=console.warn.bind(console),$e=console.error.bind(console);function Me(e={}){return typeof e.debug!="function"&&(e.debug=x),typeof e.info!="function"&&(e.info=x),typeof e.warn!="function"&&(e.warn=xe),typeof e.error!="function"&&(e.error=$e),e}const $=`octokit-core.js/${Z} ${y()}`;class ze{static VERSION=Z;static defaults(r){return class extends this{constructor(...o){const t=o[0]||{};if(typeof r=="function"){super(r(t));return}super(Object.assign({},r,t,t.userAgent&&r.userAgent?{userAgent:`${t.userAgent} ${r.userAgent}`}:null))}}}static plugins=[];static plugin(...r){const s=this.plugins;return class extends this{static plugins=s.concat(r.filter(t=>!s.includes(t)))}}constructor(r={}){const s=new ue.Collection,o={baseUrl:D.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},r.request,{hook:s.bind(null,"request")}),mediaType:{previews:[],format:""}};if(o.headers["user-agent"]=r.userAgent?`${r.userAgent} ${$}`:$,r.baseUrl&&(o.baseUrl=r.baseUrl),r.previews&&(o.mediaType.previews=r.previews),r.timeZone&&(o.headers["time-zone"]=r.timeZone),this.request=D.defaults(o),this.graphql=Ie(this.request).defaults(o),this.log=Me(r.log),this.hook=s,r.authStrategy){const{authStrategy:n,...i}=r,a=n(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},r.auth));s.wrap("request",a.hook),this.auth=a}else if(!r.auth)this.auth=async()=>({type:"unauthenticated"});else{const n=Be(r.auth);s.wrap("request",n.hook),this.auth=n}const t=this.constructor;for(let n=0;n({async next(){if(!a)return{done:!0};try{const c=await t({method:n,url:a,headers:i}),u=Ke(c);return a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Y(e,r,s,o){return typeof s=="function"&&(o=s,s=void 0),X(e,[],q(e,r,s)[Symbol.asyncIterator](),o)}function X(e,r,s,o){return s.next().then(t=>{if(t.done)return r;let n=!1;function i(){n=!0}return r=r.concat(o?o(t.value,i):t.value.data),n?r:X(e,r,s,o)})}Object.assign(Y,{iterator:q});function Je(e){return{paginate:Object.assign(Y.bind(null,e),{iterator:q.bind(null,e)})}}Je.VERSION=Ne;var Qe=(e,r)=>`The cursor at "${e.join(",")}" did not change its value "${r}" after a page transition. Please make sure your that your query is set up correctly.`,Ze=class extends Error{constructor(e,r){super(Qe(e.pathInQuery,r)),this.pageInfo=e,this.cursorValue=r,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="MissingCursorChangeError"},Ye=class extends Error{constructor(e){super(`No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify(e,null,2)}`),this.response=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="MissingPageInfo"},Xe=e=>Object.prototype.toString.call(e)==="[object Object]";function ee(e){const r=re(e,"pageInfo");if(r.length===0)throw new Ye(e);return r}var re=(e,r,s=[])=>{for(const o of Object.keys(e)){const t=[...s,o],n=e[o];if(Xe(n)){if(n.hasOwnProperty(r))return t;const i=re(n,r,t);if(i.length>0)return i}}return[]},f=(e,r)=>r.reduce((s,o)=>s[o],e),S=(e,r,s)=>{const o=r[r.length-1],t=[...r].slice(0,-1),n=f(e,t);typeof s=="function"?n[o]=s(n[o]):n[o]=s},er=e=>{const r=ee(e);return{pathInQuery:r,pageInfo:f(e,[...r,"pageInfo"])}},se=e=>e.hasOwnProperty("hasNextPage"),rr=e=>se(e)?e.endCursor:e.startCursor,sr=e=>se(e)?e.hasNextPage:e.hasPreviousPage,oe=e=>(r,s={})=>{let o=!0,t={...s};return{[Symbol.asyncIterator]:()=>({async next(){if(!o)return{done:!0,value:{}};const n=await e.graphql(r,t),i=er(n),a=rr(i.pageInfo);if(o=sr(i.pageInfo),o&&a===t.cursor)throw new Ze(i,a);return t={...t,cursor:a},{done:!1,value:n}}})}},or=(e,r)=>{if(Object.keys(e).length===0)return Object.assign(e,r);const s=ee(e),o=[...s,"nodes"],t=f(r,o);t&&S(e,o,c=>[...c,...t]);const n=[...s,"edges"],i=f(r,n);i&&S(e,n,c=>[...c,...i]);const a=[...s,"pageInfo"];return S(e,a,f(r,a)),e},tr=e=>{const r=oe(e);return async(s,o={})=>{let t={};for await(const n of r(s,o))t=or(t,n);return t}};function Sr(e){return{graphql:Object.assign(e.graphql,{paginate:Object.assign(tr(e),{iterator:oe(e)})})}}const nr="14.0.0",ir={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}",{},{deprecated:"octokit.rest.orgs.enableOrDisableSecurityProductOnAllOrgRepos() is deprecated, see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization"}],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues",{},{deprecated:"octokit.rest.search.issuesAndPullRequests() is deprecated, see https://docs.github.com/rest/search/search#search-issues-and-pull-requests"}],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var ar=ir;const m=new Map;for(const[e,r]of Object.entries(ar))for(const[s,o]of Object.entries(r)){const[t,n,i]=o,[a,c]=t.split(/ /),u=Object.assign({method:a,url:c},n);m.has(e)||m.set(e,new Map),m.get(e).set(s,{scope:e,methodName:s,endpointDefaults:u,decorations:i})}const cr={has({scope:e},r){return m.get(e).has(r)},getOwnPropertyDescriptor(e,r){return{value:this.get(e,r),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,r,s){return Object.defineProperty(e.cache,r,s),!0},deleteProperty(e,r){return delete e.cache[r],!0},ownKeys({scope:e}){return[...m.get(e).keys()]},set(e,r,s){return e.cache[r]=s},get({octokit:e,scope:r,cache:s},o){if(s[o])return s[o];const t=m.get(r).get(o);if(!t)return;const{endpointDefaults:n,decorations:i}=t;return i?s[o]=ur(e,r,o,n,i):s[o]=e.request.defaults(n),s[o]}};function pr(e){const r={};for(const s of m.keys())r[s]=new Proxy({octokit:e,scope:s,cache:{}},cr);return r}function ur(e,r,s,o,t){const n=e.request.defaults(o);function i(...a){let c=n.endpoint.merge(...a);if(t.mapToData)return c=Object.assign({},c,{data:c[t.mapToData],[t.mapToData]:void 0}),n(c);if(t.renamed){const[u,l]=t.renamed;e.log.warn(`octokit.${r}.${s}() has been renamed to octokit.${u}.${l}()`)}if(t.deprecated&&e.log.warn(t.deprecated),t.renamedParameters){const u=n.endpoint.merge(...a);for(const[l,p]of Object.entries(t.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${r}.${s}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return n(u)}return n(...a)}return Object.assign(i,n)}function lr(e){return{rest:pr(e)}}lr.VERSION=nr;var gr="0.0.0-development";async function te(e,r,s,o){if(!s.request||!s.request.request)throw s;if(s.status>=400&&!e.doNotRetry.includes(s.status)){const t=o.request.retries!=null?o.request.retries:e.retries,n=Math.pow((o.request.retryCount||0)+1,2);throw r.retry.retryRequest(s,t,n)}throw s}async function dr(e,r,s,o){const t=new z;return t.on("failed",function(n,i){const a=~~n.request.request.retries,c=~~n.request.request.retryAfter;if(o.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),t.schedule(mr.bind(null,e,r,s),o)}async function mr(e,r,s,o){const t=await s(s,o);if(t.data&&t.data.errors&&t.data.errors.length>0&&/Something went wrong while executing your query/.test(t.data.errors[0].message)){const n=new b(t.data.errors[0].message,500,{request:o,response:t});return te(e,r,n,o)}return t}function Tr(e,r){const s=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},r.retry);return s.enabled&&(e.hook.error("request",te.bind(null,s,e)),e.hook.wrap("request",dr.bind(null,s,e))),{retry:{retryRequest:(o,t,n)=>(o.request.request=Object.assign({},o.request.request,{retries:t,retryAfter:n}),o)}}}Tr.VERSION=gr;var Er="0.0.0-development",F=()=>Promise.resolve();function hr(e,r,s){return e.retryLimiter.schedule(wr,e,r,s)}async function wr(e,r,s){const{pathname:o}=new URL(s.url,"http://github.test"),t=_r(s.method,o),n=!t&&s.method!=="GET"&&s.method!=="HEAD",i=s.method==="GET"&&o.startsWith("/search/"),a=o.startsWith("/graphql"),u=~~r.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(n||a)&&await e.write.key(e.id).schedule(u,F),n&&e.triggersNotification(o)&&await e.notifications.key(e.id).schedule(u,F),i&&await e.search.key(e.id).schedule(u,F);const l=(t?e.auth:e.global).key(e.id).schedule(u,r,s);if(a){const p=await l;if(p.data.errors!=null&&p.data.errors.some(g=>g.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:p,data:p.data})}return l}function _r(e,r){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(r)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(r)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(r)||r==="/login/oauth/access_token")}var br=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function fr(e){const s=`^(?:${e.map(o=>o.split("/").map(t=>t.startsWith("{")?"(?:.+?)":t).join("/")).map(o=>`(?:${o})`).join("|")})[^/]*$`;return new RegExp(s,"i")}var M=fr(br),ne=M.test.bind(M),d={},yr=function(e,r){d.global=new e.Group({id:"octokit-global",maxConcurrent:10,...r}),d.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...r}),d.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...r}),d.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...r}),d.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...r})};function ie(e,r){const{enabled:s=!0,Bottleneck:o=z,id:t="no-id",timeout:n=1e3*60*2,connection:i}=r.throttle||{};if(!s)return{};const a={timeout:n};typeof i<"u"&&(a.connection=i),d.global==null&&yr(o,a);const c=Object.assign({clustering:i!=null,triggersNotification:ne,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,retryLimiter:new o,id:t,...d},r.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error: + You must pass the onSecondaryRateLimit and onRateLimit error handlers. + See https://octokit.github.io/rest.js/#throttling + + const octokit = new Octokit({ + throttle: { + onSecondaryRateLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `);const u={},l=new o.Events(u);return u.on("secondary-limit",c.onSecondaryRateLimit),u.on("rate-limit",c.onRateLimit),u.on("error",p=>e.log.warn("Error in throttling-plugin limit handler",p)),c.retryLimiter.on("failed",async function(p,g){const[w,k,G]=g.args,{pathname:ae}=new URL(G.url,"http://github.test");if(!(ae.startsWith("/graphql")&&p.status!==401||p.status===403||p.status===429))return;const P=~~k.retryCount;k.retryCount=P,G.request.retryCount=P;const{wantRetry:ce,retryAfter:pe=0}=await(async function(){if(/\bsecondary rate\b/i.test(p.message)){const T=Number(p.response.headers["retry-after"])||w.fallbackSecondaryRateRetryAfter;return{wantRetry:await l.trigger("secondary-limit",T,G,e,P),retryAfter:T}}if(p.response.headers!=null&&p.response.headers["x-ratelimit-remaining"]==="0"||(p.response.data?.errors??[]).some(T=>T.type==="RATE_LIMITED")){const T=new Date(~~p.response.headers["x-ratelimit-reset"]*1e3).getTime(),v=Math.max(Math.ceil((T-Date.now())/1e3)+1,0);return{wantRetry:await l.trigger("rate-limit",v,G,e,P),retryAfter:v}}return{}})();if(ce)return k.retryCount++,pe*w.retryAfterBaseValue}),e.hook.wrap("request",hr.bind(null,c)),{}}ie.VERSION=Er;ie.triggersNotification=ne;var Gr="7.1.6";ze.defaults({userAgent:`octokit-oauth-app.js/${Gr} ${y()}`});export{ze as O,Sr as a,Tr as b,Je as p,lr as r,ie as t}; +//# sourceMappingURL=@octokit-MBEWYTsi.js.map diff --git a/assets/@octokit-MBEWYTsi.js.map b/assets/@octokit-MBEWYTsi.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2e06bb6950c3d70a9ede82c33daf48ce76dafbd0 --- /dev/null +++ b/assets/@octokit-MBEWYTsi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"@octokit-MBEWYTsi.js","sources":["../../node_modules/@octokit/endpoint/dist-bundle/index.js","../../node_modules/@octokit/request-error/dist-src/index.js","../../node_modules/@octokit/request/dist-bundle/index.js","../../node_modules/@octokit/graphql/dist-bundle/index.js","../../node_modules/@octokit/auth-token/dist-bundle/index.js","../../node_modules/@octokit/core/dist-src/version.js","../../node_modules/@octokit/core/dist-src/index.js","../../node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js","../../node_modules/@octokit/plugin-paginate-graphql/dist-bundle/index.js","../../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js","../../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js","../../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js","../../node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js","../../node_modules/@octokit/plugin-retry/dist-bundle/index.js","../../node_modules/@octokit/plugin-throttling/dist-bundle/index.js","../../node_modules/@octokit/oauth-app/dist-node/index.js"],"sourcesContent":["// pkg/dist-src/defaults.js\nimport { getUserAgent } from \"universal-user-agent\";\n\n// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/defaults.js\nvar userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\nvar DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\"\n }\n};\n\n// pkg/dist-src/util/lowercase-keys.js\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\n// pkg/dist-src/util/is-plain-object.js\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) return false;\n if (Object.prototype.toString.call(value) !== \"[object Object]\") return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null) return true;\n const Ctor = Object.prototype.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);\n}\n\n// pkg/dist-src/util/merge-deep.js\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, { [key]: options[key] });\n else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n\n// pkg/dist-src/util/remove-undefined-properties.js\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === void 0) {\n delete obj[key];\n }\n }\n return obj;\n}\n\n// pkg/dist-src/merge.js\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n } else {\n options = Object.assign({}, route);\n }\n options.headers = lowercaseKeys(options.headers);\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n if (options.url === \"/graphql\") {\n if (defaults && defaults.mediaType.previews?.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(\n (preview) => !mergedOptions.mediaType.previews.includes(preview)\n ).concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, \"\"));\n }\n return mergedOptions;\n}\n\n// pkg/dist-src/util/add-query-parameters.js\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return url + separator + names.map((name) => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\n// pkg/dist-src/util/extract-url-variable-names.js\nvar urlVariableRegex = /\\{[^{}}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/(?:^\\W+)|(?:(? a.concat(b), []);\n}\n\n// pkg/dist-src/util/omit.js\nfunction omit(object, keysToOmit) {\n const result = { __proto__: null };\n for (const key of Object.keys(object)) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n}\n\n// pkg/dist-src/util/url-template.js\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n }).join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== void 0 && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(\n encodeValue(operator, value, isKeyOperator(operator) ? key : \"\")\n );\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n result.push(\n encodeValue(operator, value2, isKeyOperator(operator) ? key : \"\")\n );\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function(value2) {\n tmp.push(encodeValue(operator, value2));\n });\n } else {\n Object.keys(value).forEach(function(k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n template = template.replace(\n /\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g,\n function(_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function(variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n }\n );\n if (template === \"/\") {\n return template;\n } else {\n return template.replace(/\\/$/, \"\");\n }\n}\n\n// pkg/dist-src/parse.js\nfunction parse(options) {\n let method = options.method.toUpperCase();\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n headers.accept = headers.accept.split(/,/).map(\n (format) => format.replace(\n /application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/,\n `application/vnd$1$2.${options.mediaType.format}`\n )\n ).join(\",\");\n }\n if (url.endsWith(\"/graphql\")) {\n if (options.mediaType.previews?.length) {\n const previewsFromAcceptHeader = headers.accept.match(/(? {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n }\n }\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n }\n }\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n return Object.assign(\n { method, url, headers },\n typeof body !== \"undefined\" ? { body } : null,\n options.request ? { request: options.request } : null\n );\n}\n\n// pkg/dist-src/endpoint-with-defaults.js\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS2 = merge(oldDefaults, newDefaults);\n const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);\n return Object.assign(endpoint2, {\n DEFAULTS: DEFAULTS2,\n defaults: withDefaults.bind(null, DEFAULTS2),\n merge: merge.bind(null, DEFAULTS2),\n parse\n });\n}\n\n// pkg/dist-src/index.js\nvar endpoint = withDefaults(null, DEFAULTS);\nexport {\n endpoint\n};\n","class RequestError extends Error {\n name;\n /**\n * http status code\n */\n status;\n /**\n * Request options that lead to the error.\n */\n request;\n /**\n * Response object if a response was received\n */\n response;\n constructor(message, statusCode, options) {\n super(message);\n this.name = \"HttpError\";\n this.status = Number.parseInt(statusCode);\n if (Number.isNaN(this.status)) {\n this.status = 0;\n }\n if (\"response\" in options) {\n this.response = options.response;\n }\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(\n /(? [\n name,\n String(value)\n ])\n );\n let fetchResponse;\n try {\n fetchResponse = await fetch(requestOptions.url, {\n method: requestOptions.method,\n body,\n redirect: requestOptions.request?.redirect,\n headers: requestHeaders,\n signal: requestOptions.request?.signal,\n // duplex must be set if request.body is ReadableStream or Async Iterables.\n // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.\n ...requestOptions.body && { duplex: \"half\" }\n });\n } catch (error) {\n let message = \"Unknown Error\";\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n error.status = 500;\n throw error;\n }\n message = error.message;\n if (error.name === \"TypeError\" && \"cause\" in error) {\n if (error.cause instanceof Error) {\n message = error.cause.message;\n } else if (typeof error.cause === \"string\") {\n message = error.cause;\n }\n }\n }\n const requestError = new RequestError(message, 500, {\n request: requestOptions\n });\n requestError.cause = error;\n throw requestError;\n }\n const status = fetchResponse.status;\n const url = fetchResponse.url;\n const responseHeaders = {};\n for (const [key, value] of fetchResponse.headers) {\n responseHeaders[key] = value;\n }\n const octokitResponse = {\n url,\n status,\n headers: responseHeaders,\n data: \"\"\n };\n if (\"deprecation\" in responseHeaders) {\n const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(\n `[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`\n );\n }\n if (status === 204 || status === 205) {\n return octokitResponse;\n }\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return octokitResponse;\n }\n throw new RequestError(fetchResponse.statusText, status, {\n response: octokitResponse,\n request: requestOptions\n });\n }\n if (status === 304) {\n octokitResponse.data = await getResponseData(fetchResponse);\n throw new RequestError(\"Not modified\", status, {\n response: octokitResponse,\n request: requestOptions\n });\n }\n if (status >= 400) {\n octokitResponse.data = await getResponseData(fetchResponse);\n throw new RequestError(toErrorMessage(octokitResponse.data), status, {\n response: octokitResponse,\n request: requestOptions\n });\n }\n octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body;\n return octokitResponse;\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (!contentType) {\n return response.text().catch(() => \"\");\n }\n const mimetype = safeParse(contentType);\n if (isJSONResponse(mimetype)) {\n let text = \"\";\n try {\n text = await response.text();\n return JSON.parse(text);\n } catch (err) {\n return text;\n }\n } else if (mimetype.type.startsWith(\"text/\") || mimetype.parameters.charset?.toLowerCase() === \"utf-8\") {\n return response.text().catch(() => \"\");\n } else {\n return response.arrayBuffer().catch(() => new ArrayBuffer(0));\n }\n}\nfunction isJSONResponse(mimetype) {\n return mimetype.type === \"application/json\" || mimetype.type === \"application/scim+json\";\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") {\n return data;\n }\n if (data instanceof ArrayBuffer) {\n return \"Unknown error\";\n }\n if (\"message\" in data) {\n const suffix = \"documentation_url\" in data ? ` - ${data.documentation_url}` : \"\";\n return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(\", \")}${suffix}` : `${data.message}${suffix}`;\n }\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint2 = oldEndpoint.defaults(newDefaults);\n const newApi = function(route, parameters) {\n const endpointOptions = endpoint2.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint2.parse(endpointOptions));\n }\n const request2 = (route2, parameters2) => {\n return fetchWrapper(\n endpoint2.parse(endpoint2.merge(route2, parameters2))\n );\n };\n Object.assign(request2, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n return endpointOptions.request.hook(request2, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint: endpoint2,\n defaults: withDefaults.bind(null, endpoint2)\n });\n}\n\n// pkg/dist-src/index.js\nvar request = withDefaults(endpoint, defaults_default);\nexport {\n request\n};\n","// pkg/dist-src/index.js\nimport { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\n\n// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/with-defaults.js\nimport { request as Request2 } from \"@octokit/request\";\n\n// pkg/dist-src/graphql.js\nimport { request as Request } from \"@octokit/request\";\n\n// pkg/dist-src/error.js\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\n` + data.errors.map((e) => ` - ${e.message}`).join(\"\\n\");\n}\nvar GraphqlResponseError = class extends Error {\n constructor(request2, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request2;\n this.headers = headers;\n this.response = response;\n this.errors = response.errors;\n this.data = response.data;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n name = \"GraphqlResponseError\";\n errors;\n data;\n};\n\n// pkg/dist-src/graphql.js\nvar NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n \"operationName\"\n];\nvar FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nvar GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request2, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(\n new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`)\n );\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(\n new Error(\n `[@octokit/graphql] \"${key}\" cannot be used as variable name`\n )\n );\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(\n parsedOptions\n ).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request2(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(\n requestOptions,\n headers,\n response.data\n );\n }\n return response.data.data;\n });\n}\n\n// pkg/dist-src/with-defaults.js\nfunction withDefaults(request2, newDefaults) {\n const newRequest = request2.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: newRequest.endpoint\n });\n}\n\n// pkg/dist-src/index.js\nvar graphql2 = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\nexport {\n GraphqlResponseError,\n graphql2 as graphql,\n withCustomRequest\n};\n","// pkg/dist-src/is-jwt.js\nvar b64url = \"(?:[a-zA-Z0-9_-]+)\";\nvar sep = \"\\\\.\";\nvar jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`);\nvar isJWT = jwtRE.test.bind(jwtRE);\n\n// pkg/dist-src/auth.js\nasync function auth(token) {\n const isApp = isJWT(token);\n const isInstallation = token.startsWith(\"v1.\") || token.startsWith(\"ghs_\");\n const isUserToServer = token.startsWith(\"ghu_\");\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token,\n tokenType\n };\n}\n\n// pkg/dist-src/with-authorization-prefix.js\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n\n// pkg/dist-src/hook.js\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(\n route,\n parameters\n );\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\n// pkg/dist-src/index.js\nvar createTokenAuth = function createTokenAuth2(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\n \"[@octokit/auth-token] Token passed to createTokenAuth is not a string\"\n );\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\nexport {\n createTokenAuth\n};\n","const VERSION = \"6.1.6\";\nexport {\n VERSION\n};\n","import { getUserAgent } from \"universal-user-agent\";\nimport Hook from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version.js\";\nconst noop = () => {\n};\nconst consoleWarn = console.warn.bind(console);\nconst consoleError = console.error.bind(console);\nfunction createLogger(logger = {}) {\n if (typeof logger.debug !== \"function\") {\n logger.debug = noop;\n }\n if (typeof logger.info !== \"function\") {\n logger.info = noop;\n }\n if (typeof logger.warn !== \"function\") {\n logger.warn = consoleWarn;\n }\n if (typeof logger.error !== \"function\") {\n logger.error = consoleError;\n }\n return logger;\n}\nconst userAgentTrail = `octokit-core.js/${VERSION} ${getUserAgent()}`;\nclass Octokit {\n static VERSION = VERSION;\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(\n Object.assign(\n {},\n defaults,\n options,\n options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null\n )\n );\n }\n };\n return OctokitWithDefaults;\n }\n static plugins = [];\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n const currentPlugins = this.plugins;\n const NewOctokit = class extends this {\n static plugins = currentPlugins.concat(\n newPlugins.filter((plugin) => !currentPlugins.includes(plugin))\n );\n };\n return NewOctokit;\n }\n constructor(options = {}) {\n const hook = new Hook.Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n };\n requestDefaults.headers[\"user-agent\"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = createLogger(options.log);\n this.hook = hook;\n if (!options.authStrategy) {\n if (!options.auth) {\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n const auth = createTokenAuth(options.auth);\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(\n Object.assign(\n {\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n },\n options.auth\n )\n );\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n const classConstructor = this.constructor;\n for (let i = 0; i < classConstructor.plugins.length; ++i) {\n Object.assign(this, classConstructor.plugins[i](this, options));\n }\n }\n // assigned during constructor\n request;\n graphql;\n log;\n hook;\n // TODO: type `octokit.auth` based on passed options.authStrategy\n auth;\n}\nexport {\n Octokit\n};\n","// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/normalize-paginated-list-response.js\nfunction normalizePaginatedListResponse(response) {\n if (!response.data) {\n return {\n ...response,\n data: []\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response;\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n\n// pkg/dist-src/iterator.js\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n url = ((normalizedResponse.headers.link || \"\").match(\n /<([^<>]+)>;\\s*rel=\"next\"/\n ) || [])[1];\n return { value: normalizedResponse };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n })\n };\n}\n\n// pkg/dist-src/paginate.js\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = void 0;\n }\n return gather(\n octokit,\n [],\n iterator(octokit, route, parameters)[Symbol.asyncIterator](),\n mapFn\n );\n}\nfunction gather(octokit, results, iterator2, mapFn) {\n return iterator2.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(\n mapFn ? mapFn(result.value, done) : result.value.data\n );\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator2, mapFn);\n });\n}\n\n// pkg/dist-src/compose-paginate.js\nvar composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\n// pkg/dist-src/generated/paginating-endpoints.js\nvar paginatingEndpoints = [\n \"GET /advisories\",\n \"GET /app/hook/deliveries\",\n \"GET /app/installation-requests\",\n \"GET /app/installations\",\n \"GET /assignments/{assignment_id}/accepted_assignments\",\n \"GET /classrooms\",\n \"GET /classrooms/{classroom_id}/assignments\",\n \"GET /enterprises/{enterprise}/code-security/configurations\",\n \"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories\",\n \"GET /enterprises/{enterprise}/dependabot/alerts\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/hosted-runners\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runner-groups\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/actions/variables\",\n \"GET /orgs/{org}/actions/variables/{name}/repositories\",\n \"GET /orgs/{org}/attestations/{subject_digest}\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/campaigns\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/code-security/configurations\",\n \"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/codespaces/secrets\",\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/copilot/billing/seats\",\n \"GET /orgs/{org}/copilot/metrics\",\n \"GET /orgs/{org}/dependabot/alerts\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}\",\n \"GET /orgs/{org}/insights/api/subject-stats\",\n \"GET /orgs/{org}/insights/api/user-stats/{user_id}\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/members/{username}/codespaces\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/organization-roles/{role_id}/teams\",\n \"GET /orgs/{org}/organization-roles/{role_id}/users\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/personal-access-token-requests\",\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\",\n \"GET /orgs/{org}/personal-access-tokens\",\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\",\n \"GET /orgs/{org}/private-registries\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/properties/values\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/rulesets\",\n \"GET /orgs/{org}/rulesets/rule-suites\",\n \"GET /orgs/{org}/rulesets/{ruleset_id}/history\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/security-advisories\",\n \"GET /orgs/{org}/settings/network-configurations\",\n \"GET /orgs/{org}/team/{team_slug}/copilot/metrics\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\",\n \"GET /repos/{owner}/{repo}/actions/organization-variables\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/variables\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/activity\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/attestations/{subject_digest}\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/alerts\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets\",\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/variables\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/rules/branches/{branch}\",\n \"GET /repos/{owner}/{repo}/rulesets\",\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites\",\n \"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/security-advisories\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/social_accounts\",\n \"GET /user/ssh_signing_keys\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/attestations/{subject_digest}\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/social_accounts\",\n \"GET /users/{username}/ssh_signing_keys\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\"\n];\n\n// pkg/dist-src/paginating-endpoints.js\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n// pkg/dist-src/index.js\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\nexport {\n composePaginateRest,\n isPaginatingEndpoint,\n paginateRest,\n paginatingEndpoints\n};\n","// pkg/dist-src/errors.js\nvar generateMessage = (path, cursorValue) => `The cursor at \"${path.join(\n \",\"\n)}\" did not change its value \"${cursorValue}\" after a page transition. Please make sure your that your query is set up correctly.`;\nvar MissingCursorChange = class extends Error {\n constructor(pageInfo, cursorValue) {\n super(generateMessage(pageInfo.pathInQuery, cursorValue));\n this.pageInfo = pageInfo;\n this.cursorValue = cursorValue;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n name = \"MissingCursorChangeError\";\n};\nvar MissingPageInfo = class extends Error {\n constructor(response) {\n super(\n `No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify(\n response,\n null,\n 2\n )}`\n );\n this.response = response;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n name = \"MissingPageInfo\";\n};\n\n// pkg/dist-src/object-helpers.js\nvar isObject = (value) => Object.prototype.toString.call(value) === \"[object Object]\";\nfunction findPaginatedResourcePath(responseData) {\n const paginatedResourcePath = deepFindPathToProperty(\n responseData,\n \"pageInfo\"\n );\n if (paginatedResourcePath.length === 0) {\n throw new MissingPageInfo(responseData);\n }\n return paginatedResourcePath;\n}\nvar deepFindPathToProperty = (object, searchProp, path = []) => {\n for (const key of Object.keys(object)) {\n const currentPath = [...path, key];\n const currentValue = object[key];\n if (isObject(currentValue)) {\n if (currentValue.hasOwnProperty(searchProp)) {\n return currentPath;\n }\n const result = deepFindPathToProperty(\n currentValue,\n searchProp,\n currentPath\n );\n if (result.length > 0) {\n return result;\n }\n }\n }\n return [];\n};\nvar get = (object, path) => {\n return path.reduce((current, nextProperty) => current[nextProperty], object);\n};\nvar set = (object, path, mutator) => {\n const lastProperty = path[path.length - 1];\n const parentPath = [...path].slice(0, -1);\n const parent = get(object, parentPath);\n if (typeof mutator === \"function\") {\n parent[lastProperty] = mutator(parent[lastProperty]);\n } else {\n parent[lastProperty] = mutator;\n }\n};\n\n// pkg/dist-src/extract-page-info.js\nvar extractPageInfos = (responseData) => {\n const pageInfoPath = findPaginatedResourcePath(responseData);\n return {\n pathInQuery: pageInfoPath,\n pageInfo: get(responseData, [...pageInfoPath, \"pageInfo\"])\n };\n};\n\n// pkg/dist-src/page-info.js\nvar isForwardSearch = (givenPageInfo) => {\n return givenPageInfo.hasOwnProperty(\"hasNextPage\");\n};\nvar getCursorFrom = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.endCursor : pageInfo.startCursor;\nvar hasAnotherPage = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.hasNextPage : pageInfo.hasPreviousPage;\n\n// pkg/dist-src/iterator.js\nvar createIterator = (octokit) => {\n return (query, initialParameters = {}) => {\n let nextPageExists = true;\n let parameters = { ...initialParameters };\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!nextPageExists) return { done: true, value: {} };\n const response = await octokit.graphql(\n query,\n parameters\n );\n const pageInfoContext = extractPageInfos(response);\n const nextCursorValue = getCursorFrom(pageInfoContext.pageInfo);\n nextPageExists = hasAnotherPage(pageInfoContext.pageInfo);\n if (nextPageExists && nextCursorValue === parameters.cursor) {\n throw new MissingCursorChange(pageInfoContext, nextCursorValue);\n }\n parameters = {\n ...parameters,\n cursor: nextCursorValue\n };\n return { done: false, value: response };\n }\n })\n };\n };\n};\n\n// pkg/dist-src/merge-responses.js\nvar mergeResponses = (response1, response2) => {\n if (Object.keys(response1).length === 0) {\n return Object.assign(response1, response2);\n }\n const path = findPaginatedResourcePath(response1);\n const nodesPath = [...path, \"nodes\"];\n const newNodes = get(response2, nodesPath);\n if (newNodes) {\n set(response1, nodesPath, (values) => {\n return [...values, ...newNodes];\n });\n }\n const edgesPath = [...path, \"edges\"];\n const newEdges = get(response2, edgesPath);\n if (newEdges) {\n set(response1, edgesPath, (values) => {\n return [...values, ...newEdges];\n });\n }\n const pageInfoPath = [...path, \"pageInfo\"];\n set(response1, pageInfoPath, get(response2, pageInfoPath));\n return response1;\n};\n\n// pkg/dist-src/paginate.js\nvar createPaginate = (octokit) => {\n const iterator = createIterator(octokit);\n return async (query, initialParameters = {}) => {\n let mergedResponse = {};\n for await (const response of iterator(\n query,\n initialParameters\n )) {\n mergedResponse = mergeResponses(mergedResponse, response);\n }\n return mergedResponse;\n };\n};\n\n// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/index.js\nfunction paginateGraphQL(octokit) {\n return {\n graphql: Object.assign(octokit.graphql, {\n paginate: Object.assign(createPaginate(octokit), {\n iterator: createIterator(octokit)\n })\n })\n };\n}\nexport {\n VERSION,\n paginateGraphQL\n};\n","const VERSION = \"14.0.0\";\nexport {\n VERSION\n};\n//# sourceMappingURL=version.js.map\n","const Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\n \"POST /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n addCustomLabelsToSelfHostedRunnerForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n addRepoAccessToSelfHostedRunnerGroupInOrg: [\n \"PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n approveWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"\n ],\n createEnvironmentVariable: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/variables\"\n ],\n createHostedRunnerForOrg: [\"POST /orgs/{org}/actions/hosted-runners\"],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n createOrgVariable: [\"POST /orgs/{org}/actions/variables\"],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\"\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\"\n ],\n createRepoVariable: [\"POST /repos/{owner}/{repo}/actions/variables\"],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"\n ],\n deleteActionsCacheById: [\n \"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"\n ],\n deleteActionsCacheByKey: [\n \"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n deleteEnvironmentVariable: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}\"\n ],\n deleteHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteOrgVariable: [\"DELETE /orgs/{org}/actions/variables/{name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"\n ],\n deleteRepoVariable: [\n \"DELETE /repos/{owner}/{repo}/actions/variables/{name}\"\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\"\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"\n ],\n downloadWorkflowRunAttemptLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"\n ],\n forceCancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel\"\n ],\n generateRunnerJitconfigForOrg: [\n \"POST /orgs/{org}/actions/runners/generate-jitconfig\"\n ],\n generateRunnerJitconfigForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig\"\n ],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\n \"GET /orgs/{org}/actions/cache/usage-by-repository\"\n ],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\"\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getCustomOidcSubClaimForRepo: [\n \"GET /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n getEnvironmentPublicKey: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key\"\n ],\n getEnvironmentSecret: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}\"\n ],\n getEnvironmentVariable: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}\"\n ],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/workflow\"\n ],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\"\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\"\n ],\n getHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}\"\n ],\n getHostedRunnersGithubOwnedImagesForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/images/github-owned\"\n ],\n getHostedRunnersLimitsForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/limits\"\n ],\n getHostedRunnersMachineSpecsForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/machine-sizes\"\n ],\n getHostedRunnersPartnerImagesForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/images/partner\"\n ],\n getHostedRunnersPlatformsForOrg: [\n \"GET /orgs/{org}/actions/hosted-runners/platforms\"\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getOrgVariable: [\"GET /orgs/{org}/actions/variables/{name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] }\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getRepoVariable: [\"GET /repos/{owner}/{repo}/actions/variables/{name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"\n ],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/secrets\"\n ],\n listEnvironmentVariables: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/variables\"\n ],\n listGithubHostedRunnersInGroupForOrg: [\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners\"\n ],\n listHostedRunnersForOrg: [\"GET /orgs/{org}/actions/hosted-runners\"],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"\n ],\n listJobsForWorkflowRunAttempt: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"\n ],\n listLabelsForSelfHostedRunnerForOrg: [\n \"GET /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n listLabelsForSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listOrgVariables: [\"GET /orgs/{org}/actions/variables\"],\n listRepoOrganizationSecrets: [\n \"GET /repos/{owner}/{repo}/actions/organization-secrets\"\n ],\n listRepoOrganizationVariables: [\n \"GET /repos/{owner}/{repo}/actions/organization-variables\"\n ],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoVariables: [\"GET /repos/{owner}/{repo}/actions/variables\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\"\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n listSelectedReposForOrgVariable: [\n \"GET /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\"\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"\n ],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgVariable: [\n \"DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}\"\n ],\n reviewCustomGatesForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule\"\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\"\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"\n ],\n setCustomLabelsForSelfHostedRunnerForOrg: [\n \"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"\n ],\n setCustomLabelsForSelfHostedRunnerForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"\n ],\n setCustomOidcSubClaimForRepo: [\n \"PUT /repos/{owner}/{repo}/actions/oidc/customization/sub\"\n ],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/workflow\"\n ],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\"\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgVariable: [\n \"PUT /orgs/{org}/actions/variables/{name}/repositories\"\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\"\n ],\n setWorkflowAccessToRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/access\"\n ],\n updateEnvironmentVariable: [\n \"PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}\"\n ],\n updateHostedRunnerForOrg: [\n \"PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}\"\n ],\n updateOrgVariable: [\"PATCH /orgs/{org}/actions/variables/{name}\"],\n updateRepoVariable: [\n \"PATCH /repos/{owner}/{repo}/actions/variables/{name}\"\n ]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\"\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\"\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\"\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\"\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\"\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsDone: [\"DELETE /notifications/threads/{thread_id}\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\"\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"] }\n ],\n addRepoToInstallationForAuthenticatedUser: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\"\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\"\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\"\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\"\n ],\n listInstallationRequestsForAuthenticatedApp: [\n \"GET /app/installation-requests\"\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\"\n ],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\n \"POST /app/hook/deliveries/{delivery_id}/attempts\"\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n {},\n { renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"] }\n ],\n removeRepoFromInstallationForAuthenticatedUser: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\"\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\"\n ],\n getGithubBillingUsageReportOrg: [\n \"GET /organizations/{org}/settings/billing/usage\"\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\"\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\"\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\"\n ]\n },\n campaigns: {\n createCampaign: [\"POST /orgs/{org}/campaigns\"],\n deleteCampaign: [\"DELETE /orgs/{org}/campaigns/{campaign_number}\"],\n getCampaignSummary: [\"GET /orgs/{org}/campaigns/{campaign_number}\"],\n listOrgCampaigns: [\"GET /orgs/{org}/campaigns\"],\n updateCampaign: [\"PATCH /orgs/{org}/campaigns/{campaign_number}\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\n \"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"\n ],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n commitAutofix: [\n \"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits\"\n ],\n createAutofix: [\n \"POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix\"\n ],\n createVariantAnalysis: [\n \"POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses\"\n ],\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"\n ],\n deleteCodeqlDatabase: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } }\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"\n ],\n getAutofix: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix\"\n ],\n getCodeqlDatabase: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}\"\n ],\n getDefaultSetup: [\"GET /repos/{owner}/{repo}/code-scanning/default-setup\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n getVariantAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}\"\n ],\n getVariantAnalysisRepoTask: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}\"\n ],\n listAlertInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n {},\n { renamed: [\"codeScanning\", \"listAlertInstances\"] }\n ],\n listCodeqlDatabases: [\n \"GET /repos/{owner}/{repo}/code-scanning/codeql/databases\"\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"\n ],\n updateDefaultSetup: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/default-setup\"\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codeSecurity: {\n attachConfiguration: [\n \"POST /orgs/{org}/code-security/configurations/{configuration_id}/attach\"\n ],\n attachEnterpriseConfiguration: [\n \"POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach\"\n ],\n createConfiguration: [\"POST /orgs/{org}/code-security/configurations\"],\n createConfigurationForEnterprise: [\n \"POST /enterprises/{enterprise}/code-security/configurations\"\n ],\n deleteConfiguration: [\n \"DELETE /orgs/{org}/code-security/configurations/{configuration_id}\"\n ],\n deleteConfigurationForEnterprise: [\n \"DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}\"\n ],\n detachConfiguration: [\n \"DELETE /orgs/{org}/code-security/configurations/detach\"\n ],\n getConfiguration: [\n \"GET /orgs/{org}/code-security/configurations/{configuration_id}\"\n ],\n getConfigurationForRepository: [\n \"GET /repos/{owner}/{repo}/code-security-configuration\"\n ],\n getConfigurationsForEnterprise: [\n \"GET /enterprises/{enterprise}/code-security/configurations\"\n ],\n getConfigurationsForOrg: [\"GET /orgs/{org}/code-security/configurations\"],\n getDefaultConfigurations: [\n \"GET /orgs/{org}/code-security/configurations/defaults\"\n ],\n getDefaultConfigurationsForEnterprise: [\n \"GET /enterprises/{enterprise}/code-security/configurations/defaults\"\n ],\n getRepositoriesForConfiguration: [\n \"GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories\"\n ],\n getRepositoriesForEnterpriseConfiguration: [\n \"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories\"\n ],\n getSingleConfigurationForEnterprise: [\n \"GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}\"\n ],\n setConfigurationAsDefault: [\n \"PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults\"\n ],\n setConfigurationAsDefaultForEnterprise: [\n \"PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults\"\n ],\n updateConfiguration: [\n \"PATCH /orgs/{org}/code-security/configurations/{configuration_id}\"\n ],\n updateEnterpriseConfiguration: [\n \"PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}\"\n ]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n checkPermissionsForDevcontainer: [\n \"GET /repos/{owner}/{repo}/codespaces/permissions_check\"\n ],\n codespaceMachinesForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/machines\"\n ],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n createOrUpdateSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}\"\n ],\n createWithPrForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"\n ],\n createWithRepoForAuthenticatedUser: [\n \"POST /repos/{owner}/{repo}/codespaces\"\n ],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\n \"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/codespaces/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n deleteSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}\"\n ],\n exportForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/exports\"\n ],\n getCodespacesForUserInOrg: [\n \"GET /orgs/{org}/members/{username}/codespaces\"\n ],\n getExportDetailsForAuthenticatedUser: [\n \"GET /user/codespaces/{codespace_name}/exports/{export_id}\"\n ],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/codespaces/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/codespaces/secrets/{secret_name}\"],\n getPublicKeyForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/public-key\"\n ],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"\n ],\n getSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}\"\n ],\n listDevcontainersInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\"\n ],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\n \"GET /orgs/{org}/codespaces\",\n {},\n { renamedParameters: { org_id: \"org\" } }\n ],\n listInRepositoryForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces\"\n ],\n listOrgSecrets: [\"GET /orgs/{org}/codespaces/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\n \"GET /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n preFlightWithRepoForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/new\"\n ],\n publishForAuthenticatedUser: [\n \"POST /user/codespaces/{codespace_name}/publish\"\n ],\n removeRepositoryForSecretForAuthenticatedUser: [\n \"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n repoMachinesForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/codespaces/machines\"\n ],\n setRepositoriesForSecretForAuthenticatedUser: [\n \"PUT /user/codespaces/secrets/{secret_name}/repositories\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories\"\n ],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\n \"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"\n ],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n copilot: {\n addCopilotSeatsForTeams: [\n \"POST /orgs/{org}/copilot/billing/selected_teams\"\n ],\n addCopilotSeatsForUsers: [\n \"POST /orgs/{org}/copilot/billing/selected_users\"\n ],\n cancelCopilotSeatAssignmentForTeams: [\n \"DELETE /orgs/{org}/copilot/billing/selected_teams\"\n ],\n cancelCopilotSeatAssignmentForUsers: [\n \"DELETE /orgs/{org}/copilot/billing/selected_users\"\n ],\n copilotMetricsForOrganization: [\"GET /orgs/{org}/copilot/metrics\"],\n copilotMetricsForTeam: [\"GET /orgs/{org}/team/{team_slug}/copilot/metrics\"],\n getCopilotOrganizationDetails: [\"GET /orgs/{org}/copilot/billing\"],\n getCopilotSeatDetailsForUser: [\n \"GET /orgs/{org}/members/{username}/copilot\"\n ],\n listCopilotSeats: [\"GET /orgs/{org}/copilot/billing/seats\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n createOrUpdateOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"\n ],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n getAlert: [\"GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"\n ],\n getRepoSecret: [\n \"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"\n ],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/dependabot/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/dependabot/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/dependabot/alerts\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}\"\n ]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\n \"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"\n ],\n diffRange: [\n \"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"\n ],\n exportSbom: [\"GET /repos/{owner}/{repo}/dependency-graph/sbom\"]\n },\n emojis: { get: [\"GET /emojis\"] },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n hostedCompute: {\n createNetworkConfigurationForOrg: [\n \"POST /orgs/{org}/settings/network-configurations\"\n ],\n deleteNetworkConfigurationFromOrg: [\n \"DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}\"\n ],\n getNetworkConfigurationForOrg: [\n \"GET /orgs/{org}/settings/network-configurations/{network_configuration_id}\"\n ],\n getNetworkSettingsForOrg: [\n \"GET /orgs/{org}/settings/network-settings/{network_settings_id}\"\n ],\n listNetworkConfigurationsForOrg: [\n \"GET /orgs/{org}/settings/network-configurations\"\n ],\n updateNetworkConfigurationForOrg: [\n \"PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}\"\n ]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] }\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\"\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] }\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] }\n ]\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n addSubIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues\"\n ],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n checkUserCanBeAssignedToIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}\"\n ],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n listSubIssues: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues\"\n ],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"\n ],\n removeSubIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue\"\n ],\n reprioritizeSubIssue: [\n \"PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority\"\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"\n ]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } }\n ]\n },\n meta: {\n get: [\"GET /meta\"],\n getAllVersions: [\"GET /versions\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\"\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\"\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\"\n ],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/repositories\"\n ],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n {},\n { renamed: [\"migrations\", \"listReposForAuthenticatedUser\"] }\n ],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"\n ]\n },\n oidc: {\n getOidcCustomSubTemplateForOrg: [\n \"GET /orgs/{org}/actions/oidc/customization/sub\"\n ],\n updateOidcCustomSubTemplateForOrg: [\n \"PUT /orgs/{org}/actions/oidc/customization/sub\"\n ]\n },\n orgs: {\n addSecurityManagerTeam: [\n \"PUT /orgs/{org}/security-managers/teams/{team_slug}\",\n {},\n {\n deprecated: \"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team\"\n }\n ],\n assignTeamToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n assignUserToOrgRole: [\n \"PUT /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\"\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createIssueType: [\"POST /orgs/{org}/issue-types\"],\n createOrUpdateCustomProperties: [\"PATCH /orgs/{org}/properties/schema\"],\n createOrUpdateCustomPropertiesValuesForRepos: [\n \"PATCH /orgs/{org}/properties/values\"\n ],\n createOrUpdateCustomProperty: [\n \"PUT /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n delete: [\"DELETE /orgs/{org}\"],\n deleteIssueType: [\"DELETE /orgs/{org}/issue-types/{issue_type_id}\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n enableOrDisableSecurityProductOnAllOrgRepos: [\n \"POST /orgs/{org}/{security_product}/{enablement}\",\n {},\n {\n deprecated: \"octokit.rest.orgs.enableOrDisableSecurityProductOnAllOrgRepos() is deprecated, see https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization\"\n }\n ],\n get: [\"GET /orgs/{org}\"],\n getAllCustomProperties: [\"GET /orgs/{org}/properties/schema\"],\n getCustomProperty: [\n \"GET /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getOrgRole: [\"GET /orgs/{org}/organization-roles/{role_id}\"],\n getOrgRulesetHistory: [\"GET /orgs/{org}/rulesets/{ruleset_id}/history\"],\n getOrgRulesetVersion: [\n \"GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}\"\n ],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listAttestations: [\"GET /orgs/{org}/attestations/{subject_digest}\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomPropertiesValuesForRepos: [\"GET /orgs/{org}/properties/values\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listIssueTypes: [\"GET /orgs/{org}/issue-types\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOrgRoleTeams: [\"GET /orgs/{org}/organization-roles/{role_id}/teams\"],\n listOrgRoleUsers: [\"GET /orgs/{org}/organization-roles/{role_id}/users\"],\n listOrgRoles: [\"GET /orgs/{org}/organization-roles\"],\n listOrganizationFineGrainedPermissions: [\n \"GET /orgs/{org}/organization-fine-grained-permissions\"\n ],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPatGrantRepositories: [\n \"GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories\"\n ],\n listPatGrantRequestRepositories: [\n \"GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories\"\n ],\n listPatGrantRequests: [\"GET /orgs/{org}/personal-access-token-requests\"],\n listPatGrants: [\"GET /orgs/{org}/personal-access-tokens\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listSecurityManagerTeams: [\n \"GET /orgs/{org}/security-managers\",\n {},\n {\n deprecated: \"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams\"\n }\n ],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeCustomProperty: [\n \"DELETE /orgs/{org}/properties/schema/{custom_property_name}\"\n ],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\"\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\"\n ],\n removeSecurityManagerTeam: [\n \"DELETE /orgs/{org}/security-managers/teams/{team_slug}\",\n {},\n {\n deprecated: \"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team\"\n }\n ],\n reviewPatGrantRequest: [\n \"POST /orgs/{org}/personal-access-token-requests/{pat_request_id}\"\n ],\n reviewPatGrantRequestsInBulk: [\n \"POST /orgs/{org}/personal-access-token-requests\"\n ],\n revokeAllOrgRolesTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}\"\n ],\n revokeAllOrgRolesUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}\"\n ],\n revokeOrgRoleTeam: [\n \"DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}\"\n ],\n revokeOrgRoleUser: [\n \"DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}\"\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\"\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateIssueType: [\"PUT /orgs/{org}/issue-types/{issue_type_id}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\"\n ],\n updatePatAccess: [\"POST /orgs/{org}/personal-access-tokens/{pat_id}\"],\n updatePatAccesses: [\"POST /orgs/{org}/personal-access-tokens\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\"\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n deletePackageForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}\"\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n deletePackageVersionForUser: [\n \"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] }\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"\n ]\n }\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\"\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\"\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\"\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\"\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"\n ],\n listDockerMigrationConflictingPackagesForAuthenticatedUser: [\n \"GET /user/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForOrganization: [\n \"GET /orgs/{org}/docker/conflicts\"\n ],\n listDockerMigrationConflictingPackagesForUser: [\n \"GET /users/{username}/docker/conflicts\"\n ],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ],\n restorePackageVersionForUser: [\n \"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"\n ]\n },\n privateRegistries: {\n createOrgPrivateRegistry: [\"POST /orgs/{org}/private-registries\"],\n deleteOrgPrivateRegistry: [\n \"DELETE /orgs/{org}/private-registries/{secret_name}\"\n ],\n getOrgPrivateRegistry: [\"GET /orgs/{org}/private-registries/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/private-registries/public-key\"],\n listOrgPrivateRegistries: [\"GET /orgs/{org}/private-registries\"],\n updateOrgPrivateRegistry: [\n \"PATCH /orgs/{org}/private-registries/{secret_name}\"\n ]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"\n ]\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n createForRelease: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"\n ],\n deleteForRelease: [\n \"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"\n ],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"\n ],\n listForRelease: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"\n ]\n },\n repos: {\n acceptInvitation: [\n \"PATCH /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"] }\n ],\n acceptInvitationForAuthenticatedUser: [\n \"PATCH /user/repository_invitations/{invitation_id}\"\n ],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n cancelPagesDeployment: [\n \"POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel\"\n ],\n checkAutomatedSecurityFixes: [\n \"GET /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkPrivateVulnerabilityReporting: [\n \"GET /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\n \"GET /repos/{owner}/{repo}/compare/{basehead}\"\n ],\n createAttestation: [\"POST /repos/{owner}/{repo}/attestations\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentBranchPolicy: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n createDeploymentProtectionRule: [\n \"POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateCustomPropertiesValues: [\n \"PATCH /repos/{owner}/{repo}/properties/values\"\n ],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createOrgRuleset: [\"POST /orgs/{org}/rulesets\"],\n createPagesDeployment: [\"POST /repos/{owner}/{repo}/pages/deployments\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createRepoRuleset: [\"POST /repos/{owner}/{repo}/rulesets\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\"\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\n \"DELETE /user/repository_invitations/{invitation_id}\",\n {},\n { renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"] }\n ],\n declineInvitationForAuthenticatedUser: [\n \"DELETE /user/repository_invitations/{invitation_id}\"\n ],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"\n ],\n deleteDeploymentBranchPolicy: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n deleteOrgRuleset: [\"DELETE /orgs/{org}/rulesets/{ruleset_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n deleteRepoRuleset: [\"DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n disableDeploymentProtectionRule: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n disablePrivateVulnerabilityReporting: [\n \"DELETE /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] }\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\"\n ],\n enablePrivateVulnerabilityReporting: [\n \"PUT /repos/{owner}/{repo}/private-vulnerability-reporting\"\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\"\n ],\n generateReleaseNotes: [\n \"POST /repos/{owner}/{repo}/releases/generate-notes\"\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n getAllDeploymentProtectionRules: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules\"\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"\n ],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"\n ],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n getBranchRules: [\"GET /repos/{owner}/{repo}/rules/branches/{branch}\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getCustomDeploymentProtectionRule: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}\"\n ],\n getCustomPropertiesValues: [\"GET /repos/{owner}/{repo}/properties/values\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentBranchPolicy: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\"\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getOrgRuleSuite: [\"GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}\"],\n getOrgRuleSuites: [\"GET /orgs/{org}/rulesets/rule-suites\"],\n getOrgRuleset: [\"GET /orgs/{org}/rulesets/{ruleset_id}\"],\n getOrgRulesets: [\"GET /orgs/{org}/rulesets\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesDeployment: [\n \"GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}\"\n ],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getRepoRuleSuite: [\n \"GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}\"\n ],\n getRepoRuleSuites: [\"GET /repos/{owner}/{repo}/rulesets/rule-suites\"],\n getRepoRuleset: [\"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n getRepoRulesetHistory: [\n \"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history\"\n ],\n getRepoRulesetVersion: [\n \"GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}\"\n ],\n getRepoRulesets: [\"GET /repos/{owner}/{repo}/rulesets\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n getWebhookDelivery: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"\n ],\n listActivities: [\"GET /repos/{owner}/{repo}/activity\"],\n listAttestations: [\n \"GET /repos/{owner}/{repo}/attestations/{subject_digest}\"\n ],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listCustomDeploymentRuleIntegrations: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps\"\n ],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentBranchPolicies: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies\"\n ],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"\n ],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\n \"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"\n ],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\"\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" }\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" }\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" }\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" }\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateDeploymentBranchPolicy: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}\"\n ],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"\n ],\n updateOrgRuleset: [\"PUT /orgs/{org}/rulesets/{ruleset_id}\"],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"\n ],\n updateRepoRuleset: [\"PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}\"],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] }\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" }\n ]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\n \"GET /search/issues\",\n {},\n {\n deprecated: \"octokit.rest.search.issuesAndPullRequests() is deprecated, see https://docs.github.com/rest/search/search#search-issues-and-pull-requests\"\n }\n ],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n createPushProtectionBypass: [\n \"POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses\"\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ],\n getScanHistory: [\"GET /repos/{owner}/{repo}/secret-scanning/scan-history\"],\n listAlertsForEnterprise: [\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\"\n ],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"\n ],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"\n ]\n },\n securityAdvisories: {\n createFork: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks\"\n ],\n createPrivateVulnerabilityReport: [\n \"POST /repos/{owner}/{repo}/security-advisories/reports\"\n ],\n createRepositoryAdvisory: [\n \"POST /repos/{owner}/{repo}/security-advisories\"\n ],\n createRepositoryAdvisoryCveRequest: [\n \"POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve\"\n ],\n getGlobalAdvisory: [\"GET /advisories/{ghsa_id}\"],\n getRepositoryAdvisory: [\n \"GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ],\n listGlobalAdvisories: [\"GET /advisories\"],\n listOrgRepositoryAdvisories: [\"GET /orgs/{org}/security-advisories\"],\n listRepositoryAdvisories: [\"GET /repos/{owner}/{repo}/security-advisories\"],\n updateRepositoryAdvisory: [\n \"PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}\"\n ]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\"\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\n \"POST /user/emails\",\n {},\n { renamed: [\"users\", \"addEmailForAuthenticatedUser\"] }\n ],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n addSocialAccountForAuthenticatedUser: [\"POST /user/social_accounts\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\n \"POST /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"] }\n ],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\n \"POST /user/keys\",\n {},\n { renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"] }\n ],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n createSshSigningKeyForAuthenticatedUser: [\"POST /user/ssh_signing_keys\"],\n deleteEmailForAuthenticated: [\n \"DELETE /user/emails\",\n {},\n { renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"] }\n ],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\n \"DELETE /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"] }\n ],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\n \"DELETE /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"] }\n ],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n deleteSocialAccountForAuthenticatedUser: [\"DELETE /user/social_accounts\"],\n deleteSshSigningKeyForAuthenticatedUser: [\n \"DELETE /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getById: [\"GET /user/{account_id}\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\n \"GET /user/gpg_keys/{gpg_key_id}\",\n {},\n { renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"] }\n ],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\n \"GET /user/keys/{key_id}\",\n {},\n { renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"] }\n ],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n getSshSigningKeyForAuthenticatedUser: [\n \"GET /user/ssh_signing_keys/{ssh_signing_key_id}\"\n ],\n list: [\"GET /users\"],\n listAttestations: [\"GET /users/{username}/attestations/{subject_digest}\"],\n listBlockedByAuthenticated: [\n \"GET /user/blocks\",\n {},\n { renamed: [\"users\", \"listBlockedByAuthenticatedUser\"] }\n ],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\n \"GET /user/emails\",\n {},\n { renamed: [\"users\", \"listEmailsForAuthenticatedUser\"] }\n ],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\n \"GET /user/following\",\n {},\n { renamed: [\"users\", \"listFollowedByAuthenticatedUser\"] }\n ],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\n \"GET /user/gpg_keys\",\n {},\n { renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"] }\n ],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\n \"GET /user/public_emails\",\n {},\n { renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"] }\n ],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\n \"GET /user/keys\",\n {},\n { renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"] }\n ],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n listSocialAccountsForAuthenticatedUser: [\"GET /user/social_accounts\"],\n listSocialAccountsForUser: [\"GET /users/{username}/social_accounts\"],\n listSshSigningKeysForAuthenticatedUser: [\"GET /user/ssh_signing_keys\"],\n listSshSigningKeysForUser: [\"GET /users/{username}/ssh_signing_keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\n \"PATCH /user/email/visibility\",\n {},\n { renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"] }\n ],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\n \"PATCH /user/email/visibility\"\n ],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\nvar endpoints_default = Endpoints;\nexport {\n endpoints_default as default\n};\n//# sourceMappingURL=endpoints.js.map\n","import ENDPOINTS from \"./generated/endpoints.js\";\nconst endpointMethodsMap = /* @__PURE__ */ new Map();\nfor (const [scope, endpoints] of Object.entries(ENDPOINTS)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign(\n {\n method,\n url\n },\n defaults\n );\n if (!endpointMethodsMap.has(scope)) {\n endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());\n }\n endpointMethodsMap.get(scope).set(methodName, {\n scope,\n methodName,\n endpointDefaults,\n decorations\n });\n }\n}\nconst handler = {\n has({ scope }, methodName) {\n return endpointMethodsMap.get(scope).has(methodName);\n },\n getOwnPropertyDescriptor(target, methodName) {\n return {\n value: this.get(target, methodName),\n // ensures method is in the cache\n configurable: true,\n writable: true,\n enumerable: true\n };\n },\n defineProperty(target, methodName, descriptor) {\n Object.defineProperty(target.cache, methodName, descriptor);\n return true;\n },\n deleteProperty(target, methodName) {\n delete target.cache[methodName];\n return true;\n },\n ownKeys({ scope }) {\n return [...endpointMethodsMap.get(scope).keys()];\n },\n set(target, methodName, value) {\n return target.cache[methodName] = value;\n },\n get({ octokit, scope, cache }, methodName) {\n if (cache[methodName]) {\n return cache[methodName];\n }\n const method = endpointMethodsMap.get(scope).get(methodName);\n if (!method) {\n return void 0;\n }\n const { endpointDefaults, decorations } = method;\n if (decorations) {\n cache[methodName] = decorate(\n octokit,\n scope,\n methodName,\n endpointDefaults,\n decorations\n );\n } else {\n cache[methodName] = octokit.request.defaults(endpointDefaults);\n }\n return cache[methodName];\n }\n};\nfunction endpointsToMethods(octokit) {\n const newMethods = {};\n for (const scope of endpointMethodsMap.keys()) {\n newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n function withDecorations(...args) {\n let options = requestWithDefaults.endpoint.merge(...args);\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: void 0\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(\n `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`\n );\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n const options2 = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(\n decorations.renamedParameters\n )) {\n if (name in options2) {\n octokit.log.warn(\n `\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`\n );\n if (!(alias in options2)) {\n options2[alias] = options2[name];\n }\n delete options2[name];\n }\n }\n return requestWithDefaults(options2);\n }\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\nexport {\n endpointsToMethods\n};\n//# sourceMappingURL=endpoints-to-methods.js.map\n","import { VERSION } from \"./version.js\";\nimport { endpointsToMethods } from \"./endpoints-to-methods.js\";\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit);\n return {\n ...api,\n rest: api\n };\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\nexport {\n legacyRestEndpointMethods,\n restEndpointMethods\n};\n//# sourceMappingURL=index.js.map\n","// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/error-request.js\nasync function errorRequest(state, octokit, error, options) {\n if (!error.request || !error.request.request) {\n throw error;\n }\n if (error.status >= 400 && !state.doNotRetry.includes(error.status)) {\n const retries = options.request.retries != null ? options.request.retries : state.retries;\n const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2);\n throw octokit.retry.retryRequest(error, retries, retryAfter);\n }\n throw error;\n}\n\n// pkg/dist-src/wrap-request.js\nimport Bottleneck from \"bottleneck/light.js\";\nimport { RequestError } from \"@octokit/request-error\";\nasync function wrapRequest(state, octokit, request, options) {\n const limiter = new Bottleneck();\n limiter.on(\"failed\", function(error, info) {\n const maxRetries = ~~error.request.request.retries;\n const after = ~~error.request.request.retryAfter;\n options.request.retryCount = info.retryCount + 1;\n if (maxRetries > info.retryCount) {\n return after * state.retryAfterBaseValue;\n }\n });\n return limiter.schedule(\n requestWithGraphqlErrorHandling.bind(null, state, octokit, request),\n options\n );\n}\nasync function requestWithGraphqlErrorHandling(state, octokit, request, options) {\n const response = await request(request, options);\n if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test(\n response.data.errors[0].message\n )) {\n const error = new RequestError(response.data.errors[0].message, 500, {\n request: options,\n response\n });\n return errorRequest(state, octokit, error, options);\n }\n return response;\n}\n\n// pkg/dist-src/index.js\nfunction retry(octokit, octokitOptions) {\n const state = Object.assign(\n {\n enabled: true,\n retryAfterBaseValue: 1e3,\n doNotRetry: [400, 401, 403, 404, 410, 422, 451],\n retries: 3\n },\n octokitOptions.retry\n );\n if (state.enabled) {\n octokit.hook.error(\"request\", errorRequest.bind(null, state, octokit));\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state, octokit));\n }\n return {\n retry: {\n retryRequest: (error, retries, retryAfter) => {\n error.request.request = Object.assign({}, error.request.request, {\n retries,\n retryAfter\n });\n return error;\n }\n }\n };\n}\nretry.VERSION = VERSION;\nexport {\n VERSION,\n retry\n};\n","// pkg/dist-src/index.js\nimport BottleneckLight from \"bottleneck/light.js\";\n\n// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/wrap-request.js\nvar noop = () => Promise.resolve();\nfunction wrapRequest(state, request, options) {\n return state.retryLimiter.schedule(doRequest, state, request, options);\n}\nasync function doRequest(state, request, options) {\n const { pathname } = new URL(options.url, \"http://github.test\");\n const isAuth = isAuthRequest(options.method, pathname);\n const isWrite = !isAuth && options.method !== \"GET\" && options.method !== \"HEAD\";\n const isSearch = options.method === \"GET\" && pathname.startsWith(\"/search/\");\n const isGraphQL = pathname.startsWith(\"/graphql\");\n const retryCount = ~~request.retryCount;\n const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {};\n if (state.clustering) {\n jobOptions.expiration = 1e3 * 60;\n }\n if (isWrite || isGraphQL) {\n await state.write.key(state.id).schedule(jobOptions, noop);\n }\n if (isWrite && state.triggersNotification(pathname)) {\n await state.notifications.key(state.id).schedule(jobOptions, noop);\n }\n if (isSearch) {\n await state.search.key(state.id).schedule(jobOptions, noop);\n }\n const req = (isAuth ? state.auth : state.global).key(state.id).schedule(jobOptions, request, options);\n if (isGraphQL) {\n const res = await req;\n if (res.data.errors != null && res.data.errors.some((error) => error.type === \"RATE_LIMITED\")) {\n const error = Object.assign(new Error(\"GraphQL Rate Limit Exceeded\"), {\n response: res,\n data: res.data\n });\n throw error;\n }\n }\n return req;\n}\nfunction isAuthRequest(method, pathname) {\n return method === \"PATCH\" && // https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-a-scoped-access-token\n /^\\/applications\\/[^/]+\\/token\\/scoped$/.test(pathname) || method === \"POST\" && // https://docs.github.com/en/rest/apps/oauth-applications?apiVersion=2022-11-28#reset-a-token\n (/^\\/applications\\/[^/]+\\/token$/.test(pathname) || // https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app\n /^\\/app\\/installations\\/[^/]+\\/access_tokens$/.test(pathname) || // https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps\n pathname === \"/login/oauth/access_token\");\n}\n\n// pkg/dist-src/generated/triggers-notification-paths.js\nvar triggers_notification_paths_default = [\n \"/orgs/{org}/invitations\",\n \"/orgs/{org}/invitations/{invitation_id}\",\n \"/orgs/{org}/teams/{team_slug}/discussions\",\n \"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"/repos/{owner}/{repo}/collaborators/{username}\",\n \"/repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"/repos/{owner}/{repo}/issues\",\n \"/repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"/repos/{owner}/{repo}/issues/{issue_number}/sub_issue\",\n \"/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority\",\n \"/repos/{owner}/{repo}/pulls\",\n \"/repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n \"/repos/{owner}/{repo}/pulls/{pull_number}/merge\",\n \"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n \"/repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"/repos/{owner}/{repo}/releases\",\n \"/teams/{team_id}/discussions\",\n \"/teams/{team_id}/discussions/{discussion_number}/comments\"\n];\n\n// pkg/dist-src/route-matcher.js\nfunction routeMatcher(paths) {\n const regexes = paths.map(\n (path) => path.split(\"/\").map((c) => c.startsWith(\"{\") ? \"(?:.+?)\" : c).join(\"/\")\n );\n const regex2 = `^(?:${regexes.map((r) => `(?:${r})`).join(\"|\")})[^/]*$`;\n return new RegExp(regex2, \"i\");\n}\n\n// pkg/dist-src/index.js\nvar regex = routeMatcher(triggers_notification_paths_default);\nvar triggersNotification = regex.test.bind(regex);\nvar groups = {};\nvar createGroups = function(Bottleneck, common) {\n groups.global = new Bottleneck.Group({\n id: \"octokit-global\",\n maxConcurrent: 10,\n ...common\n });\n groups.auth = new Bottleneck.Group({\n id: \"octokit-auth\",\n maxConcurrent: 1,\n ...common\n });\n groups.search = new Bottleneck.Group({\n id: \"octokit-search\",\n maxConcurrent: 1,\n minTime: 2e3,\n ...common\n });\n groups.write = new Bottleneck.Group({\n id: \"octokit-write\",\n maxConcurrent: 1,\n minTime: 1e3,\n ...common\n });\n groups.notifications = new Bottleneck.Group({\n id: \"octokit-notifications\",\n maxConcurrent: 1,\n minTime: 3e3,\n ...common\n });\n};\nfunction throttling(octokit, octokitOptions) {\n const {\n enabled = true,\n Bottleneck = BottleneckLight,\n id = \"no-id\",\n timeout = 1e3 * 60 * 2,\n // Redis TTL: 2 minutes\n connection\n } = octokitOptions.throttle || {};\n if (!enabled) {\n return {};\n }\n const common = { timeout };\n if (typeof connection !== \"undefined\") {\n common.connection = connection;\n }\n if (groups.global == null) {\n createGroups(Bottleneck, common);\n }\n const state = Object.assign(\n {\n clustering: connection != null,\n triggersNotification,\n fallbackSecondaryRateRetryAfter: 60,\n retryAfterBaseValue: 1e3,\n retryLimiter: new Bottleneck(),\n id,\n ...groups\n },\n octokitOptions.throttle\n );\n if (typeof state.onSecondaryRateLimit !== \"function\" || typeof state.onRateLimit !== \"function\") {\n throw new Error(`octokit/plugin-throttling error:\n You must pass the onSecondaryRateLimit and onRateLimit error handlers.\n See https://octokit.github.io/rest.js/#throttling\n\n const octokit = new Octokit({\n throttle: {\n onSecondaryRateLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `);\n }\n const events = {};\n const emitter = new Bottleneck.Events(events);\n events.on(\"secondary-limit\", state.onSecondaryRateLimit);\n events.on(\"rate-limit\", state.onRateLimit);\n events.on(\n \"error\",\n (e) => octokit.log.warn(\"Error in throttling-plugin limit handler\", e)\n );\n state.retryLimiter.on(\"failed\", async function(error, info) {\n const [state2, request, options] = info.args;\n const { pathname } = new URL(options.url, \"http://github.test\");\n const shouldRetryGraphQL = pathname.startsWith(\"/graphql\") && error.status !== 401;\n if (!(shouldRetryGraphQL || error.status === 403 || error.status === 429)) {\n return;\n }\n const retryCount = ~~request.retryCount;\n request.retryCount = retryCount;\n options.request.retryCount = retryCount;\n const { wantRetry, retryAfter = 0 } = await async function() {\n if (/\\bsecondary rate\\b/i.test(error.message)) {\n const retryAfter2 = Number(error.response.headers[\"retry-after\"]) || state2.fallbackSecondaryRateRetryAfter;\n const wantRetry2 = await emitter.trigger(\n \"secondary-limit\",\n retryAfter2,\n options,\n octokit,\n retryCount\n );\n return { wantRetry: wantRetry2, retryAfter: retryAfter2 };\n }\n if (error.response.headers != null && error.response.headers[\"x-ratelimit-remaining\"] === \"0\" || (error.response.data?.errors ?? []).some(\n (error2) => error2.type === \"RATE_LIMITED\"\n )) {\n const rateLimitReset = new Date(\n ~~error.response.headers[\"x-ratelimit-reset\"] * 1e3\n ).getTime();\n const retryAfter2 = Math.max(\n // Add one second so we retry _after_ the reset time\n // https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#exceeding-the-rate-limit\n Math.ceil((rateLimitReset - Date.now()) / 1e3) + 1,\n 0\n );\n const wantRetry2 = await emitter.trigger(\n \"rate-limit\",\n retryAfter2,\n options,\n octokit,\n retryCount\n );\n return { wantRetry: wantRetry2, retryAfter: retryAfter2 };\n }\n return {};\n }();\n if (wantRetry) {\n request.retryCount++;\n return retryAfter * state2.retryAfterBaseValue;\n }\n });\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state));\n return {};\n}\nthrottling.VERSION = VERSION;\nthrottling.triggersNotification = triggersNotification;\nexport {\n throttling\n};\n","// pkg/dist-src/index.js\nimport { createOAuthAppAuth } from \"@octokit/auth-oauth-app\";\n\n// pkg/dist-src/version.js\nvar VERSION = \"7.1.6\";\n\n// pkg/dist-src/add-event-handler.js\nfunction addEventHandler(state, eventName, eventHandler) {\n if (Array.isArray(eventName)) {\n for (const singleEventName of eventName) {\n addEventHandler(state, singleEventName, eventHandler);\n }\n return;\n }\n if (!state.eventHandlers[eventName]) {\n state.eventHandlers[eventName] = [];\n }\n state.eventHandlers[eventName].push(eventHandler);\n}\n\n// pkg/dist-src/oauth-app-octokit.js\nimport { Octokit } from \"@octokit/core\";\nimport { getUserAgent } from \"universal-user-agent\";\nvar OAuthAppOctokit = Octokit.defaults({\n userAgent: `octokit-oauth-app.js/${VERSION} ${getUserAgent()}`\n});\n\n// pkg/dist-src/methods/get-user-octokit.js\nimport { createOAuthUserAuth } from \"@octokit/auth-oauth-user\";\n\n// pkg/dist-src/emit-event.js\nasync function emitEvent(state, context) {\n const { name, action } = context;\n if (state.eventHandlers[`${name}.${action}`]) {\n for (const eventHandler of state.eventHandlers[`${name}.${action}`]) {\n await eventHandler(context);\n }\n }\n if (state.eventHandlers[name]) {\n for (const eventHandler of state.eventHandlers[name]) {\n await eventHandler(context);\n }\n }\n}\n\n// pkg/dist-src/methods/get-user-octokit.js\nasync function getUserOctokitWithState(state, options) {\n return state.octokit.auth({\n type: \"oauth-user\",\n ...options,\n async factory(options2) {\n const octokit = new state.Octokit({\n authStrategy: createOAuthUserAuth,\n auth: options2\n });\n const authentication = await octokit.auth({\n type: \"get\"\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"created\",\n token: authentication.token,\n scopes: authentication.scopes,\n authentication,\n octokit\n });\n return octokit;\n }\n });\n}\n\n// pkg/dist-src/methods/get-web-flow-authorization-url.js\nimport * as OAuthMethods from \"@octokit/oauth-methods\";\nfunction getWebFlowAuthorizationUrlWithState(state, options) {\n const optionsWithDefaults = {\n clientId: state.clientId,\n request: state.octokit.request,\n ...options,\n allowSignup: state.allowSignup ?? options.allowSignup,\n redirectUrl: options.redirectUrl ?? state.redirectUrl,\n scopes: options.scopes ?? state.defaultScopes\n };\n return OAuthMethods.getWebFlowAuthorizationUrl({\n clientType: state.clientType,\n ...optionsWithDefaults\n });\n}\n\n// pkg/dist-src/methods/create-token.js\nimport * as OAuthAppAuth from \"@octokit/auth-oauth-app\";\nasync function createTokenWithState(state, options) {\n const authentication = await state.octokit.auth({\n type: \"oauth-user\",\n ...options\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"created\",\n token: authentication.token,\n scopes: authentication.scopes,\n authentication,\n octokit: new state.Octokit({\n authStrategy: OAuthAppAuth.createOAuthUserAuth,\n auth: {\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n token: authentication.token,\n scopes: authentication.scopes,\n refreshToken: authentication.refreshToken,\n expiresAt: authentication.expiresAt,\n refreshTokenExpiresAt: authentication.refreshTokenExpiresAt\n }\n })\n });\n return { authentication };\n}\n\n// pkg/dist-src/methods/check-token.js\nimport * as OAuthMethods2 from \"@octokit/oauth-methods\";\nasync function checkTokenWithState(state, options) {\n const result = await OAuthMethods2.checkToken({\n // @ts-expect-error not worth the extra code to appease TS\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n ...options\n });\n Object.assign(result.authentication, { type: \"token\", tokenType: \"oauth\" });\n return result;\n}\n\n// pkg/dist-src/methods/reset-token.js\nimport * as OAuthMethods3 from \"@octokit/oauth-methods\";\nimport { createOAuthUserAuth as createOAuthUserAuth3 } from \"@octokit/auth-oauth-user\";\nasync function resetTokenWithState(state, options) {\n const optionsWithDefaults = {\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n ...options\n };\n if (state.clientType === \"oauth-app\") {\n const response2 = await OAuthMethods3.resetToken({\n clientType: \"oauth-app\",\n ...optionsWithDefaults\n });\n const authentication2 = Object.assign(response2.authentication, {\n type: \"token\",\n tokenType: \"oauth\"\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"reset\",\n token: response2.authentication.token,\n scopes: response2.authentication.scopes || void 0,\n authentication: authentication2,\n octokit: new state.Octokit({\n authStrategy: createOAuthUserAuth3,\n auth: {\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n token: response2.authentication.token,\n scopes: response2.authentication.scopes\n }\n })\n });\n return { ...response2, authentication: authentication2 };\n }\n const response = await OAuthMethods3.resetToken({\n clientType: \"github-app\",\n ...optionsWithDefaults\n });\n const authentication = Object.assign(response.authentication, {\n type: \"token\",\n tokenType: \"oauth\"\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"reset\",\n token: response.authentication.token,\n authentication,\n octokit: new state.Octokit({\n authStrategy: createOAuthUserAuth3,\n auth: {\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n token: response.authentication.token\n }\n })\n });\n return { ...response, authentication };\n}\n\n// pkg/dist-src/methods/refresh-token.js\nimport * as OAuthMethods4 from \"@octokit/oauth-methods\";\nimport { createOAuthUserAuth as createOAuthUserAuth4 } from \"@octokit/auth-oauth-user\";\nasync function refreshTokenWithState(state, options) {\n if (state.clientType === \"oauth-app\") {\n throw new Error(\n \"[@octokit/oauth-app] app.refreshToken() is not supported for OAuth Apps\"\n );\n }\n const response = await OAuthMethods4.refreshToken({\n clientType: \"github-app\",\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n refreshToken: options.refreshToken\n });\n const authentication = Object.assign(response.authentication, {\n type: \"token\",\n tokenType: \"oauth\"\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"refreshed\",\n token: response.authentication.token,\n authentication,\n octokit: new state.Octokit({\n authStrategy: createOAuthUserAuth4,\n auth: {\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n token: response.authentication.token\n }\n })\n });\n return { ...response, authentication };\n}\n\n// pkg/dist-src/methods/scope-token.js\nimport * as OAuthMethods5 from \"@octokit/oauth-methods\";\nimport { createOAuthUserAuth as createOAuthUserAuth5 } from \"@octokit/auth-oauth-user\";\nasync function scopeTokenWithState(state, options) {\n if (state.clientType === \"oauth-app\") {\n throw new Error(\n \"[@octokit/oauth-app] app.scopeToken() is not supported for OAuth Apps\"\n );\n }\n const response = await OAuthMethods5.scopeToken({\n clientType: \"github-app\",\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n ...options\n });\n const authentication = Object.assign(response.authentication, {\n type: \"token\",\n tokenType: \"oauth\"\n });\n await emitEvent(state, {\n name: \"token\",\n action: \"scoped\",\n token: response.authentication.token,\n authentication,\n octokit: new state.Octokit({\n authStrategy: createOAuthUserAuth5,\n auth: {\n clientType: state.clientType,\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n token: response.authentication.token\n }\n })\n });\n return { ...response, authentication };\n}\n\n// pkg/dist-src/methods/delete-token.js\nimport * as OAuthMethods6 from \"@octokit/oauth-methods\";\nimport { createUnauthenticatedAuth } from \"@octokit/auth-unauthenticated\";\nasync function deleteTokenWithState(state, options) {\n const optionsWithDefaults = {\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n ...options\n };\n const response = state.clientType === \"oauth-app\" ? await OAuthMethods6.deleteToken({\n clientType: \"oauth-app\",\n ...optionsWithDefaults\n }) : (\n /* v8 ignore next 4 */\n await OAuthMethods6.deleteToken({\n clientType: \"github-app\",\n ...optionsWithDefaults\n })\n );\n await emitEvent(state, {\n name: \"token\",\n action: \"deleted\",\n token: options.token,\n octokit: new state.Octokit({\n authStrategy: createUnauthenticatedAuth,\n auth: {\n reason: `Handling \"token.deleted\" event. The access for the token has been revoked.`\n }\n })\n });\n return response;\n}\n\n// pkg/dist-src/methods/delete-authorization.js\nimport * as OAuthMethods7 from \"@octokit/oauth-methods\";\nimport { createUnauthenticatedAuth as createUnauthenticatedAuth2 } from \"@octokit/auth-unauthenticated\";\nasync function deleteAuthorizationWithState(state, options) {\n const optionsWithDefaults = {\n clientId: state.clientId,\n clientSecret: state.clientSecret,\n request: state.octokit.request,\n ...options\n };\n const response = state.clientType === \"oauth-app\" ? await OAuthMethods7.deleteAuthorization({\n clientType: \"oauth-app\",\n ...optionsWithDefaults\n }) : (\n /* v8 ignore next 4 */\n await OAuthMethods7.deleteAuthorization({\n clientType: \"github-app\",\n ...optionsWithDefaults\n })\n );\n await emitEvent(state, {\n name: \"token\",\n action: \"deleted\",\n token: options.token,\n octokit: new state.Octokit({\n authStrategy: createUnauthenticatedAuth2,\n auth: {\n reason: `Handling \"token.deleted\" event. The access for the token has been revoked.`\n }\n })\n });\n await emitEvent(state, {\n name: \"authorization\",\n action: \"deleted\",\n token: options.token,\n octokit: new state.Octokit({\n authStrategy: createUnauthenticatedAuth2,\n auth: {\n reason: `Handling \"authorization.deleted\" event. The access for the app has been revoked.`\n }\n })\n });\n return response;\n}\n\n// pkg/dist-src/middleware/unknown-route-response.js\nfunction unknownRouteResponse(request) {\n return {\n status: 404,\n headers: { \"content-type\": \"application/json\" },\n text: JSON.stringify({\n error: `Unknown route: ${request.method} ${request.url}`\n })\n };\n}\n\n// pkg/dist-src/middleware/handle-request.js\nasync function handleRequest(app, { pathPrefix = \"/api/github/oauth\" }, request) {\n let { pathname } = new URL(request.url, \"http://localhost\");\n if (!pathname.startsWith(`${pathPrefix}/`)) {\n return void 0;\n }\n if (request.method === \"OPTIONS\") {\n return {\n status: 200,\n headers: {\n \"access-control-allow-origin\": \"*\",\n \"access-control-allow-methods\": \"*\",\n \"access-control-allow-headers\": \"Content-Type, User-Agent, Authorization\"\n }\n };\n }\n pathname = pathname.slice(pathPrefix.length + 1);\n const route = [request.method, pathname].join(\" \");\n const routes = {\n getLogin: `GET login`,\n getCallback: `GET callback`,\n createToken: `POST token`,\n getToken: `GET token`,\n patchToken: `PATCH token`,\n patchRefreshToken: `PATCH refresh-token`,\n scopeToken: `POST token/scoped`,\n deleteToken: `DELETE token`,\n deleteGrant: `DELETE grant`\n };\n if (!Object.values(routes).includes(route)) {\n return unknownRouteResponse(request);\n }\n let json;\n try {\n const text = await request.text();\n json = text ? JSON.parse(text) : {};\n } catch (error) {\n return {\n status: 400,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify({\n error: \"[@octokit/oauth-app] request error\"\n })\n };\n }\n const { searchParams } = new URL(request.url, \"http://localhost\");\n const query = Object.fromEntries(searchParams);\n const headers = request.headers;\n try {\n if (route === routes.getLogin) {\n const authOptions = {};\n if (query.state) {\n Object.assign(authOptions, { state: query.state });\n }\n if (query.scopes) {\n Object.assign(authOptions, { scopes: query.scopes.split(\",\") });\n }\n if (query.allowSignup) {\n Object.assign(authOptions, {\n allowSignup: query.allowSignup === \"true\"\n });\n }\n if (query.redirectUrl) {\n Object.assign(authOptions, { redirectUrl: query.redirectUrl });\n }\n const { url } = app.getWebFlowAuthorizationUrl(authOptions);\n return { status: 302, headers: { location: url } };\n }\n if (route === routes.getCallback) {\n if (query.error) {\n throw new Error(\n `[@octokit/oauth-app] ${query.error} ${query.error_description}`\n );\n }\n if (!query.code) {\n throw new Error('[@octokit/oauth-app] \"code\" parameter is required');\n }\n const {\n authentication: { token: token2 }\n } = await app.createToken({\n code: query.code\n });\n return {\n status: 200,\n headers: {\n \"content-type\": \"text/html\"\n },\n text: `

Token created successfully

\n\n

Your token is: ${token2}. Copy it now as it cannot be shown again.

`\n };\n }\n if (route === routes.createToken) {\n const { code, redirectUrl } = json;\n if (!code) {\n throw new Error('[@octokit/oauth-app] \"code\" parameter is required');\n }\n const result = await app.createToken({\n code,\n redirectUrl\n });\n delete result.authentication.clientSecret;\n return {\n status: 201,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify(result)\n };\n }\n if (route === routes.getToken) {\n const token2 = headers.authorization?.substr(\"token \".length);\n if (!token2) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n const result = await app.checkToken({\n token: token2\n });\n delete result.authentication.clientSecret;\n return {\n status: 200,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify(result)\n };\n }\n if (route === routes.patchToken) {\n const token2 = headers.authorization?.substr(\"token \".length);\n if (!token2) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n const result = await app.resetToken({ token: token2 });\n delete result.authentication.clientSecret;\n return {\n status: 200,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify(result)\n };\n }\n if (route === routes.patchRefreshToken) {\n const token2 = headers.authorization?.substr(\"token \".length);\n if (!token2) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n const { refreshToken: refreshToken2 } = json;\n if (!refreshToken2) {\n throw new Error(\n \"[@octokit/oauth-app] refreshToken must be sent in request body\"\n );\n }\n const result = await app.refreshToken({ refreshToken: refreshToken2 });\n delete result.authentication.clientSecret;\n return {\n status: 200,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify(result)\n };\n }\n if (route === routes.scopeToken) {\n const token2 = headers.authorization?.substr(\"token \".length);\n if (!token2) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n const result = await app.scopeToken({\n token: token2,\n ...json\n });\n delete result.authentication.clientSecret;\n return {\n status: 200,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify(result)\n };\n }\n if (route === routes.deleteToken) {\n const token2 = headers.authorization?.substr(\"token \".length);\n if (!token2) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n await app.deleteToken({\n token: token2\n });\n return {\n status: 204,\n headers: { \"access-control-allow-origin\": \"*\" }\n };\n }\n const token = headers.authorization?.substr(\"token \".length);\n if (!token) {\n throw new Error(\n '[@octokit/oauth-app] \"Authorization\" header is required'\n );\n }\n await app.deleteAuthorization({\n token\n });\n return {\n status: 204,\n headers: { \"access-control-allow-origin\": \"*\" }\n };\n } catch (error) {\n return {\n status: 400,\n headers: {\n \"content-type\": \"application/json\",\n \"access-control-allow-origin\": \"*\"\n },\n text: JSON.stringify({ error: error.message })\n };\n }\n}\n\n// pkg/dist-src/middleware/node/parse-request.js\nfunction parseRequest(request) {\n const { method, url, headers } = request;\n async function text() {\n const text2 = await new Promise((resolve, reject) => {\n let bodyChunks = [];\n request.on(\"error\", reject).on(\"data\", (chunk) => bodyChunks.push(chunk)).on(\"end\", () => resolve(Buffer.concat(bodyChunks).toString()));\n });\n return text2;\n }\n return { method, url, headers, text };\n}\n\n// pkg/dist-src/middleware/node/send-response.js\nfunction sendResponse(octokitResponse, response) {\n response.writeHead(octokitResponse.status, octokitResponse.headers);\n response.end(octokitResponse.text);\n}\n\n// pkg/dist-src/middleware/node/index.js\nfunction createNodeMiddleware(app, options = {}) {\n return async function(request, response, next) {\n const octokitRequest = await parseRequest(request);\n const octokitResponse = await handleRequest(app, options, octokitRequest);\n if (octokitResponse) {\n sendResponse(octokitResponse, response);\n return true;\n } else {\n next?.();\n return false;\n }\n };\n}\n\n// pkg/dist-src/middleware/web-worker/parse-request.js\nfunction parseRequest2(request) {\n const headers = Object.fromEntries(request.headers.entries());\n return {\n method: request.method,\n url: request.url,\n headers,\n text: () => request.text()\n };\n}\n\n// pkg/dist-src/middleware/web-worker/send-response.js\nfunction sendResponse2(octokitResponse) {\n const responseOptions = {\n status: octokitResponse.status\n };\n if (octokitResponse.headers) {\n Object.assign(responseOptions, { headers: octokitResponse.headers });\n }\n return new Response(octokitResponse.text, responseOptions);\n}\n\n// pkg/dist-src/middleware/web-worker/index.js\nfunction createWebWorkerHandler(app, options = {}) {\n return async function(request) {\n const octokitRequest = await parseRequest2(request);\n const octokitResponse = await handleRequest(app, options, octokitRequest);\n return octokitResponse ? sendResponse2(octokitResponse) : void 0;\n };\n}\n\n// pkg/dist-src/middleware/aws-lambda/api-gateway-v2-parse-request.js\nfunction parseRequest3(request) {\n const { method } = request.requestContext.http;\n let url = request.rawPath;\n const { stage } = request.requestContext;\n if (url.startsWith(\"/\" + stage)) url = url.substring(stage.length + 1);\n if (request.rawQueryString) url += \"?\" + request.rawQueryString;\n const headers = request.headers;\n const text = async () => request.body || \"\";\n return { method, url, headers, text };\n}\n\n// pkg/dist-src/middleware/aws-lambda/api-gateway-v2-send-response.js\nfunction sendResponse3(octokitResponse) {\n return {\n statusCode: octokitResponse.status,\n headers: octokitResponse.headers,\n body: octokitResponse.text\n };\n}\n\n// pkg/dist-src/middleware/aws-lambda/api-gateway-v2.js\nfunction createAWSLambdaAPIGatewayV2Handler(app, options = {}) {\n return async function(event) {\n const request = parseRequest3(event);\n const response = await handleRequest(app, options, request);\n return response ? sendResponse3(response) : void 0;\n };\n}\n\n// pkg/dist-src/index.js\nvar OAuthApp = class {\n static VERSION = VERSION;\n static defaults(defaults) {\n const OAuthAppWithDefaults = class extends this {\n constructor(...args) {\n super({\n ...defaults,\n ...args[0]\n });\n }\n };\n return OAuthAppWithDefaults;\n }\n constructor(options) {\n const Octokit2 = options.Octokit || OAuthAppOctokit;\n this.type = options.clientType || \"oauth-app\";\n const octokit = new Octokit2({\n authStrategy: createOAuthAppAuth,\n auth: {\n clientType: this.type,\n clientId: options.clientId,\n clientSecret: options.clientSecret\n }\n });\n const state = {\n clientType: this.type,\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n // @ts-expect-error defaultScopes not permitted for GitHub Apps\n defaultScopes: options.defaultScopes || [],\n allowSignup: options.allowSignup,\n baseUrl: options.baseUrl,\n redirectUrl: options.redirectUrl,\n log: options.log,\n Octokit: Octokit2,\n octokit,\n eventHandlers: {}\n };\n this.on = addEventHandler.bind(null, state);\n this.octokit = octokit;\n this.getUserOctokit = getUserOctokitWithState.bind(null, state);\n this.getWebFlowAuthorizationUrl = getWebFlowAuthorizationUrlWithState.bind(\n null,\n state\n );\n this.createToken = createTokenWithState.bind(\n null,\n state\n );\n this.checkToken = checkTokenWithState.bind(\n null,\n state\n );\n this.resetToken = resetTokenWithState.bind(\n null,\n state\n );\n this.refreshToken = refreshTokenWithState.bind(\n null,\n state\n );\n this.scopeToken = scopeTokenWithState.bind(\n null,\n state\n );\n this.deleteToken = deleteTokenWithState.bind(null, state);\n this.deleteAuthorization = deleteAuthorizationWithState.bind(null, state);\n }\n // assigned during constructor\n type;\n on;\n octokit;\n getUserOctokit;\n getWebFlowAuthorizationUrl;\n createToken;\n checkToken;\n resetToken;\n refreshToken;\n scopeToken;\n deleteToken;\n deleteAuthorization;\n};\nexport {\n OAuthApp,\n createAWSLambdaAPIGatewayV2Handler,\n createNodeMiddleware,\n createWebWorkerHandler,\n handleRequest,\n sendResponse as sendNodeResponse,\n unknownRouteResponse\n};\n"],"names":["VERSION","userAgent","getUserAgent","DEFAULTS","lowercaseKeys","object","newObj","key","isPlainObject","value","proto","Ctor","mergeDeep","defaults","options","result","removeUndefinedProperties","obj","merge","route","method","url","mergedOptions","preview","addQueryParameters","parameters","separator","names","name","urlVariableRegex","removeNonChars","variableName","extractUrlVariableNames","matches","a","b","omit","keysToOmit","encodeReserved","str","part","encodeUnreserved","c","encodeValue","operator","isDefined","isKeyOperator","getValues","context","modifier","value2","k","tmp","parseUrl","template","expand","operators","_","expression","literal","values","variable","parse","headers","body","urlVariableNames","omittedParameters","option","remainingParameters","format","previewsFromAcceptHeader","endpointWithDefaults","withDefaults","oldDefaults","newDefaults","DEFAULTS2","endpoint2","endpoint","RequestError","message","statusCode","requestCopy","defaults_default","fetchWrapper","requestOptions","fetch","log","parseSuccessResponseBody","requestHeaders","fetchResponse","error","requestError","status","responseHeaders","octokitResponse","deprecationLink","getResponseData","toErrorMessage","response","contentType","mimetype","safeParse","isJSONResponse","text","data","suffix","v","oldEndpoint","endpointOptions","request2","route2","parameters2","request","_buildMessageForResponseErrors","e","GraphqlResponseError","NON_VARIABLE_OPTIONS","FORBIDDEN_VARIABLE_OPTIONS","GHES_V3_SUFFIX_REGEX","graphql","query","parsedOptions","baseUrl","newRequest","withCustomRequest","customRequest","b64url","sep","jwtRE","isJWT","auth","token","isApp","isInstallation","isUserToServer","withAuthorizationPrefix","hook","createTokenAuth","noop","consoleWarn","consoleError","createLogger","logger","userAgentTrail","Octokit","args","newPlugins","currentPlugins","plugin","Hook","requestDefaults","authStrategy","otherOptions","classConstructor","i","normalizePaginatedListResponse","incompleteResults","repositorySelection","totalCount","namespaceKey","iterator","octokit","requestMethod","normalizedResponse","paginate","mapFn","gather","results","iterator2","earlyExit","done","paginateRest","generateMessage","path","cursorValue","MissingCursorChange","pageInfo","MissingPageInfo","isObject","findPaginatedResourcePath","responseData","paginatedResourcePath","deepFindPathToProperty","searchProp","currentPath","currentValue","get","current","nextProperty","set","mutator","lastProperty","parentPath","parent","extractPageInfos","pageInfoPath","isForwardSearch","givenPageInfo","getCursorFrom","hasAnotherPage","createIterator","initialParameters","nextPageExists","pageInfoContext","nextCursorValue","mergeResponses","response1","response2","nodesPath","newNodes","edgesPath","newEdges","createPaginate","mergedResponse","paginateGraphQL","Endpoints","endpoints_default","endpointMethodsMap","scope","endpoints","ENDPOINTS","methodName","decorations","endpointDefaults","handler","target","descriptor","cache","decorate","endpointsToMethods","newMethods","requestWithDefaults","withDecorations","newScope","newMethodName","options2","alias","restEndpointMethods","errorRequest","state","retries","retryAfter","wrapRequest","limiter","Bottleneck","info","maxRetries","after","requestWithGraphqlErrorHandling","retry","octokitOptions","doRequest","pathname","isAuth","isAuthRequest","isWrite","isSearch","isGraphQL","jobOptions","req","res","triggers_notification_paths_default","routeMatcher","paths","regex2","r","regex","triggersNotification","groups","createGroups","common","throttling","enabled","BottleneckLight","id","timeout","connection","events","emitter","state2","retryCount","wantRetry","retryAfter2","error2","rateLimitReset"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]} \ No newline at end of file diff --git a/assets/AccessibilityAuditor-9k2YK-kF.js b/assets/AccessibilityAuditor-9k2YK-kF.js new file mode 100644 index 0000000000000000000000000000000000000000..48733cba7b5631182c6f4b1d3dcffd2901ff84b2 --- /dev/null +++ b/assets/AccessibilityAuditor-9k2YK-kF.js @@ -0,0 +1,2 @@ +import{r as i,j as t}from"./react-CIdJ77ke.js";import{ai as N,L as w,S as v,M as S,an as L}from"./index-CX7Qxd1D.js";import{r as R}from"./accessibilityService-PX6aNbbc.js";import"./workspaceConnectorService-KhhKdOYD.js";import"./@braintree-DzxiOROe.js";import"./react-dom-R9L8nDNe.js";import"./scheduler-CoSDG3-6.js";import"./@google-CcUHq7Ay.js";import"./idb-Dob3nYDb.js";import"./marked-BrGMJkBT.js";import"./mermaid-KwKZWwy0.js";import"./dayjs-CeEF-NGT.js";import"./d3-transition-CiCB8KJE.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CtIaNujU.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-BYoC3mS3.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CTpFWynZ.js";import"./lodash-es-Dt6r0yiR.js";import"./d3-shape-CX8xTzfR.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-DRZz3QW5.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-oKFFZvz7.js";import"./cytoscape-DtBltrT8.js";import"./cytoscape-cose-bilkent-Cgr1thlj.js";import"./cose-base-CwCxnKwh.js";import"./layout-base-CMXQqlmj.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";import"./jszip-CFFhfFtd.js";import"./octokit-B6bKu3NB.js";import"./@octokit-MBEWYTsi.js";import"./bottleneck-D_vuF9V7.js";import"./universal-user-agent-CLgqIJsR.js";import"./before-after-hook-y8XtM9xW.js";import"./fast-content-type-parse-3SwieiST.js";import"./axe-core-Cc5paZPx.js";const Pt=()=>{const[o,f]=i.useState("https://react.dev"),[g,b]=i.useState(""),[l,d]=i.useState(null),[s,n]=i.useState(!1),[c,x]=i.useState(null),[u,a]=i.useState({}),m=i.useRef(null),j=()=>{const r=o.startsWith("http")?o:`https://${o}`;b(r),n(!0),d(null),a({})},y=async()=>{if(s&&m.current)try{const r=await R(m.current.contentWindow.document);d(r)}catch(r){console.error(r),alert("Could not audit this page. This may be due to security restrictions (CORS).")}finally{n(!1)}},A=async r=>{const e=r.id;x(e);try{const h=await L(r);a(p=>({...p,[e]:h}))}catch{a(p=>({...p,[e]:"Could not get suggestion."}))}finally{x(null)}};return t.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary",children:[t.jsxs("header",{className:"mb-6",children:[t.jsxs("h1",{className:"text-3xl font-bold flex items-center",children:[t.jsx(N,{}),t.jsx("span",{className:"ml-3",children:"Automated Accessibility Auditor"})]}),t.jsx("p",{className:"text-text-secondary mt-1",children:"Audit a live URL for accessibility issues and get AI-powered fixes."})]}),t.jsxs("div",{className:"flex gap-2 mb-4",children:[t.jsx("input",{type:"text",value:o,onChange:r=>f(r.target.value),placeholder:"https://example.com",className:"flex-grow p-2 border rounded"}),t.jsx("button",{onClick:j,disabled:s,className:"btn-primary px-6 py-2",children:s?"Auditing...":"Audit"})]}),t.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 min-h-0",children:[t.jsx("div",{className:"bg-background border-2 border-dashed border-border rounded-lg overflow-hidden",children:t.jsx("iframe",{ref:m,src:g,title:"Audit Target",className:"w-full h-full bg-white",onLoad:y,sandbox:"allow-scripts allow-same-origin"})}),t.jsxs("div",{className:"bg-surface p-4 border border-border rounded-lg flex flex-col",children:[t.jsx("h3",{className:"text-lg font-bold mb-2",children:"Audit Results"}),t.jsxs("div",{className:"flex-grow overflow-y-auto pr-2",children:[s&&t.jsx("div",{className:"flex justify-center items-center h-full",children:t.jsx(w,{})}),l&&(l.violations.length===0?t.jsx("p",{children:"No violations found!"}):l.violations.map((r,e)=>t.jsxs("div",{className:"p-3 mb-2 bg-background border border-border rounded",children:[t.jsx("p",{className:"font-bold text-red-600",children:r.help}),t.jsx("p",{className:"text-sm my-1",children:r.description}),t.jsxs("button",{onClick:()=>A(r),disabled:!!c,className:"text-xs flex items-center gap-1 text-primary font-semibold",children:[t.jsx(v,{})," ",c===r.id?"Getting fix...":"Ask AI for a fix"]}),u[r.id]&&t.jsx("div",{className:"mt-2 text-xs border-t pt-2",children:t.jsx(S,{content:u[r.id]})})]},r.id+e)))]})]})]})]})};export{Pt as AccessibilityAuditor}; +//# sourceMappingURL=AccessibilityAuditor-9k2YK-kF.js.map diff --git a/assets/AccessibilityAuditor-9k2YK-kF.js.map b/assets/AccessibilityAuditor-9k2YK-kF.js.map new file mode 100644 index 0000000000000000000000000000000000000000..366be2632eecebd4786fd4f0609c0c847f4621e9 --- /dev/null +++ b/assets/AccessibilityAuditor-9k2YK-kF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccessibilityAuditor-9k2YK-kF.js","sources":["../../components/features/AccessibilityAuditor.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { suggestA11yFix } from '../../services/index.ts';\nimport { runAxeAudit, AxeResult } from '../../services/auditing/accessibilityService.ts';\nimport { EyeIcon, SparklesIcon } from '../icons.tsx';\nimport { LoadingSpinner, MarkdownRenderer } from '../shared/index.tsx';\n\nexport const AccessibilityAuditor: React.FC = () => {\n const [url, setUrl] = useState('https://react.dev');\n const [auditUrl, setAuditUrl] = useState('');\n const [results, setResults] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingAi, setIsLoadingAi] = useState(null);\n const [aiFixes, setAiFixes] = useState>({});\n const iframeRef = useRef(null);\n\n const handleAudit = () => {\n const targetUrl = url.startsWith('http') ? url : `https://${url}`;\n setAuditUrl(targetUrl);\n setIsLoading(true);\n setResults(null);\n setAiFixes({});\n };\n \n const handleIframeLoad = async () => {\n if (isLoading && iframeRef.current) {\n try {\n const auditResults = await runAxeAudit(iframeRef.current.contentWindow!.document);\n setResults(auditResults);\n } catch (error) {\n console.error(error);\n alert('Could not audit this page. This may be due to security restrictions (CORS).');\n } finally {\n setIsLoading(false);\n }\n }\n };\n \n const handleGetFix = async (issue: any) => {\n const issueId = issue.id;\n setIsLoadingAi(issueId);\n try {\n const fix = await suggestA11yFix(issue);\n setAiFixes(prev => ({...prev, [issueId]: fix}));\n } catch(e) {\n setAiFixes(prev => ({...prev, [issueId]: 'Could not get suggestion.'}));\n } finally {\n setIsLoadingAi(null);\n }\n };\n\n return (\n
\n

Automated Accessibility Auditor

Audit a live URL for accessibility issues and get AI-powered fixes.

\n
setUrl(e.target.value)} placeholder=\"https://example.com\" className=\"flex-grow p-2 border rounded\"/>
\n
\n
`},pc=(t,e,i,r,s)=>{const n=t.append("div");n.attr("id",i),r&&n.attr("style",r);const a=n.append("svg").attr("id",e).attr("width","100%").attr("xmlns",q3);return s&&a.attr("xmlns:xlink",s),a.append("g"),t};function gc(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const rm=(t,e,i,r)=>{var s,n,a;(s=t.getElementById(e))==null||s.remove(),(n=t.getElementById(i))==null||n.remove(),(a=t.getElementById(r))==null||a.remove()},sm=async function(t,e,i){var r,s,n,a,o,l;Wo();const h=A1(e);e=h.code;const u=ee();B.debug(u),e.length>(u?.maxTextSize??P3)&&(e=M3);const p="#"+t,d="i"+t,g="#"+d,y="d"+t,x="#"+y;let _=yt("body");const w=u.securityLevel===V3,E=u.securityLevel===z3,R=u.fontFamily;if(i!==void 0){if(i&&(i.innerHTML=""),w){const I=gc(yt(i),d);_=yt(I.nodes()[0].contentDocument.body),_.node().style.margin=0}else _=yt(i);pc(_,t,y,`font-family: ${R}`,W3)}else{if(rm(document,t,y,d),w){const I=gc(yt("body"),d);_=yt(I.nodes()[0].contentDocument.body),_.node().style.margin=0}else _=yt("body");pc(_,t,y)}let v,T;try{v=await Go(e,{title:h.title})}catch(I){v=new p1("error"),T=I}const k=_.select(x).node(),A=v.type,S=k.firstChild,m=S.firstChild,C=(s=(r=v.renderer).getClasses)==null?void 0:s.call(r,e,v),f=tm(u,A,C,p),L=document.createElement("style");L.innerHTML=f,S.insertBefore(L,m);try{await v.renderer.draw(e,t,ic,v)}catch(I){throw yg.draw(e,t,ic),I}const b=_.select(`${x} svg`),P=(a=(n=v.db).getAccTitle)==null?void 0:a.call(n),U=(l=(o=v.db).getAccDescription)==null?void 0:l.call(o);am(A,b,P,U),_.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Y3);let N=_.select(x).node().innerHTML;if(B.debug("config.arrowMarkerAbsolute",u.arrowMarkerAbsolute),N=em(N,w,Te(u.arrowMarkerAbsolute)),w){const I=_.select(x+" svg").node();N=im(N,I)}else E||(N=Zr.sanitize(N,{ADD_TAGS:K3,ADD_ATTR:Q3}));if(zg(),T)throw T;const F=yt(w?g:x).node();return F&&"remove"in F&&F.remove(),{svg:N,bindFunctions:v.db.bindFunctions}};function nm(t={}){var e;t?.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),q2(t),t?.theme&&t.theme in Zi?t.themeVariables=Zi[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Zi.default.getThemeVariables(t.themeVariables));const i=typeof t=="object"?z2(t):Mh();Fo(i.logLevel),Wo()}const Go=(t,e={})=>{const{code:i}=v1(t);return Vg(i,e)};function am(t,e,i,r){Wg(e,t),Yg(e,i,r,e.attr("id"))}const wr=Object.freeze({render:sm,parse:Z3,getDiagramFromText:Go,initialize:nm,getConfig:ee,setConfig:Vh,getSiteConfig:Mh,updateSiteConfig:W2,reset:()=>{wn()},globalReset:()=>{wn(es)},defaultConfig:es});Fo(ee().logLevel);wn(ee());const om=async()=>{B.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(ts).map(async([i,{detector:r,loader:s}])=>{if(s)try{qo(i)}catch{try{const{diagram:a,id:o}=await s();An(o,a,r)}catch(a){throw B.error(`Failed to load external diagram with key ${i}. Removing from detectors.`),delete ts[i],a}}}))).filter(i=>i.status==="rejected");if(e.length>0){B.error(`Failed to load ${e.length} external diagrams`);for(const i of e)B.error(i);throw new Error(`Failed to load ${e.length} external diagrams`)}},lm=(t,e,i)=>{B.warn(t),Oh(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},L1=async function(t={querySelector:".mermaid"}){try{await cm(t)}catch(e){if(Oh(e)&&B.error(e.str),Li.parseError&&Li.parseError(e),!t.suppressErrors)throw B.error("Use the suppressErrors option to suppress these errors"),e}},cm=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const r=wr.getConfig();B.debug(`${t?"":"No "}Callback function found`);let s;if(i)s=i;else if(e)s=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");B.debug(`Found ${s.length} diagrams`),r?.startOnLoad!==void 0&&(B.debug("Start On Load: "+r?.startOnLoad),wr.updateSiteConfig({startOnLoad:r?.startOnLoad}));const n=new Rt.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed);let a;const o=[];for(const l of Array.from(s)){B.info("Rendering diagram: "+l.id);/*! Check if previously processed */if(l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const h=`mermaid-${n.next()}`;a=l.innerHTML,a=kh(Rt.entityDecode(a)).trim().replace(//gi,"
");const u=Rt.detectInit(a);u&&B.debug("Detected early reinit: ",u);try{const{svg:p,bindFunctions:d}=await F1(h,a,l);l.innerHTML=p,t&&await t(h),d&&d(l)}catch(p){lm(p,o,Li.parseError)}}if(o.length>0)throw o[0]},B1=function(t){wr.initialize(t)},hm=async function(t,e,i){B.warn("mermaid.init is deprecated. Please use run instead."),t&&B1(t);const r={postRenderCallback:i,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await L1(r)},um=async(t,{lazyLoad:e=!0}={})=>{Ah(...t),e===!1&&await om()},I1=function(){if(Li.startOnLoad){const{startOnLoad:t}=wr.getConfig();t&&Li.run().catch(e=>B.error("Mermaid failed to initialize",e))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",I1,!1)}const dm=function(t){Li.parseError=t},Dn=[];let Fa=!1;const D1=async()=>{if(!Fa){for(Fa=!0;Dn.length>0;){const t=Dn.shift();if(t)try{await t()}catch(e){B.error("Error executing queue",e)}}Fa=!1}},fm=async(t,e)=>new Promise((i,r)=>{const s=()=>new Promise((n,a)=>{wr.parse(t,e).then(o=>{n(o),i(o)},o=>{var l;B.error("Error parsing",o),(l=Li.parseError)==null||l.call(Li,o),a(o),r(o)})});Dn.push(s),D1().catch(r)}),F1=(t,e,i)=>new Promise((r,s)=>{const n=()=>new Promise((a,o)=>{wr.render(t,e,i).then(l=>{a(l),r(l)},l=>{var h;B.error("Error parsing",l),(h=Li.parseError)==null||h.call(Li,l),o(l),s(l)})});Dn.push(n),D1().catch(s)}),Li={startOnLoad:!0,mermaidAPI:wr,parse:fm,render:F1,init:hm,run:L1,registerExternalDiagrams:um,initialize:B1,parseError:void 0,contentLoaded:I1,setParseErrorHandler:dm,detectType:na},la=(t,e)=>{const i=t.append("rect");if(i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),e.name&&i.attr("name",e.name),e.rx!==void 0&&i.attr("rx",e.rx),e.ry!==void 0&&i.attr("ry",e.ry),e.attrs!==void 0)for(const r in e.attrs)i.attr(r,e.attrs[r]);return e.class!==void 0&&i.attr("class",e.class),i},R1=(t,e)=>{const i={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};la(t,i).lower()},pm=(t,e)=>{const i=e.text.replace(ds," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),e.class!==void 0&&r.attr("class",e.class);const s=r.append("tspan");return s.attr("x",e.x+e.textMargin*2),s.text(i),r},gm=(t,e,i,r)=>{const s=t.append("image");s.attr("x",e),s.attr("y",i);const n=Fr.sanitizeUrl(r);s.attr("xlink:href",n)},ym=(t,e,i,r)=>{const s=t.append("use");s.attr("x",e),s.attr("y",i);const n=Fr.sanitizeUrl(r);s.attr("xlink:href",`#${n}`)},Pr=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),jo=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});var Fn=(function(){var t=function(pt,ut,ot,lt){for(ot=ot||{},lt=pt.length;lt--;ot[pt[lt]]=ut);return ot},e=[1,24],i=[1,25],r=[1,26],s=[1,27],n=[1,28],a=[1,63],o=[1,64],l=[1,65],h=[1,66],u=[1,67],p=[1,68],d=[1,69],g=[1,29],y=[1,30],x=[1,31],_=[1,32],w=[1,33],E=[1,34],R=[1,35],v=[1,36],T=[1,37],k=[1,38],A=[1,39],S=[1,40],m=[1,41],C=[1,42],f=[1,43],L=[1,44],b=[1,45],P=[1,46],U=[1,47],N=[1,48],D=[1,50],F=[1,51],I=[1,52],M=[1,53],z=[1,54],st=[1,55],j=[1,56],dt=[1,57],K=[1,58],G=[1,59],tt=[1,60],nt=[14,42],Q=[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],J=[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],O=[1,82],at=[1,83],W=[1,84],ft=[1,85],V=[12,14,42],vt=[12,14,33,42],X=[12,14,33,42,76,77,79,80],St=[12,33],bt=[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],Vt={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(ut,ot,lt,ht,$,rt,it){var ct=rt.length-1;switch($){case 3:ht.setDirection("TB");break;case 4:ht.setDirection("BT");break;case 5:ht.setDirection("RL");break;case 6:ht.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:ht.setC4Type(rt[ct-3]);break;case 19:ht.setTitle(rt[ct].substring(6)),this.$=rt[ct].substring(6);break;case 20:ht.setAccDescription(rt[ct].substring(15)),this.$=rt[ct].substring(15);break;case 21:this.$=rt[ct].trim(),ht.setTitle(this.$);break;case 22:case 23:this.$=rt[ct].trim(),ht.setAccDescription(this.$);break;case 28:case 29:rt[ct].splice(2,0,"ENTERPRISE"),ht.addPersonOrSystemBoundary(...rt[ct]),this.$=rt[ct];break;case 30:ht.addPersonOrSystemBoundary(...rt[ct]),this.$=rt[ct];break;case 31:rt[ct].splice(2,0,"CONTAINER"),ht.addContainerBoundary(...rt[ct]),this.$=rt[ct];break;case 32:ht.addDeploymentNode("node",...rt[ct]),this.$=rt[ct];break;case 33:ht.addDeploymentNode("nodeL",...rt[ct]),this.$=rt[ct];break;case 34:ht.addDeploymentNode("nodeR",...rt[ct]),this.$=rt[ct];break;case 35:ht.popBoundaryParseStack();break;case 39:ht.addPersonOrSystem("person",...rt[ct]),this.$=rt[ct];break;case 40:ht.addPersonOrSystem("external_person",...rt[ct]),this.$=rt[ct];break;case 41:ht.addPersonOrSystem("system",...rt[ct]),this.$=rt[ct];break;case 42:ht.addPersonOrSystem("system_db",...rt[ct]),this.$=rt[ct];break;case 43:ht.addPersonOrSystem("system_queue",...rt[ct]),this.$=rt[ct];break;case 44:ht.addPersonOrSystem("external_system",...rt[ct]),this.$=rt[ct];break;case 45:ht.addPersonOrSystem("external_system_db",...rt[ct]),this.$=rt[ct];break;case 46:ht.addPersonOrSystem("external_system_queue",...rt[ct]),this.$=rt[ct];break;case 47:ht.addContainer("container",...rt[ct]),this.$=rt[ct];break;case 48:ht.addContainer("container_db",...rt[ct]),this.$=rt[ct];break;case 49:ht.addContainer("container_queue",...rt[ct]),this.$=rt[ct];break;case 50:ht.addContainer("external_container",...rt[ct]),this.$=rt[ct];break;case 51:ht.addContainer("external_container_db",...rt[ct]),this.$=rt[ct];break;case 52:ht.addContainer("external_container_queue",...rt[ct]),this.$=rt[ct];break;case 53:ht.addComponent("component",...rt[ct]),this.$=rt[ct];break;case 54:ht.addComponent("component_db",...rt[ct]),this.$=rt[ct];break;case 55:ht.addComponent("component_queue",...rt[ct]),this.$=rt[ct];break;case 56:ht.addComponent("external_component",...rt[ct]),this.$=rt[ct];break;case 57:ht.addComponent("external_component_db",...rt[ct]),this.$=rt[ct];break;case 58:ht.addComponent("external_component_queue",...rt[ct]),this.$=rt[ct];break;case 60:ht.addRel("rel",...rt[ct]),this.$=rt[ct];break;case 61:ht.addRel("birel",...rt[ct]),this.$=rt[ct];break;case 62:ht.addRel("rel_u",...rt[ct]),this.$=rt[ct];break;case 63:ht.addRel("rel_d",...rt[ct]),this.$=rt[ct];break;case 64:ht.addRel("rel_l",...rt[ct]),this.$=rt[ct];break;case 65:ht.addRel("rel_r",...rt[ct]),this.$=rt[ct];break;case 66:ht.addRel("rel_b",...rt[ct]),this.$=rt[ct];break;case 67:rt[ct].splice(0,1),ht.addRel("rel",...rt[ct]),this.$=rt[ct];break;case 68:ht.updateElStyle("update_el_style",...rt[ct]),this.$=rt[ct];break;case 69:ht.updateRelStyle("update_rel_style",...rt[ct]),this.$=rt[ct];break;case 70:ht.updateLayoutConfig("update_layout_config",...rt[ct]),this.$=rt[ct];break;case 71:this.$=[rt[ct]];break;case 72:rt[ct].unshift(rt[ct-1]),this.$=rt[ct];break;case 73:case 75:this.$=rt[ct].trim();break;case 74:let re={};re[rt[ct-1].trim()]=rt[ct].trim(),this.$=re;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:e,23:i,24:r,26:s,28:n,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{13:70,19:20,20:21,21:22,22:e,23:i,24:r,26:s,28:n,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{13:71,19:20,20:21,21:22,22:e,23:i,24:r,26:s,28:n,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{13:72,19:20,20:21,21:22,22:e,23:i,24:r,26:s,28:n,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{13:73,19:20,20:21,21:22,22:e,23:i,24:r,26:s,28:n,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{14:[1,74]},t(nt,[2,13],{43:23,29:49,30:61,32:62,20:75,34:a,36:o,37:l,38:h,39:u,40:p,41:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt}),t(nt,[2,14]),t(Q,[2,16],{12:[1,76]}),t(nt,[2,36],{12:[1,77]}),t(J,[2,19]),t(J,[2,20]),{25:[1,78]},{27:[1,79]},t(J,[2,23]),{35:80,75:81,76:O,77:at,79:W,80:ft},{35:86,75:81,76:O,77:at,79:W,80:ft},{35:87,75:81,76:O,77:at,79:W,80:ft},{35:88,75:81,76:O,77:at,79:W,80:ft},{35:89,75:81,76:O,77:at,79:W,80:ft},{35:90,75:81,76:O,77:at,79:W,80:ft},{35:91,75:81,76:O,77:at,79:W,80:ft},{35:92,75:81,76:O,77:at,79:W,80:ft},{35:93,75:81,76:O,77:at,79:W,80:ft},{35:94,75:81,76:O,77:at,79:W,80:ft},{35:95,75:81,76:O,77:at,79:W,80:ft},{35:96,75:81,76:O,77:at,79:W,80:ft},{35:97,75:81,76:O,77:at,79:W,80:ft},{35:98,75:81,76:O,77:at,79:W,80:ft},{35:99,75:81,76:O,77:at,79:W,80:ft},{35:100,75:81,76:O,77:at,79:W,80:ft},{35:101,75:81,76:O,77:at,79:W,80:ft},{35:102,75:81,76:O,77:at,79:W,80:ft},{35:103,75:81,76:O,77:at,79:W,80:ft},{35:104,75:81,76:O,77:at,79:W,80:ft},t(V,[2,59]),{35:105,75:81,76:O,77:at,79:W,80:ft},{35:106,75:81,76:O,77:at,79:W,80:ft},{35:107,75:81,76:O,77:at,79:W,80:ft},{35:108,75:81,76:O,77:at,79:W,80:ft},{35:109,75:81,76:O,77:at,79:W,80:ft},{35:110,75:81,76:O,77:at,79:W,80:ft},{35:111,75:81,76:O,77:at,79:W,80:ft},{35:112,75:81,76:O,77:at,79:W,80:ft},{35:113,75:81,76:O,77:at,79:W,80:ft},{35:114,75:81,76:O,77:at,79:W,80:ft},{35:115,75:81,76:O,77:at,79:W,80:ft},{20:116,29:49,30:61,32:62,34:a,36:o,37:l,38:h,39:u,40:p,41:d,43:23,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt},{12:[1,118],33:[1,117]},{35:119,75:81,76:O,77:at,79:W,80:ft},{35:120,75:81,76:O,77:at,79:W,80:ft},{35:121,75:81,76:O,77:at,79:W,80:ft},{35:122,75:81,76:O,77:at,79:W,80:ft},{35:123,75:81,76:O,77:at,79:W,80:ft},{35:124,75:81,76:O,77:at,79:W,80:ft},{35:125,75:81,76:O,77:at,79:W,80:ft},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(nt,[2,15]),t(Q,[2,17],{21:22,19:130,22:e,23:i,24:r,26:s,28:n}),t(nt,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:i,24:r,26:s,28:n,34:a,36:o,37:l,38:h,39:u,40:p,41:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R,51:v,52:T,53:k,54:A,55:S,56:m,57:C,58:f,59:L,60:b,61:P,62:U,63:N,64:D,65:F,66:I,67:M,68:z,69:st,70:j,71:dt,72:K,73:G,74:tt}),t(J,[2,21]),t(J,[2,22]),t(V,[2,39]),t(vt,[2,71],{75:81,35:132,76:O,77:at,79:W,80:ft}),t(X,[2,73]),{78:[1,133]},t(X,[2,75]),t(X,[2,76]),t(V,[2,40]),t(V,[2,41]),t(V,[2,42]),t(V,[2,43]),t(V,[2,44]),t(V,[2,45]),t(V,[2,46]),t(V,[2,47]),t(V,[2,48]),t(V,[2,49]),t(V,[2,50]),t(V,[2,51]),t(V,[2,52]),t(V,[2,53]),t(V,[2,54]),t(V,[2,55]),t(V,[2,56]),t(V,[2,57]),t(V,[2,58]),t(V,[2,60]),t(V,[2,61]),t(V,[2,62]),t(V,[2,63]),t(V,[2,64]),t(V,[2,65]),t(V,[2,66]),t(V,[2,67]),t(V,[2,68]),t(V,[2,69]),t(V,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(St,[2,28]),t(St,[2,29]),t(St,[2,30]),t(St,[2,31]),t(St,[2,32]),t(St,[2,33]),t(St,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(Q,[2,18]),t(nt,[2,38]),t(vt,[2,72]),t(X,[2,74]),t(V,[2,24]),t(V,[2,35]),t(bt,[2,25]),t(bt,[2,26],{12:[1,138]}),t(bt,[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(ut,ot){if(ot.recoverable)this.trace(ut);else{var lt=new Error(ut);throw lt.hash=ot,lt}},parse:function(ut){var ot=this,lt=[0],ht=[],$=[null],rt=[],it=this.table,ct="",re=0,Qt=0,de=2,zt=1,Gt=rt.slice.call(arguments,1),qt=Object.create(this.lexer),Ee={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(Ee.yy[fe]=this.yy[fe]);qt.setInput(ut,Ee.yy),Ee.yy.lexer=qt,Ee.yy.parser=this,typeof qt.yylloc>"u"&&(qt.yylloc={});var sr=qt.yylloc;rt.push(sr);var Vr=qt.options&&qt.options.ranges;typeof Ee.yy.parseError=="function"?this.parseError=Ee.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var Be;return Be=ht.pop()||qt.lex()||zt,typeof Be!="number"&&(Be instanceof Array&&(ht=Be,Be=ht.pop()),Be=ot.symbols_[Be]||Be),Be}for(var jt,se,Ot,Zt,Dt={},Yt,Ut,Pt,Nt;;){if(se=lt[lt.length-1],this.defaultActions[se]?Ot=this.defaultActions[se]:((jt===null||typeof jt>"u")&&(jt=me()),Ot=it[se]&&it[se][jt]),typeof Ot>"u"||!Ot.length||!Ot[0]){var It="";Nt=[];for(Yt in it[se])this.terminals_[Yt]&&Yt>de&&Nt.push("'"+this.terminals_[Yt]+"'");qt.showPosition?It="Parse error on line "+(re+1)+`: +`+qt.showPosition()+` +Expecting `+Nt.join(", ")+", got '"+(this.terminals_[jt]||jt)+"'":It="Parse error on line "+(re+1)+": Unexpected "+(jt==zt?"end of input":"'"+(this.terminals_[jt]||jt)+"'"),this.parseError(It,{text:qt.match,token:this.terminals_[jt]||jt,line:qt.yylineno,loc:sr,expected:Nt})}if(Ot[0]instanceof Array&&Ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+se+", token: "+jt);switch(Ot[0]){case 1:lt.push(jt),$.push(qt.yytext),rt.push(qt.yylloc),lt.push(Ot[1]),jt=null,Qt=qt.yyleng,ct=qt.yytext,re=qt.yylineno,sr=qt.yylloc;break;case 2:if(Ut=this.productions_[Ot[1]][1],Dt.$=$[$.length-Ut],Dt._$={first_line:rt[rt.length-(Ut||1)].first_line,last_line:rt[rt.length-1].last_line,first_column:rt[rt.length-(Ut||1)].first_column,last_column:rt[rt.length-1].last_column},Vr&&(Dt._$.range=[rt[rt.length-(Ut||1)].range[0],rt[rt.length-1].range[1]]),Zt=this.performAction.apply(Dt,[ct,Qt,re,Ee.yy,Ot[1],$,rt].concat(Gt)),typeof Zt<"u")return Zt;Ut&&(lt=lt.slice(0,-1*Ut*2),$=$.slice(0,-1*Ut),rt=rt.slice(0,-1*Ut)),lt.push(this.productions_[Ot[1]][0]),$.push(Dt.$),rt.push(Dt._$),Pt=it[lt[lt.length-2]][lt[lt.length-1]],lt.push(Pt);break;case 3:return!0}}return!0}},Bt=(function(){var pt={EOF:1,parseError:function(ot,lt){if(this.yy.parser)this.yy.parser.parseError(ot,lt);else throw new Error(ot)},setInput:function(ut,ot){return this.yy=ot||this.yy||{},this._input=ut,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 ut=this._input[0];this.yytext+=ut,this.yyleng++,this.offset++,this.match+=ut,this.matched+=ut;var ot=ut.match(/(?:\r\n?|\n).*/g);return ot?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ut},unput:function(ut){var ot=ut.length,lt=ut.split(/(?:\r\n?|\n)/g);this._input=ut+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ot),this.offset-=ot;var ht=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),lt.length-1&&(this.yylineno-=lt.length-1);var $=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:lt?(lt.length===ht.length?this.yylloc.first_column:0)+ht[ht.length-lt.length].length-lt[0].length:this.yylloc.first_column-ot},this.options.ranges&&(this.yylloc.range=[$[0],$[0]+this.yyleng-ot]),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(ut){this.unput(this.match.slice(ut))},pastInput:function(){var ut=this.matched.substr(0,this.matched.length-this.match.length);return(ut.length>20?"...":"")+ut.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ut=this.match;return ut.length<20&&(ut+=this._input.substr(0,20-ut.length)),(ut.substr(0,20)+(ut.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ut=this.pastInput(),ot=new Array(ut.length+1).join("-");return ut+this.upcomingInput()+` +`+ot+"^"},test_match:function(ut,ot){var lt,ht,$;if(this.options.backtrack_lexer&&($={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($.yylloc.range=this.yylloc.range.slice(0))),ht=ut[0].match(/(?:\r\n?|\n).*/g),ht&&(this.yylineno+=ht.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ht?ht[ht.length-1].length-ht[ht.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ut[0].length},this.yytext+=ut[0],this.match+=ut[0],this.matches=ut,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ut[0].length),this.matched+=ut[0],lt=this.performAction.call(this,this.yy,this,ot,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),lt)return lt;if(this._backtrack){for(var rt in $)this[rt]=$[rt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ut,ot,lt,ht;this._more||(this.yytext="",this.match="");for(var $=this._currentRules(),rt=0;rt<$.length;rt++)if(lt=this._input.match(this.rules[$[rt]]),lt&&(!ot||lt[0].length>ot[0].length)){if(ot=lt,ht=rt,this.options.backtrack_lexer){if(ut=this.test_match(lt,$[rt]),ut!==!1)return ut;if(this._backtrack){ot=!1;continue}else return!1}else if(!this.options.flex)break}return ot?(ut=this.test_match(ot,$[ht]),ut!==!1?ut:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ot=this.next();return ot||this.lex()},begin:function(ot){this.conditionStack.push(ot)},popState:function(){var ot=this.conditionStack.length-1;return ot>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ot){return ot=this.conditionStack.length-1-Math.abs(ot||0),ot>=0?this.conditionStack[ot]:"INITIAL"},pushState:function(ot){this.begin(ot)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ot,lt,ht,$){switch(ht){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return pt})();Vt.lexer=Bt;function Wt(){this.yy={}}return Wt.prototype=Vt,Vt.Parser=Wt,new Wt})();Fn.parser=Fn;const mm=Fn;let _i=[],ur=[""],qe="global",bi="",Bi=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Fs=[],Xo="",$o=!1,Rn=4,Nn=2;var N1;const xm=function(){return N1},bm=function(t){N1=te(t,Y())},km=function(t,e,i,r,s,n,a,o,l){if(t==null||e===void 0||e===null||i===void 0||i===null||r===void 0||r===null)return;let h={};const u=Fs.find(p=>p.from===e&&p.to===i);if(u?h=u:Fs.push(h),h.type=t,h.from=e,h.to=i,h.label={text:r},s==null)h.techn={text:""};else if(typeof s=="object"){let[p,d]=Object.entries(s)[0];h[p]={text:d}}else h.techn={text:s};if(n==null)h.descr={text:""};else if(typeof n=="object"){let[p,d]=Object.entries(n)[0];h[p]={text:d}}else h.descr={text:n};if(typeof a=="object"){let[p,d]=Object.entries(a)[0];h[p]=d}else h.sprite=a;if(typeof o=="object"){let[p,d]=Object.entries(o)[0];h[p]=d}else h.tags=o;if(typeof l=="object"){let[p,d]=Object.entries(l)[0];h[p]=d}else h.link=l;h.wrap=mr()},_m=function(t,e,i,r,s,n,a){if(e===null||i===null)return;let o={};const l=_i.find(h=>h.alias===e);if(l&&e===l.alias?o=l:(o.alias=e,_i.push(o)),i==null?o.label={text:""}:o.label={text:i},r==null)o.descr={text:""};else if(typeof r=="object"){let[h,u]=Object.entries(r)[0];o[h]={text:u}}else o.descr={text:r};if(typeof s=="object"){let[h,u]=Object.entries(s)[0];o[h]=u}else o.sprite=s;if(typeof n=="object"){let[h,u]=Object.entries(n)[0];o[h]=u}else o.tags=n;if(typeof a=="object"){let[h,u]=Object.entries(a)[0];o[h]=u}else o.link=a;o.typeC4Shape={text:t},o.parentBoundary=qe,o.wrap=mr()},Tm=function(t,e,i,r,s,n,a,o){if(e===null||i===null)return;let l={};const h=_i.find(u=>u.alias===e);if(h&&e===h.alias?l=h:(l.alias=e,_i.push(l)),i==null?l.label={text:""}:l.label={text:i},r==null)l.techn={text:""};else if(typeof r=="object"){let[u,p]=Object.entries(r)[0];l[u]={text:p}}else l.techn={text:r};if(s==null)l.descr={text:""};else if(typeof s=="object"){let[u,p]=Object.entries(s)[0];l[u]={text:p}}else l.descr={text:s};if(typeof n=="object"){let[u,p]=Object.entries(n)[0];l[u]=p}else l.sprite=n;if(typeof a=="object"){let[u,p]=Object.entries(a)[0];l[u]=p}else l.tags=a;if(typeof o=="object"){let[u,p]=Object.entries(o)[0];l[u]=p}else l.link=o;l.wrap=mr(),l.typeC4Shape={text:t},l.parentBoundary=qe},Cm=function(t,e,i,r,s,n,a,o){if(e===null||i===null)return;let l={};const h=_i.find(u=>u.alias===e);if(h&&e===h.alias?l=h:(l.alias=e,_i.push(l)),i==null?l.label={text:""}:l.label={text:i},r==null)l.techn={text:""};else if(typeof r=="object"){let[u,p]=Object.entries(r)[0];l[u]={text:p}}else l.techn={text:r};if(s==null)l.descr={text:""};else if(typeof s=="object"){let[u,p]=Object.entries(s)[0];l[u]={text:p}}else l.descr={text:s};if(typeof n=="object"){let[u,p]=Object.entries(n)[0];l[u]=p}else l.sprite=n;if(typeof a=="object"){let[u,p]=Object.entries(a)[0];l[u]=p}else l.tags=a;if(typeof o=="object"){let[u,p]=Object.entries(o)[0];l[u]=p}else l.link=o;l.wrap=mr(),l.typeC4Shape={text:t},l.parentBoundary=qe},Em=function(t,e,i,r,s){if(t===null||e===null)return;let n={};const a=Bi.find(o=>o.alias===t);if(a&&t===a.alias?n=a:(n.alias=t,Bi.push(n)),e==null?n.label={text:""}:n.label={text:e},i==null)n.type={text:"system"};else if(typeof i=="object"){let[o,l]=Object.entries(i)[0];n[o]={text:l}}else n.type={text:i};if(typeof r=="object"){let[o,l]=Object.entries(r)[0];n[o]=l}else n.tags=r;if(typeof s=="object"){let[o,l]=Object.entries(s)[0];n[o]=l}else n.link=s;n.parentBoundary=qe,n.wrap=mr(),bi=qe,qe=t,ur.push(bi)},Sm=function(t,e,i,r,s){if(t===null||e===null)return;let n={};const a=Bi.find(o=>o.alias===t);if(a&&t===a.alias?n=a:(n.alias=t,Bi.push(n)),e==null?n.label={text:""}:n.label={text:e},i==null)n.type={text:"container"};else if(typeof i=="object"){let[o,l]=Object.entries(i)[0];n[o]={text:l}}else n.type={text:i};if(typeof r=="object"){let[o,l]=Object.entries(r)[0];n[o]=l}else n.tags=r;if(typeof s=="object"){let[o,l]=Object.entries(s)[0];n[o]=l}else n.link=s;n.parentBoundary=qe,n.wrap=mr(),bi=qe,qe=t,ur.push(bi)},wm=function(t,e,i,r,s,n,a,o){if(e===null||i===null)return;let l={};const h=Bi.find(u=>u.alias===e);if(h&&e===h.alias?l=h:(l.alias=e,Bi.push(l)),i==null?l.label={text:""}:l.label={text:i},r==null)l.type={text:"node"};else if(typeof r=="object"){let[u,p]=Object.entries(r)[0];l[u]={text:p}}else l.type={text:r};if(s==null)l.descr={text:""};else if(typeof s=="object"){let[u,p]=Object.entries(s)[0];l[u]={text:p}}else l.descr={text:s};if(typeof a=="object"){let[u,p]=Object.entries(a)[0];l[u]=p}else l.tags=a;if(typeof o=="object"){let[u,p]=Object.entries(o)[0];l[u]=p}else l.link=o;l.nodeType=t,l.parentBoundary=qe,l.wrap=mr(),bi=qe,qe=e,ur.push(bi)},vm=function(){qe=bi,ur.pop(),bi=ur.pop(),ur.push(bi)},Am=function(t,e,i,r,s,n,a,o,l,h,u){let p=_i.find(d=>d.alias===e);if(!(p===void 0&&(p=Bi.find(d=>d.alias===e),p===void 0))){if(i!=null)if(typeof i=="object"){let[d,g]=Object.entries(i)[0];p[d]=g}else p.bgColor=i;if(r!=null)if(typeof r=="object"){let[d,g]=Object.entries(r)[0];p[d]=g}else p.fontColor=r;if(s!=null)if(typeof s=="object"){let[d,g]=Object.entries(s)[0];p[d]=g}else p.borderColor=s;if(n!=null)if(typeof n=="object"){let[d,g]=Object.entries(n)[0];p[d]=g}else p.shadowing=n;if(a!=null)if(typeof a=="object"){let[d,g]=Object.entries(a)[0];p[d]=g}else p.shape=a;if(o!=null)if(typeof o=="object"){let[d,g]=Object.entries(o)[0];p[d]=g}else p.sprite=o;if(l!=null)if(typeof l=="object"){let[d,g]=Object.entries(l)[0];p[d]=g}else p.techn=l;if(h!=null)if(typeof h=="object"){let[d,g]=Object.entries(h)[0];p[d]=g}else p.legendText=h;if(u!=null)if(typeof u=="object"){let[d,g]=Object.entries(u)[0];p[d]=g}else p.legendSprite=u}},Lm=function(t,e,i,r,s,n,a){const o=Fs.find(l=>l.from===e&&l.to===i);if(o!==void 0){if(r!=null)if(typeof r=="object"){let[l,h]=Object.entries(r)[0];o[l]=h}else o.textColor=r;if(s!=null)if(typeof s=="object"){let[l,h]=Object.entries(s)[0];o[l]=h}else o.lineColor=s;if(n!=null)if(typeof n=="object"){let[l,h]=Object.entries(n)[0];o[l]=parseInt(h)}else o.offsetX=parseInt(n);if(a!=null)if(typeof a=="object"){let[l,h]=Object.entries(a)[0];o[l]=parseInt(h)}else o.offsetY=parseInt(a)}},Bm=function(t,e,i){let r=Rn,s=Nn;if(typeof e=="object"){const n=Object.values(e)[0];r=parseInt(n)}else r=parseInt(e);if(typeof i=="object"){const n=Object.values(i)[0];s=parseInt(n)}else s=parseInt(i);r>=1&&(Rn=r),s>=1&&(Nn=s)},Im=function(){return Rn},Dm=function(){return Nn},Fm=function(){return qe},Rm=function(){return bi},O1=function(t){return t==null?_i:_i.filter(e=>e.parentBoundary===t)},Nm=function(t){return _i.find(e=>e.alias===t)},Om=function(t){return Object.keys(O1(t))},P1=function(t){return t==null?Bi:Bi.filter(e=>e.parentBoundary===t)},Pm=P1,Mm=function(){return Fs},Vm=function(){return Xo},zm=function(t){$o=t},mr=function(){return $o},qm=function(){_i=[],Bi=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],bi="",qe="global",ur=[""],Fs=[],ur=[""],Xo="",$o=!1,Rn=4,Nn=2},Wm={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},Ym={FILLED:0,OPEN:1},Um={LEFTOF:0,RIGHTOF:1,OVER:2},Hm=function(t){Xo=te(t,Y())},Ua={addPersonOrSystem:_m,addPersonOrSystemBoundary:Em,addContainer:Tm,addContainerBoundary:Sm,addComponent:Cm,addDeploymentNode:wm,popBoundaryParseStack:vm,addRel:km,updateElStyle:Am,updateRelStyle:Lm,updateLayoutConfig:Bm,autoWrap:mr,setWrap:zm,getC4ShapeArray:O1,getC4Shape:Nm,getC4ShapeKeys:Om,getBoundaries:P1,getBoundarys:Pm,getCurrentBoundaryParse:Fm,getParentBoundaryParse:Rm,getRels:Mm,getTitle:Vm,getC4Type:xm,getC4ShapeInRow:Im,getC4BoundaryInRow:Dm,setAccTitle:Pe,getAccTitle:Ye,getAccDescription:He,setAccDescription:Ue,getConfig:()=>Y().c4,clear:qm,LINETYPE:Wm,ARROWTYPE:Ym,PLACEMENT:Um,setTitle:Hm,setC4Type:bm},Ko=function(t,e){return la(t,e)},M1=function(t,e,i,r,s,n){const a=t.append("image");a.attr("width",e),a.attr("height",i),a.attr("x",r),a.attr("y",s);let o=n.startsWith("data:image/png;base64")?n:Fr.sanitizeUrl(n);a.attr("xlink:href",o)},Gm=(t,e,i)=>{const r=t.append("g");let s=0;for(let n of e){let a=n.textColor?n.textColor:"#444444",o=n.lineColor?n.lineColor:"#444444",l=n.offsetX?parseInt(n.offsetX):0,h=n.offsetY?parseInt(n.offsetY):0,u="";if(s===0){let d=r.append("line");d.attr("x1",n.startPoint.x),d.attr("y1",n.startPoint.y),d.attr("x2",n.endPoint.x),d.attr("y2",n.endPoint.y),d.attr("stroke-width","1"),d.attr("stroke",o),d.style("fill","none"),n.type!=="rel_b"&&d.attr("marker-end","url("+u+"#arrowhead)"),(n.type==="birel"||n.type==="rel_b")&&d.attr("marker-start","url("+u+"#arrowend)"),s=-1}else{let d=r.append("path");d.attr("fill","none").attr("stroke-width","1").attr("stroke",o).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",n.startPoint.x).replaceAll("starty",n.startPoint.y).replaceAll("controlx",n.startPoint.x+(n.endPoint.x-n.startPoint.x)/2-(n.endPoint.x-n.startPoint.x)/4).replaceAll("controly",n.startPoint.y+(n.endPoint.y-n.startPoint.y)/2).replaceAll("stopx",n.endPoint.x).replaceAll("stopy",n.endPoint.y)),n.type!=="rel_b"&&d.attr("marker-end","url("+u+"#arrowhead)"),(n.type==="birel"||n.type==="rel_b")&&d.attr("marker-start","url("+u+"#arrowend)")}let p=i.messageFont();$i(i)(n.label.text,r,Math.min(n.startPoint.x,n.endPoint.x)+Math.abs(n.endPoint.x-n.startPoint.x)/2+l,Math.min(n.startPoint.y,n.endPoint.y)+Math.abs(n.endPoint.y-n.startPoint.y)/2+h,n.label.width,n.label.height,{fill:a},p),n.techn&&n.techn.text!==""&&(p=i.messageFont(),$i(i)("["+n.techn.text+"]",r,Math.min(n.startPoint.x,n.endPoint.x)+Math.abs(n.endPoint.x-n.startPoint.x)/2+l,Math.min(n.startPoint.y,n.endPoint.y)+Math.abs(n.endPoint.y-n.startPoint.y)/2+i.messageFontSize+5+h,Math.max(n.label.width,n.techn.width),n.techn.height,{fill:a,"font-style":"italic"},p))}},jm=function(t,e,i){const r=t.append("g");let s=e.bgColor?e.bgColor:"none",n=e.borderColor?e.borderColor:"#444444",a=e.fontColor?e.fontColor:"black",o={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(o={"stroke-width":1});let l={x:e.x,y:e.y,fill:s,stroke:n,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:o};Ko(r,l);let h=i.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=a,$i(i)(e.label.text,r,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=i.boundaryFont(),h.fontColor=a,$i(i)(e.type.text,r,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=i.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=a,$i(i)(e.descr.text,r,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},Xm=function(t,e,i){var r;let s=e.bgColor?e.bgColor:i[e.typeC4Shape.text+"_bg_color"],n=e.borderColor?e.borderColor:i[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const l=t.append("g");l.attr("class","person-man");const h=Pr();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=e.x,h.y=e.y,h.fill=s,h.width=e.width,h.height=e.height,h.stroke=n,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},Ko(l,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",s).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",s).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let u=rx(i,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":M1(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,o);break}let p=i[e.typeC4Shape.text+"Font"]();return p.fontWeight="bold",p.fontSize=p.fontSize+2,p.fontColor=a,$i(i)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},p),p=i[e.typeC4Shape.text+"Font"](),p.fontColor=a,e.techn&&((r=e.techn)==null?void 0:r.text)!==""?$i(i)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},p):e.type&&e.type.text!==""&&$i(i)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},p),e.descr&&e.descr.text!==""&&(p=i.personFont(),p.fontColor=a,$i(i)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},p)),e.height},$m=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},Km=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},Qm=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},Zm=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).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")},Jm=function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},tx=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).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")},ex=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},ix=function(t){const i=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);i.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),i.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},rx=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),$i=(function(){function t(s,n,a,o,l,h,u){const p=n.append("text").attr("x",a+l/2).attr("y",o+h/2+5).style("text-anchor","middle").text(s);r(p,u)}function e(s,n,a,o,l,h,u,p){const{fontSize:d,fontFamily:g,fontWeight:y}=p,x=s.split(mt.lineBreakRegex);for(let _=0;_=this.data.widthLimit||r>=this.data.widthLimit||this.nextData.cnt>V1)&&(i=this.nextData.startx+e.margin+Tt.nextLinePaddingX,s=this.nextData.stopy+e.margin*2,this.nextData.stopx=r=i+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=n=s+e.height,this.nextData.cnt=1),e.x=i,e.y=s,this.updateVal(this.data,"startx",i,Math.min),this.updateVal(this.data,"starty",s,Math.min),this.updateVal(this.data,"stopx",r,Math.max),this.updateVal(this.data,"stopy",n,Math.max),this.updateVal(this.nextData,"startx",i,Math.min),this.updateVal(this.nextData,"starty",s,Math.min),this.updateVal(this.nextData,"stopx",r,Math.max),this.updateVal(this.nextData,"stopy",n,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},Ga(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}}const Ga=function(t){Ae(Tt,t),t.fontFamily&&(Tt.personFontFamily=Tt.systemFontFamily=Tt.messageFontFamily=t.fontFamily),t.fontSize&&(Tt.personFontSize=Tt.systemFontSize=Tt.messageFontSize=t.fontSize),t.fontWeight&&(Tt.personFontWeight=Tt.systemFontWeight=Tt.messageFontWeight=t.fontWeight)},ps=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),mn=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),sx=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight});function yi(t,e,i,r,s){if(!e[t].width)if(i)e[t].text=Nh(e[t].text,s,r),e[t].textLines=e[t].text.split(mt.lineBreakRegex).length,e[t].width=s,e[t].height=Wa(e[t].text,r);else{let n=e[t].text.split(mt.lineBreakRegex);e[t].textLines=n.length;let a=0;e[t].height=0,e[t].width=0;for(const o of n)e[t].width=Math.max(vi(o,r),e[t].width),a=Wa(o,r),e[t].height=e[t].height+a}}const q1=function(t,e,i){e.x=i.data.startx,e.y=i.data.starty,e.width=i.data.stopx-i.data.startx,e.height=i.data.stopy-i.data.starty,e.label.y=Tt.c4ShapeMargin-35;let r=e.wrap&&Tt.wrap,s=mn(Tt);s.fontSize=s.fontSize+2,s.fontWeight="bold";let n=vi(e.label.text,s);yi("label",e,r,s,n),Ei.drawBoundary(t,e,Tt)},W1=function(t,e,i,r){let s=0;for(const n of r){s=0;const a=i[n];let o=ps(Tt,a.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,a.typeC4Shape.width=vi("«"+a.typeC4Shape.text+"»",o),a.typeC4Shape.height=o.fontSize+2,a.typeC4Shape.Y=Tt.c4ShapePadding,s=a.typeC4Shape.Y+a.typeC4Shape.height-4,a.image={width:0,height:0,Y:0},a.typeC4Shape.text){case"person":case"external_person":a.image.width=48,a.image.height=48,a.image.Y=s,s=a.image.Y+a.image.height;break}a.sprite&&(a.image.width=48,a.image.height=48,a.image.Y=s,s=a.image.Y+a.image.height);let l=a.wrap&&Tt.wrap,h=Tt.width-Tt.c4ShapePadding*2,u=ps(Tt,a.typeC4Shape.text);if(u.fontSize=u.fontSize+2,u.fontWeight="bold",yi("label",a,l,u,h),a.label.Y=s+8,s=a.label.Y+a.label.height,a.type&&a.type.text!==""){a.type.text="["+a.type.text+"]";let g=ps(Tt,a.typeC4Shape.text);yi("type",a,l,g,h),a.type.Y=s+5,s=a.type.Y+a.type.height}else if(a.techn&&a.techn.text!==""){a.techn.text="["+a.techn.text+"]";let g=ps(Tt,a.techn.text);yi("techn",a,l,g,h),a.techn.Y=s+5,s=a.techn.Y+a.techn.height}let p=s,d=a.label.width;if(a.descr&&a.descr.text!==""){let g=ps(Tt,a.typeC4Shape.text);yi("descr",a,l,g,h),a.descr.Y=s+20,s=a.descr.Y+a.descr.height,d=Math.max(a.label.width,a.descr.width),p=s-a.descr.textLines*5}d=d+Tt.c4ShapePadding,a.width=Math.max(a.width||Tt.width,d,Tt.width),a.height=Math.max(a.height||Tt.height,p,Tt.height),a.margin=a.margin||Tt.c4ShapeMargin,t.insert(a),Ei.drawC4Shape(e,a,Tt)}t.bumpLastMargin(Tt.c4ShapeMargin)};class li{constructor(e,i){this.x=e,this.y=i}}let yc=function(t,e){let i=t.x,r=t.y,s=e.x,n=e.y,a=i+t.width/2,o=r+t.height/2,l=Math.abs(i-s),h=Math.abs(r-n),u=h/l,p=t.height/t.width,d=null;return r==n&&is?d=new li(i,o):i==s&&rn&&(d=new li(a,r)),i>s&&r=u?d=new li(i,o+u*t.width/2):d=new li(a-l/h*t.height/2,r+t.height):i=u?d=new li(i+t.width,o+u*t.width/2):d=new li(a+l/h*t.height/2,r+t.height):in?p>=u?d=new li(i+t.width,o-u*t.width/2):d=new li(a+t.height/2*l/h,r):i>s&&r>n&&(p>=u?d=new li(i,o-t.width/2*u):d=new li(a-t.height/2*l/h,r)),d},nx=function(t,e){let i={x:0,y:0};i.x=e.x+e.width/2,i.y=e.y+e.height/2;let r=yc(t,i);i.x=t.x+t.width/2,i.y=t.y+t.height/2;let s=yc(e,i);return{startPoint:r,endPoint:s}};const ax=function(t,e,i,r){let s=0;for(let n of e){s=s+1;let a=n.wrap&&Tt.wrap,o=sx(Tt);r.db.getC4Type()==="C4Dynamic"&&(n.label.text=s+": "+n.label.text);let h=vi(n.label.text,o);yi("label",n,a,o,h),n.techn&&n.techn.text!==""&&(h=vi(n.techn.text,o),yi("techn",n,a,o,h)),n.descr&&n.descr.text!==""&&(h=vi(n.descr.text,o),yi("descr",n,a,o,h));let u=i(n.from),p=i(n.to),d=nx(u,p);n.startPoint=d.startPoint,n.endPoint=d.endPoint}Ei.drawRels(t,e,Tt)};function Y1(t,e,i,r,s){let n=new z1(s);n.data.widthLimit=i.data.widthLimit/Math.min(Ha,r.length);for(let[a,o]of r.entries()){let l=0;o.image={width:0,height:0,Y:0},o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=l,l=o.image.Y+o.image.height);let h=o.wrap&&Tt.wrap,u=mn(Tt);if(u.fontSize=u.fontSize+2,u.fontWeight="bold",yi("label",o,h,u,n.data.widthLimit),o.label.Y=l+8,l=o.label.Y+o.label.height,o.type&&o.type.text!==""){o.type.text="["+o.type.text+"]";let y=mn(Tt);yi("type",o,h,y,n.data.widthLimit),o.type.Y=l+5,l=o.type.Y+o.type.height}if(o.descr&&o.descr.text!==""){let y=mn(Tt);y.fontSize=y.fontSize-2,yi("descr",o,h,y,n.data.widthLimit),o.descr.Y=l+20,l=o.descr.Y+o.descr.height}if(a==0||a%Ha===0){let y=i.data.startx+Tt.diagramMarginX,x=i.data.stopy+Tt.diagramMarginY+l;n.setData(y,y,x,x)}else{let y=n.data.stopx!==n.data.startx?n.data.stopx+Tt.diagramMarginX:n.data.startx,x=n.data.starty;n.setData(y,y,x,x)}n.name=o.alias;let p=s.db.getC4ShapeArray(o.alias),d=s.db.getC4ShapeKeys(o.alias);d.length>0&&W1(n,t,p,d),e=o.alias;let g=s.db.getBoundarys(e);g.length>0&&Y1(t,e,n,g,s),o.alias!=="global"&&q1(t,o,n),i.data.stopy=Math.max(n.data.stopy+Tt.c4ShapeMargin,i.data.stopy),i.data.stopx=Math.max(n.data.stopx+Tt.c4ShapeMargin,i.data.stopx),On=Math.max(On,i.data.stopx),Pn=Math.max(Pn,i.data.stopy)}}const ox=function(t,e,i,r){Tt=Y().c4;const s=Y().securityLevel;let n;s==="sandbox"&&(n=yt("#i"+e));const a=s==="sandbox"?yt(n.nodes()[0].contentDocument.body):yt("body");let o=r.db;r.db.setWrap(Tt.wrap),V1=o.getC4ShapeInRow(),Ha=o.getC4BoundaryInRow(),B.debug(`C:${JSON.stringify(Tt,null,2)}`);const l=s==="sandbox"?a.select(`[id="${e}"]`):yt(`[id="${e}"]`);Ei.insertComputerIcon(l),Ei.insertDatabaseIcon(l),Ei.insertClockIcon(l);let h=new z1(r);h.setData(Tt.diagramMarginX,Tt.diagramMarginX,Tt.diagramMarginY,Tt.diagramMarginY),h.data.widthLimit=screen.availWidth,On=Tt.diagramMarginX,Pn=Tt.diagramMarginY;const u=r.db.getTitle();let p=r.db.getBoundarys("");Y1(l,"",h,p,r),Ei.insertArrowHead(l),Ei.insertArrowEnd(l),Ei.insertArrowCrossHead(l),Ei.insertArrowFilledHead(l),ax(l,r.db.getRels(),r.db.getC4Shape,r),h.data.stopx=On,h.data.stopy=Pn;const d=h.data;let y=d.stopy-d.starty+2*Tt.diagramMarginY;const _=d.stopx-d.startx+2*Tt.diagramMarginX;u&&l.append("text").text(u).attr("x",(d.stopx-d.startx)/2-4*Tt.diagramMarginX).attr("y",d.starty+Tt.diagramMarginY),Ne(l,y,_,Tt.useMaxWidth);const w=u?60:0;l.attr("viewBox",d.startx-Tt.diagramMarginX+" -"+(Tt.diagramMarginY+w)+" "+_+" "+(y+w)),B.debug("models:",d)},mc={drawPersonOrSystemArray:W1,drawBoundary:q1,setConf:Ga,draw:ox},lx=t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,cx=lx,hx={parser:mm,db:Ua,renderer:mc,styles:cx,init:({c4:t,wrap:e})=>{mc.setConf(t),Ua.setWrap(e)}},ux=Object.freeze(Object.defineProperty({__proto__:null,diagram:hx},Symbol.toStringTag,{value:"Module"}));var ja=(function(){var t=function(ar,Et,Lt,Mt){for(Lt=Lt||{},Mt=ar.length;Mt--;Lt[ar[Mt]]=Et);return Lt},e=[1,4],i=[1,3],r=[1,5],s=[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],n=[2,2],a=[1,13],o=[1,14],l=[1,15],h=[1,16],u=[1,23],p=[1,25],d=[1,26],g=[1,27],y=[1,49],x=[1,48],_=[1,29],w=[1,30],E=[1,31],R=[1,32],v=[1,33],T=[1,44],k=[1,46],A=[1,42],S=[1,47],m=[1,43],C=[1,50],f=[1,45],L=[1,51],b=[1,52],P=[1,34],U=[1,35],N=[1,36],D=[1,37],F=[1,57],I=[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],M=[1,61],z=[1,60],st=[1,62],j=[8,9,11,73,75],dt=[1,88],K=[1,93],G=[1,92],tt=[1,89],nt=[1,85],Q=[1,91],J=[1,87],O=[1,94],at=[1,90],W=[1,95],ft=[1,86],V=[8,9,10,11,73,75],vt=[8,9,10,11,44,73,75],X=[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],St=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],bt=[42,58,86,99,102,103,106,108,111,112,113],Vt=[1,121],Bt=[1,120],Wt=[1,128],pt=[1,142],ut=[1,143],ot=[1,144],lt=[1,145],ht=[1,130],$=[1,132],rt=[1,136],it=[1,137],ct=[1,138],re=[1,139],Qt=[1,140],de=[1,141],zt=[1,146],Gt=[1,147],qt=[1,126],Ee=[1,127],fe=[1,134],sr=[1,129],Vr=[1,133],me=[1,131],jt=[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],se=[1,149],Ot=[8,9,11],Zt=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],Dt=[1,169],Yt=[1,165],Ut=[1,166],Pt=[1,170],Nt=[1,167],It=[1,168],Be=[75,113,116],Xt=[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],Ml=[10,103],nr=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Fi=[1,235],Ri=[1,233],Ni=[1,237],Oi=[1,231],Pi=[1,232],Mi=[1,234],Vi=[1,236],zi=[1,238],zr=[1,255],Vl=[8,9,11,103],Ti=[8,9,10,11,58,81,102,103,106,107,108,109],Ca={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(Et,Lt,Mt,xt,ne,q,fs){var H=q.length-1;switch(ne){case 2:this.$=[];break;case 3:(!Array.isArray(q[H])||q[H].length>0)&&q[H-1].push(q[H]),this.$=q[H-1];break;case 4:case 176:this.$=q[H];break;case 11:xt.setDirection("TB"),this.$="TB";break;case 12:xt.setDirection(q[H-1]),this.$=q[H-1];break;case 27:this.$=q[H-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=xt.addSubGraph(q[H-6],q[H-1],q[H-4]);break;case 34:this.$=xt.addSubGraph(q[H-3],q[H-1],q[H-3]);break;case 35:this.$=xt.addSubGraph(void 0,q[H-1],void 0);break;case 37:this.$=q[H].trim(),xt.setAccTitle(this.$);break;case 38:case 39:this.$=q[H].trim(),xt.setAccDescription(this.$);break;case 43:xt.addLink(q[H-2].stmt,q[H],q[H-1]),this.$={stmt:q[H],nodes:q[H].concat(q[H-2].nodes)};break;case 44:xt.addLink(q[H-3].stmt,q[H-1],q[H-2]),this.$={stmt:q[H-1],nodes:q[H-1].concat(q[H-3].nodes)};break;case 45:this.$={stmt:q[H-1],nodes:q[H-1]};break;case 46:this.$={stmt:q[H],nodes:q[H]};break;case 47:this.$=[q[H]];break;case 48:this.$=q[H-4].concat(q[H]);break;case 49:this.$=q[H];break;case 50:this.$=q[H-2],xt.setClass(q[H-2],q[H]);break;case 51:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"square");break;case 52:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"doublecircle");break;case 53:this.$=q[H-5],xt.addVertex(q[H-5],q[H-2],"circle");break;case 54:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"ellipse");break;case 55:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"stadium");break;case 56:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"subroutine");break;case 57:this.$=q[H-7],xt.addVertex(q[H-7],q[H-1],"rect",void 0,void 0,void 0,Object.fromEntries([[q[H-5],q[H-3]]]));break;case 58:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"cylinder");break;case 59:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"round");break;case 60:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"diamond");break;case 61:this.$=q[H-5],xt.addVertex(q[H-5],q[H-2],"hexagon");break;case 62:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"odd");break;case 63:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"trapezoid");break;case 64:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"inv_trapezoid");break;case 65:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"lean_right");break;case 66:this.$=q[H-3],xt.addVertex(q[H-3],q[H-1],"lean_left");break;case 67:this.$=q[H],xt.addVertex(q[H]);break;case 68:q[H-1].text=q[H],this.$=q[H-1];break;case 69:case 70:q[H-2].text=q[H-1],this.$=q[H-2];break;case 71:this.$=q[H];break;case 72:var ni=xt.destructLink(q[H],q[H-2]);this.$={type:ni.type,stroke:ni.stroke,length:ni.length,text:q[H-1]};break;case 73:this.$={text:q[H],type:"text"};break;case 74:this.$={text:q[H-1].text+""+q[H],type:q[H-1].type};break;case 75:this.$={text:q[H],type:"string"};break;case 76:this.$={text:q[H],type:"markdown"};break;case 77:var ni=xt.destructLink(q[H]);this.$={type:ni.type,stroke:ni.stroke,length:ni.length};break;case 78:this.$=q[H-1];break;case 79:this.$={text:q[H],type:"text"};break;case 80:this.$={text:q[H-1].text+""+q[H],type:q[H-1].type};break;case 81:this.$={text:q[H],type:"string"};break;case 82:case 97:this.$={text:q[H],type:"markdown"};break;case 94:this.$={text:q[H],type:"text"};break;case 95:this.$={text:q[H-1].text+""+q[H],type:q[H-1].type};break;case 96:this.$={text:q[H],type:"text"};break;case 98:this.$=q[H-4],xt.addClass(q[H-2],q[H]);break;case 99:this.$=q[H-4],xt.setClass(q[H-2],q[H]);break;case 100:case 108:this.$=q[H-1],xt.setClickEvent(q[H-1],q[H]);break;case 101:case 109:this.$=q[H-3],xt.setClickEvent(q[H-3],q[H-2]),xt.setTooltip(q[H-3],q[H]);break;case 102:this.$=q[H-2],xt.setClickEvent(q[H-2],q[H-1],q[H]);break;case 103:this.$=q[H-4],xt.setClickEvent(q[H-4],q[H-3],q[H-2]),xt.setTooltip(q[H-4],q[H]);break;case 104:this.$=q[H-2],xt.setLink(q[H-2],q[H]);break;case 105:this.$=q[H-4],xt.setLink(q[H-4],q[H-2]),xt.setTooltip(q[H-4],q[H]);break;case 106:this.$=q[H-4],xt.setLink(q[H-4],q[H-2],q[H]);break;case 107:this.$=q[H-6],xt.setLink(q[H-6],q[H-4],q[H]),xt.setTooltip(q[H-6],q[H-2]);break;case 110:this.$=q[H-1],xt.setLink(q[H-1],q[H]);break;case 111:this.$=q[H-3],xt.setLink(q[H-3],q[H-2]),xt.setTooltip(q[H-3],q[H]);break;case 112:this.$=q[H-3],xt.setLink(q[H-3],q[H-2],q[H]);break;case 113:this.$=q[H-5],xt.setLink(q[H-5],q[H-4],q[H]),xt.setTooltip(q[H-5],q[H-2]);break;case 114:this.$=q[H-4],xt.addVertex(q[H-2],void 0,void 0,q[H]);break;case 115:this.$=q[H-4],xt.updateLink([q[H-2]],q[H]);break;case 116:this.$=q[H-4],xt.updateLink(q[H-2],q[H]);break;case 117:this.$=q[H-8],xt.updateLinkInterpolate([q[H-6]],q[H-2]),xt.updateLink([q[H-6]],q[H]);break;case 118:this.$=q[H-8],xt.updateLinkInterpolate(q[H-6],q[H-2]),xt.updateLink(q[H-6],q[H]);break;case 119:this.$=q[H-6],xt.updateLinkInterpolate([q[H-4]],q[H]);break;case 120:this.$=q[H-6],xt.updateLinkInterpolate(q[H-4],q[H]);break;case 121:case 123:this.$=[q[H]];break;case 122:case 124:q[H-2].push(q[H]),this.$=q[H-2];break;case 126:this.$=q[H-1]+q[H];break;case 174:this.$=q[H];break;case 175:this.$=q[H-1]+""+q[H];break;case 177:this.$=q[H-1]+""+q[H];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:e,10:i,12:r},{1:[3]},t(s,n,{5:6}),{4:7,9:e,10:i,12:r},{4:8,9:e,10:i,12:r},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:a,9:o,10:l,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:u,33:24,34:p,36:d,38:g,40:28,41:38,42:y,43:39,45:40,58:x,81:_,82:w,83:E,84:R,85:v,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b,118:P,119:U,120:N,121:D},t(s,[2,9]),t(s,[2,10]),t(s,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),{8:M,9:z,11:st,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:M,9:z,11:st,21:66},{8:M,9:z,11:st,21:67},{8:M,9:z,11:st,21:68},{8:M,9:z,11:st,21:69},{8:M,9:z,11:st,21:70},{8:M,9:z,10:[1,71],11:st,21:72},t(I,[2,36]),{35:[1,73]},{37:[1,74]},t(I,[2,39]),t(j,[2,46],{18:75,10:F}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:dt,42:K,58:G,77:[1,83],86:tt,92:[1,80],94:[1,81],98:82,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft,117:84},t(I,[2,178]),t(I,[2,179]),t(I,[2,180]),t(I,[2,181]),t(V,[2,47]),t(V,[2,49],{44:[1,96]}),t(vt,[2,67],{110:109,29:[1,97],42:y,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:x,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:T,99:k,102:A,103:S,106:m,108:C,111:f,112:L,113:b}),t(X,[2,174]),t(X,[2,135]),t(X,[2,136]),t(X,[2,137]),t(X,[2,138]),t(X,[2,139]),t(X,[2,140]),t(X,[2,141]),t(X,[2,142]),t(X,[2,143]),t(X,[2,144]),t(X,[2,145]),t(s,[2,12]),t(s,[2,18]),t(s,[2,19]),{9:[1,110]},t(St,[2,26],{18:111,10:F}),t(I,[2,27]),{40:112,41:38,42:y,43:39,45:40,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},t(I,[2,40]),t(I,[2,41]),t(I,[2,42]),t(bt,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:Vt,116:Bt},t([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),t(I,[2,28]),t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(I,[2,32]),{10:Wt,12:pt,14:ut,27:ot,28:122,32:lt,42:ht,58:$,73:rt,77:[1,124],78:[1,125],80:135,81:it,82:ct,83:re,84:Qt,85:de,86:zt,87:Gt,88:123,102:qt,106:Ee,108:fe,111:sr,112:Vr,113:me},t(jt,n,{5:148}),t(I,[2,37]),t(I,[2,38]),t(j,[2,45],{42:se}),{42:y,45:150,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},{99:[1,151],100:152,102:[1,153]},{42:y,45:154,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},{42:y,45:155,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},t(Ot,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},t(Ot,[2,108],{117:160,10:[1,159],14:dt,42:K,58:G,86:tt,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft}),t(Ot,[2,110],{10:[1,161]}),t(Zt,[2,176]),t(Zt,[2,163]),t(Zt,[2,164]),t(Zt,[2,165]),t(Zt,[2,166]),t(Zt,[2,167]),t(Zt,[2,168]),t(Zt,[2,169]),t(Zt,[2,170]),t(Zt,[2,171]),t(Zt,[2,172]),t(Zt,[2,173]),{42:y,45:162,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},{30:163,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:171,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:173,48:[1,172],65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:174,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:175,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:176,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{106:[1,177]},{30:178,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:179,63:[1,180],65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:181,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:182,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{30:183,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},t(X,[2,175]),t(s,[2,20]),t(St,[2,25]),t(j,[2,43],{18:184,10:F}),t(bt,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{75:[1,188],76:189,113:Vt,116:Bt},t(Be,[2,73]),t(Be,[2,75]),t(Be,[2,76]),t(Be,[2,161]),t(Be,[2,162]),{8:M,9:z,10:Wt,11:st,12:pt,14:ut,21:191,27:ot,29:[1,190],32:lt,42:ht,58:$,73:rt,80:135,81:it,82:ct,83:re,84:Qt,85:de,86:zt,87:Gt,88:192,102:qt,106:Ee,108:fe,111:sr,112:Vr,113:me},t(Xt,[2,94]),t(Xt,[2,96]),t(Xt,[2,97]),t(Xt,[2,150]),t(Xt,[2,151]),t(Xt,[2,152]),t(Xt,[2,153]),t(Xt,[2,154]),t(Xt,[2,155]),t(Xt,[2,156]),t(Xt,[2,157]),t(Xt,[2,158]),t(Xt,[2,159]),t(Xt,[2,160]),t(Xt,[2,83]),t(Xt,[2,84]),t(Xt,[2,85]),t(Xt,[2,86]),t(Xt,[2,87]),t(Xt,[2,88]),t(Xt,[2,89]),t(Xt,[2,90]),t(Xt,[2,91]),t(Xt,[2,92]),t(Xt,[2,93]),{6:11,7:12,8:a,9:o,10:l,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:u,32:[1,193],33:24,34:p,36:d,38:g,40:28,41:38,42:y,43:39,45:40,58:x,81:_,82:w,83:E,84:R,85:v,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b,118:P,119:U,120:N,121:D},{10:F,18:194},{10:[1,195],42:y,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:109,111:f,112:L,113:b},{10:[1,196]},{10:[1,197],103:[1,198]},t(Ml,[2,121]),{10:[1,199],42:y,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:109,111:f,112:L,113:b},{10:[1,200],42:y,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:109,111:f,112:L,113:b},{77:[1,201]},t(Ot,[2,102],{10:[1,202]}),t(Ot,[2,104],{10:[1,203]}),{77:[1,204]},t(Zt,[2,177]),{77:[1,205],95:[1,206]},t(V,[2,50],{110:109,42:y,58:x,86:T,99:k,102:A,103:S,106:m,108:C,111:f,112:L,113:b}),{31:[1,207],65:Dt,79:208,113:Pt,114:Nt,115:It},t(nr,[2,79]),t(nr,[2,81]),t(nr,[2,82]),t(nr,[2,146]),t(nr,[2,147]),t(nr,[2,148]),t(nr,[2,149]),{47:[1,209],65:Dt,79:208,113:Pt,114:Nt,115:It},{30:210,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{49:[1,211],65:Dt,79:208,113:Pt,114:Nt,115:It},{51:[1,212],65:Dt,79:208,113:Pt,114:Nt,115:It},{53:[1,213],65:Dt,79:208,113:Pt,114:Nt,115:It},{55:[1,214],65:Dt,79:208,113:Pt,114:Nt,115:It},{58:[1,215]},{62:[1,216],65:Dt,79:208,113:Pt,114:Nt,115:It},{64:[1,217],65:Dt,79:208,113:Pt,114:Nt,115:It},{30:218,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},{31:[1,219],65:Dt,79:208,113:Pt,114:Nt,115:It},{65:Dt,67:[1,220],69:[1,221],79:208,113:Pt,114:Nt,115:It},{65:Dt,67:[1,223],69:[1,222],79:208,113:Pt,114:Nt,115:It},t(j,[2,44],{42:se}),t(bt,[2,70]),t(bt,[2,69]),{60:[1,224],65:Dt,79:208,113:Pt,114:Nt,115:It},t(bt,[2,72]),t(Be,[2,74]),{30:225,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},t(jt,n,{5:226}),t(Xt,[2,95]),t(I,[2,35]),{41:227,42:y,43:39,45:40,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},{10:Fi,58:Ri,81:Ni,89:228,102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},{10:Fi,58:Ri,81:Ni,89:239,101:[1,240],102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},{10:Fi,58:Ri,81:Ni,89:241,101:[1,242],102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},{102:[1,243]},{10:Fi,58:Ri,81:Ni,89:244,102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},{42:y,45:245,58:x,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b},t(Ot,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},t(Ot,[2,109]),t(Ot,[2,111],{10:[1,249]}),t(Ot,[2,112]),t(vt,[2,51]),t(nr,[2,80]),t(vt,[2,52]),{49:[1,250],65:Dt,79:208,113:Pt,114:Nt,115:It},t(vt,[2,59]),t(vt,[2,54]),t(vt,[2,55]),t(vt,[2,56]),{106:[1,251]},t(vt,[2,58]),t(vt,[2,60]),{64:[1,252],65:Dt,79:208,113:Pt,114:Nt,115:It},t(vt,[2,62]),t(vt,[2,63]),t(vt,[2,65]),t(vt,[2,64]),t(vt,[2,66]),t([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:Dt,79:208,113:Pt,114:Nt,115:It},{6:11,7:12,8:a,9:o,10:l,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:u,32:[1,254],33:24,34:p,36:d,38:g,40:28,41:38,42:y,43:39,45:40,58:x,81:_,82:w,83:E,84:R,85:v,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b,118:P,119:U,120:N,121:D},t(V,[2,48]),t(Ot,[2,114],{103:zr}),t(Vl,[2,123],{105:256,10:Fi,58:Ri,81:Ni,102:Oi,106:Pi,107:Mi,108:Vi,109:zi}),t(Ti,[2,125]),t(Ti,[2,127]),t(Ti,[2,128]),t(Ti,[2,129]),t(Ti,[2,130]),t(Ti,[2,131]),t(Ti,[2,132]),t(Ti,[2,133]),t(Ti,[2,134]),t(Ot,[2,115],{103:zr}),{10:[1,257]},t(Ot,[2,116],{103:zr}),{10:[1,258]},t(Ml,[2,122]),t(Ot,[2,98],{103:zr}),t(Ot,[2,99],{110:109,42:y,58:x,86:T,99:k,102:A,103:S,106:m,108:C,111:f,112:L,113:b}),t(Ot,[2,103]),t(Ot,[2,105],{10:[1,259]}),t(Ot,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:M,9:z,11:st,21:264},t(I,[2,34]),{10:Fi,58:Ri,81:Ni,102:Oi,104:265,105:230,106:Pi,107:Mi,108:Vi,109:zi},t(Ti,[2,126]),{14:dt,42:K,58:G,86:tt,98:266,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft,117:84},{14:dt,42:K,58:G,86:tt,98:267,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft,117:84},{95:[1,268]},t(Ot,[2,113]),t(vt,[2,53]),{30:269,65:Dt,77:Yt,78:Ut,79:164,113:Pt,114:Nt,115:It},t(vt,[2,61]),t(jt,n,{5:270}),t(Vl,[2,124],{105:256,10:Fi,58:Ri,81:Ni,102:Oi,106:Pi,107:Mi,108:Vi,109:zi}),t(Ot,[2,119],{117:160,10:[1,271],14:dt,42:K,58:G,86:tt,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft}),t(Ot,[2,120],{117:160,10:[1,272],14:dt,42:K,58:G,86:tt,102:nt,103:Q,106:J,108:O,111:at,112:W,113:ft}),t(Ot,[2,107]),{31:[1,273],65:Dt,79:208,113:Pt,114:Nt,115:It},{6:11,7:12,8:a,9:o,10:l,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:u,32:[1,274],33:24,34:p,36:d,38:g,40:28,41:38,42:y,43:39,45:40,58:x,81:_,82:w,83:E,84:R,85:v,86:T,99:k,102:A,103:S,106:m,108:C,110:41,111:f,112:L,113:b,118:P,119:U,120:N,121:D},{10:Fi,58:Ri,81:Ni,89:275,102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},{10:Fi,58:Ri,81:Ni,89:276,102:Oi,104:229,105:230,106:Pi,107:Mi,108:Vi,109:zi},t(vt,[2,57]),t(I,[2,33]),t(Ot,[2,117],{103:zr}),t(Ot,[2,118],{103:zr})],defaultActions:{},parseError:function(Et,Lt){if(Lt.recoverable)this.trace(Et);else{var Mt=new Error(Et);throw Mt.hash=Lt,Mt}},parse:function(Et){var Lt=this,Mt=[0],xt=[],ne=[null],q=[],fs=this.table,H="",ni=0,zl=0,Hd=2,ql=1,Gd=q.slice.call(arguments,1),Se=Object.create(this.lexer),xr={yy:{}};for(var Sa in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Sa)&&(xr.yy[Sa]=this.yy[Sa]);Se.setInput(Et,xr.yy),xr.yy.lexer=Se,xr.yy.parser=this,typeof Se.yylloc>"u"&&(Se.yylloc={});var wa=Se.yylloc;q.push(wa);var jd=Se.options&&Se.options.ranges;typeof xr.yy.parseError=="function"?this.parseError=xr.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Xd(){var Wi;return Wi=xt.pop()||Se.lex()||ql,typeof Wi!="number"&&(Wi instanceof Array&&(xt=Wi,Wi=xt.pop()),Wi=Lt.symbols_[Wi]||Wi),Wi}for(var je,br,ai,va,qr={},on,qi,Wl,ln;;){if(br=Mt[Mt.length-1],this.defaultActions[br]?ai=this.defaultActions[br]:((je===null||typeof je>"u")&&(je=Xd()),ai=fs[br]&&fs[br][je]),typeof ai>"u"||!ai.length||!ai[0]){var Aa="";ln=[];for(on in fs[br])this.terminals_[on]&&on>Hd&&ln.push("'"+this.terminals_[on]+"'");Se.showPosition?Aa="Parse error on line "+(ni+1)+`: +`+Se.showPosition()+` +Expecting `+ln.join(", ")+", got '"+(this.terminals_[je]||je)+"'":Aa="Parse error on line "+(ni+1)+": Unexpected "+(je==ql?"end of input":"'"+(this.terminals_[je]||je)+"'"),this.parseError(Aa,{text:Se.match,token:this.terminals_[je]||je,line:Se.yylineno,loc:wa,expected:ln})}if(ai[0]instanceof Array&&ai.length>1)throw new Error("Parse Error: multiple actions possible at state: "+br+", token: "+je);switch(ai[0]){case 1:Mt.push(je),ne.push(Se.yytext),q.push(Se.yylloc),Mt.push(ai[1]),je=null,zl=Se.yyleng,H=Se.yytext,ni=Se.yylineno,wa=Se.yylloc;break;case 2:if(qi=this.productions_[ai[1]][1],qr.$=ne[ne.length-qi],qr._$={first_line:q[q.length-(qi||1)].first_line,last_line:q[q.length-1].last_line,first_column:q[q.length-(qi||1)].first_column,last_column:q[q.length-1].last_column},jd&&(qr._$.range=[q[q.length-(qi||1)].range[0],q[q.length-1].range[1]]),va=this.performAction.apply(qr,[H,zl,ni,xr.yy,ai[1],ne,q].concat(Gd)),typeof va<"u")return va;qi&&(Mt=Mt.slice(0,-1*qi*2),ne=ne.slice(0,-1*qi),q=q.slice(0,-1*qi)),Mt.push(this.productions_[ai[1]][0]),ne.push(qr.$),q.push(qr._$),Wl=fs[Mt[Mt.length-2]][Mt[Mt.length-1]],Mt.push(Wl);break;case 3:return!0}}return!0}},Ud=(function(){var ar={EOF:1,parseError:function(Lt,Mt){if(this.yy.parser)this.yy.parser.parseError(Lt,Mt);else throw new Error(Lt)},setInput:function(Et,Lt){return this.yy=Lt||this.yy||{},this._input=Et,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 Et=this._input[0];this.yytext+=Et,this.yyleng++,this.offset++,this.match+=Et,this.matched+=Et;var Lt=Et.match(/(?:\r\n?|\n).*/g);return Lt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Et},unput:function(Et){var Lt=Et.length,Mt=Et.split(/(?:\r\n?|\n)/g);this._input=Et+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Lt),this.offset-=Lt;var xt=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),Mt.length-1&&(this.yylineno-=Mt.length-1);var ne=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:Mt?(Mt.length===xt.length?this.yylloc.first_column:0)+xt[xt.length-Mt.length].length-Mt[0].length:this.yylloc.first_column-Lt},this.options.ranges&&(this.yylloc.range=[ne[0],ne[0]+this.yyleng-Lt]),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(Et){this.unput(this.match.slice(Et))},pastInput:function(){var Et=this.matched.substr(0,this.matched.length-this.match.length);return(Et.length>20?"...":"")+Et.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Et=this.match;return Et.length<20&&(Et+=this._input.substr(0,20-Et.length)),(Et.substr(0,20)+(Et.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Et=this.pastInput(),Lt=new Array(Et.length+1).join("-");return Et+this.upcomingInput()+` +`+Lt+"^"},test_match:function(Et,Lt){var Mt,xt,ne;if(this.options.backtrack_lexer&&(ne={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ne.yylloc.range=this.yylloc.range.slice(0))),xt=Et[0].match(/(?:\r\n?|\n).*/g),xt&&(this.yylineno+=xt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:xt?xt[xt.length-1].length-xt[xt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Et[0].length},this.yytext+=Et[0],this.match+=Et[0],this.matches=Et,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Et[0].length),this.matched+=Et[0],Mt=this.performAction.call(this,this.yy,this,Lt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Mt)return Mt;if(this._backtrack){for(var q in ne)this[q]=ne[q];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Et,Lt,Mt,xt;this._more||(this.yytext="",this.match="");for(var ne=this._currentRules(),q=0;qLt[0].length)){if(Lt=Mt,xt=q,this.options.backtrack_lexer){if(Et=this.test_match(Mt,ne[q]),Et!==!1)return Et;if(this._backtrack){Lt=!1;continue}else return!1}else if(!this.options.flex)break}return Lt?(Et=this.test_match(Lt,ne[xt]),Et!==!1?Et:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Lt=this.next();return Lt||this.lex()},begin:function(Lt){this.conditionStack.push(Lt)},popState:function(){var Lt=this.conditionStack.length-1;return Lt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Lt){return Lt=this.conditionStack.length-1-Math.abs(Lt||0),Lt>=0?this.conditionStack[Lt]:"INITIAL"},pushState:function(Lt){this.begin(Lt)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Lt,Mt,xt,ne){switch(xt){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return Lt.lex.firstGraph()&&this.begin("dir"),12;case 30:return Lt.lex.firstGraph()&&this.begin("dir"),12;case 31:return Lt.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return ar})();Ca.lexer=Ud;function Ea(){this.yy={}}return Ea.prototype=Ca,Ca.Parser=Ea,new Ea})();ja.parser=ja;const Qo=ja,dx="flowchart-";let xc=0,ss=Y(),Kt={},mi=[],Gr={},tr=[],Mn={},Vn={},xn=0,Xa=!0,ci,ca,ha=[];const ua=t=>mt.sanitizeText(t,ss),Js=function(t){const e=Object.keys(Kt);for(const i of e)if(Kt[i].id===t)return Kt[i].domId;return t},U1=function(t,e,i,r,s,n,a={}){let o,l=t;l!==void 0&&l.trim().length!==0&&(Kt[l]===void 0&&(Kt[l]={id:l,labelType:"text",domId:dx+l+"-"+xc,styles:[],classes:[]}),xc++,e!==void 0?(ss=Y(),o=ua(e.text.trim()),Kt[l].labelType=e.type,o[0]==='"'&&o[o.length-1]==='"'&&(o=o.substring(1,o.length-1)),Kt[l].text=o):Kt[l].text===void 0&&(Kt[l].text=t),i!==void 0&&(Kt[l].type=i),r?.forEach(function(h){Kt[l].styles.push(h)}),s?.forEach(function(h){Kt[l].classes.push(h)}),n!==void 0&&(Kt[l].dir=n),Kt[l].props===void 0?Kt[l].props=a:a!==void 0&&Object.assign(Kt[l].props,a))},H1=function(t,e,i){const n={start:t,end:e,type:void 0,text:"",labelType:"text"};B.info("abc78 Got edge...",n);const a=i.text;if(a!==void 0&&(n.text=ua(a.text.trim()),n.text[0]==='"'&&n.text[n.text.length-1]==='"'&&(n.text=n.text.substring(1,n.text.length-1)),n.labelType=a.type),i!==void 0&&(n.type=i.type,n.stroke=i.stroke,n.length=i.length),n?.length>10&&(n.length=10),mi.length<(ss.maxEdges??500))B.info("abc78 pushing edge..."),mi.push(n);else throw new Error(`Edge limit exceeded. ${mi.length} edges found, but the limit is ${ss.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},G1=function(t,e,i){B.info("addLink (abc78)",t,e,i);let r,s;for(r=0;r=mi.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${mi.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?mi.defaultStyle=e:(Rt.isSubstringInArray("fill",e)===-1&&e.push("fill:none"),mi[i].style=e)})},$1=function(t,e){t.split(",").forEach(function(i){Gr[i]===void 0&&(Gr[i]={id:i,styles:[],textStyles:[]}),e?.forEach(function(r){if(r.match("color")){const s=r.replace("fill","bgFill").replace("color","fill");Gr[i].textStyles.push(s)}Gr[i].styles.push(r)})})},K1=function(t){ci=t,ci.match(/.*/)&&(ci="LR"),ci.match(/.*v/)&&(ci="TB"),ci==="TD"&&(ci="TB")},da=function(t,e){t.split(",").forEach(function(i){let r=i;Kt[r]!==void 0&&Kt[r].classes.push(e),Mn[r]!==void 0&&Mn[r].classes.push(e)})},fx=function(t,e){t.split(",").forEach(function(i){e!==void 0&&(Vn[ca==="gen-1"?Js(i):i]=ua(e))})},px=function(t,e,i){let r=Js(t);if(Y().securityLevel!=="loose"||e===void 0)return;let s=[];if(typeof i=="string"){s=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let n=0;n")),s.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),yt(this).classed("hover",!1)})};ha.push(nu);const au=function(t="gen-1"){Kt={},Gr={},mi=[],ha=[nu],tr=[],Mn={},xn=0,Vn={},Xa=!0,ca=t,ss=Y(),Oe()},ou=t=>{ca=t||"gen-2"},lu=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},cu=function(t,e,i){let r=t.text.trim(),s=i.text;t===i&&i.text.match(/\s/)&&(r=void 0);function n(u){const p={boolean:{},number:{},string:{}},d=[];let g;return{nodeList:u.filter(function(x){const _=typeof x;return x.stmt&&x.stmt==="dir"?(g=x.value,!1):x.trim()===""?!1:_ in p?p[_].hasOwnProperty(x)?!1:p[_][x]=!0:d.includes(x)?!1:d.push(x)}),dir:g}}let a=[];const{nodeList:o,dir:l}=n(a.concat.apply(a,e));if(a=o,ca==="gen-1")for(let u=0;u2e3)return;if(hu[ys]=e,tr[e].id===t)return{result:!0,count:0};let r=0,s=1;for(;r=0){const a=uu(t,n);if(a.result)return{result:!0,count:s+a.count};s=s+a.count}r=r+1}return{result:!1,count:s}},du=function(t){return hu[t]},fu=function(){ys=-1,tr.length>0&&uu("none",tr.length-1)},pu=function(){return tr},gu=()=>Xa?(Xa=!1,!0):!1,yx=t=>{let e=t.trim(),i="arrow_open";switch(e[0]){case"<":i="arrow_point",e=e.slice(1);break;case"x":i="arrow_cross",e=e.slice(1);break;case"o":i="arrow_circle",e=e.slice(1);break}let r="normal";return e.includes("=")&&(r="thick"),e.includes(".")&&(r="dotted"),{type:i,stroke:r}},mx=(t,e)=>{const i=e.length;let r=0;for(let s=0;s{const e=t.trim();let i=e.slice(0,-1),r="arrow_open";switch(e.slice(-1)){case"x":r="arrow_cross",e[0]==="x"&&(r="double_"+r,i=i.slice(1));break;case">":r="arrow_point",e[0]==="<"&&(r="double_"+r,i=i.slice(1));break;case"o":r="arrow_circle",e[0]==="o"&&(r="double_"+r,i=i.slice(1));break}let s="normal",n=i.length-1;i[0]==="="&&(s="thick"),i[0]==="~"&&(s="invisible");let a=mx(".",i);return a&&(s="dotted",n=a),{type:r,stroke:s,length:n}},yu=(t,e)=>{const i=xx(t);let r;if(e){if(r=yx(e),r.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(r.type==="arrow_open")r.type=i.type;else{if(r.type!==i.type)return{type:"INVALID",stroke:"INVALID"};r.type="double_"+r.type}return r.type==="double_arrow"&&(r.type="double_arrow_point"),r.length=i.length,r}return i},mu=(t,e)=>{let i=!1;return t.forEach(r=>{r.nodes.indexOf(e)>=0&&(i=!0)}),i},xu=(t,e)=>{const i=[];return t.nodes.forEach((r,s)=>{mu(e,r)||i.push(t.nodes[s])}),{nodes:i}},bu={firstGraph:gu},Sr={defaultConfig:()=>a1.flowchart,setAccTitle:Pe,getAccTitle:Ye,getAccDescription:He,setAccDescription:Ue,addVertex:U1,lookUpDomId:Js,addLink:G1,updateLinkInterpolate:j1,updateLink:X1,addClass:$1,setDirection:K1,setClass:da,setTooltip:fx,getTooltip:Z1,setClickEvent:J1,setLink:Q1,bindFunctions:tu,getDirection:eu,getVertices:iu,getEdges:ru,getClasses:su,clear:au,setGen:ou,defaultStyle:lu,addSubGraph:cu,getDepthFirstPos:du,indexNodes:fu,getSubGraphs:pu,destructLink:yu,lex:bu,exists:mu,makeUniq:xu,setDiagramTitle:ri,getDiagramTitle:Ge},bx=Object.freeze(Object.defineProperty({__proto__:null,addClass:$1,addLink:G1,addSingleLink:H1,addSubGraph:cu,addVertex:U1,bindFunctions:tu,clear:au,default:Sr,defaultStyle:lu,destructLink:yu,firstGraph:gu,getClasses:su,getDepthFirstPos:du,getDirection:eu,getEdges:ru,getSubGraphs:pu,getTooltip:Z1,getVertices:iu,indexNodes:fu,lex:bu,lookUpDomId:Js,setClass:da,setClickEvent:J1,setDirection:K1,setGen:ou,setLink:Q1,updateLink:X1,updateLinkInterpolate:j1},Symbol.toStringTag,{value:"Module"}));function kx(t){const e=t.replace(/\n{2,}/g,` +`);return kh(e)}function _x(t){const e=kx(t),{children:i}=_h(e),r=[[]];let s=0;function n(a,o="normal"){a.type==="text"?a.value.split(` +`).forEach((h,u)=>{u!==0&&(s++,r.push([])),h.split(" ").forEach(p=>{p&&r[s].push({content:p,type:o})})}):(a.type==="strong"||a.type==="emphasis")&&a.children.forEach(l=>{n(l,a.type)})}return i.forEach(a=>{a.type==="paragraph"&&a.children.forEach(o=>{n(o)})}),r}function Tx(t){const{children:e}=_h(t);function i(r){return r.type==="text"?r.value.replace(/\n/g,"
"):r.type==="strong"?`${r.children.map(i).join("")}`:r.type==="emphasis"?`${r.children.map(i).join("")}`:r.type==="paragraph"?`

${r.children.map(i).join("")}

`:`Unsupported markdown: ${r.type}`}return e.map(i).join("")}function Cx(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function Ex(t,e){const i=Cx(e.content);return ku(t,[],i,e.type)}function ku(t,e,i,r){if(i.length===0)return[{content:e.join(""),type:r},{content:"",type:r}];const[s,...n]=i,a=[...e,s];return t([{content:a.join(""),type:r}])?ku(t,a,n,r):(e.length===0&&s&&(e.push(s),i.shift()),[{content:e.join(""),type:r},{content:i.join(""),type:r}])}function Sx(t,e){if(t.some(({content:i})=>i.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return $a(t,e)}function $a(t,e,i=[],r=[]){if(t.length===0)return r.length>0&&i.push(r),i.length>0?i:[];let s="";t[0].content===" "&&(s=" ",t.shift());const n=t.shift()??{content:" ",type:"normal"},a=[...r];if(s!==""&&a.push({content:s,type:"normal"}),a.push(n),e(a))return $a(t,e,i,a);if(r.length>0)i.push(r),t.unshift(n);else if(n.content){const[o,l]=Ex(e,n);i.push([o]),l.content&&t.unshift(l)}return $a(t,e,i)}function wx(t,e){e&&t.attr("style",e)}function vx(t,e,i,r,s=!1){const n=t.append("foreignObject"),a=n.append("xhtml:div"),o=e.label,l=e.isNode?"nodeLabel":"edgeLabel";a.html(te(` + "+o+"",ee())),wx(a,e.labelStyle),a.style("display","table-cell"),a.style("white-space","nowrap"),a.style("max-width",i+"px"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),s&&a.attr("class","labelBkg");let h=a.node().getBoundingClientRect();return h.width===i&&(a.style("display","table"),a.style("white-space","break-spaces"),a.style("width",i+"px"),h=a.node().getBoundingClientRect()),n.style("width",h.width),n.style("height",h.height),n.node()}function Zo(t,e,i){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*i-.1+"em").attr("dy",i+"em")}function Ax(t,e,i){const r=t.append("text"),s=Zo(r,1,e);Jo(s,i);const n=s.node().getComputedTextLength();return r.remove(),n}function Lx(t,e,i){var r;const s=t.append("text"),n=Zo(s,1,e);Jo(n,[{content:i,type:"normal"}]);const a=(r=n.node())==null?void 0:r.getBoundingClientRect();return a&&s.remove(),a}function Bx(t,e,i,r=!1){const n=e.append("g"),a=n.insert("rect").attr("class","background"),o=n.append("text").attr("y","-10.1");let l=0;for(const h of i){const u=d=>Ax(n,1.1,d)<=t,p=u(h)?[h]:Sx(h,u);for(const d of p){const g=Zo(o,l,1.1);Jo(g,d),l++}}if(r){const h=o.node().getBBox(),u=2;return a.attr("x",-u).attr("y",-u).attr("width",h.width+2*u).attr("height",h.height+2*u),n.node()}else return o.node()}function Jo(t,e){t.text(""),e.forEach((i,r)=>{const s=t.append("tspan").attr("font-style",i.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",i.type==="strong"?"bold":"normal");r===0?s.text(i.content):s.text(" "+i.content)})}const fa=(t,e="",{style:i="",isTitle:r=!1,classes:s="",useHtmlLabels:n=!0,isNode:a=!0,width:o=200,addSvgBackground:l=!1}={})=>{if(B.info("createText",e,i,r,s,n,a,l),n){const h=Tx(e),u={isNode:a,label:Is(h).replace(/fa[blrs]?:fa-[\w-]+/g,d=>``),labelStyle:i.replace("fill:","color:")};return vx(t,u,o,s,l)}else{const h=_x(e);return Bx(o,t,h,l)}},Ix=(t,e,i,r)=>{e.forEach(s=>{qx[s](t,i,r)})},Dx=(t,e,i)=>{B.trace("Making markers for ",i),t.append("defs").append("marker").attr("id",i+"_"+e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",i+"_"+e+"-extensionEnd").attr("class","marker extension "+e).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")},Fx=(t,e,i)=>{t.append("defs").append("marker").attr("id",i+"_"+e+"-compositionStart").attr("class","marker composition "+e).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"),t.append("defs").append("marker").attr("id",i+"_"+e+"-compositionEnd").attr("class","marker composition "+e).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")},Rx=(t,e,i)=>{t.append("defs").append("marker").attr("id",i+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).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"),t.append("defs").append("marker").attr("id",i+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).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")},Nx=(t,e,i)=>{t.append("defs").append("marker").attr("id",i+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",i+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).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")},Ox=(t,e,i)=>{t.append("defs").append("marker").attr("id",i+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).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),t.append("defs").append("marker").attr("id",i+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).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)},Px=(t,e,i)=>{t.append("marker").attr("id",i+"_"+e+"-pointEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",i+"_"+e+"-pointStart").attr("class","marker "+e).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")},Mx=(t,e,i)=>{t.append("marker").attr("id",i+"_"+e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",i+"_"+e+"-circleStart").attr("class","marker "+e).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")},Vx=(t,e,i)=>{t.append("marker").attr("id",i+"_"+e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",i+"_"+e+"-crossStart").attr("class","marker cross "+e).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")},zx=(t,e,i)=>{t.append("defs").append("marker").attr("id",i+"_"+e+"-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")},qx={extension:Dx,composition:Fx,aggregation:Rx,dependency:Nx,lollipop:Ox,point:Px,circle:Mx,cross:Vx,barb:zx},tl=Ix;function Wx(t,e){e&&t.attr("style",e)}function Yx(t,e){const i=yt(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=i.append("xhtml:div"),s=t.label,n=t.isNode?"nodeLabel":"edgeLabel";return r.html(te('"+s+"",e)),Wx(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),i.node()}const Ux=(t,e,i,r)=>{let s=t||"";typeof s=="object"&&(s=s[0]);const n=Y();if(Te(n.flowchart.htmlLabels)){s=s.replace(/\\n|\n/g,"
"),B.debug("vertexText"+s);const a={isNode:r,label:Is(s).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:e.replace("fill:","color:")};return Yx(a,n)}else{const a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let o=[];typeof s=="string"?o=s.split(/\\n|\n|/gi):Array.isArray(s)?o=s:o=[];for(const l of o){const h=document.createElementNS("http://www.w3.org/2000/svg","tspan");h.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),h.setAttribute("dy","1em"),h.setAttribute("x","0"),i?h.setAttribute("class","title-row"):h.setAttribute("class","row"),h.textContent=l.trim(),a.appendChild(h)}return a}},Ke=Ux,Ce=async(t,e,i,r)=>{let s;const n=e.useHtmlLabels||Te(Y().flowchart.htmlLabels);i?s=i:s="node default";const a=t.insert("g").attr("class",s).attr("id",e.domId||e.id),o=a.insert("g").attr("class","label").attr("style",e.labelStyle);let l;e.labelText===void 0?l="":l=typeof e.labelText=="string"?e.labelText:e.labelText[0];const h=o.node();let u;e.labelType==="markdown"?u=fa(o,te(Is(l),Y()),{useHtmlLabels:n,width:e.width||Y().flowchart.wrappingWidth,classes:"markdown-node-label"}):u=h.appendChild(Ke(te(Is(l),Y()),e.labelStyle,!1,r));let p=u.getBBox();const d=e.padding/2;if(Te(Y().flowchart.htmlLabels)){const g=u.children[0],y=yt(u),x=g.getElementsByTagName("img");if(x){const _=l.replace(/]*>/g,"").trim()==="";await Promise.all([...x].map(w=>new Promise(E=>{function R(){if(w.style.display="flex",w.style.flexDirection="column",_){const v=Y().fontSize?Y().fontSize:window.getComputedStyle(document.body).fontSize,k=parseInt(v,10)*5+"px";w.style.minWidth=k,w.style.maxWidth=k}else w.style.width="100%";E(w)}setTimeout(()=>{w.complete&&R()}),w.addEventListener("error",R),w.addEventListener("load",R)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return n?o.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):o.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&o.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:a,bbox:p,halfPadding:d,label:o}},oe=(t,e)=>{const i=e.node().getBBox();t.width=i.width,t.height=i.height};function Di(t,e,i,r){return t.insert("polygon",":first-child").attr("points",r.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+i/2+")")}function Hx(t,e){return t.intersect(e)}function _u(t,e,i,r){var s=t.x,n=t.y,a=s-r.x,o=n-r.y,l=Math.sqrt(e*e*o*o+i*i*a*a),h=Math.abs(e*i*a/l);r.x0}function Xx(t,e,i){var r=t.x,s=t.y,n=[],a=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(y){a=Math.min(a,y.x),o=Math.min(o,y.y)}):(a=Math.min(a,e.x),o=Math.min(o,e.y));for(var l=r-t.width/2-a,h=s-t.height/2-o,u=0;u1&&n.sort(function(y,x){var _=y.x-i.x,w=y.y-i.y,E=Math.sqrt(_*_+w*w),R=x.x-i.x,v=x.y-i.y,T=Math.sqrt(R*R+v*v);return E{var i=t.x,r=t.y,s=e.x-i,n=e.y-r,a=t.width/2,o=t.height/2,l,h;return Math.abs(n)*a>Math.abs(s)*o?(n<0&&(o=-o),l=n===0?0:o*s/n,h=o):(s<0&&(a=-a),l=a,h=s===0?0:a*n/s),{x:i+l,y:r+h}},tn=$x,ie={node:Hx,circle:Gx,ellipse:_u,polygon:Xx,rect:tn},Kx=async(t,e)=>{e.useHtmlLabels||Y().flowchart.htmlLabels||(e.centerLabel=!0);const{shapeSvg:r,bbox:s,halfPadding:n}=await Ce(t,e,"node "+e.classes,!0);B.info("Classes = ",e.classes);const a=r.insert("rect",":first-child");return a.attr("rx",e.rx).attr("ry",e.ry).attr("x",-s.width/2-n).attr("y",-s.height/2-n).attr("width",s.width+e.padding).attr("height",s.height+e.padding),oe(e,a),e.intersect=function(o){return ie.rect(e,o)},r},Qx=Kx,Zx=t=>{const e=new Set;for(const i of t)switch(i){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(i);break}return e},Jx=(t,e,i)=>{const r=Zx(t),s=2,n=e.height+2*i.padding,a=n/s,o=e.width+2*a+i.padding,l=i.padding/2;return r.has("right")&&r.has("left")&&r.has("up")&&r.has("down")?[{x:0,y:0},{x:a,y:0},{x:o/2,y:2*l},{x:o-a,y:0},{x:o,y:0},{x:o,y:-n/3},{x:o+2*l,y:-n/2},{x:o,y:-2*n/3},{x:o,y:-n},{x:o-a,y:-n},{x:o/2,y:-n-2*l},{x:a,y:-n},{x:0,y:-n},{x:0,y:-2*n/3},{x:-2*l,y:-n/2},{x:0,y:-n/3}]:r.has("right")&&r.has("left")&&r.has("up")?[{x:a,y:0},{x:o-a,y:0},{x:o,y:-n/2},{x:o-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}]:r.has("right")&&r.has("left")&&r.has("down")?[{x:0,y:0},{x:a,y:-n},{x:o-a,y:-n},{x:o,y:0}]:r.has("right")&&r.has("up")&&r.has("down")?[{x:0,y:0},{x:o,y:-a},{x:o,y:-n+a},{x:0,y:-n}]:r.has("left")&&r.has("up")&&r.has("down")?[{x:o,y:0},{x:0,y:-a},{x:0,y:-n+a},{x:o,y:-n}]:r.has("right")&&r.has("left")?[{x:a,y:0},{x:a,y:-l},{x:o-a,y:-l},{x:o-a,y:0},{x:o,y:-n/2},{x:o-a,y:-n},{x:o-a,y:-n+l},{x:a,y:-n+l},{x:a,y:-n},{x:0,y:-n/2}]:r.has("up")&&r.has("down")?[{x:o/2,y:0},{x:0,y:-l},{x:a,y:-l},{x:a,y:-n+l},{x:0,y:-n+l},{x:o/2,y:-n},{x:o,y:-n+l},{x:o-a,y:-n+l},{x:o-a,y:-l},{x:o,y:-l}]:r.has("right")&&r.has("up")?[{x:0,y:0},{x:o,y:-a},{x:0,y:-n}]:r.has("right")&&r.has("down")?[{x:0,y:0},{x:o,y:0},{x:0,y:-n}]:r.has("left")&&r.has("up")?[{x:o,y:0},{x:0,y:-a},{x:o,y:-n}]:r.has("left")&&r.has("down")?[{x:o,y:0},{x:0,y:0},{x:o,y:-n}]:r.has("right")?[{x:a,y:-l},{x:a,y:-l},{x:o-a,y:-l},{x:o-a,y:0},{x:o,y:-n/2},{x:o-a,y:-n},{x:o-a,y:-n+l},{x:a,y:-n+l},{x:a,y:-n+l}]:r.has("left")?[{x:a,y:0},{x:a,y:-l},{x:o-a,y:-l},{x:o-a,y:-n+l},{x:a,y:-n+l},{x:a,y:-n},{x:0,y:-n/2}]:r.has("up")?[{x:a,y:-l},{x:a,y:-n+l},{x:0,y:-n+l},{x:o/2,y:-n},{x:o,y:-n+l},{x:o-a,y:-n+l},{x:o-a,y:-l}]:r.has("down")?[{x:o/2,y:0},{x:0,y:-l},{x:a,y:-l},{x:a,y:-n+l},{x:o-a,y:-n+l},{x:o-a,y:-l},{x:o,y:-l}]:[{x:0,y:0}]},kc=t=>t?" "+t:"",si=(t,e)=>`node default${kc(t.classes)} ${kc(t.class)}`,_c=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=s+n,o=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];B.info("Question main (Circle)");const l=Di(i,a,a,o);return l.attr("style",e.style),oe(e,l),e.intersect=function(h){return B.warn("Intersect called"),ie.polygon(e,o,h)},i},t4=(t,e)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),r=28,s=[{x:0,y:r/2},{x:r/2,y:0},{x:0,y:-r/2},{x:-r/2,y:0}];return i.insert("polygon",":first-child").attr("points",s.map(function(a){return a.x+","+a.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(a){return ie.circle(e,14,a)},i},e4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=4,n=r.height+e.padding,a=n/s,o=r.width+2*a+e.padding,l=[{x:a,y:0},{x:o-a,y:0},{x:o,y:-n/2},{x:o-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}],h=Di(i,o,n,l);return h.attr("style",e.style),oe(e,h),e.intersect=function(u){return ie.polygon(e,l,u)},i},i4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,void 0,!0),s=2,n=r.height+2*e.padding,a=n/s,o=r.width+2*a+e.padding,l=Jx(e.directions,r,e),h=Di(i,o,n,l);return h.attr("style",e.style),oe(e,h),e.intersect=function(u){return ie.polygon(e,l,u)},i},r4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:-n/2,y:0},{x:s,y:0},{x:s,y:-n},{x:-n/2,y:-n},{x:0,y:-n/2}];return Di(i,s,n,a).attr("style",e.style),e.width=s+n,e.height=n,e.intersect=function(l){return ie.polygon(e,a,l)},i},s4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:-2*n/6,y:0},{x:s-n/6,y:0},{x:s+2*n/6,y:-n},{x:n/6,y:-n}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},n4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:2*n/6,y:0},{x:s+n/6,y:0},{x:s-2*n/6,y:-n},{x:-n/6,y:-n}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},a4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:-2*n/6,y:0},{x:s+2*n/6,y:0},{x:s-n/6,y:-n},{x:n/6,y:-n}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},o4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:n/6,y:0},{x:s-n/6,y:0},{x:s+2*n/6,y:-n},{x:-2*n/6,y:-n}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},l4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:0,y:0},{x:s+n/2,y:0},{x:s,y:-n/2},{x:s+n/2,y:-n},{x:0,y:-n}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},c4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=s/2,a=n/(2.5+s/50),o=r.height+a+e.padding,l="M 0,"+a+" a "+n+","+a+" 0,0,0 "+s+" 0 a "+n+","+a+" 0,0,0 "+-s+" 0 l 0,"+o+" a "+n+","+a+" 0,0,0 "+s+" 0 l 0,"+-o,h=i.attr("label-offset-y",a).insert("path",":first-child").attr("style",e.style).attr("d",l).attr("transform","translate("+-s/2+","+-(o/2+a)+")");return oe(e,h),e.intersect=function(u){const p=ie.rect(e,u),d=p.x-e.x;if(n!=0&&(Math.abs(d)e.height/2-a)){let g=a*a*(1-d*d/(n*n));g!=0&&(g=Math.sqrt(g)),g=a-g,u.y-e.y>0&&(g=-g),p.y+=g}return p},i},h4=async(t,e)=>{const{shapeSvg:i,bbox:r,halfPadding:s}=await Ce(t,e,"node "+e.classes+" "+e.class,!0),n=i.insert("rect",":first-child"),a=e.positioned?e.width:r.width+e.padding,o=e.positioned?e.height:r.height+e.padding,l=e.positioned?-a/2:-r.width/2-s,h=e.positioned?-o/2:-r.height/2-s;if(n.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",l).attr("y",h).attr("width",a).attr("height",o),e.props){const u=new Set(Object.keys(e.props));e.props.borders&&(el(n,e.props.borders,a,o),u.delete("borders")),u.forEach(p=>{B.warn(`Unknown node property ${p}`)})}return oe(e,n),e.intersect=function(u){return ie.rect(e,u)},i},u4=async(t,e)=>{const{shapeSvg:i,bbox:r,halfPadding:s}=await Ce(t,e,"node "+e.classes,!0),n=i.insert("rect",":first-child"),a=e.positioned?e.width:r.width+e.padding,o=e.positioned?e.height:r.height+e.padding,l=e.positioned?-a/2:-r.width/2-s,h=e.positioned?-o/2:-r.height/2-s;if(n.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",l).attr("y",h).attr("width",a).attr("height",o),e.props){const u=new Set(Object.keys(e.props));e.props.borders&&(el(n,e.props.borders,a,o),u.delete("borders")),u.forEach(p=>{B.warn(`Unknown node property ${p}`)})}return oe(e,n),e.intersect=function(u){return ie.rect(e,u)},i},d4=async(t,e)=>{const{shapeSvg:i}=await Ce(t,e,"label",!0);B.trace("Classes = ",e.class);const r=i.insert("rect",":first-child"),s=0,n=0;if(r.attr("width",s).attr("height",n),i.attr("class","label edgeLabel"),e.props){const a=new Set(Object.keys(e.props));e.props.borders&&(el(r,e.props.borders,s,n),a.delete("borders")),a.forEach(o=>{B.warn(`Unknown node property ${o}`)})}return oe(e,r),e.intersect=function(a){return ie.rect(e,a)},i};function el(t,e,i,r){const s=[],n=o=>{s.push(o,0)},a=o=>{s.push(0,o)};e.includes("t")?(B.debug("add top border"),n(i)):a(i),e.includes("r")?(B.debug("add right border"),n(r)):a(r),e.includes("b")?(B.debug("add bottom border"),n(i)):a(i),e.includes("l")?(B.debug("add left border"),n(r)):a(r),t.attr("stroke-dasharray",s.join(" "))}const f4=(t,e)=>{let i;e.classes?i="node "+e.classes:i="node default";const r=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=r.insert("rect",":first-child"),n=r.insert("line"),a=r.insert("g").attr("class","label"),o=e.labelText.flat?e.labelText.flat():e.labelText;let l="";typeof o=="object"?l=o[0]:l=o,B.info("Label text abc79",l,o,typeof o=="object");const h=a.node().appendChild(Ke(l,e.labelStyle,!0,!0));let u={width:0,height:0};if(Te(Y().flowchart.htmlLabels)){const x=h.children[0],_=yt(h);u=x.getBoundingClientRect(),_.attr("width",u.width),_.attr("height",u.height)}B.info("Text 2",o);const p=o.slice(1,o.length);let d=h.getBBox();const g=a.node().appendChild(Ke(p.join?p.join("
"):p,e.labelStyle,!0,!0));if(Te(Y().flowchart.htmlLabels)){const x=g.children[0],_=yt(g);u=x.getBoundingClientRect(),_.attr("width",u.width),_.attr("height",u.height)}const y=e.padding/2;return yt(g).attr("transform","translate( "+(u.width>d.width?0:(d.width-u.width)/2)+", "+(d.height+y+5)+")"),yt(h).attr("transform","translate( "+(u.width{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.height+e.padding,n=r.width+s/4+e.padding,a=i.insert("rect",":first-child").attr("style",e.style).attr("rx",s/2).attr("ry",s/2).attr("x",-n/2).attr("y",-s/2).attr("width",n).attr("height",s);return oe(e,a),e.intersect=function(o){return ie.rect(e,o)},i},g4=async(t,e)=>{const{shapeSvg:i,bbox:r,halfPadding:s}=await Ce(t,e,si(e),!0),n=i.insert("circle",":first-child");return n.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",r.width/2+s).attr("width",r.width+e.padding).attr("height",r.height+e.padding),B.info("Circle main"),oe(e,n),e.intersect=function(a){return B.info("Circle intersect",e,r.width/2+s,a),ie.circle(e,r.width/2+s,a)},i},y4=async(t,e)=>{const{shapeSvg:i,bbox:r,halfPadding:s}=await Ce(t,e,si(e),!0),n=5,a=i.insert("g",":first-child"),o=a.insert("circle"),l=a.insert("circle");return a.attr("class",e.class),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",r.width/2+s+n).attr("width",r.width+e.padding+n*2).attr("height",r.height+e.padding+n*2),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",r.width/2+s).attr("width",r.width+e.padding).attr("height",r.height+e.padding),B.info("DoubleCircle main"),oe(e,o),e.intersect=function(h){return B.info("DoubleCircle intersect",e,r.width/2+s+n,h),ie.circle(e,r.width/2+s+n,h)},i},m4=async(t,e)=>{const{shapeSvg:i,bbox:r}=await Ce(t,e,si(e),!0),s=r.width+e.padding,n=r.height+e.padding,a=[{x:0,y:0},{x:s,y:0},{x:s,y:-n},{x:0,y:-n},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-n},{x:-8,y:-n},{x:-8,y:0}],o=Di(i,s,n,a);return o.attr("style",e.style),oe(e,o),e.intersect=function(l){return ie.polygon(e,a,l)},i},x4=(t,e)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),r=i.insert("circle",":first-child");return r.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),oe(e,r),e.intersect=function(s){return ie.circle(e,7,s)},i},Tc=(t,e,i)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let s=70,n=10;i==="LR"&&(s=10,n=70);const a=r.append("rect").attr("x",-1*s/2).attr("y",-1*n/2).attr("width",s).attr("height",n).attr("class","fork-join");return oe(e,a),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(o){return ie.rect(e,o)},r},b4=(t,e)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),r=i.insert("circle",":first-child"),s=i.insert("circle",":first-child");return s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),r.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),oe(e,s),e.intersect=function(n){return ie.circle(e,7,n)},i},k4=(t,e)=>{const i=e.padding/2,r=4,s=8;let n;e.classes?n="node "+e.classes:n="node default";const a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),o=a.insert("rect",":first-child"),l=a.insert("line"),h=a.insert("line");let u=0,p=r;const d=a.insert("g").attr("class","label");let g=0;const y=e.classData.annotations&&e.classData.annotations[0],x=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"",_=d.node().appendChild(Ke(x,e.labelStyle,!0,!0));let w=_.getBBox();if(Te(Y().flowchart.htmlLabels)){const S=_.children[0],m=yt(_);w=S.getBoundingClientRect(),m.attr("width",w.width),m.attr("height",w.height)}e.classData.annotations[0]&&(p+=w.height+r,u+=w.width);let E=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(Y().flowchart.htmlLabels?E+="<"+e.classData.type+">":E+="<"+e.classData.type+">");const R=d.node().appendChild(Ke(E,e.labelStyle,!0,!0));yt(R).attr("class","classTitle");let v=R.getBBox();if(Te(Y().flowchart.htmlLabels)){const S=R.children[0],m=yt(R);v=S.getBoundingClientRect(),m.attr("width",v.width),m.attr("height",v.height)}p+=v.height+r,v.width>u&&(u=v.width);const T=[];e.classData.members.forEach(S=>{const m=S.getDisplayDetails();let C=m.displayText;Y().flowchart.htmlLabels&&(C=C.replace(//g,">"));const f=d.node().appendChild(Ke(C,m.cssStyle?m.cssStyle:e.labelStyle,!0,!0));let L=f.getBBox();if(Te(Y().flowchart.htmlLabels)){const b=f.children[0],P=yt(f);L=b.getBoundingClientRect(),P.attr("width",L.width),P.attr("height",L.height)}L.width>u&&(u=L.width),p+=L.height+r,T.push(f)}),p+=s;const k=[];if(e.classData.methods.forEach(S=>{const m=S.getDisplayDetails();let C=m.displayText;Y().flowchart.htmlLabels&&(C=C.replace(//g,">"));const f=d.node().appendChild(Ke(C,m.cssStyle?m.cssStyle:e.labelStyle,!0,!0));let L=f.getBBox();if(Te(Y().flowchart.htmlLabels)){const b=f.children[0],P=yt(f);L=b.getBoundingClientRect(),P.attr("width",L.width),P.attr("height",L.height)}L.width>u&&(u=L.width),p+=L.height+r,k.push(f)}),p+=s,y){let S=(u-w.width)/2;yt(_).attr("transform","translate( "+(-1*u/2+S)+", "+-1*p/2+")"),g=w.height+r}let A=(u-v.width)/2;return yt(R).attr("transform","translate( "+(-1*u/2+A)+", "+(-1*p/2+g)+")"),g+=v.height+r,l.attr("class","divider").attr("x1",-u/2-i).attr("x2",u/2+i).attr("y1",-p/2-i+s+g).attr("y2",-p/2-i+s+g),g+=s,T.forEach(S=>{yt(S).attr("transform","translate( "+-u/2+", "+(-1*p/2+g+s/2)+")");const m=S?.getBBox();g+=(m?.height??0)+r}),g+=s,h.attr("class","divider").attr("x1",-u/2-i).attr("x2",u/2+i).attr("y1",-p/2-i+s+g).attr("y2",-p/2-i+s+g),g+=s,k.forEach(S=>{yt(S).attr("transform","translate( "+-u/2+", "+(-1*p/2+g)+")");const m=S?.getBBox();g+=(m?.height??0)+r}),o.attr("style",e.style).attr("class","outer title-state").attr("x",-u/2-i).attr("y",-(p/2)-i).attr("width",u+e.padding).attr("height",p+e.padding),oe(e,o),e.intersect=function(S){return ie.rect(e,S)},a},Cc={rhombus:_c,composite:u4,question:_c,rect:h4,labelRect:d4,rectWithTitle:f4,choice:t4,circle:g4,doublecircle:y4,stadium:p4,hexagon:e4,block_arrow:i4,rect_left_inv_arrow:r4,lean_right:s4,lean_left:n4,trapezoid:a4,inv_trapezoid:o4,rect_right_inv_arrow:l4,cylinder:c4,start:x4,end:b4,note:Qx,subroutine:m4,fork:Tc,join:Tc,class_box:k4};let $r={};const pa=async(t,e,i)=>{let r,s;if(e.link){let n;Y().securityLevel==="sandbox"?n="_top":e.linkTarget&&(n=e.linkTarget||"_blank"),r=t.insert("svg:a").attr("xlink:href",e.link).attr("target",n),s=await Cc[e.shape](r,e,i)}else s=await Cc[e.shape](t,e,i),r=s;return e.tooltip&&s.attr("title",e.tooltip),e.class&&s.attr("class","node default "+e.class),r.attr("data-node","true"),r.attr("data-id",e.id),$r[e.id]=r,e.haveCallback&&$r[e.id].attr("class",$r[e.id].attr("class")+" clickable"),r},_4=(t,e)=>{$r[e.id]=t},T4=()=>{$r={}},Ka=t=>{const e=$r[t.id];B.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const i=8,r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-i)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},ga=({flowchart:t})=>{var e,i;const r=((e=t?.subGraphTitleMargin)==null?void 0:e.top)??0,s=((i=t?.subGraphTitleMargin)==null?void 0:i.bottom)??0,n=r+s;return{subGraphTitleTopMargin:r,subGraphTitleBottomMargin:s,subGraphTitleTotalMargin:n}},or={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function hn(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=zn(t),e=zn(e);const[i,r]=[t.x,t.y],[s,n]=[e.x,e.y],a=s-i,o=n-r;return{angle:Math.atan(o/a),deltaX:a,deltaY:o}}const zn=t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,Tu=t=>({x:function(e,i,r){let s=0;if(i===0&&Object.hasOwn(or,t.arrowTypeStart)){const{angle:n,deltaX:a}=hn(r[0],r[1]);s=or[t.arrowTypeStart]*Math.cos(n)*(a>=0?1:-1)}else if(i===r.length-1&&Object.hasOwn(or,t.arrowTypeEnd)){const{angle:n,deltaX:a}=hn(r[r.length-1],r[r.length-2]);s=or[t.arrowTypeEnd]*Math.cos(n)*(a>=0?1:-1)}return zn(e).x+s},y:function(e,i,r){let s=0;if(i===0&&Object.hasOwn(or,t.arrowTypeStart)){const{angle:n,deltaY:a}=hn(r[0],r[1]);s=or[t.arrowTypeStart]*Math.abs(Math.sin(n))*(a>=0?1:-1)}else if(i===r.length-1&&Object.hasOwn(or,t.arrowTypeEnd)){const{angle:n,deltaY:a}=hn(r[r.length-1],r[r.length-2]);s=or[t.arrowTypeEnd]*Math.abs(Math.sin(n))*(a>=0?1:-1)}return zn(e).y+s}}),Cu=(t,e,i,r,s)=>{e.arrowTypeStart&&Ec(t,"start",e.arrowTypeStart,i,r,s),e.arrowTypeEnd&&Ec(t,"end",e.arrowTypeEnd,i,r,s)},C4={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Ec=(t,e,i,r,s,n)=>{const a=C4[i];if(!a){B.warn(`Unknown arrow type: ${i}`);return}const o=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${r}#${s}_${n}-${a}${o})`)};let qn={},Le={};const E4=()=>{qn={},Le={}},il=(t,e)=>{const i=Te(Y().flowchart.htmlLabels),r=e.labelType==="markdown"?fa(t,e.label,{style:e.labelStyle,useHtmlLabels:i,addSvgBackground:!0}):Ke(e.label,e.labelStyle),s=t.insert("g").attr("class","edgeLabel"),n=s.insert("g").attr("class","label");n.node().appendChild(r);let a=r.getBBox();if(i){const l=r.children[0],h=yt(r);a=l.getBoundingClientRect(),h.attr("width",a.width),h.attr("height",a.height)}n.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),qn[e.id]=s,e.width=a.width,e.height=a.height;let o;if(e.startLabelLeft){const l=Ke(e.startLabelLeft,e.labelStyle),h=t.insert("g").attr("class","edgeTerminals"),u=h.insert("g").attr("class","inner");o=u.node().appendChild(l);const p=l.getBBox();u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Le[e.id]||(Le[e.id]={}),Le[e.id].startLeft=h,un(o,e.startLabelLeft)}if(e.startLabelRight){const l=Ke(e.startLabelRight,e.labelStyle),h=t.insert("g").attr("class","edgeTerminals"),u=h.insert("g").attr("class","inner");o=h.node().appendChild(l),u.node().appendChild(l);const p=l.getBBox();u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Le[e.id]||(Le[e.id]={}),Le[e.id].startRight=h,un(o,e.startLabelRight)}if(e.endLabelLeft){const l=Ke(e.endLabelLeft,e.labelStyle),h=t.insert("g").attr("class","edgeTerminals"),u=h.insert("g").attr("class","inner");o=u.node().appendChild(l);const p=l.getBBox();u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),h.node().appendChild(l),Le[e.id]||(Le[e.id]={}),Le[e.id].endLeft=h,un(o,e.endLabelLeft)}if(e.endLabelRight){const l=Ke(e.endLabelRight,e.labelStyle),h=t.insert("g").attr("class","edgeTerminals"),u=h.insert("g").attr("class","inner");o=u.node().appendChild(l);const p=l.getBBox();u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),h.node().appendChild(l),Le[e.id]||(Le[e.id]={}),Le[e.id].endRight=h,un(o,e.endLabelRight)}return r};function un(t,e){Y().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}const Eu=(t,e)=>{B.debug("Moving label abc88 ",t.id,t.label,qn[t.id],e);let i=e.updatedPath?e.updatedPath:e.originalPath;const r=Y(),{subGraphTitleTotalMargin:s}=ga(r);if(t.label){const n=qn[t.id];let a=t.x,o=t.y;if(i){const l=Rt.calcLabelPosition(i);B.debug("Moving label "+t.label+" from (",a,",",o,") to (",l.x,",",l.y,") abc88"),e.updatedPath&&(a=l.x,o=l.y)}n.attr("transform",`translate(${a}, ${o+s/2})`)}if(t.startLabelLeft){const n=Le[t.id].startLeft;let a=t.x,o=t.y;if(i){const l=Rt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",i);a=l.x,o=l.y}n.attr("transform",`translate(${a}, ${o})`)}if(t.startLabelRight){const n=Le[t.id].startRight;let a=t.x,o=t.y;if(i){const l=Rt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",i);a=l.x,o=l.y}n.attr("transform",`translate(${a}, ${o})`)}if(t.endLabelLeft){const n=Le[t.id].endLeft;let a=t.x,o=t.y;if(i){const l=Rt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",i);a=l.x,o=l.y}n.attr("transform",`translate(${a}, ${o})`)}if(t.endLabelRight){const n=Le[t.id].endRight;let a=t.x,o=t.y;if(i){const l=Rt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",i);a=l.x,o=l.y}n.attr("transform",`translate(${a}, ${o})`)}},S4=(t,e)=>{const i=t.x,r=t.y,s=Math.abs(e.x-i),n=Math.abs(e.y-r),a=t.width/2,o=t.height/2;return s>=a||n>=o},w4=(t,e,i)=>{B.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(i)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const r=t.x,s=t.y,n=Math.abs(r-i.x),a=t.width/2;let o=i.xMath.abs(r-e.x)*l){let p=i.y{B.debug("abc88 cutPathAtIntersect",t,e);let i=[],r=t[0],s=!1;return t.forEach(n=>{if(!S4(e,n)&&!s){const a=w4(e,r,n);let o=!1;i.forEach(l=>{o=o||l.x===a.x&&l.y===a.y}),i.some(l=>l.x===a.x&&l.y===a.y)||i.push(a),s=!0}else r=n,s||i.push(n)}),i},Su=function(t,e,i,r,s,n,a){let o=i.points;B.debug("abc88 InsertEdge: edge=",i,"e=",e);let l=!1;const h=n.node(e.v);var u=n.node(e.w);u?.intersect&&h?.intersect&&(o=o.slice(1,i.points.length-1),o.unshift(h.intersect(o[0])),o.push(u.intersect(o[o.length-1]))),i.toCluster&&(B.debug("to cluster abc88",r[i.toCluster]),o=Sc(i.points,r[i.toCluster].node),l=!0),i.fromCluster&&(B.debug("from cluster abc88",r[i.fromCluster]),o=Sc(o.reverse(),r[i.fromCluster].node).reverse(),l=!0);const p=o.filter(v=>!Number.isNaN(v.y));let d=$s;i.curve&&(s==="graph"||s==="flowchart")&&(d=i.curve);const{x:g,y}=Tu(i),x=fr().x(g).y(y).curve(d);let _;switch(i.thickness){case"normal":_="edge-thickness-normal";break;case"thick":_="edge-thickness-thick";break;case"invisible":_="edge-thickness-thick";break;default:_=""}switch(i.pattern){case"solid":_+=" edge-pattern-solid";break;case"dotted":_+=" edge-pattern-dotted";break;case"dashed":_+=" edge-pattern-dashed";break}const w=t.append("path").attr("d",x(p)).attr("id",i.id).attr("class"," "+_+(i.classes?" "+i.classes:"")).attr("style",i.style);let E="";(Y().flowchart.arrowMarkerAbsolute||Y().state.arrowMarkerAbsolute)&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\("),E=E.replace(/\)/g,"\\)")),Cu(w,i,E,a,s);let R={};return l&&(R.updatedPath=o),R.originalPath=i.points,R};let Ft={},xi={},wu={};const v4=()=>{xi={},wu={},Ft={}},Wn=(t,e)=>(B.trace("In isDescendant",e," ",t," = ",xi[e].includes(t)),!!xi[e].includes(t)),A4=(t,e)=>(B.info("Descendants of ",e," is ",xi[e]),B.info("Edge is ",t),t.v===e||t.w===e?!1:xi[e]?xi[e].includes(t.v)||Wn(t.v,e)||Wn(t.w,e)||xi[e].includes(t.w):(B.debug("Tilt, ",e,",not in descendants"),!1)),vu=(t,e,i,r)=>{B.warn("Copying children of ",t,"root",r,"data",e.node(t),r);const s=e.children(t)||[];t!==r&&s.push(t),B.warn("Copying (nodes) clusterId",t,"nodes",s),s.forEach(n=>{if(e.children(n).length>0)vu(n,e,i,r);else{const a=e.node(n);B.info("cp ",n," to ",r," with parent ",t),i.setNode(n,a),r!==e.parent(n)&&(B.warn("Setting parent",n,e.parent(n)),i.setParent(n,e.parent(n))),t!==r&&n!==t?(B.debug("Setting parent",n,t),i.setParent(n,t)):(B.info("In copy ",t,"root",r,"data",e.node(t),r),B.debug("Not Setting parent for node=",n,"cluster!==rootId",t!==r,"node!==clusterId",n!==t));const o=e.edges(n);B.debug("Copying Edges",o),o.forEach(l=>{B.info("Edge",l);const h=e.edge(l.v,l.w,l.name);B.info("Edge data",h,r);try{A4(l,r)?(B.info("Copying as ",l.v,l.w,h,l.name),i.setEdge(l.v,l.w,h,l.name),B.info("newGraph edges ",i.edges(),i.edge(i.edges()[0]))):B.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",r," clusterId:",t)}catch(u){B.error(u)}})}B.debug("Removing node",n),e.removeNode(n)})},Au=(t,e)=>{const i=e.children(t);let r=[...i];for(const s of i)wu[s]=t,r=[...r,...Au(s,e)];return r},Rs=(t,e)=>{B.trace("Searching",t);const i=e.children(t);if(B.trace("Searching children of id ",t,i),i.length<1)return B.trace("This is a valid node",t),t;for(const r of i){const s=Rs(r,e);if(s)return B.trace("Found replacement for",t," => ",s),s}},dn=t=>!Ft[t]||!Ft[t].externalConnections?t:Ft[t]?Ft[t].id:t,L4=(t,e)=>{if(!t||e>10){B.debug("Opting out, no graph ");return}else B.debug("Opting in, graph ");t.nodes().forEach(function(i){t.children(i).length>0&&(B.warn("Cluster identified",i," Replacement id in edges: ",Rs(i,t)),xi[i]=Au(i,t),Ft[i]={id:Rs(i,t),clusterData:t.node(i)})}),t.nodes().forEach(function(i){const r=t.children(i),s=t.edges();r.length>0?(B.debug("Cluster identified",i,xi),s.forEach(n=>{if(n.v!==i&&n.w!==i){const a=Wn(n.v,i),o=Wn(n.w,i);a^o&&(B.warn("Edge: ",n," leaves cluster ",i),B.warn("Descendants of XXX ",i,": ",xi[i]),Ft[i].externalConnections=!0)}})):B.debug("Not a cluster ",i,xi)});for(let i of Object.keys(Ft)){const r=Ft[i].id,s=t.parent(r);s!==i&&Ft[s]&&!Ft[s].externalConnections&&(Ft[i].id=s)}t.edges().forEach(function(i){const r=t.edge(i);B.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(i)),B.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(t.edge(i)));let s=i.v,n=i.w;if(B.warn("Fix XXX",Ft,"ids:",i.v,i.w,"Translating: ",Ft[i.v]," --- ",Ft[i.w]),Ft[i.v]&&Ft[i.w]&&Ft[i.v]===Ft[i.w]){B.warn("Fixing and trixing link to self - removing XXX",i.v,i.w,i.name),B.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=dn(i.v),n=dn(i.w),t.removeEdge(i.v,i.w,i.name);const a=i.w+"---"+i.v;t.setNode(a,{domId:a,id:a,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const o=structuredClone(r),l=structuredClone(r);o.label="",o.arrowTypeEnd="none",l.label="",o.fromCluster=i.v,l.toCluster=i.v,t.setEdge(s,a,o,i.name+"-cyclic-special"),t.setEdge(a,n,l,i.name+"-cyclic-special")}else if(Ft[i.v]||Ft[i.w]){if(B.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=dn(i.v),n=dn(i.w),t.removeEdge(i.v,i.w,i.name),s!==i.v){const a=t.parent(s);Ft[a].externalConnections=!0,r.fromCluster=i.v}if(n!==i.w){const a=t.parent(n);Ft[a].externalConnections=!0,r.toCluster=i.w}B.warn("Fix Replacing with XXX",s,n,i.name),t.setEdge(s,n,r,i.name)}}),B.warn("Adjusted Graph",Xi(t)),Lu(t,0),B.trace(Ft)},Lu=(t,e)=>{if(B.warn("extractor - ",e,Xi(t),t.children("D")),e>10){B.error("Bailing out");return}let i=t.nodes(),r=!1;for(const s of i){const n=t.children(s);r=r||n.length>0}if(!r){B.debug("Done, no node has children",t.nodes());return}B.debug("Nodes = ",i,e);for(const s of i)if(B.debug("Extracting node",s,Ft,Ft[s]&&!Ft[s].externalConnections,!t.parent(s),t.node(s),t.children("D")," Depth ",e),!Ft[s])B.debug("Not a cluster",s,e);else if(!Ft[s].externalConnections&&t.children(s)&&t.children(s).length>0){B.warn("Cluster without external connections, without a parent and with children",s,e);let a=t.graph().rankdir==="TB"?"LR":"TB";Ft[s]&&Ft[s].clusterData&&Ft[s].clusterData.dir&&(a=Ft[s].clusterData.dir,B.warn("Fixing dir",Ft[s].clusterData.dir,a));const o=new Ii({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});B.warn("Old graph before copy",Xi(t)),vu(s,t,o,s),t.setNode(s,{clusterNode:!0,id:s,clusterData:Ft[s].clusterData,labelText:Ft[s].labelText,graph:o}),B.warn("New graph after copy node: (",s,")",Xi(o)),B.debug("Old graph after copy",Xi(t))}else B.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!Ft[s].externalConnections," no parent: ",!t.parent(s)," children ",t.children(s)&&t.children(s).length>0,t.children("D"),e),B.debug(Ft);i=t.nodes(),B.warn("New list of nodes",i);for(const s of i){const n=t.node(s);B.warn(" Now next level",s,n),n.clusterNode&&Lu(n.graph,e+1)}},Bu=(t,e)=>{if(e.length===0)return[];let i=Object.assign(e);return e.forEach(r=>{const s=t.children(r),n=Bu(t,s);i=[...i,...n]}),i},B4=t=>Bu(t,t.children()),I4=(t,e)=>{B.info("Creating subgraph rect for ",e.id,e);const i=Y(),r=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),s=r.insert("rect",":first-child"),n=Te(i.flowchart.htmlLabels),a=r.insert("g").attr("class","cluster-label"),o=e.labelType==="markdown"?fa(a,e.labelText,{style:e.labelStyle,useHtmlLabels:n}):a.node().appendChild(Ke(e.labelText,e.labelStyle,void 0,!0));let l=o.getBBox();if(Te(i.flowchart.htmlLabels)){const y=o.children[0],x=yt(o);l=y.getBoundingClientRect(),x.attr("width",l.width),x.attr("height",l.height)}const h=0*e.padding,u=h/2,p=e.width<=l.width+h?l.width+h:e.width;e.width<=l.width+h?e.diff=(l.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,B.trace("Data ",e,JSON.stringify(e)),s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-p/2).attr("y",e.y-e.height/2-u).attr("width",p).attr("height",e.height+h);const{subGraphTitleTopMargin:d}=ga(i);n?a.attr("transform",`translate(${e.x-l.width/2}, ${e.y-e.height/2+d})`):a.attr("transform",`translate(${e.x}, ${e.y-e.height/2+d})`);const g=s.node().getBBox();return e.width=g.width,e.height=g.height,e.intersect=function(y){return tn(e,y)},r},D4=(t,e)=>{const i=t.insert("g").attr("class","note-cluster").attr("id",e.id),r=i.insert("rect",":first-child"),s=0*e.padding,n=s/2;r.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-n).attr("y",e.y-e.height/2-n).attr("width",e.width+s).attr("height",e.height+s).attr("fill","none");const a=r.node().getBBox();return e.width=a.width,e.height=a.height,e.intersect=function(o){return tn(e,o)},i},F4=(t,e)=>{const i=Y(),r=t.insert("g").attr("class",e.classes).attr("id",e.id),s=r.insert("rect",":first-child"),n=r.insert("g").attr("class","cluster-label"),a=r.append("rect"),o=n.node().appendChild(Ke(e.labelText,e.labelStyle,void 0,!0));let l=o.getBBox();if(Te(i.flowchart.htmlLabels)){const y=o.children[0],x=yt(o);l=y.getBoundingClientRect(),x.attr("width",l.width),x.attr("height",l.height)}l=o.getBBox();const h=0*e.padding,u=h/2,p=e.width<=l.width+e.padding?l.width+e.padding:e.width;e.width<=l.width+e.padding?e.diff=(l.width+e.padding*0-e.width)/2:e.diff=-e.padding/2,s.attr("class","outer").attr("x",e.x-p/2-u).attr("y",e.y-e.height/2-u).attr("width",p+h).attr("height",e.height+h),a.attr("class","inner").attr("x",e.x-p/2-u).attr("y",e.y-e.height/2-u+l.height-1).attr("width",p+h).attr("height",e.height+h-l.height-3);const{subGraphTitleTopMargin:d}=ga(i);n.attr("transform",`translate(${e.x-l.width/2}, ${e.y-e.height/2-e.padding/3+(Te(i.flowchart.htmlLabels)?5:3)+d})`);const g=s.node().getBBox();return e.height=g.height,e.intersect=function(y){return tn(e,y)},r},R4=(t,e)=>{const i=t.insert("g").attr("class",e.classes).attr("id",e.id),r=i.insert("rect",":first-child"),s=0*e.padding,n=s/2;r.attr("class","divider").attr("x",e.x-e.width/2-n).attr("y",e.y-e.height/2).attr("width",e.width+s).attr("height",e.height+s);const a=r.node().getBBox();return e.width=a.width,e.height=a.height,e.diff=-e.padding/2,e.intersect=function(o){return tn(e,o)},i},N4={rect:I4,roundedWithTitle:F4,noteGroup:D4,divider:R4};let Iu={};const O4=(t,e)=>{B.trace("Inserting cluster");const i=e.shape||"rect";Iu[e.id]=N4[i](t,e)},P4=()=>{Iu={}},Du=async(t,e,i,r,s,n)=>{B.info("Graph in recursive render: XXX",Xi(e),s);const a=e.graph().rankdir;B.trace("Dir in recursive render - dir:",a);const o=t.insert("g").attr("class","root");e.nodes()?B.info("Recursive render XXX",e.nodes()):B.info("No nodes found for",e),e.edges().length>0&&B.trace("Recursive edges",e.edge(e.edges()[0]));const l=o.insert("g").attr("class","clusters"),h=o.insert("g").attr("class","edgePaths"),u=o.insert("g").attr("class","edgeLabels"),p=o.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){const x=e.node(y);if(s!==void 0){const _=JSON.parse(JSON.stringify(s.clusterData));B.info("Setting data for cluster XXX (",y,") ",_,s),e.setNode(s.id,_),e.parent(y)||(B.trace("Setting parent",y,s.id),e.setParent(y,s.id,_))}if(B.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),x&&x.clusterNode){B.info("Cluster identified",y,x.width,e.node(y));const _=await Du(p,x.graph,i,r,e.node(y),n),w=_.elem;oe(x,w),x.diff=_.diff||0,B.info("Node bounds (abc123)",y,x,x.width,x.x,x.y),_4(w,x),B.warn("Recursive render complete ",w,x)}else e.children(y).length>0?(B.info("Cluster - the non recursive path XXX",y,x.id,x,e),B.info(Rs(x.id,e)),Ft[x.id]={id:Rs(x.id,e),node:x}):(B.info("Node - the non recursive path",y,x.id,x),await pa(p,e.node(y),a))})),e.edges().forEach(function(y){const x=e.edge(y.v,y.w,y.name);B.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(y)),B.info("Edge "+y.v+" -> "+y.w+": ",y," ",JSON.stringify(e.edge(y))),B.info("Fix",Ft,"ids:",y.v,y.w,"Translating: ",Ft[y.v],Ft[y.w]),il(u,x)}),e.edges().forEach(function(y){B.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(y))}),B.info("#############################################"),B.info("### Layout ###"),B.info("#############################################"),B.info(e),Xs(e),B.info("Graph after layout:",Xi(e));let d=0;const{subGraphTitleTotalMargin:g}=ga(n);return B4(e).forEach(function(y){const x=e.node(y);B.info("Position "+y+": "+JSON.stringify(e.node(y))),B.info("Position "+y+": ("+x.x,","+x.y,") width: ",x.width," height: ",x.height),x&&x.clusterNode?(x.y+=g,Ka(x)):e.children(y).length>0?(x.height+=g,O4(l,x),Ft[x.id].node=x):(x.y+=g/2,Ka(x))}),e.edges().forEach(function(y){const x=e.edge(y);B.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(x),x),x.points.forEach(w=>w.y+=g/2);const _=Su(h,y,x,Ft,i,e,r);Eu(x,_)}),e.nodes().forEach(function(y){const x=e.node(y);B.info(y,x.type,x.diff),x.type==="group"&&(d=x.diff)}),{elem:o,diff:d}},rl=async(t,e,i,r,s)=>{tl(t,i,r,s),T4(),E4(),P4(),v4(),B.warn("Graph at first:",JSON.stringify(Xi(e))),L4(e),B.warn("Graph after:",JSON.stringify(Xi(e)));const n=Y();await Du(t,e,r,s,void 0,n)},Fu={},M4=function(t){const e=Object.keys(t);for(const i of e)Fu[i]=t[i]},Ru=async function(t,e,i,r,s,n){const a=r.select(`[id="${i}"]`),o=Object.keys(t);for(const l of o){const h=t[l];let u="default";h.classes.length>0&&(u=h.classes.join(" ")),u=u+" flowchart-label";const p=ii(h.styles);let d=h.text!==void 0?h.text:h.id,g;if(B.info("vertex",h,h.labelType),h.labelType==="markdown")B.info("vertex",h,h.labelType);else if(Te(Y().flowchart.htmlLabels))g=gh(a,{label:d}).node(),g.parentNode.removeChild(g);else{const w=s.createElementNS("http://www.w3.org/2000/svg","text");w.setAttribute("style",p.labelStyle.replace("color:","fill:"));const E=d.split(mt.lineBreakRegex);for(const R of E){const v=s.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=R,w.appendChild(v)}g=w}let y=0,x="";switch(h.type){case"round":y=5,x="rect";break;case"square":x="rect";break;case"diamond":x="question";break;case"hexagon":x="hexagon";break;case"odd":x="rect_left_inv_arrow";break;case"lean_right":x="lean_right";break;case"lean_left":x="lean_left";break;case"trapezoid":x="trapezoid";break;case"inv_trapezoid":x="inv_trapezoid";break;case"odd_right":x="rect_left_inv_arrow";break;case"circle":x="circle";break;case"ellipse":x="ellipse";break;case"stadium":x="stadium";break;case"subroutine":x="subroutine";break;case"cylinder":x="cylinder";break;case"group":x="rect";break;case"doublecircle":x="doublecircle";break;default:x="rect"}const _=await Nr(d,Y());e.setNode(h.id,{labelStyle:p.labelStyle,shape:x,labelText:_,labelType:h.labelType,rx:y,ry:y,class:u,style:p.style,id:h.id,link:h.link,linkTarget:h.linkTarget,tooltip:n.db.getTooltip(h.id)||"",domId:n.db.lookUpDomId(h.id),haveCallback:h.haveCallback,width:h.type==="group"?500:void 0,dir:h.dir,type:h.type,props:h.props,padding:Y().flowchart.padding}),B.info("setNode",{labelStyle:p.labelStyle,labelType:h.labelType,shape:x,labelText:_,rx:y,ry:y,class:u,style:p.style,id:h.id,domId:n.db.lookUpDomId(h.id),width:h.type==="group"?500:void 0,type:h.type,dir:h.dir,props:h.props,padding:Y().flowchart.padding})}},Nu=async function(t,e,i){B.info("abc78 edges = ",t);let r=0,s={},n,a;if(t.defaultStyle!==void 0){const o=ii(t.defaultStyle);n=o.style,a=o.labelStyle}for(const o of t){r++;const l="L-"+o.start+"-"+o.end;s[l]===void 0?(s[l]=0,B.info("abc78 new entry",l,s[l])):(s[l]++,B.info("abc78 new entry",l,s[l]));let h=l+"-"+s[l];B.info("abc78 new link id to be used is",l,h,s[l]);const u="LS-"+o.start,p="LE-"+o.end,d={style:"",labelStyle:""};switch(d.minlen=o.length||1,o.type==="arrow_open"?d.arrowhead="none":d.arrowhead="normal",d.arrowTypeStart="arrow_open",d.arrowTypeEnd="arrow_open",o.type){case"double_arrow_cross":d.arrowTypeStart="arrow_cross";case"arrow_cross":d.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":d.arrowTypeStart="arrow_point";case"arrow_point":d.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":d.arrowTypeStart="arrow_circle";case"arrow_circle":d.arrowTypeEnd="arrow_circle";break}let g="",y="";switch(o.stroke){case"normal":g="fill:none;",n!==void 0&&(g=n),a!==void 0&&(y=a),d.thickness="normal",d.pattern="solid";break;case"dotted":d.thickness="normal",d.pattern="dotted",d.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":d.thickness="thick",d.pattern="solid",d.style="stroke-width: 3.5px;fill:none;";break;case"invisible":d.thickness="invisible",d.pattern="solid",d.style="stroke-width: 0;fill:none;";break}if(o.style!==void 0){const x=ii(o.style);g=x.style,y=x.labelStyle}d.style=d.style+=g,d.labelStyle=d.labelStyle+=y,o.interpolate!==void 0?d.curve=di(o.interpolate,ei):t.defaultInterpolate!==void 0?d.curve=di(t.defaultInterpolate,ei):d.curve=di(Fu.curve,ei),o.text===void 0?o.style!==void 0&&(d.arrowheadStyle="fill: #333"):(d.arrowheadStyle="fill: #333",d.labelpos="c"),d.labelType=o.labelType,d.label=await Nr(o.text.replace(mt.lineBreakRegex,` +`),Y()),o.style===void 0&&(d.style=d.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),d.labelStyle=d.labelStyle.replace("color:","fill:"),d.id=h,d.classes="flowchart-link "+u+" "+p,e.setEdge(o.start,o.end,d,r)}},V4=function(t,e){return e.db.getClasses()},z4=async function(t,e,i,r){B.info("Drawing flowchart");let s=r.db.getDirection();s===void 0&&(s="TD");const{securityLevel:n,flowchart:a}=Y(),o=a.nodeSpacing||50,l=a.rankSpacing||50;let h;n==="sandbox"&&(h=yt("#i"+e));const u=n==="sandbox"?yt(h.nodes()[0].contentDocument.body):yt("body"),p=n==="sandbox"?h.nodes()[0].contentDocument:document,d=new Ii({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:o,ranksep:l,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let g;const y=r.db.getSubGraphs();B.info("Subgraphs - ",y);for(let T=y.length-1;T>=0;T--)g=y[T],B.info("Subgraph - ",g),r.db.addVertex(g.id,{text:g.title,type:g.labelType},"group",void 0,g.classes,g.dir);const x=r.db.getVertices(),_=r.db.getEdges();B.info("Edges",_);let w=0;for(w=y.length-1;w>=0;w--){g=y[w],ph("cluster").append("text");for(let T=0;T{const i=mh,r=i(t,"r"),s=i(t,"g"),n=i(t,"b");return Xr(r,s,n,e)},W4=t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${q4(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,Ou=W4;function Pu(t,e,i){const r=e.width,s=e.height,n=(r+s)*.9,a=[{x:n/2,y:0},{x:n,y:-n/2},{x:n/2,y:-n},{x:0,y:-n/2}],o=ir(t,n,n,a);return i.intersect=function(l){return er(i,a,l)},o}function Mu(t,e,i){const s=e.height,n=s/4,a=e.width+2*n,o=[{x:n,y:0},{x:a-n,y:0},{x:a,y:-s/2},{x:a-n,y:-s},{x:n,y:-s},{x:0,y:-s/2}],l=ir(t,a,s,o);return i.intersect=function(h){return er(i,o,h)},l}function Vu(t,e,i){const r=e.width,s=e.height,n=[{x:-s/2,y:0},{x:r,y:0},{x:r,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function zu(t,e,i){const r=e.width,s=e.height,n=[{x:-2*s/6,y:0},{x:r-s/6,y:0},{x:r+2*s/6,y:-s},{x:s/6,y:-s}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function qu(t,e,i){const r=e.width,s=e.height,n=[{x:2*s/6,y:0},{x:r+s/6,y:0},{x:r-2*s/6,y:-s},{x:-s/6,y:-s}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function Wu(t,e,i){const r=e.width,s=e.height,n=[{x:-2*s/6,y:0},{x:r+2*s/6,y:0},{x:r-s/6,y:-s},{x:s/6,y:-s}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function Yu(t,e,i){const r=e.width,s=e.height,n=[{x:s/6,y:0},{x:r-s/6,y:0},{x:r+2*s/6,y:-s},{x:-2*s/6,y:-s}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function Uu(t,e,i){const r=e.width,s=e.height,n=[{x:0,y:0},{x:r+s/2,y:0},{x:r,y:-s/2},{x:r+s/2,y:-s},{x:0,y:-s}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function Hu(t,e,i){const r=e.height,s=e.width+r/4,n=t.insert("rect",":first-child").attr("rx",r/2).attr("ry",r/2).attr("x",-s/2).attr("y",-r/2).attr("width",s).attr("height",r);return i.intersect=function(a){return yh(i,a)},n}function Gu(t,e,i){const r=e.width,s=e.height,n=[{x:0,y:0},{x:r,y:0},{x:r,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:r+8,y:0},{x:r+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],a=ir(t,r,s,n);return i.intersect=function(o){return er(i,n,o)},a}function ju(t,e,i){const r=e.width,s=r/2,n=s/(2.5+r/50),a=e.height+n,o="M 0,"+n+" a "+s+","+n+" 0,0,0 "+r+" 0 a "+s+","+n+" 0,0,0 "+-r+" 0 l 0,"+a+" a "+s+","+n+" 0,0,0 "+r+" 0 l 0,"+-a,l=t.attr("label-offset-y",n).insert("path",":first-child").attr("d",o).attr("transform","translate("+-r/2+","+-(a/2+n)+")");return i.intersect=function(h){const u=yh(i,h),p=u.x-i.x;if(s!=0&&(Math.abs(p)i.height/2-n)){let d=n*n*(1-p*p/(s*s));d!=0&&(d=Math.sqrt(d)),d=n-d,h.y-i.y>0&&(d=-d),u.y+=d}return u},l}function Y4(t){t.shapes().question=Pu,t.shapes().hexagon=Mu,t.shapes().stadium=Hu,t.shapes().subroutine=Gu,t.shapes().cylinder=ju,t.shapes().rect_left_inv_arrow=Vu,t.shapes().lean_right=zu,t.shapes().lean_left=qu,t.shapes().trapezoid=Wu,t.shapes().inv_trapezoid=Yu,t.shapes().rect_right_inv_arrow=Uu}function U4(t){t({question:Pu}),t({hexagon:Mu}),t({stadium:Hu}),t({subroutine:Gu}),t({cylinder:ju}),t({rect_left_inv_arrow:Vu}),t({lean_right:zu}),t({lean_left:qu}),t({trapezoid:Wu}),t({inv_trapezoid:Yu}),t({rect_right_inv_arrow:Uu})}function ir(t,e,i,r){return t.insert("polygon",":first-child").attr("points",r.map(function(s){return s.x+","+s.y}).join(" ")).attr("transform","translate("+-e/2+","+i/2+")")}const H4={addToRender:Y4,addToRenderV2:U4},Xu={},G4=function(t){const e=Object.keys(t);for(const i of e)Xu[i]=t[i]},$u=async function(t,e,i,r,s,n){const a=r?r.select(`[id="${i}"]`):yt(`[id="${i}"]`),o=s||document,l=Object.keys(t);for(const h of l){const u=t[h];let p="default";u.classes.length>0&&(p=u.classes.join(" "));const d=ii(u.styles);let g=u.text!==void 0?u.text:u.id,y;if(Te(Y().flowchart.htmlLabels)){const w={label:await Nr(g.replace(/fa[blrs]?:fa-[\w-]+/g,E=>``),Y())};y=gh(a,w).node(),y.parentNode.removeChild(y)}else{const w=o.createElementNS("http://www.w3.org/2000/svg","text");w.setAttribute("style",d.labelStyle.replace("color:","fill:"));const E=g.split(mt.lineBreakRegex);for(const R of E){const v=o.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=R,w.appendChild(v)}y=w}let x=0,_="";switch(u.type){case"round":x=5,_="rect";break;case"square":_="rect";break;case"diamond":_="question";break;case"hexagon":_="hexagon";break;case"odd":_="rect_left_inv_arrow";break;case"lean_right":_="lean_right";break;case"lean_left":_="lean_left";break;case"trapezoid":_="trapezoid";break;case"inv_trapezoid":_="inv_trapezoid";break;case"odd_right":_="rect_left_inv_arrow";break;case"circle":_="circle";break;case"ellipse":_="ellipse";break;case"stadium":_="stadium";break;case"subroutine":_="subroutine";break;case"cylinder":_="cylinder";break;case"group":_="rect";break;default:_="rect"}B.warn("Adding node",u.id,u.domId),e.setNode(n.db.lookUpDomId(u.id),{labelType:"svg",labelStyle:d.labelStyle,shape:_,label:y,rx:x,ry:x,class:p,style:d.style,id:n.db.lookUpDomId(u.id)})}},Ku=async function(t,e,i){let r=0,s,n;if(t.defaultStyle!==void 0){const a=ii(t.defaultStyle);s=a.style,n=a.labelStyle}for(const a of t){r++;const o="L-"+a.start+"-"+a.end,l="LS-"+a.start,h="LE-"+a.end,u={};a.type==="arrow_open"?u.arrowhead="none":u.arrowhead="normal";let p="",d="";if(a.style!==void 0){const g=ii(a.style);p=g.style,d=g.labelStyle}else switch(a.stroke){case"normal":p="fill:none",s!==void 0&&(p=s),n!==void 0&&(d=n);break;case"dotted":p="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":p=" stroke-width: 3.5px;fill:none";break}u.style=p,u.labelStyle=d,a.interpolate!==void 0?u.curve=di(a.interpolate,ei):t.defaultInterpolate!==void 0?u.curve=di(t.defaultInterpolate,ei):u.curve=di(Xu.curve,ei),a.text===void 0?a.style!==void 0&&(u.arrowheadStyle="fill: #333"):(u.arrowheadStyle="fill: #333",u.labelpos="c",Te(Y().flowchart.htmlLabels)?(u.labelType="html",u.label=`${await Nr(a.text.replace(/fa[blrs]?:fa-[\w-]+/g,g=>``),Y())}`):(u.labelType="text",u.label=a.text.replace(mt.lineBreakRegex,` +`),a.style===void 0&&(u.style=u.style||"stroke: #333; stroke-width: 1.5px;fill:none"),u.labelStyle=u.labelStyle.replace("color:","fill:"))),u.id=o,u.class=l+" "+h,u.minlen=a.length||1,e.setEdge(i.db.lookUpDomId(a.start),i.db.lookUpDomId(a.end),u,r)}},j4=function(t,e){return B.info("Extracting classes"),e.db.getClasses()},X4=async function(t,e,i,r){B.info("Drawing flowchart");const{securityLevel:s,flowchart:n}=Y();let a;s==="sandbox"&&(a=yt("#i"+e));const o=s==="sandbox"?yt(a.nodes()[0].contentDocument.body):yt("body"),l=s==="sandbox"?a.nodes()[0].contentDocument:document;let h=r.db.getDirection();h===void 0&&(h="TD");const u=n.nodeSpacing||50,p=n.rankSpacing||50,d=new Ii({multigraph:!0,compound:!0}).setGraph({rankdir:h,nodesep:u,ranksep:p,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let g;const y=r.db.getSubGraphs();for(let k=y.length-1;k>=0;k--)g=y[k],r.db.addVertex(g.id,g.title,"group",void 0,g.classes);const x=r.db.getVertices();B.warn("Get vertices",x);const _=r.db.getEdges();let w=0;for(w=y.length-1;w>=0;w--){g=y[w],ph("cluster").append("text");for(let k=0;k{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,$4.setConf(t.flowchart),Sr.clear(),Sr.setGen("gen-1")}},Q4=Object.freeze(Object.defineProperty({__proto__:null,diagram:K4},Symbol.toStringTag,{value:"Module"})),Z4={parser:Qo,db:Sr,renderer:Qa,styles:Ou,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,ug({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),Qa.setConf(t.flowchart),Sr.clear(),Sr.setGen("gen-2")}},J4=Object.freeze(Object.defineProperty({__proto__:null,diagram:Z4},Symbol.toStringTag,{value:"Module"}));var Za=(function(){var t=function(S,m,C,f){for(C=C||{},f=S.length;f--;C[S[f]]=m);return C},e=[6,8,10,20,22,24,26,27,28],i=[1,10],r=[1,11],s=[1,12],n=[1,13],a=[1,14],o=[1,15],l=[1,21],h=[1,22],u=[1,23],p=[1,24],d=[1,25],g=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],y=[1,34],x=[27,28,46,47],_=[41,42,43,44,45],w=[17,34],E=[1,54],R=[1,53],v=[17,34,36,38],T={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(m,C,f,L,b,P,U){var N=P.length-1;switch(b){case 1:break;case 2:this.$=[];break;case 3:P[N-1].push(P[N]),this.$=P[N-1];break;case 4:case 5:this.$=P[N];break;case 6:case 7:this.$=[];break;case 8:L.addEntity(P[N-4]),L.addEntity(P[N-2]),L.addRelationship(P[N-4],P[N],P[N-2],P[N-3]);break;case 9:L.addEntity(P[N-3]),L.addAttributes(P[N-3],P[N-1]);break;case 10:L.addEntity(P[N-2]);break;case 11:L.addEntity(P[N]);break;case 12:L.addEntity(P[N-6],P[N-4]),L.addAttributes(P[N-6],P[N-1]);break;case 13:L.addEntity(P[N-5],P[N-3]);break;case 14:L.addEntity(P[N-3],P[N-1]);break;case 15:case 16:this.$=P[N].trim(),L.setAccTitle(this.$);break;case 17:case 18:this.$=P[N].trim(),L.setAccDescription(this.$);break;case 19:case 43:this.$=P[N];break;case 20:case 41:case 42:this.$=P[N].replace(/"/g,"");break;case 21:case 29:this.$=[P[N]];break;case 22:P[N].push(P[N-1]),this.$=P[N];break;case 23:this.$={attributeType:P[N-1],attributeName:P[N]};break;case 24:this.$={attributeType:P[N-2],attributeName:P[N-1],attributeKeyTypeList:P[N]};break;case 25:this.$={attributeType:P[N-2],attributeName:P[N-1],attributeComment:P[N]};break;case 26:this.$={attributeType:P[N-3],attributeName:P[N-2],attributeKeyTypeList:P[N-1],attributeComment:P[N]};break;case 27:case 28:case 31:this.$=P[N];break;case 30:P[N-2].push(P[N]),this.$=P[N-2];break;case 32:this.$=P[N].replace(/"/g,"");break;case 33:this.$={cardA:P[N],relType:P[N-1],cardB:P[N-2]};break;case 34:this.$=L.Cardinality.ZERO_OR_ONE;break;case 35:this.$=L.Cardinality.ZERO_OR_MORE;break;case 36:this.$=L.Cardinality.ONE_OR_MORE;break;case 37:this.$=L.Cardinality.ONLY_ONE;break;case 38:this.$=L.Cardinality.MD_PARENT;break;case 39:this.$=L.Identification.NON_IDENTIFYING;break;case 40:this.$=L.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:i,22:r,24:s,26:n,27:a,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:i,22:r,24:s,26:n,27:a,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:l,42:h,43:u,44:p,45:d}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(g,[2,19]),t(g,[2,20]),t(e,[2,4]),{11:29,27:a,28:o},{16:30,17:[1,31],29:32,30:33,34:y},{11:35,27:a,28:o},{40:36,46:[1,37],47:[1,38]},t(x,[2,34]),t(x,[2,35]),t(x,[2,36]),t(x,[2,37]),t(x,[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:y},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:l,42:h,43:u,44:p,45:d},t(_,[2,39]),t(_,[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:E,38:R}),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:R}),t(w,[2,25]),t(v,[2,29]),t(w,[2,32]),t(v,[2,31]),{16:58,17:[1,59],29:32,30:33,34:y},t(w,[2,26]),{35:60,37:E},{17:[1,61]},t(e,[2,13]),t(v,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(m,C){if(C.recoverable)this.trace(m);else{var f=new Error(m);throw f.hash=C,f}},parse:function(m){var C=this,f=[0],L=[],b=[null],P=[],U=this.table,N="",D=0,F=0,I=2,M=1,z=P.slice.call(arguments,1),st=Object.create(this.lexer),j={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(j.yy[dt]=this.yy[dt]);st.setInput(m,j.yy),j.yy.lexer=st,j.yy.parser=this,typeof st.yylloc>"u"&&(st.yylloc={});var K=st.yylloc;P.push(K);var G=st.options&&st.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function tt(){var St;return St=L.pop()||st.lex()||M,typeof St!="number"&&(St instanceof Array&&(L=St,St=L.pop()),St=C.symbols_[St]||St),St}for(var nt,Q,J,O,at={},W,ft,V,vt;;){if(Q=f[f.length-1],this.defaultActions[Q]?J=this.defaultActions[Q]:((nt===null||typeof nt>"u")&&(nt=tt()),J=U[Q]&&U[Q][nt]),typeof J>"u"||!J.length||!J[0]){var X="";vt=[];for(W in U[Q])this.terminals_[W]&&W>I&&vt.push("'"+this.terminals_[W]+"'");st.showPosition?X="Parse error on line "+(D+1)+`: +`+st.showPosition()+` +Expecting `+vt.join(", ")+", got '"+(this.terminals_[nt]||nt)+"'":X="Parse error on line "+(D+1)+": Unexpected "+(nt==M?"end of input":"'"+(this.terminals_[nt]||nt)+"'"),this.parseError(X,{text:st.match,token:this.terminals_[nt]||nt,line:st.yylineno,loc:K,expected:vt})}if(J[0]instanceof Array&&J.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+nt);switch(J[0]){case 1:f.push(nt),b.push(st.yytext),P.push(st.yylloc),f.push(J[1]),nt=null,F=st.yyleng,N=st.yytext,D=st.yylineno,K=st.yylloc;break;case 2:if(ft=this.productions_[J[1]][1],at.$=b[b.length-ft],at._$={first_line:P[P.length-(ft||1)].first_line,last_line:P[P.length-1].last_line,first_column:P[P.length-(ft||1)].first_column,last_column:P[P.length-1].last_column},G&&(at._$.range=[P[P.length-(ft||1)].range[0],P[P.length-1].range[1]]),O=this.performAction.apply(at,[N,F,D,j.yy,J[1],b,P].concat(z)),typeof O<"u")return O;ft&&(f=f.slice(0,-1*ft*2),b=b.slice(0,-1*ft),P=P.slice(0,-1*ft)),f.push(this.productions_[J[1]][0]),b.push(at.$),P.push(at._$),V=U[f[f.length-2]][f[f.length-1]],f.push(V);break;case 3:return!0}}return!0}},k=(function(){var S={EOF:1,parseError:function(C,f){if(this.yy.parser)this.yy.parser.parseError(C,f);else throw new Error(C)},setInput:function(m,C){return this.yy=C||this.yy||{},this._input=m,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 m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var C=m.match(/(?:\r\n?|\n).*/g);return C?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},unput:function(m){var C=m.length,f=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-C),this.offset-=C;var L=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 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:f?(f.length===L.length?this.yylloc.first_column:0)+L[L.length-f.length].length-f[0].length:this.yylloc.first_column-C},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-C]),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(m){this.unput(this.match.slice(m))},pastInput:function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var m=this.pastInput(),C=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+C+"^"},test_match:function(m,C){var f,L,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),L=m[0].match(/(?:\r\n?|\n).*/g),L&&(this.yylineno+=L.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:L?L[L.length-1].length-L[L.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],f=this.performAction.call(this,this.yy,this,C,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var P in b)this[P]=b[P];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,C,f,L;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),P=0;PC[0].length)){if(C=f,L=P,this.options.backtrack_lexer){if(m=this.test_match(f,b[P]),m!==!1)return m;if(this._backtrack){C=!1;continue}else return!1}else if(!this.options.flex)break}return C?(m=this.test_match(C,b[L]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var C=this.next();return C||this.lex()},begin:function(C){this.conditionStack.push(C)},popState:function(){var C=this.conditionStack.length-1;return C>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(C){return C=this.conditionStack.length-1-Math.abs(C||0),C>=0?this.conditionStack[C]:"INITIAL"},pushState:function(C){this.begin(C)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(C,f,L,b){switch(L){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return f.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return f.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return S})();T.lexer=k;function A(){this.yy={}}return A.prototype=T,T.Parser=A,new A})();Za.parser=Za;const tb=Za;let lr={},sl=[];const eb={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},ib={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},Qu=function(t,e=void 0){return lr[t]===void 0?(lr[t]={attributes:[],alias:e},B.info("Added new entity :",t)):lr[t]&&!lr[t].alias&&e&&(lr[t].alias=e,B.info(`Add alias '${e}' to entity '${t}'`)),lr[t]},rb=()=>lr,sb=function(t,e){let i=Qu(t),r;for(r=e.length-1;r>=0;r--)i.attributes.push(e[r]),B.debug("Added attribute ",e[r].attributeName)},nb=function(t,e,i,r){let s={entityA:t,roleA:e,entityB:i,relSpec:r};sl.push(s),B.debug("Added new relationship :",s)},ab=()=>sl,ob=function(){lr={},sl=[],Oe()},lb={Cardinality:eb,Identification:ib,getConfig:()=>Y().er,addEntity:Qu,addAttributes:sb,getEntities:rb,addRelationship:nb,getRelationships:ab,clear:ob,setAccTitle:Pe,getAccTitle:Ye,setAccDescription:Ue,getAccDescription:He,setDiagramTitle:ri,getDiagramTitle:Ge},pi={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},cb=function(t,e){let i;t.append("defs").append("marker").attr("id",pi.MD_PARENT_START).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"),t.append("defs").append("marker").attr("id",pi.MD_PARENT_END).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"),t.append("defs").append("marker").attr("id",pi.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",pi.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),i=t.append("defs").append("marker").attr("id",pi.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),i.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),i.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),i=t.append("defs").append("marker").attr("id",pi.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),i.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",pi.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",pi.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),i=t.append("defs").append("marker").attr("id",pi.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),i.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),i.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),i=t.append("defs").append("marker").attr("id",pi.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),i.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},gi={ERMarkers:pi,insertMarkers:cb},hb=/[^\dA-Za-z](\W)*/g;let be={},Ns=new Map;const ub=function(t){const e=Object.keys(t);for(const i of e)be[i]=t[i]},db=(t,e,i)=>{const r=be.entityPadding/3,s=be.entityPadding/3,n=be.fontSize*.85,a=e.node().getBBox(),o=[];let l=!1,h=!1,u=0,p=0,d=0,g=0,y=a.height+r*2,x=1;i.forEach(R=>{R.attributeKeyTypeList!==void 0&&R.attributeKeyTypeList.length>0&&(l=!0),R.attributeComment!==void 0&&(h=!0)}),i.forEach(R=>{const v=`${e.node().id}-attr-${x}`;let T=0;const k=_s(R.attributeType),A=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Y().fontFamily).style("font-size",n+"px").text(k),S=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Y().fontFamily).style("font-size",n+"px").text(R.attributeName),m={};m.tn=A,m.nn=S;const C=A.node().getBBox(),f=S.node().getBBox();if(u=Math.max(u,C.width),p=Math.max(p,f.width),T=Math.max(C.height,f.height),l){const L=R.attributeKeyTypeList!==void 0?R.attributeKeyTypeList.join(","):"",b=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Y().fontFamily).style("font-size",n+"px").text(L);m.kn=b;const P=b.node().getBBox();d=Math.max(d,P.width),T=Math.max(T,P.height)}if(h){const L=t.append("text").classed("er entityLabel",!0).attr("id",`${v}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Y().fontFamily).style("font-size",n+"px").text(R.attributeComment||"");m.cn=L;const b=L.node().getBBox();g=Math.max(g,b.width),T=Math.max(T,b.height)}m.height=T,o.push(m),y+=T+r*2,x+=1});let _=4;l&&(_+=2),h&&(_+=2);const w=u+p+d+g,E={width:Math.max(be.minEntityWidth,Math.max(a.width+be.entityPadding*2,w+s*_)),height:i.length>0?y:Math.max(be.minEntityHeight,a.height+be.entityPadding*2)};if(i.length>0){const R=Math.max(0,(E.width-w-s*_)/(_/2));e.attr("transform","translate("+E.width/2+","+(r+a.height/2)+")");let v=a.height+r*2,T="attributeBoxOdd";o.forEach(k=>{const A=v+r+k.height/2;k.tn.attr("transform","translate("+s+","+A+")");const S=t.insert("rect","#"+k.tn.node().id).classed(`er ${T}`,!0).attr("x",0).attr("y",v).attr("width",u+s*2+R).attr("height",k.height+r*2),m=parseFloat(S.attr("x"))+parseFloat(S.attr("width"));k.nn.attr("transform","translate("+(m+s)+","+A+")");const C=t.insert("rect","#"+k.nn.node().id).classed(`er ${T}`,!0).attr("x",m).attr("y",v).attr("width",p+s*2+R).attr("height",k.height+r*2);let f=parseFloat(C.attr("x"))+parseFloat(C.attr("width"));if(l){k.kn.attr("transform","translate("+(f+s)+","+A+")");const L=t.insert("rect","#"+k.kn.node().id).classed(`er ${T}`,!0).attr("x",f).attr("y",v).attr("width",d+s*2+R).attr("height",k.height+r*2);f=parseFloat(L.attr("x"))+parseFloat(L.attr("width"))}h&&(k.cn.attr("transform","translate("+(f+s)+","+A+")"),t.insert("rect","#"+k.cn.node().id).classed(`er ${T}`,"true").attr("x",f).attr("y",v).attr("width",g+s*2+R).attr("height",k.height+r*2)),v+=k.height+r*2,T=T==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else E.height=Math.max(be.minEntityHeight,y),e.attr("transform","translate("+E.width/2+","+E.height/2+")");return E},fb=function(t,e,i){const r=Object.keys(e);let s;return r.forEach(function(n){const a=bb(n,"entity");Ns.set(n,a);const o=t.append("g").attr("id",a);s=s===void 0?a:s;const l="text-"+a,h=o.append("text").classed("er entityLabel",!0).attr("id",l).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Y().fontFamily).style("font-size",be.fontSize+"px").text(e[n].alias??n),{width:u,height:p}=db(o,h,e[n].attributes),g=o.insert("rect","#"+l).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",u).attr("height",p).node().getBBox();i.setNode(a,{width:g.width,height:g.height,shape:"rect",id:a})}),s},pb=function(t,e){e.nodes().forEach(function(i){i!==void 0&&e.node(i)!==void 0&&t.select("#"+i).attr("transform","translate("+(e.node(i).x-e.node(i).width/2)+","+(e.node(i).y-e.node(i).height/2)+" )")})},Zu=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},gb=function(t,e){return t.forEach(function(i){e.setEdge(Ns.get(i.entityA),Ns.get(i.entityB),{relationship:i},Zu(i))}),t};let wc=0;const yb=function(t,e,i,r,s){wc++;const n=i.edge(Ns.get(e.entityA),Ns.get(e.entityB),Zu(e)),a=fr().x(function(y){return y.x}).y(function(y){return y.y}).curve($s),o=t.insert("path","#"+r).classed("er relationshipLine",!0).attr("d",a(n.points)).style("stroke",be.stroke).style("fill","none");e.relSpec.relType===s.db.Identification.NON_IDENTIFYING&&o.attr("stroke-dasharray","8,8");let l="";switch(be.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),e.relSpec.cardA){case s.db.Cardinality.ZERO_OR_ONE:o.attr("marker-end","url("+l+"#"+gi.ERMarkers.ZERO_OR_ONE_END+")");break;case s.db.Cardinality.ZERO_OR_MORE:o.attr("marker-end","url("+l+"#"+gi.ERMarkers.ZERO_OR_MORE_END+")");break;case s.db.Cardinality.ONE_OR_MORE:o.attr("marker-end","url("+l+"#"+gi.ERMarkers.ONE_OR_MORE_END+")");break;case s.db.Cardinality.ONLY_ONE:o.attr("marker-end","url("+l+"#"+gi.ERMarkers.ONLY_ONE_END+")");break;case s.db.Cardinality.MD_PARENT:o.attr("marker-end","url("+l+"#"+gi.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case s.db.Cardinality.ZERO_OR_ONE:o.attr("marker-start","url("+l+"#"+gi.ERMarkers.ZERO_OR_ONE_START+")");break;case s.db.Cardinality.ZERO_OR_MORE:o.attr("marker-start","url("+l+"#"+gi.ERMarkers.ZERO_OR_MORE_START+")");break;case s.db.Cardinality.ONE_OR_MORE:o.attr("marker-start","url("+l+"#"+gi.ERMarkers.ONE_OR_MORE_START+")");break;case s.db.Cardinality.ONLY_ONE:o.attr("marker-start","url("+l+"#"+gi.ERMarkers.ONLY_ONE_START+")");break;case s.db.Cardinality.MD_PARENT:o.attr("marker-start","url("+l+"#"+gi.ERMarkers.MD_PARENT_START+")");break}const h=o.node().getTotalLength(),u=o.node().getPointAtLength(h*.5),p="rel"+wc,g=t.append("text").classed("er relationshipLabel",!0).attr("id",p).attr("x",u.x).attr("y",u.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Y().fontFamily).style("font-size",be.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+p).classed("er relationshipLabelBox",!0).attr("x",u.x-g.width/2).attr("y",u.y-g.height/2).attr("width",g.width).attr("height",g.height)},mb=function(t,e,i,r){be=Y().er,B.info("Drawing ER diagram");const s=Y().securityLevel;let n;s==="sandbox"&&(n=yt("#i"+e));const o=(s==="sandbox"?yt(n.nodes()[0].contentDocument.body):yt("body")).select(`[id='${e}']`);gi.insertMarkers(o,be);let l;l=new Ii({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:be.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const h=fb(o,r.db.getEntities(),l),u=gb(r.db.getRelationships(),l);Xs(l),pb(o,l),u.forEach(function(x){yb(o,x,l,h,r)});const p=be.diagramPadding;Rt.insertTitle(o,"entityTitleText",be.titleTopMargin,r.db.getDiagramTitle());const d=o.node().getBBox(),g=d.width+p*2,y=d.height+p*2;Ne(o,y,g,be.useMaxWidth),o.attr("viewBox",`${d.x-p} ${d.y-p} ${g} ${y}`)},xb="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function bb(t="",e=""){const i=t.replace(hb,"");return`${vc(e)}${vc(i)}${kf(t,xb)}`}function vc(t=""){return t.length>0?`${t}-`:""}const kb={setConf:ub,draw:mb},_b=t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,Tb=_b,Cb={parser:tb,db:lb,renderer:kb,styles:Tb},Eb=Object.freeze(Object.defineProperty({__proto__:null,diagram:Cb},Symbol.toStringTag,{value:"Module"}));var Ja=(function(){var t=function(T,k,A,S){for(A=A||{},S=T.length;S--;A[T[S]]=k);return A},e=[1,3],i=[1,6],r=[1,4],s=[1,5],n=[2,5],a=[1,12],o=[5,7,13,19,21,23,24,26,28,31,37,40,47],l=[7,13,19,21,23,24,26,28,31,37,40],h=[7,12,13,19,21,23,24,26,28,31,37,40],u=[7,13,47],p=[1,42],d=[1,41],g=[7,13,29,32,35,38,47],y=[1,55],x=[1,56],_=[1,57],w=[7,13,32,35,42,47],E={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(k,A,S,m,C,f,L){var b=f.length-1;switch(C){case 2:return f[b];case 3:return f[b-1];case 4:return m.setDirection(f[b-3]),f[b-1];case 6:m.setOptions(f[b-1]),this.$=f[b];break;case 7:f[b-1]+=f[b],this.$=f[b-1];break;case 9:this.$=[];break;case 10:f[b-1].push(f[b]),this.$=f[b-1];break;case 11:this.$=f[b-1];break;case 16:this.$=f[b].trim(),m.setAccTitle(this.$);break;case 17:case 18:this.$=f[b].trim(),m.setAccDescription(this.$);break;case 19:m.addSection(f[b].substr(8)),this.$=f[b].substr(8);break;case 21:m.checkout(f[b]);break;case 22:m.branch(f[b]);break;case 23:m.branch(f[b-2],f[b]);break;case 24:m.cherryPick(f[b],"",void 0);break;case 25:m.cherryPick(f[b-2],"",void 0,f[b]);break;case 26:m.cherryPick(f[b-2],"",f[b]);break;case 27:m.cherryPick(f[b-4],"",f[b],f[b-2]);break;case 28:m.cherryPick(f[b-4],"",f[b-2],f[b]);break;case 29:m.cherryPick(f[b],"",f[b-2]);break;case 30:m.cherryPick(f[b],"","");break;case 31:m.cherryPick(f[b-2],"","");break;case 32:m.cherryPick(f[b-4],"","",f[b-2]);break;case 33:m.cherryPick(f[b-4],"","",f[b]);break;case 34:m.cherryPick(f[b-2],"",f[b-4],f[b]);break;case 35:m.cherryPick(f[b-2],"","",f[b]);break;case 36:m.merge(f[b],"","","");break;case 37:m.merge(f[b-2],f[b],"","");break;case 38:m.merge(f[b-2],"",f[b],"");break;case 39:m.merge(f[b-2],"","",f[b]);break;case 40:m.merge(f[b-4],f[b],"",f[b-2]);break;case 41:m.merge(f[b-4],"",f[b],f[b-2]);break;case 42:m.merge(f[b-4],"",f[b-2],f[b]);break;case 43:m.merge(f[b-4],f[b-2],f[b],"");break;case 44:m.merge(f[b-4],f[b-2],"",f[b]);break;case 45:m.merge(f[b-4],f[b],f[b-2],"");break;case 46:m.merge(f[b-6],f[b-4],f[b-2],f[b]);break;case 47:m.merge(f[b-6],f[b],f[b-4],f[b-2]);break;case 48:m.merge(f[b-6],f[b-4],f[b],f[b-2]);break;case 49:m.merge(f[b-6],f[b-2],f[b-4],f[b]);break;case 50:m.merge(f[b-6],f[b],f[b-2],f[b-4]);break;case 51:m.merge(f[b-6],f[b-2],f[b],f[b-4]);break;case 52:m.commit(f[b]);break;case 53:m.commit("","",m.commitType.NORMAL,f[b]);break;case 54:m.commit("","",f[b],"");break;case 55:m.commit("","",f[b],f[b-2]);break;case 56:m.commit("","",f[b-2],f[b]);break;case 57:m.commit("",f[b],m.commitType.NORMAL,"");break;case 58:m.commit("",f[b-2],m.commitType.NORMAL,f[b]);break;case 59:m.commit("",f[b],m.commitType.NORMAL,f[b-2]);break;case 60:m.commit("",f[b-2],f[b],"");break;case 61:m.commit("",f[b],f[b-2],"");break;case 62:m.commit("",f[b-4],f[b-2],f[b]);break;case 63:m.commit("",f[b-4],f[b],f[b-2]);break;case 64:m.commit("",f[b-2],f[b-4],f[b]);break;case 65:m.commit("",f[b],f[b-4],f[b-2]);break;case 66:m.commit("",f[b],f[b-2],f[b-4]);break;case 67:m.commit("",f[b-2],f[b],f[b-4]);break;case 68:m.commit(f[b],"",m.commitType.NORMAL,"");break;case 69:m.commit(f[b],"",m.commitType.NORMAL,f[b-2]);break;case 70:m.commit(f[b-2],"",m.commitType.NORMAL,f[b]);break;case 71:m.commit(f[b-2],"",f[b],"");break;case 72:m.commit(f[b],"",f[b-2],"");break;case 73:m.commit(f[b],f[b-2],m.commitType.NORMAL,"");break;case 74:m.commit(f[b-2],f[b],m.commitType.NORMAL,"");break;case 75:m.commit(f[b-4],"",f[b-2],f[b]);break;case 76:m.commit(f[b-4],"",f[b],f[b-2]);break;case 77:m.commit(f[b-2],"",f[b-4],f[b]);break;case 78:m.commit(f[b],"",f[b-4],f[b-2]);break;case 79:m.commit(f[b],"",f[b-2],f[b-4]);break;case 80:m.commit(f[b-2],"",f[b],f[b-4]);break;case 81:m.commit(f[b-4],f[b],f[b-2],"");break;case 82:m.commit(f[b-4],f[b-2],f[b],"");break;case 83:m.commit(f[b-2],f[b],f[b-4],"");break;case 84:m.commit(f[b],f[b-2],f[b-4],"");break;case 85:m.commit(f[b],f[b-4],f[b-2],"");break;case 86:m.commit(f[b-2],f[b-4],f[b],"");break;case 87:m.commit(f[b-4],f[b],m.commitType.NORMAL,f[b-2]);break;case 88:m.commit(f[b-4],f[b-2],m.commitType.NORMAL,f[b]);break;case 89:m.commit(f[b-2],f[b],m.commitType.NORMAL,f[b-4]);break;case 90:m.commit(f[b],f[b-2],m.commitType.NORMAL,f[b-4]);break;case 91:m.commit(f[b],f[b-4],m.commitType.NORMAL,f[b-2]);break;case 92:m.commit(f[b-2],f[b-4],m.commitType.NORMAL,f[b]);break;case 93:m.commit(f[b-6],f[b-4],f[b-2],f[b]);break;case 94:m.commit(f[b-6],f[b-4],f[b],f[b-2]);break;case 95:m.commit(f[b-6],f[b-2],f[b-4],f[b]);break;case 96:m.commit(f[b-6],f[b],f[b-4],f[b-2]);break;case 97:m.commit(f[b-6],f[b-2],f[b],f[b-4]);break;case 98:m.commit(f[b-6],f[b],f[b-2],f[b-4]);break;case 99:m.commit(f[b-4],f[b-6],f[b-2],f[b]);break;case 100:m.commit(f[b-4],f[b-6],f[b],f[b-2]);break;case 101:m.commit(f[b-2],f[b-6],f[b-4],f[b]);break;case 102:m.commit(f[b],f[b-6],f[b-4],f[b-2]);break;case 103:m.commit(f[b-2],f[b-6],f[b],f[b-4]);break;case 104:m.commit(f[b],f[b-6],f[b-2],f[b-4]);break;case 105:m.commit(f[b],f[b-4],f[b-2],f[b-6]);break;case 106:m.commit(f[b-2],f[b-4],f[b],f[b-6]);break;case 107:m.commit(f[b],f[b-2],f[b-4],f[b-6]);break;case 108:m.commit(f[b-2],f[b],f[b-4],f[b-6]);break;case 109:m.commit(f[b-4],f[b-2],f[b],f[b-6]);break;case 110:m.commit(f[b-4],f[b],f[b-2],f[b-6]);break;case 111:m.commit(f[b-2],f[b-4],f[b-6],f[b]);break;case 112:m.commit(f[b],f[b-4],f[b-6],f[b-2]);break;case 113:m.commit(f[b-2],f[b],f[b-6],f[b-4]);break;case 114:m.commit(f[b],f[b-2],f[b-6],f[b-4]);break;case 115:m.commit(f[b-4],f[b-2],f[b-6],f[b]);break;case 116:m.commit(f[b-4],f[b],f[b-6],f[b-2]);break;case 117:this.$="";break;case 118:this.$=f[b];break;case 119:this.$=m.commitType.NORMAL;break;case 120:this.$=m.commitType.REVERSE;break;case 121:this.$=m.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:e,7:i,13:r,47:s},{1:[3]},{3:7,4:2,5:e,7:i,13:r,47:s},{6:8,7:n,8:[1,9],9:[1,10],10:11,13:a},t(o,[2,124]),t(o,[2,125]),t(o,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:n,10:11,13:a},{8:[1,15]},t(l,[2,9],{11:16,12:[1,17]}),t(h,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:n,10:11,13:a},{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]},t(h,[2,7]),{1:[2,3]},{7:[1,36]},t(l,[2,10]),{4:37,7:i,13:r,47:s},t(l,[2,12]),t(u,[2,13]),t(u,[2,14]),t(u,[2,15]),{20:[1,38]},{22:[1,39]},t(u,[2,18]),t(u,[2,19]),t(u,[2,20]),{27:40,33:p,46:d},t(u,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:p,46:d},{32:[1,50],35:[1,51]},{27:52,33:p,46:d},{1:[2,4]},t(l,[2,11]),t(u,[2,16]),t(u,[2,17]),t(u,[2,21]),t(g,[2,122]),t(g,[2,123]),t(u,[2,52]),{33:[1,53]},{39:54,43:y,44:x,45:_},{33:[1,58]},{33:[1,59]},t(u,[2,118]),t(u,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},t(u,[2,22],{29:[1,66]}),t(u,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),t(u,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),t(w,[2,119]),t(w,[2,120]),t(w,[2,121]),t(u,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),t(u,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:y,44:x,45:_},{33:[1,81]},t(u,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:y,44:x,45:_},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:y,44:x,45:_},{33:[1,95]},{33:[1,96]},{39:97,43:y,44:x,45:_},{33:[1,98]},t(u,[2,37],{35:[1,100],38:[1,99]}),t(u,[2,38],{32:[1,102],35:[1,101]}),t(u,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},t(u,[2,23]),t(u,[2,55],{32:[1,110],42:[1,111]}),t(u,[2,59],{38:[1,112],42:[1,113]}),t(u,[2,69],{32:[1,115],38:[1,114]}),t(u,[2,56],{32:[1,116],42:[1,117]}),t(u,[2,61],{35:[1,118],42:[1,119]}),t(u,[2,72],{32:[1,121],35:[1,120]}),t(u,[2,58],{38:[1,122],42:[1,123]}),t(u,[2,60],{35:[1,124],42:[1,125]}),t(u,[2,73],{35:[1,127],38:[1,126]}),t(u,[2,70],{32:[1,129],38:[1,128]}),t(u,[2,71],{32:[1,131],35:[1,130]}),t(u,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:y,44:x,45:_},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:y,44:x,45:_},t(u,[2,25],{35:[1,140]}),t(u,[2,26],{34:[1,141]}),t(u,[2,31],{34:[1,142]}),t(u,[2,29],{34:[1,143]}),t(u,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:y,44:x,45:_},{33:[1,148]},{39:149,43:y,44:x,45:_},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:y,44:x,45:_},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:y,44:x,45:_},{33:[1,162]},{39:163,43:y,44:x,45:_},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:y,44:x,45:_},{33:[1,168]},t(u,[2,43],{35:[1,169]}),t(u,[2,44],{38:[1,170]}),t(u,[2,42],{32:[1,171]}),t(u,[2,45],{35:[1,172]}),t(u,[2,40],{38:[1,173]}),t(u,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},t(u,[2,66],{42:[1,181]}),t(u,[2,79],{32:[1,182]}),t(u,[2,67],{42:[1,183]}),t(u,[2,90],{38:[1,184]}),t(u,[2,80],{32:[1,185]}),t(u,[2,89],{38:[1,186]}),t(u,[2,65],{42:[1,187]}),t(u,[2,78],{32:[1,188]}),t(u,[2,64],{42:[1,189]}),t(u,[2,84],{35:[1,190]}),t(u,[2,77],{32:[1,191]}),t(u,[2,83],{35:[1,192]}),t(u,[2,63],{42:[1,193]}),t(u,[2,91],{38:[1,194]}),t(u,[2,62],{42:[1,195]}),t(u,[2,85],{35:[1,196]}),t(u,[2,86],{35:[1,197]}),t(u,[2,92],{38:[1,198]}),t(u,[2,76],{32:[1,199]}),t(u,[2,87],{38:[1,200]}),t(u,[2,75],{32:[1,201]}),t(u,[2,81],{35:[1,202]}),t(u,[2,82],{35:[1,203]}),t(u,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:y,44:x,45:_},{33:[1,207]},{33:[1,208]},{39:209,43:y,44:x,45:_},{33:[1,210]},t(u,[2,27]),t(u,[2,32]),t(u,[2,28]),t(u,[2,33]),t(u,[2,34]),t(u,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:y,44:x,45:_},{33:[1,215]},{39:216,43:y,44:x,45:_},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:y,44:x,45:_},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:y,44:x,45:_},{33:[1,229]},{39:230,43:y,44:x,45:_},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:y,44:x,45:_},t(u,[2,46]),t(u,[2,48]),t(u,[2,47]),t(u,[2,49]),t(u,[2,51]),t(u,[2,50]),t(u,[2,107]),t(u,[2,108]),t(u,[2,105]),t(u,[2,106]),t(u,[2,110]),t(u,[2,109]),t(u,[2,114]),t(u,[2,113]),t(u,[2,112]),t(u,[2,111]),t(u,[2,116]),t(u,[2,115]),t(u,[2,104]),t(u,[2,103]),t(u,[2,102]),t(u,[2,101]),t(u,[2,99]),t(u,[2,100]),t(u,[2,98]),t(u,[2,97]),t(u,[2,96]),t(u,[2,95]),t(u,[2,93]),t(u,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(k,A){if(A.recoverable)this.trace(k);else{var S=new Error(k);throw S.hash=A,S}},parse:function(k){var A=this,S=[0],m=[],C=[null],f=[],L=this.table,b="",P=0,U=0,N=2,D=1,F=f.slice.call(arguments,1),I=Object.create(this.lexer),M={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(M.yy[z]=this.yy[z]);I.setInput(k,M.yy),M.yy.lexer=I,M.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var st=I.yylloc;f.push(st);var j=I.options&&I.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(){var V;return V=m.pop()||I.lex()||D,typeof V!="number"&&(V instanceof Array&&(m=V,V=m.pop()),V=A.symbols_[V]||V),V}for(var K,G,tt,nt,Q={},J,O,at,W;;){if(G=S[S.length-1],this.defaultActions[G]?tt=this.defaultActions[G]:((K===null||typeof K>"u")&&(K=dt()),tt=L[G]&&L[G][K]),typeof tt>"u"||!tt.length||!tt[0]){var ft="";W=[];for(J in L[G])this.terminals_[J]&&J>N&&W.push("'"+this.terminals_[J]+"'");I.showPosition?ft="Parse error on line "+(P+1)+`: +`+I.showPosition()+` +Expecting `+W.join(", ")+", got '"+(this.terminals_[K]||K)+"'":ft="Parse error on line "+(P+1)+": Unexpected "+(K==D?"end of input":"'"+(this.terminals_[K]||K)+"'"),this.parseError(ft,{text:I.match,token:this.terminals_[K]||K,line:I.yylineno,loc:st,expected:W})}if(tt[0]instanceof Array&&tt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+K);switch(tt[0]){case 1:S.push(K),C.push(I.yytext),f.push(I.yylloc),S.push(tt[1]),K=null,U=I.yyleng,b=I.yytext,P=I.yylineno,st=I.yylloc;break;case 2:if(O=this.productions_[tt[1]][1],Q.$=C[C.length-O],Q._$={first_line:f[f.length-(O||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(O||1)].first_column,last_column:f[f.length-1].last_column},j&&(Q._$.range=[f[f.length-(O||1)].range[0],f[f.length-1].range[1]]),nt=this.performAction.apply(Q,[b,U,P,M.yy,tt[1],C,f].concat(F)),typeof nt<"u")return nt;O&&(S=S.slice(0,-1*O*2),C=C.slice(0,-1*O),f=f.slice(0,-1*O)),S.push(this.productions_[tt[1]][0]),C.push(Q.$),f.push(Q._$),at=L[S[S.length-2]][S[S.length-1]],S.push(at);break;case 3:return!0}}return!0}},R=(function(){var T={EOF:1,parseError:function(A,S){if(this.yy.parser)this.yy.parser.parseError(A,S);else throw new Error(A)},setInput:function(k,A){return this.yy=A||this.yy||{},this._input=k,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 k=this._input[0];this.yytext+=k,this.yyleng++,this.offset++,this.match+=k,this.matched+=k;var A=k.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),k},unput:function(k){var A=k.length,S=k.split(/(?:\r\n?|\n)/g);this._input=k+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;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),S.length-1&&(this.yylineno-=S.length-1);var C=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:S?(S.length===m.length?this.yylloc.first_column:0)+m[m.length-S.length].length-S[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[C[0],C[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(k){this.unput(this.match.slice(k))},pastInput:function(){var k=this.matched.substr(0,this.matched.length-this.match.length);return(k.length>20?"...":"")+k.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var k=this.match;return k.length<20&&(k+=this._input.substr(0,20-k.length)),(k.substr(0,20)+(k.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var k=this.pastInput(),A=new Array(k.length+1).join("-");return k+this.upcomingInput()+` +`+A+"^"},test_match:function(k,A){var S,m,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),m=k[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+k[0].length},this.yytext+=k[0],this.match+=k[0],this.matches=k,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(k[0].length),this.matched+=k[0],S=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),S)return S;if(this._backtrack){for(var f in C)this[f]=C[f];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var k,A,S,m;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),f=0;fA[0].length)){if(A=S,m=f,this.options.backtrack_lexer){if(k=this.test_match(S,C[f]),k!==!1)return k;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(k=this.test_match(A,C[m]),k!==!1?k:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var A=this.next();return A||this.lex()},begin:function(A){this.conditionStack.push(A)},popState:function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},pushState:function(A){this.begin(A)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(A,S,m,C){switch(m){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return T})();E.lexer=R;function v(){this.yy={}}return v.prototype=E,E.Parser=v,new v})();Ja.parser=Ja;const Sb=Ja;let Yn=Y().gitGraph.mainBranchName,wb=Y().gitGraph.mainBranchOrder,_e={},We=null,Os={};Os[Yn]={name:Yn,order:wb};let ge={};ge[Yn]=We;let ve=Yn,Ju="LR",vr=0;function nl(){return Rh({length:7})}function vb(t,e){const i=Object.create(null);return t.reduce((r,s)=>{const n=e(s);return i[n]||(i[n]=!0,r.push(s)),r},[])}const Ab=function(t){Ju=t};let t0={};const Lb=function(t){B.debug("options str",t),t=t&&t.trim(),t=t||"{}";try{t0=JSON.parse(t)}catch(e){B.error("error while parsing gitGraph options",e.message)}},Bb=function(){return t0},Ib=function(t,e,i,r){B.debug("Entering commit:",t,e,i,r),e=mt.sanitizeText(e,Y()),t=mt.sanitizeText(t,Y()),r=mt.sanitizeText(r,Y());const s={id:e||vr+"-"+nl(),message:t,seq:vr++,type:i||Kr.NORMAL,tag:r||"",parents:We==null?[]:[We.id],branch:ve};We=s,_e[s.id]=s,ge[ve]=s.id,B.debug("in pushCommit "+s.id)},Db=function(t,e){if(t=mt.sanitizeText(t,Y()),ge[t]===void 0)ge[t]=We!=null?We.id:null,Os[t]={name:t,order:e?parseInt(e,10):null},e0(t),B.debug("in createBranch");else{let i=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+t+'")');throw i.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},i}},Fb=function(t,e,i,r){t=mt.sanitizeText(t,Y()),e=mt.sanitizeText(e,Y());const s=_e[ge[ve]],n=_e[ge[t]];if(ve===t){let o=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw o.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},o}else if(s===void 0||!s){let o=new Error('Incorrect usage of "merge". Current branch ('+ve+")has no commits");throw o.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},o}else if(ge[t]===void 0){let o=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw o.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},o}else if(n===void 0||!n){let o=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw o.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},o}else if(s===n){let o=new Error('Incorrect usage of "merge". Both branches have same head');throw o.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},o}else if(e&&_e[e]!==void 0){let o=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw o.hash={text:"merge "+t+e+i+r,token:"merge "+t+e+i+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+i+" "+r]},o}const a={id:e||vr+"-"+nl(),message:"merged branch "+t+" into "+ve,seq:vr++,parents:[We==null?null:We.id,ge[t]],branch:ve,type:Kr.MERGE,customType:i,customId:!!e,tag:r||""};We=a,_e[a.id]=a,ge[ve]=a.id,B.debug(ge),B.debug("in mergeBranch")},Rb=function(t,e,i,r){if(B.debug("Entering cherryPick:",t,e,i),t=mt.sanitizeText(t,Y()),e=mt.sanitizeText(e,Y()),i=mt.sanitizeText(i,Y()),r=mt.sanitizeText(r,Y()),!t||_e[t]===void 0){let a=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw a.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},a}let s=_e[t],n=s.branch;if(r&&!(Array.isArray(s.parents)&&s.parents.includes(r)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(s.type===Kr.MERGE&&!r)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!e||_e[e]===void 0){if(n===ve){let l=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw l.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},l}const a=_e[ge[ve]];if(a===void 0||!a){let l=new Error('Incorrect usage of "cherry-pick". Current branch ('+ve+")has no commits");throw l.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},l}const o={id:vr+"-"+nl(),message:"cherry-picked "+s+" into "+ve,seq:vr++,parents:[We==null?null:We.id,s.id],branch:ve,type:Kr.CHERRY_PICK,tag:i??`cherry-pick:${s.id}${s.type===Kr.MERGE?`|parent:${r}`:""}`};We=o,_e[o.id]=o,ge[ve]=o.id,B.debug(ge),B.debug("in cherryPick")}},e0=function(t){if(t=mt.sanitizeText(t,Y()),ge[t]===void 0){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}else{ve=t;const e=ge[ve];We=_e[e]}};function Ac(t,e,i){const r=t.indexOf(e);r===-1?t.push(i):t.splice(r,1,i)}function i0(t){const e=t.reduce((s,n)=>s.seq>n.seq?s:n,t[0]);let i="";t.forEach(function(s){s===e?i+=" *":i+=" |"});const r=[i,e.id,e.seq];for(let s in ge)ge[s]===e.id&&r.push(s);if(B.debug(r.join(" ")),e.parents&&e.parents.length==2){const s=_e[e.parents[0]];Ac(t,e,s),t.push(_e[e.parents[1]])}else{if(e.parents.length==0)return;{const s=_e[e.parents];Ac(t,e,s)}}t=vb(t,s=>s.id),i0(t)}const Nb=function(){B.debug(_e);const t=r0()[0];i0([t])},Ob=function(){_e={},We=null;let t=Y().gitGraph.mainBranchName,e=Y().gitGraph.mainBranchOrder;ge={},ge[t]=null,Os={},Os[t]={name:t,order:e},ve=t,vr=0,Oe()},Pb=function(){return Object.values(Os).map((e,i)=>e.order!==null?e:{...e,order:parseFloat(`0.${i}`,10)}).sort((e,i)=>e.order-i.order).map(({name:e})=>({name:e}))},Mb=function(){return ge},Vb=function(){return _e},r0=function(){const t=Object.keys(_e).map(function(e){return _e[e]});return t.forEach(function(e){B.debug(e.id)}),t.sort((e,i)=>e.seq-i.seq),t},zb=function(){return ve},qb=function(){return Ju},Wb=function(){return We},Kr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Yb={getConfig:()=>Y().gitGraph,setDirection:Ab,setOptions:Lb,getOptions:Bb,commit:Ib,branch:Db,merge:Fb,cherryPick:Rb,checkout:e0,prettyPrint:Nb,clear:Ob,getBranchesAsObjArray:Pb,getBranches:Mb,getCommits:Vb,getCommitsArray:r0,getCurrentBranch:zb,getDirection:qb,getHead:Wb,setAccTitle:Pe,getAccTitle:Ye,getAccDescription:He,setAccDescription:Ue,setDiagramTitle:ri,getDiagramTitle:Ge,commitType:Kr};let ms={};const we={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},kr=8;let Xe={},Ki={},Un=[],Ps=0,pe="LR";const Ub=()=>{Xe={},Ki={},ms={},Ps=0,Un=[],pe="LR"},s0=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let i=[];typeof t=="string"?i=t.split(/\\n|\n|/gi):Array.isArray(t)?i=t:i=[];for(const r of i){const s=document.createElementNS("http://www.w3.org/2000/svg","tspan");s.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),s.setAttribute("dy","1em"),s.setAttribute("x","0"),s.setAttribute("class","row"),s.textContent=r.trim(),e.appendChild(s)}return e},Hb=t=>{let e="",i=0;return t.forEach(r=>{const s=pe==="TB"?Ki[r].y:Ki[r].x;s>=i&&(e=r,i=s)}),e||void 0},Lc=(t,e,i)=>{const r=Y().gitGraph,s=t.append("g").attr("class","commit-bullets"),n=t.append("g").attr("class","commit-labels");let a=0;pe==="TB"&&(a=30);const l=Object.keys(e).sort((d,g)=>e[d].seq-e[g].seq),h=r.parallelCommits,u=10,p=40;l.forEach(d=>{const g=e[d];if(h)if(g.parents.length){const w=Hb(g.parents);a=pe==="TB"?Ki[w].y+p:Ki[w].x+p}else a=0,pe==="TB"&&(a=30);const y=a+u,x=pe==="TB"?y:Xe[g.branch].pos,_=pe==="TB"?Xe[g.branch].pos:y;if(i){let w,E=g.customType!==void 0&&g.customType!==""?g.customType:g.type;switch(E){case we.NORMAL:w="commit-normal";break;case we.REVERSE:w="commit-reverse";break;case we.HIGHLIGHT:w="commit-highlight";break;case we.MERGE:w="commit-merge";break;case we.CHERRY_PICK:w="commit-cherry-pick";break;default:w="commit-normal"}if(E===we.HIGHLIGHT){const R=s.append("rect");R.attr("x",_-10),R.attr("y",x-10),R.attr("height",20),R.attr("width",20),R.attr("class",`commit ${g.id} commit-highlight${Xe[g.branch].index%kr} ${w}-outer`),s.append("rect").attr("x",_-6).attr("y",x-6).attr("height",12).attr("width",12).attr("class",`commit ${g.id} commit${Xe[g.branch].index%kr} ${w}-inner`)}else if(E===we.CHERRY_PICK)s.append("circle").attr("cx",_).attr("cy",x).attr("r",10).attr("class",`commit ${g.id} ${w}`),s.append("circle").attr("cx",_-3).attr("cy",x+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${g.id} ${w}`),s.append("circle").attr("cx",_+3).attr("cy",x+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${g.id} ${w}`),s.append("line").attr("x1",_+3).attr("y1",x+1).attr("x2",_).attr("y2",x-5).attr("stroke","#fff").attr("class",`commit ${g.id} ${w}`),s.append("line").attr("x1",_-3).attr("y1",x+1).attr("x2",_).attr("y2",x-5).attr("stroke","#fff").attr("class",`commit ${g.id} ${w}`);else{const R=s.append("circle");if(R.attr("cx",_),R.attr("cy",x),R.attr("r",g.type===we.MERGE?9:10),R.attr("class",`commit ${g.id} commit${Xe[g.branch].index%kr}`),E===we.MERGE){const v=s.append("circle");v.attr("cx",_),v.attr("cy",x),v.attr("r",6),v.attr("class",`commit ${w} ${g.id} commit${Xe[g.branch].index%kr}`)}E===we.REVERSE&&s.append("path").attr("d",`M ${_-5},${x-5}L${_+5},${x+5}M${_-5},${x+5}L${_+5},${x-5}`).attr("class",`commit ${w} ${g.id} commit${Xe[g.branch].index%kr}`)}}if(pe==="TB"?Ki[g.id]={x:_,y}:Ki[g.id]={x:y,y:x},i){if(g.type!==we.CHERRY_PICK&&(g.customId&&g.type===we.MERGE||g.type!==we.MERGE)&&r.showCommitLabel){const R=n.append("g"),v=R.insert("rect").attr("class","commit-label-bkg"),T=R.append("text").attr("x",a).attr("y",x+25).attr("class","commit-label").text(g.id);let k=T.node().getBBox();if(v.attr("x",y-k.width/2-2).attr("y",x+13.5).attr("width",k.width+4).attr("height",k.height+4),pe==="TB"&&(v.attr("x",_-(k.width+16+5)).attr("y",x-12),T.attr("x",_-(k.width+16)).attr("y",x+k.height-12)),pe!=="TB"&&T.attr("x",y-k.width/2),r.rotateCommitLabel)if(pe==="TB")T.attr("transform","rotate(-45, "+_+", "+x+")"),v.attr("transform","rotate(-45, "+_+", "+x+")");else{let A=-7.5-(k.width+10)/25*9.5,S=10+k.width/25*8.5;R.attr("transform","translate("+A+", "+S+") rotate(-45, "+a+", "+x+")")}}if(g.tag){const R=n.insert("polygon"),v=n.append("circle"),T=n.append("text").attr("y",x-16).attr("class","tag-label").text(g.tag);let k=T.node().getBBox();T.attr("x",y-k.width/2);const A=k.height/2,S=x-19.2;R.attr("class","tag-label-bkg").attr("points",` + ${a-k.width/2-4/2},${S+2} + ${a-k.width/2-4/2},${S-2} + ${y-k.width/2-4},${S-A-2} + ${y+k.width/2+4},${S-A-2} + ${y+k.width/2+4},${S+A+2} + ${y-k.width/2-4},${S+A+2}`),v.attr("cx",a-k.width/2+4/2).attr("cy",S).attr("r",1.5).attr("class","tag-hole"),pe==="TB"&&(R.attr("class","tag-label-bkg").attr("points",` + ${_},${a+2} + ${_},${a-2} + ${_+u},${a-A-2} + ${_+u+k.width+4},${a-A-2} + ${_+u+k.width+4},${a+A+2} + ${_+u},${a+A+2}`).attr("transform","translate(12,12) rotate(45, "+_+","+a+")"),v.attr("cx",_+4/2).attr("cy",a).attr("transform","translate(12,12) rotate(45, "+_+","+a+")"),T.attr("x",_+5).attr("y",a+3).attr("transform","translate(14,14) rotate(45, "+_+","+a+")"))}}a+=p+u,a>Ps&&(Ps=a)})},Gb=(t,e,i,r,s)=>{const a=(pe==="TB"?i.xh.branch===a,l=h=>h.seq>t.seq&&h.seql(h)&&o(h))},xs=(t,e,i=0)=>{const r=t+Math.abs(t-e)/2;if(i>5)return r;if(Un.every(a=>Math.abs(a-r)>=10))return Un.push(r),r;const n=Math.abs(t-e);return xs(t,e-n/5,i+1)},jb=(t,e,i,r)=>{const s=Ki[e.id],n=Ki[i.id],a=Gb(e,i,s,n,r);let o="",l="",h=0,u=0,p=Xe[i.branch].index;i.type===we.MERGE&&e.id!==i.parents[0]&&(p=Xe[e.branch].index);let d;if(a){o="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",h=10,u=10;const g=s.yn.x&&(o="A 20 20, 0, 0, 0,",l="A 20 20, 0, 0, 1,",h=20,u=20,i.type===we.MERGE&&e.id!==i.parents[0]?d=`M ${s.x} ${s.y} L ${s.x} ${n.y-h} ${l} ${s.x-u} ${n.y} L ${n.x} ${n.y}`:d=`M ${s.x} ${s.y} L ${n.x+h} ${s.y} ${o} ${n.x} ${s.y+u} L ${n.x} ${n.y}`),s.x===n.x&&(d=`M ${s.x} ${s.y} L ${n.x} ${n.y}`)):(s.yn.y&&(i.type===we.MERGE&&e.id!==i.parents[0]?d=`M ${s.x} ${s.y} L ${n.x-h} ${s.y} ${o} ${n.x} ${s.y-u} L ${n.x} ${n.y}`:d=`M ${s.x} ${s.y} L ${s.x} ${n.y+h} ${l} ${s.x+u} ${n.y} L ${n.x} ${n.y}`),s.y===n.y&&(d=`M ${s.x} ${s.y} L ${n.x} ${n.y}`));t.append("path").attr("d",d).attr("class","arrow arrow"+p%kr)},Xb=(t,e)=>{const i=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach(r=>{const s=e[r];s.parents&&s.parents.length>0&&s.parents.forEach(n=>{jb(i,e[n],s,e)})})},$b=(t,e)=>{const i=Y().gitGraph,r=t.append("g");e.forEach((s,n)=>{const a=n%kr,o=Xe[s.name].pos,l=r.append("line");l.attr("x1",0),l.attr("y1",o),l.attr("x2",Ps),l.attr("y2",o),l.attr("class","branch branch"+a),pe==="TB"&&(l.attr("y1",30),l.attr("x1",o),l.attr("y2",Ps),l.attr("x2",o)),Un.push(o);let h=s.name;const u=s0(h),p=r.insert("rect"),g=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);g.node().appendChild(u);let y=u.getBBox();p.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-y.width-4-(i.rotateCommitLabel===!0?30:0)).attr("y",-y.height/2+8).attr("width",y.width+18).attr("height",y.height+4),g.attr("transform","translate("+(-y.width-14-(i.rotateCommitLabel===!0?30:0))+", "+(o-y.height/2-1)+")"),pe==="TB"&&(p.attr("x",o-y.width/2-10).attr("y",0),g.attr("transform","translate("+(o-y.width/2-5)+", 0)")),pe!=="TB"&&p.attr("transform","translate(-19, "+(o-y.height/2)+")")})},Kb=function(t,e,i,r){Ub();const s=Y(),n=s.gitGraph;B.debug("in gitgraph renderer",t+` +`,"id:",e,i),ms=r.db.getCommits();const a=r.db.getBranchesAsObjArray();pe=r.db.getDirection();const o=yt(`[id="${e}"]`);let l=0;a.forEach((h,u)=>{const p=s0(h.name),d=o.append("g"),g=d.insert("g").attr("class","branchLabel"),y=g.insert("g").attr("class","label branch-label");y.node().appendChild(p);let x=p.getBBox();Xe[h.name]={pos:l,index:u},l+=50+(n.rotateCommitLabel?40:0)+(pe==="TB"?x.width/2:0),y.remove(),g.remove(),d.remove()}),Lc(o,ms,!1),n.showBranches&&$b(o,a),Xb(o,ms),Lc(o,ms,!0),Rt.insertTitle(o,"gitTitleText",n.titleTopMargin,r.db.getDiagramTitle()),o1(void 0,o,n.diagramPadding,n.useMaxWidth??s.useMaxWidth)},Qb={draw:Kb},Zb=t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,Jb=Zb,t5={parser:Sb,db:Yb,renderer:Qb,styles:Jb},e5=Object.freeze(Object.defineProperty({__proto__:null,diagram:t5},Symbol.toStringTag,{value:"Module"}));var to=(function(){var t=function(f,L,b,P){for(b=b||{},P=f.length;P--;b[f[P]]=L);return b},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],i=[1,25],r=[1,26],s=[1,27],n=[1,28],a=[1,29],o=[1,30],l=[1,31],h=[1,9],u=[1,10],p=[1,11],d=[1,12],g=[1,13],y=[1,14],x=[1,15],_=[1,16],w=[1,18],E=[1,19],R=[1,20],v=[1,21],T=[1,22],k=[1,24],A=[1,32],S={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(L,b,P,U,N,D,F){var I=D.length-1;switch(N){case 1:return D[I-1];case 2:this.$=[];break;case 3:D[I-1].push(D[I]),this.$=D[I-1];break;case 4:case 5:this.$=D[I];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(D[I].substr(11)),this.$=D[I].substr(11);break;case 16:U.enableInclusiveEndDates(),this.$=D[I].substr(18);break;case 17:U.TopAxis(),this.$=D[I].substr(8);break;case 18:U.setAxisFormat(D[I].substr(11)),this.$=D[I].substr(11);break;case 19:U.setTickInterval(D[I].substr(13)),this.$=D[I].substr(13);break;case 20:U.setExcludes(D[I].substr(9)),this.$=D[I].substr(9);break;case 21:U.setIncludes(D[I].substr(9)),this.$=D[I].substr(9);break;case 22:U.setTodayMarker(D[I].substr(12)),this.$=D[I].substr(12);break;case 24:U.setDiagramTitle(D[I].substr(6)),this.$=D[I].substr(6);break;case 25:this.$=D[I].trim(),U.setAccTitle(this.$);break;case 26:case 27:this.$=D[I].trim(),U.setAccDescription(this.$);break;case 28:U.addSection(D[I].substr(8)),this.$=D[I].substr(8);break;case 30:U.addTask(D[I-1],D[I]),this.$="task";break;case 31:this.$=D[I-1],U.setClickEvent(D[I-1],D[I],null);break;case 32:this.$=D[I-2],U.setClickEvent(D[I-2],D[I-1],D[I]);break;case 33:this.$=D[I-2],U.setClickEvent(D[I-2],D[I-1],null),U.setLink(D[I-2],D[I]);break;case 34:this.$=D[I-3],U.setClickEvent(D[I-3],D[I-2],D[I-1]),U.setLink(D[I-3],D[I]);break;case 35:this.$=D[I-2],U.setClickEvent(D[I-2],D[I],null),U.setLink(D[I-2],D[I-1]);break;case 36:this.$=D[I-3],U.setClickEvent(D[I-3],D[I-1],D[I]),U.setLink(D[I-3],D[I-2]);break;case 37:this.$=D[I-1],U.setLink(D[I-1],D[I]);break;case 38:case 44:this.$=D[I-1]+" "+D[I];break;case 39:case 40:case 42:this.$=D[I-2]+" "+D[I-1]+" "+D[I];break;case 41:case 43:this.$=D[I-3]+" "+D[I-2]+" "+D[I-1]+" "+D[I];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:i,13:r,14:s,15:n,16:a,17:o,18:l,19:h,20:u,21:p,22:d,23:g,24:y,25:x,26:_,27:w,28:E,30:R,32:v,33:T,34:23,35:k,37:A},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:i,13:r,14:s,15:n,16:a,17:o,18:l,19:h,20:u,21:p,22:d,23:g,24:y,25:x,26:_,27:w,28:E,30:R,32:v,33:T,34:23,35:k,37:A},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(L,b){if(b.recoverable)this.trace(L);else{var P=new Error(L);throw P.hash=b,P}},parse:function(L){var b=this,P=[0],U=[],N=[null],D=[],F=this.table,I="",M=0,z=0,st=2,j=1,dt=D.slice.call(arguments,1),K=Object.create(this.lexer),G={yy:{}};for(var tt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,tt)&&(G.yy[tt]=this.yy[tt]);K.setInput(L,G.yy),G.yy.lexer=K,G.yy.parser=this,typeof K.yylloc>"u"&&(K.yylloc={});var nt=K.yylloc;D.push(nt);var Q=K.options&&K.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function J(){var Bt;return Bt=U.pop()||K.lex()||j,typeof Bt!="number"&&(Bt instanceof Array&&(U=Bt,Bt=U.pop()),Bt=b.symbols_[Bt]||Bt),Bt}for(var O,at,W,ft,V={},vt,X,St,bt;;){if(at=P[P.length-1],this.defaultActions[at]?W=this.defaultActions[at]:((O===null||typeof O>"u")&&(O=J()),W=F[at]&&F[at][O]),typeof W>"u"||!W.length||!W[0]){var Vt="";bt=[];for(vt in F[at])this.terminals_[vt]&&vt>st&&bt.push("'"+this.terminals_[vt]+"'");K.showPosition?Vt="Parse error on line "+(M+1)+`: +`+K.showPosition()+` +Expecting `+bt.join(", ")+", got '"+(this.terminals_[O]||O)+"'":Vt="Parse error on line "+(M+1)+": Unexpected "+(O==j?"end of input":"'"+(this.terminals_[O]||O)+"'"),this.parseError(Vt,{text:K.match,token:this.terminals_[O]||O,line:K.yylineno,loc:nt,expected:bt})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+at+", token: "+O);switch(W[0]){case 1:P.push(O),N.push(K.yytext),D.push(K.yylloc),P.push(W[1]),O=null,z=K.yyleng,I=K.yytext,M=K.yylineno,nt=K.yylloc;break;case 2:if(X=this.productions_[W[1]][1],V.$=N[N.length-X],V._$={first_line:D[D.length-(X||1)].first_line,last_line:D[D.length-1].last_line,first_column:D[D.length-(X||1)].first_column,last_column:D[D.length-1].last_column},Q&&(V._$.range=[D[D.length-(X||1)].range[0],D[D.length-1].range[1]]),ft=this.performAction.apply(V,[I,z,M,G.yy,W[1],N,D].concat(dt)),typeof ft<"u")return ft;X&&(P=P.slice(0,-1*X*2),N=N.slice(0,-1*X),D=D.slice(0,-1*X)),P.push(this.productions_[W[1]][0]),N.push(V.$),D.push(V._$),St=F[P[P.length-2]][P[P.length-1]],P.push(St);break;case 3:return!0}}return!0}},m=(function(){var f={EOF:1,parseError:function(b,P){if(this.yy.parser)this.yy.parser.parseError(b,P);else throw new Error(b)},setInput:function(L,b){return this.yy=b||this.yy||{},this._input=L,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 L=this._input[0];this.yytext+=L,this.yyleng++,this.offset++,this.match+=L,this.matched+=L;var b=L.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),L},unput:function(L){var b=L.length,P=L.split(/(?:\r\n?|\n)/g);this._input=L+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b),this.offset-=b;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),P.length-1&&(this.yylineno-=P.length-1);var N=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:P?(P.length===U.length?this.yylloc.first_column:0)+U[U.length-P.length].length-P[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[N[0],N[0]+this.yyleng-b]),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(L){this.unput(this.match.slice(L))},pastInput:function(){var L=this.matched.substr(0,this.matched.length-this.match.length);return(L.length>20?"...":"")+L.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var L=this.match;return L.length<20&&(L+=this._input.substr(0,20-L.length)),(L.substr(0,20)+(L.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var L=this.pastInput(),b=new Array(L.length+1).join("-");return L+this.upcomingInput()+` +`+b+"^"},test_match:function(L,b){var P,U,N;if(this.options.backtrack_lexer&&(N={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(N.yylloc.range=this.yylloc.range.slice(0))),U=L[0].match(/(?:\r\n?|\n).*/g),U&&(this.yylineno+=U.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:U?U[U.length-1].length-U[U.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+L[0].length},this.yytext+=L[0],this.match+=L[0],this.matches=L,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(L[0].length),this.matched+=L[0],P=this.performAction.call(this,this.yy,this,b,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),P)return P;if(this._backtrack){for(var D in N)this[D]=N[D];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var L,b,P,U;this._more||(this.yytext="",this.match="");for(var N=this._currentRules(),D=0;Db[0].length)){if(b=P,U=D,this.options.backtrack_lexer){if(L=this.test_match(P,N[D]),L!==!1)return L;if(this._backtrack){b=!1;continue}else return!1}else if(!this.options.flex)break}return b?(L=this.test_match(b,N[U]),L!==!1?L:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var b=this.next();return b||this.lex()},begin:function(b){this.conditionStack.push(b)},popState:function(){var b=this.conditionStack.length-1;return b>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(b){return b=this.conditionStack.length-1-Math.abs(b||0),b>=0?this.conditionStack[b]:"INITIAL"},pushState:function(b){this.begin(b)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(b,P,U,N){switch(U){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return f})();S.lexer=m;function C(){this.yy={}}return C.prototype=S,S.Parser=C,new C})();to.parser=to;const i5=to;De.extend($d);De.extend(Kd);De.extend(Qd);let wi="",al="",ol,ll="",en=[],rn=[],cl={},hl=[],Hn=[],ns="",ul="";const n0=["active","done","crit","milestone"];let dl=[],sn=!1,fl=!1,pl="sunday",eo=0;const r5=function(){hl=[],Hn=[],ns="",dl=[],bn=0,ro=void 0,kn=void 0,xe=[],wi="",al="",ul="",ol=void 0,ll="",en=[],rn=[],sn=!1,fl=!1,eo=0,cl={},Oe(),pl="sunday"},s5=function(t){al=t},n5=function(){return al},a5=function(t){ol=t},o5=function(){return ol},l5=function(t){ll=t},c5=function(){return ll},h5=function(t){wi=t},u5=function(){sn=!0},d5=function(){return sn},f5=function(){fl=!0},p5=function(){return fl},g5=function(t){ul=t},y5=function(){return ul},m5=function(){return wi},x5=function(t){en=t.toLowerCase().split(/[\s,]+/)},b5=function(){return en},k5=function(t){rn=t.toLowerCase().split(/[\s,]+/)},_5=function(){return rn},T5=function(){return cl},C5=function(t){ns=t,hl.push(t)},E5=function(){return hl},S5=function(){let t=Bc();const e=10;let i=0;for(;!t&&i=6&&i.includes("weekends")||i.includes(t.format("dddd").toLowerCase())?!0:i.includes(t.format(e.trim()))},w5=function(t){pl=t},v5=function(){return pl},o0=function(t,e,i,r){if(!i.length||t.manualEndTime)return;let s;t.startTime instanceof Date?s=De(t.startTime):s=De(t.startTime,e,!0),s=s.add(1,"d");let n;t.endTime instanceof Date?n=De(t.endTime):n=De(t.endTime,e,!0);const[a,o]=A5(s,n,e,i,r);t.endTime=a.toDate(),t.renderEndTime=o},A5=function(t,e,i,r,s){let n=!1,a=null;for(;t<=e;)n||(a=e.toDate()),n=a0(t,i,r,s),n&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,a]},io=function(t,e,i){i=i.trim();const s=/^after\s+(?[\d\w- ]+)/.exec(i);if(s!==null){let a=null;for(const l of s.groups.ids.split(" ")){let h=Mr(l);h!==void 0&&(!a||h.endTime>a.endTime)&&(a=h)}if(a)return a.endTime;const o=new Date;return o.setHours(0,0,0,0),o}let n=De(i,e.trim(),!0);if(n.isValid())return n.toDate();{B.debug("Invalid date:"+i),B.debug("With date format:"+e.trim());const a=new Date(i);if(a===void 0||isNaN(a.getTime())||a.getFullYear()<-1e4||a.getFullYear()>1e4)throw new Error("Invalid date:"+i);return a}},l0=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},c0=function(t,e,i,r=!1){i=i.trim();const n=/^until\s+(?[\d\w- ]+)/.exec(i);if(n!==null){let u=null;for(const d of n.groups.ids.split(" ")){let g=Mr(d);g!==void 0&&(!u||g.startTime{window.open(i,"_self")}),cl[r]=i)}),u0(t,"clickable")},u0=function(t,e){t.split(",").forEach(function(i){let r=Mr(i);r!==void 0&&r.classes.push(e)})},R5=function(t,e,i){if(Y().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof i=="string"){r=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let n=0;n{Rt.runFunc(e,...r)})},d0=function(t,e){dl.push(function(){const i=document.querySelector(`[id="${t}"]`);i!==null&&i.addEventListener("click",function(){e()})},function(){const i=document.querySelector(`[id="${t}-text"]`);i!==null&&i.addEventListener("click",function(){e()})})},N5=function(t,e,i){t.split(",").forEach(function(r){R5(r,e,i)}),u0(t,"clickable")},O5=function(t){dl.forEach(function(e){e(t)})},P5={getConfig:()=>Y().gantt,clear:r5,setDateFormat:h5,getDateFormat:m5,enableInclusiveEndDates:u5,endDatesAreInclusive:d5,enableTopAxis:f5,topAxisEnabled:p5,setAxisFormat:s5,getAxisFormat:n5,setTickInterval:a5,getTickInterval:o5,setTodayMarker:l5,getTodayMarker:c5,setAccTitle:Pe,getAccTitle:Ye,setDiagramTitle:ri,getDiagramTitle:Ge,setDisplayMode:g5,getDisplayMode:y5,setAccDescription:Ue,getAccDescription:He,addSection:C5,getSections:E5,getTasks:S5,addTask:I5,findTaskById:Mr,addTaskOrg:D5,setIncludes:x5,getIncludes:b5,setExcludes:k5,getExcludes:_5,setClickEvent:N5,setLink:F5,getLinks:T5,bindFunctions:O5,parseDuration:l0,isInvalidDate:a0,setWeekday:w5,getWeekday:v5};function f0(t,e,i){let r=!0;for(;r;)r=!1,i.forEach(function(s){const n="^\\s*"+s+"\\s*$",a=new RegExp(n);t[0].match(a)&&(e[s]=!0,t.shift(1),r=!0)})}const M5=function(){B.debug("Something is calling, setConf, remove the call")},Ic={monday:Ff,tuesday:Df,wednesday:If,thursday:Bf,friday:Lf,saturday:Af,sunday:vf},V5=(t,e)=>{let i=[...t].map(()=>-1/0),r=[...t].sort((n,a)=>n.startTime-a.startTime||n.order-a.order),s=0;for(const n of r)for(let a=0;a=i[a]){i[a]=n.endTime,n.order=a+e,a>s&&(s=a);break}return s};let Hi;const z5=function(t,e,i,r){const s=Y().gantt,n=Y().securityLevel;let a;n==="sandbox"&&(a=yt("#i"+e));const o=n==="sandbox"?yt(a.nodes()[0].contentDocument.body):yt("body"),l=n==="sandbox"?a.nodes()[0].contentDocument:document,h=l.getElementById(e);Hi=h.parentElement.offsetWidth,Hi===void 0&&(Hi=1200),s.useWidth!==void 0&&(Hi=s.useWidth);const u=r.db.getTasks();let p=[];for(const S of u)p.push(S.type);p=A(p);const d={};let g=2*s.topPadding;if(r.db.getDisplayMode()==="compact"||s.displayMode==="compact"){const S={};for(const C of u)S[C.section]===void 0?S[C.section]=[C]:S[C.section].push(C);let m=0;for(const C of Object.keys(S)){const f=V5(S[C],m)+1;m+=f,g+=f*(s.barHeight+s.barGap),d[C]=f}}else{g+=u.length*(s.barHeight+s.barGap);for(const S of p)d[S]=u.filter(m=>m.type===S).length}h.setAttribute("viewBox","0 0 "+Hi+" "+g);const y=o.select(`[id="${e}"]`),x=_f().domain([Tf(u,function(S){return S.startTime}),Cf(u,function(S){return S.endTime})]).rangeRound([0,Hi-s.leftPadding-s.rightPadding]);function _(S,m){const C=S.startTime,f=m.startTime;let L=0;return C>f?L=1:CM.order))].map(M=>S.find(z=>z.order===M));y.append("g").selectAll("rect").data(N).enter().append("rect").attr("x",0).attr("y",function(M,z){return z=M.order,z*m+C-2}).attr("width",function(){return P-s.rightPadding/2}).attr("height",m).attr("class",function(M){for(const[z,st]of p.entries())if(M.type===st)return"section section"+z%s.numberSectionStyles;return"section section0"});const D=y.append("g").selectAll("rect").data(S).enter(),F=r.db.getLinks();if(D.append("rect").attr("id",function(M){return M.id}).attr("rx",3).attr("ry",3).attr("x",function(M){return M.milestone?x(M.startTime)+f+.5*(x(M.endTime)-x(M.startTime))-.5*L:x(M.startTime)+f}).attr("y",function(M,z){return z=M.order,z*m+C}).attr("width",function(M){return M.milestone?L:x(M.renderEndTime||M.endTime)-x(M.startTime)}).attr("height",L).attr("transform-origin",function(M,z){return z=M.order,(x(M.startTime)+f+.5*(x(M.endTime)-x(M.startTime))).toString()+"px "+(z*m+C+.5*L).toString()+"px"}).attr("class",function(M){const z="task";let st="";M.classes.length>0&&(st=M.classes.join(" "));let j=0;for(const[K,G]of p.entries())M.type===G&&(j=K%s.numberSectionStyles);let dt="";return M.active?M.crit?dt+=" activeCrit":dt=" active":M.done?M.crit?dt=" doneCrit":dt=" done":M.crit&&(dt+=" crit"),dt.length===0&&(dt=" task"),M.milestone&&(dt=" milestone "+dt),dt+=j,dt+=" "+st,z+dt}),D.append("text").attr("id",function(M){return M.id+"-text"}).text(function(M){return M.task}).attr("font-size",s.fontSize).attr("x",function(M){let z=x(M.startTime),st=x(M.renderEndTime||M.endTime);M.milestone&&(z+=.5*(x(M.endTime)-x(M.startTime))-.5*L),M.milestone&&(st=z+L);const j=this.getBBox().width;return j>st-z?st+j+1.5*s.leftPadding>P?z+f-5:st+f+5:(st-z)/2+z+f}).attr("y",function(M,z){return z=M.order,z*m+s.barHeight/2+(s.fontSize/2-2)+C}).attr("text-height",L).attr("class",function(M){const z=x(M.startTime);let st=x(M.endTime);M.milestone&&(st=z+L);const j=this.getBBox().width;let dt="";M.classes.length>0&&(dt=M.classes.join(" "));let K=0;for(const[tt,nt]of p.entries())M.type===nt&&(K=tt%s.numberSectionStyles);let G="";return M.active&&(M.crit?G="activeCritText"+K:G="activeText"+K),M.done?M.crit?G=G+" doneCritText"+K:G=G+" doneText"+K:M.crit&&(G=G+" critText"+K),M.milestone&&(G+=" milestoneText"),j>st-z?st+j+1.5*s.leftPadding>P?dt+" taskTextOutsideLeft taskTextOutside"+K+" "+G:dt+" taskTextOutsideRight taskTextOutside"+K+" "+G+" width-"+j:dt+" taskText taskText"+K+" "+G+" width-"+j}),Y().securityLevel==="sandbox"){let M;M=yt("#i"+e);const z=M.nodes()[0].contentDocument;D.filter(function(st){return F[st.id]!==void 0}).each(function(st){var j=z.querySelector("#"+st.id),dt=z.querySelector("#"+st.id+"-text");const K=j.parentNode;var G=z.createElement("a");G.setAttribute("xlink:href",F[st.id]),G.setAttribute("target","_top"),K.appendChild(G),G.appendChild(j),G.appendChild(dt)})}}function R(S,m,C,f,L,b,P,U){if(P.length===0&&U.length===0)return;let N,D;for(const{startTime:j,endTime:dt}of b)(N===void 0||jD)&&(D=dt);if(!N||!D)return;if(De(D).diff(De(N),"year")>5){B.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const F=r.db.getDateFormat(),I=[];let M=null,z=De(N);for(;z.valueOf()<=D;)r.db.isInvalidDate(z,F,P,U)?M?M.end=z:M={start:z,end:z}:M&&(I.push(M),M=null),z=z.add(1,"d");y.append("g").selectAll("rect").data(I).enter().append("rect").attr("id",function(j){return"exclude-"+j.start.format("YYYY-MM-DD")}).attr("x",function(j){return x(j.start)+C}).attr("y",s.gridLineStartPadding).attr("width",function(j){const dt=j.end.add(1,"day");return x(dt)-x(j.start)}).attr("height",L-m-s.gridLineStartPadding).attr("transform-origin",function(j,dt){return(x(j.start)+C+.5*(x(j.end)-x(j.start))).toString()+"px "+(dt*S+.5*L).toString()+"px"}).attr("class","exclude-range")}function v(S,m,C,f){let L=Sf(x).tickSize(-f+m+s.gridLineStartPadding).tickFormat(Ul(r.db.getAxisFormat()||s.axisFormat||"%Y-%m-%d"));const P=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||s.tickInterval);if(P!==null){const U=P[1],N=P[2],D=r.db.getWeekday()||s.weekday;switch(N){case"millisecond":L.ticks(Kl.every(U));break;case"second":L.ticks($l.every(U));break;case"minute":L.ticks(Xl.every(U));break;case"hour":L.ticks(jl.every(U));break;case"day":L.ticks(Gl.every(U));break;case"week":L.ticks(Ic[D].every(U));break;case"month":L.ticks(Hl.every(U));break}}if(y.append("g").attr("class","grid").attr("transform","translate("+S+", "+(f-50)+")").call(L).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||s.topAxis){let U=wf(x).tickSize(-f+m+s.gridLineStartPadding).tickFormat(Ul(r.db.getAxisFormat()||s.axisFormat||"%Y-%m-%d"));if(P!==null){const N=P[1],D=P[2],F=r.db.getWeekday()||s.weekday;switch(D){case"millisecond":U.ticks(Kl.every(N));break;case"second":U.ticks($l.every(N));break;case"minute":U.ticks(Xl.every(N));break;case"hour":U.ticks(jl.every(N));break;case"day":U.ticks(Gl.every(N));break;case"week":U.ticks(Ic[F].every(N));break;case"month":U.ticks(Hl.every(N));break}}y.append("g").attr("class","grid").attr("transform","translate("+S+", "+m+")").call(U).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function T(S,m){let C=0;const f=Object.keys(d).map(L=>[L,d[L]]);y.append("g").selectAll("text").data(f).enter().append(function(L){const b=L[0].split(mt.lineBreakRegex),P=-(b.length-1)/2,U=l.createElementNS("http://www.w3.org/2000/svg","text");U.setAttribute("dy",P+"em");for(const[N,D]of b.entries()){const F=l.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),N>0&&F.setAttribute("dy","1em"),F.textContent=D,U.appendChild(F)}return U}).attr("x",10).attr("y",function(L,b){if(b>0)for(let P=0;P` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,Y5=W5,U5={parser:i5,db:P5,renderer:q5,styles:Y5},H5=Object.freeze(Object.defineProperty({__proto__:null,diagram:U5},Symbol.toStringTag,{value:"Module"}));var so=(function(){var t=function(n,a,o,l){for(o=o||{},l=n.length;l--;o[n[l]]=a);return o},e=[6,9,10],i={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(a,o,l,h,u,p,d){switch(p.length-1,u){case 1:return h;case 4:break;case 6:h.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var l=new Error(a);throw l.hash=o,l}},parse:function(a){var o=this,l=[0],h=[],u=[null],p=[],d=this.table,g="",y=0,x=0,_=2,w=1,E=p.slice.call(arguments,1),R=Object.create(this.lexer),v={yy:{}};for(var T in this.yy)Object.prototype.hasOwnProperty.call(this.yy,T)&&(v.yy[T]=this.yy[T]);R.setInput(a,v.yy),v.yy.lexer=R,v.yy.parser=this,typeof R.yylloc>"u"&&(R.yylloc={});var k=R.yylloc;p.push(k);var A=R.options&&R.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function S(){var I;return I=h.pop()||R.lex()||w,typeof I!="number"&&(I instanceof Array&&(h=I,I=h.pop()),I=o.symbols_[I]||I),I}for(var m,C,f,L,b={},P,U,N,D;;){if(C=l[l.length-1],this.defaultActions[C]?f=this.defaultActions[C]:((m===null||typeof m>"u")&&(m=S()),f=d[C]&&d[C][m]),typeof f>"u"||!f.length||!f[0]){var F="";D=[];for(P in d[C])this.terminals_[P]&&P>_&&D.push("'"+this.terminals_[P]+"'");R.showPosition?F="Parse error on line "+(y+1)+`: +`+R.showPosition()+` +Expecting `+D.join(", ")+", got '"+(this.terminals_[m]||m)+"'":F="Parse error on line "+(y+1)+": Unexpected "+(m==w?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(F,{text:R.match,token:this.terminals_[m]||m,line:R.yylineno,loc:k,expected:D})}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+m);switch(f[0]){case 1:l.push(m),u.push(R.yytext),p.push(R.yylloc),l.push(f[1]),m=null,x=R.yyleng,g=R.yytext,y=R.yylineno,k=R.yylloc;break;case 2:if(U=this.productions_[f[1]][1],b.$=u[u.length-U],b._$={first_line:p[p.length-(U||1)].first_line,last_line:p[p.length-1].last_line,first_column:p[p.length-(U||1)].first_column,last_column:p[p.length-1].last_column},A&&(b._$.range=[p[p.length-(U||1)].range[0],p[p.length-1].range[1]]),L=this.performAction.apply(b,[g,x,y,v.yy,f[1],u,p].concat(E)),typeof L<"u")return L;U&&(l=l.slice(0,-1*U*2),u=u.slice(0,-1*U),p=p.slice(0,-1*U)),l.push(this.productions_[f[1]][0]),u.push(b.$),p.push(b._$),N=d[l[l.length-2]][l[l.length-1]],l.push(N);break;case 3:return!0}}return!0}},r=(function(){var n={EOF:1,parseError:function(o,l){if(this.yy.parser)this.yy.parser.parseError(o,l);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,l=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 h=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 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:l?(l.length===h.length?this.yylloc.first_column:0)+h[h.length-l.length].length-l[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[u[0],u[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()+` +`+o+"^"},test_match:function(a,o){var l,h,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),h=a[0].match(/(?:\r\n?|\n).*/g),h&&(this.yylineno+=h.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:h?h[h.length-1].length-h[h.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],l=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var p in u)this[p]=u[p];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,l,h;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),p=0;po[0].length)){if(o=l,h=p,this.options.backtrack_lexer){if(a=this.test_match(l,u[p]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,u[h]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(o,l,h,u){switch(h){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return n})();i.lexer=r;function s(){this.yy={}}return s.prototype=i,i.Parser=s,new s})();so.parser=so;const G5=so,p0={info:!1};let gl=p0.info;const j5=t=>{gl=t},X5=()=>gl,$5=()=>{gl=p0.info},K5={clear:$5,setInfo:j5,getInfo:X5},Q5=(t,e,i)=>{B.debug(`rendering info diagram +`+t);const r=Zs(e);Ne(r,100,400,!0),r.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${i}`)},Z5={draw:Q5},J5={parser:G5,db:K5,renderer:Z5},tk=Object.freeze(Object.defineProperty({__proto__:null,diagram:J5},Symbol.toStringTag,{value:"Module"}));var no=(function(){var t=function(R,v,T,k){for(T=T||{},k=R.length;k--;T[R[k]]=v);return T},e=[1,3],i=[1,4],r=[1,5],s=[1,6],n=[1,10,12,14,16,18,19,20,21,22],a=[2,4],o=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],h=[2,7],u=[1,12],p=[1,13],d=[1,14],g=[1,15],y=[1,16],x=[1,17],_={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(v,T,k,A,S,m,C){var f=m.length-1;switch(S){case 3:A.setShowData(!0);break;case 6:this.$=m[f-1];break;case 8:A.addSection(m[f-1],A.cleanupValue(m[f]));break;case 9:this.$=m[f].trim(),A.setDiagramTitle(this.$);break;case 10:this.$=m[f].trim(),A.setAccTitle(this.$);break;case 11:case 12:this.$=m[f].trim(),A.setAccDescription(this.$);break;case 13:A.addSection(m[f].substr(8)),this.$=m[f].substr(8);break}},table:[{3:1,4:2,5:e,20:i,21:r,22:s},{1:[3]},{3:7,4:2,5:e,20:i,21:r,22:s},t(n,a,{6:8,7:[1,9]}),t(o,[2,14]),t(o,[2,15]),t(o,[2,16]),{1:[2,1]},t(l,h,{8:10,9:11,1:[2,2],10:u,12:p,14:d,16:g,18:y,19:x}),t(n,a,{6:18}),t(n,[2,5]),{4:19,20:i,21:r,22:s},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},t(l,[2,12]),t(l,[2,13]),t(l,h,{8:10,9:11,1:[2,3],10:u,12:p,14:d,16:g,18:y,19:x}),t(n,[2,6]),t(l,[2,8]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(v,T){if(T.recoverable)this.trace(v);else{var k=new Error(v);throw k.hash=T,k}},parse:function(v){var T=this,k=[0],A=[],S=[null],m=[],C=this.table,f="",L=0,b=0,P=2,U=1,N=m.slice.call(arguments,1),D=Object.create(this.lexer),F={yy:{}};for(var I in this.yy)Object.prototype.hasOwnProperty.call(this.yy,I)&&(F.yy[I]=this.yy[I]);D.setInput(v,F.yy),F.yy.lexer=D,F.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var M=D.yylloc;m.push(M);var z=D.options&&D.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function st(){var W;return W=A.pop()||D.lex()||U,typeof W!="number"&&(W instanceof Array&&(A=W,W=A.pop()),W=T.symbols_[W]||W),W}for(var j,dt,K,G,tt={},nt,Q,J,O;;){if(dt=k[k.length-1],this.defaultActions[dt]?K=this.defaultActions[dt]:((j===null||typeof j>"u")&&(j=st()),K=C[dt]&&C[dt][j]),typeof K>"u"||!K.length||!K[0]){var at="";O=[];for(nt in C[dt])this.terminals_[nt]&&nt>P&&O.push("'"+this.terminals_[nt]+"'");D.showPosition?at="Parse error on line "+(L+1)+`: +`+D.showPosition()+` +Expecting `+O.join(", ")+", got '"+(this.terminals_[j]||j)+"'":at="Parse error on line "+(L+1)+": Unexpected "+(j==U?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(at,{text:D.match,token:this.terminals_[j]||j,line:D.yylineno,loc:M,expected:O})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+dt+", token: "+j);switch(K[0]){case 1:k.push(j),S.push(D.yytext),m.push(D.yylloc),k.push(K[1]),j=null,b=D.yyleng,f=D.yytext,L=D.yylineno,M=D.yylloc;break;case 2:if(Q=this.productions_[K[1]][1],tt.$=S[S.length-Q],tt._$={first_line:m[m.length-(Q||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(Q||1)].first_column,last_column:m[m.length-1].last_column},z&&(tt._$.range=[m[m.length-(Q||1)].range[0],m[m.length-1].range[1]]),G=this.performAction.apply(tt,[f,b,L,F.yy,K[1],S,m].concat(N)),typeof G<"u")return G;Q&&(k=k.slice(0,-1*Q*2),S=S.slice(0,-1*Q),m=m.slice(0,-1*Q)),k.push(this.productions_[K[1]][0]),S.push(tt.$),m.push(tt._$),J=C[k[k.length-2]][k[k.length-1]],k.push(J);break;case 3:return!0}}return!0}},w=(function(){var R={EOF:1,parseError:function(T,k){if(this.yy.parser)this.yy.parser.parseError(T,k);else throw new Error(T)},setInput:function(v,T){return this.yy=T||this.yy||{},this._input=v,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 v=this._input[0];this.yytext+=v,this.yyleng++,this.offset++,this.match+=v,this.matched+=v;var T=v.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),v},unput:function(v){var T=v.length,k=v.split(/(?:\r\n?|\n)/g);this._input=v+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var A=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),k.length-1&&(this.yylineno-=k.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:k?(k.length===A.length?this.yylloc.first_column:0)+A[A.length-k.length].length-k[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-T]),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(v){this.unput(this.match.slice(v))},pastInput:function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var v=this.match;return v.length<20&&(v+=this._input.substr(0,20-v.length)),(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var v=this.pastInput(),T=new Array(v.length+1).join("-");return v+this.upcomingInput()+` +`+T+"^"},test_match:function(v,T){var k,A,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),A=v[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+v[0].length},this.yytext+=v[0],this.match+=v[0],this.matches=v,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(v[0].length),this.matched+=v[0],k=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var m in S)this[m]=S[m];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var v,T,k,A;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),m=0;mT[0].length)){if(T=k,A=m,this.options.backtrack_lexer){if(v=this.test_match(k,S[m]),v!==!1)return v;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(v=this.test_match(T,S[A]),v!==!1?v:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var T=this.next();return T||this.lex()},begin:function(T){this.conditionStack.push(T)},popState:function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},pushState:function(T){this.begin(T)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(T,k,A,S){switch(A){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return R})();_.lexer=w;function E(){this.yy={}}return E.prototype=_,_.Parser=E,new E})();no.parser=no;const ek=no,ik=$t.pie,Gn={sections:{},showData:!1};let jn=Gn.sections,yl=Gn.showData;const rk=structuredClone(ik),sk=()=>structuredClone(rk),nk=()=>{jn=structuredClone(Gn.sections),yl=Gn.showData,Oe()},ak=(t,e)=>{t=te(t,Y()),jn[t]===void 0&&(jn[t]=e,B.debug(`added new section: ${t}, with value: ${e}`))},ok=()=>jn,lk=t=>(t.substring(0,1)===":"&&(t=t.substring(1).trim()),Number(t.trim())),ck=t=>{yl=t},hk=()=>yl,uk={getConfig:sk,clear:nk,setDiagramTitle:ri,getDiagramTitle:Ge,setAccTitle:Pe,getAccTitle:Ye,setAccDescription:Ue,getAccDescription:He,addSection:ak,getSections:ok,cleanupValue:lk,setShowData:ck,getShowData:hk},dk=t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,fk=dk,pk=t=>{const e=Object.entries(t).map(r=>({label:r[0],value:r[1]})).sort((r,s)=>s.value-r.value);return bf().value(r=>r.value)(e)},gk=(t,e,i,r)=>{B.debug(`rendering pie chart +`+t);const s=r.db,n=Y(),a=Qs(s.getConfig(),n.pie),o=40,l=18,h=4,u=450,p=u,d=Zs(e),g=d.append("g"),y=s.getSections();g.attr("transform","translate("+p/2+","+u/2+")");const{themeVariables:x}=n;let[_]=Or(x.pieOuterStrokeWidth);_??(_=2);const w=a.textPosition,E=Math.min(p,u)/2-o,R=Jr().innerRadius(0).outerRadius(E),v=Jr().innerRadius(E*w).outerRadius(E*w);g.append("circle").attr("cx",0).attr("cy",0).attr("r",E+_/2).attr("class","pieOuterCircle");const T=pk(y),k=[x.pie1,x.pie2,x.pie3,x.pie4,x.pie5,x.pie6,x.pie7,x.pie8,x.pie9,x.pie10,x.pie11,x.pie12],A=Io(k);g.selectAll("mySlices").data(T).enter().append("path").attr("d",R).attr("fill",L=>A(L.data.label)).attr("class","pieCircle");let S=0;Object.keys(y).forEach(L=>{S+=y[L]}),g.selectAll("mySlices").data(T).enter().append("text").text(L=>(L.data.value/S*100).toFixed(0)+"%").attr("transform",L=>"translate("+v.centroid(L)+")").style("text-anchor","middle").attr("class","slice"),g.append("text").text(s.getDiagramTitle()).attr("x",0).attr("y",-400/2).attr("class","pieTitleText");const m=g.selectAll(".legend").data(A.domain()).enter().append("g").attr("class","legend").attr("transform",(L,b)=>{const P=l+h,U=P*A.domain().length/2,N=12*l,D=b*P-U;return"translate("+N+","+D+")"});m.append("rect").attr("width",l).attr("height",l).style("fill",A).style("stroke",A),m.data(T).append("text").attr("x",l+h).attr("y",l-h).text(L=>{const{label:b,value:P}=L.data;return s.getShowData()?`${b} [${P}]`:b});const C=Math.max(...m.selectAll("text").nodes().map(L=>L?.getBoundingClientRect().width??0)),f=p+o+l+h+C;d.attr("viewBox",`0 0 ${f} ${u}`),Ne(d,u,f,a.useMaxWidth)},yk={draw:gk},mk={parser:ek,db:uk,renderer:yk,styles:fk},xk=Object.freeze(Object.defineProperty({__proto__:null,diagram:mk},Symbol.toStringTag,{value:"Module"}));var ao=(function(){var t=function(K,G,tt,nt){for(tt=tt||{},nt=K.length;nt--;tt[K[nt]]=G);return tt},e=[1,3],i=[1,4],r=[1,5],s=[1,6],n=[1,7],a=[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],o=[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],l=[32,33,34],h=[2,7],u=[1,13],p=[1,17],d=[1,18],g=[1,19],y=[1,20],x=[1,21],_=[1,22],w=[1,23],E=[1,24],R=[1,25],v=[1,26],T=[1,27],k=[1,30],A=[1,31],S=[1,32],m=[1,33],C=[1,34],f=[1,35],L=[1,36],b=[1,37],P=[1,38],U=[1,39],N=[1,40],D=[1,41],F=[1,42],I=[1,57],M=[1,58],z=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],st={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(G,tt,nt,Q,J,O,at){var W=O.length-1;switch(J){case 12:this.$=O[W].trim(),Q.setDiagramTitle(this.$);break;case 13:this.$=O[W].trim(),Q.setAccTitle(this.$);break;case 14:case 15:this.$=O[W].trim(),Q.setAccDescription(this.$);break;case 16:Q.addSection(O[W].substr(8)),this.$=O[W].substr(8);break;case 17:Q.addPoint(O[W-3],O[W-1],O[W]);break;case 18:Q.setXAxisLeftText(O[W-2]),Q.setXAxisRightText(O[W]);break;case 19:O[W-1].text+=" ⟶ ",Q.setXAxisLeftText(O[W-1]);break;case 20:Q.setXAxisLeftText(O[W]);break;case 21:Q.setYAxisBottomText(O[W-2]),Q.setYAxisTopText(O[W]);break;case 22:O[W-1].text+=" ⟶ ",Q.setYAxisBottomText(O[W-1]);break;case 23:Q.setYAxisBottomText(O[W]);break;case 24:Q.setQuadrant1Text(O[W]);break;case 25:Q.setQuadrant2Text(O[W]);break;case 26:Q.setQuadrant3Text(O[W]);break;case 27:Q.setQuadrant4Text(O[W]);break;case 31:this.$={text:O[W],type:"text"};break;case 32:this.$={text:O[W-1].text+""+O[W],type:O[W-1].type};break;case 33:this.$={text:O[W],type:"text"};break;case 34:this.$={text:O[W],type:"markdown"};break;case 35:this.$=O[W];break;case 36:this.$=O[W-1]+""+O[W];break}},table:[{3:1,4:2,5:e,6:i,32:r,33:s,34:n},{1:[3]},{3:8,4:2,5:e,6:i,32:r,33:s,34:n},{3:9,4:2,5:e,6:i,32:r,33:s,34:n},t(a,[2,4],{7:10}),t(o,[2,28]),t(o,[2,29]),t(o,[2,30]),{1:[2,1]},{1:[2,2]},t(l,h,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:u,13:p,15:d,17:g,19:y,20:x,25:_,27:w,28:E,29:R,30:v,31:T,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F}),t(a,[2,5]),{4:43,32:r,33:s,34:n},t(l,h,{10:14,11:15,12:16,21:28,35:29,9:44,5:u,13:p,15:d,17:g,19:y,20:x,25:_,27:w,28:E,29:R,30:v,31:T,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F}),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},t(l,[2,15]),t(l,[2,16]),{21:48,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{21:49,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{21:50,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{21:51,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{21:52,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{21:53,35:29,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F},{5:I,22:[1,54],35:56,36:55,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M},t(z,[2,31]),t(z,[2,33]),t(z,[2,34]),t(z,[2,37]),t(z,[2,38]),t(z,[2,39]),t(z,[2,40]),t(z,[2,41]),t(z,[2,42]),t(z,[2,43]),t(z,[2,44]),t(z,[2,45]),t(z,[2,46]),t(z,[2,47]),t(a,[2,6]),t(l,[2,8]),t(l,[2,12]),t(l,[2,13]),t(l,[2,14]),t(l,[2,20],{36:55,35:56,5:I,26:[1,59],40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,23],{36:55,35:56,5:I,26:[1,60],40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,24],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,25],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,26],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,27],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),{23:[1,61]},t(z,[2,32]),t(z,[2,48]),t(z,[2,49]),t(z,[2,50]),t(l,[2,19],{35:29,21:62,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F}),t(l,[2,22],{35:29,21:63,37:k,38:A,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F}),{24:[1,64]},t(l,[2,18],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,21],{36:55,35:56,5:I,40:S,41:m,42:C,43:f,44:L,45:b,46:P,47:U,48:N,49:D,50:F,51:M}),t(l,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(G,tt){if(tt.recoverable)this.trace(G);else{var nt=new Error(G);throw nt.hash=tt,nt}},parse:function(G){var tt=this,nt=[0],Q=[],J=[null],O=[],at=this.table,W="",ft=0,V=0,vt=2,X=1,St=O.slice.call(arguments,1),bt=Object.create(this.lexer),Vt={yy:{}};for(var Bt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Bt)&&(Vt.yy[Bt]=this.yy[Bt]);bt.setInput(G,Vt.yy),Vt.yy.lexer=bt,Vt.yy.parser=this,typeof bt.yylloc>"u"&&(bt.yylloc={});var Wt=bt.yylloc;O.push(Wt);var pt=bt.options&&bt.options.ranges;typeof Vt.yy.parseError=="function"?this.parseError=Vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var zt;return zt=Q.pop()||bt.lex()||X,typeof zt!="number"&&(zt instanceof Array&&(Q=zt,zt=Q.pop()),zt=tt.symbols_[zt]||zt),zt}for(var ot,lt,ht,$,rt={},it,ct,re,Qt;;){if(lt=nt[nt.length-1],this.defaultActions[lt]?ht=this.defaultActions[lt]:((ot===null||typeof ot>"u")&&(ot=ut()),ht=at[lt]&&at[lt][ot]),typeof ht>"u"||!ht.length||!ht[0]){var de="";Qt=[];for(it in at[lt])this.terminals_[it]&&it>vt&&Qt.push("'"+this.terminals_[it]+"'");bt.showPosition?de="Parse error on line "+(ft+1)+`: +`+bt.showPosition()+` +Expecting `+Qt.join(", ")+", got '"+(this.terminals_[ot]||ot)+"'":de="Parse error on line "+(ft+1)+": Unexpected "+(ot==X?"end of input":"'"+(this.terminals_[ot]||ot)+"'"),this.parseError(de,{text:bt.match,token:this.terminals_[ot]||ot,line:bt.yylineno,loc:Wt,expected:Qt})}if(ht[0]instanceof Array&&ht.length>1)throw new Error("Parse Error: multiple actions possible at state: "+lt+", token: "+ot);switch(ht[0]){case 1:nt.push(ot),J.push(bt.yytext),O.push(bt.yylloc),nt.push(ht[1]),ot=null,V=bt.yyleng,W=bt.yytext,ft=bt.yylineno,Wt=bt.yylloc;break;case 2:if(ct=this.productions_[ht[1]][1],rt.$=J[J.length-ct],rt._$={first_line:O[O.length-(ct||1)].first_line,last_line:O[O.length-1].last_line,first_column:O[O.length-(ct||1)].first_column,last_column:O[O.length-1].last_column},pt&&(rt._$.range=[O[O.length-(ct||1)].range[0],O[O.length-1].range[1]]),$=this.performAction.apply(rt,[W,V,ft,Vt.yy,ht[1],J,O].concat(St)),typeof $<"u")return $;ct&&(nt=nt.slice(0,-1*ct*2),J=J.slice(0,-1*ct),O=O.slice(0,-1*ct)),nt.push(this.productions_[ht[1]][0]),J.push(rt.$),O.push(rt._$),re=at[nt[nt.length-2]][nt[nt.length-1]],nt.push(re);break;case 3:return!0}}return!0}},j=(function(){var K={EOF:1,parseError:function(tt,nt){if(this.yy.parser)this.yy.parser.parseError(tt,nt);else throw new Error(tt)},setInput:function(G,tt){return this.yy=tt||this.yy||{},this._input=G,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 G=this._input[0];this.yytext+=G,this.yyleng++,this.offset++,this.match+=G,this.matched+=G;var tt=G.match(/(?:\r\n?|\n).*/g);return tt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),G},unput:function(G){var tt=G.length,nt=G.split(/(?:\r\n?|\n)/g);this._input=G+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-tt),this.offset-=tt;var Q=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),nt.length-1&&(this.yylineno-=nt.length-1);var J=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:nt?(nt.length===Q.length?this.yylloc.first_column:0)+Q[Q.length-nt.length].length-nt[0].length:this.yylloc.first_column-tt},this.options.ranges&&(this.yylloc.range=[J[0],J[0]+this.yyleng-tt]),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(G){this.unput(this.match.slice(G))},pastInput:function(){var G=this.matched.substr(0,this.matched.length-this.match.length);return(G.length>20?"...":"")+G.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var G=this.match;return G.length<20&&(G+=this._input.substr(0,20-G.length)),(G.substr(0,20)+(G.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var G=this.pastInput(),tt=new Array(G.length+1).join("-");return G+this.upcomingInput()+` +`+tt+"^"},test_match:function(G,tt){var nt,Q,J;if(this.options.backtrack_lexer&&(J={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(J.yylloc.range=this.yylloc.range.slice(0))),Q=G[0].match(/(?:\r\n?|\n).*/g),Q&&(this.yylineno+=Q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Q?Q[Q.length-1].length-Q[Q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+G[0].length},this.yytext+=G[0],this.match+=G[0],this.matches=G,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(G[0].length),this.matched+=G[0],nt=this.performAction.call(this,this.yy,this,tt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),nt)return nt;if(this._backtrack){for(var O in J)this[O]=J[O];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var G,tt,nt,Q;this._more||(this.yytext="",this.match="");for(var J=this._currentRules(),O=0;Ott[0].length)){if(tt=nt,Q=O,this.options.backtrack_lexer){if(G=this.test_match(nt,J[O]),G!==!1)return G;if(this._backtrack){tt=!1;continue}else return!1}else if(!this.options.flex)break}return tt?(G=this.test_match(tt,J[Q]),G!==!1?G:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var tt=this.next();return tt||this.lex()},begin:function(tt){this.conditionStack.push(tt)},popState:function(){var tt=this.conditionStack.length-1;return tt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(tt){return tt=this.conditionStack.length-1-Math.abs(tt||0),tt>=0?this.conditionStack[tt]:"INITIAL"},pushState:function(tt){this.begin(tt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(tt,nt,Q,J){switch(Q){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return K})();st.lexer=j;function dt(){this.yy={}}return dt.prototype=st,st.Parser=dt,new dt})();ao.parser=ao;const bk=ao,Me=Ro();class kk{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var e,i,r,s,n,a,o,l,h,u,p,d,g,y,x,_,w,E;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((e=$t.quadrantChart)==null?void 0:e.chartWidth)||500,chartWidth:((i=$t.quadrantChart)==null?void 0:i.chartHeight)||500,titlePadding:((r=$t.quadrantChart)==null?void 0:r.titlePadding)||10,titleFontSize:((s=$t.quadrantChart)==null?void 0:s.titleFontSize)||20,quadrantPadding:((n=$t.quadrantChart)==null?void 0:n.quadrantPadding)||5,xAxisLabelPadding:((a=$t.quadrantChart)==null?void 0:a.xAxisLabelPadding)||5,yAxisLabelPadding:((o=$t.quadrantChart)==null?void 0:o.yAxisLabelPadding)||5,xAxisLabelFontSize:((l=$t.quadrantChart)==null?void 0:l.xAxisLabelFontSize)||16,yAxisLabelFontSize:((h=$t.quadrantChart)==null?void 0:h.yAxisLabelFontSize)||16,quadrantLabelFontSize:((u=$t.quadrantChart)==null?void 0:u.quadrantLabelFontSize)||16,quadrantTextTopPadding:((p=$t.quadrantChart)==null?void 0:p.quadrantTextTopPadding)||5,pointTextPadding:((d=$t.quadrantChart)==null?void 0:d.pointTextPadding)||5,pointLabelFontSize:((g=$t.quadrantChart)==null?void 0:g.pointLabelFontSize)||12,pointRadius:((y=$t.quadrantChart)==null?void 0:y.pointRadius)||5,xAxisPosition:((x=$t.quadrantChart)==null?void 0:x.xAxisPosition)||"top",yAxisPosition:((_=$t.quadrantChart)==null?void 0:_.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((w=$t.quadrantChart)==null?void 0:w.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((E=$t.quadrantChart)==null?void 0:E.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:Me.quadrant1Fill,quadrant2Fill:Me.quadrant2Fill,quadrant3Fill:Me.quadrant3Fill,quadrant4Fill:Me.quadrant4Fill,quadrant1TextFill:Me.quadrant1TextFill,quadrant2TextFill:Me.quadrant2TextFill,quadrant3TextFill:Me.quadrant3TextFill,quadrant4TextFill:Me.quadrant4TextFill,quadrantPointFill:Me.quadrantPointFill,quadrantPointTextFill:Me.quadrantPointTextFill,quadrantXAxisTextFill:Me.quadrantXAxisTextFill,quadrantYAxisTextFill:Me.quadrantYAxisTextFill,quadrantTitleFill:Me.quadrantTitleFill,quadrantInternalBorderStrokeFill:Me.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:Me.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),B.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}setConfig(e){B.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){B.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,i,r,s){const n=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,a={top:e==="top"&&i?n:0,bottom:e==="bottom"&&i?n:0},o=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,l={left:this.config.yAxisPosition==="left"&&r?o:0,right:this.config.yAxisPosition==="right"&&r?o:0},h=this.config.titleFontSize+this.config.titlePadding*2,u={top:s?h:0},p=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+a.top+u.top,g=this.config.chartWidth-this.config.quadrantPadding*2-l.left-l.right,y=this.config.chartHeight-this.config.quadrantPadding*2-a.top-a.bottom-u.top,x=g/2,_=y/2;return{xAxisSpace:a,yAxisSpace:l,titleSpace:u,quadrantSpace:{quadrantLeft:p,quadrantTop:d,quadrantWidth:g,quadrantHalfWidth:x,quadrantHeight:y,quadrantHalfHeight:_}}}getAxisLabels(e,i,r,s){const{quadrantSpace:n,titleSpace:a}=s,{quadrantHalfHeight:o,quadrantHeight:l,quadrantLeft:h,quadrantHalfWidth:u,quadrantTop:p,quadrantWidth:d}=n,g=!!this.data.xAxisRightText,y=!!this.data.yAxisTopText,x=[];return this.data.xAxisLeftText&&i&&x.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(g?u/2:0),y:e==="top"?this.config.xAxisLabelPadding+a.top:this.config.xAxisLabelPadding+p+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&i&&x.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+u+(g?u/2:0),y:e==="top"?this.config.xAxisLabelPadding+a.top:this.config.xAxisLabelPadding+p+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&r&&x.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+d+this.config.quadrantPadding,y:p+l-(y?o/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&r&&x.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+d+this.config.quadrantPadding,y:p+o-(y?o/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:-90}),x}getQuadrants(e){const{quadrantSpace:i}=e,{quadrantHalfHeight:r,quadrantLeft:s,quadrantHalfWidth:n,quadrantTop:a}=i,o=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:s+n,y:a,width:n,height:r,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:s,y:a,width:n,height:r,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:s,y:a+r,width:n,height:r,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:s+n,y:a+r,width:n,height:r,fill:this.themeConfig.quadrant4Fill}];for(const l of o)l.text.x=l.x+l.width/2,this.data.points.length===0?(l.text.y=l.y+l.height/2,l.text.horizontalPos="middle"):(l.text.y=l.y+this.config.quadrantTextTopPadding,l.text.horizontalPos="top");return o}getQuadrantPoints(e){const{quadrantSpace:i}=e,{quadrantHeight:r,quadrantLeft:s,quadrantTop:n,quadrantWidth:a}=i,o=Bs().domain([0,1]).range([s,a+s]),l=Bs().domain([0,1]).range([r+n,n]);return this.data.points.map(u=>({x:o(u.x),y:l(u.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:u.text,fill:this.themeConfig.quadrantPointTextFill,x:o(u.x),y:l(u.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(e){const i=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:r}=e,{quadrantHalfHeight:s,quadrantHeight:n,quadrantLeft:a,quadrantHalfWidth:o,quadrantTop:l,quadrantWidth:h}=r;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:a-i,y1:l,x2:a+h+i,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:a+h,y1:l+i,x2:a+h,y2:l+n-i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:a-i,y1:l+n,x2:a+h+i,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:a,y1:l+i,x2:a,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:a+o,y1:l+i,x2:a+o,y2:l+n-i},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:a+i,y1:l+s,x2:a+h-i,y2:l+s}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),i=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),r=this.config.showTitle&&!!this.data.titleText,s=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(s,e,i,r);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(s,e,i,n),borderLines:this.getBorders(n),title:this.getTitle(r)}}}const _k=Y();function rr(t){return te(t.trim(),_k)}const Fe=new kk;function Tk(t){Fe.setData({quadrant1Text:rr(t.text)})}function Ck(t){Fe.setData({quadrant2Text:rr(t.text)})}function Ek(t){Fe.setData({quadrant3Text:rr(t.text)})}function Sk(t){Fe.setData({quadrant4Text:rr(t.text)})}function wk(t){Fe.setData({xAxisLeftText:rr(t.text)})}function vk(t){Fe.setData({xAxisRightText:rr(t.text)})}function Ak(t){Fe.setData({yAxisTopText:rr(t.text)})}function Lk(t){Fe.setData({yAxisBottomText:rr(t.text)})}function Bk(t,e,i){Fe.addPoints([{x:e,y:i,text:rr(t.text)}])}function Ik(t){Fe.setConfig({chartWidth:t})}function Dk(t){Fe.setConfig({chartHeight:t})}function Fk(){const t=Y(),{themeVariables:e,quadrantChart:i}=t;return i&&Fe.setConfig(i),Fe.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),Fe.setData({titleText:Ge()}),Fe.build()}const Rk=function(){Fe.clear(),Oe()},Nk={setWidth:Ik,setHeight:Dk,setQuadrant1Text:Tk,setQuadrant2Text:Ck,setQuadrant3Text:Ek,setQuadrant4Text:Sk,setXAxisLeftText:wk,setXAxisRightText:vk,setYAxisTopText:Ak,setYAxisBottomText:Lk,addPoint:Bk,getQuadrantData:Fk,clear:Rk,setAccTitle:Pe,getAccTitle:Ye,setDiagramTitle:ri,getDiagramTitle:Ge,getAccDescription:He,setAccDescription:Ue},Ok=(t,e,i,r)=>{var s,n,a;function o(f){return f==="top"?"hanging":"middle"}function l(f){return f==="left"?"start":"middle"}function h(f){return`translate(${f.x}, ${f.y}) rotate(${f.rotation||0})`}const u=Y();B.debug(`Rendering quadrant chart +`+t);const p=u.securityLevel;let d;p==="sandbox"&&(d=yt("#i"+e));const y=(p==="sandbox"?yt(d.nodes()[0].contentDocument.body):yt("body")).select(`[id="${e}"]`),x=y.append("g").attr("class","main"),_=((s=u.quadrantChart)==null?void 0:s.chartWidth)||500,w=((n=u.quadrantChart)==null?void 0:n.chartHeight)||500;Ne(y,w,_,((a=u.quadrantChart)==null?void 0:a.useMaxWidth)||!0),y.attr("viewBox","0 0 "+_+" "+w),r.db.setHeight(w),r.db.setWidth(_);const E=r.db.getQuadrantData(),R=x.append("g").attr("class","quadrants"),v=x.append("g").attr("class","border"),T=x.append("g").attr("class","data-points"),k=x.append("g").attr("class","labels"),A=x.append("g").attr("class","title");E.title&&A.append("text").attr("x",0).attr("y",0).attr("fill",E.title.fill).attr("font-size",E.title.fontSize).attr("dominant-baseline",o(E.title.horizontalPos)).attr("text-anchor",l(E.title.verticalPos)).attr("transform",h(E.title)).text(E.title.text),E.borderLines&&v.selectAll("line").data(E.borderLines).enter().append("line").attr("x1",f=>f.x1).attr("y1",f=>f.y1).attr("x2",f=>f.x2).attr("y2",f=>f.y2).style("stroke",f=>f.strokeFill).style("stroke-width",f=>f.strokeWidth);const S=R.selectAll("g.quadrant").data(E.quadrants).enter().append("g").attr("class","quadrant");S.append("rect").attr("x",f=>f.x).attr("y",f=>f.y).attr("width",f=>f.width).attr("height",f=>f.height).attr("fill",f=>f.fill),S.append("text").attr("x",0).attr("y",0).attr("fill",f=>f.text.fill).attr("font-size",f=>f.text.fontSize).attr("dominant-baseline",f=>o(f.text.horizontalPos)).attr("text-anchor",f=>l(f.text.verticalPos)).attr("transform",f=>h(f.text)).text(f=>f.text.text),k.selectAll("g.label").data(E.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(f=>f.text).attr("fill",f=>f.fill).attr("font-size",f=>f.fontSize).attr("dominant-baseline",f=>o(f.horizontalPos)).attr("text-anchor",f=>l(f.verticalPos)).attr("transform",f=>h(f));const C=T.selectAll("g.data-point").data(E.points).enter().append("g").attr("class","data-point");C.append("circle").attr("cx",f=>f.x).attr("cy",f=>f.y).attr("r",f=>f.radius).attr("fill",f=>f.fill),C.append("text").attr("x",0).attr("y",0).text(f=>f.text.text).attr("fill",f=>f.text.fill).attr("font-size",f=>f.text.fontSize).attr("dominant-baseline",f=>o(f.text.horizontalPos)).attr("text-anchor",f=>l(f.text.verticalPos)).attr("transform",f=>h(f.text))},Pk={draw:Ok},Mk={parser:bk,db:Nk,renderer:Pk,styles:()=>""},Vk=Object.freeze(Object.defineProperty({__proto__:null,diagram:Mk},Symbol.toStringTag,{value:"Module"}));var oo=(function(){var t=function(U,N,D,F){for(D=D||{},F=U.length;F--;D[U[F]]=N);return D},e=[1,10,12,14,16,18,19,21,23],i=[2,6],r=[1,3],s=[1,5],n=[1,6],a=[1,7],o=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],h=[1,26],u=[1,28],p=[1,29],d=[1,30],g=[1,31],y=[1,32],x=[1,33],_=[1,34],w=[1,35],E=[1,36],R=[1,37],v=[1,43],T=[1,42],k=[1,47],A=[1,50],S=[1,10,12,14,16,18,19,21,23,34,35,36],m=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],f=[1,64],L={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(N,D,F,I,M,z,st){var j=z.length-1;switch(M){case 5:I.setOrientation(z[j]);break;case 9:I.setDiagramTitle(z[j].text.trim());break;case 12:I.setLineData({text:"",type:"text"},z[j]);break;case 13:I.setLineData(z[j-1],z[j]);break;case 14:I.setBarData({text:"",type:"text"},z[j]);break;case 15:I.setBarData(z[j-1],z[j]);break;case 16:this.$=z[j].trim(),I.setAccTitle(this.$);break;case 17:case 18:this.$=z[j].trim(),I.setAccDescription(this.$);break;case 19:this.$=z[j-1];break;case 20:this.$=[Number(z[j-2]),...z[j]];break;case 21:this.$=[Number(z[j])];break;case 22:I.setXAxisTitle(z[j]);break;case 23:I.setXAxisTitle(z[j-1]);break;case 24:I.setXAxisTitle({type:"text",text:""});break;case 25:I.setXAxisBand(z[j]);break;case 26:I.setXAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 27:this.$=z[j-1];break;case 28:this.$=[z[j-2],...z[j]];break;case 29:this.$=[z[j]];break;case 30:I.setYAxisTitle(z[j]);break;case 31:I.setYAxisTitle(z[j-1]);break;case 32:I.setYAxisTitle({type:"text",text:""});break;case 33:I.setYAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 37:this.$={text:z[j],type:"text"};break;case 38:this.$={text:z[j],type:"text"};break;case 39:this.$={text:z[j],type:"markdown"};break;case 40:this.$=z[j];break;case 41:this.$=z[j-1]+""+z[j];break}},table:[t(e,i,{3:1,4:2,7:4,5:r,34:s,35:n,36:a}),{1:[3]},t(e,i,{4:2,7:4,3:8,5:r,34:s,35:n,36:a}),t(e,i,{4:2,7:4,6:9,3:10,5:r,8:[1,11],34:s,35:n,36:a}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(o,[2,34]),t(o,[2,35]),t(o,[2,36]),{1:[2,1]},t(e,i,{4:2,7:4,3:21,5:r,34:s,35:n,36:a}),{1:[2,3]},t(o,[2,5]),t(e,[2,7],{4:22,34:s,35:n,36:a}),{11:23,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},{11:39,13:38,24:v,27:T,29:40,30:41,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},{11:45,15:44,27:k,33:46,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},{11:49,17:48,24:A,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},{11:52,17:51,24:A,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},{20:[1,53]},{22:[1,54]},t(S,[2,18]),{1:[2,2]},t(S,[2,8]),t(S,[2,9]),t(m,[2,37],{40:55,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R}),t(m,[2,38]),t(m,[2,39]),t(C,[2,40]),t(C,[2,42]),t(C,[2,43]),t(C,[2,44]),t(C,[2,45]),t(C,[2,46]),t(C,[2,47]),t(C,[2,48]),t(C,[2,49]),t(C,[2,50]),t(C,[2,51]),t(S,[2,10]),t(S,[2,22],{30:41,29:56,24:v,27:T}),t(S,[2,24]),t(S,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},t(S,[2,11]),t(S,[2,30],{33:60,27:k}),t(S,[2,32]),{31:[1,61]},t(S,[2,12]),{17:62,24:A},{25:63,27:f},t(S,[2,14]),{17:65,24:A},t(S,[2,16]),t(S,[2,17]),t(C,[2,41]),t(S,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(S,[2,31]),{27:[1,69]},t(S,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(S,[2,15]),t(S,[2,26]),t(S,[2,27]),{11:59,32:72,37:24,38:l,39:h,40:27,41:u,42:p,43:d,44:g,45:y,46:x,47:_,48:w,49:E,50:R},t(S,[2,33]),t(S,[2,19]),{25:73,27:f},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(N,D){if(D.recoverable)this.trace(N);else{var F=new Error(N);throw F.hash=D,F}},parse:function(N){var D=this,F=[0],I=[],M=[null],z=[],st=this.table,j="",dt=0,K=0,G=2,tt=1,nt=z.slice.call(arguments,1),Q=Object.create(this.lexer),J={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(J.yy[O]=this.yy[O]);Q.setInput(N,J.yy),J.yy.lexer=Q,J.yy.parser=this,typeof Q.yylloc>"u"&&(Q.yylloc={});var at=Q.yylloc;z.push(at);var W=Q.options&&Q.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(){var ot;return ot=I.pop()||Q.lex()||tt,typeof ot!="number"&&(ot instanceof Array&&(I=ot,ot=I.pop()),ot=D.symbols_[ot]||ot),ot}for(var V,vt,X,St,bt={},Vt,Bt,Wt,pt;;){if(vt=F[F.length-1],this.defaultActions[vt]?X=this.defaultActions[vt]:((V===null||typeof V>"u")&&(V=ft()),X=st[vt]&&st[vt][V]),typeof X>"u"||!X.length||!X[0]){var ut="";pt=[];for(Vt in st[vt])this.terminals_[Vt]&&Vt>G&&pt.push("'"+this.terminals_[Vt]+"'");Q.showPosition?ut="Parse error on line "+(dt+1)+`: +`+Q.showPosition()+` +Expecting `+pt.join(", ")+", got '"+(this.terminals_[V]||V)+"'":ut="Parse error on line "+(dt+1)+": Unexpected "+(V==tt?"end of input":"'"+(this.terminals_[V]||V)+"'"),this.parseError(ut,{text:Q.match,token:this.terminals_[V]||V,line:Q.yylineno,loc:at,expected:pt})}if(X[0]instanceof Array&&X.length>1)throw new Error("Parse Error: multiple actions possible at state: "+vt+", token: "+V);switch(X[0]){case 1:F.push(V),M.push(Q.yytext),z.push(Q.yylloc),F.push(X[1]),V=null,K=Q.yyleng,j=Q.yytext,dt=Q.yylineno,at=Q.yylloc;break;case 2:if(Bt=this.productions_[X[1]][1],bt.$=M[M.length-Bt],bt._$={first_line:z[z.length-(Bt||1)].first_line,last_line:z[z.length-1].last_line,first_column:z[z.length-(Bt||1)].first_column,last_column:z[z.length-1].last_column},W&&(bt._$.range=[z[z.length-(Bt||1)].range[0],z[z.length-1].range[1]]),St=this.performAction.apply(bt,[j,K,dt,J.yy,X[1],M,z].concat(nt)),typeof St<"u")return St;Bt&&(F=F.slice(0,-1*Bt*2),M=M.slice(0,-1*Bt),z=z.slice(0,-1*Bt)),F.push(this.productions_[X[1]][0]),M.push(bt.$),z.push(bt._$),Wt=st[F[F.length-2]][F[F.length-1]],F.push(Wt);break;case 3:return!0}}return!0}},b=(function(){var U={EOF:1,parseError:function(D,F){if(this.yy.parser)this.yy.parser.parseError(D,F);else throw new Error(D)},setInput:function(N,D){return this.yy=D||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 D=N.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),N},unput:function(N){var D=N.length,F=N.split(/(?:\r\n?|\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-D),this.offset-=D;var I=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 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:F?(F.length===I.length?this.yylloc.first_column:0)+I[I.length-F.length].length-F[0].length:this.yylloc.first_column-D},this.options.ranges&&(this.yylloc.range=[M[0],M[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(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(),D=new Array(N.length+1).join("-");return N+this.upcomingInput()+` +`+D+"^"},test_match:function(N,D){var F,I,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),I=N[0].match(/(?:\r\n?|\n).*/g),I&&(this.yylineno+=I.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:I?I[I.length-1].length-I[I.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],F=this.performAction.call(this,this.yy,this,D,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var z in M)this[z]=M[z];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,D,F,I;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),z=0;zD[0].length)){if(D=F,I=z,this.options.backtrack_lexer){if(N=this.test_match(F,M[z]),N!==!1)return N;if(this._backtrack){D=!1;continue}else return!1}else if(!this.options.flex)break}return D?(N=this.test_match(D,M[I]),N!==!1?N:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var D=this.next();return D||this.lex()},begin:function(D){this.conditionStack.push(D)},popState:function(){var D=this.conditionStack.length-1;return D>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(D){return D=this.conditionStack.length-1-Math.abs(D||0),D>=0?this.conditionStack[D]:"INITIAL"},pushState:function(D){this.begin(D)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(D,F,I,M){switch(I){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return U})();L.lexer=b;function P(){this.yy={}}return P.prototype=L,L.Parser=P,new P})();oo.parser=oo;const zk=oo;function Dc(t){return t.type==="bar"}function g0(t){return t.type==="band"}function Es(t){return t.type==="linear"}class y0{constructor(e){this.parentGroup=e}getMaxDimension(e,i){if(!this.parentGroup)return{width:e.reduce((n,a)=>Math.max(a.length,n),0)*i,height:i};const r={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const n of e){const a=Lx(s,1,n),o=a?a.width:n.length*i,l=a?a.height:i;r.width=Math.max(r.width,o),r.height=Math.max(r.height,l)}return s.remove(),r}}const Fc=.7,Rc=.2;class m0{constructor(e,i,r,s){this.axisConfig=e,this.title=i,this.textDimensionCalculator=r,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){const e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){Fc*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(Fc*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let i=e.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const r=this.getLabelDimension(),s=Rc*e.width;this.outerPadding=Math.min(r.width/2,s);const n=r.height+this.axisConfig.labelPadding*2;this.labelTextHeight=r.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const r=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=r.height+this.axisConfig.titlePadding*2;this.titleTextHeight=r.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-i}calculateSpaceIfDrawnVertical(e){let i=e.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const r=this.getLabelDimension(),s=Rc*e.height;this.outerPadding=Math.min(r.height/2,s);const n=r.width+this.axisConfig.labelPadding*2;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const r=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=r.height+this.axisConfig.titlePadding*2;this.titleTextHeight=r.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=e.width-i,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){const e=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(r=>({path:`M ${i},${this.getScaleValue(r)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(r)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){const e=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(r=>({path:`M ${this.getScaleValue(r)},${i} L ${this.getScaleValue(r)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){const e=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(r=>({path:`M ${this.getScaleValue(r)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(r)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class qk extends m0{constructor(e,i,r,s,n){super(e,s,n,i),this.categories=r,this.scale=Yl().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Yl().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),B.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)||this.getRange()[0]}}class Wk extends m0{constructor(e,i,r,s,n){super(e,s,n,i),this.domain=r,this.scale=Bs().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=Bs().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}function Nc(t,e,i,r){const s=new y0(r);return g0(t)?new qk(e,i,t.categories,t.title,s):new Wk(e,i,[t.min,t.max],t.title,s)}class Yk{constructor(e,i,r,s){this.textDimensionCalculator=e,this.chartConfig=i,this.chartData=r,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),r=Math.max(i.width,e.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=r&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=r,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}}function Uk(t,e,i,r){const s=new y0(r);return new Yk(s,t,e,i)}class Hk{constructor(e,i,r,s,n){this.plotData=e,this.xAxis=i,this.yAxis=r,this.orientation=s,this.plotIndex=n}getDrawableElement(){const e=this.plotData.data.map(r=>[this.xAxis.getScaleValue(r[0]),this.yAxis.getScaleValue(r[1])]);let i;return this.orientation==="horizontal"?i=fr().y(r=>r[0]).x(r=>r[1])(e):i=fr().x(r=>r[0]).y(r=>r[1])(e),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class Gk{constructor(e,i,r,s,n,a){this.barData=e,this.boundingRect=i,this.xAxis=r,this.yAxis=s,this.orientation=n,this.plotIndex=a}getDrawableElement(){const e=this.barData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),s=r/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(n=>({x:this.boundingRect.x,y:n[0]-s,height:r,width:n[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(n=>({x:n[0]-s,y:n[1],width:r,height:this.boundingRect.y+this.boundingRect.height-n[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class jk{constructor(e,i,r){this.chartConfig=e,this.chartData=i,this.chartThemeConfig=r,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(e,i){this.xAxis=e,this.yAxis=i}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const e=[];for(const[i,r]of this.chartData.plots.entries())switch(r.type){case"line":{const s=new Hk(r,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);e.push(...s.getDrawableElement())}break;case"bar":{const s=new Gk(r,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);e.push(...s.getDrawableElement())}break}return e}}function Xk(t,e,i){return new jk(t,e,i)}class $k{constructor(e,i,r,s){this.chartConfig=e,this.chartData=i,this.componentStore={title:Uk(e,i,r,s),plot:Xk(e,i,r),xAxis:Nc(i.xAxis,e.xAxis,{titleColor:r.xAxisTitleColor,labelColor:r.xAxisLabelColor,tickColor:r.xAxisTickColor,axisLineColor:r.xAxisLineColor},s),yAxis:Nc(i.yAxis,e.yAxis,{titleColor:r.yAxisTitleColor,labelColor:r.yAxisLabelColor,tickColor:r.yAxisTickColor,axisLineColor:r.yAxisLineColor},s)}}calculateVerticalSpace(){let e=this.chartConfig.width,i=this.chartConfig.height,r=0,s=0,n=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:n,height:a});e-=o.width,i-=o.height,o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=o.height,i-=o.height,this.componentStore.xAxis.setAxisPosition("bottom"),o=this.componentStore.xAxis.calculateSpace({width:e,height:i}),i-=o.height,this.componentStore.yAxis.setAxisPosition("left"),o=this.componentStore.yAxis.calculateSpace({width:e,height:i}),r=o.width,e-=o.width,e>0&&(n+=e,e=0),i>0&&(a+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:a}),this.componentStore.plot.setBoundingBoxXY({x:r,y:s}),this.componentStore.xAxis.setRange([r,r+n]),this.componentStore.xAxis.setBoundingBoxXY({x:r,y:s+a}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(l=>Dc(l))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,i=this.chartConfig.height,r=0,s=0,n=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),o=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:o});e-=l.width,i-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),r=l.height,i-=l.height,this.componentStore.xAxis.setAxisPosition("left"),l=this.componentStore.xAxis.calculateSpace({width:e,height:i}),e-=l.width,s=l.width,this.componentStore.yAxis.setAxisPosition("top"),l=this.componentStore.yAxis.calculateSpace({width:e,height:i}),i-=l.height,n=r+l.height,e>0&&(a+=e,e=0),i>0&&(o+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:o}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:r}),this.componentStore.xAxis.setRange([n,n+o]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(h=>Dc(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))e.push(...i.getDrawableElements());return e}}class Kk{static build(e,i,r,s){return new $k(e,i,r,s).getDrawableElement()}}let Ms=0,x0,Vs=k0(),zs=b0(),Ht=_0(),lo=zs.plotColorPalette.split(",").map(t=>t.trim()),ya=!1,ml=!1;function b0(){const t=Ro(),e=ee();return Qs(t.xyChart,e.themeVariables.xyChart)}function k0(){const t=ee();return Qs($t.xyChart,t.xyChart)}function _0(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function xl(t){const e=ee();return te(t.trim(),e)}function Qk(t){x0=t}function Zk(t){t==="horizontal"?Vs.chartOrientation="horizontal":Vs.chartOrientation="vertical"}function Jk(t){Ht.xAxis.title=xl(t.text)}function T0(t,e){Ht.xAxis={type:"linear",title:Ht.xAxis.title,min:t,max:e},ya=!0}function t6(t){Ht.xAxis={type:"band",title:Ht.xAxis.title,categories:t.map(e=>xl(e.text))},ya=!0}function e6(t){Ht.yAxis.title=xl(t.text)}function i6(t,e){Ht.yAxis={type:"linear",title:Ht.yAxis.title,min:t,max:e},ml=!0}function r6(t){const e=Math.min(...t),i=Math.max(...t),r=Es(Ht.yAxis)?Ht.yAxis.min:1/0,s=Es(Ht.yAxis)?Ht.yAxis.max:-1/0;Ht.yAxis={type:"linear",title:Ht.yAxis.title,min:Math.min(r,e),max:Math.max(s,i)}}function C0(t){let e=[];if(t.length===0)return e;if(!ya){const i=Es(Ht.xAxis)?Ht.xAxis.min:1/0,r=Es(Ht.xAxis)?Ht.xAxis.max:-1/0;T0(Math.min(i,1),Math.max(r,t.length))}if(ml||r6(t),g0(Ht.xAxis)&&(e=Ht.xAxis.categories.map((i,r)=>[i,t[r]])),Es(Ht.xAxis)){const i=Ht.xAxis.min,r=Ht.xAxis.max,s=(r-i+1)/t.length,n=[];for(let a=i;a<=r;a+=s)n.push(`${a}`);e=n.map((a,o)=>[a,t[o]])}return e}function E0(t){return lo[t===0?0:t%lo.length]}function s6(t,e){const i=C0(e);Ht.plots.push({type:"line",strokeFill:E0(Ms),strokeWidth:2,data:i}),Ms++}function n6(t,e){const i=C0(e);Ht.plots.push({type:"bar",fill:E0(Ms),data:i}),Ms++}function a6(){if(Ht.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return Ht.title=Ge(),Kk.build(Vs,Ht,zs,x0)}function o6(){return zs}function l6(){return Vs}const c6=function(){Oe(),Ms=0,Vs=k0(),Ht=_0(),zs=b0(),lo=zs.plotColorPalette.split(",").map(t=>t.trim()),ya=!1,ml=!1},h6={getDrawableElem:a6,clear:c6,setAccTitle:Pe,getAccTitle:Ye,setDiagramTitle:ri,getDiagramTitle:Ge,getAccDescription:He,setAccDescription:Ue,setOrientation:Zk,setXAxisTitle:Jk,setXAxisRangeData:T0,setXAxisBand:t6,setYAxisTitle:e6,setYAxisRangeData:i6,setLineData:s6,setBarData:n6,setTmpSVGG:Qk,getChartThemeConfig:o6,getChartConfig:l6},u6=(t,e,i,r)=>{const s=r.db,n=s.getChartThemeConfig(),a=s.getChartConfig();function o(_){return _==="top"?"text-before-edge":"middle"}function l(_){return _==="left"?"start":_==="right"?"end":"middle"}function h(_){return`translate(${_.x}, ${_.y}) rotate(${_.rotation||0})`}B.debug(`Rendering xychart chart +`+t);const u=Zs(e),p=u.append("g").attr("class","main"),d=p.append("rect").attr("width",a.width).attr("height",a.height).attr("class","background");Ne(u,a.height,a.width,!0),u.attr("viewBox",`0 0 ${a.width} ${a.height}`),d.attr("fill",n.backgroundColor),s.setTmpSVGG(u.append("g").attr("class","mermaid-tmp-group"));const g=s.getDrawableElem(),y={};function x(_){let w=p,E="";for(const[R]of _.entries()){let v=p;R>0&&y[E]&&(v=y[E]),E+=_[R],w=y[E],w||(w=y[E]=v.append("g").attr("class",_[R]))}return w}for(const _ of g){if(_.data.length===0)continue;const w=x(_.groupTexts);switch(_.type){case"rect":w.selectAll("rect").data(_.data).enter().append("rect").attr("x",E=>E.x).attr("y",E=>E.y).attr("width",E=>E.width).attr("height",E=>E.height).attr("fill",E=>E.fill).attr("stroke",E=>E.strokeFill).attr("stroke-width",E=>E.strokeWidth);break;case"text":w.selectAll("text").data(_.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",E=>E.fill).attr("font-size",E=>E.fontSize).attr("dominant-baseline",E=>o(E.verticalPos)).attr("text-anchor",E=>l(E.horizontalPos)).attr("transform",E=>h(E)).text(E=>E.text);break;case"path":w.selectAll("path").data(_.data).enter().append("path").attr("d",E=>E.path).attr("fill",E=>E.fill?E.fill:"none").attr("stroke",E=>E.strokeFill).attr("stroke-width",E=>E.strokeWidth);break}}},d6={draw:u6},f6={parser:zk,db:h6,renderer:d6},p6=Object.freeze(Object.defineProperty({__proto__:null,diagram:f6},Symbol.toStringTag,{value:"Module"}));var co=(function(){var t=function(K,G,tt,nt){for(tt=tt||{},nt=K.length;nt--;tt[K[nt]]=G);return tt},e=[1,3],i=[1,4],r=[1,5],s=[1,6],n=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],a=[1,18],o=[2,7],l=[1,22],h=[1,23],u=[1,24],p=[1,25],d=[1,26],g=[1,27],y=[1,20],x=[1,28],_=[1,29],w=[62,63],E=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],R=[1,47],v=[1,48],T=[1,49],k=[1,50],A=[1,51],S=[1,52],m=[1,53],C=[53,54],f=[1,64],L=[1,60],b=[1,61],P=[1,62],U=[1,63],N=[1,65],D=[1,69],F=[1,70],I=[1,67],M=[1,68],z=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],st={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(G,tt,nt,Q,J,O,at){var W=O.length-1;switch(J){case 4:this.$=O[W].trim(),Q.setAccTitle(this.$);break;case 5:case 6:this.$=O[W].trim(),Q.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:Q.addRequirement(O[W-3],O[W-4]);break;case 14:Q.setNewReqId(O[W-2]);break;case 15:Q.setNewReqText(O[W-2]);break;case 16:Q.setNewReqRisk(O[W-2]);break;case 17:Q.setNewReqVerifyMethod(O[W-2]);break;case 20:this.$=Q.RequirementType.REQUIREMENT;break;case 21:this.$=Q.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=Q.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=Q.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=Q.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=Q.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=Q.RiskLevel.LOW_RISK;break;case 27:this.$=Q.RiskLevel.MED_RISK;break;case 28:this.$=Q.RiskLevel.HIGH_RISK;break;case 29:this.$=Q.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=Q.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=Q.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=Q.VerifyType.VERIFY_TEST;break;case 33:Q.addElement(O[W-3]);break;case 34:Q.setNewElementType(O[W-2]);break;case 35:Q.setNewElementDocRef(O[W-2]);break;case 38:Q.addRelationship(O[W-2],O[W],O[W-4]);break;case 39:Q.addRelationship(O[W-2],O[W-4],O[W]);break;case 40:this.$=Q.Relationships.CONTAINS;break;case 41:this.$=Q.Relationships.COPIES;break;case 42:this.$=Q.Relationships.DERIVES;break;case 43:this.$=Q.Relationships.SATISFIES;break;case 44:this.$=Q.Relationships.VERIFIES;break;case 45:this.$=Q.Relationships.REFINES;break;case 46:this.$=Q.Relationships.TRACES;break}},table:[{3:1,4:2,6:e,9:i,11:r,13:s},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:i,11:r,13:s},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(n,[2,6]),{3:12,4:2,6:e,9:i,11:r,13:s},{1:[2,2]},{4:17,5:a,7:13,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},t(n,[2,4]),t(n,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:a,7:31,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},{4:17,5:a,7:32,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},{4:17,5:a,7:33,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},{4:17,5:a,7:34,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},{4:17,5:a,7:35,8:o,9:i,11:r,13:s,14:14,15:15,16:16,17:19,23:21,31:l,32:h,33:u,34:p,35:d,36:g,44:y,62:x,63:_},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(w,[2,20]),t(w,[2,21]),t(w,[2,22]),t(w,[2,23]),t(w,[2,24]),t(w,[2,25]),t(E,[2,49]),t(E,[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:R,56:v,57:T,58:k,59:A,60:S,61:m},{52:54,55:R,56:v,57:T,58:k,59:A,60:S,61:m},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(C,[2,40]),t(C,[2,41]),t(C,[2,42]),t(C,[2,43]),t(C,[2,44]),t(C,[2,45]),t(C,[2,46]),{54:[1,58]},{5:f,20:59,21:L,24:b,26:P,28:U,30:N},{5:D,30:F,46:66,47:I,49:M},{23:71,62:x,63:_},{23:72,62:x,63:_},t(z,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:f,20:77,21:L,24:b,26:P,28:U,30:N},t(z,[2,19]),t(z,[2,33]),{22:[1,78]},{22:[1,79]},{5:D,30:F,46:80,47:I,49:M},t(z,[2,37]),t(z,[2,38]),t(z,[2,39]),{23:81,62:x,63:_},{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]},t(z,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(z,[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:f,20:106,21:L,24:b,26:P,28:U,30:N},{5:f,20:107,21:L,24:b,26:P,28:U,30:N},{5:f,20:108,21:L,24:b,26:P,28:U,30:N},{5:f,20:109,21:L,24:b,26:P,28:U,30:N},{5:D,30:F,46:110,47:I,49:M},{5:D,30:F,46:111,47:I,49:M},t(z,[2,14]),t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),t(z,[2,34]),t(z,[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(G,tt){if(tt.recoverable)this.trace(G);else{var nt=new Error(G);throw nt.hash=tt,nt}},parse:function(G){var tt=this,nt=[0],Q=[],J=[null],O=[],at=this.table,W="",ft=0,V=0,vt=2,X=1,St=O.slice.call(arguments,1),bt=Object.create(this.lexer),Vt={yy:{}};for(var Bt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Bt)&&(Vt.yy[Bt]=this.yy[Bt]);bt.setInput(G,Vt.yy),Vt.yy.lexer=bt,Vt.yy.parser=this,typeof bt.yylloc>"u"&&(bt.yylloc={});var Wt=bt.yylloc;O.push(Wt);var pt=bt.options&&bt.options.ranges;typeof Vt.yy.parseError=="function"?this.parseError=Vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var zt;return zt=Q.pop()||bt.lex()||X,typeof zt!="number"&&(zt instanceof Array&&(Q=zt,zt=Q.pop()),zt=tt.symbols_[zt]||zt),zt}for(var ot,lt,ht,$,rt={},it,ct,re,Qt;;){if(lt=nt[nt.length-1],this.defaultActions[lt]?ht=this.defaultActions[lt]:((ot===null||typeof ot>"u")&&(ot=ut()),ht=at[lt]&&at[lt][ot]),typeof ht>"u"||!ht.length||!ht[0]){var de="";Qt=[];for(it in at[lt])this.terminals_[it]&&it>vt&&Qt.push("'"+this.terminals_[it]+"'");bt.showPosition?de="Parse error on line "+(ft+1)+`: +`+bt.showPosition()+` +Expecting `+Qt.join(", ")+", got '"+(this.terminals_[ot]||ot)+"'":de="Parse error on line "+(ft+1)+": Unexpected "+(ot==X?"end of input":"'"+(this.terminals_[ot]||ot)+"'"),this.parseError(de,{text:bt.match,token:this.terminals_[ot]||ot,line:bt.yylineno,loc:Wt,expected:Qt})}if(ht[0]instanceof Array&&ht.length>1)throw new Error("Parse Error: multiple actions possible at state: "+lt+", token: "+ot);switch(ht[0]){case 1:nt.push(ot),J.push(bt.yytext),O.push(bt.yylloc),nt.push(ht[1]),ot=null,V=bt.yyleng,W=bt.yytext,ft=bt.yylineno,Wt=bt.yylloc;break;case 2:if(ct=this.productions_[ht[1]][1],rt.$=J[J.length-ct],rt._$={first_line:O[O.length-(ct||1)].first_line,last_line:O[O.length-1].last_line,first_column:O[O.length-(ct||1)].first_column,last_column:O[O.length-1].last_column},pt&&(rt._$.range=[O[O.length-(ct||1)].range[0],O[O.length-1].range[1]]),$=this.performAction.apply(rt,[W,V,ft,Vt.yy,ht[1],J,O].concat(St)),typeof $<"u")return $;ct&&(nt=nt.slice(0,-1*ct*2),J=J.slice(0,-1*ct),O=O.slice(0,-1*ct)),nt.push(this.productions_[ht[1]][0]),J.push(rt.$),O.push(rt._$),re=at[nt[nt.length-2]][nt[nt.length-1]],nt.push(re);break;case 3:return!0}}return!0}},j=(function(){var K={EOF:1,parseError:function(tt,nt){if(this.yy.parser)this.yy.parser.parseError(tt,nt);else throw new Error(tt)},setInput:function(G,tt){return this.yy=tt||this.yy||{},this._input=G,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 G=this._input[0];this.yytext+=G,this.yyleng++,this.offset++,this.match+=G,this.matched+=G;var tt=G.match(/(?:\r\n?|\n).*/g);return tt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),G},unput:function(G){var tt=G.length,nt=G.split(/(?:\r\n?|\n)/g);this._input=G+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-tt),this.offset-=tt;var Q=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),nt.length-1&&(this.yylineno-=nt.length-1);var J=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:nt?(nt.length===Q.length?this.yylloc.first_column:0)+Q[Q.length-nt.length].length-nt[0].length:this.yylloc.first_column-tt},this.options.ranges&&(this.yylloc.range=[J[0],J[0]+this.yyleng-tt]),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(G){this.unput(this.match.slice(G))},pastInput:function(){var G=this.matched.substr(0,this.matched.length-this.match.length);return(G.length>20?"...":"")+G.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var G=this.match;return G.length<20&&(G+=this._input.substr(0,20-G.length)),(G.substr(0,20)+(G.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var G=this.pastInput(),tt=new Array(G.length+1).join("-");return G+this.upcomingInput()+` +`+tt+"^"},test_match:function(G,tt){var nt,Q,J;if(this.options.backtrack_lexer&&(J={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(J.yylloc.range=this.yylloc.range.slice(0))),Q=G[0].match(/(?:\r\n?|\n).*/g),Q&&(this.yylineno+=Q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Q?Q[Q.length-1].length-Q[Q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+G[0].length},this.yytext+=G[0],this.match+=G[0],this.matches=G,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(G[0].length),this.matched+=G[0],nt=this.performAction.call(this,this.yy,this,tt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),nt)return nt;if(this._backtrack){for(var O in J)this[O]=J[O];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var G,tt,nt,Q;this._more||(this.yytext="",this.match="");for(var J=this._currentRules(),O=0;Ott[0].length)){if(tt=nt,Q=O,this.options.backtrack_lexer){if(G=this.test_match(nt,J[O]),G!==!1)return G;if(this._backtrack){tt=!1;continue}else return!1}else if(!this.options.flex)break}return tt?(G=this.test_match(tt,J[Q]),G!==!1?G:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var tt=this.next();return tt||this.lex()},begin:function(tt){this.conditionStack.push(tt)},popState:function(){var tt=this.conditionStack.length-1;return tt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(tt){return tt=this.conditionStack.length-1-Math.abs(tt||0),tt>=0?this.conditionStack[tt]:"INITIAL"},pushState:function(tt){this.begin(tt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(tt,nt,Q,J){switch(Q){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return nt.yytext=nt.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return K})();st.lexer=j;function dt(){this.yy={}}return dt.prototype=st,st.Parser=dt,new dt})();co.parser=co;const g6=co;let bl=[],Qe={},Ss={},dr={},ws={};const y6={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},m6={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},x6={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},b6={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},k6=(t,e)=>(Ss[t]===void 0&&(Ss[t]={name:t,type:e,id:Qe.id,text:Qe.text,risk:Qe.risk,verifyMethod:Qe.verifyMethod}),Qe={},Ss[t]),_6=()=>Ss,T6=t=>{Qe!==void 0&&(Qe.id=t)},C6=t=>{Qe!==void 0&&(Qe.text=t)},E6=t=>{Qe!==void 0&&(Qe.risk=t)},S6=t=>{Qe!==void 0&&(Qe.verifyMethod=t)},w6=t=>(ws[t]===void 0&&(ws[t]={name:t,type:dr.type,docRef:dr.docRef},B.info("Added new requirement: ",t)),dr={},ws[t]),v6=()=>ws,A6=t=>{dr!==void 0&&(dr.type=t)},L6=t=>{dr!==void 0&&(dr.docRef=t)},B6=(t,e,i)=>{bl.push({type:t,src:e,dst:i})},I6=()=>bl,D6=()=>{bl=[],Qe={},Ss={},dr={},ws={},Oe()},F6={RequirementType:y6,RiskLevel:m6,VerifyType:x6,Relationships:b6,getConfig:()=>Y().req,addRequirement:k6,getRequirements:_6,setNewReqId:T6,setNewReqText:C6,setNewReqRisk:E6,setNewReqVerifyMethod:S6,setAccTitle:Pe,getAccTitle:Ye,setAccDescription:Ue,getAccDescription:He,addElement:w6,getElements:v6,setNewElementType:A6,setNewElementDocRef:L6,addRelationship:B6,getRelationships:I6,clear:D6},R6=t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + +`,N6=R6,ho={CONTAINS:"contains",ARROW:"arrow"},O6=(t,e)=>{let i=t.append("defs").append("marker").attr("id",ho.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");i.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),i.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),i.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",ho.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${e.line_height},${e.line_height/2} + M${e.line_height},${e.line_height/2} + L0,${e.line_height}`).attr("stroke-width",1)},S0={ReqMarkers:ho,insertLineEndings:O6};let le={},Oc=0;const w0=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",le.rect_min_width+"px").attr("height",le.rect_min_height+"px"),v0=(t,e,i)=>{let r=le.rect_min_width/2,s=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",r).attr("y",le.rect_padding).attr("dominant-baseline","hanging"),n=0;i.forEach(h=>{n==0?s.append("tspan").attr("text-anchor","middle").attr("x",le.rect_min_width/2).attr("dy",0).text(h):s.append("tspan").attr("text-anchor","middle").attr("x",le.rect_min_width/2).attr("dy",le.line_height*.75).text(h),n++});let a=1.5*le.rect_padding,o=n*le.line_height*.75,l=a+o;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",le.rect_min_width).attr("y1",l).attr("y2",l),{titleNode:s,y:l}},A0=(t,e,i,r)=>{let s=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",le.rect_padding).attr("y",r).attr("dominant-baseline","hanging"),n=0;const a=30;let o=[];return i.forEach(l=>{let h=l.length;for(;h>a&&n<3;){let u=l.substring(0,a);l=l.substring(a,l.length),h=l.length,o[o.length]=u,n++}if(n==3){let u=o[o.length-1];o[o.length-1]=u.substring(0,u.length-4)+"..."}else o[o.length]=l;n=0}),o.forEach(l=>{s.append("tspan").attr("x",le.rect_padding).attr("dy",le.line_height).text(l)}),s},P6=(t,e,i,r)=>{const s=e.node().getTotalLength(),n=e.node().getPointAtLength(s*.5),a="rel"+Oc;Oc++;const l=t.append("text").attr("class","req relationshipLabel").attr("id",a).attr("x",n.x).attr("y",n.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(r).node().getBBox();t.insert("rect","#"+a).attr("class","req reqLabelBox").attr("x",n.x-l.width/2).attr("y",n.y-l.height/2).attr("width",l.width).attr("height",l.height).attr("fill","white").attr("fill-opacity","85%")},M6=function(t,e,i,r,s){const n=i.edge(as(e.src),as(e.dst)),a=fr().x(function(l){return l.x}).y(function(l){return l.y}),o=t.insert("path","#"+r).attr("class","er relationshipLine").attr("d",a(n.points)).attr("fill","none");e.type==s.db.Relationships.CONTAINS?o.attr("marker-start","url("+mt.getUrl(le.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(o.attr("stroke-dasharray","10,7"),o.attr("marker-end","url("+mt.getUrl(le.arrowMarkerAbsolute)+"#"+S0.ReqMarkers.ARROW+"_line_ending)")),P6(t,o,le,`<<${e.type}>>`)},V6=(t,e,i)=>{Object.keys(t).forEach(r=>{let s=t[r];r=as(r),B.info("Added new requirement: ",r);const n=i.append("g").attr("id",r),a="req-"+r,o=w0(n,a);let l=v0(n,r+"_title",[`<<${s.type}>>`,`${s.name}`]);A0(n,r+"_body",[`Id: ${s.id}`,`Text: ${s.text}`,`Risk: ${s.risk}`,`Verification: ${s.verifyMethod}`],l.y);const h=o.node().getBBox();e.setNode(r,{width:h.width,height:h.height,shape:"rect",id:r})})},z6=(t,e,i)=>{Object.keys(t).forEach(r=>{let s=t[r];const n=as(r),a=i.append("g").attr("id",n),o="element-"+n,l=w0(a,o);let h=v0(a,o+"_title",["<>",`${r}`]);A0(a,o+"_body",[`Type: ${s.type||"Not Specified"}`,`Doc Ref: ${s.docRef||"None"}`],h.y);const u=l.node().getBBox();e.setNode(n,{width:u.width,height:u.height,shape:"rect",id:n})})},q6=(t,e)=>(t.forEach(function(i){let r=as(i.src),s=as(i.dst);e.setEdge(r,s,{relationship:i})}),t),W6=function(t,e){e.nodes().forEach(function(i){i!==void 0&&e.node(i)!==void 0&&(t.select("#"+i),t.select("#"+i).attr("transform","translate("+(e.node(i).x-e.node(i).width/2)+","+(e.node(i).y-e.node(i).height/2)+" )"))})},as=t=>t.replace(/\s/g,"").replace(/\./g,"_"),Y6=(t,e,i,r)=>{le=Y().requirement;const s=le.securityLevel;let n;s==="sandbox"&&(n=yt("#i"+e));const o=(s==="sandbox"?yt(n.nodes()[0].contentDocument.body):yt("body")).select(`[id='${e}']`);S0.insertLineEndings(o,le);const l=new Ii({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:le.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let h=r.db.getRequirements(),u=r.db.getElements(),p=r.db.getRelationships();V6(h,l,o),z6(u,l,o),q6(p,l),Xs(l),W6(o,l),p.forEach(function(_){M6(o,_,l,e,r)});const d=le.rect_padding,g=o.node().getBBox(),y=g.width+d*2,x=g.height+d*2;Ne(o,x,y,le.useMaxWidth),o.attr("viewBox",`${g.x-d} ${g.y-d} ${y} ${x}`)},U6={draw:Y6},H6={parser:g6,db:F6,renderer:U6,styles:N6},G6=Object.freeze(Object.defineProperty({__proto__:null,diagram:H6},Symbol.toStringTag,{value:"Module"}));var uo=(function(){var t=function(Q,J,O,at){for(O=O||{},at=Q.length;at--;O[Q[at]]=J);return O},e=[1,2],i=[1,3],r=[1,4],s=[2,4],n=[1,9],a=[1,11],o=[1,13],l=[1,14],h=[1,16],u=[1,17],p=[1,18],d=[1,24],g=[1,25],y=[1,26],x=[1,27],_=[1,28],w=[1,29],E=[1,30],R=[1,31],v=[1,32],T=[1,33],k=[1,34],A=[1,35],S=[1,36],m=[1,37],C=[1,38],f=[1,39],L=[1,41],b=[1,42],P=[1,43],U=[1,44],N=[1,45],D=[1,46],F=[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],I=[4,5,16,50,52,53],M=[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],z=[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],st=[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],j=[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],dt=[68,69,70],K=[1,120],G={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(J,O,at,W,ft,V,vt){var X=V.length-1;switch(ft){case 3:return W.apply(V[X]),V[X];case 4:case 9:this.$=[];break;case 5:case 10:V[X-1].push(V[X]),this.$=V[X-1];break;case 6:case 7:case 11:case 12:this.$=V[X];break;case 8:case 13:this.$=[];break;case 15:V[X].type="createParticipant",this.$=V[X];break;case 16:V[X-1].unshift({type:"boxStart",boxData:W.parseBoxData(V[X-2])}),V[X-1].push({type:"boxEnd",boxText:V[X-2]}),this.$=V[X-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(V[X-2]),sequenceIndexStep:Number(V[X-1]),sequenceVisible:!0,signalType:W.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(V[X-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:W.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:W.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:W.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:W.LINETYPE.ACTIVE_START,actor:V[X-1]};break;case 23:this.$={type:"activeEnd",signalType:W.LINETYPE.ACTIVE_END,actor:V[X-1]};break;case 29:W.setDiagramTitle(V[X].substring(6)),this.$=V[X].substring(6);break;case 30:W.setDiagramTitle(V[X].substring(7)),this.$=V[X].substring(7);break;case 31:this.$=V[X].trim(),W.setAccTitle(this.$);break;case 32:case 33:this.$=V[X].trim(),W.setAccDescription(this.$);break;case 34:V[X-1].unshift({type:"loopStart",loopText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.LOOP_START}),V[X-1].push({type:"loopEnd",loopText:V[X-2],signalType:W.LINETYPE.LOOP_END}),this.$=V[X-1];break;case 35:V[X-1].unshift({type:"rectStart",color:W.parseMessage(V[X-2]),signalType:W.LINETYPE.RECT_START}),V[X-1].push({type:"rectEnd",color:W.parseMessage(V[X-2]),signalType:W.LINETYPE.RECT_END}),this.$=V[X-1];break;case 36:V[X-1].unshift({type:"optStart",optText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.OPT_START}),V[X-1].push({type:"optEnd",optText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.OPT_END}),this.$=V[X-1];break;case 37:V[X-1].unshift({type:"altStart",altText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.ALT_START}),V[X-1].push({type:"altEnd",signalType:W.LINETYPE.ALT_END}),this.$=V[X-1];break;case 38:V[X-1].unshift({type:"parStart",parText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.PAR_START}),V[X-1].push({type:"parEnd",signalType:W.LINETYPE.PAR_END}),this.$=V[X-1];break;case 39:V[X-1].unshift({type:"parStart",parText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.PAR_OVER_START}),V[X-1].push({type:"parEnd",signalType:W.LINETYPE.PAR_END}),this.$=V[X-1];break;case 40:V[X-1].unshift({type:"criticalStart",criticalText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.CRITICAL_START}),V[X-1].push({type:"criticalEnd",signalType:W.LINETYPE.CRITICAL_END}),this.$=V[X-1];break;case 41:V[X-1].unshift({type:"breakStart",breakText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.BREAK_START}),V[X-1].push({type:"breakEnd",optText:W.parseMessage(V[X-2]),signalType:W.LINETYPE.BREAK_END}),this.$=V[X-1];break;case 43:this.$=V[X-3].concat([{type:"option",optionText:W.parseMessage(V[X-1]),signalType:W.LINETYPE.CRITICAL_OPTION},V[X]]);break;case 45:this.$=V[X-3].concat([{type:"and",parText:W.parseMessage(V[X-1]),signalType:W.LINETYPE.PAR_AND},V[X]]);break;case 47:this.$=V[X-3].concat([{type:"else",altText:W.parseMessage(V[X-1]),signalType:W.LINETYPE.ALT_ELSE},V[X]]);break;case 48:V[X-3].draw="participant",V[X-3].type="addParticipant",V[X-3].description=W.parseMessage(V[X-1]),this.$=V[X-3];break;case 49:V[X-1].draw="participant",V[X-1].type="addParticipant",this.$=V[X-1];break;case 50:V[X-3].draw="actor",V[X-3].type="addParticipant",V[X-3].description=W.parseMessage(V[X-1]),this.$=V[X-3];break;case 51:V[X-1].draw="actor",V[X-1].type="addParticipant",this.$=V[X-1];break;case 52:V[X-1].type="destroyParticipant",this.$=V[X-1];break;case 53:this.$=[V[X-1],{type:"addNote",placement:V[X-2],actor:V[X-1].actor,text:V[X]}];break;case 54:V[X-2]=[].concat(V[X-1],V[X-1]).slice(0,2),V[X-2][0]=V[X-2][0].actor,V[X-2][1]=V[X-2][1].actor,this.$=[V[X-1],{type:"addNote",placement:W.PLACEMENT.OVER,actor:V[X-2].slice(0,2),text:V[X]}];break;case 55:this.$=[V[X-1],{type:"addLinks",actor:V[X-1].actor,text:V[X]}];break;case 56:this.$=[V[X-1],{type:"addALink",actor:V[X-1].actor,text:V[X]}];break;case 57:this.$=[V[X-1],{type:"addProperties",actor:V[X-1].actor,text:V[X]}];break;case 58:this.$=[V[X-1],{type:"addDetails",actor:V[X-1].actor,text:V[X]}];break;case 61:this.$=[V[X-2],V[X]];break;case 62:this.$=V[X];break;case 63:this.$=W.PLACEMENT.LEFTOF;break;case 64:this.$=W.PLACEMENT.RIGHTOF;break;case 65:this.$=[V[X-4],V[X-1],{type:"addMessage",from:V[X-4].actor,to:V[X-1].actor,signalType:V[X-3],msg:V[X],activate:!0},{type:"activeStart",signalType:W.LINETYPE.ACTIVE_START,actor:V[X-1]}];break;case 66:this.$=[V[X-4],V[X-1],{type:"addMessage",from:V[X-4].actor,to:V[X-1].actor,signalType:V[X-3],msg:V[X]},{type:"activeEnd",signalType:W.LINETYPE.ACTIVE_END,actor:V[X-4]}];break;case 67:this.$=[V[X-3],V[X-1],{type:"addMessage",from:V[X-3].actor,to:V[X-1].actor,signalType:V[X-2],msg:V[X]}];break;case 68:this.$={type:"addParticipant",actor:V[X]};break;case 69:this.$=W.LINETYPE.SOLID_OPEN;break;case 70:this.$=W.LINETYPE.DOTTED_OPEN;break;case 71:this.$=W.LINETYPE.SOLID;break;case 72:this.$=W.LINETYPE.DOTTED;break;case 73:this.$=W.LINETYPE.SOLID_CROSS;break;case 74:this.$=W.LINETYPE.DOTTED_CROSS;break;case 75:this.$=W.LINETYPE.SOLID_POINT;break;case 76:this.$=W.LINETYPE.DOTTED_POINT;break;case 77:this.$=W.parseMessage(V[X].trim().substring(1));break}},table:[{3:1,4:e,5:i,6:r},{1:[3]},{3:5,4:e,5:i,6:r},{3:6,4:e,5:i,6:r},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],s,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:a,8:8,9:10,12:12,13:o,14:l,17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},t(F,[2,5]),{9:47,12:12,13:o,14:l,17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},t(F,[2,7]),t(F,[2,8]),t(F,[2,14]),{12:48,50:m,52:C,53:f},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:D},{22:55,70:D},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(F,[2,29]),t(F,[2,30]),{32:[1,61]},{34:[1,62]},t(F,[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:D},{22:72,70:D},{22:73,70:D},{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:D},{22:88,70:D},{22:89,70:D},{22:90,70:D},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(F,[2,6]),t(F,[2,15]),t(I,[2,9],{10:91}),t(F,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(F,[2,21]),{5:[1,95]},{5:[1,96]},t(F,[2,24]),t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,31]),t(F,[2,32]),t(M,s,{7:97}),t(M,s,{7:98}),t(M,s,{7:99}),t(z,s,{40:100,7:101}),t(st,s,{42:102,7:103}),t(st,s,{7:103,42:104}),t(j,s,{45:105,7:106}),t(M,s,{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:D},t(dt,[2,69]),t(dt,[2,70]),t(dt,[2,71]),t(dt,[2,72]),t(dt,[2,73]),t(dt,[2,74]),t(dt,[2,75]),t(dt,[2,76]),{22:116,70:D},{22:118,58:117,70:D},{70:[2,63]},{70:[2,64]},{56:119,79:K},{56:121,79:K},{56:122,79:K},{56:123,79:K},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:m,52:C,53:f},{5:[1,129]},t(F,[2,19]),t(F,[2,20]),t(F,[2,22]),t(F,[2,23]),{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[1,130],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[1,131],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[1,132],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{16:[1,133]},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[2,46],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,49:[1,134],50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{16:[1,135]},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[2,44],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,48:[1,136],50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{16:[1,137]},{16:[1,138]},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[2,42],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,47:[1,139],50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{4:n,5:a,8:8,9:10,12:12,13:o,14:l,16:[1,140],17:15,18:h,21:u,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:d,30:g,31:y,33:x,35:_,36:w,37:E,38:R,39:v,41:T,43:k,44:A,46:S,50:m,52:C,53:f,54:L,59:b,60:P,61:U,62:N,70:D},{15:[1,141]},t(F,[2,49]),{15:[1,142]},t(F,[2,51]),t(F,[2,52]),{22:143,70:D},{22:144,70:D},{56:145,79:K},{56:146,79:K},{56:147,79:K},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(F,[2,16]),t(I,[2,10]),{12:149,50:m,52:C,53:f},t(I,[2,12]),t(I,[2,13]),t(F,[2,18]),t(F,[2,34]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),{15:[1,150]},t(F,[2,38]),{15:[1,151]},t(F,[2,39]),t(F,[2,40]),{15:[1,152]},t(F,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:K},{56:156,79:K},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:D},t(I,[2,11]),t(z,s,{7:101,40:158}),t(st,s,{7:103,42:159}),t(j,s,{7:106,45:160}),t(F,[2,48]),t(F,[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(J,O){if(O.recoverable)this.trace(J);else{var at=new Error(J);throw at.hash=O,at}},parse:function(J){var O=this,at=[0],W=[],ft=[null],V=[],vt=this.table,X="",St=0,bt=0,Vt=2,Bt=1,Wt=V.slice.call(arguments,1),pt=Object.create(this.lexer),ut={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(ut.yy[ot]=this.yy[ot]);pt.setInput(J,ut.yy),ut.yy.lexer=pt,ut.yy.parser=this,typeof pt.yylloc>"u"&&(pt.yylloc={});var lt=pt.yylloc;V.push(lt);var ht=pt.options&&pt.options.ranges;typeof ut.yy.parseError=="function"?this.parseError=ut.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $(){var fe;return fe=W.pop()||pt.lex()||Bt,typeof fe!="number"&&(fe instanceof Array&&(W=fe,fe=W.pop()),fe=O.symbols_[fe]||fe),fe}for(var rt,it,ct,re,Qt={},de,zt,Gt,qt;;){if(it=at[at.length-1],this.defaultActions[it]?ct=this.defaultActions[it]:((rt===null||typeof rt>"u")&&(rt=$()),ct=vt[it]&&vt[it][rt]),typeof ct>"u"||!ct.length||!ct[0]){var Ee="";qt=[];for(de in vt[it])this.terminals_[de]&&de>Vt&&qt.push("'"+this.terminals_[de]+"'");pt.showPosition?Ee="Parse error on line "+(St+1)+`: +`+pt.showPosition()+` +Expecting `+qt.join(", ")+", got '"+(this.terminals_[rt]||rt)+"'":Ee="Parse error on line "+(St+1)+": Unexpected "+(rt==Bt?"end of input":"'"+(this.terminals_[rt]||rt)+"'"),this.parseError(Ee,{text:pt.match,token:this.terminals_[rt]||rt,line:pt.yylineno,loc:lt,expected:qt})}if(ct[0]instanceof Array&&ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+it+", token: "+rt);switch(ct[0]){case 1:at.push(rt),ft.push(pt.yytext),V.push(pt.yylloc),at.push(ct[1]),rt=null,bt=pt.yyleng,X=pt.yytext,St=pt.yylineno,lt=pt.yylloc;break;case 2:if(zt=this.productions_[ct[1]][1],Qt.$=ft[ft.length-zt],Qt._$={first_line:V[V.length-(zt||1)].first_line,last_line:V[V.length-1].last_line,first_column:V[V.length-(zt||1)].first_column,last_column:V[V.length-1].last_column},ht&&(Qt._$.range=[V[V.length-(zt||1)].range[0],V[V.length-1].range[1]]),re=this.performAction.apply(Qt,[X,bt,St,ut.yy,ct[1],ft,V].concat(Wt)),typeof re<"u")return re;zt&&(at=at.slice(0,-1*zt*2),ft=ft.slice(0,-1*zt),V=V.slice(0,-1*zt)),at.push(this.productions_[ct[1]][0]),ft.push(Qt.$),V.push(Qt._$),Gt=vt[at[at.length-2]][at[at.length-1]],at.push(Gt);break;case 3:return!0}}return!0}},tt=(function(){var Q={EOF:1,parseError:function(O,at){if(this.yy.parser)this.yy.parser.parseError(O,at);else throw new Error(O)},setInput:function(J,O){return this.yy=O||this.yy||{},this._input=J,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 J=this._input[0];this.yytext+=J,this.yyleng++,this.offset++,this.match+=J,this.matched+=J;var O=J.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),J},unput:function(J){var O=J.length,at=J.split(/(?:\r\n?|\n)/g);this._input=J+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var W=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),at.length-1&&(this.yylineno-=at.length-1);var ft=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:at?(at.length===W.length?this.yylloc.first_column:0)+W[W.length-at.length].length-at[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[ft[0],ft[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(J){this.unput(this.match.slice(J))},pastInput:function(){var J=this.matched.substr(0,this.matched.length-this.match.length);return(J.length>20?"...":"")+J.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var J=this.match;return J.length<20&&(J+=this._input.substr(0,20-J.length)),(J.substr(0,20)+(J.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var J=this.pastInput(),O=new Array(J.length+1).join("-");return J+this.upcomingInput()+` +`+O+"^"},test_match:function(J,O){var at,W,ft;if(this.options.backtrack_lexer&&(ft={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ft.yylloc.range=this.yylloc.range.slice(0))),W=J[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+J[0].length},this.yytext+=J[0],this.match+=J[0],this.matches=J,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(J[0].length),this.matched+=J[0],at=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),at)return at;if(this._backtrack){for(var V in ft)this[V]=ft[V];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var J,O,at,W;this._more||(this.yytext="",this.match="");for(var ft=this._currentRules(),V=0;VO[0].length)){if(O=at,W=V,this.options.backtrack_lexer){if(J=this.test_match(at,ft[V]),J!==!1)return J;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(J=this.test_match(O,ft[W]),J!==!1?J:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var O=this.next();return O||this.lex()},begin:function(O){this.conditionStack.push(O)},popState:function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},pushState:function(O){this.begin(O)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(O,at,W,ft){switch(W){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return at.yytext=at.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return at.yytext=at.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return Q})();G.lexer=tt;function nt(){this.yy={}}return nt.prototype=G,G.Parser=nt,new nt})();uo.parser=uo;const j6=uo;class X6{constructor(e){this.init=e,this.records=this.init()}reset(){this.records=this.init()}}const _t=new X6(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),$6=function(t){_t.records.boxes.push({name:t.text,wrap:t.wrap===void 0&&Ar()||!!t.wrap,fill:t.color,actorKeys:[]}),_t.records.currentBox=_t.records.boxes.slice(-1)[0]},fo=function(t,e,i,r){let s=_t.records.currentBox;const n=_t.records.actors[t];if(n){if(_t.records.currentBox&&n.box&&_t.records.currentBox!==n.box)throw new Error("A same participant should only be defined in one Box: "+n.name+" can't be in '"+n.box.name+"' and in '"+_t.records.currentBox.name+"' at the same time.");if(s=n.box?n.box:_t.records.currentBox,n.box=s,n&&e===n.name&&i==null)return}(i==null||i.text==null)&&(i={text:e,wrap:null,type:r}),(r==null||i.text==null)&&(i={text:e,wrap:null,type:r}),_t.records.actors[t]={box:s,name:e,description:i.text,wrap:i.wrap===void 0&&Ar()||!!i.wrap,prevActor:_t.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:r||"participant"},_t.records.prevActor&&_t.records.actors[_t.records.prevActor]&&(_t.records.actors[_t.records.prevActor].nextActor=t),_t.records.currentBox&&_t.records.currentBox.actorKeys.push(t),_t.records.prevActor=t},K6=t=>{let e,i=0;for(e=0;e<_t.records.messages.length;e++)_t.records.messages[e].type===qs.ACTIVE_START&&_t.records.messages[e].from.actor===t&&i++,_t.records.messages[e].type===qs.ACTIVE_END&&_t.records.messages[e].from.actor===t&&i--;return i},Q6=function(t,e,i,r){_t.records.messages.push({from:t,to:e,message:i.text,wrap:i.wrap===void 0&&Ar()||!!i.wrap,answer:r})},ce=function(t,e,i={text:void 0,wrap:void 0},r,s=!1){if(r===qs.ACTIVE_END&&K6(t.actor)<1){let a=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw a.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},a}return _t.records.messages.push({from:t,to:e,message:i.text,wrap:i.wrap===void 0&&Ar()||!!i.wrap,type:r,activate:s}),!0},Z6=function(){return _t.records.boxes.length>0},J6=function(){return _t.records.boxes.some(t=>t.name)},t_=function(){return _t.records.messages},e_=function(){return _t.records.boxes},i_=function(){return _t.records.actors},r_=function(){return _t.records.createdActors},s_=function(){return _t.records.destroyedActors},nn=function(t){return _t.records.actors[t]},n_=function(){return Object.keys(_t.records.actors)},a_=function(){_t.records.sequenceNumbersEnabled=!0},o_=function(){_t.records.sequenceNumbersEnabled=!1},l_=()=>_t.records.sequenceNumbersEnabled,c_=function(t){_t.records.wrapEnabled=t},Ar=()=>_t.records.wrapEnabled!==void 0?_t.records.wrapEnabled:Y().sequence.wrap,h_=function(){_t.reset(),Oe()},u_=function(t){const e=t.trim(),i={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return B.debug("parseMessage:",i),i},d_=function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let i=e!=null&&e[1]?e[1].trim():"transparent",r=e!=null&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",i)||(i="transparent",r=t.trim());else{const s=new Option().style;s.color=i,s.color!==i&&(i="transparent",r=t.trim())}return{color:i,text:r!==void 0?te(r.replace(/^:?(?:no)?wrap:/,""),Y()):void 0,wrap:r!==void 0?r.match(/^:?wrap:/)!==null?!0:r.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},qs={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},f_={FILLED:0,OPEN:1},p_={LEFTOF:0,RIGHTOF:1,OVER:2},L0=function(t,e,i){const r={actor:t,placement:e,message:i.text,wrap:i.wrap===void 0&&Ar()||!!i.wrap},s=[].concat(t,t);_t.records.notes.push(r),_t.records.messages.push({from:s[0],to:s[1],message:i.text,wrap:i.wrap===void 0&&Ar()||!!i.wrap,type:qs.NOTE,placement:e})},B0=function(t,e){const i=nn(t);try{let r=te(e.text,Y());r=r.replace(/&/g,"&"),r=r.replace(/=/g,"=");const s=JSON.parse(r);kl(i,s)}catch(r){B.error("error while parsing actor link text",r)}},g_=function(t,e){const i=nn(t);try{const a={};let o=te(e.text,Y());var r=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var s=o.slice(0,r-1).trim(),n=o.slice(r+1).trim();a[s]=n,kl(i,a)}catch(a){B.error("error while parsing actor link text",a)}};function kl(t,e){if(t.links==null)t.links=e;else for(let i in e)t.links[i]=e[i]}const I0=function(t,e){const i=nn(t);try{let r=te(e.text,Y());const s=JSON.parse(r);D0(i,s)}catch(r){B.error("error while parsing actor properties text",r)}};function D0(t,e){if(t.properties==null)t.properties=e;else for(let i in e)t.properties[i]=e[i]}function y_(){_t.records.currentBox=void 0}const F0=function(t,e){const i=nn(t),r=document.getElementById(e.text);try{const s=r.innerHTML,n=JSON.parse(s);n.properties&&D0(i,n.properties),n.links&&kl(i,n.links)}catch(s){B.error("error while parsing actor details text",s)}},m_=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},R0=function(t){if(Array.isArray(t))t.forEach(function(e){R0(e)});else switch(t.type){case"sequenceIndex":_t.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":fo(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(_t.records.actors[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");_t.records.lastCreated=t.actor,fo(t.actor,t.actor,t.description,t.draw),_t.records.createdActors[t.actor]=_t.records.messages.length;break;case"destroyParticipant":_t.records.lastDestroyed=t.actor,_t.records.destroyedActors[t.actor]=_t.records.messages.length;break;case"activeStart":ce(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":ce(t.actor,void 0,void 0,t.signalType);break;case"addNote":L0(t.actor,t.placement,t.text);break;case"addLinks":B0(t.actor,t.text);break;case"addALink":g_(t.actor,t.text);break;case"addProperties":I0(t.actor,t.text);break;case"addDetails":F0(t.actor,t.text);break;case"addMessage":if(_t.records.lastCreated){if(t.to!==_t.records.lastCreated)throw new Error("The created participant "+_t.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");_t.records.lastCreated=void 0}else if(_t.records.lastDestroyed){if(t.to!==_t.records.lastDestroyed&&t.from!==_t.records.lastDestroyed)throw new Error("The destroyed participant "+_t.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");_t.records.lastDestroyed=void 0}ce(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":$6(t.boxData);break;case"boxEnd":y_();break;case"loopStart":ce(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":ce(void 0,void 0,void 0,t.signalType);break;case"rectStart":ce(void 0,void 0,t.color,t.signalType);break;case"rectEnd":ce(void 0,void 0,void 0,t.signalType);break;case"optStart":ce(void 0,void 0,t.optText,t.signalType);break;case"optEnd":ce(void 0,void 0,void 0,t.signalType);break;case"altStart":ce(void 0,void 0,t.altText,t.signalType);break;case"else":ce(void 0,void 0,t.altText,t.signalType);break;case"altEnd":ce(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":Pe(t.text);break;case"parStart":ce(void 0,void 0,t.parText,t.signalType);break;case"and":ce(void 0,void 0,t.parText,t.signalType);break;case"parEnd":ce(void 0,void 0,void 0,t.signalType);break;case"criticalStart":ce(void 0,void 0,t.criticalText,t.signalType);break;case"option":ce(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":ce(void 0,void 0,void 0,t.signalType);break;case"breakStart":ce(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":ce(void 0,void 0,void 0,t.signalType);break}},Pc={addActor:fo,addMessage:Q6,addSignal:ce,addLinks:B0,addDetails:F0,addProperties:I0,autoWrap:Ar,setWrap:c_,enableSequenceNumbers:a_,disableSequenceNumbers:o_,showSequenceNumbers:l_,getMessages:t_,getActors:i_,getCreatedActors:r_,getDestroyedActors:s_,getActor:nn,getActorKeys:n_,getActorProperty:m_,getAccTitle:Ye,getBoxes:e_,getDiagramTitle:Ge,setDiagramTitle:ri,getConfig:()=>Y().sequence,clear:h_,parseMessage:u_,parseBoxData:d_,LINETYPE:qs,ARROWTYPE:f_,PLACEMENT:p_,addNote:L0,setAccTitle:Pe,apply:R0,setAccDescription:Ue,getAccDescription:He,hasAtLeastOneBox:Z6,hasAtLeastOneBoxWithTitle:J6},x_=t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,b_=x_,Cr=36,N0="actor-top",O0="actor-bottom",_l=function(t,e){return la(t,e)},k_=function(t,e,i,r,s){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const n=e.links,a=e.actorCnt,o=e.rectData;var l="none";s&&(l="block !important");const h=t.append("g");h.attr("id","actor"+a+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",l);var u="";o.class!==void 0&&(u=" "+o.class);let p=o.width>i?o.width:i;const d=h.append("rect");if(d.attr("class","actorPopupMenuPanel"+u),d.attr("x",o.x),d.attr("y",o.height),d.attr("fill",o.fill),d.attr("stroke",o.stroke),d.attr("width",p),d.attr("height",o.height),d.attr("rx",o.rx),d.attr("ry",o.ry),n!=null){var g=20;for(let _ in n){var y=h.append("a"),x=Fr.sanitizeUrl(n[_]);y.attr("xlink:href",x),y.attr("target","_blank"),P_(r)(_,y,o.x+10,o.height+g,p,20,{class:"actor"},r),g+=30}}return d.attr("height",g),{height:o.height+g,width:p}},__=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},Xn=async function(t,e,i=null){let r=t.append("foreignObject");const s=await Nr(e.text,ee()),a=r.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(s).node().getBoundingClientRect();if(r.attr("height",Math.round(a.height)).attr("width",Math.round(a.width)),e.class==="noteText"){const o=t.node().firstChild;o.setAttribute("height",a.height+2*e.textMargin);const l=o.getBBox();r.attr("x",Math.round(l.x+l.width/2-a.width/2)).attr("y",Math.round(l.y+l.height/2-a.height/2))}else if(i){let{startx:o,stopx:l,starty:h}=i;if(o>l){const u=o;o=l,l=u}r.attr("x",Math.round(o+Math.abs(o-l)/2-a.width/2)),e.class==="loopText"?r.attr("y",Math.round(h)):r.attr("y",Math.round(h-a.height))}return[r]},os=function(t,e){let i=0,r=0;const s=e.text.split(mt.lineBreakRegex),[n,a]=Or(e.fontSize);let o=[],l=0,h=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":h=()=>Math.round(e.y+(i+r+e.textMargin)/2);break;case"bottom":case"end":h=()=>Math.round(e.y+(i+r+2*e.textMargin)-e.textMargin);break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[u,p]of s.entries()){e.textMargin!==void 0&&e.textMargin===0&&n!==void 0&&(l=u*n);const d=t.append("text");d.attr("x",e.x),d.attr("y",h()),e.anchor!==void 0&&d.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&d.style("font-family",e.fontFamily),a!==void 0&&d.style("font-size",a),e.fontWeight!==void 0&&d.style("font-weight",e.fontWeight),e.fill!==void 0&&d.attr("fill",e.fill),e.class!==void 0&&d.attr("class",e.class),e.dy!==void 0?d.attr("dy",e.dy):l!==0&&d.attr("dy",l);const g=p||Bh;if(e.tspan){const y=d.append("tspan");y.attr("x",e.x),e.fill!==void 0&&y.attr("fill",e.fill),y.text(g)}else d.text(g);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(r+=(d._groups||d)[0][0].getBBox().height,i=r),o.push(d)}return o},P0=function(t,e){function i(s,n,a,o,l){return s+","+n+" "+(s+a)+","+n+" "+(s+a)+","+(n+o-l)+" "+(s+a-l*1.2)+","+(n+o)+" "+s+","+(n+o)}const r=t.append("polygon");return r.attr("points",i(e.x,e.y,e.width,e.height,7)),r.attr("class","labelBox"),e.y=e.y+e.height/2,os(t,e),r};let Si=-1;const M0=(t,e,i,r)=>{t.select&&i.forEach(s=>{const n=e[s],a=t.select("#actor"+n.actorCnt);!r.mirrorActors&&n.stopy?a.attr("y2",n.stopy+n.height/2):r.mirrorActors&&a.attr("y2",n.stopy)})},T_=async function(t,e,i,r){const s=r?e.stopy:e.starty,n=e.x+e.width/2,a=s+5,o=t.append("g").lower();var l=o;r||(Si++,Object.keys(e.links||{}).length&&!i.forceMenus&&l.attr("onclick",__(`actor${Si}_popup`)).attr("cursor","pointer"),l.append("line").attr("id","actor"+Si).attr("x1",n).attr("y1",a).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),l=o.append("g"),e.actorCnt=Si,e.links!=null&&l.attr("id","root-"+Si));const h=Pr();var u="actor";e.properties!=null&&e.properties.class?u=e.properties.class:h.fill="#eaeaea",r?u+=` ${O0}`:u+=` ${N0}`,h.x=e.x,h.y=s,h.width=e.width,h.height=e.height,h.class=u,h.rx=3,h.ry=3,h.name=e.name;const p=_l(l,h);if(e.rectData=h,e.properties!=null&&e.properties.icon){const g=e.properties.icon.trim();g.charAt(0)==="@"?ym(l,h.x+h.width-20,h.y+10,g.substr(1)):gm(l,h.x+h.width-20,h.y+10,g)}await Tl(i,fi(e.description))(e.description,l,h.x,h.y,h.width,h.height,{class:"actor"},i);let d=e.height;if(p.node){const g=p.node().getBBox();e.height=g.height,d=g.height}return d},C_=async function(t,e,i,r){const s=r?e.stopy:e.starty,n=e.x+e.width/2,a=s+80;t.lower(),r||(Si++,t.append("line").attr("id","actor"+Si).attr("x1",n).attr("y1",a).attr("x2",n).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=Si);const o=t.append("g");let l="actor-man";r?l+=` ${O0}`:l+=` ${N0}`,o.attr("class",l),o.attr("name",e.name);const h=Pr();h.x=e.x,h.y=s,h.fill="#eaeaea",h.width=e.width,h.height=e.height,h.class="actor",h.rx=3,h.ry=3,o.append("line").attr("id","actor-man-torso"+Si).attr("x1",n).attr("y1",s+25).attr("x2",n).attr("y2",s+45),o.append("line").attr("id","actor-man-arms"+Si).attr("x1",n-Cr/2).attr("y1",s+33).attr("x2",n+Cr/2).attr("y2",s+33),o.append("line").attr("x1",n-Cr/2).attr("y1",s+60).attr("x2",n).attr("y2",s+45),o.append("line").attr("x1",n).attr("y1",s+45).attr("x2",n+Cr/2-2).attr("y2",s+60);const u=o.append("circle");u.attr("cx",e.x+e.width/2),u.attr("cy",s+10),u.attr("r",15),u.attr("width",e.width),u.attr("height",e.height);const p=o.node().getBBox();return e.height=p.height,await Tl(i,fi(e.description))(e.description,o,h.x,h.y+35,h.width,h.height,{class:"actor"},i),e.height},E_=async function(t,e,i,r){switch(e.type){case"actor":return await C_(t,e,i,r);case"participant":return await T_(t,e,i,r)}},S_=async function(t,e,i){const s=t.append("g");V0(s,e),e.name&&await Tl(i)(e.name,s,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},i),s.lower()},w_=function(t){return t.append("g")},v_=function(t,e,i,r,s){const n=Pr(),a=e.anchored;n.x=e.startx,n.y=e.starty,n.class="activation"+s%3,n.width=e.stopx-e.startx,n.height=i-e.starty,_l(a,n)},A_=async function(t,e,i,r){const{boxMargin:s,boxTextMargin:n,labelBoxHeight:a,labelBoxWidth:o,messageFontFamily:l,messageFontSize:h,messageFontWeight:u}=r,p=t.append("g"),d=function(x,_,w,E){return p.append("line").attr("x1",x).attr("y1",_).attr("x2",w).attr("y2",E).attr("class","loopLine")};d(e.startx,e.starty,e.stopx,e.starty),d(e.stopx,e.starty,e.stopx,e.stopy),d(e.startx,e.stopy,e.stopx,e.stopy),d(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(x){d(e.startx,x.y,e.stopx,x.y).style("stroke-dasharray","3, 3")});let g=jo();g.text=i,g.x=e.startx,g.y=e.starty,g.fontFamily=l,g.fontSize=h,g.fontWeight=u,g.anchor="middle",g.valign="middle",g.tspan=!1,g.width=o||50,g.height=a||20,g.textMargin=n,g.class="labelText",P0(p,g),g=z0(),g.text=e.title,g.x=e.startx+o/2+(e.stopx-e.startx)/2,g.y=e.starty+s+n,g.anchor="middle",g.valign="middle",g.textMargin=n,g.class="loopText",g.fontFamily=l,g.fontSize=h,g.fontWeight=u,g.wrap=!0;let y=fi(g.text)?await Xn(p,g,e):os(p,g);if(e.sectionTitles!==void 0){for(const[x,_]of Object.entries(e.sectionTitles))if(_.message){g.text=_.message,g.x=e.startx+(e.stopx-e.startx)/2,g.y=e.sections[x].y+s+n,g.class="loopText",g.anchor="middle",g.valign="middle",g.tspan=!1,g.fontFamily=l,g.fontSize=h,g.fontWeight=u,g.wrap=e.wrap,fi(g.text)?(e.starty=e.sections[x].y,await Xn(p,g,e)):os(p,g);let w=Math.round(y.map(E=>(E._groups||E)[0][0].getBBox().height).reduce((E,R)=>E+R));e.sections[x].height+=w-(s+n)}}return e.height=Math.round(e.stopy-e.starty),p},V0=function(t,e){R1(t,e)},L_=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},B_=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},I_=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},D_=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).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")},F_=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).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")},R_=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},N_=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},z0=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},O_=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Tl=(function(){function t(n,a,o,l,h,u,p){const d=a.append("text").attr("x",o+h/2).attr("y",l+u/2+5).style("text-anchor","middle").text(n);s(d,p)}function e(n,a,o,l,h,u,p,d){const{actorFontSize:g,actorFontFamily:y,actorFontWeight:x}=d,[_,w]=Or(g),E=n.split(mt.lineBreakRegex);for(let R=0;Rt.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,W0(Y())},updateVal:function(t,e,i,r){t[e]===void 0?t[e]=i:t[e]=r(i,t[e])},updateBounds:function(t,e,i,r){const s=this;let n=0;function a(o){return function(h){n++;const u=s.sequenceItems.length-n+1;s.updateVal(h,"starty",e-u*Z.boxMargin,Math.min),s.updateVal(h,"stopy",r+u*Z.boxMargin,Math.max),s.updateVal(gt.data,"startx",t-u*Z.boxMargin,Math.min),s.updateVal(gt.data,"stopx",i+u*Z.boxMargin,Math.max),o!=="activation"&&(s.updateVal(h,"startx",t-u*Z.boxMargin,Math.min),s.updateVal(h,"stopx",i+u*Z.boxMargin,Math.max),s.updateVal(gt.data,"starty",e-u*Z.boxMargin,Math.min),s.updateVal(gt.data,"stopy",r+u*Z.boxMargin,Math.max))}}this.sequenceItems.forEach(a()),this.activations.forEach(a("activation"))},insert:function(t,e,i,r){const s=mt.getMin(t,i),n=mt.getMax(t,i),a=mt.getMin(e,r),o=mt.getMax(e,r);this.updateVal(gt.data,"startx",s,Math.min),this.updateVal(gt.data,"starty",a,Math.min),this.updateVal(gt.data,"stopx",n,Math.max),this.updateVal(gt.data,"stopy",o,Math.max),this.updateBounds(s,a,n,o)},newActivation:function(t,e,i){const r=i[t.from.actor],s=ma(t.from.actor).length||0,n=r.x+r.width/2+(s-1)*Z.activationWidth/2;this.activations.push({startx:n,starty:this.verticalPos+2,stopx:n+Z.activationWidth,stopy:void 0,actor:t.from.actor,anchored:he.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(i){return i.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:gt.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=mt.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},M_=async function(t,e){gt.bumpVerticalPos(Z.boxMargin),e.height=Z.boxMargin,e.starty=gt.getVerticalPos();const i=Pr();i.x=e.startx,i.y=e.starty,i.width=e.width||Z.width,i.class="note";const r=t.append("g"),s=he.drawRect(r,i),n=jo();n.x=e.startx,n.y=e.starty,n.width=i.width,n.dy="1em",n.text=e.message,n.class="noteText",n.fontFamily=Z.noteFontFamily,n.fontSize=Z.noteFontSize,n.fontWeight=Z.noteFontWeight,n.anchor=Z.noteAlign,n.textMargin=Z.noteMargin,n.valign="center";const a=fi(n.text)?await Xn(r,n):os(r,n),o=Math.round(a.map(l=>(l._groups||l)[0][0].getBBox().height).reduce((l,h)=>l+h));s.attr("height",o+2*Z.noteMargin),e.height+=o+2*Z.noteMargin,gt.bumpVerticalPos(o+2*Z.noteMargin),e.stopy=e.starty+o+2*Z.noteMargin,e.stopx=e.startx+i.width,gt.insert(e.startx,e.starty,e.stopx,e.stopy),gt.models.addNote(e)},Lr=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Yr=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),po=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});async function V_(t,e){gt.bumpVerticalPos(10);const{startx:i,stopx:r,message:s}=e,n=mt.splitBreaks(s).length,a=fi(s),o=a?await Ks(s,Y()):Rt.calculateTextDimensions(s,Lr(Z));if(!a){const p=o.height/n;e.height+=p,gt.bumpVerticalPos(p)}let l,h=o.height-10;const u=o.width;if(i===r){l=gt.getVerticalPos()+h,Z.rightAngles||(h+=Z.boxMargin,l=gt.getVerticalPos()+h),h+=30;const p=mt.getMax(u/2,Z.width/2);gt.insert(i-p,gt.getVerticalPos()-10+h,r+p,gt.getVerticalPos()+30+h)}else h+=Z.boxMargin,l=gt.getVerticalPos()+h,gt.insert(i,l-10,r,l);return gt.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,gt.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),l}const z_=async function(t,e,i,r){const{startx:s,stopx:n,starty:a,message:o,type:l,sequenceIndex:h,sequenceVisible:u}=e,p=Rt.calculateTextDimensions(o,Lr(Z)),d=jo();d.x=s,d.y=a+10,d.width=n-s,d.class="messageText",d.dy="1em",d.text=o,d.fontFamily=Z.messageFontFamily,d.fontSize=Z.messageFontSize,d.fontWeight=Z.messageFontWeight,d.anchor=Z.messageAlign,d.valign="center",d.textMargin=Z.wrapPadding,d.tspan=!1,fi(d.text)?await Xn(t,d,{startx:s,stopx:n,starty:i}):os(t,d);const g=p.width;let y;s===n?Z.rightAngles?y=t.append("path").attr("d",`M ${s},${i} H ${s+mt.getMax(Z.width/2,g/2)} V ${i+25} H ${s}`):y=t.append("path").attr("d","M "+s+","+i+" C "+(s+60)+","+(i-10)+" "+(s+60)+","+(i+30)+" "+s+","+(i+20)):(y=t.append("line"),y.attr("x1",s),y.attr("y1",i),y.attr("x2",n),y.attr("y2",i)),l===r.db.LINETYPE.DOTTED||l===r.db.LINETYPE.DOTTED_CROSS||l===r.db.LINETYPE.DOTTED_POINT||l===r.db.LINETYPE.DOTTED_OPEN?(y.style("stroke-dasharray","3, 3"),y.attr("class","messageLine1")):y.attr("class","messageLine0");let x="";Z.arrowMarkerAbsolute&&(x=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,x=x.replace(/\(/g,"\\("),x=x.replace(/\)/g,"\\)")),y.attr("stroke-width",2),y.attr("stroke","none"),y.style("fill","none"),(l===r.db.LINETYPE.SOLID||l===r.db.LINETYPE.DOTTED)&&y.attr("marker-end","url("+x+"#arrowhead)"),(l===r.db.LINETYPE.SOLID_POINT||l===r.db.LINETYPE.DOTTED_POINT)&&y.attr("marker-end","url("+x+"#filled-head)"),(l===r.db.LINETYPE.SOLID_CROSS||l===r.db.LINETYPE.DOTTED_CROSS)&&y.attr("marker-end","url("+x+"#crosshead)"),(u||Z.showSequenceNumbers)&&(y.attr("marker-start","url("+x+"#sequencenumber)"),t.append("text").attr("x",s).attr("y",i+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},q_=async function(t,e,i,r,s,n,a){let o=0,l=0,h,u=0;for(const p of r){const d=e[p],g=d.box;h&&h!=g&&(gt.models.addBox(h),l+=Z.boxMargin+h.margin),g&&g!=h&&(g.x=o+l,g.y=s,l+=g.margin),d.width=d.width||Z.width,d.height=mt.getMax(d.height||Z.height,Z.height),d.margin=d.margin||Z.actorMargin,u=mt.getMax(u,d.height),i[d.name]&&(l+=d.width/2),d.x=o+l,d.starty=gt.getVerticalPos(),gt.insert(d.x,s,d.x+d.width,d.height),o+=d.width+l,d.box&&(d.box.width=o+g.margin-d.box.x),l=d.margin,h=d.box,gt.models.addActor(d)}h&>.models.addBox(h),gt.bumpVerticalPos(u)},go=async function(t,e,i,r){if(r){let s=0;gt.bumpVerticalPos(Z.boxMargin*2);for(const n of i){const a=e[n];a.stopy||(a.stopy=gt.getVerticalPos());const o=await he.drawActor(t,a,Z,!0);s=mt.getMax(s,o)}gt.bumpVerticalPos(s+Z.boxMargin)}else for(const s of i){const n=e[s];await he.drawActor(t,n,Z,!1)}},q0=function(t,e,i,r){let s=0,n=0;for(const a of i){const o=e[a],l=H_(o),h=he.drawPopup(t,o,l,Z,Z.forceMenus,r);h.height>s&&(s=h.height),h.width+o.x>n&&(n=h.width+o.x)}return{maxHeight:s,maxWidth:n}},W0=function(t){Ae(Z,t),t.fontFamily&&(Z.actorFontFamily=Z.noteFontFamily=Z.messageFontFamily=t.fontFamily),t.fontSize&&(Z.actorFontSize=Z.noteFontSize=Z.messageFontSize=t.fontSize),t.fontWeight&&(Z.actorFontWeight=Z.noteFontWeight=Z.messageFontWeight=t.fontWeight)},ma=function(t){return gt.activations.filter(function(e){return e.actor===t})},Mc=function(t,e){const i=e[t],r=ma(t),s=r.reduce(function(a,o){return mt.getMin(a,o.startx)},i.x+i.width/2-1),n=r.reduce(function(a,o){return mt.getMax(a,o.stopx)},i.x+i.width/2+1);return[s,n]};function Ci(t,e,i,r,s){gt.bumpVerticalPos(i);let n=r;if(e.id&&e.message&&t[e.id]){const a=t[e.id].width,o=Lr(Z);e.message=Rt.wrapLabel(`[${e.message}]`,a-2*Z.wrapPadding,o),e.width=a,e.wrap=!0;const l=Rt.calculateTextDimensions(e.message,o),h=mt.getMax(l.height,Z.labelBoxHeight);n=r+h,B.debug(`${h} - ${e.message}`)}s(e),gt.bumpVerticalPos(n)}function W_(t,e,i,r,s,n,a){function o(h,u){h.x{F.add(I.from),F.add(I.to)}),y=y.filter(I=>F.has(I))}await q_(h,u,p,y,0);const v=await $_(x,u,R,r);he.insertArrowHead(h),he.insertArrowCrossHead(h),he.insertArrowFilledHead(h),he.insertSequenceNumber(h);function T(F,I){const M=gt.endActivation(F);M.starty+18>I&&(M.starty=I-6,I+=12),he.drawActivation(h,M,I,Z,ma(F.from.actor).length),gt.insert(M.startx,I-10,M.stopx,I)}let k=1,A=1;const S=[],m=[];let C=0;for(const F of x){let I,M,z;switch(F.type){case r.db.LINETYPE.NOTE:gt.resetVerticalPos(),M=F.noteModel,await M_(h,M);break;case r.db.LINETYPE.ACTIVE_START:gt.newActivation(F,h,u);break;case r.db.LINETYPE.ACTIVE_END:T(F,gt.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st));break;case r.db.LINETYPE.LOOP_END:I=gt.endLoop(),await he.drawLoop(h,I,"loop",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;case r.db.LINETYPE.RECT_START:Ci(v,F,Z.boxMargin,Z.boxMargin,st=>gt.newLoop(void 0,st.message));break;case r.db.LINETYPE.RECT_END:I=gt.endLoop(),m.push(I),gt.models.addLoop(I),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos());break;case r.db.LINETYPE.OPT_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st));break;case r.db.LINETYPE.OPT_END:I=gt.endLoop(),await he.drawLoop(h,I,"opt",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;case r.db.LINETYPE.ALT_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st));break;case r.db.LINETYPE.ALT_ELSE:Ci(v,F,Z.boxMargin+Z.boxTextMargin,Z.boxMargin,st=>gt.addSectionToLoop(st));break;case r.db.LINETYPE.ALT_END:I=gt.endLoop(),await he.drawLoop(h,I,"alt",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st)),gt.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:Ci(v,F,Z.boxMargin+Z.boxTextMargin,Z.boxMargin,st=>gt.addSectionToLoop(st));break;case r.db.LINETYPE.PAR_END:I=gt.endLoop(),await he.drawLoop(h,I,"par",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;case r.db.LINETYPE.AUTONUMBER:k=F.message.start||k,A=F.message.step||A,F.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st));break;case r.db.LINETYPE.CRITICAL_OPTION:Ci(v,F,Z.boxMargin+Z.boxTextMargin,Z.boxMargin,st=>gt.addSectionToLoop(st));break;case r.db.LINETYPE.CRITICAL_END:I=gt.endLoop(),await he.drawLoop(h,I,"critical",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;case r.db.LINETYPE.BREAK_START:Ci(v,F,Z.boxMargin,Z.boxMargin+Z.boxTextMargin,st=>gt.newLoop(st));break;case r.db.LINETYPE.BREAK_END:I=gt.endLoop(),await he.drawLoop(h,I,"break",Z),gt.bumpVerticalPos(I.stopy-gt.getVerticalPos()),gt.models.addLoop(I);break;default:try{z=F.msgModel,z.starty=gt.getVerticalPos(),z.sequenceIndex=k,z.sequenceVisible=r.db.showSequenceNumbers();const st=await V_(h,z);W_(F,z,st,C,u,p,d),S.push({messageModel:z,lineStartY:st}),gt.models.addMessage(z)}catch(st){B.error("error while drawing message",st)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT].includes(F.type)&&(k=k+A),C++}B.debug("createdActors",p),B.debug("destroyedActors",d),await go(h,u,y,!1);for(const F of S)await z_(h,F.messageModel,F.lineStartY,r);Z.mirrorActors&&await go(h,u,y,!0),m.forEach(F=>he.drawBackgroundRect(h,F)),M0(h,u,y,Z);for(const F of gt.models.boxes)F.height=gt.getVerticalPos()-F.y,gt.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",await he.drawBox(h,F,Z);w&>.bumpVerticalPos(Z.boxMargin);const f=q0(h,u,y,l),{bounds:L}=gt.getBounds();let b=L.stopy-L.starty;b{const a=Lr(Z);let o=n.actorKeys.reduce((u,p)=>u+=t[p].width+(t[p].margin||0),0);o-=2*Z.boxTextMargin,n.wrap&&(n.name=Rt.wrapLabel(n.name,o-2*Z.wrapPadding,a));const l=Rt.calculateTextDimensions(n.name,a);s=mt.getMax(l.height,s);const h=mt.getMax(o,l.width+2*Z.wrapPadding);if(n.margin=Z.boxTextMargin,on.textMaxHeight=s),mt.getMax(r,Z.height)}const j_=async function(t,e,i){const r=e[t.from].x,s=e[t.to].x,n=t.wrap&&t.message;let a=fi(t.message)?await Ks(t.message,Y()):Rt.calculateTextDimensions(n?Rt.wrapLabel(t.message,Z.width,Yr(Z)):t.message,Yr(Z));const o={width:n?Z.width:mt.getMax(Z.width,a.width+2*Z.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===i.db.PLACEMENT.RIGHTOF?(o.width=n?mt.getMax(Z.width,a.width):mt.getMax(e[t.from].width/2+e[t.to].width/2,a.width+2*Z.noteMargin),o.startx=r+(e[t.from].width+Z.actorMargin)/2):t.placement===i.db.PLACEMENT.LEFTOF?(o.width=n?mt.getMax(Z.width,a.width+2*Z.noteMargin):mt.getMax(e[t.from].width/2+e[t.to].width/2,a.width+2*Z.noteMargin),o.startx=r-o.width+(e[t.from].width-Z.actorMargin)/2):t.to===t.from?(a=Rt.calculateTextDimensions(n?Rt.wrapLabel(t.message,mt.getMax(Z.width,e[t.from].width),Yr(Z)):t.message,Yr(Z)),o.width=n?mt.getMax(Z.width,e[t.from].width):mt.getMax(e[t.from].width,Z.width,a.width+2*Z.noteMargin),o.startx=r+(e[t.from].width-o.width)/2):(o.width=Math.abs(r+e[t.from].width/2-(s+e[t.to].width/2))+Z.actorMargin,o.startx=r2,p=x=>o?-x:x;t.from===t.to?h=l:(t.activate&&!u&&(h+=p(Z.activationWidth/2-1)),[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=p(3)));const d=[r,s,n,a],g=Math.abs(l-h);t.wrap&&t.message&&(t.message=Rt.wrapLabel(t.message,mt.getMax(g+2*Z.wrapPadding,Z.width),Lr(Z)));const y=Rt.calculateTextDimensions(t.message,Lr(Z));return{width:mt.getMax(t.wrap?0:y.width+2*Z.wrapPadding,g+2*Z.wrapPadding,Z.width),height:0,startx:l,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,d),toBounds:Math.max.apply(null,d)}},$_=async function(t,e,i,r){const s={},n=[];let a,o,l;for(const h of t){switch(h.id=Rt.random({length:10}),h.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:n.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:h.message&&(a=n.pop(),s[a.id]=a,s[h.id]=a,n.push(a));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:a=n.pop(),s[a.id]=a;break;case r.db.LINETYPE.ACTIVE_START:{const p=e[h.from?h.from.actor:h.to.actor],d=ma(h.from?h.from.actor:h.to.actor).length,g=p.x+p.width/2+(d-1)*Z.activationWidth/2,y={startx:g,stopx:g+Z.activationWidth,actor:h.from.actor,enabled:!0};gt.activations.push(y)}break;case r.db.LINETYPE.ACTIVE_END:{const p=gt.activations.map(d=>d.actor).lastIndexOf(h.from.actor);delete gt.activations.splice(p,1)[0]}break}h.placement!==void 0?(o=await j_(h,e,r),h.noteModel=o,n.forEach(p=>{a=p,a.from=mt.getMin(a.from,o.startx),a.to=mt.getMax(a.to,o.startx+o.width),a.width=mt.getMax(a.width,Math.abs(a.from-a.to))-Z.labelBoxWidth})):(l=X_(h,e,r),h.msgModel=l,l.startx&&l.stopx&&n.length>0&&n.forEach(p=>{if(a=p,l.startx===l.stopx){const d=e[h.from],g=e[h.to];a.from=mt.getMin(d.x-l.width/2,d.x-d.width/2,a.from),a.to=mt.getMax(g.x+l.width/2,g.x+d.width/2,a.to),a.width=mt.getMax(a.width,Math.abs(a.to-a.from))-Z.labelBoxWidth}else a.from=mt.getMin(l.startx,a.from),a.to=mt.getMax(l.stopx,a.to),a.width=mt.getMax(a.width,l.width)-Z.labelBoxWidth}))}return gt.activations=[],B.debug("Loop type widths:",s),s},K_={bounds:gt,drawActors:go,drawActorsPopup:q0,setConf:W0,draw:Y_},Q_={parser:j6,db:Pc,renderer:K_,styles:b_,init:({wrap:t})=>{Pc.setWrap(t)}},Z_=Object.freeze(Object.defineProperty({__proto__:null,diagram:Q_},Symbol.toStringTag,{value:"Module"}));var yo=(function(){var t=function(Wt,pt,ut,ot){for(ut=ut||{},ot=Wt.length;ot--;ut[Wt[ot]]=pt);return ut},e=[1,17],i=[1,18],r=[1,19],s=[1,39],n=[1,40],a=[1,25],o=[1,23],l=[1,24],h=[1,31],u=[1,32],p=[1,33],d=[1,34],g=[1,35],y=[1,36],x=[1,26],_=[1,27],w=[1,28],E=[1,29],R=[1,43],v=[1,30],T=[1,42],k=[1,44],A=[1,41],S=[1,45],m=[1,9],C=[1,8,9],f=[1,56],L=[1,57],b=[1,58],P=[1,59],U=[1,60],N=[1,61],D=[1,62],F=[1,8,9,39],I=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],z=[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],st=[13,74,80,95,97,98],j=[13,64,65,74,80,95,97,98],dt=[13,59,60,61,62,63,74,80,95,97,98],K=[1,93],G=[1,110],tt=[1,108],nt=[1,102],Q=[1,103],J=[1,104],O=[1,105],at=[1,106],W=[1,107],ft=[1,109],V=[1,8,9,37,39,42],vt=[1,8,9,21],X=[1,8,9,78],St=[1,8,9,21,73,74,78,80,81,82,83,84,85],bt={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(pt,ut,ot,lt,ht,$,rt){var it=$.length-1;switch(ht){case 8:this.$=$[it-1];break;case 9:case 11:case 12:this.$=$[it];break;case 10:case 13:this.$=$[it-1]+$[it];break;case 14:case 15:this.$=$[it-1]+"~"+$[it]+"~";break;case 16:lt.addRelation($[it]);break;case 17:$[it-1].title=lt.cleanupLabel($[it]),lt.addRelation($[it-1]);break;case 27:this.$=$[it].trim(),lt.setAccTitle(this.$);break;case 28:case 29:this.$=$[it].trim(),lt.setAccDescription(this.$);break;case 30:lt.addClassesToNamespace($[it-3],$[it-1]);break;case 31:lt.addClassesToNamespace($[it-4],$[it-1]);break;case 32:this.$=$[it],lt.addNamespace($[it]);break;case 33:this.$=[$[it]];break;case 34:this.$=[$[it-1]];break;case 35:$[it].unshift($[it-2]),this.$=$[it];break;case 37:lt.setCssClass($[it-2],$[it]);break;case 38:lt.addMembers($[it-3],$[it-1]);break;case 39:lt.setCssClass($[it-5],$[it-3]),lt.addMembers($[it-5],$[it-1]);break;case 40:this.$=$[it],lt.addClass($[it]);break;case 41:this.$=$[it-1],lt.addClass($[it-1]),lt.setClassLabel($[it-1],$[it]);break;case 42:lt.addAnnotation($[it],$[it-2]);break;case 43:this.$=[$[it]];break;case 44:$[it].push($[it-1]),this.$=$[it];break;case 45:break;case 46:lt.addMember($[it-1],lt.cleanupLabel($[it]));break;case 47:break;case 48:break;case 49:this.$={id1:$[it-2],id2:$[it],relation:$[it-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:$[it-3],id2:$[it],relation:$[it-1],relationTitle1:$[it-2],relationTitle2:"none"};break;case 51:this.$={id1:$[it-3],id2:$[it],relation:$[it-2],relationTitle1:"none",relationTitle2:$[it-1]};break;case 52:this.$={id1:$[it-4],id2:$[it],relation:$[it-2],relationTitle1:$[it-3],relationTitle2:$[it-1]};break;case 53:lt.addNote($[it],$[it-1]);break;case 54:lt.addNote($[it]);break;case 55:lt.setDirection("TB");break;case 56:lt.setDirection("BT");break;case 57:lt.setDirection("RL");break;case 58:lt.setDirection("LR");break;case 59:this.$={type1:$[it-2],type2:$[it],lineType:$[it-1]};break;case 60:this.$={type1:"none",type2:$[it],lineType:$[it-1]};break;case 61:this.$={type1:$[it-1],type2:"none",lineType:$[it]};break;case 62:this.$={type1:"none",type2:"none",lineType:$[it]};break;case 63:this.$=lt.relationType.AGGREGATION;break;case 64:this.$=lt.relationType.EXTENSION;break;case 65:this.$=lt.relationType.COMPOSITION;break;case 66:this.$=lt.relationType.DEPENDENCY;break;case 67:this.$=lt.relationType.LOLLIPOP;break;case 68:this.$=lt.lineType.LINE;break;case 69:this.$=lt.lineType.DOTTED_LINE;break;case 70:case 76:this.$=$[it-2],lt.setClickEvent($[it-1],$[it]);break;case 71:case 77:this.$=$[it-3],lt.setClickEvent($[it-2],$[it-1]),lt.setTooltip($[it-2],$[it]);break;case 72:this.$=$[it-2],lt.setLink($[it-1],$[it]);break;case 73:this.$=$[it-3],lt.setLink($[it-2],$[it-1],$[it]);break;case 74:this.$=$[it-3],lt.setLink($[it-2],$[it-1]),lt.setTooltip($[it-2],$[it]);break;case 75:this.$=$[it-4],lt.setLink($[it-3],$[it-2],$[it]),lt.setTooltip($[it-3],$[it-1]);break;case 78:this.$=$[it-3],lt.setClickEvent($[it-2],$[it-1],$[it]);break;case 79:this.$=$[it-4],lt.setClickEvent($[it-3],$[it-2],$[it-1]),lt.setTooltip($[it-3],$[it]);break;case 80:this.$=$[it-3],lt.setLink($[it-2],$[it]);break;case 81:this.$=$[it-4],lt.setLink($[it-3],$[it-1],$[it]);break;case 82:this.$=$[it-4],lt.setLink($[it-3],$[it-1]),lt.setTooltip($[it-3],$[it]);break;case 83:this.$=$[it-5],lt.setLink($[it-4],$[it-2],$[it]),lt.setTooltip($[it-4],$[it-1]);break;case 84:this.$=$[it-2],lt.setCssStyle($[it-1],$[it]);break;case 85:lt.setCssClass($[it-1],$[it]);break;case 86:this.$=[$[it]];break;case 87:$[it-2].push($[it]),this.$=$[it-2];break;case 89:this.$=$[it-1]+$[it];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:e,33:i,35:r,36:21,40:s,41:22,44:n,45:a,47:o,48:l,50:h,52:u,53:p,54:d,55:g,56:y,66:x,67:_,69:w,73:E,74:R,76:v,80:T,95:k,97:A,98:S},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(m,[2,5],{8:[1,46]}),{8:[1,47]},t(C,[2,16],{21:[1,48]}),t(C,[2,18]),t(C,[2,19]),t(C,[2,20]),t(C,[2,21]),t(C,[2,22]),t(C,[2,23]),t(C,[2,24]),t(C,[2,25]),t(C,[2,26]),{32:[1,49]},{34:[1,50]},t(C,[2,29]),t(C,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:f,60:L,61:b,62:P,63:U,64:N,65:D}),{37:[1,63]},t(F,[2,36],{37:[1,65],42:[1,64]}),t(C,[2,47]),t(C,[2,48]),{16:66,74:R,80:T,95:k,97:A},{16:37,17:67,18:38,74:R,80:T,95:k,97:A,98:S},{16:37,17:68,18:38,74:R,80:T,95:k,97:A,98:S},{16:37,17:69,18:38,74:R,80:T,95:k,97:A,98:S},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:R,80:T,95:k,97:A,98:S},{13:I,51:73},t(C,[2,55]),t(C,[2,56]),t(C,[2,57]),t(C,[2,58]),t(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:R,80:T,95:k,97:A,98:S}),t(M,[2,12],{19:[1,77]}),{15:78,16:79,74:R,80:T,95:k,97:A},{16:37,17:80,18:38,74:R,80:T,95:k,97:A,98:S},t(z,[2,112]),t(z,[2,113]),t(z,[2,114]),t(z,[2,115]),t([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),t(m,[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:e,33:i,35:r,40:s,44:n,45:a,47:o,48:l,50:h,52:u,53:p,54:d,55:g,56:y,66:x,67:_,69:w,73:E,74:R,76:v,80:T,95:k,97:A,98:S}),{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:e,33:i,35:r,36:21,40:s,41:22,44:n,45:a,47:o,48:l,50:h,52:u,53:p,54:d,55:g,56:y,66:x,67:_,69:w,73:E,74:R,76:v,80:T,95:k,97:A,98:S},t(C,[2,17]),t(C,[2,27]),t(C,[2,28]),{13:[1,84],16:37,17:83,18:38,74:R,80:T,95:k,97:A,98:S},{49:85,57:54,58:55,59:f,60:L,61:b,62:P,63:U,64:N,65:D},t(C,[2,46]),{58:86,64:N,65:D},t(st,[2,62],{57:87,59:f,60:L,61:b,62:P,63:U}),t(j,[2,63]),t(j,[2,64]),t(j,[2,65]),t(j,[2,66]),t(j,[2,67]),t(dt,[2,68]),t(dt,[2,69]),{8:[1,89],23:90,38:88,41:22,44:n},{16:91,74:R,80:T,95:k,97:A},{43:92,47:K},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:G,73:tt,74:nt,75:99,77:100,79:101,80:Q,81:J,82:O,83:at,84:W,85:ft},{74:[1,111]},{13:I,51:112},t(C,[2,54]),t(C,[2,117]),t(M,[2,13]),t(M,[2,14]),t(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:R,80:T,95:k,97:A},t(V,[2,40],{11:114,12:[1,115]}),t(m,[2,7]),{9:[1,116]},t(vt,[2,49]),{16:37,17:117,18:38,74:R,80:T,95:k,97:A,98:S},{13:[1,119],16:37,17:118,18:38,74:R,80:T,95:k,97:A,98:S},t(st,[2,61],{57:120,59:f,60:L,61:b,62:P,63:U}),t(st,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:n},{8:[1,123],39:[2,33]},t(F,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:K},{16:37,17:127,18:38,74:R,80:T,95:k,97:A,98:S},t(C,[2,70],{13:[1,128]}),t(C,[2,72],{13:[1,130],68:[1,129]}),t(C,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},t(C,[2,84],{78:[1,134]}),t(X,[2,86],{79:135,21:G,73:tt,74:nt,80:Q,81:J,82:O,83:at,84:W,85:ft}),t(St,[2,88]),t(St,[2,90]),t(St,[2,91]),t(St,[2,92]),t(St,[2,93]),t(St,[2,94]),t(St,[2,95]),t(St,[2,96]),t(St,[2,97]),t(St,[2,98]),t(C,[2,85]),t(C,[2,53]),{37:[2,10]},t(V,[2,41]),{13:[1,136]},{1:[2,4]},t(vt,[2,51]),t(vt,[2,50]),{16:37,17:137,18:38,74:R,80:T,95:k,97:A,98:S},t(st,[2,59]),t(C,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:n},{43:140,47:K},t(F,[2,38]),{39:[2,44]},t(C,[2,42]),t(C,[2,71]),t(C,[2,73]),t(C,[2,74],{68:[1,141]}),t(C,[2,77]),t(C,[2,78],{13:[1,142]}),t(C,[2,80],{13:[1,144],68:[1,143]}),{21:G,73:tt,74:nt,77:145,79:101,80:Q,81:J,82:O,83:at,84:W,85:ft},t(St,[2,89]),{14:[1,146]},t(vt,[2,52]),t(C,[2,31]),{39:[2,35]},{39:[1,147]},t(C,[2,75]),t(C,[2,79]),t(C,[2,81]),t(C,[2,82],{68:[1,148]}),t(X,[2,87],{79:135,21:G,73:tt,74:nt,80:Q,81:J,82:O,83:at,84:W,85:ft}),t(V,[2,8]),t(F,[2,39]),t(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(pt,ut){if(ut.recoverable)this.trace(pt);else{var ot=new Error(pt);throw ot.hash=ut,ot}},parse:function(pt){var ut=this,ot=[0],lt=[],ht=[null],$=[],rt=this.table,it="",ct=0,re=0,Qt=2,de=1,zt=$.slice.call(arguments,1),Gt=Object.create(this.lexer),qt={yy:{}};for(var Ee in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ee)&&(qt.yy[Ee]=this.yy[Ee]);Gt.setInput(pt,qt.yy),qt.yy.lexer=Gt,qt.yy.parser=this,typeof Gt.yylloc>"u"&&(Gt.yylloc={});var fe=Gt.yylloc;$.push(fe);var sr=Gt.options&&Gt.options.ranges;typeof qt.yy.parseError=="function"?this.parseError=qt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vr(){var It;return It=lt.pop()||Gt.lex()||de,typeof It!="number"&&(It instanceof Array&&(lt=It,It=lt.pop()),It=ut.symbols_[It]||It),It}for(var me,jt,se,Ot,Zt={},Dt,Yt,Ut,Pt;;){if(jt=ot[ot.length-1],this.defaultActions[jt]?se=this.defaultActions[jt]:((me===null||typeof me>"u")&&(me=Vr()),se=rt[jt]&&rt[jt][me]),typeof se>"u"||!se.length||!se[0]){var Nt="";Pt=[];for(Dt in rt[jt])this.terminals_[Dt]&&Dt>Qt&&Pt.push("'"+this.terminals_[Dt]+"'");Gt.showPosition?Nt="Parse error on line "+(ct+1)+`: +`+Gt.showPosition()+` +Expecting `+Pt.join(", ")+", got '"+(this.terminals_[me]||me)+"'":Nt="Parse error on line "+(ct+1)+": Unexpected "+(me==de?"end of input":"'"+(this.terminals_[me]||me)+"'"),this.parseError(Nt,{text:Gt.match,token:this.terminals_[me]||me,line:Gt.yylineno,loc:fe,expected:Pt})}if(se[0]instanceof Array&&se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+jt+", token: "+me);switch(se[0]){case 1:ot.push(me),ht.push(Gt.yytext),$.push(Gt.yylloc),ot.push(se[1]),me=null,re=Gt.yyleng,it=Gt.yytext,ct=Gt.yylineno,fe=Gt.yylloc;break;case 2:if(Yt=this.productions_[se[1]][1],Zt.$=ht[ht.length-Yt],Zt._$={first_line:$[$.length-(Yt||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(Yt||1)].first_column,last_column:$[$.length-1].last_column},sr&&(Zt._$.range=[$[$.length-(Yt||1)].range[0],$[$.length-1].range[1]]),Ot=this.performAction.apply(Zt,[it,re,ct,qt.yy,se[1],ht,$].concat(zt)),typeof Ot<"u")return Ot;Yt&&(ot=ot.slice(0,-1*Yt*2),ht=ht.slice(0,-1*Yt),$=$.slice(0,-1*Yt)),ot.push(this.productions_[se[1]][0]),ht.push(Zt.$),$.push(Zt._$),Ut=rt[ot[ot.length-2]][ot[ot.length-1]],ot.push(Ut);break;case 3:return!0}}return!0}},Vt=(function(){var Wt={EOF:1,parseError:function(ut,ot){if(this.yy.parser)this.yy.parser.parseError(ut,ot);else throw new Error(ut)},setInput:function(pt,ut){return this.yy=ut||this.yy||{},this._input=pt,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 pt=this._input[0];this.yytext+=pt,this.yyleng++,this.offset++,this.match+=pt,this.matched+=pt;var ut=pt.match(/(?:\r\n?|\n).*/g);return ut?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),pt},unput:function(pt){var ut=pt.length,ot=pt.split(/(?:\r\n?|\n)/g);this._input=pt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ut),this.offset-=ut;var lt=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),ot.length-1&&(this.yylineno-=ot.length-1);var ht=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:ot?(ot.length===lt.length?this.yylloc.first_column:0)+lt[lt.length-ot.length].length-ot[0].length:this.yylloc.first_column-ut},this.options.ranges&&(this.yylloc.range=[ht[0],ht[0]+this.yyleng-ut]),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(pt){this.unput(this.match.slice(pt))},pastInput:function(){var pt=this.matched.substr(0,this.matched.length-this.match.length);return(pt.length>20?"...":"")+pt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var pt=this.match;return pt.length<20&&(pt+=this._input.substr(0,20-pt.length)),(pt.substr(0,20)+(pt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pt=this.pastInput(),ut=new Array(pt.length+1).join("-");return pt+this.upcomingInput()+` +`+ut+"^"},test_match:function(pt,ut){var ot,lt,ht;if(this.options.backtrack_lexer&&(ht={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ht.yylloc.range=this.yylloc.range.slice(0))),lt=pt[0].match(/(?:\r\n?|\n).*/g),lt&&(this.yylineno+=lt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lt?lt[lt.length-1].length-lt[lt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+pt[0].length},this.yytext+=pt[0],this.match+=pt[0],this.matches=pt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(pt[0].length),this.matched+=pt[0],ot=this.performAction.call(this,this.yy,this,ut,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ot)return ot;if(this._backtrack){for(var $ in ht)this[$]=ht[$];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var pt,ut,ot,lt;this._more||(this.yytext="",this.match="");for(var ht=this._currentRules(),$=0;$ut[0].length)){if(ut=ot,lt=$,this.options.backtrack_lexer){if(pt=this.test_match(ot,ht[$]),pt!==!1)return pt;if(this._backtrack){ut=!1;continue}else return!1}else if(!this.options.flex)break}return ut?(pt=this.test_match(ut,ht[lt]),pt!==!1?pt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ut=this.next();return ut||this.lex()},begin:function(ut){this.conditionStack.push(ut)},popState:function(){var ut=this.conditionStack.length-1;return ut>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ut){return ut=this.conditionStack.length-1-Math.abs(ut||0),ut>=0?this.conditionStack[ut]:"INITIAL"},pushState:function(ut){this.begin(ut)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ut,ot,lt,ht){switch(lt){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return Wt})();bt.lexer=Vt;function Bt(){this.yy={}}return Bt.prototype=bt,bt.Parser=Bt,new Bt})();yo.parser=yo;const Y0=yo,Vc=["#","+","~","-",""];class zc{constructor(e,i){this.memberType=i,this.visibility="",this.classifier="";const r=te(e,Y());this.parseMember(r)}getDisplayDetails(){let e=this.visibility+_s(this.id);this.memberType==="method"&&(e+=`(${_s(this.parameters.trim())})`,this.returnType&&(e+=" : "+_s(this.returnType))),e=e.trim();const i=this.parseClassifier();return{displayText:e,cssStyle:i}}parseMember(e){let i="";if(this.memberType==="method"){const r=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,s=e.match(r);if(s){const n=s[1]?s[1].trim():"";if(Vc.includes(n)&&(this.visibility=n),this.id=s[2].trim(),this.parameters=s[3]?s[3].trim():"",i=s[4]?s[4].trim():"",this.returnType=s[5]?s[5].trim():"",i===""){const a=this.returnType.substring(this.returnType.length-1);a.match(/[$*]/)&&(i=a,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const r=e.length,s=e.substring(0,1),n=e.substring(r-1);Vc.includes(s)&&(this.visibility=s),n.match(/[$*]/)&&(i=n),this.id=e.substring(this.visibility===""?0:1,i===""?r:r-1)}this.classifier=i}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const xa="classId-";let Cl=[],Jt={},$n=[],qc=0,gr={},mo=0,Ws=[];const Br=t=>mt.sanitizeText(t,Y()),Ir=function(t){const e=mt.sanitizeText(t,Y());let i="",r=e;if(e.indexOf("~")>0){const s=e.split("~");r=Br(s[0]),i=Br(s[1])}return{className:r,type:i}},J_=function(t,e){const i=mt.sanitizeText(t,Y());e&&(e=Br(e));const{className:r}=Ir(i);Jt[r].label=e},Kn=function(t){const e=mt.sanitizeText(t,Y()),{className:i,type:r}=Ir(e);if(Object.hasOwn(Jt,i))return;const s=mt.sanitizeText(i,Y());Jt[s]={id:s,type:r,label:s,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:xa+s+"-"+qc},qc++},U0=function(t){const e=mt.sanitizeText(t,Y());if(e in Jt)return Jt[e].domId;throw new Error("Class not found: "+e)},t7=function(){Cl=[],Jt={},$n=[],Ws=[],Ws.push(G0),gr={},mo=0,Oe()},e7=function(t){return Jt[t]},i7=function(){return Jt},r7=function(){return Cl},s7=function(){return $n},n7=function(t){B.debug("Adding relation: "+JSON.stringify(t)),Kn(t.id1),Kn(t.id2),t.id1=Ir(t.id1).className,t.id2=Ir(t.id2).className,t.relationTitle1=mt.sanitizeText(t.relationTitle1.trim(),Y()),t.relationTitle2=mt.sanitizeText(t.relationTitle2.trim(),Y()),Cl.push(t)},a7=function(t,e){const i=Ir(t).className;Jt[i].annotations.push(e)},H0=function(t,e){Kn(t);const i=Ir(t).className,r=Jt[i];if(typeof e=="string"){const s=e.trim();s.startsWith("<<")&&s.endsWith(">>")?r.annotations.push(Br(s.substring(2,s.length-2))):s.indexOf(")")>0?r.methods.push(new zc(s,"method")):s&&r.members.push(new zc(s,"attribute"))}},o7=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(i=>H0(t,i)))},l7=function(t,e){const i={id:`note${$n.length}`,class:e,text:t};$n.push(i)},c7=function(t){return t.startsWith(":")&&(t=t.substring(1)),Br(t.trim())},El=function(t,e){t.split(",").forEach(function(i){let r=i;i[0].match(/\d/)&&(r=xa+r),Jt[r]!==void 0&&Jt[r].cssClasses.push(e)})},h7=function(t,e){t.split(",").forEach(function(i){e!==void 0&&(Jt[i].tooltip=Br(e))})},u7=function(t,e){return e?gr[e].classes[t].tooltip:Jt[t].tooltip},d7=function(t,e,i){const r=Y();t.split(",").forEach(function(s){let n=s;s[0].match(/\d/)&&(n=xa+n),Jt[n]!==void 0&&(Jt[n].link=Rt.formatUrl(e,r),r.securityLevel==="sandbox"?Jt[n].linkTarget="_top":typeof i=="string"?Jt[n].linkTarget=Br(i):Jt[n].linkTarget="_blank")}),El(t,"clickable")},f7=function(t,e,i){t.split(",").forEach(function(r){p7(r,e,i),Jt[r].haveCallback=!0}),El(t,"clickable")},p7=function(t,e,i){const r=mt.sanitizeText(t,Y());if(Y().securityLevel!=="loose"||e===void 0)return;const n=r;if(Jt[n]!==void 0){const a=U0(n);let o=[];if(typeof i=="string"){o=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l")),s.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),yt(this).classed("hover",!1)})};Ws.push(G0);let j0="TB";const x7=()=>j0,b7=t=>{j0=t},k7=function(t){gr[t]===void 0&&(gr[t]={id:t,classes:{},children:{},domId:xa+t+"-"+mo},mo++)},_7=function(t){return gr[t]},T7=function(){return gr},C7=function(t,e){if(gr[t]!==void 0)for(const i of e){const{className:r}=Ir(i);Jt[r].parent=t,gr[t].classes[r]=Jt[r]}},E7=function(t,e){const i=Jt[t];if(!(!e||!i))for(const r of e)r.includes(",")?i.styles.push(...r.split(",")):i.styles.push(r)},Qn={setAccTitle:Pe,getAccTitle:Ye,getAccDescription:He,setAccDescription:Ue,getConfig:()=>Y().class,addClass:Kn,bindFunctions:g7,clear:t7,getClass:e7,getClasses:i7,getNotes:s7,addAnnotation:a7,addNote:l7,getRelations:r7,addRelation:n7,getDirection:x7,setDirection:b7,addMember:H0,addMembers:o7,cleanupLabel:c7,lineType:y7,relationType:m7,setClickEvent:f7,setCssClass:El,setLink:d7,getTooltip:u7,setTooltip:h7,lookUpDomId:U0,setDiagramTitle:ri,getDiagramTitle:Ge,setClassLabel:J_,addNamespace:k7,addClassesToNamespace:C7,getNamespace:_7,getNamespaces:T7,setCssStyle:E7},S7=t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,X0=S7;let Wc=0;const w7=function(t,e,i,r,s){const n=function(E){switch(E){case s.db.relationType.AGGREGATION:return"aggregation";case s.db.relationType.EXTENSION:return"extension";case s.db.relationType.COMPOSITION:return"composition";case s.db.relationType.DEPENDENCY:return"dependency";case s.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter(E=>!Number.isNaN(E.y));const a=e.points,o=fr().x(function(E){return E.x}).y(function(E){return E.y}).curve($s),l=t.append("path").attr("d",o(a)).attr("id","edge"+Wc).attr("class","relation");let h="";r.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),i.relation.lineType==1&&l.attr("class","relation dashed-line"),i.relation.lineType==10&&l.attr("class","relation dotted-line"),i.relation.type1!=="none"&&l.attr("marker-start","url("+h+"#"+n(i.relation.type1)+"Start)"),i.relation.type2!=="none"&&l.attr("marker-end","url("+h+"#"+n(i.relation.type2)+"End)");let u,p;const d=e.points.length;let g=Rt.calcLabelPosition(e.points);u=g.x,p=g.y;let y,x,_,w;if(d%2!==0&&d>1){let E=Rt.calcCardinalityPosition(i.relation.type1!=="none",e.points,e.points[0]),R=Rt.calcCardinalityPosition(i.relation.type2!=="none",e.points,e.points[d-1]);B.debug("cardinality_1_point "+JSON.stringify(E)),B.debug("cardinality_2_point "+JSON.stringify(R)),y=E.x,x=E.y,_=R.x,w=R.y}if(i.title!==void 0){const E=t.append("g").attr("class","classLabel"),R=E.append("text").attr("class","label").attr("x",u).attr("y",p).attr("fill","red").attr("text-anchor","middle").text(i.title);window.label=R;const v=R.node().getBBox();E.insert("rect",":first-child").attr("class","box").attr("x",v.x-r.padding/2).attr("y",v.y-r.padding/2).attr("width",v.width+r.padding).attr("height",v.height+r.padding)}B.info("Rendering relation "+JSON.stringify(i)),i.relationTitle1!==void 0&&i.relationTitle1!=="none"&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",y).attr("y",x).attr("fill","black").attr("font-size","6").text(i.relationTitle1),i.relationTitle2!==void 0&&i.relationTitle2!=="none"&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",_).attr("y",w).attr("fill","black").attr("font-size","6").text(i.relationTitle2),Wc++},v7=function(t,e,i,r){B.debug("Rendering class ",e,i);const s=e.id,n={id:s,label:e.id,width:0,height:0},a=t.append("g").attr("id",r.db.lookUpDomId(s)).attr("class","classGroup");let o;e.link?o=a.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",i.textHeight+i.padding).attr("x",0):o=a.append("text").attr("y",i.textHeight+i.padding).attr("x",0);let l=!0;e.annotations.forEach(function(R){const v=o.append("tspan").text("«"+R+"»");l||v.attr("dy",i.textHeight),l=!1});let h=$0(e);const u=o.append("tspan").text(h).attr("class","title");l||u.attr("dy",i.textHeight);const p=o.node().getBBox().height;let d,g,y;if(e.members.length>0){d=a.append("line").attr("x1",0).attr("y1",i.padding+p+i.dividerMargin/2).attr("y2",i.padding+p+i.dividerMargin/2);const R=a.append("text").attr("x",i.padding).attr("y",p+i.dividerMargin+i.textHeight).attr("fill","white").attr("class","classText");l=!0,e.members.forEach(function(v){Yc(R,v,l,i),l=!1}),g=R.node().getBBox()}if(e.methods.length>0){y=a.append("line").attr("x1",0).attr("y1",i.padding+p+i.dividerMargin+g.height).attr("y2",i.padding+p+i.dividerMargin+g.height);const R=a.append("text").attr("x",i.padding).attr("y",p+2*i.dividerMargin+g.height+i.textHeight).attr("fill","white").attr("class","classText");l=!0,e.methods.forEach(function(v){Yc(R,v,l,i),l=!1})}const x=a.node().getBBox();var _=" ";e.cssClasses.length>0&&(_=_+e.cssClasses.join(" "));const E=a.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",x.width+2*i.padding).attr("height",x.height+i.padding+.5*i.dividerMargin).attr("class",_).node().getBBox().width;return o.node().childNodes.forEach(function(R){R.setAttribute("x",(E-R.getBBox().width)/2)}),e.tooltip&&o.insert("title").text(e.tooltip),d&&d.attr("x2",E),y&&y.attr("x2",E),n.width=E,n.height=x.height+i.padding+.5*i.dividerMargin,n},$0=function(t){let e=t.id;return t.type&&(e+="<"+_s(t.type)+">"),e},A7=function(t,e,i,r){B.debug("Rendering note ",e,i);const s=e.id,n={id:s,text:e.text,width:0,height:0},a=t.append("g").attr("id",s).attr("class","classGroup");let o=a.append("text").attr("y",i.textHeight+i.padding).attr("x",0);const l=JSON.parse(`"${e.text}"`).split(` +`);l.forEach(function(d){B.debug(`Adding line: ${d}`),o.append("tspan").text(d).attr("class","title").attr("dy",i.textHeight)});const h=a.node().getBBox(),p=a.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",h.width+2*i.padding).attr("height",h.height+l.length*i.textHeight+i.padding+.5*i.dividerMargin).node().getBBox().width;return o.node().childNodes.forEach(function(d){d.setAttribute("x",(p-d.getBBox().width)/2)}),n.width=p,n.height=h.height+l.length*i.textHeight+i.padding+.5*i.dividerMargin,n},Yc=function(t,e,i,r){const{displayText:s,cssStyle:n}=e.getDisplayDetails(),a=t.append("tspan").attr("x",r.padding).text(s);n!==""&&a.attr("style",e.cssStyle),i||a.attr("dy",r.textHeight)},Ra={getClassTitleString:$0,drawClass:v7,drawEdge:w7,drawNote:A7};let _n={};const fn=20,gs=function(t){const e=Object.entries(_n).find(i=>i[1].label===t);if(e)return e[0]},L7=function(t){t.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"),t.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"),t.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"),t.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"),t.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"),t.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"),t.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"),t.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")},B7=function(t,e,i,r){const s=Y().class;_n={},B.info("Rendering diagram "+t);const n=Y().securityLevel;let a;n==="sandbox"&&(a=yt("#i"+e));const o=n==="sandbox"?yt(a.nodes()[0].contentDocument.body):yt("body"),l=o.select(`[id='${e}']`);L7(l);const h=new Ii({multigraph:!0});h.setGraph({isMultiGraph:!0}),h.setDefaultEdgeLabel(function(){return{}});const u=r.db.getClasses(),p=Object.keys(u);for(const E of p){const R=u[E],v=Ra.drawClass(l,R,s,r);_n[v.id]=v,h.setNode(v.id,v),B.info("Org height: "+v.height)}r.db.getRelations().forEach(function(E){B.info("tjoho"+gs(E.id1)+gs(E.id2)+JSON.stringify(E)),h.setEdge(gs(E.id1),gs(E.id2),{relation:E},E.title||"DEFAULT")}),r.db.getNotes().forEach(function(E){B.debug(`Adding note: ${JSON.stringify(E)}`);const R=Ra.drawNote(l,E,s,r);_n[R.id]=R,h.setNode(R.id,R),E.class&&E.class in u&&h.setEdge(E.id,gs(E.class),{relation:{id1:E.id,id2:E.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),Xs(h),h.nodes().forEach(function(E){E!==void 0&&h.node(E)!==void 0&&(B.debug("Node "+E+": "+JSON.stringify(h.node(E))),o.select("#"+(r.db.lookUpDomId(E)||E)).attr("transform","translate("+(h.node(E).x-h.node(E).width/2)+","+(h.node(E).y-h.node(E).height/2)+" )"))}),h.edges().forEach(function(E){E!==void 0&&h.edge(E)!==void 0&&(B.debug("Edge "+E.v+" -> "+E.w+": "+JSON.stringify(h.edge(E))),Ra.drawEdge(l,h.edge(E),h.edge(E).relation,s,r))});const y=l.node().getBBox(),x=y.width+fn*2,_=y.height+fn*2;Ne(l,_,x,s.useMaxWidth);const w=`${y.x-fn} ${y.y-fn} ${x} ${_}`;B.debug(`viewBox ${w}`),l.attr("viewBox",w)},I7={draw:B7},D7={parser:Y0,db:Qn,renderer:I7,styles:X0,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qn.clear()}},F7=Object.freeze(Object.defineProperty({__proto__:null,diagram:D7},Symbol.toStringTag,{value:"Module"})),Sl=t=>mt.sanitizeText(t,Y());let xo={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const R7=function(t,e,i,r){const s=Object.keys(t);B.info("keys:",s),B.info(t),s.forEach(function(n){var a,o;const l=t[n],u={shape:"rect",id:l.id,domId:l.domId,labelText:Sl(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((a=Y().flowchart)==null?void 0:a.padding)??((o=Y().class)==null?void 0:o.padding)};e.setNode(l.id,u),K0(l.classes,e,i,r,l.id),B.info("setNode",u)})},K0=function(t,e,i,r,s){const n=Object.keys(t);B.info("keys:",n),B.info(t),n.filter(a=>t[a].parent==s).forEach(function(a){var o,l;const h=t[a],u=h.cssClasses.join(" "),p=ii(h.styles),d=h.label??h.id,g=0,x={labelStyle:p.labelStyle,shape:"class_box",labelText:Sl(d),classData:h,rx:g,ry:g,class:u,style:p.style,id:h.id,domId:h.domId,tooltip:r.db.getTooltip(h.id,s)||"",haveCallback:h.haveCallback,link:h.link,width:h.type==="group"?500:void 0,type:h.type,padding:((o=Y().flowchart)==null?void 0:o.padding)??((l=Y().class)==null?void 0:l.padding)};e.setNode(h.id,x),s&&e.setParent(h.id,s),B.info("setNode",x)})},N7=function(t,e,i,r){B.info(t),t.forEach(function(s,n){var a,o;const l=s,h="",u={labelStyle:"",style:""},p=l.text,d=0,y={labelStyle:u.labelStyle,shape:"note",labelText:Sl(p),noteData:l,rx:d,ry:d,class:h,style:u.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((a=Y().flowchart)==null?void 0:a.padding)??((o=Y().class)==null?void 0:o.padding)};if(e.setNode(l.id,y),B.info("setNode",y),!l.class||!(l.class in r))return;const x=i+n,_={id:`edgeNote${x}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:di(xo.curve,ei)};e.setEdge(l.id,l.class,_,x)})},O7=function(t,e){const i=Y().flowchart;let r=0;t.forEach(function(s){var n;r++;const a={classes:"relation",pattern:s.relation.lineType==1?"dashed":"solid",id:`id_${s.id1}_${s.id2}_${r}`,arrowhead:s.type==="arrow_open"?"none":"normal",startLabelRight:s.relationTitle1==="none"?"":s.relationTitle1,endLabelLeft:s.relationTitle2==="none"?"":s.relationTitle2,arrowTypeStart:Uc(s.relation.type1),arrowTypeEnd:Uc(s.relation.type2),style:"fill:none",labelStyle:"",curve:di(i?.curve,ei)};if(B.info(a,s),s.style!==void 0){const o=ii(s.style);a.style=o.style,a.labelStyle=o.labelStyle}s.text=s.title,s.text===void 0?s.style!==void 0&&(a.arrowheadStyle="fill: #333"):(a.arrowheadStyle="fill: #333",a.labelpos="c",((n=Y().flowchart)==null?void 0:n.htmlLabels)??Y().htmlLabels?(a.labelType="html",a.label=''+s.text+""):(a.labelType="text",a.label=s.text.replace(mt.lineBreakRegex,` +`),s.style===void 0&&(a.style=a.style||"stroke: #333; stroke-width: 1.5px;fill:none"),a.labelStyle=a.labelStyle.replace("color:","fill:"))),e.setEdge(s.id1,s.id2,a,r)})},P7=function(t){xo={...xo,...t}},M7=async function(t,e,i,r){B.info("Drawing class - ",e);const s=Y().flowchart??Y().class,n=Y().securityLevel;B.info("config:",s);const a=s?.nodeSpacing??50,o=s?.rankSpacing??50,l=new Ii({multigraph:!0,compound:!0}).setGraph({rankdir:r.db.getDirection(),nodesep:a,ranksep:o,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),h=r.db.getNamespaces(),u=r.db.getClasses(),p=r.db.getRelations(),d=r.db.getNotes();B.info(p),R7(h,l,e,r),K0(u,l,e,r),O7(p,l),N7(d,l,p.length+1,u);let g;n==="sandbox"&&(g=yt("#i"+e));const y=n==="sandbox"?yt(g.nodes()[0].contentDocument.body):yt("body"),x=y.select(`[id="${e}"]`),_=y.select("#"+e+" g");if(await rl(_,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),Rt.insertTitle(x,"classTitleText",s?.titleTopMargin??5,r.db.getDiagramTitle()),yr(l,x,s?.diagramPadding,s?.useMaxWidth),!s?.htmlLabels){const w=n==="sandbox"?g.nodes()[0].contentDocument:document,E=w.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const R of E){const v=R.getBBox(),T=w.createElementNS("http://www.w3.org/2000/svg","rect");T.setAttribute("rx",0),T.setAttribute("ry",0),T.setAttribute("width",v.width),T.setAttribute("height",v.height),R.insertBefore(T,R.firstChild)}}};function Uc(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const V7={setConf:P7,draw:M7},z7={parser:Y0,db:Qn,renderer:V7,styles:X0,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qn.clear()}},q7=Object.freeze(Object.defineProperty({__proto__:null,diagram:z7},Symbol.toStringTag,{value:"Module"}));var bo=(function(){var t=function(D,F,I,M){for(I=I||{},M=D.length;M--;I[D[M]]=F);return I},e=[1,2],i=[1,3],r=[1,4],s=[2,4],n=[1,9],a=[1,11],o=[1,15],l=[1,16],h=[1,17],u=[1,18],p=[1,30],d=[1,19],g=[1,20],y=[1,21],x=[1,22],_=[1,23],w=[1,25],E=[1,26],R=[1,27],v=[1,28],T=[1,29],k=[1,32],A=[1,33],S=[1,34],m=[1,35],C=[1,31],f=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],L=[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],b=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],P={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(F,I,M,z,st,j,dt){var K=j.length-1;switch(st){case 3:return z.setRootDoc(j[K]),j[K];case 4:this.$=[];break;case 5:j[K]!="nl"&&(j[K-1].push(j[K]),this.$=j[K-1]);break;case 6:case 7:this.$=j[K];break;case 8:this.$="nl";break;case 11:this.$=j[K];break;case 12:const Q=j[K-1];Q.description=z.trimColon(j[K]),this.$=Q;break;case 13:this.$={stmt:"relation",state1:j[K-2],state2:j[K]};break;case 14:const J=z.trimColon(j[K]);this.$={stmt:"relation",state1:j[K-3],state2:j[K-1],description:J};break;case 18:this.$={stmt:"state",id:j[K-3],type:"default",description:"",doc:j[K-1]};break;case 19:var G=j[K],tt=j[K-2].trim();if(j[K].match(":")){var nt=j[K].split(":");G=nt[0],tt=[tt,nt[1]]}this.$={stmt:"state",id:G,type:"default",description:tt};break;case 20:this.$={stmt:"state",id:j[K-3],type:"default",description:j[K-5],doc:j[K-1]};break;case 21:this.$={stmt:"state",id:j[K],type:"fork"};break;case 22:this.$={stmt:"state",id:j[K],type:"join"};break;case 23:this.$={stmt:"state",id:j[K],type:"choice"};break;case 24:this.$={stmt:"state",id:z.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:j[K-1].trim(),note:{position:j[K-2].trim(),text:j[K].trim()}};break;case 28:this.$=j[K].trim(),z.setAccTitle(this.$);break;case 29:case 30:this.$=j[K].trim(),z.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:j[K-1].trim(),classes:j[K].trim()};break;case 33:this.$={stmt:"applyClass",id:j[K-1].trim(),styleClass:j[K].trim()};break;case 34:z.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:z.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:z.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:z.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:j[K].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:j[K-2].trim(),classes:[j[K].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:j[K-2].trim(),classes:[j[K].trim()],type:"default",description:""};break}},table:[{3:1,4:e,5:i,6:r},{1:[3]},{3:5,4:e,5:i,6:r},{3:6,4:e,5:i,6:r},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],s,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:a,8:8,9:10,10:12,11:13,12:14,15:o,16:l,18:h,21:u,23:p,24:d,25:g,26:y,27:x,28:_,31:24,32:w,34:E,36:R,37:v,41:T,44:k,45:A,46:S,47:m,50:C},t(f,[2,5]),{9:36,10:12,11:13,12:14,15:o,16:l,18:h,21:u,23:p,24:d,25:g,26:y,27:x,28:_,31:24,32:w,34:E,36:R,37:v,41:T,44:k,45:A,46:S,47:m,50:C},t(f,[2,7]),t(f,[2,8]),t(f,[2,9]),t(f,[2,10]),t(f,[2,11],{13:[1,37],14:[1,38]}),t(f,[2,15]),{17:[1,39]},t(f,[2,17],{19:[1,40]}),{22:[1,41]},t(f,[2,21]),t(f,[2,22]),t(f,[2,23]),t(f,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(f,[2,27]),{33:[1,46]},{35:[1,47]},t(f,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(L,[2,40],{51:[1,51]}),t(L,[2,41],{51:[1,52]}),t(f,[2,34]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,6]),t(f,[2,12]),{12:53,23:p,50:C},t(f,[2,16]),t(b,s,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(f,[2,28]),t(f,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(f,[2,13],{13:[1,63]}),{4:n,5:a,8:8,9:10,10:12,11:13,12:14,15:o,16:l,18:h,20:[1,64],21:u,23:p,24:d,25:g,26:y,27:x,28:_,31:24,32:w,34:E,36:R,37:v,41:T,44:k,45:A,46:S,47:m,50:C},t(f,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(f,[2,31]),t(f,[2,32]),t(f,[2,33]),t(L,[2,42]),t(L,[2,43]),t(f,[2,14]),t(f,[2,18]),t(b,s,{7:68}),t(f,[2,25]),t(f,[2,26]),{4:n,5:a,8:8,9:10,10:12,11:13,12:14,15:o,16:l,18:h,20:[1,69],21:u,23:p,24:d,25:g,26:y,27:x,28:_,31:24,32:w,34:E,36:R,37:v,41:T,44:k,45:A,46:S,47:m,50:C},t(f,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(F,I){if(I.recoverable)this.trace(F);else{var M=new Error(F);throw M.hash=I,M}},parse:function(F){var I=this,M=[0],z=[],st=[null],j=[],dt=this.table,K="",G=0,tt=0,nt=2,Q=1,J=j.slice.call(arguments,1),O=Object.create(this.lexer),at={yy:{}};for(var W in this.yy)Object.prototype.hasOwnProperty.call(this.yy,W)&&(at.yy[W]=this.yy[W]);O.setInput(F,at.yy),at.yy.lexer=O,at.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ft=O.yylloc;j.push(ft);var V=O.options&&O.options.ranges;typeof at.yy.parseError=="function"?this.parseError=at.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function vt(){var ht;return ht=z.pop()||O.lex()||Q,typeof ht!="number"&&(ht instanceof Array&&(z=ht,ht=z.pop()),ht=I.symbols_[ht]||ht),ht}for(var X,St,bt,Vt,Bt={},Wt,pt,ut,ot;;){if(St=M[M.length-1],this.defaultActions[St]?bt=this.defaultActions[St]:((X===null||typeof X>"u")&&(X=vt()),bt=dt[St]&&dt[St][X]),typeof bt>"u"||!bt.length||!bt[0]){var lt="";ot=[];for(Wt in dt[St])this.terminals_[Wt]&&Wt>nt&&ot.push("'"+this.terminals_[Wt]+"'");O.showPosition?lt="Parse error on line "+(G+1)+`: +`+O.showPosition()+` +Expecting `+ot.join(", ")+", got '"+(this.terminals_[X]||X)+"'":lt="Parse error on line "+(G+1)+": Unexpected "+(X==Q?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(lt,{text:O.match,token:this.terminals_[X]||X,line:O.yylineno,loc:ft,expected:ot})}if(bt[0]instanceof Array&&bt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+St+", token: "+X);switch(bt[0]){case 1:M.push(X),st.push(O.yytext),j.push(O.yylloc),M.push(bt[1]),X=null,tt=O.yyleng,K=O.yytext,G=O.yylineno,ft=O.yylloc;break;case 2:if(pt=this.productions_[bt[1]][1],Bt.$=st[st.length-pt],Bt._$={first_line:j[j.length-(pt||1)].first_line,last_line:j[j.length-1].last_line,first_column:j[j.length-(pt||1)].first_column,last_column:j[j.length-1].last_column},V&&(Bt._$.range=[j[j.length-(pt||1)].range[0],j[j.length-1].range[1]]),Vt=this.performAction.apply(Bt,[K,tt,G,at.yy,bt[1],st,j].concat(J)),typeof Vt<"u")return Vt;pt&&(M=M.slice(0,-1*pt*2),st=st.slice(0,-1*pt),j=j.slice(0,-1*pt)),M.push(this.productions_[bt[1]][0]),st.push(Bt.$),j.push(Bt._$),ut=dt[M[M.length-2]][M[M.length-1]],M.push(ut);break;case 3:return!0}}return!0}},U=(function(){var D={EOF:1,parseError:function(I,M){if(this.yy.parser)this.yy.parser.parseError(I,M);else throw new Error(I)},setInput:function(F,I){return this.yy=I||this.yy||{},this._input=F,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 F=this._input[0];this.yytext+=F,this.yyleng++,this.offset++,this.match+=F,this.matched+=F;var I=F.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),F},unput:function(F){var I=F.length,M=F.split(/(?:\r\n?|\n)/g);this._input=F+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-I),this.offset-=I;var z=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 st=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===z.length?this.yylloc.first_column:0)+z[z.length-M.length].length-M[0].length:this.yylloc.first_column-I},this.options.ranges&&(this.yylloc.range=[st[0],st[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(F){this.unput(this.match.slice(F))},pastInput:function(){var F=this.matched.substr(0,this.matched.length-this.match.length);return(F.length>20?"...":"")+F.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var F=this.match;return F.length<20&&(F+=this._input.substr(0,20-F.length)),(F.substr(0,20)+(F.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var F=this.pastInput(),I=new Array(F.length+1).join("-");return F+this.upcomingInput()+` +`+I+"^"},test_match:function(F,I){var M,z,st;if(this.options.backtrack_lexer&&(st={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(st.yylloc.range=this.yylloc.range.slice(0))),z=F[0].match(/(?:\r\n?|\n).*/g),z&&(this.yylineno+=z.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:z?z[z.length-1].length-z[z.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+F[0].length},this.yytext+=F[0],this.match+=F[0],this.matches=F,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(F[0].length),this.matched+=F[0],M=this.performAction.call(this,this.yy,this,I,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),M)return M;if(this._backtrack){for(var j in st)this[j]=st[j];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var F,I,M,z;this._more||(this.yytext="",this.match="");for(var st=this._currentRules(),j=0;jI[0].length)){if(I=M,z=j,this.options.backtrack_lexer){if(F=this.test_match(M,st[j]),F!==!1)return F;if(this._backtrack){I=!1;continue}else return!1}else if(!this.options.flex)break}return I?(F=this.test_match(I,st[z]),F!==!1?F:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var I=this.next();return I||this.lex()},begin:function(I){this.conditionStack.push(I)},popState:function(){var I=this.conditionStack.length-1;return I>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(I){return I=this.conditionStack.length-1-Math.abs(I||0),I>=0?this.conditionStack[I]:"INITIAL"},pushState:function(I){this.begin(I)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(I,M,z,st){switch(z){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),M.yytext=M.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),M.yytext=M.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),M.yytext=M.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),M.yytext=M.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),M.yytext=M.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),M.yytext=M.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),M.yytext=M.yytext.substr(2).trim(),30;case 64:return this.popState(),M.yytext=M.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return M.yytext=M.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return D})();P.lexer=U;function N(){this.yy={}}return N.prototype=P,P.Parser=N,new N})();bo.parser=bo;const Q0=bo,W7="LR",Y7="TB",Zn="state",wl="relation",U7="classDef",H7="applyClass",an="default",Z0="divider",vl="[*]",J0="start",td=vl,ed="end",Hc="color",Gc="fill",G7="bgFill",j7=",";function id(){return{}}let rd=W7,Jn=[],vs=id();const sd=()=>({relations:[],states:{},documents:{}});let ta={root:sd()},Ie=ta.root,Ys=0,jc=0;const X7={LINE:0,DOTTED_LINE:1},$7={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},pn=t=>JSON.parse(JSON.stringify(t)),K7=t=>{B.info("Setting root doc",t),Jn=t},Q7=()=>Jn,Tn=(t,e,i)=>{if(e.stmt===wl)Tn(t,e.state1,!0),Tn(t,e.state2,!1);else if(e.stmt===Zn&&(e.id==="[*]"?(e.id=i?t.id+"_start":t.id+"_end",e.start=i):e.id=e.id.trim()),e.doc){const r=[];let s=[],n;for(n=0;n0&&s.length>0){const a={stmt:Zn,id:Fh(),type:"divider",doc:pn(s)};r.push(pn(a)),e.doc=r}e.doc.forEach(a=>Tn(e,a,!0))}},Z7=()=>(Tn({id:"root"},{id:"root",doc:Jn},!0),{id:"root",doc:Jn}),J7=t=>{let e;t.doc?e=t.doc:e=t,B.info(e),nd(!0),B.info("Extract",e),e.forEach(i=>{switch(i.stmt){case Zn:Dr(i.id.trim(),i.type,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles);break;case wl:ad(i.state1,i.state2,i.description);break;case U7:od(i.id.trim(),i.classes);break;case H7:Al(i.id.trim(),i.styleClass);break}})},Dr=function(t,e=an,i=null,r=null,s=null,n=null,a=null,o=null){const l=t?.trim();Ie.states[l]===void 0?(B.info("Adding state ",l,r),Ie.states[l]={id:l,descriptions:[],type:e,doc:i,note:s,classes:[],styles:[],textStyles:[]}):(Ie.states[l].doc||(Ie.states[l].doc=i),Ie.states[l].type||(Ie.states[l].type=e)),r&&(B.info("Setting state description",l,r),typeof r=="string"&&To(l,r.trim()),typeof r=="object"&&r.forEach(h=>To(l,h.trim()))),s&&(Ie.states[l].note=s,Ie.states[l].note.text=mt.sanitizeText(Ie.states[l].note.text,Y())),n&&(B.info("Setting state classes",l,n),(typeof n=="string"?[n]:n).forEach(u=>Al(l,u.trim()))),a&&(B.info("Setting state styles",l,a),(typeof a=="string"?[a]:a).forEach(u=>cT(l,u.trim()))),o&&(B.info("Setting state styles",l,a),(typeof o=="string"?[o]:o).forEach(u=>hT(l,u.trim())))},nd=function(t){ta={root:sd()},Ie=ta.root,Ys=0,vs=id(),t||Oe()},Us=function(t){return Ie.states[t]},tT=function(){return Ie.states},eT=function(){B.info("Documents = ",ta)},iT=function(){return Ie.relations};function ko(t=""){let e=t;return t===vl&&(Ys++,e=`${J0}${Ys}`),e}function _o(t="",e=an){return t===vl?J0:e}function rT(t=""){let e=t;return t===td&&(Ys++,e=`${ed}${Ys}`),e}function sT(t="",e=an){return t===td?ed:e}function nT(t,e,i){let r=ko(t.id.trim()),s=_o(t.id.trim(),t.type),n=ko(e.id.trim()),a=_o(e.id.trim(),e.type);Dr(r,s,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),Dr(n,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),Ie.relations.push({id1:r,id2:n,relationTitle:mt.sanitizeText(i,Y())})}const ad=function(t,e,i){if(typeof t=="object")nT(t,e,i);else{const r=ko(t.trim()),s=_o(t),n=rT(e.trim()),a=sT(e);Dr(r,s),Dr(n,a),Ie.relations.push({id1:r,id2:n,title:mt.sanitizeText(i,Y())})}},To=function(t,e){const i=Ie.states[t],r=e.startsWith(":")?e.replace(":","").trim():e;i.descriptions.push(mt.sanitizeText(r,Y()))},aT=function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},oT=()=>(jc++,"divider-id-"+jc),od=function(t,e=""){vs[t]===void 0&&(vs[t]={id:t,styles:[],textStyles:[]});const i=vs[t];e?.split(j7).forEach(r=>{const s=r.replace(/([^;]*);/,"$1").trim();if(r.match(Hc)){const a=s.replace(Gc,G7).replace(Hc,Gc);i.textStyles.push(a)}i.styles.push(s)})},lT=function(){return vs},Al=function(t,e){t.split(",").forEach(function(i){let r=Us(i);if(r===void 0){const s=i.trim();Dr(s),r=Us(s)}r.classes.push(e)})},cT=function(t,e){const i=Us(t);i!==void 0&&i.textStyles.push(e)},hT=function(t,e){const i=Us(t);i!==void 0&&i.textStyles.push(e)},uT=()=>rd,dT=t=>{rd=t},fT=t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),ji={getConfig:()=>Y().state,addState:Dr,clear:nd,getState:Us,getStates:tT,getRelations:iT,getClasses:lT,getDirection:uT,addRelation:ad,getDividerId:oT,setDirection:dT,cleanupLabel:aT,lineType:X7,relationType:$7,logDocuments:eT,getRootDoc:Q7,setRootDoc:K7,getRootDocV2:Z7,extract:J7,trimColon:fT,getAccTitle:Ye,setAccTitle:Pe,getAccDescription:He,setAccDescription:Ue,addStyleClass:od,setCssClass:Al,addDescription:To,setDiagramTitle:ri,getDiagramTitle:Ge},pT=t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,ld=pT,gT=t=>t.append("circle").attr("class","start-state").attr("r",Y().state.sizeUnit).attr("cx",Y().state.padding+Y().state.sizeUnit).attr("cy",Y().state.padding+Y().state.sizeUnit),yT=t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Y().state.textHeight).attr("class","divider").attr("x2",Y().state.textHeight*2).attr("y1",0).attr("y2",0),mT=(t,e)=>{const i=t.append("text").attr("x",2*Y().state.padding).attr("y",Y().state.textHeight+2*Y().state.padding).attr("font-size",Y().state.fontSize).attr("class","state-title").text(e.id),r=i.node().getBBox();return t.insert("rect",":first-child").attr("x",Y().state.padding).attr("y",Y().state.padding).attr("width",r.width+2*Y().state.padding).attr("height",r.height+2*Y().state.padding).attr("rx",Y().state.radius),i},xT=(t,e)=>{const i=function(d,g,y){const x=d.append("tspan").attr("x",2*Y().state.padding).text(g);y||x.attr("dy",Y().state.textHeight)},s=t.append("text").attr("x",2*Y().state.padding).attr("y",Y().state.textHeight+1.3*Y().state.padding).attr("font-size",Y().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),n=s.height,a=t.append("text").attr("x",Y().state.padding).attr("y",n+Y().state.padding*.4+Y().state.dividerMargin+Y().state.textHeight).attr("class","state-description");let o=!0,l=!0;e.descriptions.forEach(function(d){o||(i(a,d,l),l=!1),o=!1});const h=t.append("line").attr("x1",Y().state.padding).attr("y1",Y().state.padding+n+Y().state.dividerMargin/2).attr("y2",Y().state.padding+n+Y().state.dividerMargin/2).attr("class","descr-divider"),u=a.node().getBBox(),p=Math.max(u.width,s.width);return h.attr("x2",p+3*Y().state.padding),t.insert("rect",":first-child").attr("x",Y().state.padding).attr("y",Y().state.padding).attr("width",p+2*Y().state.padding).attr("height",u.height+n+2*Y().state.padding).attr("rx",Y().state.radius),t},bT=(t,e,i)=>{const r=Y().state.padding,s=2*Y().state.padding,n=t.node().getBBox(),a=n.width,o=n.x,l=t.append("text").attr("x",0).attr("y",Y().state.titleShift).attr("font-size",Y().state.fontSize).attr("class","state-title").text(e.id),u=l.node().getBBox().width+s;let p=Math.max(u,a);p===a&&(p=p+s);let d;const g=t.node().getBBox();e.doc,d=o-r,u>a&&(d=(a-p)/2+r),Math.abs(o-g.x)a&&(d=o-(u-a)/2);const y=1-Y().state.textHeight;return t.insert("rect",":first-child").attr("x",d).attr("y",y).attr("class",i?"alt-composit":"composit").attr("width",p).attr("height",g.height+Y().state.textHeight+Y().state.titleShift+1).attr("rx","0"),l.attr("x",d+r),u<=a&&l.attr("x",o+(p-s)/2-u/2+r),t.insert("rect",":first-child").attr("x",d).attr("y",Y().state.titleShift-Y().state.textHeight-Y().state.padding).attr("width",p).attr("height",Y().state.textHeight*3).attr("rx",Y().state.radius),t.insert("rect",":first-child").attr("x",d).attr("y",Y().state.titleShift-Y().state.textHeight-Y().state.padding).attr("width",p).attr("height",g.height+3+2*Y().state.textHeight).attr("rx",Y().state.radius),t},kT=t=>(t.append("circle").attr("class","end-state-outer").attr("r",Y().state.sizeUnit+Y().state.miniPadding).attr("cx",Y().state.padding+Y().state.sizeUnit+Y().state.miniPadding).attr("cy",Y().state.padding+Y().state.sizeUnit+Y().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",Y().state.sizeUnit).attr("cx",Y().state.padding+Y().state.sizeUnit+2).attr("cy",Y().state.padding+Y().state.sizeUnit+2)),_T=(t,e)=>{let i=Y().state.forkWidth,r=Y().state.forkHeight;if(e.parentId){let s=i;i=r,r=s}return t.append("rect").style("stroke","black").style("fill","black").attr("width",i).attr("height",r).attr("x",Y().state.padding).attr("y",Y().state.padding)},TT=(t,e,i,r)=>{let s=0;const n=r.append("text");n.style("text-anchor","start"),n.attr("class","noteText");let a=t.replace(/\r\n/g,"
");a=a.replace(/\n/g,"
");const o=a.split(mt.lineBreakRegex);let l=1.25*Y().state.noteMargin;for(const h of o){const u=h.trim();if(u.length>0){const p=n.append("tspan");if(p.text(u),l===0){const d=p.node().getBBox();l+=d.height}s+=l,p.attr("x",e+Y().state.noteMargin),p.attr("y",i+s+1.25*Y().state.noteMargin)}}return{textWidth:n.node().getBBox().width,textHeight:s}},CT=(t,e)=>{e.attr("class","state-note");const i=e.append("rect").attr("x",0).attr("y",Y().state.padding),r=e.append("g"),{textWidth:s,textHeight:n}=TT(t,0,0,r);return i.attr("height",n+2*Y().state.noteMargin),i.attr("width",s+Y().state.noteMargin*2),i},Xc=function(t,e){const i=e.id,r={id:i,label:e.id,width:0,height:0},s=t.append("g").attr("id",i).attr("class","stateGroup");e.type==="start"&&gT(s),e.type==="end"&&kT(s),(e.type==="fork"||e.type==="join")&&_T(s,e),e.type==="note"&&CT(e.note.text,s),e.type==="divider"&&yT(s),e.type==="default"&&e.descriptions.length===0&&mT(s,e),e.type==="default"&&e.descriptions.length>0&&xT(s,e);const n=s.node().getBBox();return r.width=n.width+2*Y().state.padding,r.height=n.height+2*Y().state.padding,r};let $c=0;const ET=function(t,e,i){const r=function(l){switch(l){case ji.relationType.AGGREGATION:return"aggregation";case ji.relationType.EXTENSION:return"extension";case ji.relationType.COMPOSITION:return"composition";case ji.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter(l=>!Number.isNaN(l.y));const s=e.points,n=fr().x(function(l){return l.x}).y(function(l){return l.y}).curve($s),a=t.append("path").attr("d",n(s)).attr("id","edge"+$c).attr("class","transition");let o="";if(Y().state.arrowMarkerAbsolute&&(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,o=o.replace(/\(/g,"\\("),o=o.replace(/\)/g,"\\)")),a.attr("marker-end","url("+o+"#"+r(ji.relationType.DEPENDENCY)+"End)"),i.title!==void 0){const l=t.append("g").attr("class","stateLabel"),{x:h,y:u}=Rt.calcLabelPosition(e.points),p=mt.getRows(i.title);let d=0;const g=[];let y=0,x=0;for(let E=0;E<=p.length;E++){const R=l.append("text").attr("text-anchor","middle").text(p[E]).attr("x",h).attr("y",u+d),v=R.node().getBBox();y=Math.max(y,v.width),x=Math.min(x,v.x),B.info(v.x,h,u+d),d===0&&(d=R.node().getBBox().height,B.info("Title height",d,u)),g.push(R)}let _=d*p.length;if(p.length>1){const E=(p.length-1)*d*.5;g.forEach((R,v)=>R.attr("y",u+v*d-E)),_=d*p.length}const w=l.node().getBBox();l.insert("rect",":first-child").attr("class","box").attr("x",h-y/2-Y().state.padding/2).attr("y",u-_/2-Y().state.padding/2-3.5).attr("width",y+Y().state.padding).attr("height",_+Y().state.padding),B.info(w)}$c++};let ti;const Na={},ST=function(){},wT=function(t){t.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")},vT=function(t,e,i,r){ti=Y().state;const s=Y().securityLevel;let n;s==="sandbox"&&(n=yt("#i"+e));const a=s==="sandbox"?yt(n.nodes()[0].contentDocument.body):yt("body"),o=s==="sandbox"?n.nodes()[0].contentDocument:document;B.debug("Rendering diagram "+t);const l=a.select(`[id='${e}']`);wT(l);const h=r.db.getRootDoc();cd(h,l,void 0,!1,a,o,r);const u=ti.padding,p=l.node().getBBox(),d=p.width+u*2,g=p.height+u*2,y=d*1.75;Ne(l,g,y,ti.useMaxWidth),l.attr("viewBox",`${p.x-ti.padding} ${p.y-ti.padding} `+d+" "+g)},AT=t=>t?t.length*ti.fontSizeFactor:1,cd=(t,e,i,r,s,n,a)=>{const o=new Ii({compound:!0,multigraph:!0});let l,h=!0;for(l=0;l{const v=R.parentElement;let T=0,k=0;v&&(v.parentElement&&(T=v.parentElement.getBBox().width),k=parseInt(v.getAttribute("data-x-shift"),10),Number.isNaN(k)&&(k=0)),R.setAttribute("x1",0-k+8),R.setAttribute("x2",T-k-8)})):B.debug("No Node "+w+": "+JSON.stringify(o.node(w)))});let x=y.getBBox();o.edges().forEach(function(w){w!==void 0&&o.edge(w)!==void 0&&(B.debug("Edge "+w.v+" -> "+w.w+": "+JSON.stringify(o.edge(w))),ET(e,o.edge(w),o.edge(w).relation))}),x=y.getBBox();const _={id:i||"root",label:i||"root",width:0,height:0};return _.width=x.width+2*ti.padding,_.height=x.height+2*ti.padding,B.debug("Doc rendered",_,o),_},LT={setConf:ST,draw:vT},BT={parser:Q0,db:ji,renderer:LT,styles:ld,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,ji.clear()}},IT=Object.freeze(Object.defineProperty({__proto__:null,diagram:BT},Symbol.toStringTag,{value:"Module"})),Cn="rect",Oa="rectWithTitle",DT="start",FT="end",RT="divider",NT="roundedWithTitle",OT="note",PT="noteGroup",ls="statediagram",MT="state",VT=`${ls}-${MT}`,hd="transition",zT="note",qT="note-edge",WT=`${hd} ${qT}`,YT=`${ls}-${zT}`,UT="cluster",HT=`${ls}-${UT}`,GT="cluster-alt",jT=`${ls}-${GT}`,ud="parent",dd="note",XT="state",Ll="----",$T=`${Ll}${dd}`,Kc=`${Ll}${ud}`,fd="fill:none",pd="fill: #333",gd="c",yd="text",md="normal";let En={},cr=0;const KT=function(t){const e=Object.keys(t);for(const i of e)t[i]},QT=function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()};function ZT(t){return t==null?"":t.classes?t.classes.join(" "):""}function Pa(t="",e=0,i="",r=Ll){const s=i!==null&&i.length>0?`${r}${i}`:"";return`${XT}-${t}${s}-${e}`}const bs=(t,e,i,r,s,n)=>{const a=i.id,o=ZT(r[a]);if(a!=="root"){let l=Cn;i.start===!0&&(l=DT),i.start===!1&&(l=FT),i.type!==an&&(l=i.type),En[a]||(En[a]={id:a,shape:l,description:mt.sanitizeText(a,Y()),classes:`${o} ${VT}`});const h=En[a];i.description&&(Array.isArray(h.description)?(h.shape=Oa,h.description.push(i.description)):h.description.length>0?(h.shape=Oa,h.description===a?h.description=[i.description]:h.description=[h.description,i.description]):(h.shape=Cn,h.description=i.description),h.description=mt.sanitizeTextOrArray(h.description,Y())),h.description.length===1&&h.shape===Oa&&(h.shape=Cn),!h.type&&i.doc&&(B.info("Setting cluster for ",a,Co(i)),h.type="group",h.dir=Co(i),h.shape=i.type===Z0?RT:NT,h.classes=h.classes+" "+HT+" "+(n?jT:""));const u={labelStyle:"",shape:h.shape,labelText:h.description,classes:h.classes,style:"",id:a,dir:h.dir,domId:Pa(a,cr),type:h.type,padding:15};if(u.centerLabel=!0,i.note){const p={labelStyle:"",shape:OT,labelText:i.note.text,classes:YT,style:"",id:a+$T+"-"+cr,domId:Pa(a,cr,dd),type:h.type,padding:15},d={labelStyle:"",shape:PT,labelText:i.note.text,classes:h.classes,style:"",id:a+Kc,domId:Pa(a,cr,ud),type:"group",padding:0};cr++;const g=a+Kc;t.setNode(g,d),t.setNode(p.id,p),t.setNode(a,u),t.setParent(a,g),t.setParent(p.id,g);let y=a,x=p.id;i.note.position==="left of"&&(y=p.id,x=a),t.setEdge(y,x,{arrowhead:"none",arrowType:"",style:fd,labelStyle:"",classes:WT,arrowheadStyle:pd,labelpos:gd,labelType:yd,thickness:md})}else t.setNode(a,u)}e&&e.id!=="root"&&(B.trace("Setting node ",a," to be child of its parent ",e.id),t.setParent(a,e.id)),i.doc&&(B.trace("Adding nodes children "),JT(t,i,i.doc,r,s,!n))},JT=(t,e,i,r,s,n)=>{B.trace("items",i),i.forEach(a=>{switch(a.stmt){case Zn:bs(t,e,a,r,s,n);break;case an:bs(t,e,a,r,s,n);break;case wl:{bs(t,e,a.state1,r,s,n),bs(t,e,a.state2,r,s,n);const o={id:"edge"+cr,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:fd,labelStyle:"",label:mt.sanitizeText(a.description,Y()),arrowheadStyle:pd,labelpos:gd,labelType:yd,thickness:md,classes:hd};t.setEdge(a.state1.id,a.state2.id,o,cr),cr++}break}})},Co=(t,e=Y7)=>{let i=e;if(t.doc)for(let r=0;r{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,ji.clear()}},r8=Object.freeze(Object.defineProperty({__proto__:null,diagram:i8},Symbol.toStringTag,{value:"Module"}));var Eo=(function(){var t=function(p,d,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=d);return g},e=[6,8,10,11,12,14,16,17,18],i=[1,9],r=[1,10],s=[1,11],n=[1,12],a=[1,13],o=[1,14],l={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(d,g,y,x,_,w,E){var R=w.length-1;switch(_){case 1:return w[R-1];case 2:this.$=[];break;case 3:w[R-1].push(w[R]),this.$=w[R-1];break;case 4:case 5:this.$=w[R];break;case 6:case 7:this.$=[];break;case 8:x.setDiagramTitle(w[R].substr(6)),this.$=w[R].substr(6);break;case 9:this.$=w[R].trim(),x.setAccTitle(this.$);break;case 10:case 11:this.$=w[R].trim(),x.setAccDescription(this.$);break;case 12:x.addSection(w[R].substr(8)),this.$=w[R].substr(8);break;case 13:x.addTask(w[R-1],w[R]),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:r,14:s,16:n,17:a,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:r,14:s,16:n,17:a,18:o},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(d,g){if(g.recoverable)this.trace(d);else{var y=new Error(d);throw y.hash=g,y}},parse:function(d){var g=this,y=[0],x=[],_=[null],w=[],E=this.table,R="",v=0,T=0,k=2,A=1,S=w.slice.call(arguments,1),m=Object.create(this.lexer),C={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(C.yy[f]=this.yy[f]);m.setInput(d,C.yy),C.yy.lexer=m,C.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var L=m.yylloc;w.push(L);var b=m.options&&m.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function P(){var K;return K=x.pop()||m.lex()||A,typeof K!="number"&&(K instanceof Array&&(x=K,K=x.pop()),K=g.symbols_[K]||K),K}for(var U,N,D,F,I={},M,z,st,j;;){if(N=y[y.length-1],this.defaultActions[N]?D=this.defaultActions[N]:((U===null||typeof U>"u")&&(U=P()),D=E[N]&&E[N][U]),typeof D>"u"||!D.length||!D[0]){var dt="";j=[];for(M in E[N])this.terminals_[M]&&M>k&&j.push("'"+this.terminals_[M]+"'");m.showPosition?dt="Parse error on line "+(v+1)+`: +`+m.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[U]||U)+"'":dt="Parse error on line "+(v+1)+": Unexpected "+(U==A?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(dt,{text:m.match,token:this.terminals_[U]||U,line:m.yylineno,loc:L,expected:j})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+N+", token: "+U);switch(D[0]){case 1:y.push(U),_.push(m.yytext),w.push(m.yylloc),y.push(D[1]),U=null,T=m.yyleng,R=m.yytext,v=m.yylineno,L=m.yylloc;break;case 2:if(z=this.productions_[D[1]][1],I.$=_[_.length-z],I._$={first_line:w[w.length-(z||1)].first_line,last_line:w[w.length-1].last_line,first_column:w[w.length-(z||1)].first_column,last_column:w[w.length-1].last_column},b&&(I._$.range=[w[w.length-(z||1)].range[0],w[w.length-1].range[1]]),F=this.performAction.apply(I,[R,T,v,C.yy,D[1],_,w].concat(S)),typeof F<"u")return F;z&&(y=y.slice(0,-1*z*2),_=_.slice(0,-1*z),w=w.slice(0,-1*z)),y.push(this.productions_[D[1]][0]),_.push(I.$),w.push(I._$),st=E[y[y.length-2]][y[y.length-1]],y.push(st);break;case 3:return!0}}return!0}},h=(function(){var p={EOF:1,parseError:function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},setInput:function(d,g){return this.yy=g||this.yy||{},this._input=d,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 d=this._input[0];this.yytext+=d,this.yyleng++,this.offset++,this.match+=d,this.matched+=d;var g=d.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),d},unput:function(d){var g=d.length,y=d.split(/(?:\r\n?|\n)/g);this._input=d+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var x=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),y.length-1&&(this.yylineno-=y.length-1);var _=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:y?(y.length===x.length?this.yylloc.first_column:0)+x[x.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-g]),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(d){this.unput(this.match.slice(d))},pastInput:function(){var d=this.matched.substr(0,this.matched.length-this.match.length);return(d.length>20?"...":"")+d.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var d=this.match;return d.length<20&&(d+=this._input.substr(0,20-d.length)),(d.substr(0,20)+(d.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var d=this.pastInput(),g=new Array(d.length+1).join("-");return d+this.upcomingInput()+` +`+g+"^"},test_match:function(d,g){var y,x,_;if(this.options.backtrack_lexer&&(_={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_.yylloc.range=this.yylloc.range.slice(0))),x=d[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+d[0].length},this.yytext+=d[0],this.match+=d[0],this.matches=d,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(d[0].length),this.matched+=d[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var w in _)this[w]=_[w];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var d,g,y,x;this._more||(this.yytext="",this.match="");for(var _=this._currentRules(),w=0;w<_.length;w++)if(y=this._input.match(this.rules[_[w]]),y&&(!g||y[0].length>g[0].length)){if(g=y,x=w,this.options.backtrack_lexer){if(d=this.test_match(y,_[w]),d!==!1)return d;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(d=this.test_match(g,_[x]),d!==!1?d:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var g=this.next();return g||this.lex()},begin:function(g){this.conditionStack.push(g)},popState:function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},pushState:function(g){this.begin(g)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(g,y,x,_){switch(x){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return p})();l.lexer=h;function u(){this.yy={}}return u.prototype=l,l.Parser=u,new u})();Eo.parser=Eo;const s8=Eo;let cs="";const Bl=[],Hs=[],Gs=[],n8=function(){Bl.length=0,Hs.length=0,cs="",Gs.length=0,Oe()},a8=function(t){cs=t,Bl.push(t)},o8=function(){return Bl},l8=function(){let t=Qc();const e=100;let i=0;for(;!t&&i{i.people&&t.push(...i.people)}),[...new Set(t)].sort()},h8=function(t,e){const i=e.substr(1).split(":");let r=0,s=[];i.length===1?(r=Number(i[0]),s=[]):(r=Number(i[0]),s=i[1].split(","));const n=s.map(o=>o.trim()),a={section:cs,type:cs,people:n,task:t,score:r};Gs.push(a)},u8=function(t){const e={section:cs,type:cs,description:t,task:t,classes:[]};Hs.push(e)},Qc=function(){const t=function(i){return Gs[i].processed};let e=!0;for(const[i,r]of Gs.entries())t(i),e=e&&r.processed;return e},d8=function(){return c8()},Zc={getConfig:()=>Y().journey,clear:n8,setDiagramTitle:ri,getDiagramTitle:Ge,setAccTitle:Pe,getAccTitle:Ye,setAccDescription:Ue,getAccDescription:He,addSection:a8,getSections:o8,getTasks:l8,addTask:h8,addTaskOrg:u8,getActors:d8},f8=t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,p8=f8,Il=function(t,e){return la(t,e)},g8=function(t,e){const r=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=t.append("g");s.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function n(l){const h=Jr().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function a(l){const h=Jr().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(l){l.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return e.score>3?n(s):e.score<3?a(s):o(s),r},xd=function(t,e){const i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),i.class!==void 0&&i.attr("class",i.class),e.title!==void 0&&i.append("title").text(e.title),i},bd=function(t,e){return pm(t,e)},y8=function(t,e){function i(s,n,a,o,l){return s+","+n+" "+(s+a)+","+n+" "+(s+a)+","+(n+o-l)+" "+(s+a-l*1.2)+","+(n+o)+" "+s+","+(n+o)}const r=t.append("polygon");r.attr("points",i(e.x,e.y,50,20,7)),r.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,bd(t,e)},m8=function(t,e,i){const r=t.append("g"),s=Pr();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),s.height=i.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,Il(r,s),kd(i)(e.text,r,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},i,e.colour)};let Jc=-1;const x8=function(t,e,i){const r=e.x+i.width/2,s=t.append("g");Jc++,s.append("line").attr("id","task"+Jc).attr("x1",r).attr("y1",e.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),g8(s,{cx:r,cy:300+(5-e.score)*30,score:e.score});const a=Pr();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=i.width,a.height=i.height,a.class="task task-type-"+e.num,a.rx=3,a.ry=3,Il(s,a);let o=e.x+14;e.people.forEach(l=>{const h=e.actors[l].color,u={cx:o,cy:e.y,r:7,fill:h,stroke:"#000",title:l,pos:e.actors[l].position};xd(s,u),o+=10}),kd(i)(e.task,s,a.x,a.y,a.width,a.height,{class:"task"},i,e.colour)},b8=function(t,e){R1(t,e)},kd=(function(){function t(s,n,a,o,l,h,u,p){const d=n.append("text").attr("x",a+l/2).attr("y",o+h/2+5).style("font-color",p).style("text-anchor","middle").text(s);r(d,u)}function e(s,n,a,o,l,h,u,p,d){const{taskFontSize:g,taskFontFamily:y}=p,x=s.split(//gi);for(let _=0;_{const s=Qi[r].color,n={cx:20,cy:i,r:7,fill:s,stroke:"#000",pos:Qi[r].position};js.drawCircle(t,n);const a={x:40,y:i+7,fill:"#666",text:r,textMargin:e.boxTextMargin|5};js.drawText(t,a),i+=20})}const ba=Y().journey,_r=ba.leftMargin,C8=function(t,e,i,r){const s=Y().journey,n=Y().securityLevel;let a;n==="sandbox"&&(a=yt("#i"+e));const o=n==="sandbox"?yt(a.nodes()[0].contentDocument.body):yt("body");ui.init();const l=o.select("#"+e);js.initGraphics(l);const h=r.db.getTasks(),u=r.db.getDiagramTitle(),p=r.db.getActors();for(const w in Qi)delete Qi[w];let d=0;p.forEach(w=>{Qi[w]={color:s.actorColours[d%s.actorColours.length],position:d},d++}),T8(l),ui.insert(0,0,_r,Object.keys(Qi).length*50),E8(l,h,0);const g=ui.getBounds();u&&l.append("text").text(u).attr("x",_r).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const y=g.stopy-g.starty+2*s.diagramMarginY,x=_r+g.stopx+2*s.diagramMarginX;Ne(l,y,x,s.useMaxWidth),l.append("line").attr("x1",_r).attr("y1",s.height*4).attr("x2",x-_r-4).attr("y2",s.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const _=u?70:0;l.attr("viewBox",`${g.startx} -25 ${x} ${y+_}`),l.attr("preserveAspectRatio","xMinYMin meet"),l.attr("height",y+_+25)},ui={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,i,r){t[e]===void 0?t[e]=i:t[e]=r(i,t[e])},updateBounds:function(t,e,i,r){const s=Y().journey,n=this;let a=0;function o(l){return function(u){a++;const p=n.sequenceItems.length-a+1;n.updateVal(u,"starty",e-p*s.boxMargin,Math.min),n.updateVal(u,"stopy",r+p*s.boxMargin,Math.max),n.updateVal(ui.data,"startx",t-p*s.boxMargin,Math.min),n.updateVal(ui.data,"stopx",i+p*s.boxMargin,Math.max),n.updateVal(u,"startx",t-p*s.boxMargin,Math.min),n.updateVal(u,"stopx",i+p*s.boxMargin,Math.max),n.updateVal(ui.data,"starty",e-p*s.boxMargin,Math.min),n.updateVal(ui.data,"stopy",r+p*s.boxMargin,Math.max)}}this.sequenceItems.forEach(o())},insert:function(t,e,i,r){const s=Math.min(t,i),n=Math.max(t,i),a=Math.min(e,r),o=Math.max(e,r);this.updateVal(ui.data,"startx",s,Math.min),this.updateVal(ui.data,"starty",a,Math.min),this.updateVal(ui.data,"stopx",n,Math.max),this.updateVal(ui.data,"stopy",o,Math.max),this.updateBounds(s,a,n,o)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Ma=ba.sectionFills,th=ba.sectionColours,E8=function(t,e,i){const r=Y().journey;let s="";const n=r.height*2+r.diagramMarginY,a=i+n;let o=0,l="#CCC",h="black",u=0;for(const[p,d]of e.entries()){if(s!==d.section){l=Ma[o%Ma.length],u=o%Ma.length,h=th[o%th.length];let y=0;const x=d.section;for(let w=p;w(Qi[x]&&(y[x]=Qi[x]),y),{});d.x=p*r.taskMargin+p*r.width+_r,d.y=a,d.width=r.diagramMarginX,d.height=r.diagramMarginY,d.colour=h,d.fill=l,d.num=u,d.actors=g,js.drawTask(t,d,r),ui.insert(d.x,d.y,d.x+d.width+r.taskMargin,450)}},eh={setConf:_8,draw:C8},S8={parser:s8,db:Zc,renderer:eh,styles:p8,init:t=>{eh.setConf(t.journey),Zc.clear()}},w8=Object.freeze(Object.defineProperty({__proto__:null,diagram:S8},Symbol.toStringTag,{value:"Module"})),v8=(t,e,i)=>{const{parentById:r}=i,s=new Set;let n=t;for(;n;){if(s.add(n),n===e)return n;n=r[n]}for(n=e;n;){if(s.has(n))return n;n=r[n]}return"root"},ih=new Rf;let hi={};const A8={};let Ji={};const L8=async function(t,e,i,r,s,n,a){const l=i.select(`[id="${e}"]`).insert("g").attr("class","nodes"),h=Object.keys(t);return await Promise.all(h.map(async function(u){const p=t[u];let d="default";p.classes.length>0&&(d=p.classes.join(" ")),d=d+" flowchart-label";const g=ii(p.styles);let y=p.text!==void 0?p.text:p.id;const x={width:0,height:0},_=[{id:p.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:p.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:p.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:p.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let w=0,E="",R={};switch(p.type){case"round":w=5,E="rect";break;case"square":E="rect";break;case"diamond":E="question",R={portConstraints:"FIXED_SIDE"};break;case"hexagon":E="hexagon";break;case"odd":E="rect_left_inv_arrow";break;case"lean_right":E="lean_right";break;case"lean_left":E="lean_left";break;case"trapezoid":E="trapezoid";break;case"inv_trapezoid":E="inv_trapezoid";break;case"odd_right":E="rect_left_inv_arrow";break;case"circle":E="circle";break;case"ellipse":E="ellipse";break;case"stadium":E="stadium";break;case"subroutine":E="subroutine";break;case"cylinder":E="cylinder";break;case"group":E="rect";break;case"doublecircle":E="doublecircle";break;default:E="rect"}const v={labelStyle:g.labelStyle,shape:E,labelText:y,labelType:p.labelType,rx:w,ry:w,class:d,style:g.style,id:p.id,link:p.link,linkTarget:p.linkTarget,tooltip:s.db.getTooltip(p.id)||"",domId:s.db.lookUpDomId(p.id),haveCallback:p.haveCallback,width:p.type==="group"?500:void 0,dir:p.dir,type:p.type,props:p.props,padding:ee().flowchart.padding};let T,k;if(v.type!=="group")k=await pa(l,v,p.dir),T=k.node().getBBox();else{r.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:S,bbox:m}=await Ce(l,v,void 0,!0);x.width=m.width,x.wrappingWidth=ee().flowchart.wrappingWidth,x.height=m.height,x.labelNode=S.node(),v.labelData=x}const A={id:p.id,ports:p.type==="diamond"?_:[],layoutOptions:R,labelText:y,labelData:x,domId:s.db.lookUpDomId(p.id),width:T?.width,height:T?.height,type:p.type,el:k,parent:n.parentById[p.id]};Ji[v.id]=A})),a},rh=(t,e,i)=>{const r={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return r.TD=r.TB,r[i][e][t]},sh=(t,e,i)=>{if(B.info("getNextPort",{node:t,edgeDirection:e,graphDirection:i}),!hi[t])switch(i){case"TB":case"TD":hi[t]={inPosition:"north",outPosition:"south"};break;case"BT":hi[t]={inPosition:"south",outPosition:"north"};break;case"RL":hi[t]={inPosition:"east",outPosition:"west"};break;case"LR":hi[t]={inPosition:"west",outPosition:"east"};break}const r=e==="in"?hi[t].inPosition:hi[t].outPosition;return e==="in"?hi[t].inPosition=rh(hi[t].inPosition,e,i):hi[t].outPosition=rh(hi[t].outPosition,e,i),r},B8=(t,e)=>{let i=t.start,r=t.end;const s=i,n=r,a=Ji[i],o=Ji[r];return!a||!o?{source:i,target:r}:(a.type==="diamond"&&(i=`${i}-${sh(i,"out",e)}`),o.type==="diamond"&&(r=`${r}-${sh(r,"in",e)}`),{source:i,target:r,sourceId:s,targetId:n})},I8=function(t,e,i,r){B.info("abc78 edges = ",t);const s=r.insert("g").attr("class","edgeLabels");let n={},a=e.db.getDirection(),o,l;if(t.defaultStyle!==void 0){const h=ii(t.defaultStyle);o=h.style,l=h.labelStyle}return t.forEach(function(h){const u="L-"+h.start+"-"+h.end;n[u]===void 0?(n[u]=0,B.info("abc78 new entry",u,n[u])):(n[u]++,B.info("abc78 new entry",u,n[u]));let p=u+"-"+n[u];B.info("abc78 new link id to be used is",u,p,n[u]);const d="LS-"+h.start,g="LE-"+h.end,y={style:"",labelStyle:""};switch(y.minlen=h.length||1,h.type==="arrow_open"?y.arrowhead="none":y.arrowhead="normal",y.arrowTypeStart="arrow_open",y.arrowTypeEnd="arrow_open",h.type){case"double_arrow_cross":y.arrowTypeStart="arrow_cross";case"arrow_cross":y.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":y.arrowTypeStart="arrow_point";case"arrow_point":y.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":y.arrowTypeStart="arrow_circle";case"arrow_circle":y.arrowTypeEnd="arrow_circle";break}let x="",_="";switch(h.stroke){case"normal":x="fill:none;",o!==void 0&&(x=o),l!==void 0&&(_=l),y.thickness="normal",y.pattern="solid";break;case"dotted":y.thickness="normal",y.pattern="dotted",y.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":y.thickness="thick",y.pattern="solid",y.style="stroke-width: 3.5px;fill:none;";break}if(h.style!==void 0){const k=ii(h.style);x=k.style,_=k.labelStyle}y.style=y.style+=x,y.labelStyle=y.labelStyle+=_,h.interpolate!==void 0?y.curve=di(h.interpolate,ei):t.defaultInterpolate!==void 0?y.curve=di(t.defaultInterpolate,ei):y.curve=di(A8.curve,ei),h.text===void 0?h.style!==void 0&&(y.arrowheadStyle="fill: #333"):(y.arrowheadStyle="fill: #333",y.labelpos="c"),y.labelType=h.labelType,y.label=h.text.replace(mt.lineBreakRegex,` +`),h.style===void 0&&(y.style=y.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),y.labelStyle=y.labelStyle.replace("color:","fill:"),y.id=p,y.classes="flowchart-link "+d+" "+g;const w=il(s,y),{source:E,target:R,sourceId:v,targetId:T}=B8(h,a);B.debug("abc78 source and target",E,R),i.edges.push({id:"e"+h.start+h.end,sources:[E],targets:[R],sourceId:v,targetId:T,labelEl:w,labels:[{width:y.width,height:y.height,orgWidth:y.width,orgHeight:y.height,text:y.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:y})}),i},D8=function(t,e,i,r,s){let n="";r&&(n=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,n=n.replace(/\(/g,"\\("),n=n.replace(/\)/g,"\\)")),Cu(t,e,n,s,i)},F8=function(t,e){return B.info("Extracting classes"),e.db.getClasses()},R8=function(t){const e={parentById:{},childrenById:{}},i=t.getSubGraphs();return B.info("Subgraphs - ",i),i.forEach(function(r){r.nodes.forEach(function(s){e.parentById[s]=r.id,e.childrenById[r.id]===void 0&&(e.childrenById[r.id]=[]),e.childrenById[r.id].push(s)})}),i.forEach(function(r){r.id,e.parentById[r.id]!==void 0&&e.parentById[r.id]}),e},N8=function(t,e,i){const r=v8(t,e,i);if(r===void 0||r==="root")return{x:0,y:0};const s=Ji[r].offset;return{x:s.posX,y:s.posY}},O8=function(t,e,i,r,s,n){const a=N8(e.sourceId,e.targetId,s),o=e.sections[0].startPoint,l=e.sections[0].endPoint,u=(e.sections[0].bendPoints?e.sections[0].bendPoints:[]).map(R=>[R.x+a.x,R.y+a.y]),p=[[o.x+a.x,o.y+a.y],...u,[l.x+a.x,l.y+a.y]],{x:d,y:g}=Tu(e.edgeData),y=fr().x(d).y(g).curve(ei),x=t.insert("path").attr("d",y(p)).attr("class","path "+i.classes).attr("fill","none"),_=t.insert("g").attr("class","edgeLabel"),w=yt(_.node().appendChild(e.labelEl)),E=w.node().firstChild.getBoundingClientRect();w.attr("width",E.width),w.attr("height",E.height),_.attr("transform",`translate(${e.labels[0].x+a.x}, ${e.labels[0].y+a.y})`),D8(x,i,r.type,r.arrowMarkerAbsolute,n)},_d=(t,e)=>{t.forEach(i=>{i.children||(i.children=[]);const r=e.childrenById[i.id];r&&r.forEach(s=>{i.children.push(Ji[s])}),_d(i.children,e)})},P8=async function(t,e,i,r){var s;r.db.clear(),Ji={},hi={},r.db.setGen("gen-2"),r.parser.parse(t);const n=yt("body").append("div").attr("style","height:400px").attr("id","cy");let a={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(B.info("Drawing flowchart using v3 renderer",ih),r.db.getDirection()){case"BT":a.layoutOptions["elk.direction"]="UP";break;case"TB":a.layoutOptions["elk.direction"]="DOWN";break;case"LR":a.layoutOptions["elk.direction"]="RIGHT";break;case"RL":a.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:l,flowchart:h}=ee();let u;l==="sandbox"&&(u=yt("#i"+e));const p=l==="sandbox"?yt(u.nodes()[0].contentDocument.body):yt("body"),d=l==="sandbox"?u.nodes()[0].contentDocument:document,g=p.select(`[id="${e}"]`);tl(g,["point","circle","cross"],r.type,e);const x=r.db.getVertices();let _;const w=r.db.getSubGraphs();B.info("Subgraphs - ",w);for(let S=w.length-1;S>=0;S--)_=w[S],r.db.addVertex(_.id,{text:_.title,type:_.labelType},"group",void 0,_.classes,_.dir);const E=g.insert("g").attr("class","subgraphs"),R=R8(r.db);a=await L8(x,e,p,d,r,R,a);const v=g.insert("g").attr("class","edges edgePath"),T=r.db.getEdges();a=I8(T,r,a,g),Object.keys(Ji).forEach(S=>{const m=Ji[S];m.parent||a.children.push(m),R.childrenById[S]!==void 0&&(m.labels=[{text:m.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:m.labelData.width,height:m.labelData.height}],delete m.x,delete m.y,delete m.width,delete m.height)}),_d(a.children,R),B.info("after layout",JSON.stringify(a,null,2));const A=await ih.layout(a);Td(0,0,A.children,g,E,r,0),B.info("after layout",A),(s=A.edges)==null||s.map(S=>{O8(v,S,S.edgeData,r,R,e)}),yr({},g,h.diagramPadding,h.useMaxWidth),n.remove()},Td=(t,e,i,r,s,n,a)=>{i.forEach(function(o){if(o)if(Ji[o.id].offset={posX:o.x+t,posY:o.y+e,x:t,y:e,depth:a,width:o.width,height:o.height},o.type==="group"){const l=s.insert("g").attr("class","subgraph");l.insert("rect").attr("class","subgraph subgraph-lvl-"+a%5+" node").attr("x",o.x+t).attr("y",o.y+e).attr("width",o.width).attr("height",o.height);const h=l.insert("g").attr("class","label"),u=ee().flowchart.htmlLabels?o.labelData.width/2:0;h.attr("transform",`translate(${o.labels[0].x+t+o.x+u}, ${o.labels[0].y+e+o.y+3})`),h.node().appendChild(o.labelData.labelNode),B.info("Id (UGH)= ",o.type,o.labels)}else B.info("Id (UGH)= ",o.id),o.el.attr("transform",`translate(${o.x+t+o.width/2}, ${o.y+e+o.height/2})`)}),i.forEach(function(o){o&&o.type==="group"&&Td(t+o.x,e+o.y,o.children,r,s,n,a+1)})},M8={getClasses:F8,draw:P8},V8=t=>{let e="";for(let i=0;i<5;i++)e+=` + .subgraph-lvl-${i} { + fill: ${t[`surface${i}`]}; + stroke: ${t[`surfacePeer${i}`]}; + } + `;return e},z8=t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${V8(t)} +`,q8=z8,W8={db:bx,renderer:M8,parser:Qo,styles:q8},Y8=Object.freeze(Object.defineProperty({__proto__:null,diagram:W8},Symbol.toStringTag,{value:"Module"}));var So=(function(){var t=function(d,g,y,x){for(y=y||{},x=d.length;x--;y[d[x]]=g);return y},e=[6,8,10,11,12,14,16,17,20,21],i=[1,9],r=[1,10],s=[1,11],n=[1,12],a=[1,13],o=[1,16],l=[1,17],h={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(g,y,x,_,w,E,R){var v=E.length-1;switch(w){case 1:return E[v-1];case 2:this.$=[];break;case 3:E[v-1].push(E[v]),this.$=E[v-1];break;case 4:case 5:this.$=E[v];break;case 6:case 7:this.$=[];break;case 8:_.getCommonDb().setDiagramTitle(E[v].substr(6)),this.$=E[v].substr(6);break;case 9:this.$=E[v].trim(),_.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=E[v].trim(),_.getCommonDb().setAccDescription(this.$);break;case 12:_.addSection(E[v].substr(8)),this.$=E[v].substr(8);break;case 15:_.addTask(E[v],0,""),this.$=E[v];break;case 16:_.addEvent(E[v].substr(2)),this.$=E[v];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:r,14:s,16:n,17:a,18:14,19:15,20:o,21:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:i,12:r,14:s,16:n,17:a,18:14,19:15,20:o,21:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:function(g,y){if(y.recoverable)this.trace(g);else{var x=new Error(g);throw x.hash=y,x}},parse:function(g){var y=this,x=[0],_=[],w=[null],E=[],R=this.table,v="",T=0,k=0,A=2,S=1,m=E.slice.call(arguments,1),C=Object.create(this.lexer),f={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(f.yy[L]=this.yy[L]);C.setInput(g,f.yy),f.yy.lexer=C,f.yy.parser=this,typeof C.yylloc>"u"&&(C.yylloc={});var b=C.yylloc;E.push(b);var P=C.options&&C.options.ranges;typeof f.yy.parseError=="function"?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var G;return G=_.pop()||C.lex()||S,typeof G!="number"&&(G instanceof Array&&(_=G,G=_.pop()),G=y.symbols_[G]||G),G}for(var N,D,F,I,M={},z,st,j,dt;;){if(D=x[x.length-1],this.defaultActions[D]?F=this.defaultActions[D]:((N===null||typeof N>"u")&&(N=U()),F=R[D]&&R[D][N]),typeof F>"u"||!F.length||!F[0]){var K="";dt=[];for(z in R[D])this.terminals_[z]&&z>A&&dt.push("'"+this.terminals_[z]+"'");C.showPosition?K="Parse error on line "+(T+1)+`: +`+C.showPosition()+` +Expecting `+dt.join(", ")+", got '"+(this.terminals_[N]||N)+"'":K="Parse error on line "+(T+1)+": Unexpected "+(N==S?"end of input":"'"+(this.terminals_[N]||N)+"'"),this.parseError(K,{text:C.match,token:this.terminals_[N]||N,line:C.yylineno,loc:b,expected:dt})}if(F[0]instanceof Array&&F.length>1)throw new Error("Parse Error: multiple actions possible at state: "+D+", token: "+N);switch(F[0]){case 1:x.push(N),w.push(C.yytext),E.push(C.yylloc),x.push(F[1]),N=null,k=C.yyleng,v=C.yytext,T=C.yylineno,b=C.yylloc;break;case 2:if(st=this.productions_[F[1]][1],M.$=w[w.length-st],M._$={first_line:E[E.length-(st||1)].first_line,last_line:E[E.length-1].last_line,first_column:E[E.length-(st||1)].first_column,last_column:E[E.length-1].last_column},P&&(M._$.range=[E[E.length-(st||1)].range[0],E[E.length-1].range[1]]),I=this.performAction.apply(M,[v,k,T,f.yy,F[1],w,E].concat(m)),typeof I<"u")return I;st&&(x=x.slice(0,-1*st*2),w=w.slice(0,-1*st),E=E.slice(0,-1*st)),x.push(this.productions_[F[1]][0]),w.push(M.$),E.push(M._$),j=R[x[x.length-2]][x[x.length-1]],x.push(j);break;case 3:return!0}}return!0}},u=(function(){var d={EOF:1,parseError:function(y,x){if(this.yy.parser)this.yy.parser.parseError(y,x);else throw new Error(y)},setInput:function(g,y){return this.yy=y||this.yy||{},this._input=g,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 g=this._input[0];this.yytext+=g,this.yyleng++,this.offset++,this.match+=g,this.matched+=g;var y=g.match(/(?:\r\n?|\n).*/g);return y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),g},unput:function(g){var y=g.length,x=g.split(/(?:\r\n?|\n)/g);this._input=g+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-y),this.offset-=y;var _=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),x.length-1&&(this.yylineno-=x.length-1);var w=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:x?(x.length===_.length?this.yylloc.first_column:0)+_[_.length-x.length].length-x[0].length:this.yylloc.first_column-y},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-y]),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(g){this.unput(this.match.slice(g))},pastInput:function(){var g=this.matched.substr(0,this.matched.length-this.match.length);return(g.length>20?"...":"")+g.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var g=this.match;return g.length<20&&(g+=this._input.substr(0,20-g.length)),(g.substr(0,20)+(g.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var g=this.pastInput(),y=new Array(g.length+1).join("-");return g+this.upcomingInput()+` +`+y+"^"},test_match:function(g,y){var x,_,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),_=g[0].match(/(?:\r\n?|\n).*/g),_&&(this.yylineno+=_.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_?_[_.length-1].length-_[_.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+g[0].length},this.yytext+=g[0],this.match+=g[0],this.matches=g,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(g[0].length),this.matched+=g[0],x=this.performAction.call(this,this.yy,this,y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),x)return x;if(this._backtrack){for(var E in w)this[E]=w[E];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var g,y,x,_;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),E=0;Ey[0].length)){if(y=x,_=E,this.options.backtrack_lexer){if(g=this.test_match(x,w[E]),g!==!1)return g;if(this._backtrack){y=!1;continue}else return!1}else if(!this.options.flex)break}return y?(g=this.test_match(y,w[_]),g!==!1?g:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var y=this.next();return y||this.lex()},begin:function(y){this.conditionStack.push(y)},popState:function(){var y=this.conditionStack.length-1;return y>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(y){return y=this.conditionStack.length-1-Math.abs(y||0),y>=0?this.conditionStack[y]:"INITIAL"},pushState:function(y){this.begin(y)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(y,x,_,w){switch(_){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return d})();h.lexer=u;function p(){this.yy={}}return p.prototype=h,h.Parser=p,new p})();So.parser=So;const U8=So;let hs="",Cd=0;const Dl=[],ea=[],us=[],Ed=()=>n1,Sd=function(){Dl.length=0,ea.length=0,hs="",us.length=0,Oe()},wd=function(t){hs=t,Dl.push(t)},vd=function(){return Dl},Ad=function(){let t=nh();const e=100;let i=0;for(;!t&&ii.id===Cd-1).events.push(t)},Id=function(t){const e={section:hs,type:hs,description:t,task:t,classes:[]};ea.push(e)},nh=function(){const t=function(i){return us[i].processed};let e=!0;for(const[i,r]of us.entries())t(i),e=e&&r.processed;return e},H8={clear:Sd,getCommonDb:Ed,addSection:wd,getSections:vd,getTasks:Ad,addTask:Ld,addTaskOrg:Id,addEvent:Bd},G8=Object.freeze(Object.defineProperty({__proto__:null,addEvent:Bd,addSection:wd,addTask:Ld,addTaskOrg:Id,clear:Sd,default:H8,getCommonDb:Ed,getSections:vd,getTasks:Ad},Symbol.toStringTag,{value:"Module"})),j8=12,ka=function(t,e){const i=t.append("rect");return i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),i.attr("rx",e.rx),i.attr("ry",e.ry),e.class!==void 0&&i.attr("class",e.class),i},X8=function(t,e){const r=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=t.append("g");s.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function n(l){const h=Jr().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function a(l){const h=Jr().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);l.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(l){l.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return e.score>3?n(s):e.score<3?a(s):o(s),r},$8=function(t,e){const i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),i.class!==void 0&&i.attr("class",i.class),e.title!==void 0&&i.append("title").text(e.title),i},Dd=function(t,e){const i=e.text.replace(//gi," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),e.class!==void 0&&r.attr("class",e.class);const s=r.append("tspan");return s.attr("x",e.x+e.textMargin*2),s.text(i),r},K8=function(t,e){function i(s,n,a,o,l){return s+","+n+" "+(s+a)+","+n+" "+(s+a)+","+(n+o-l)+" "+(s+a-l*1.2)+","+(n+o)+" "+s+","+(n+o)}const r=t.append("polygon");r.attr("points",i(e.x,e.y,50,20,7)),r.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Dd(t,e)},Q8=function(t,e,i){const r=t.append("g"),s=Fl();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=i.width,s.height=i.height,s.class="journey-section section-type-"+e.num,s.rx=3,s.ry=3,ka(r,s),Fd(i)(e.text,r,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+e.num},i,e.colour)};let ah=-1;const Z8=function(t,e,i){const r=e.x+i.width/2,s=t.append("g");ah++,s.append("line").attr("id","task"+ah).attr("x1",r).attr("y1",e.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),X8(s,{cx:r,cy:300+(5-e.score)*30,score:e.score});const a=Fl();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=i.width,a.height=i.height,a.class="task task-type-"+e.num,a.rx=3,a.ry=3,ka(s,a),e.x+14,Fd(i)(e.task,s,a.x,a.y,a.width,a.height,{class:"task"},i,e.colour)},J8=function(t,e){ka(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},tC=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},Fl=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},Fd=(function(){function t(s,n,a,o,l,h,u,p){const d=n.append("text").attr("x",a+l/2).attr("y",o+h/2+5).style("font-color",p).style("text-anchor","middle").text(s);r(d,u)}function e(s,n,a,o,l,h,u,p,d){const{taskFontSize:g,taskFontFamily:y}=p,x=s.split(//gi);for(let _=0;_)/).reverse(),s,n=[],a=1.1,o=i.attr("y"),l=parseFloat(i.attr("dy")),h=i.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",l+"em");for(let u=0;ue||s==="
")&&(n.pop(),h.text(n.join(" ").trim()),s==="
"?n=[""]:n=[s],h=i.append("tspan").attr("x",0).attr("y",o).attr("dy",a+"em").text(s))})}const iC=function(t,e,i,r){const s=i%j8-1,n=t.append("g");e.section=s,n.attr("class",(e.class?e.class+" ":"")+"timeline-node "+("section-"+s));const a=n.append("g"),o=n.append("g"),h=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(Rd,e.width).node().getBBox(),u=r.fontSize&&r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;return e.height=h.height+u*1.1*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,o.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),sC(a,e,s),e},rC=function(t,e,i){const r=t.append("g"),n=r.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(Rd,e.width).node().getBBox(),a=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return r.remove(),n.height+a*1.1*.5+e.padding},sC=function(t,e,i){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+10} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},Tr={drawRect:ka,drawCircle:$8,drawSection:Q8,drawText:Dd,drawLabel:K8,drawTask:Z8,drawBackgroundRect:J8,getTextObj:tC,getNoteRect:Fl,initGraphics:eC,drawNode:iC,getVirtualNodeHeight:rC},nC=function(t,e,i,r){var s,n;const a=Y(),o=a.leftMargin??50;B.debug("timeline",r.db);const l=a.securityLevel;let h;l==="sandbox"&&(h=yt("#i"+e));const p=(l==="sandbox"?yt(h.nodes()[0].contentDocument.body):yt("body")).select("#"+e);p.append("g");const d=r.db.getTasks(),g=r.db.getCommonDb().getDiagramTitle();B.debug("task",d),Tr.initGraphics(p);const y=r.db.getSections();B.debug("sections",y);let x=0,_=0,w=0,E=0,R=50+o,v=50;E=50;let T=0,k=!0;y.forEach(function(f){const L={number:T,descr:f,section:T,width:150,padding:20,maxHeight:x},b=Tr.getVirtualNodeHeight(p,L,a);B.debug("sectionHeight before draw",b),x=Math.max(x,b+20)});let A=0,S=0;B.debug("tasks.length",d.length);for(const[f,L]of d.entries()){const b={number:f,descr:L,section:L.section,width:150,padding:20,maxHeight:_},P=Tr.getVirtualNodeHeight(p,b,a);B.debug("taskHeight before draw",P),_=Math.max(_,P+20),A=Math.max(A,L.events.length);let U=0;for(let N=0;N0?y.forEach(f=>{const L=d.filter(N=>N.section===f),b={number:T,descr:f,section:T,width:200*Math.max(L.length,1)-50,padding:20,maxHeight:x};B.debug("sectionNode",b);const P=p.append("g"),U=Tr.drawNode(P,b,T,a);B.debug("sectionNode output",U),P.attr("transform",`translate(${R}, ${E})`),v+=x+50,L.length>0&&oh(p,L,T,R,v,_,a,A,S,x,!1),R+=200*Math.max(L.length,1),v=E,T++}):(k=!1,oh(p,d,T,R,v,_,a,A,S,x,!0));const m=p.node().getBBox();B.debug("bounds",m),g&&p.append("text").text(g).attr("x",m.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),w=k?x+_+150:_+100,p.append("g").attr("class","lineWrapper").append("line").attr("x1",o).attr("y1",w).attr("x2",m.width+3*o).attr("y2",w).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),yr(void 0,p,((s=a.timeline)==null?void 0:s.padding)??50,((n=a.timeline)==null?void 0:n.useMaxWidth)??!1)},oh=function(t,e,i,r,s,n,a,o,l,h,u){var p;for(const d of e){const g={descr:d.task,section:i,number:i,width:150,padding:20,maxHeight:n};B.debug("taskNode",g);const y=t.append("g").attr("class","taskWrapper"),_=Tr.drawNode(y,g,i,a).height;if(B.debug("taskHeight after draw",_),y.attr("transform",`translate(${r}, ${s})`),n=Math.max(n,_),d.events){const w=t.append("g").attr("class","lineWrapper");let E=n;s+=100,E=E+aC(t,d.events,i,r,s,a),s-=100,w.append("line").attr("x1",r+190/2).attr("y1",s+n).attr("x2",r+190/2).attr("y2",s+n+(u?n:h)+l+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}r=r+200,u&&!((p=a.timeline)!=null&&p.disableMulticolor)&&i++}s=s-10},aC=function(t,e,i,r,s,n){let a=0;const o=s;s=s+100;for(const l of e){const h={descr:l,section:i,number:i,width:150,padding:20,maxHeight:50};B.debug("eventNode",h);const u=t.append("g").attr("class","eventWrapper"),d=Tr.drawNode(u,h,i,n).height;a=a+d,u.attr("transform",`translate(${r}, ${s})`),s=s+10+d}return s=o,a},oC={setConf:()=>{},draw:nC},lC=t=>{let e="";for(let i=0;i` + .edge { + stroke-width: 3; + } + ${lC(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,hC=cC,uC={db:G8,renderer:oC,parser:U8,styles:hC},dC=Object.freeze(Object.defineProperty({__proto__:null,diagram:uC},Symbol.toStringTag,{value:"Module"}));var wo=(function(){var t=function(v,T,k,A){for(k=k||{},A=v.length;A--;k[v[A]]=T);return k},e=[1,4],i=[1,13],r=[1,12],s=[1,15],n=[1,16],a=[1,20],o=[1,19],l=[6,7,8],h=[1,26],u=[1,24],p=[1,25],d=[6,7,11],g=[1,6,13,15,16,19,22],y=[1,33],x=[1,34],_=[1,6,7,11,13,15,16,19,22],w={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(T,k,A,S,m,C,f){var L=C.length-1;switch(m){case 6:case 7:return S;case 8:S.getLogger().trace("Stop NL ");break;case 9:S.getLogger().trace("Stop EOF ");break;case 11:S.getLogger().trace("Stop NL2 ");break;case 12:S.getLogger().trace("Stop EOF2 ");break;case 15:S.getLogger().info("Node: ",C[L].id),S.addNode(C[L-1].length,C[L].id,C[L].descr,C[L].type);break;case 16:S.getLogger().trace("Icon: ",C[L]),S.decorateNode({icon:C[L]});break;case 17:case 21:S.decorateNode({class:C[L]});break;case 18:S.getLogger().trace("SPACELIST");break;case 19:S.getLogger().trace("Node: ",C[L].id),S.addNode(0,C[L].id,C[L].descr,C[L].type);break;case 20:S.decorateNode({icon:C[L]});break;case 25:S.getLogger().trace("node found ..",C[L-2]),this.$={id:C[L-1],descr:C[L-1],type:S.getType(C[L-2],C[L])};break;case 26:this.$={id:C[L],descr:C[L],type:S.nodeType.DEFAULT};break;case 27:S.getLogger().trace("node found ..",C[L-3]),this.$={id:C[L-3],descr:C[L-1],type:S.getType(C[L-2],C[L])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:i,7:[1,10],9:9,12:11,13:r,14:14,15:s,16:n,17:17,18:18,19:a,22:o},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:i,12:21,13:r,14:14,15:s,16:n,17:17,18:18,19:a,22:o},{6:i,9:22,12:11,13:r,14:14,15:s,16:n,17:17,18:18,19:a,22:o},{6:h,7:u,10:23,11:p},t(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:a,22:o}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,23]),t(d,[2,24]),t(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:u,10:32,11:p},{1:[2,7],6:i,12:21,13:r,14:14,15:s,16:n,17:17,18:18,19:a,22:o},t(g,[2,14],{7:y,11:x}),t(_,[2,8]),t(_,[2,9]),t(_,[2,10]),t(d,[2,15]),t(d,[2,16]),t(d,[2,17]),{20:[1,35]},{21:[1,36]},t(g,[2,13],{7:y,11:x}),t(_,[2,11]),t(_,[2,12]),{21:[1,37]},t(d,[2,25]),t(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(T,k){if(k.recoverable)this.trace(T);else{var A=new Error(T);throw A.hash=k,A}},parse:function(T){var k=this,A=[0],S=[],m=[null],C=[],f=this.table,L="",b=0,P=0,U=2,N=1,D=C.slice.call(arguments,1),F=Object.create(this.lexer),I={yy:{}};for(var M in this.yy)Object.prototype.hasOwnProperty.call(this.yy,M)&&(I.yy[M]=this.yy[M]);F.setInput(T,I.yy),I.yy.lexer=F,I.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var z=F.yylloc;C.push(z);var st=F.options&&F.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(){var ft;return ft=S.pop()||F.lex()||N,typeof ft!="number"&&(ft instanceof Array&&(S=ft,ft=S.pop()),ft=k.symbols_[ft]||ft),ft}for(var dt,K,G,tt,nt={},Q,J,O,at;;){if(K=A[A.length-1],this.defaultActions[K]?G=this.defaultActions[K]:((dt===null||typeof dt>"u")&&(dt=j()),G=f[K]&&f[K][dt]),typeof G>"u"||!G.length||!G[0]){var W="";at=[];for(Q in f[K])this.terminals_[Q]&&Q>U&&at.push("'"+this.terminals_[Q]+"'");F.showPosition?W="Parse error on line "+(b+1)+`: +`+F.showPosition()+` +Expecting `+at.join(", ")+", got '"+(this.terminals_[dt]||dt)+"'":W="Parse error on line "+(b+1)+": Unexpected "+(dt==N?"end of input":"'"+(this.terminals_[dt]||dt)+"'"),this.parseError(W,{text:F.match,token:this.terminals_[dt]||dt,line:F.yylineno,loc:z,expected:at})}if(G[0]instanceof Array&&G.length>1)throw new Error("Parse Error: multiple actions possible at state: "+K+", token: "+dt);switch(G[0]){case 1:A.push(dt),m.push(F.yytext),C.push(F.yylloc),A.push(G[1]),dt=null,P=F.yyleng,L=F.yytext,b=F.yylineno,z=F.yylloc;break;case 2:if(J=this.productions_[G[1]][1],nt.$=m[m.length-J],nt._$={first_line:C[C.length-(J||1)].first_line,last_line:C[C.length-1].last_line,first_column:C[C.length-(J||1)].first_column,last_column:C[C.length-1].last_column},st&&(nt._$.range=[C[C.length-(J||1)].range[0],C[C.length-1].range[1]]),tt=this.performAction.apply(nt,[L,P,b,I.yy,G[1],m,C].concat(D)),typeof tt<"u")return tt;J&&(A=A.slice(0,-1*J*2),m=m.slice(0,-1*J),C=C.slice(0,-1*J)),A.push(this.productions_[G[1]][0]),m.push(nt.$),C.push(nt._$),O=f[A[A.length-2]][A[A.length-1]],A.push(O);break;case 3:return!0}}return!0}},E=(function(){var v={EOF:1,parseError:function(k,A){if(this.yy.parser)this.yy.parser.parseError(k,A);else throw new Error(k)},setInput:function(T,k){return this.yy=k||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 k=T.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),T},unput:function(T){var k=T.length,A=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;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),A.length-1&&(this.yylineno-=A.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:A?(A.length===S.length?this.yylloc.first_column:0)+S[S.length-A.length].length-A[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(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(),k=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+k+"^"},test_match:function(T,k){var A,S,m;if(this.options.backtrack_lexer&&(m={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(m.yylloc.range=this.yylloc.range.slice(0))),S=T[0].match(/(?:\r\n?|\n).*/g),S&&(this.yylineno+=S.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:S?S[S.length-1].length-S[S.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],A=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),A)return A;if(this._backtrack){for(var C in m)this[C]=m[C];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,k,A,S;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),C=0;Ck[0].length)){if(k=A,S=C,this.options.backtrack_lexer){if(T=this.test_match(A,m[C]),T!==!1)return T;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(T=this.test_match(k,m[S]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var k=this.next();return k||this.lex()},begin:function(k){this.conditionStack.push(k)},popState:function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},pushState:function(k){this.begin(k)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(k,A,S,m){switch(S){case 0:return k.getLogger().trace("Found comment",A.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:k.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return k.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:k.getLogger().trace("end icon"),this.popState();break;case 10:return k.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return k.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return k.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return k.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:k.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return k.getLogger().trace("description:",A.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),k.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),k.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),k.getLogger().trace("node end ...",A.yytext),"NODE_DEND";case 30:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),k.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),k.getLogger().trace("node end (("),"NODE_DEND";case 35:return k.getLogger().trace("Long description:",A.yytext),20;case 36:return k.getLogger().trace("Long description:",A.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return v})();w.lexer=E;function R(){this.yy={}}return R.prototype=w,w.Parser=R,new R})();wo.parser=wo;const fC=wo;let ki=[],Nd=0,Rl={};const pC=()=>{ki=[],Nd=0,Rl={}},gC=function(t){for(let e=ki.length-1;e>=0;e--)if(ki[e].levelki.length>0?ki[0]:null,mC=(t,e,i,r)=>{var s,n;B.info("addNode",t,e,i,r);const a=Y();let o=((s=a.mindmap)==null?void 0:s.padding)??$t.mindmap.padding;switch(r){case ke.ROUNDED_RECT:case ke.RECT:case ke.HEXAGON:o*=2}const l={id:Nd++,nodeId:te(e,a),level:t,descr:te(i,a),type:r,children:[],width:((n=a.mindmap)==null?void 0:n.maxNodeWidth)??$t.mindmap.maxNodeWidth,padding:o},h=gC(t);if(h)h.children.push(l),ki.push(l);else if(ki.length===0)ki.push(l);else throw new Error('There can be only one root. No parent could be found for ("'+l.descr+'")')},ke={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},xC=(t,e)=>{switch(B.debug("In get type",t,e),t){case"[":return ke.RECT;case"(":return e===")"?ke.ROUNDED_RECT:ke.CLOUD;case"((":return ke.CIRCLE;case")":return ke.CLOUD;case"))":return ke.BANG;case"{{":return ke.HEXAGON;default:return ke.DEFAULT}},bC=(t,e)=>{Rl[t]=e},kC=t=>{if(!t)return;const e=Y(),i=ki[ki.length-1];t.icon&&(i.icon=te(t.icon,e)),t.class&&(i.class=te(t.class,e))},_C=t=>{switch(t){case ke.DEFAULT:return"no-border";case ke.RECT:return"rect";case ke.ROUNDED_RECT:return"rounded-rect";case ke.CIRCLE:return"circle";case ke.CLOUD:return"cloud";case ke.BANG:return"bang";case ke.HEXAGON:return"hexgon";default:return"no-border"}},TC=()=>B,CC=t=>Rl[t],EC={clear:pC,addNode:mC,getMindmap:yC,nodeType:ke,getType:xC,setElementForId:bC,decorateNode:kC,type2Str:_C,getLogger:TC,getElementById:CC},SC=EC,wC=12,vC=function(t,e,i,r){e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 ${i.height-5} v${-i.height+10} q0,-5 5,-5 h${i.width-10} q5,0 5,5 v${i.height-5} H0 Z`),e.append("line").attr("class","node-line-"+r).attr("x1",0).attr("y1",i.height).attr("x2",i.width).attr("y2",i.height)},AC=function(t,e,i){e.append("rect").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("height",i.height).attr("width",i.width)},LC=function(t,e,i){const r=i.width,s=i.height,n=.15*r,a=.25*r,o=.35*r,l=.2*r;e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 0 a${n},${n} 0 0,1 ${r*.25},${-1*r*.1} + a${o},${o} 1 0,1 ${r*.4},${-1*r*.1} + a${a},${a} 1 0,1 ${r*.35},${1*r*.2} + + a${n},${n} 1 0,1 ${r*.15},${1*s*.35} + a${l},${l} 1 0,1 ${-1*r*.15},${1*s*.65} + + a${a},${n} 1 0,1 ${-1*r*.25},${r*.15} + a${o},${o} 1 0,1 ${-1*r*.5},0 + a${n},${n} 1 0,1 ${-1*r*.25},${-1*r*.15} + + a${n},${n} 1 0,1 ${-1*r*.1},${-1*s*.35} + a${l},${l} 1 0,1 ${r*.1},${-1*s*.65} + + H0 V0 Z`)},BC=function(t,e,i){const r=i.width,s=i.height,n=.15*r;e.append("path").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("d",`M0 0 a${n},${n} 1 0,0 ${r*.25},${-1*s*.1} + a${n},${n} 1 0,0 ${r*.25},0 + a${n},${n} 1 0,0 ${r*.25},0 + a${n},${n} 1 0,0 ${r*.25},${1*s*.1} + + a${n},${n} 1 0,0 ${r*.15},${1*s*.33} + a${n*.8},${n*.8} 1 0,0 0,${1*s*.34} + a${n},${n} 1 0,0 ${-1*r*.15},${1*s*.33} + + a${n},${n} 1 0,0 ${-1*r*.25},${s*.15} + a${n},${n} 1 0,0 ${-1*r*.25},0 + a${n},${n} 1 0,0 ${-1*r*.25},0 + a${n},${n} 1 0,0 ${-1*r*.25},${-1*s*.15} + + a${n},${n} 1 0,0 ${-1*r*.1},${-1*s*.33} + a${n*.8},${n*.8} 1 0,0 0,${-1*s*.34} + a${n},${n} 1 0,0 ${r*.1},${-1*s*.33} + + H0 V0 Z`)},IC=function(t,e,i){e.append("circle").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("r",i.width/2)};function DC(t,e,i,r,s){return t.insert("polygon",":first-child").attr("points",r.map(function(n){return n.x+","+n.y}).join(" ")).attr("transform","translate("+(s.width-e)/2+", "+i+")")}const FC=function(t,e,i){const r=i.height,n=r/4,a=i.width-i.padding+2*n,o=[{x:n,y:0},{x:a-n,y:0},{x:a,y:-r/2},{x:a-n,y:-r},{x:n,y:-r},{x:0,y:-r/2}];DC(e,a,r,o,i)},RC=function(t,e,i){e.append("rect").attr("id","node-"+i.id).attr("class","node-bkg node-"+t.type2Str(i.type)).attr("height",i.height).attr("rx",i.padding).attr("ry",i.padding).attr("width",i.width)},NC=function(t,e,i,r,s){const n=s.htmlLabels,a=r%(wC-1),o=e.append("g");i.section=a;let l="section-"+a;a<0&&(l+=" section-root"),o.attr("class",(i.class?i.class+" ":"")+"mindmap-node "+l);const h=o.append("g"),u=o.append("g"),p=i.descr.replace(/()/g,` +`);fa(u,p,{useHtmlLabels:n,width:i.width,classes:"mindmap-node-label"}),n||u.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const d=u.node().getBBox(),[g]=Or(s.fontSize);if(i.height=d.height+g*1.1*.5+i.padding,i.width=d.width+2*i.padding,i.icon)if(i.type===t.nodeType.CIRCLE)i.height+=50,i.width+=50,o.append("foreignObject").attr("height","50px").attr("width",i.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+i.icon),u.attr("transform","translate("+i.width/2+", "+(i.height/2-1.5*i.padding)+")");else{i.width+=50;const y=i.height;i.height=Math.max(y,60);const x=Math.abs(i.height-y);o.append("foreignObject").attr("width","60px").attr("height",i.height).attr("style","text-align: center;margin-top:"+x/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+i.icon),u.attr("transform","translate("+(25+i.width/2)+", "+(x/2+i.padding/2)+")")}else if(n){const y=(i.width-d.width)/2,x=(i.height-d.height)/2;u.attr("transform","translate("+y+", "+x+")")}else{const y=i.width/2,x=i.padding/2;u.attr("transform","translate("+y+", "+x+")")}switch(i.type){case t.nodeType.DEFAULT:vC(t,h,i,a);break;case t.nodeType.ROUNDED_RECT:RC(t,h,i);break;case t.nodeType.RECT:AC(t,h,i);break;case t.nodeType.CIRCLE:h.attr("transform","translate("+i.width/2+", "+ +i.height/2+")"),IC(t,h,i);break;case t.nodeType.CLOUD:LC(t,h,i);break;case t.nodeType.BANG:BC(t,h,i);break;case t.nodeType.HEXAGON:FC(t,h,i);break}return t.setElementForId(i.id,o),i.height},OC=function(t,e){const i=t.getElementById(e.id),r=e.x||0,s=e.y||0;i.attr("transform","translate("+r+","+s+")")};xh.use(Nf);function Od(t,e,i,r,s){NC(t,e,i,r,s),i.children&&i.children.forEach((n,a)=>{Od(t,e,n,r<0?a:r,s)})}function PC(t,e){e.edges().map((i,r)=>{const s=i.data();if(i[0]._private.bodyBounds){const n=i[0]._private.rscratch;B.trace("Edge: ",r,s),t.insert("path").attr("d",`M ${n.startX},${n.startY} L ${n.midX},${n.midY} L${n.endX},${n.endY} `).attr("class","edge section-edge-"+s.section+" edge-depth-"+s.depth)}})}function Pd(t,e,i,r){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:r,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(s=>{Pd(s,e,i,r+1),e.add({group:"edges",data:{id:`${t.id}_${s.id}`,source:t.id,target:s.id,depth:r,section:s.section}})})}function MC(t,e){return new Promise(i=>{const r=yt("body").append("div").attr("id","cy").attr("style","display:none"),s=xh({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});r.remove(),Pd(t,s,e,0),s.nodes().forEach(function(n){n.layoutDimensions=()=>{const a=n.data();return{w:a.width,h:a.height}}}),s.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),s.ready(n=>{B.info("Ready",n),i(s)})})}function VC(t,e){e.nodes().map((i,r)=>{const s=i.data();s.x=i.position().x,s.y=i.position().y,OC(t,s);const n=t.getElementById(s.nodeId);B.info("Id:",r,"Position: (",i.position().x,", ",i.position().y,")",s),n.attr("transform",`translate(${i.position().x-s.width/2}, ${i.position().y-s.height/2})`),n.attr("attr",`apa-${r})`)})}const zC=async(t,e,i,r)=>{var s,n;B.debug(`Rendering mindmap diagram +`+t);const a=r.db,o=a.getMindmap();if(!o)return;const l=Y();l.htmlLabels=!1;const h=Zs(e),u=h.append("g");u.attr("class","mindmap-edges");const p=h.append("g");p.attr("class","mindmap-nodes"),Od(a,p,o,-1,l);const d=await MC(o,l);PC(u,d),VC(a,d),yr(void 0,h,((s=l.mindmap)==null?void 0:s.padding)??$t.mindmap.padding,((n=l.mindmap)==null?void 0:n.useMaxWidth)??$t.mindmap.useMaxWidth)},qC={draw:zC},WC=t=>{let e="";for(let i=0;i` + .edge { + stroke-width: 3; + } + ${WC(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,UC=YC,HC={db:SC,renderer:qC,parser:fC,styles:UC},GC=Object.freeze(Object.defineProperty({__proto__:null,diagram:HC},Symbol.toStringTag,{value:"Module"}));var vo=(function(){var t=function(o,l,h,u){for(h=h||{},u=o.length;u--;h[o[u]]=l);return h},e=[1,9],i=[1,10],r=[1,5,10,12],s={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(l,h,u,p,d,g,y){var x=g.length-1;switch(d){case 7:const _=p.findOrCreateNode(g[x-4].trim().replaceAll('""','"')),w=p.findOrCreateNode(g[x-2].trim().replaceAll('""','"')),E=parseFloat(g[x].trim());p.addLink(_,w,E);break;case 8:case 9:case 11:this.$=g[x];break;case 10:this.$=g[x-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:i},{1:[2,6],7:11,10:[1,12]},t(i,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(r,[2,8]),t(r,[2,9]),{19:[1,16]},t(r,[2,11]),{1:[2,1]},{1:[2,5]},t(i,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:i},{15:18,16:7,17:8,18:e,20:i},{18:[1,19]},t(i,[2,3]),{12:[1,20]},t(r,[2,10]),{15:21,16:7,17:8,18:e,20:i},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(l,h){if(h.recoverable)this.trace(l);else{var u=new Error(l);throw u.hash=h,u}},parse:function(l){var h=this,u=[0],p=[],d=[null],g=[],y=this.table,x="",_=0,w=0,E=2,R=1,v=g.slice.call(arguments,1),T=Object.create(this.lexer),k={yy:{}};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(k.yy[A]=this.yy[A]);T.setInput(l,k.yy),k.yy.lexer=T,k.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var S=T.yylloc;g.push(S);var m=T.options&&T.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function C(){var z;return z=p.pop()||T.lex()||R,typeof z!="number"&&(z instanceof Array&&(p=z,z=p.pop()),z=h.symbols_[z]||z),z}for(var f,L,b,P,U={},N,D,F,I;;){if(L=u[u.length-1],this.defaultActions[L]?b=this.defaultActions[L]:((f===null||typeof f>"u")&&(f=C()),b=y[L]&&y[L][f]),typeof b>"u"||!b.length||!b[0]){var M="";I=[];for(N in y[L])this.terminals_[N]&&N>E&&I.push("'"+this.terminals_[N]+"'");T.showPosition?M="Parse error on line "+(_+1)+`: +`+T.showPosition()+` +Expecting `+I.join(", ")+", got '"+(this.terminals_[f]||f)+"'":M="Parse error on line "+(_+1)+": Unexpected "+(f==R?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(M,{text:T.match,token:this.terminals_[f]||f,line:T.yylineno,loc:S,expected:I})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+f);switch(b[0]){case 1:u.push(f),d.push(T.yytext),g.push(T.yylloc),u.push(b[1]),f=null,w=T.yyleng,x=T.yytext,_=T.yylineno,S=T.yylloc;break;case 2:if(D=this.productions_[b[1]][1],U.$=d[d.length-D],U._$={first_line:g[g.length-(D||1)].first_line,last_line:g[g.length-1].last_line,first_column:g[g.length-(D||1)].first_column,last_column:g[g.length-1].last_column},m&&(U._$.range=[g[g.length-(D||1)].range[0],g[g.length-1].range[1]]),P=this.performAction.apply(U,[x,w,_,k.yy,b[1],d,g].concat(v)),typeof P<"u")return P;D&&(u=u.slice(0,-1*D*2),d=d.slice(0,-1*D),g=g.slice(0,-1*D)),u.push(this.productions_[b[1]][0]),d.push(U.$),g.push(U._$),F=y[u[u.length-2]][u[u.length-1]],u.push(F);break;case 3:return!0}}return!0}},n=(function(){var o={EOF:1,parseError:function(h,u){if(this.yy.parser)this.yy.parser.parseError(h,u);else throw new Error(h)},setInput:function(l,h){return this.yy=h||this.yy||{},this._input=l,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 l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var h=l.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},unput:function(l){var h=l.length,u=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var p=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 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:u?(u.length===p.length?this.yylloc.first_column:0)+p[p.length-u.length].length-u[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-h]),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(l){this.unput(this.match.slice(l))},pastInput:function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var l=this.pastInput(),h=new Array(l.length+1).join("-");return l+this.upcomingInput()+` +`+h+"^"},test_match:function(l,h){var u,p,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),p=l[0].match(/(?:\r\n?|\n).*/g),p&&(this.yylineno+=p.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:p?p[p.length-1].length-p[p.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+l[0].length},this.yytext+=l[0],this.match+=l[0],this.matches=l,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(l[0].length),this.matched+=l[0],u=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var g in d)this[g]=d[g];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var l,h,u,p;this._more||(this.yytext="",this.match="");for(var d=this._currentRules(),g=0;gh[0].length)){if(h=u,p=g,this.options.backtrack_lexer){if(l=this.test_match(u,d[g]),l!==!1)return l;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(l=this.test_match(h,d[p]),l!==!1?l:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var h=this.next();return h||this.lex()},begin:function(h){this.conditionStack.push(h)},popState:function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},pushState:function(h){this.begin(h)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(h,u,p,d){switch(p){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return o})();s.lexer=n;function a(){this.yy={}}return a.prototype=s,s.Parser=a,new a})();vo.parser=vo;const ia=vo;let _a=[],Ta=[],jr={};const jC=()=>{_a=[],Ta=[],jr={},Oe()};class XC{constructor(e,i,r=0){this.source=e,this.target=i,this.value=r}}const $C=(t,e,i)=>{_a.push(new XC(t,e,i))};class KC{constructor(e){this.ID=e}}const QC=t=>(t=mt.sanitizeText(t,Y()),jr[t]||(jr[t]=new KC(t),Ta.push(jr[t])),jr[t]),ZC=()=>Ta,JC=()=>_a,tE=()=>({nodes:Ta.map(t=>({id:t.ID})),links:_a.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),eE={nodesMap:jr,getConfig:()=>Y().sankey,getNodes:ZC,getLinks:JC,getGraph:tE,addLink:$C,findOrCreateNode:QC,getAccTitle:Ye,setAccTitle:Pe,getAccDescription:He,setAccDescription:Ue,getDiagramTitle:Ge,setDiagramTitle:ri,clear:jC},Md=class Ao{static next(e){return new Ao(e+ ++Ao.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}};Md.count=0;let lh=Md;const iE={left:zf,right:Vf,center:Mf,justify:Pf},rE=function(t,e,i,r){const{securityLevel:s,sankey:n}=Y(),a=a1.sankey;let o;s==="sandbox"&&(o=yt("#i"+e));const l=s==="sandbox"?yt(o.nodes()[0].contentDocument.body):yt("body"),h=s==="sandbox"?l.select(`[id="${e}"]`):yt(`[id="${e}"]`),u=n?.width??a.width,p=n?.height??a.width,d=n?.useMaxWidth??a.useMaxWidth,g=n?.nodeAlignment??a.nodeAlignment,y=n?.prefix??a.prefix,x=n?.suffix??a.suffix,_=n?.showValues??a.showValues,w=r.db.getGraph(),E=iE[g];Of().nodeId(C=>C.id).nodeWidth(10).nodePadding(10+(_?15:0)).nodeAlign(E).extent([[0,0],[u,p]])(w);const T=Io(bh);h.append("g").attr("class","nodes").selectAll(".node").data(w.nodes).join("g").attr("class","node").attr("id",C=>(C.uid=lh.next("node-")).id).attr("transform",function(C){return"translate("+C.x0+","+C.y0+")"}).attr("x",C=>C.x0).attr("y",C=>C.y0).append("rect").attr("height",C=>C.y1-C.y0).attr("width",C=>C.x1-C.x0).attr("fill",C=>T(C.id));const k=({id:C,value:f})=>_?`${C} +${y}${Math.round(f*100)/100}${x}`:C;h.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(w.nodes).join("text").attr("x",C=>C.x0(C.y1+C.y0)/2).attr("dy",`${_?"0":"0.35"}em`).attr("text-anchor",C=>C.x0(f.uid=lh.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",f=>f.source.x1).attr("x2",f=>f.target.x0);C.append("stop").attr("offset","0%").attr("stop-color",f=>T(f.source.id)),C.append("stop").attr("offset","100%").attr("stop-color",f=>T(f.target.id))}let m;switch(S){case"gradient":m=C=>C.uid;break;case"source":m=C=>T(C.source.id);break;case"target":m=C=>T(C.target.id);break;default:m=S}A.append("path").attr("d",qf()).attr("stroke",m).attr("stroke-width",C=>Math.max(1,C.width)),yr(void 0,h,0,d)},sE={draw:rE},nE=t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),aE=ia.parse.bind(ia);ia.parse=t=>aE(nE(t));const oE={parser:ia,db:eE,renderer:sE},lE=Object.freeze(Object.defineProperty({__proto__:null,diagram:oE},Symbol.toStringTag,{value:"Module"}));var ch,hh,Lo=(function(){var t=function(R,v,T,k){for(T=T||{},k=R.length;k--;T[R[k]]=v);return T},e=[1,7],i=[1,13],r=[1,14],s=[1,15],n=[1,19],a=[1,16],o=[1,17],l=[1,18],h=[8,30],u=[8,21,28,29,30,31,32,40,44,47],p=[1,23],d=[1,24],g=[8,15,16,21,28,29,30,31,32,40,44,47],y=[8,15,16,21,27,28,29,30,31,32,40,44,47],x=[1,49],_={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(v,T,k,A,S,m,C){var f=m.length-1;switch(S){case 4:A.getLogger().debug("Rule: separator (NL) ");break;case 5:A.getLogger().debug("Rule: separator (Space) ");break;case 6:A.getLogger().debug("Rule: separator (EOF) ");break;case 7:A.getLogger().debug("Rule: hierarchy: ",m[f-1]),A.setHierarchy(m[f-1]);break;case 8:A.getLogger().debug("Stop NL ");break;case 9:A.getLogger().debug("Stop EOF ");break;case 10:A.getLogger().debug("Stop NL2 ");break;case 11:A.getLogger().debug("Stop EOF2 ");break;case 12:A.getLogger().debug("Rule: statement: ",m[f]),typeof m[f].length=="number"?this.$=m[f]:this.$=[m[f]];break;case 13:A.getLogger().debug("Rule: statement #2: ",m[f-1]),this.$=[m[f-1]].concat(m[f]);break;case 14:A.getLogger().debug("Rule: link: ",m[f],v),this.$={edgeTypeStr:m[f],label:""};break;case 15:A.getLogger().debug("Rule: LABEL link: ",m[f-3],m[f-1],m[f]),this.$={edgeTypeStr:m[f],label:m[f-1]};break;case 18:const L=parseInt(m[f]),b=A.generateId();this.$={id:b,type:"space",label:"",width:L,children:[]};break;case 23:A.getLogger().debug("Rule: (nodeStatement link node) ",m[f-2],m[f-1],m[f]," typestr: ",m[f-1].edgeTypeStr);const P=A.edgeStrToEdgeData(m[f-1].edgeTypeStr);this.$=[{id:m[f-2].id,label:m[f-2].label,type:m[f-2].type,directions:m[f-2].directions},{id:m[f-2].id+"-"+m[f].id,start:m[f-2].id,end:m[f].id,label:m[f-1].label,type:"edge",directions:m[f].directions,arrowTypeEnd:P,arrowTypeStart:"arrow_open"},{id:m[f].id,label:m[f].label,type:A.typeStr2Type(m[f].typeStr),directions:m[f].directions}];break;case 24:A.getLogger().debug("Rule: nodeStatement (abc88 node size) ",m[f-1],m[f]),this.$={id:m[f-1].id,label:m[f-1].label,type:A.typeStr2Type(m[f-1].typeStr),directions:m[f-1].directions,widthInColumns:parseInt(m[f],10)};break;case 25:A.getLogger().debug("Rule: nodeStatement (node) ",m[f]),this.$={id:m[f].id,label:m[f].label,type:A.typeStr2Type(m[f].typeStr),directions:m[f].directions,widthInColumns:1};break;case 26:A.getLogger().debug("APA123",this?this:"na"),A.getLogger().debug("COLUMNS: ",m[f]),this.$={type:"column-setting",columns:m[f]==="auto"?-1:parseInt(m[f])};break;case 27:A.getLogger().debug("Rule: id-block statement : ",m[f-2],m[f-1]),A.generateId(),this.$={...m[f-2],type:"composite",children:m[f-1]};break;case 28:A.getLogger().debug("Rule: blockStatement : ",m[f-2],m[f-1],m[f]);const U=A.generateId();this.$={id:U,type:"composite",label:"",children:m[f-1]};break;case 29:A.getLogger().debug("Rule: node (NODE_ID separator): ",m[f]),this.$={id:m[f]};break;case 30:A.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",m[f-1],m[f]),this.$={id:m[f-1],label:m[f].label,typeStr:m[f].typeStr,directions:m[f].directions};break;case 31:A.getLogger().debug("Rule: dirList: ",m[f]),this.$=[m[f]];break;case 32:A.getLogger().debug("Rule: dirList: ",m[f-1],m[f]),this.$=[m[f-1]].concat(m[f]);break;case 33:A.getLogger().debug("Rule: nodeShapeNLabel: ",m[f-2],m[f-1],m[f]),this.$={typeStr:m[f-2]+m[f],label:m[f-1]};break;case 34:A.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",m[f-3],m[f-2]," #3:",m[f-1],m[f]),this.$={typeStr:m[f-3]+m[f],label:m[f-2],directions:m[f-1]};break;case 35:case 36:this.$={type:"classDef",id:m[f-1].trim(),css:m[f].trim()};break;case 37:this.$={type:"applyClass",id:m[f-1].trim(),styleClass:m[f].trim()};break;case 38:this.$={type:"applyStyles",id:m[f-1].trim(),stylesStr:m[f].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:s,32:n,40:a,44:o,47:l},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:i,29:r,31:s,32:n,40:a,44:o,47:l}),t(u,[2,16],{14:22,15:p,16:d}),t(u,[2,17]),t(u,[2,18]),t(u,[2,19]),t(u,[2,20]),t(u,[2,21]),t(u,[2,22]),t(g,[2,25],{27:[1,25]}),t(u,[2,26]),{19:26,26:12,32:n},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:s,32:n,40:a,44:o,47:l},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(y,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:n},{32:[2,14]},{17:[1,36]},t(g,[2,24]),{11:37,13:4,14:22,15:p,16:d,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:s,32:n,40:a,44:o,47:l},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(y,[2,30]),{18:[1,43]},{18:[1,44]},t(g,[2,23]),{18:[1,45]},{30:[1,46]},t(u,[2,28]),t(u,[2,35]),t(u,[2,36]),t(u,[2,37]),t(u,[2,38]),{37:[1,47]},{34:48,35:x},{15:[1,50]},t(u,[2,27]),t(y,[2,33]),{39:[1,51]},{34:52,35:x,39:[2,31]},{32:[2,15]},t(y,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(v,T){if(T.recoverable)this.trace(v);else{var k=new Error(v);throw k.hash=T,k}},parse:function(v){var T=this,k=[0],A=[],S=[null],m=[],C=this.table,f="",L=0,b=0,P=2,U=1,N=m.slice.call(arguments,1),D=Object.create(this.lexer),F={yy:{}};for(var I in this.yy)Object.prototype.hasOwnProperty.call(this.yy,I)&&(F.yy[I]=this.yy[I]);D.setInput(v,F.yy),F.yy.lexer=D,F.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var M=D.yylloc;m.push(M);var z=D.options&&D.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function st(){var W;return W=A.pop()||D.lex()||U,typeof W!="number"&&(W instanceof Array&&(A=W,W=A.pop()),W=T.symbols_[W]||W),W}for(var j,dt,K,G,tt={},nt,Q,J,O;;){if(dt=k[k.length-1],this.defaultActions[dt]?K=this.defaultActions[dt]:((j===null||typeof j>"u")&&(j=st()),K=C[dt]&&C[dt][j]),typeof K>"u"||!K.length||!K[0]){var at="";O=[];for(nt in C[dt])this.terminals_[nt]&&nt>P&&O.push("'"+this.terminals_[nt]+"'");D.showPosition?at="Parse error on line "+(L+1)+`: +`+D.showPosition()+` +Expecting `+O.join(", ")+", got '"+(this.terminals_[j]||j)+"'":at="Parse error on line "+(L+1)+": Unexpected "+(j==U?"end of input":"'"+(this.terminals_[j]||j)+"'"),this.parseError(at,{text:D.match,token:this.terminals_[j]||j,line:D.yylineno,loc:M,expected:O})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+dt+", token: "+j);switch(K[0]){case 1:k.push(j),S.push(D.yytext),m.push(D.yylloc),k.push(K[1]),j=null,b=D.yyleng,f=D.yytext,L=D.yylineno,M=D.yylloc;break;case 2:if(Q=this.productions_[K[1]][1],tt.$=S[S.length-Q],tt._$={first_line:m[m.length-(Q||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(Q||1)].first_column,last_column:m[m.length-1].last_column},z&&(tt._$.range=[m[m.length-(Q||1)].range[0],m[m.length-1].range[1]]),G=this.performAction.apply(tt,[f,b,L,F.yy,K[1],S,m].concat(N)),typeof G<"u")return G;Q&&(k=k.slice(0,-1*Q*2),S=S.slice(0,-1*Q),m=m.slice(0,-1*Q)),k.push(this.productions_[K[1]][0]),S.push(tt.$),m.push(tt._$),J=C[k[k.length-2]][k[k.length-1]],k.push(J);break;case 3:return!0}}return!0}},w=(function(){var R={EOF:1,parseError:function(T,k){if(this.yy.parser)this.yy.parser.parseError(T,k);else throw new Error(T)},setInput:function(v,T){return this.yy=T||this.yy||{},this._input=v,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 v=this._input[0];this.yytext+=v,this.yyleng++,this.offset++,this.match+=v,this.matched+=v;var T=v.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),v},unput:function(v){var T=v.length,k=v.split(/(?:\r\n?|\n)/g);this._input=v+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var A=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),k.length-1&&(this.yylineno-=k.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:k?(k.length===A.length?this.yylloc.first_column:0)+A[A.length-k.length].length-k[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-T]),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(v){this.unput(this.match.slice(v))},pastInput:function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var v=this.match;return v.length<20&&(v+=this._input.substr(0,20-v.length)),(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var v=this.pastInput(),T=new Array(v.length+1).join("-");return v+this.upcomingInput()+` +`+T+"^"},test_match:function(v,T){var k,A,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),A=v[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+v[0].length},this.yytext+=v[0],this.match+=v[0],this.matches=v,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(v[0].length),this.matched+=v[0],k=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),k)return k;if(this._backtrack){for(var m in S)this[m]=S[m];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var v,T,k,A;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),m=0;mT[0].length)){if(T=k,A=m,this.options.backtrack_lexer){if(v=this.test_match(k,S[m]),v!==!1)return v;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(v=this.test_match(T,S[A]),v!==!1?v:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var T=this.next();return T||this.lex()},begin:function(T){this.conditionStack.push(T)},popState:function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},pushState:function(T){this.begin(T)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(T,k,A,S){switch(A){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;case 2:return T.getLogger().debug("Found nl-block"),31;case 3:return T.getLogger().debug("Found space-block"),29;case 4:T.getLogger().debug(".",k.yytext);break;case 5:T.getLogger().debug("_",k.yytext);break;case 6:return 5;case 7:return k.yytext=-1,28;case 8:return k.yytext=k.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",k.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",k.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",k.yytext),"STR";case 15:return k.yytext=k.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",k.yytext),21;case 16:return k.yytext="1",T.getLogger().debug("COLUMNS (LEX)",k.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;case 75:return T.getLogger().debug("Lex: NODE_ID",k.yytext),32;case 76:return T.getLogger().debug("Lex: EOF",k.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",k.yytext),"NODE_DESCR";case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",k.yytext),"DIR";case 87:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",k.yytext),"DIR";case 88:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",k.yytext),"DIR";case 89:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",k.yytext),"DIR";case 90:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",k.yytext),"DIR";case 91:return k.yytext=k.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",k.yytext),"DIR";case 92:return k.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",k.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return T.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;case 94:return T.getLogger().debug("Lex: LINK",k.yytext),15;case 95:return T.getLogger().debug("Lex: LINK",k.yytext),15;case 96:return T.getLogger().debug("Lex: LINK",k.yytext),15;case 97:return T.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;case 98:return T.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;case 99:return T.getLogger().debug("Lex: START_LINK",k.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+k.yytext+"#"),15;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",k.yytext),15;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",k.yytext),15;case 105:return T.getLogger().debug("Lex: COLON",k.yytext),k.yytext=k.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return R})();_.lexer=w;function E(){this.yy={}}return E.prototype=_,_.Parser=E,new E})();Lo.parser=Lo;const cE=Lo;let Ze={},Nl=[],ks={};const uh="color",dh="fill",hE="bgFill",Vd=",",uE=Y();let As={};const dE=t=>mt.sanitizeText(t,uE),fE=function(t,e=""){As[t]===void 0&&(As[t]={id:t,styles:[],textStyles:[]});const i=As[t];e?.split(Vd).forEach(r=>{const s=r.replace(/([^;]*);/,"$1").trim();if(r.match(uh)){const a=s.replace(dh,hE).replace(uh,dh);i.textStyles.push(a)}i.styles.push(s)})},pE=function(t,e=""){const i=Ze[t];e!=null&&(i.styles=e.split(Vd))},gE=function(t,e){t.split(",").forEach(function(i){let r=Ze[i];if(r===void 0){const s=i.trim();Ze[s]={id:s,type:"na",children:[]},r=Ze[s]}r.classes||(r.classes=[]),r.classes.push(e)})},zd=(t,e)=>{const i=t.flat(),r=[];for(const s of i){if(s.label&&(s.label=dE(s.label)),s.type==="classDef"){fE(s.id,s.css);continue}if(s.type==="applyClass"){gE(s.id,s?.styleClass||"");continue}if(s.type==="applyStyles"){s?.stylesStr&&pE(s.id,s?.stylesStr);continue}if(s.type==="column-setting")e.columns=s.columns||-1;else if(s.type==="edge")ks[s.id]?ks[s.id]++:ks[s.id]=1,s.id=ks[s.id]+"-"+s.id,Nl.push(s);else{s.label||(s.type==="composite"?s.label="":s.label=s.id);const n=!Ze[s.id];if(n?Ze[s.id]=s:(s.type!=="na"&&(Ze[s.id].type=s.type),s.label!==s.id&&(Ze[s.id].label=s.label)),s.children&&zd(s.children,s),s.type==="space"){const a=s.width||1;for(let o=0;o{B.debug("Clear called"),Oe(),Ls={id:"root",type:"composite",children:[],columns:-1},Ze={root:Ls},Ol=[],As={},Nl=[],ks={}};function mE(t){switch(B.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return B.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function xE(t){switch(B.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function bE(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let fh=0;const kE=()=>(fh++,"id-"+Math.random().toString(36).substr(2,12)+"-"+fh),_E=t=>{Ls.children=t,zd(t,Ls),Ol=Ls.children},TE=t=>{const e=Ze[t];return e?e.columns?e.columns:e.children?e.children.length:-1:-1},CE=()=>[...Object.values(Ze)],EE=()=>Ol||[],SE=()=>Nl,wE=t=>Ze[t],vE=t=>{Ze[t.id]=t},AE=()=>console,LE=function(){return As},BE={getConfig:()=>ee().block,typeStr2Type:mE,edgeTypeStr2Type:xE,edgeStrToEdgeData:bE,getLogger:AE,getBlocksFlat:CE,getBlocks:EE,getEdges:SE,setHierarchy:_E,getBlock:wE,setBlock:vE,getColumns:TE,getClasses:LE,clear:yE,generateId:kE},IE=BE,gn=(t,e)=>{const i=mh,r=i(t,"r"),s=i(t,"g"),n=i(t,"b");return Xr(r,s,n,e)},DE=t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${gn(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${gn(t.mainBkg,.5)}; + fill: ${gn(t.clusterBkg,.5)}; + stroke: ${gn(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,FE=DE;function qd(t,e,i=!1){var r,s,n;const a=t;let o="default";(((r=a?.classes)==null?void 0:r.length)||0)>0&&(o=(a?.classes||[]).join(" ")),o=o+" flowchart-label";let l=0,h="",u;switch(a.type){case"round":l=5,h="rect";break;case"composite":l=0,h="composite",u=0;break;case"square":h="rect";break;case"diamond":h="question";break;case"hexagon":h="hexagon";break;case"block_arrow":h="block_arrow";break;case"odd":h="rect_left_inv_arrow";break;case"lean_right":h="lean_right";break;case"lean_left":h="lean_left";break;case"trapezoid":h="trapezoid";break;case"inv_trapezoid":h="inv_trapezoid";break;case"rect_left_inv_arrow":h="rect_left_inv_arrow";break;case"circle":h="circle";break;case"ellipse":h="ellipse";break;case"stadium":h="stadium";break;case"subroutine":h="subroutine";break;case"cylinder":h="cylinder";break;case"group":h="rect";break;case"doublecircle":h="doublecircle";break;default:h="rect"}const p=ii(a?.styles||[]),d=a.label,g=a.size||{width:0,height:0,x:0,y:0};return{labelStyle:p.labelStyle,shape:h,labelText:d,rx:l,ry:l,class:o,style:p.style,id:a.id,directions:a.directions,width:g.width,height:g.height,x:g.x,y:g.y,positioned:i,intersect:void 0,type:a.type,padding:u??(((n=(s=ee())==null?void 0:s.block)==null?void 0:n.padding)||0)}}async function RE(t,e,i){const r=qd(e,i,!1);if(r.type==="group")return;const s=await pa(t,r),n=s.node().getBBox(),a=i.getBlock(r.id);a.size={width:n.width,height:n.height,x:0,y:0,node:s},i.setBlock(a),s.remove()}async function NE(t,e,i){const r=qd(e,i,!0);i.getBlock(r.id).type!=="space"&&(await pa(t,r),e.intersect=r?.intersect,Ka(r))}async function Pl(t,e,i,r){for(const s of e)await r(t,s,i),s.children&&await Pl(t,s.children,i,r)}async function OE(t,e,i){await Pl(t,e,i,RE)}async function PE(t,e,i){await Pl(t,e,i,NE)}async function ME(t,e,i,r,s){const n=new Ii({multigraph:!0,compound:!0});n.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const a of i)a.size&&n.setNode(a.id,{width:a.size.width,height:a.size.height,intersect:a.intersect});for(const a of e)if(a.start&&a.end){const o=r.getBlock(a.start),l=r.getBlock(a.end);if(o?.size&&l?.size){const h=o.size,u=l.size,p=[{x:h.x,y:h.y},{x:h.x+(u.x-h.x)/2,y:h.y+(u.y-h.y)/2},{x:u.x,y:u.y}];await Su(t,{v:a.start,w:a.end,name:a.id},{...a,arrowTypeEnd:a.arrowTypeEnd,arrowTypeStart:a.arrowTypeStart,points:p,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",n,s),a.label&&(await il(t,{...a,label:a.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:a.arrowTypeEnd,arrowTypeStart:a.arrowTypeStart}),await Eu({...a,x:p[1].x,y:p[1].y},{originalPath:p}))}}}const ue=((hh=(ch=Y())==null?void 0:ch.block)==null?void 0:hh.padding)||8;function VE(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};const i=e%t,r=Math.floor(e/t);return{px:i,py:r}}const zE=t=>{let e=0,i=0;for(const r of t.children){const{width:s,height:n,x:a,y:o}=r.size||{width:0,height:0,x:0,y:0};B.debug("getMaxChildSize abc95 child:",r.id,"width:",s,"height:",n,"x:",a,"y:",o,r.type),r.type!=="space"&&(s>e&&(e=s/(t.widthInColumns||1)),n>i&&(i=n))}return{width:e,height:i}};function Bo(t,e,i=0,r=0){var s,n,a,o,l,h,u,p,d,g,y;B.debug("setBlockSizes abc95 (start)",t.id,(s=t?.size)==null?void 0:s.x,"block width =",t?.size,"sieblingWidth",i),(n=t?.size)!=null&&n.width||(t.size={width:i,height:r,x:0,y:0});let x=0,_=0;if(((a=t.children)==null?void 0:a.length)>0){for(const S of t.children)Bo(S,e);const w=zE(t);x=w.width,_=w.height,B.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",x,_);for(const S of t.children)S.size&&(B.debug(`abc95 Setting size of children of ${t.id} id=${S.id} ${x} ${_} ${S.size}`),S.size.width=x*(S.widthInColumns||1)+ue*((S.widthInColumns||1)-1),S.size.height=_,S.size.x=0,S.size.y=0,B.debug(`abc95 updating size of ${t.id} children child:${S.id} maxWidth:${x} maxHeight:${_}`));for(const S of t.children)Bo(S,e,x,_);const E=t.columns||-1;let R=0;for(const S of t.children)R+=S.widthInColumns||1;let v=t.children.length;E>0&&E0?Math.min(t.children.length,E):t.children.length;if(S>0){const m=(k-S*ue-ue)/S;B.debug("abc95 (growing to fit) width",t.id,k,(u=t.size)==null?void 0:u.width,m);for(const C of t.children)C.size&&(C.size.width=m)}}t.size={width:k,height:A,x:0,y:0}}B.debug("setBlockSizes abc94 (done)",t.id,(p=t?.size)==null?void 0:p.x,(d=t?.size)==null?void 0:d.width,(g=t?.size)==null?void 0:g.y,(y=t?.size)==null?void 0:y.height)}function Wd(t,e){var i,r,s,n,a,o,l,h,u,p,d,g,y,x,_,w,E;B.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${(i=t?.size)==null?void 0:i.x} y: ${(r=t?.size)==null?void 0:r.y} width: ${(s=t?.size)==null?void 0:s.width}`);const R=t.columns||-1;if(B.debug("layoutBlocks columns abc95",t.id,"=>",R,t),t.children&&t.children.length>0){const v=((a=(n=t?.children[0])==null?void 0:n.size)==null?void 0:a.width)||0,T=t.children.length*v+(t.children.length-1)*ue;B.debug("widthOfChildren 88",T,"posX");let k=0;B.debug("abc91 block?.size?.x",t.id,(o=t?.size)==null?void 0:o.x);let A=(l=t?.size)!=null&&l.x?((h=t?.size)==null?void 0:h.x)+(-((u=t?.size)==null?void 0:u.width)/2||0):-ue,S=0;for(const m of t.children){const C=t;if(!m.size)continue;const{width:f,height:L}=m.size,{px:b,py:P}=VE(R,k);if(P!=S&&(S=P,A=(p=t?.size)!=null&&p.x?((d=t?.size)==null?void 0:d.x)+(-((g=t?.size)==null?void 0:g.width)/2||0):-ue,B.debug("New row in layout for block",t.id," and child ",m.id,S)),B.debug(`abc89 layout blocks (child) id: ${m.id} Pos: ${k} (px, py) ${b},${P} (${(y=C?.size)==null?void 0:y.x},${(x=C?.size)==null?void 0:x.y}) parent: ${C.id} width: ${f}${ue}`),C.size){const U=f/2;m.size.x=A+ue+U,B.debug(`abc91 layout blocks (calc) px, pyid:${m.id} startingPos=X${A} new startingPosX${m.size.x} ${U} padding=${ue} width=${f} halfWidth=${U} => x:${m.size.x} y:${m.size.y} ${m.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(m?.widthInColumns||1)/2}`),A=m.size.x+U,m.size.y=C.size.y-C.size.height/2+P*(L+ue)+L/2+ue,B.debug(`abc88 layout blocks (calc) px, pyid:${m.id}startingPosX${A}${ue}${U}=>x:${m.size.x}y:${m.size.y}${m.widthInColumns}(width * (child?.w || 1)) / 2${f*(m?.widthInColumns||1)/2}`)}m.children&&Wd(m),k+=m?.widthInColumns||1,B.debug("abc88 columnsPos",m,k)}}B.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${(_=t?.size)==null?void 0:_.x} y: ${(w=t?.size)==null?void 0:w.y} width: ${(E=t?.size)==null?void 0:E.width}`)}function Yd(t,{minX:e,minY:i,maxX:r,maxY:s}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){const{x:n,y:a,width:o,height:l}=t.size;n-o/2r&&(r=n+o/2),a+l/2>s&&(s=a+l/2)}if(t.children)for(const n of t.children)({minX:e,minY:i,maxX:r,maxY:s}=Yd(n,{minX:e,minY:i,maxX:r,maxY:s}));return{minX:e,minY:i,maxX:r,maxY:s}}function qE(t){const e=t.getBlock("root");if(!e)return;Bo(e,t,0,0),Wd(e),B.debug("getBlocks",JSON.stringify(e,null,2));const{minX:i,minY:r,maxX:s,maxY:n}=Yd(e),a=n-r,o=s-i;return{x:i,y:r,width:o,height:a}}const WE=function(t,e){return e.db.getClasses()},YE=async function(t,e,i,r){const{securityLevel:s,block:n}=ee(),a=r.db;let o;s==="sandbox"&&(o=yt("#i"+e));const l=s==="sandbox"?yt(o.nodes()[0].contentDocument.body):yt("body"),h=s==="sandbox"?l.select(`[id="${e}"]`):yt(`[id="${e}"]`);tl(h,["point","circle","cross"],r.type,e);const p=a.getBlocks(),d=a.getBlocksFlat(),g=a.getEdges(),y=h.insert("g").attr("class","block");await OE(y,p,a);const x=qE(a);if(await PE(y,p,a),await ME(y,g,d,a,e),x){const _=x,w=Math.max(1,Math.round(.125*(_.width/_.height))),E=_.height+w+10,R=_.width+10,{useMaxWidth:v}=n;Ne(h,E,R,!!v),B.debug("Here Bounds",x,_),h.attr("viewBox",`${_.x-5} ${_.y-5} ${_.width+10} ${_.height+10}`)}Io(bh)},UE={draw:YE,getClasses:WE},HE={parser:cE,db:IE,renderer:UE,styles:FE},GE=Object.freeze(Object.defineProperty({__proto__:null,diagram:HE},Symbol.toStringTag,{value:"Module"}));export{ae as _,Li as m}; +//# sourceMappingURL=mermaid-KwKZWwy0.js.map diff --git a/assets/mermaid-KwKZWwy0.js.map b/assets/mermaid-KwKZWwy0.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a000e0d549f3221cc126fa73bbb8c622e77e6632 --- /dev/null +++ b/assets/mermaid-KwKZWwy0.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,aAAgB,GAChB,WAAc,GACd,gBAAmB,EACnB,YAAe,GACf,oBAAuB,GACvB,cAAiB,GACjB,gBAAmB,0BACnB,gBAAmB,IACnB,aAAgB,GAChB,eAAkB,6CAClB,eAAkB,IAClB,UAAa,SACb,gBAAmB,GACnB,kBAAqB,6CACrB,kBAAqB,IACrB,KAAQ,GACR,YAAe,GACf,cAAiB,GACjB,eAAkB,EACtB,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,UAAa,GACb,OAAU,EACV,WAAc,GACd,aAAgB,GAChB,YAAe,GACf,qBAAwB,GACxB,SAAY,GACZ,gBAAmB,GACnB,oBAAuB,EACvB,WAAc,WACd,QAAW,GACX,YAAe,GACf,QAAW,QACf,EACE,QAAW,CACT,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,WAAc,IACd,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,gBAAmB,EACnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,eAAkB,CAChB,MACN,CACA,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,oBAAuB,GACvB,cAAiB,GACjB,QAAW,EACX,WAAc,GACd,gBAAmB,gBACnB,WAAc,EAClB,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,cAAiB,GACjB,SAAY,EACZ,QAAW,EACX,WAAc,GACd,WAAc,IACd,WAAc,GACd,UAAa,GACb,WAAc,EACd,YAAe,EACf,eAAkB,KAClB,SAAY,GACZ,YAAe,GACf,iBAAoB,KACpB,kBAAqB,GACrB,OAAU,EACV,gBAAmB,eACvB,EACE,GAAM,CACJ,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,gBAAmB,KACnB,eAAkB,IAClB,gBAAmB,GACnB,cAAiB,GACjB,OAAU,OACV,KAAQ,WACR,SAAY,EAChB,EACE,IAAO,CACL,YAAe,GACf,aAAgB,GACpB,EACE,cAAiB,CACf,YAAe,GACf,WAAc,IACd,YAAe,IACf,cAAiB,GACjB,aAAgB,GAChB,gBAAmB,EACnB,kBAAqB,EACrB,kBAAqB,EACrB,mBAAsB,GACtB,mBAAsB,GACtB,sBAAyB,GACzB,uBAA0B,EAC1B,iBAAoB,EACpB,mBAAsB,GACtB,YAAe,EACf,cAAiB,MACjB,cAAiB,OACjB,kCAAqC,EACrC,kCAAqC,CACzC,EACE,QAAW,CACT,YAAe,GACf,MAAS,IACT,OAAU,IACV,cAAiB,GACjB,aAAgB,GAChB,UAAa,GACb,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,iBAAoB,WACpB,yBAA4B,EAChC,EACE,YAAe,CACb,YAAe,GACf,UAAa,UACb,WAAc,OACd,iBAAoB,QACpB,kBAAqB,OACrB,eAAkB,IAClB,gBAAmB,IACnB,SAAY,GACZ,aAAgB,GAChB,YAAe,EACnB,EACE,QAAW,CACT,YAAe,GACf,QAAW,GACX,aAAgB,GACpB,EACE,SAAY,CACV,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,WAAc,IACd,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,gBAAmB,EACnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,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IC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI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AO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,EAAG,EAAE,EAAGC,GAAO,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,GAAI,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,GAAI,GAAG,EAAGC,GAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,CAAC,EAAG,GAAG,EAAGC,GAAO,C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EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,IAAK,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,CAAC,EACtnD,cAAe,SAAmBC,GAAQC,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C,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAA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C,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,EAAG,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE,EAAG,CAAE,GAAI,CAAC,EAAG,GAAG,CAAC,CAAE,EAAGb,EAAEa,EAAK,CAAC,EAAG,EAAE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,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,E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C,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC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AAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,G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","names":["LEVELS","log$1","_args","setLogLevel$1","level","numericLevel","format","dayjs","lineBreakRegex","getRows","s","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","DOMPurify","node","removeScript","txt","sanitizeMore","text","config2","_a","placeholderToBreak","sanitizeText$2","sanitizeTextOrArray","a","x","hasBreaks","splitBreaks","getUrl","useAbsolute","url","evaluate","val","getMax","values","newValues","value","getMin","parseGenericTypes","input","inputSets","output","i","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","string","substring","prevCount","nextCount","tildeCount","hasStartingTilde","chars","first","last","isMathMLSupported","katexRegex","hasKatex","calculateMathMLDimensions","divElem","renderKatexSanitized","body","dim","renderKatexUnsanitized","katex","__vitePreload","line","_","c","common$1","mkBorder","col","darkMode","adjust","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","Theme$4","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","invert","darken","lighten","multiplier","isDark","overrides","keys","k","getThemeVariables$4","userOverrides","theme2","Theme$3","rgba","getThemeVariables$3","Theme$2","getThemeVariables$2","Theme$1","getThemeVariables$1","Theme5","getThemeVariables","theme","defaultConfigJson","config","keyify","obj","prefix","res","el","configKeys","defaultConfig$2","sanitizeDirective","args","arg","key","cssMatchers","cssKey","sanitizeCss","str2","startCnt","endCnt","element","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","message","detectors","detectType","detector2","registerLazyLoadedDiagrams","diagrams2","id2","loader2","addDetector","getDiagramLoader","assignWithDepth","dst","src","depth","clobber","assignWithDepth$1","ZERO_WIDTH_SPACE","d3CurveTypes","curveBasis","curveBasisClosed","curveBasisOpen","curveBumpX","curveBumpY","curveBundle","curveCardinalClosed","curveCardinalOpen","curveCardinal","curveCatmullRomClosed","curveCatmullRomOpen","curveCatmullRom","curveLinear","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","detectInit","inits","detectDirective","results","init2","type2","prop","commentWithoutDirectives","match","result","type22","error","removeDirectives","isSubstringInArray","arr","interpolateToCurve","interpolate","defaultCurve","curveName","formatUrl","linkStr","sanitizeUrl","runFunc","functionName","params","arrPaths","len","fnName","distance","p1","p2","traverseEdge","points","prevPoint","totalDistance","point","remainingDistance","calculatePoint","calcLabelPosition","roundNumber","num","precision","factor","distanceToTraverse","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","center","d","angle","cardinalityPosition","calcTerminalLabelPosition","terminalMarkerSize","position","_points","distanceToCardinalityPoint","getStylesFromArray","style","labelStyle","cnt","generateId","makeRandomHex","length","characters","charactersLength","random","options","getTextObj","drawSimpleText","elem","textData","nText","_fontSizePx","parseFontSize","textElem","span","wrapLabel","memoize","label","maxWidth","words","completedLines","nextLine","word","index","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","lines","currentLine","character","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","fontSize","fontFamily","fontWeight","fontFamilies","dims","select","g","fontFamily2","cHeight","textObj","bBox","InitIDGenerator","deterministic","seed","decoder","entityDecode","html","isDetailedError","insertTitle","parent","cssClass","titleTopMargin","title","bounds","fontSizeNumber","cleanAndMerge","defaultData","data","merge$1","utils","encodeEntities","innerTxt","decodeEntities","version","defaultConfig$1","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","sanitize","tmpConfigFromInitialize","themeVariables","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig$1","getConfig$1","addDirective","directive","reset","ConfigWarning","issuedWarnings","issueWarning","warning","id$l","detector$l","loader$m","diagram2","c4Diagram15b5d702","plugin$j","c4","id$k","detector$k","loader$l","flowDiagramCbd28bf7","plugin$i","flowchart","id$j","detector$j","loader$k","flowDiagramV2Ffc7f31a","plugin$h","flowchartV2","id$i","detector$i","loader$j","erDiagram880f2ed8","plugin$g","er","id$h","detector$h","loader$i","gitGraphDiagram21fc4d3e","plugin$f","git","id$g","detector$g","loader$h","ganttDiagram04f9e578","plugin$e","gantt","id$f","detector$f","loader$g","infoDiagram4a4f5b27","info","id$e","detector$e","loader$f","pieDiagram421022e6","pie","id$d","detector$d","loader$e","quadrantDiagram0957ecba","plugin$d","quadrantChart","id$c","detector$c","loader$d","xychartDiagramB6496bcd","plugin$c","xychart","id$b","detector$b","loader$c","requirementDiagram23d650b8","plugin$b","requirement","id$a","detector$a","loader$b","sequenceDiagram17ac3bff","plugin$a","sequence","id$9","detector$9","loader$a","classDiagramD40c83e7","plugin$9","classDiagram","id$8","detector$8","loader$9","classDiagramV2D5a6b087","plugin$8","classDiagramV2","id$7","detector$7","loader$8","stateDiagram9c5f0230","plugin$7","state","id$6","detector$6","loader$7","stateDiagramV251a3dcff","plugin$6","stateV2","id$5","detector$5","loader$6","journeyDiagram29694f62","plugin$5","journey","d3Attrs","d3Elem","attrs","attr","calculateSvgSizeAttrs","height","width","useMaxWidth","configureSvgSize","svgElem","setupGraphViewbox$1","graph","padding","svgBounds","sWidth","sHeight","vBox","themes","getStyles","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","getStyles$1","accTitle","diagramTitle","accDescription","sanitizeText$1","clear","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","commonDb","log","setLogLevel","getConfig","setConfig","defaultConfig","sanitizeText","setupGraphViewbox","getCommonDb","diagrams","registerDiagram","getDiagram","name","DiagramNotFoundError","selectSvgElement","securityLevel","root","doc","draw","_text","version2","svg","renderer","errorRenderer","diagram","errorDiagram","id$4","detector$4","loader$5","flowchartElkDefinition36e2d292","plugin$4","flowchartElk","id$3","detector$3","loader$4","timelineDefinition7e6b55e7","plugin$3","timeline","id$2","detector$2","loader$3","mindmapDefinitionAc74a2e8","plugin$2","mindmap","id$1","detector$1","loader$2","sankeyDiagram23345273","plugin$1","sankey","id","detector","loader$1","blockDiagram68f4deed","plugin","block","hasLoadedDiagrams","addDiagrams","Diagram","metadata","cnf","e","getDiagramFromText$1","interactionFunctions","attachFunctions","f","SVG_ROLE","setA11yDiagramInfo","diagramType","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","titleId","cleanupComments","isNothing","subject","isObject","toArray","sequence2","extend","target","source","sourceKeys","repeat","count","cycle","isNegativeZero","number","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception2","compact","where","YAMLException$1","reason","mark","exception","getLine","buffer","lineStart","lineEnd","maxLineLength","head","tail","maxHalfLength","padStart","max","makeSnippet","re","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","Type$1","tag","type","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","collectType","Schema$1","definition","implicit","explicit","type$1","schema","str","seq","map","failsafe","resolveYamlNull","constructYamlNull","isNull","object","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","ch","constructYamlInteger","sign","isInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","representYamlTimestamp","timestamp","resolveYamlMerge","merge","BASE64_MAP","resolveYamlBinary","code","idx","bitlen","constructYamlBinary","tailbits","bits","representYamlBinary","isBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pair","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","set","_default","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","state2","throwError","throwWarning","directiveHandlers","major","minor","handle","captureSegment","start","end","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","readNext","_pos","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","tagName","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","load$1","documents","load_1","loader","JSON_SCHEMA","load","extractFrontMatter","matches","parsed","cleanupText","attributes","processFrontmatter","displayMode","processDirectives","initDirective","wrapDirectives","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","MAX_TEXTLENGTH","MAX_TEXTLENGTH_EXCEEDED_MSG","SECURITY_LVL_SANDBOX","SECURITY_LVL_LOOSE","XMLNS_SVG_STD","XMLNS_XLINK_STD","XMLNS_XHTML_STD","IFRAME_WIDTH","IFRAME_HEIGHT","IFRAME_STYLES","IFRAME_BODY_STYLE","IFRAME_SANDBOX_OPTS","IFRAME_NOT_SUPPORTED_MSG","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parse$1","parseOptions","getDiagramFromText","cssImportantStyles","cssClasses","createCssStyles","classDefs","cssStyles","isEmpty","cssElements","classId","styleClassDef","cssElement","createUserStyles","graphType","svgId","userCSSstyles","allStyles","serialize","compile","stringify","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","base64encodedSrc","appendDivSvgG","parentRoot","enclosingDivId","divStyle","svgXlink","enclosingDiv","svgNode","sandboxedIframe","parentNode","iFrameId","removeExistingElements","divId","render$1","svgContainingElement","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","firstChild","diagramClassDefs","rules","style1","a11yDescr","addA11yInfo","svgEl","initialize$1","mermaidAPI","loadRegisteredDiagrams","failed","err","handleError","errors","parseError","run","runThrowsErrors","mermaid","postRenderCallback","querySelector","nodes","nodesToProcess","idGenerator","dedent","bindFunctions","render","initialize","init","callback","runOptions","registerExternalDiagrams","lazyLoad","contentLoaded","startOnLoad","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse","resolve","reject","performCall","rej","r","container","drawRect","rectData","rectElement","attrKey","drawBackgroundRect","drawText","tspan","drawImage","y","link","imageElement","sanitizedLink","drawEmbeddedImage","getNoteRect","parser","o","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","kv","hash","self","stack","tstack","vstack","lstack","table","TERROR","EOF","lexer2","sharedState","yyloc","ranges","lex","token","symbol","action","yyval","p","newState","expected","errStr","lexer","oldLines","n","past","next","pre","c2","indexed_rule","backup","tempMatch","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","c4ShapeArray","boundaryParseStack","currentBoundaryParse","parentBoundaryParse","boundaries","rels","wrapEnabled","c4ShapeInRow$1","c4BoundaryInRow$1","c4Type","getC4Type","setC4Type","c4TypeParam","addRel","from","to","techn","descr","sprite","tags","rel","old","rel2","autoWrap","addPersonOrSystem","typeC4Shape","personOrSystem","personOrSystem2","addContainer","container2","addComponent","component","component2","addPersonOrSystemBoundary","boundary","boundary2","addContainerBoundary","addDeploymentNode","nodeType","popBoundaryParseStack","updateElStyle","elementName","bgColor","fontColor","borderColor","shadowing","shape","legendText","legendSprite","updateRelStyle","textColor","lineColor","offsetX","offsetY","updateLayoutConfig","c4ShapeInRowParam","c4BoundaryInRowParam","c4ShapeInRowValue","c4BoundaryInRowValue","getC4ShapeInRow","getC4BoundaryInRow","getCurrentBoundaryParse","getParentBoundaryParse","getC4ShapeArray","parentBoundary","getC4Shape","getC4ShapeKeys","getBoundaries","getBoundarys","getRels","getTitle","setWrap","wrapSetting","LINETYPE","ARROWTYPE","PLACEMENT","setTitle","db","drawRect$1","imageElem","drawRels$1","rels2","conf2","relsElem","strokeColor","messageConf","_drawTextCandidateFunc","drawBoundary$1","boundaryElem","fillColor","attrsValue","boundaryConf","drawC4Shape","c4Shape","personImg","c4ShapeElem","rect","c4ShapeFontConf","getC4ShapeFont","textFontConf","insertDatabaseIcon","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowEnd","insertArrowFilledHead","insertDynamicNumber","insertArrowCrossHead","marker","byText","content","textAttrs","_setTextAttrs","byTspan","dy","byFo","toText","fromTextAttrsDict","svgDraw","globalBoundaryMaxX","globalBoundaryMaxY","c4ShapeInRow","c4BoundaryInRow","Bounds","diagObj","setConf","startx","stopx","starty","stopy","fun","_startx","_stopx","_starty","_stopy","margin","c4ShapeFont","boundaryFont","messageFont","calcC4ShapeTextWH","textType","c4ShapeTextWrap","textConf","textLimitWidth","lineHeight","drawBoundary","boundaryTextWrap","boundaryLabelConf","drawC4ShapeArray","currentBounds","c4ShapeArray2","c4ShapeKeys","Y","c4ShapeKey","c4ShapeTypeConf","c4ShapeLabelConf","c4ShapeTypeConf2","c4ShapeTechnConf","rectHeight","rectWidth","c4ShapeDescrConf","Point","getIntersectPoint","fromNode","endPoint","x1","y1","x2","y2","fromCenterX","fromCenterY","dx","tanDYX","fromDYX","returnPoint","getIntersectPoints","endNode","endIntersectPoint","startPoint","drawRels","getC4ShapeObj","relTextWrap","relConf","drawInsideBoundary","parentBoundaryAlias","parentBounds","currentBoundaries","currentBoundary","currentBoundaryTextWrap","currentBoundaryLabelConf","currentBoundaryTypeConf","currentBoundaryDescrConf","_x","_y","currentPersonOrSystemArray","currentPersonOrSystemKeys","nextCurrentBoundaries","_version","sandboxElement","db2","screenBounds","title2","box","extraVertForTitle","styles","wrap","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","$V01","$V11","$V21","$V31","$V41","$V51","$V61","$V71","$V81","$V91","$Va1","$Vb1","$Vc1","$Vd1","$Ve1","$Vf1","$Vg1","$Vh1","$Vi1","$Vj1","$Vk1","$Vl1","$Vm1","$Vn1","$Vo1","$Vp1","$Vq1","$Vr1","$Vs1","$Vt1","$Vu1","$Vv1","$Vw1","$Vx1","$Vy1","$Vz1","$VA1","$VB1","$VC1","inf","lex2","MERMAID_DOM_ID_PREFIX","vertexCounter","vertices","edges","classes","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","funs","lookUpDomId","vertexKeys","vertexKey","addVertex","_id","classes2","dir","props","addSingleLink","_start","_end","edge","linkTextObj","addLink","j","updateLinkInterpolate","positions","interp","pos","updateLink","addClass","ids","newStyle","setDirection","setClass","className","setTooltip","tooltip","setClickFun","functionArgs","domId","argList","item","setLink","getTooltip","setClickEvent","getDirection","getVertices","getEdges","getClasses","setupToolTips","tooltipElem","ver","clear$1","setGen","defaultStyle","addSubGraph","list","_title","uniq","prims","objs","dir2","nodeList","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","stroke","countChar","char","destructEndLink","dots","destructLink","_startStr","startInfo","exists","allSgs","sg","allSubgraphs","flowDb","preprocessMarkdown","markdown","withoutMultipleNewlines","markdownToLines","preprocessedMarkdown","children","fromMarkdown","processNode","parentType","textLine","contentNode","treeNode","markdownToHTML","splitTextToChars","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","nextChar","rest","newWord","splitLineToFitWidth","splitLineToFitWidthRecursion","newLine","joiner","nextWord","lineWithNextWord","applyStyle","dom","styleFn","addHtmlSpan","addBackground","fo","div","labelClass","bbox","createTspan","textElement","lineIndex","computeWidthOfText","testElement","testSpan","updateTextContentAndStyles","textLength","computeDimensionOfText","textDimension","createFormattedText","structuredText","labelGroup","bkg","checkWidth","line2","linesUnderWidth","preparedLine","wrappedLine","innerTspan","createText","isTitle","useHtmlLabels","isNode","addSvgBackground","htmlText","insertMarkers","markerArray","markerName","markers","extension","composition","aggregation","dependency","lollipop","circle$1","cross","barb","insertMarkers$1","addHtmlLabel","createLabel","_vertexText","vertexText","svgLabel","rows","row","createLabel$1","labelHelper","_classes","shapeSvg","labelText","textNode","halfPadding","dv","images","noImgText","img","setupImage","bodyFontSize","updateNodeBounds","insertPolygonShape","w","h","intersectNode","point2","intersectEllipse","rx","ry","cx","cy","px","py","det","intersectCircle","intersectLine","q1","q2","a1","a2","b1","b2","c1","r1","r2","r3","r4","denom","offset","sameSign","intersectPolygon","polyPoints","intersections","minX","minY","entry","left","top","intersect2","q","pdx","pdy","distp","qdx","qdy","distq","intersectRect","sx","sy","intersectRect$1","intersect","note","rect2","note$1","expandAndDeduplicateDirections","directions","uniqueDirections","getArrowPoints","duplicatedDirections","midpoint","formatClass","getClassesFromNode","otherClasses","question","questionElem","choice","hexagon","m","hex","block_arrow","blockArrow","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","totalWidth","totalHeight","propKeys","applyNodePropertyBorders","propKey","composite","labelRect","borders","strokeDashArray","addBorder","skipBorder","rectWithTitle","innerLine","text2","textRows","titleBox","stadium","circle","circle2","doublecircle","gap","circleGroup","outerCircle","innerCircle","subroutine","forkJoin","class_box","rowPadding","topLine","bottomLine","maxHeight","labelContainer","verticalPos","hasInterface","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","member","parsedInfo","parsedText","lbl","classMethods","displayText","diffX2","diffX","memberBBox","shapes","nodeElems","insertNode","newEl","setNodeElem","positionNode","diff","getSubGraphTitleMargins","subGraphTitleTopMargin","subGraphTitleBottomMargin","subGraphTitleTotalMargin","markerOffsets","calculateDeltaAndAngle","point1","pointTransformer","deltaX","deltaY","getLineFunctionsWithOffset","addEdgeMarkers","svgPath","addEdgeMarker","arrowTypesMap","arrowType","endMarkerType","suffix","edgeLabels","terminalLabels","insertEdgeLabel","labelElement","edgeLabel","startLabelElement","startEdgeLabelLeft","inner","slBox","setTerminalWidth","startEdgeLabelRight","endLabelElement","endEdgeLabelLeft","endEdgeLabelRight","positionEdgeLabel","paths","path","outsideNode","intersection","outsidePoint","insidePoint","Q","R","cutPathAtIntersect","boundaryNode","lastPointOutside","isInside","inter","pointPresent","insertEdge","clusterDb","pointsHasChanged","lineData","curve","lineFunction","strokeClasses","descendants","parents","isDescendant","ancestorId","edgeInCluster","clusterId","copy","newGraph","rootId","data2","extractDescendants","child","findNonClusterChild","getAnchorId","adjustClustersAndEdges","d1","d2","nonClusterChild","specialId","edge1","edge2","graphlibJson.write","extractor","hasChildren","clusterGraph","graphlib.Graph","sorter","sorted","sortNodesByHierarchy","rectBox","noteGroup","roundedWithTitle","innerRect","divider","clusterElems","insertCluster","recursiveRender","_elem","parentCluster","clusters","edgePaths","layout","clear$2","clear$3","addVertices","vert","vertex","classStr","vertexNode","radius","_shape","addEdges","linkIdCnt","defaultLabelStyle","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","edgeData","nodeSpacing","rankSpacing","subG","i2","selectAll","labels","linkNode","flowRendererV2","fade","color","opacity","channel","khroma.channel","b","khroma.rgba","flowStyles","addToRender","render2","addToRenderV2","addShape","flowChartShapes","_doc","clusterRects","clusterEl","xPos","yPos","_width","te","flowRenderer","erParser","entities","relationships","Cardinality","Identification","addEntity","getEntities","addAttributes","entityName","attribs","entity","addRelationship","entA","rolA","entB","rSpec","getRelationships","erDb","ERMarkers","erMarkers","BAD_ID_CHARS_REGEXP","entityNameIds","drawAttributes","groupNode","entityTextNode","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","attrPrefix","nodeHeight","attributeType","typeNode","nameNode","attributeNode","typeBBox","nameBBox","keyTypeNodeText","keyTypeNode","keyTypeBBox","commentNode","commentNodeBBox","widthPaddingFactor","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","entities2","firstOne","entityId","textId","entityWidth","entityHeight","rectBBox","adjustEntities","getEdgeName","addRelationships","relationships2","relCnt","drawRelationshipFromLayout","insert","labelPoint","labelId","firstEntity","MERMAID_ERDIAGRAM_UUID","simplifiedStr","strWithHyphen","v5","erRenderer","erStyles","gitGraphParser","mainBranchName","mainBranchOrder","commits","branchesConfig","branches","curBranch","getId","uniqBy","fn","recordMap","out","setOptions","rawOptString","getOptions","commit","msg","commit2","commitType$1","branch","order","checkout","otherBranch","custom_id","override_type","custom_tag","currentCommit","otherCommit","cherryPick","sourceId","targetId","parentCommitId","sourceCommit","sourceCommitBranch","branch2","upsert","newVal","prettyPrintCommitHistory","commitArr","commit3","newCommit","nextCommit","prettyPrint","getCommitsArray","mainBranch","mainBranchOrder2","getBranchesAsObjArray","branchConfig","getBranches","getCommits","getCurrentBranch","getHead","gitGraphDb","allCommitsDict","commitType","THEME_COLOR_LIMIT","branchPos","commitPos","lanes","maxPos","findClosestParent","closestParent","maxPosition","parentPosition","drawCommits","commits2","modifyGraph","gitGraphConfig","gBullets","gLabels","sortedKeys","isParallelCommits","layoutOffset","commitStep","posWithOffset","typeClass","commitSymbolType","wrapper","labelBkg","r_x","r_y","hole","tagBbox","h2","ly","shouldRerouteArrow","commitA","commitB","allCommits","branchToGetCurve","isOnBranchToGetCurve","isBetweenCommits","commitX","findLane","candidate","lane","drawArrow","arrowNeedsRerouting","arc","arc2","colorClassNum","lineDef","lineY","lineX","drawArrows","gArrows","drawBranches","branches2","adjustIndexForTheme","branchLabel","gitGraphRenderer","options2","gitGraphStyles","ganttParser","dayjsIsoWeek","dayjsCustomParseFormat","dayjsAdvancedFormat","dateFormat","axisFormat","tickInterval","todayMarker","includes","excludes","links","sections","tasks","currentSection","inclusiveEndDates","topAxis","weekday","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTickInterval","getTickInterval","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","setDisplayMode","getDisplayMode","getDateFormat","setIncludes","getIncludes","setExcludes","getExcludes","getLinks","addSection","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","isInvalidDate","dateFormat2","excludes2","includes2","setWeekday","getWeekday","checkTaskDates","task","startTime","originalEndTime","fixedEndTime","renderEndTime","fixTaskDates","endTime","invalid","getStartDate","prevTime","afterStatement","latestTask","findTaskById","today","mDate","parseDuration","statement","getEndDate","inclusive","untilStatement","earliestTask","parsedDate","durationValue","durationUnit","newEndTime","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","taskDb","addTask","rawTask","taskInfo","addTaskOrg","newTask","compileTask","allProcessed","_linkStr","pushFun","callbackFunction","ganttDb","tags2","matchFound","t","pattern","regex","mapWeekdayToTimeFunction","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSunday","getMaxIntersections","tasks2","orderOffset","maxIntersections","taskArray","categories","checkUnique","categoryHeights","categoryElements","category","categoryHeight","timeScale","scaleTime","min","taskCompare","taskA","taskB","makeGantt","pageWidth","pageHeight","barHeight","topPadding","leftPadding","colorScale","scaleLinear","interpolateHcl","drawExcludeDays","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","w2","uniqueTasks","rectangles","links2","secNum","taskClass","startX","endX","textWidth","taskType","sandboxElement2","doc2","taskRect","taskText","oldParent","Link","minTime","maxTime","excludeRanges","range","renderEnd","bottomXAxis","axisBottom","timeFormat","resultTickInterval","every","interval","weekday2","timeMillisecond","timeSecond","timeMinute","timeHour","timeDay","timeMonth","topXAxis","axisTop","prevGap","numOccurrences","todayMarker2","todayG","todayLine","ganttRenderer","ganttStyles","DEFAULT_INFO_DB","setInfo","toggle","getInfo","DEFAULT_PIE_CONFIG","DEFAULT_PIE_DB","showData","cleanupValue","setShowData","getShowData","createPieArcs","sections2","pieData","d3Section","globalConfig","pieConfig","MARGIN","LEGEND_RECT_SIZE","LEGEND_SPACING","pieWidth","group","outerStrokeWidth","textPosition","arcGenerator","labelArcGenerator","arcs","myGeneratedColors","scaleOrdinal","datum","sum","legend","_datum","height2","horizontal","vertical","longestTextWidth","defaultThemeVariables","QuadrantBuilder","_l","_m","_n","_o","_p","_q","_r","themeConfig","xAxisPosition","showXAxis","showYAxis","showTitle","xAxisSpaceCalculation","xAxisSpace","yAxisSpaceCalculation","yAxisSpace","titleSpaceCalculation","titleSpace","quadrantLeft","quadrantTop","quadrantWidth","quadrantHeight","quadrantHalfWidth","quadrantHalfHeight","spaceData","quadrantSpace","drawXAxisLabelsInMiddle","drawYAxisLabelsInMiddle","axisLabels","quadrants","quadrant","xAxis","yAxis","halfExternalBorderWidth","calculatedSpace","textSanitizer","quadrantBuilder","setQuadrant1Text","setQuadrant2Text","setQuadrant3Text","setQuadrant4Text","setXAxisLeftText","setXAxisRightText","setYAxisTopText","setYAxisBottomText","addPoint","setWidth","setHeight","getQuadrantData","quadrantChartConfig","getDominantBaseLine","horizontalPos","getTextAnchor","getTransformation","quadrantData","quadrantsGroup","borderGroup","dataPointGroup","titleGroup","dataPoints","isBarPlot","isBandAxisData","isLinearAxisData","TextDimensionCalculatorWithFont","parentGroup","texts","acc","cur","dimension","BAR_WIDTH_TO_TICK_WIDTH_RATIO","MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL","BaseAxis","axisConfig","textDimensionCalculator","axisThemeConfig","axisPosition","tick","availableSpace","availableHeight","spaceRequired","maxPadding","heightRequired","availableWidth","widthRequired","drawableElement","BandAxis","scaleBand","LinearAxis","domain","getAxis","tmpSVGGroup2","ChartTitle","chartConfig","chartData","chartThemeConfig","titleDimension","drawableElem","getChartTitleComponent","LinePlot","plotData","orientation","plotIndex2","finalData","BarPlot","barData","boundingRect","barWidth","barWidthHalf","BasePlot","plot","linePlot","barPlot","getPlotComponent","Orchestrator","plotX","plotY","chartWidth","chartHeight","spaceUsed","titleYEnd","XYChartBuilder","plotIndex","tmpSVGGroup","xyChartConfig","getChartDefaultConfig","xyChartThemeConfig","getChartDefaultThemeConfig","xyChartData","getChartDefaultData","plotColorPalette","hasSetXAxis","hasSetYAxis","setTmpSVGG","SVGG","setOrientation","setXAxisTitle","setXAxisRangeData","setXAxisBand","setYAxisTitle","setYAxisRangeData","setYAxisRangeFromPlotData","minValue","maxValue","prevMinValue","prevMaxValue","transformDataWithoutCategory","retData","step","getPlotColorFromPalette","setLineData","setBarData","getDrawableElem","getChartThemeConfig","getChartConfig","getTextTransformation","background","groups","getGroup","gList","shapeGroup","relations","latestRequirement","requirements","latestElement","elements","RequirementType","RiskLevel","VerifyType","Relationships","addRequirement","getRequirements","setNewReqId","setNewReqText","setNewReqRisk","risk","setNewReqVerifyMethod","verifyMethod","addElement","getElements","setNewElementType","setNewElementDocRef","docRef","ReqMarkers","insertLineEndings","containsNode","newRectNode","newTitleNode","txts","textStr","yPadding","linePadding","totalY","newBodyNode","yStart","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","elementString","drawReqs","reqs","reqName","req","rectNode","titleNodeInfo","drawElements","els","elName","requirements2","elements2","ImperativeState","addBox","addActor","description","assignedBox","activationCount","part","addMessage","idFrom","idTo","answer","addSignal","messageType","activate","hasAtLeastOneBox","hasAtLeastOneBoxWithTitle","getMessages","getBoxes","getActors","getCreatedActors","getDestroyedActors","getActor","getActorKeys","enableSequenceNumbers","disableSequenceNumbers","showSequenceNumbers","parseMessage","parseBoxData","addNote","actor","placement","actors","addLinks","actorId","sanitizedText","insertLinks","addALink","sep","addProperties","properties","insertProperties","boxEnd","addDetails","details","getActorProperty","apply","param","ACTOR_TYPE_WIDTH","TOP_ACTOR_CLASS","BOTTOM_ACTOR_CLASS","drawPopup","minMenuWidth","forceMenus","actorCnt2","displayValue","actorClass","menuWidth","rectElem","linkY","linkElem","_drawMenuItemTextCandidateFunc","popupMenuToggle","popId","drawKatex","msgModel","linesSanitized","rectDim","temp","prevTextHeight","textHeight","_textFontSize","_textFontSizePx","textElems","yfunc","drawLabel","txtObject","genPoints","cut","polygon","actorCnt","fixLifeLineHeights","actorKeys","actorKey","actorDOM","drawActorTypeParticipant","isFooter","actorY","centerY","boxplusLineGroup","getNoteRect$1","cssclass","iconSrc","bounds2","drawActorTypeActor","actElem","drawActor","drawBox","anchorElement","drawActivation","actorActivations2","drawLoop","loopModel","boxMargin","boxTextMargin","labelBoxHeight","labelBoxWidth","drawLoopLine","getTextObj$1","sectionHeight","curr","drawBackgroundRect$1","insertSequenceNumber","actorFontSize","actorFontFamily","actorFontWeight","_actorFontSize","_actorFontSizePx","byKatex","hasKatex2","it","boxModel","actorModel","noteModel","_self","updateFn","actorRect","stackedSize","actorActivations","lastActorActivationIdx","activation","fill","loop","bump","drawNote","noteFont","actorFont","boundMessage","_diagram","isKatexMsg","textDims","lineStartY","totalOffset","drawMessage","sequenceIndex","sequenceVisible","addActorRenderingData","createdActors","messages","prevWidth","prevMargin","prevBox","drawActors","drawActorsPopup","getRequiredPopupWidth","menuDimensions","activationBounds","actorObj","activations","right","adjustLoopHeightForWrap","loopWidths","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","adjustCreatedDestroyedData","destroyedActors","receiverAdjustment","adjustment","senderAdjustment","boxes","hasBoxes","hasBoxTitles","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","newActors","calculateLoopBounds","activeEnd","activationData","sequenceIndexStep","messagesToDraw","backgrounds","box2","requiredBoxSize","boxHeight","boxWidth","isNote","isMessage","textFont","wrappedMessage","messageWidth","requiredPopupWidth","labelWidth","actorToMessageWidth","actDims","nextActor","actorWidth2","actorWidth","maxBoxHeight","total","aKey","boxMsgDimensions","minWidth","missing","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","fromLeft","fromRight","toLeft","toRight","isArrowToRight","isArrowToActivation","adjustValue","allBounds","boundedWidth","msgDims","_maxWidthPerActor","loops","current","toAdd","stk","visibilityValues","ClassMember","memberType","sanitizedInput","cssStyle","potentialClassifier","methodRegEx","detectedVisibility","lastChar","firstChar","notes","classCounter","namespaces","namespaceCounter","functions","splitClassNameAndType","genericType","split","setClassLabel","getClass","getRelations","getNotes","addRelation","relation","addAnnotation","annotation","validatedClassName","addMember","theClass","memberString","addMembers","members","cleanupLabel","setCssClass","namespace","setClickFunc","_domId","elemId","lineType","relationType","addNamespace","getNamespace","getNamespaces","addClassesToNamespace","classNames","setCssStyle","styles2","thisClass","edgeCount","drawEdge","getRelationType","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","cardinality_2_point","drawClass","classDef","classInfo","isFirst","titleText2","getClassTitleString","classTitle","titleHeight","membersLine","membersBox","methodsLine","addTspan","methods","method","classBox","cssClassStr","noteInfo","noteBox","textEl","tSpan","idCache","getGraphId","foundEntry","addNamespaces","addClasses","addNotes","startEdgeId","cssNoteStr","edgeId","addRelations","getArrowMarker","stateStmt","relDescription","parts","DEFAULT_DIAGRAM_DIRECTION","DEFAULT_NESTED_DOC_DIR","STMT_STATE","STMT_RELATION","STMT_CLASSDEF","STMT_APPLYCLASS","DEFAULT_STATE_TYPE","DIVIDER_TYPE","START_NODE","START_TYPE","END_NODE","END_TYPE","COLOR_KEYWORD","FILL_KEYWORD","BG_FILL","STYLECLASS_SEP","newClassesList","rootDoc","newDoc","currentDocument","startEndCount","dividerCnt","clone","setRootDoc","getRootDoc","docTranslator","currentDoc","newNode","docNode","getRootDocV2","extract","addState","addStyleClass","textStyles","trimmedId","addDescription","des","setStyle","textStyle","setTextStyle","saveCommon","getState","getStates","logDocuments","startIdIfNeeded","fixedId","startTypeIfNeeded","endIdIfNeeded","endTypeIfNeeded","addRelationObjs","item1","item2","relationTitle","id1","type1","theState","_descr","getDividerId","styleAttributes","foundClass","attrib","fixedAttrib","newStyle2","itemIds","cssClassName","foundState","itemId","styleText","trimColon","drawStartState","drawDivider","drawSimpleState","stateDef","drawDescrState","isFirst2","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleWidth","graphBox","drawEndState","drawForkJoinState","_drawLongText","tHeight","textBounds","drawState","stateInfo","stateBox","titleRows","boundsTmp","heightAdj","transformationLog","renderDoc","svgWidth","getLabelWidth","parentId","domDocument","edgeFreeDoc","states","keys2","sub","boxBounds","noteDef","pWidth","pShift","SHAPE_STATE","SHAPE_STATE_WITH_DESC","SHAPE_START","SHAPE_END","SHAPE_DIVIDER","SHAPE_GROUP","SHAPE_NOTE","SHAPE_NOTEGROUP","CSS_DIAGRAM","CSS_STATE","CSS_DIAGRAM_STATE","CSS_EDGE","CSS_NOTE","CSS_NOTE_EDGE","CSS_EDGE_NOTE_EDGE","CSS_DIAGRAM_NOTE","CSS_CLUSTER","CSS_DIAGRAM_CLUSTER","CSS_CLUSTER_ALT","CSS_DIAGRAM_CLUSTER_ALT","PARENT","NOTE","DOMID_STATE","DOMID_TYPE_SPACER","NOTE_ID","PARENT_ID","G_EDGE_STYLE","G_EDGE_ARROWHEADSTYLE","G_EDGE_LABELPOS","G_EDGE_LABELTYPE","G_EDGE_THICKNESS","nodeDb","graphItemCount","diagramObj","getClassesFromDbInfo","dbInfoItem","stateDomId","counter","typeSpacer","typeStr","setupNode","parsedItem","diagramStates","diagramDb","altFlag","getDir","nodeData","noteData","groupData","parentNodeId","setupDoc","parentParsedItem","defaultDir","parsedItemDoc","updateActors","tempActors","taskData","pieces","score","peeps","peopleList","drawFace","faceData","circleElement","face","smile","face2","arc$1","sad","ambivalent","drawCircle","circleData","drawText$1","drawSection","section","taskCount","drawTask","person","colour","taskFontSize","taskFontFamily","initGraphics","graphics","drawActorLegend","labelData","LEFT_MARGIN","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","taskInSectionCount","currentSection2","taskIndex","taskActors","findCommonAncestor","treeData","parentById","visited","currentId","elk","ELK","portPos","parentLookupDb","ports","layoutOptions","boundingBox","nodeEl","getNextPosition","edgeDirection","graphDirection","portPos2","getNextPort","getEdgeStartEndPoint","startNode","labelsEl","labelEl","addMarkersToEdge","arrowMarkerAbsolute","addSubGraphs","subgraphs","subgraph","calcOffset","dest","ancestor","ancestorOffset","edgesEl","segPoints","segment","edgePath","edgeG","edgeWithLabel","insertChildren","nodeArray","childIds","childId","renderEl","subGraphsEl","nodeId","drawNodes","relX","relY","subgraphsEl","subgraphEl","labelCentering","genSections","currentTaskId","period","event","addEvent","timelineDb","MAX_SECTIONS","drawNode","fullSection","nodeElem","bkgElem","defaultBkg","getVirtualNodeHeight","maxSectionHeight","maxTaskHeight","depthY","sectionBeginY","masterX","masterY","hasSections","sectionNode","maxEventCount","maxEventLineLength","taskNode","taskHeight","maxEventLineLengthTemp","eventNode","tasksForSection","sectionNodeWrapper","sectionColor","isWithoutSections","taskWrapper","lineWrapper","lineLength","drawEvents","events","maxEventHeight","eventBeginY","eventWrapper","eventHeight","sw","getParent","getMindmap","addNode","getType","startStr","endStr","setElementForId","decorateNode","decoration","type2Str","getLogger","getElementById","db$1","rectBkg","cloudBkg","bangBkg","circleBkg","hexagonBkg","_db","roundedRectBkg","htmlLabels","sectionClass","orgHeight","heightDiff","cytoscape","coseBilkent","drawEdges","addNodes","layoutMindmap","positionNodes","mm","edgesElem","nodesElem","nodesMap","SankeyLink","SankeyNode","ID","findOrCreateNode","getNodes","getGraph","_Uid","_Uid2","Uid","alignmentsMap","sankeyLeft","sankeyRight","sankeyCenter","sankeyJustify","defaultSankeyConfig","nodeAlignment","showValues","nodeAlign","colorScheme","schemeTableau10","getText","linkColor","gradient","coloring","sankeyLinkHorizontal","prepareTextForParsing","originalParse","spaceId","blockDatabase","edgeList","addStyle2Node","foundBlock","populateBlockDatabase","_blockList","blockList","newBlock","newBlock2","blocks","rootBlock","typeStr2Type","edgeTypeStr2Type","edgeStrToEdgeData","setHierarchy","getColumns","blockId","getBlocksFlat","getBlocks","getBlock","setBlock","getClasses$1","getNodeFromBlock","positioned","_a2","_b2","padding2","calculateBlockSize","insertBlockPositioned","performOperations","blocks2","operation","calculateBlockSizes","insertBlocks","insertEdges","startBlock","endBlock","calculateBlockPosition","columns","getMaxChildSize","setBlockSizes","siblingWidth","siblingHeight","childSize","numItems","xSize","ySize","childWidth","childHeight","layoutBlocks","widthOfChildren","columnPos","startingPosX","rowPos","width2","halfWidth","findBounds","maxX","maxY","bl","blArr","magicFactor"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],"sources":["../../node_modules/mermaid/dist/mermaid-ad1dc92f.js","../../node_modules/mermaid/dist/svgDrawCommon-3ba9043b.js","../../node_modules/mermaid/dist/c4Diagram-15b5d702.js","../../node_modules/mermaid/dist/flowDb-7c981674.js","../../node_modules/mermaid/dist/createText-d213de94.js","../../node_modules/mermaid/dist/edges-332bd1c7.js","../../node_modules/mermaid/dist/index-6079d271.js","../../node_modules/mermaid/dist/styles-2ab5d517.js","../../node_modules/mermaid/dist/flowDiagram-cbd28bf7.js","../../node_modules/mermaid/dist/flowDiagram-v2-ffc7f31a.js","../../node_modules/mermaid/dist/erDiagram-880f2ed8.js","../../node_modules/mermaid/dist/gitGraphDiagram-21fc4d3e.js","../../node_modules/mermaid/dist/ganttDiagram-04f9e578.js","../../node_modules/mermaid/dist/infoDiagram-4a4f5b27.js","../../node_modules/mermaid/dist/pieDiagram-421022e6.js","../../node_modules/mermaid/dist/quadrantDiagram-0957ecba.js","../../node_modules/mermaid/dist/xychartDiagram-b6496bcd.js","../../node_modules/mermaid/dist/requirementDiagram-23d650b8.js","../../node_modules/mermaid/dist/sequenceDiagram-17ac3bff.js","../../node_modules/mermaid/dist/styles-5f03d8d2.js","../../node_modules/mermaid/dist/classDiagram-d40c83e7.js","../../node_modules/mermaid/dist/classDiagram-v2-d5a6b087.js","../../node_modules/mermaid/dist/styles-edf9a4b0.js","../../node_modules/mermaid/dist/stateDiagram-9c5f0230.js","../../node_modules/mermaid/dist/stateDiagram-v2-51a3dcff.js","../../node_modules/mermaid/dist/journeyDiagram-29694f62.js","../../node_modules/mermaid/dist/flowchart-elk-definition-36e2d292.js","../../node_modules/mermaid/dist/timeline-definition-7e6b55e7.js","../../node_modules/mermaid/dist/mindmap-definition-ac74a2e8.js","../../node_modules/mermaid/dist/sankeyDiagram-23345273.js","../../node_modules/mermaid/dist/blockDiagram-68f4deed.js"],"sourcesContent":["import { dedent } from \"ts-dedent\";\nimport dayjs from \"dayjs\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from \"d3\";\nimport DOMPurify from \"dompurify\";\nimport { adjust, invert, darken, lighten, isDark, rgba } from \"khroma\";\nimport memoize from \"lodash-es/memoize.js\";\nimport merge$1 from \"lodash-es/merge.js\";\nimport { serialize, compile, stringify } from \"stylis\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\nconst LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nconst log$1 = {\n trace: (..._args) => {\n },\n debug: (..._args) => {\n },\n info: (..._args) => {\n },\n warn: (..._args) => {\n },\n error: (..._args) => {\n },\n fatal: (..._args) => {\n }\n};\nconst setLogLevel$1 = function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n level = level.toLowerCase();\n if (level in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log$1.trace = () => {\n };\n log$1.debug = () => {\n };\n log$1.info = () => {\n };\n log$1.warn = () => {\n };\n log$1.error = () => {\n };\n log$1.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log$1.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log$1.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log$1.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log$1.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log$1.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log$1.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n};\nconst format = (level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n};\nconst lineBreakRegex = //gi;\nconst getRows = (s) => {\n if (!s) {\n return [\"\"];\n }\n const str2 = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str2.split(\"#br#\");\n};\nconst setupDompurifyHooksIfNotSetup = (() => {\n let setup = false;\n return () => {\n if (!setup) {\n setupDompurifyHooks();\n setup = true;\n }\n };\n})();\nfunction setupDompurifyHooks() {\n const TEMPORARY_ATTRIBUTE = \"data-temp-href-target\";\n DOMPurify.addHook(\"beforeSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(\"target\")) {\n node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute(\"target\") || \"\");\n }\n });\n DOMPurify.addHook(\"afterSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {\n node.setAttribute(\"target\", node.getAttribute(TEMPORARY_ATTRIBUTE) || \"\");\n node.removeAttribute(TEMPORARY_ATTRIBUTE);\n if (node.getAttribute(\"target\") === \"_blank\") {\n node.setAttribute(\"rel\", \"noopener\");\n }\n }\n });\n}\nconst removeScript = (txt) => {\n setupDompurifyHooksIfNotSetup();\n const sanitizedText = DOMPurify.sanitize(txt);\n return sanitizedText;\n};\nconst sanitizeMore = (text, config2) => {\n var _a;\n if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(//g, \">\");\n text = text.replace(/=/g, \"=\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n};\nconst sanitizeText$2 = (text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n};\nconst sanitizeTextOrArray = (a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText$2(a, config2);\n }\n return a.flat().map((x) => sanitizeText$2(x, config2));\n};\nconst hasBreaks = (text) => {\n return lineBreakRegex.test(text);\n};\nconst splitBreaks = (text) => {\n return text.split(lineBreakRegex);\n};\nconst placeholderToBreak = (s) => {\n return s.replace(/#br#/g, \"
\");\n};\nconst breakToPlaceholder = (s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n};\nconst getUrl = (useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replaceAll(/\\(/g, \"\\\\(\");\n url = url.replaceAll(/\\)/g, \"\\\\)\");\n }\n return url;\n};\nconst evaluate = (val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true;\nconst getMax = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n};\nconst getMin = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n};\nconst parseGenericTypes = function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n};\nconst countOccurrence = (string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n};\nconst shouldCombineSets = (previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n};\nconst processSet = (input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n};\nconst isMathMLSupported = () => window.MathMLElement !== void 0;\nconst katexRegex = /\\$\\$(.*)\\$\\$/g;\nconst hasKatex = (text) => {\n var _a;\n return (((_a = text.match(katexRegex)) == null ? void 0 : _a.length) ?? 0) > 0;\n};\nconst calculateMathMLDimensions = async (text, config2) => {\n const divElem = document.createElement(\"div\");\n divElem.innerHTML = await renderKatexSanitized(text, config2);\n divElem.id = \"katex-temp\";\n divElem.style.visibility = \"hidden\";\n divElem.style.position = \"absolute\";\n divElem.style.top = \"0\";\n const body = document.querySelector(\"body\");\n body == null ? void 0 : body.insertAdjacentElement(\"beforeend\", divElem);\n const dim = { width: divElem.clientWidth, height: divElem.clientHeight };\n divElem.remove();\n return dim;\n};\nconst renderKatexUnsanitized = async (text, config2) => {\n if (!hasKatex(text)) {\n return text;\n }\n if (!isMathMLSupported() && !config2.legacyMathML) {\n return text.replace(katexRegex, \"MathML is unsupported in this environment.\");\n }\n const { default: katex } = await import(\"katex\");\n return text.split(lineBreakRegex).map(\n (line) => hasKatex(line) ? `\n
\n ${line}\n
\n ` : `
${line}
`\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: isMathMLSupported() ? \"mathml\" : \"htmlAndMathml\"\n }).replace(/\\n/g, \" \").replace(//g, \"\")\n );\n};\nconst renderKatexSanitized = async (text, config2) => {\n return sanitizeText$2(await renderKatexUnsanitized(text, config2), config2);\n};\nconst common$1 = {\n getRows,\n sanitizeText: sanitizeText$2,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\nconst mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\nconst oldAttributeBackgroundColorOdd = \"#ffffff\";\nconst oldAttributeBackgroundColorEven = \"#f2f2f2\";\nlet Theme$4 = class Theme {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || \"grey\";\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$4 = (userOverrides) => {\n const theme2 = new Theme$4();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$3 = class Theme2 {\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten(this.primaryColor, 16);\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten(invert(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#81B1DB\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten(this.secondaryColor, 20);\n this.git1 = lighten(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2);\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$3 = (userOverrides) => {\n const theme2 = new Theme$3();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$2 = class Theme3 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#e8e8e8\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$2 = (userOverrides) => {\n const theme2 = new Theme$2();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$1 = class Theme4 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$1 = (userOverrides) => {\n const theme2 = new Theme$1();\n theme2.calculate(userOverrides);\n return theme2;\n};\nclass Theme5 {\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this[\"cScaleLabel0\"] = this[\"cScaleLabel0\"] || this.cScale1;\n this[\"cScaleLabel2\"] = this[\"cScaleLabel2\"] || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n this.taskBorderColor = darken(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\nconst getThemeVariables = (userOverrides) => {\n const theme2 = new Theme5();\n theme2.calculate(userOverrides);\n return theme2;\n};\nconst theme = {\n base: {\n getThemeVariables: getThemeVariables$4\n },\n dark: {\n getThemeVariables: getThemeVariables$3\n },\n default: {\n getThemeVariables: getThemeVariables$2\n },\n forest: {\n getThemeVariables: getThemeVariables$1\n },\n neutral: {\n getThemeVariables\n }\n};\nconst defaultConfigJson = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"subGraphTitleMargin\": {\n \"top\": 0,\n \"bottom\": 0\n },\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ]\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"parallelCommits\": false,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"block\": {\n \"useMaxWidth\": true,\n \"padding\": 8\n },\n \"theme\": \"default\",\n \"maxTextSize\": 5e4,\n \"maxEdges\": 500,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\",\n \"maxEdges\"\n ],\n \"legacyMathML\": false,\n \"deterministicIds\": false,\n \"fontSize\": 16\n};\nconst config = {\n ...defaultConfigJson,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: theme[\"default\"].getThemeVariables(),\n sequence: {\n ...defaultConfigJson.sequence,\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n },\n noteFont: function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n },\n actorFont: function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }\n },\n gantt: {\n ...defaultConfigJson.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...defaultConfigJson.c4,\n useWidth: void 0,\n personFont: function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n },\n external_personFont: function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n },\n systemFont: function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n },\n external_systemFont: function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n },\n system_dbFont: function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n },\n external_system_dbFont: function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n },\n system_queueFont: function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n },\n external_system_queueFont: function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n },\n containerFont: function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n },\n external_containerFont: function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n },\n container_dbFont: function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n },\n external_container_dbFont: function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n },\n container_queueFont: function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n },\n external_container_queueFont: function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n },\n componentFont: function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n },\n external_componentFont: function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n },\n component_dbFont: function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n },\n external_component_dbFont: function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n },\n component_queueFont: function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n },\n external_component_queueFont: function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n },\n boundaryFont: function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n },\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }\n },\n pie: {\n ...defaultConfigJson.pie,\n useWidth: 984\n },\n xyChart: {\n ...defaultConfigJson.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...defaultConfigJson.requirement,\n useWidth: void 0\n },\n gitGraph: {\n ...defaultConfigJson.gitGraph,\n // TODO: This is a temporary override for `gitGraph`, since every other\n // diagram does have `useMaxWidth`, but instead sets it to `true`.\n // Should we set this to `true` instead?\n useMaxWidth: false\n },\n sankey: {\n ...defaultConfigJson.sankey,\n // this is false, unlike every other diagram (other than gitGraph)\n // TODO: can we make this default to `true` instead?\n useMaxWidth: false\n }\n};\nconst keyify = (obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []);\nconst configKeys = new Set(keyify(config, \"\"));\nconst defaultConfig$2 = config;\nconst sanitizeDirective = (args) => {\n log$1.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log$1.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log$1.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log$1.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log$1.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if ((val == null ? void 0 : val.match) && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log$1.debug(\"After sanitization\", args);\n};\nconst sanitizeCss = (str2) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str2) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str2;\n};\nconst frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nconst directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst anyCommentRegex = /\\s*%%.*\\n/gm;\nclass UnknownDiagramError extends Error {\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n}\nconst detectors = {};\nconst detectType = function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector: detector2 }] of Object.entries(detectors)) {\n const diagram2 = detector2(text, config2);\n if (diagram2) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n};\nconst registerLazyLoadedDiagrams = (...diagrams2) => {\n for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) {\n addDetector(id2, detector2, loader2);\n }\n};\nconst addDetector = (key, detector2, loader2) => {\n if (detectors[key]) {\n log$1.error(`Detector with key ${key} already exists`);\n } else {\n detectors[key] = { detector: detector2, loader: loader2 };\n }\n log$1.debug(`Detector with key ${key} added${loader2 ? \" with loader\" : \"\"}`);\n};\nconst getDiagramLoader = (key) => {\n return detectors[key].loader;\n};\nconst assignWithDepth = (dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\nconst assignWithDepth$1 = assignWithDepth;\nconst ZERO_WIDTH_SPACE = \"​\";\nconst d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nconst directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst detectInit = function(text, config2) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init2) => init2.args);\n sanitizeDirective(args);\n results = assignWithDepth$1(results, [...args]);\n } else {\n results = inits.args;\n }\n if (!results) {\n return;\n }\n let type2 = detectType(text, config2);\n const prop = \"config\";\n if (results[prop] !== void 0) {\n if (type2 === \"flowchart-v2\") {\n type2 = \"flowchart\";\n }\n results[type2] = results[prop];\n delete results[prop];\n }\n return results;\n};\nconst detectDirective = function(text, type2 = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log$1.debug(\n `Detecting diagram directive${type2 !== null ? \" type:\" + type2 : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directiveRegex.exec(text)) !== null) {\n if (match.index === directiveRegex.lastIndex) {\n directiveRegex.lastIndex++;\n }\n if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {\n const type22 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type22, args });\n }\n }\n if (result.length === 0) {\n return { type: text, args: null };\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log$1.error(\n `ERROR: ${error.message} - Unable to parse directive type: '${type2}' based on the text: '${text}'`\n );\n return { type: void 0, args: null };\n }\n};\nconst removeDirectives = function(text) {\n return text.replace(directiveRegex, \"\");\n};\nconst isSubstringInArray = function(str2, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str2)) {\n return i;\n }\n }\n return -1;\n};\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] ?? defaultCurve;\n}\nfunction formatUrl(linkStr, config2) {\n const url = linkStr.trim();\n if (!url) {\n return void 0;\n }\n if (config2.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n}\nconst runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n log$1.error(`Function name: ${functionName} not found in window`);\n return;\n }\n }\n obj[fnName](...params);\n};\nfunction distance(p1, p2) {\n if (!p1 || !p2) {\n return 0;\n }\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n const remainingDistance = totalDistance / 2;\n return calculatePoint(points, remainingDistance);\n}\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\nconst roundNumber = (num, precision = 2) => {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n};\nconst calculatePoint = (points, distanceToTraverse) => {\n let prevPoint = void 0;\n let remainingDistance = distanceToTraverse;\n for (const point of points) {\n if (prevPoint) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n return prevPoint;\n }\n if (distanceRatio >= 1) {\n return { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n return {\n x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),\n y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)\n };\n }\n }\n }\n prevPoint = point;\n }\n throw new Error(\"Could not find a suitable point for the given distance\");\n};\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n log$1.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n const points = structuredClone(_points);\n log$1.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points.reverse();\n }\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n } else if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n } else if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n } else {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n }\n return cardinalityPosition;\n}\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\nlet cnt = 0;\nconst generateId = () => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n};\nfunction makeRandomHex(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\nconst random = (options) => {\n return makeRandomHex(options.length);\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0,\n text: \"\"\n };\n};\nconst drawSimpleText = function(elem, textData) {\n const nText = textData.text.replace(common$1.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n};\nconst wrapLabel = memoize(\n (label, maxWidth, config2) => {\n if (!label) {\n return label;\n }\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"
\" },\n config2\n );\n if (common$1.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \");\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config2);\n const nextLineLength = calculateTextWidth(nextLine, config2);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config2);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config2.joinWith);\n },\n (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}`\n);\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config2) => {\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config2\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config2);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nfunction calculateTextHeight(text, config2) {\n return calculateTextDimensions(text, config2).height;\n}\nfunction calculateTextWidth(text, config2) {\n return calculateTextDimensions(text, config2).width;\n}\nconst calculateTextDimensions = memoize(\n (text, config2) => {\n const { fontSize = 12, fontFamily = \"Arial\", fontWeight = 400 } = config2;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common$1.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cHeight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cHeight = Math.round(bBox.height);\n dim.height += cHeight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config2) => `${text}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nclass InitIDGenerator {\n constructor(deterministic = false, seed) {\n this.count = 0;\n this.count = seed ? seed.length : 0;\n this.next = deterministic ? () => this.count++ : () => Date.now();\n }\n}\nlet decoder;\nconst entityDecode = function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\nconst insertTitle = (parent, cssClass, titleTopMargin, title) => {\n var _a;\n if (!title) {\n return;\n }\n const bounds = (_a = parent.node()) == null ? void 0 : _a.getBBox();\n if (!bounds) {\n return;\n }\n parent.append(\"text\").text(title).attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n};\nconst parseFontSize = (fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize ?? \"\", 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n};\nfunction cleanAndMerge(defaultData, data) {\n return merge$1({}, defaultData, data);\n}\nconst utils = {\n assignWithDepth: assignWithDepth$1,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n cleanAndMerge,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n insertTitle,\n parseFontSize,\n InitIDGenerator\n};\nconst encodeEntities = function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"fl°°\" + innerTxt + \"¶ß\";\n } else {\n return \"fl°\" + innerTxt + \"¶ß\";\n }\n });\n return txt;\n};\nconst decodeEntities = function(text) {\n return text.replace(/fl°°/g, \"&#\").replace(/fl°/g, \"&\").replace(/¶ß/g, \";\");\n};\nconst version = \"10.9.4\";\nconst defaultConfig$1 = Object.freeze(defaultConfig$2);\nlet siteConfig = assignWithDepth$1({}, defaultConfig$1);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth$1({}, defaultConfig$1);\nconst updateCurrentConfig = (siteCfg, _directives) => {\n let cfg = assignWithDepth$1({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);\n }\n cfg = assignWithDepth$1(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {\n const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);\n const themeVariables = assignWithDepth$1(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in theme) {\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n};\nconst setSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1({}, defaultConfig$1);\n siteConfig = assignWithDepth$1(siteConfig, conf);\n if (conf.theme && theme[conf.theme]) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst saveConfigFromInitialize = (conf) => {\n configFromInitialize = assignWithDepth$1({}, conf);\n};\nconst updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst getSiteConfig = () => {\n return assignWithDepth$1({}, siteConfig);\n};\nconst setConfig$1 = (conf) => {\n checkConfig(conf);\n assignWithDepth$1(currentConfig, conf);\n return getConfig$1();\n};\nconst getConfig$1 = () => {\n return assignWithDepth$1({}, currentConfig);\n};\nconst sanitize = (options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log$1.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n};\nconst addDirective = (directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && (!directive.themeVariables || !directive.themeVariables.fontFamily)) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\nconst reset = (config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n};\nconst ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nconst issuedWarnings = {};\nconst issueWarning = (warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log$1.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n};\nconst checkConfig = (config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n};\nconst id$l = \"c4\";\nconst detector$l = (txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n};\nconst loader$m = async () => {\n const { diagram: diagram2 } = await import(\"./c4Diagram-15b5d702.js\");\n return { id: id$l, diagram: diagram2 };\n};\nconst plugin$j = {\n id: id$l,\n detector: detector$l,\n loader: loader$m\n};\nconst c4 = plugin$j;\nconst id$k = \"flowchart\";\nconst detector$k = (txt, config2) => {\n var _a, _b;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n};\nconst loader$l = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-cbd28bf7.js\");\n return { id: id$k, diagram: diagram2 };\n};\nconst plugin$i = {\n id: id$k,\n detector: detector$k,\n loader: loader$l\n};\nconst flowchart = plugin$i;\nconst id$j = \"flowchart-v2\";\nconst detector$j = (txt, config2) => {\n var _a, _b, _c;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-d3\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n if (/^\\s*graph/.test(txt) && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n};\nconst loader$k = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-v2-ffc7f31a.js\");\n return { id: id$j, diagram: diagram2 };\n};\nconst plugin$h = {\n id: id$j,\n detector: detector$j,\n loader: loader$k\n};\nconst flowchartV2 = plugin$h;\nconst id$i = \"er\";\nconst detector$i = (txt) => {\n return /^\\s*erDiagram/.test(txt);\n};\nconst loader$j = async () => {\n const { diagram: diagram2 } = await import(\"./erDiagram-880f2ed8.js\");\n return { id: id$i, diagram: diagram2 };\n};\nconst plugin$g = {\n id: id$i,\n detector: detector$i,\n loader: loader$j\n};\nconst er = plugin$g;\nconst id$h = \"gitGraph\";\nconst detector$h = (txt) => {\n return /^\\s*gitGraph/.test(txt);\n};\nconst loader$i = async () => {\n const { diagram: diagram2 } = await import(\"./gitGraphDiagram-21fc4d3e.js\");\n return { id: id$h, diagram: diagram2 };\n};\nconst plugin$f = {\n id: id$h,\n detector: detector$h,\n loader: loader$i\n};\nconst git = plugin$f;\nconst id$g = \"gantt\";\nconst detector$g = (txt) => {\n return /^\\s*gantt/.test(txt);\n};\nconst loader$h = async () => {\n const { diagram: diagram2 } = await import(\"./ganttDiagram-04f9e578.js\");\n return { id: id$g, diagram: diagram2 };\n};\nconst plugin$e = {\n id: id$g,\n detector: detector$g,\n loader: loader$h\n};\nconst gantt = plugin$e;\nconst id$f = \"info\";\nconst detector$f = (txt) => {\n return /^\\s*info/.test(txt);\n};\nconst loader$g = async () => {\n const { diagram: diagram2 } = await import(\"./infoDiagram-4a4f5b27.js\");\n return { id: id$f, diagram: diagram2 };\n};\nconst info = {\n id: id$f,\n detector: detector$f,\n loader: loader$g\n};\nconst id$e = \"pie\";\nconst detector$e = (txt) => {\n return /^\\s*pie/.test(txt);\n};\nconst loader$f = async () => {\n const { diagram: diagram2 } = await import(\"./pieDiagram-421022e6.js\");\n return { id: id$e, diagram: diagram2 };\n};\nconst pie = {\n id: id$e,\n detector: detector$e,\n loader: loader$f\n};\nconst id$d = \"quadrantChart\";\nconst detector$d = (txt) => {\n return /^\\s*quadrantChart/.test(txt);\n};\nconst loader$e = async () => {\n const { diagram: diagram2 } = await import(\"./quadrantDiagram-0957ecba.js\");\n return { id: id$d, diagram: diagram2 };\n};\nconst plugin$d = {\n id: id$d,\n detector: detector$d,\n loader: loader$e\n};\nconst quadrantChart = plugin$d;\nconst id$c = \"xychart\";\nconst detector$c = (txt) => {\n return /^\\s*xychart-beta/.test(txt);\n};\nconst loader$d = async () => {\n const { diagram: diagram2 } = await import(\"./xychartDiagram-b6496bcd.js\");\n return { id: id$c, diagram: diagram2 };\n};\nconst plugin$c = {\n id: id$c,\n detector: detector$c,\n loader: loader$d\n};\nconst xychart = plugin$c;\nconst id$b = \"requirement\";\nconst detector$b = (txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n};\nconst loader$c = async () => {\n const { diagram: diagram2 } = await import(\"./requirementDiagram-23d650b8.js\");\n return { id: id$b, diagram: diagram2 };\n};\nconst plugin$b = {\n id: id$b,\n detector: detector$b,\n loader: loader$c\n};\nconst requirement = plugin$b;\nconst id$a = \"sequence\";\nconst detector$a = (txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n};\nconst loader$b = async () => {\n const { diagram: diagram2 } = await import(\"./sequenceDiagram-17ac3bff.js\");\n return { id: id$a, diagram: diagram2 };\n};\nconst plugin$a = {\n id: id$a,\n detector: detector$a,\n loader: loader$b\n};\nconst sequence = plugin$a;\nconst id$9 = \"class\";\nconst detector$9 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n};\nconst loader$a = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-d40c83e7.js\");\n return { id: id$9, diagram: diagram2 };\n};\nconst plugin$9 = {\n id: id$9,\n detector: detector$9,\n loader: loader$a\n};\nconst classDiagram = plugin$9;\nconst id$8 = \"classDiagram\";\nconst detector$8 = (txt, config2) => {\n var _a;\n if (/^\\s*classDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n};\nconst loader$9 = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-v2-d5a6b087.js\");\n return { id: id$8, diagram: diagram2 };\n};\nconst plugin$8 = {\n id: id$8,\n detector: detector$8,\n loader: loader$9\n};\nconst classDiagramV2 = plugin$8;\nconst id$7 = \"state\";\nconst detector$7 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n};\nconst loader$8 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-9c5f0230.js\");\n return { id: id$7, diagram: diagram2 };\n};\nconst plugin$7 = {\n id: id$7,\n detector: detector$7,\n loader: loader$8\n};\nconst state = plugin$7;\nconst id$6 = \"stateDiagram\";\nconst detector$6 = (txt, config2) => {\n var _a;\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return false;\n};\nconst loader$7 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-v2-51a3dcff.js\");\n return { id: id$6, diagram: diagram2 };\n};\nconst plugin$6 = {\n id: id$6,\n detector: detector$6,\n loader: loader$7\n};\nconst stateV2 = plugin$6;\nconst id$5 = \"journey\";\nconst detector$5 = (txt) => {\n return /^\\s*journey/.test(txt);\n};\nconst loader$6 = async () => {\n const { diagram: diagram2 } = await import(\"./journeyDiagram-29694f62.js\");\n return { id: id$5, diagram: diagram2 };\n};\nconst plugin$5 = {\n id: id$5,\n detector: detector$5,\n loader: loader$6\n};\nconst journey = plugin$5;\nconst d3Attrs = function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\nconst calculateSvgSizeAttrs = function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n};\nconst configureSvgSize = function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\nconst setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log$1.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log$1.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n};\nconst themes = {};\nconst getStyles = (type2, userStyles, options) => {\n let diagramStyles = \"\";\n if (type2 in themes && themes[type2]) {\n diagramStyles = themes[type2](options);\n } else {\n log$1.warn(`No theme found for ${type2}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n};\nconst addStylesForDiagram = (type2, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type2] = diagramTheme;\n }\n};\nconst getStyles$1 = getStyles;\nlet accTitle = \"\";\nlet diagramTitle = \"\";\nlet accDescription = \"\";\nconst sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1());\nconst clear = () => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n};\nconst setAccTitle = (txt) => {\n accTitle = sanitizeText$1(txt).replace(/^\\s+/g, \"\");\n};\nconst getAccTitle = () => accTitle;\nconst setAccDescription = (txt) => {\n accDescription = sanitizeText$1(txt).replace(/\\n\\s+/g, \"\\n\");\n};\nconst getAccDescription = () => accDescription;\nconst setDiagramTitle = (txt) => {\n diagramTitle = sanitizeText$1(txt);\n};\nconst getDiagramTitle = () => diagramTitle;\nconst commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n clear,\n getAccDescription,\n getAccTitle,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst log = log$1;\nconst setLogLevel = setLogLevel$1;\nconst getConfig = getConfig$1;\nconst setConfig = setConfig$1;\nconst defaultConfig = defaultConfig$1;\nconst sanitizeText = (text) => sanitizeText$2(text, getConfig());\nconst setupGraphViewbox = setupGraphViewbox$1;\nconst getCommonDb = () => {\n return commonDb;\n};\nconst diagrams = {};\nconst registerDiagram = (id2, diagram2, detector2) => {\n var _a;\n if (diagrams[id2]) {\n throw new Error(`Diagram ${id2} already registered.`);\n }\n diagrams[id2] = diagram2;\n if (detector2) {\n addDetector(id2, detector2);\n }\n addStylesForDiagram(id2, diagram2.styles);\n (_a = diagram2.injectUtils) == null ? void 0 : _a.call(\n diagram2,\n log,\n setLogLevel,\n getConfig,\n sanitizeText,\n setupGraphViewbox,\n getCommonDb(),\n () => {\n }\n );\n};\nconst getDiagram = (name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n};\nclass DiagramNotFoundError extends Error {\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n}\nconst selectSvgElement = (id2) => {\n var _a;\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id2}`);\n const doc = ((_a = sandboxElement.node()) == null ? void 0 : _a.contentDocument) ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id2}`);\n return svg;\n};\nconst draw = (_text, id2, version2) => {\n log$1.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id2);\n const g = svg.append(\"g\");\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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 );\n g.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 g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version2}`);\n};\nconst renderer = { draw };\nconst errorRenderer = renderer;\nconst diagram = {\n db: {},\n renderer,\n parser: {\n parser: { yy: {} },\n parse: () => {\n return;\n }\n }\n};\nconst errorDiagram = diagram;\nconst id$4 = \"flowchart-elk\";\nconst detector$4 = (txt, config2) => {\n var _a;\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*flowchart|graph/.test(txt) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"elk\"\n ) {\n return true;\n }\n return false;\n};\nconst loader$5 = async () => {\n const { diagram: diagram2 } = await import(\"./flowchart-elk-definition-36e2d292.js\");\n return { id: id$4, diagram: diagram2 };\n};\nconst plugin$4 = {\n id: id$4,\n detector: detector$4,\n loader: loader$5\n};\nconst flowchartElk = plugin$4;\nconst id$3 = \"timeline\";\nconst detector$3 = (txt) => {\n return /^\\s*timeline/.test(txt);\n};\nconst loader$4 = async () => {\n const { diagram: diagram2 } = await import(\"./timeline-definition-7e6b55e7.js\");\n return { id: id$3, diagram: diagram2 };\n};\nconst plugin$3 = {\n id: id$3,\n detector: detector$3,\n loader: loader$4\n};\nconst timeline = plugin$3;\nconst id$2 = \"mindmap\";\nconst detector$2 = (txt) => {\n return /^\\s*mindmap/.test(txt);\n};\nconst loader$3 = async () => {\n const { diagram: diagram2 } = await import(\"./mindmap-definition-ac74a2e8.js\");\n return { id: id$2, diagram: diagram2 };\n};\nconst plugin$2 = {\n id: id$2,\n detector: detector$2,\n loader: loader$3\n};\nconst mindmap = plugin$2;\nconst id$1 = \"sankey\";\nconst detector$1 = (txt) => {\n return /^\\s*sankey-beta/.test(txt);\n};\nconst loader$2 = async () => {\n const { diagram: diagram2 } = await import(\"./sankeyDiagram-23345273.js\");\n return { id: id$1, diagram: diagram2 };\n};\nconst plugin$1 = {\n id: id$1,\n detector: detector$1,\n loader: loader$2\n};\nconst sankey = plugin$1;\nconst id = \"block\";\nconst detector = (txt) => {\n return /^\\s*block-beta/.test(txt);\n};\nconst loader$1 = async () => {\n const { diagram: diagram2 } = await import(\"./blockDiagram-68f4deed.js\");\n return { id, diagram: diagram2 };\n};\nconst plugin = {\n id,\n detector,\n loader: loader$1\n};\nconst block = plugin;\nlet hasLoadedDiagrams = false;\nconst addDiagrams = () => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: () => {\n }\n },\n styles: {},\n // should never be used\n renderer: {\n draw: () => {\n }\n },\n parser: {\n parser: { yy: {} },\n parse: () => {\n throw new Error(\n \"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\"\n );\n }\n },\n init: () => null\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n registerLazyLoadedDiagrams(\n c4,\n classDiagramV2,\n classDiagram,\n er,\n gantt,\n info,\n pie,\n requirement,\n sequence,\n flowchartElk,\n flowchartV2,\n flowchart,\n mindmap,\n timeline,\n git,\n stateV2,\n state,\n journey,\n quadrantChart,\n sankey,\n xychart,\n block\n );\n};\nclass Diagram {\n constructor(text, metadata = {}) {\n this.text = text;\n this.metadata = metadata;\n this.type = \"graph\";\n this.text = encodeEntities(text);\n this.text += \"\\n\";\n const cnf = getConfig$1();\n try {\n this.type = detectType(text, cnf);\n } catch (e) {\n this.type = \"error\";\n this.detectError = e;\n }\n const diagram2 = getDiagram(this.type);\n log$1.debug(\"Type \" + this.type);\n this.db = diagram2.db;\n this.renderer = diagram2.renderer;\n this.parser = diagram2.parser;\n this.parser.parser.yy = this.db;\n this.init = diagram2.init;\n this.parse();\n }\n parse() {\n var _a, _b, _c, _d, _e;\n if (this.detectError) {\n throw this.detectError;\n }\n (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);\n const config2 = getConfig$1();\n (_c = this.init) == null ? void 0 : _c.call(this, config2);\n if (this.metadata.title) {\n (_e = (_d = this.db).setDiagramTitle) == null ? void 0 : _e.call(_d, this.metadata.title);\n }\n this.parser.parse(this.text);\n }\n async render(id2, version2) {\n await this.renderer.draw(this.text, id2, version2, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n}\nconst getDiagramFromText$1 = async (text, metadata = {}) => {\n const type2 = detectType(text, getConfig$1());\n try {\n getDiagram(type2);\n } catch (error) {\n const loader2 = getDiagramLoader(type2);\n if (!loader2) {\n throw new UnknownDiagramError(`Diagram ${type2} not found.`);\n }\n const { id: id2, diagram: diagram2 } = await loader2();\n registerDiagram(id2, diagram2);\n }\n return new Diagram(text, metadata);\n};\nlet interactionFunctions = [];\nconst attachFunctions = () => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n};\nconst SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\nconst cleanupComments = (text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n};\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence2) {\n if (Array.isArray(sequence2))\n return sequence2;\n else if (isNothing(sequence2))\n return [];\n return [sequence2];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark)\n return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"→\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer)\n return null;\n if (!options.maxLength)\n options.maxLength = 79;\n if (typeof options.indent !== \"number\")\n options.indent = 1;\n if (typeof options.linesBefore !== \"number\")\n options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\")\n options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0)\n foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit)\n implicit = implicit.concat(definition.implicit);\n if (definition.explicit)\n explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null)\n return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function() {\n return \"~\";\n },\n lowercase: function() {\n return \"null\";\n },\n uppercase: function() {\n return \"NULL\";\n },\n camelcase: function() {\n return \"Null\";\n },\n empty: function() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null)\n return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\nfunction resolveYamlInteger(data) {\n if (data === null)\n return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max)\n return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max)\n return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (ch !== \"0\" && ch !== \"1\")\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isHexCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isOctCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\")\n return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\")\n return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\")\n sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\")\n return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\")\n return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\")\n return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\")\n return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */\n hexadecimal: function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null)\n return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null)\n return false;\n if (YAML_DATE_REGEXP.exec(data) !== null)\n return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)\n return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null)\n match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null)\n throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\")\n delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta)\n date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null)\n return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64)\n continue;\n if (code < 0)\n return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null)\n return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\")\n return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey)\n pairHasKey = true;\n else\n return false;\n }\n }\n if (!pairHasKey)\n return false;\n if (objectKeys.indexOf(pairKey) === -1)\n objectKeys.push(pairKey);\n else\n return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null)\n return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\")\n return false;\n keys = Object.keys(pair);\n if (keys.length !== 1)\n return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null)\n return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null)\n return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null)\n return false;\n }\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"…\" : c === 95 ? \" \" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\nfunction generateError(state2, message) {\n var mark = {\n name: state2.filename,\n buffer: state2.input.slice(0, -1),\n // omit trailing \\0\n position: state2.position,\n line: state2.line,\n column: state2.position - state2.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state2, message) {\n throw generateError(state2, message);\n}\nfunction throwWarning(state2, message) {\n if (state2.onWarning) {\n state2.onWarning.call(null, generateError(state2, message));\n }\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state2, name, args) {\n var match, major, minor;\n if (state2.version !== null) {\n throwError(state2, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state2, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state2, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state2, \"unacceptable YAML version of the document\");\n }\n state2.version = args[0];\n state2.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state2, \"unsupported YAML version of the document\");\n }\n },\n TAG: function handleTagDirective(state2, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state2, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state2, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state2.tagMap, handle)) {\n throwError(state2, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state2, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state2, \"tag prefix is malformed: \" + prefix);\n }\n state2.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state2, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state2.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state2, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state2, \"the stream contains non-printable characters\");\n }\n state2.result += _result;\n }\n}\nfunction mergeMappings(state2, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state2, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state2, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state2, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state2, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state2.line = startLine || state2.line;\n state2.lineStart = startLineStart || state2.lineStart;\n state2.position = startPos || state2.position;\n throwError(state2, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state2) {\n var ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 10) {\n state2.position++;\n } else if (ch === 13) {\n state2.position++;\n if (state2.input.charCodeAt(state2.position) === 10) {\n state2.position++;\n }\n } else {\n throwError(state2, \"a line break is expected\");\n }\n state2.line += 1;\n state2.lineStart = state2.position;\n state2.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state2, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state2.firstTabInLine === -1) {\n state2.firstTabInLine = state2.position;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state2);\n ch = state2.input.charCodeAt(state2.position);\n lineBreaks++;\n state2.lineIndent = 0;\n while (ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) {\n throwWarning(state2, \"deficient indentation\");\n }\n return lineBreaks;\n}\nfunction testDocumentSeparator(state2) {\n var _position = state2.position, ch;\n ch = state2.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state2.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\nfunction writeFoldedLines(state2, count) {\n if (count === 1) {\n state2.result += \" \";\n } else if (count > 1) {\n state2.result += common.repeat(\"\\n\", count - 1);\n }\n}\nfunction readPlainScalar(state2, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state2.input.charCodeAt(state2.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state2.line;\n _lineStart = state2.lineStart;\n _lineIndent = state2.lineIndent;\n skipSeparationSpace(state2, false, -1);\n if (state2.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state2.input.charCodeAt(state2.position);\n continue;\n } else {\n state2.position = captureEnd;\n state2.line = _line;\n state2.lineStart = _lineStart;\n state2.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state2, captureStart, captureEnd, false);\n writeFoldedLines(state2, state2.line - _line);\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state2.position + 1;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, captureEnd, false);\n if (state2.result) {\n return true;\n }\n state2.kind = _kind;\n state2.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state2, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 39) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 39) {\n captureStart = state2.position;\n state2.position++;\n captureEnd = state2.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state2, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 34) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state2, captureStart, state2.position, true);\n state2.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state2, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state2.result += simpleEscapeMap[ch];\n state2.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state2.input.charCodeAt(++state2.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state2, \"expected hexadecimal character\");\n }\n }\n state2.result += charFromCodepoint(hexResult);\n state2.position++;\n } else {\n throwError(state2, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state2.position;\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state2, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(++state2.position);\n while (ch !== 0) {\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === terminator) {\n state2.position++;\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = isMapping ? \"mapping\" : \"sequence\";\n state2.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state2, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state2, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state2.position++;\n skipSeparationSpace(state2, true, nodeIndent);\n }\n }\n _line = state2.line;\n _lineStart = state2.lineStart;\n _pos = state2.position;\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state2.tag;\n keyNode = state2.result;\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if ((isExplicitPair || state2.line === _line) && ch === 58) {\n isPair = true;\n ch = state2.input.charCodeAt(++state2.position);\n skipSeparationSpace(state2, true, nodeIndent);\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state2.result;\n }\n if (isMapping) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 44) {\n readNext = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n readNext = false;\n }\n }\n throwError(state2, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state2, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n while (ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state2, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state2, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state2, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state2);\n state2.lineIndent = 0;\n ch = state2.input.charCodeAt(state2.position);\n while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (!detectedIndent && state2.lineIndent > textIndent) {\n textIndent = state2.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state2.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state2.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state2.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state2.result += \" \";\n }\n } else {\n state2.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state2.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, state2.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state2, nodeIndent) {\n var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state2.input.charCodeAt(state2.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state2.position++;\n if (skipSeparationSpace(state2, true, -1)) {\n if (state2.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state2.input.charCodeAt(state2.position);\n continue;\n }\n }\n _line = state2.line;\n composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state2.result);\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a sequence entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"sequence\";\n state2.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state2, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (!atExplicitKey && state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n following = state2.input.charCodeAt(state2.position + 1);\n _line = state2.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state2, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state2.position += 1;\n ch = following;\n } else {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state2.line === _line) {\n ch = state2.input.charCodeAt(state2.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 58) {\n ch = state2.input.charCodeAt(++state2.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state2, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state2.tag;\n keyNode = state2.result;\n } else if (detected) {\n throwError(state2, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state2, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n }\n if (state2.line === _line || state2.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n }\n if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state2.result;\n } else {\n valueNode = state2.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n }\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a mapping entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"mapping\";\n state2.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state2) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 33)\n return false;\n if (state2.tag !== null) {\n throwError(state2, \"duplication of a tag property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state2.position;\n if (isVerbatim) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && ch !== 62);\n if (state2.position < state2.length) {\n tagName = state2.input.slice(_position, state2.position);\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n throwError(state2, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state2.input.slice(_position - 1, state2.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state2, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state2.position + 1;\n } else {\n throwError(state2, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n tagName = state2.input.slice(_position, state2.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state2, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state2, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state2, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state2.tag = tagName;\n } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) {\n state2.tag = state2.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state2.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state2.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state2, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\nfunction readAnchorProperty(state2) {\n var _position, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 38)\n return false;\n if (state2.anchor !== null) {\n throwError(state2, \"duplication of an anchor property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an anchor node must contain at least one character\");\n }\n state2.anchor = state2.input.slice(_position, state2.position);\n return true;\n}\nfunction readAlias(state2) {\n var _position, alias, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 42)\n return false;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an alias node must contain at least one character\");\n }\n alias = state2.input.slice(_position, state2.position);\n if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) {\n throwError(state2, 'unidentified alias \"' + alias + '\"');\n }\n state2.result = state2.anchorMap[alias];\n skipSeparationSpace(state2, true, -1);\n return true;\n}\nfunction composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state2.listener !== null) {\n state2.listener(\"open\", state2);\n }\n state2.tag = null;\n state2.anchor = null;\n state2.kind = null;\n state2.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state2) || readAnchorProperty(state2)) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state2.position - state2.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state2)) {\n hasContent = true;\n if (state2.tag !== null || state2.anchor !== null) {\n throwError(state2, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state2.tag === null) {\n state2.tag = \"?\";\n }\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent);\n }\n }\n if (state2.tag === null) {\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n } else if (state2.tag === \"?\") {\n if (state2.result !== null && state2.kind !== \"scalar\") {\n throwError(state2, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state2.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state2.implicitTypes[typeIndex];\n if (type2.resolve(state2.result)) {\n state2.result = type2.construct(state2.result);\n state2.tag = type2.tag;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n break;\n }\n }\n } else if (state2.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || \"fallback\"], state2.tag)) {\n type2 = state2.typeMap[state2.kind || \"fallback\"][state2.tag];\n } else {\n type2 = null;\n typeList = state2.typeMap.multi[state2.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state2, \"unknown tag !<\" + state2.tag + \">\");\n }\n if (state2.result !== null && type2.kind !== state2.kind) {\n throwError(state2, \"unacceptable node kind for !<\" + state2.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state2.kind + '\"');\n }\n if (!type2.resolve(state2.result, state2.tag)) {\n throwError(state2, \"cannot resolve a node with !<\" + state2.tag + \"> explicit tag\");\n } else {\n state2.result = type2.construct(state2.result, state2.tag);\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n }\n if (state2.listener !== null) {\n state2.listener(\"close\", state2);\n }\n return state2.tag !== null || state2.anchor !== null || hasContent;\n}\nfunction readDocument(state2) {\n var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state2.version = null;\n state2.checkLineBreaks = state2.legacy;\n state2.tagMap = /* @__PURE__ */ Object.create(null);\n state2.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if (state2.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveName = state2.input.slice(_position, state2.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state2, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch))\n break;\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveArgs.push(state2.input.slice(_position, state2.position));\n }\n if (ch !== 0)\n readLineBreak(state2);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state2, directiveName, directiveArgs);\n } else {\n throwWarning(state2, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state2, true, -1);\n if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n } else if (hasDirectives) {\n throwError(state2, \"directives end mark is expected\");\n }\n composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state2, true, -1);\n if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) {\n throwWarning(state2, \"non-ASCII line breaks are interpreted as content\");\n }\n state2.documents.push(state2.result);\n if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n if (state2.input.charCodeAt(state2.position) === 46) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n }\n return;\n }\n if (state2.position < state2.length - 1) {\n throwError(state2, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state2 = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state2.position = nullpos;\n throwError(state2, \"null byte is not allowed in input\");\n }\n state2.input += \"\\0\";\n while (state2.input.charCodeAt(state2.position) === 32) {\n state2.lineIndent += 1;\n state2.position += 1;\n }\n while (state2.position < state2.length - 1) {\n readDocument(state2);\n }\n return state2.documents;\n}\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar JSON_SCHEMA = json;\nvar load = loader.load;\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\nconst cleanupText = (code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n};\nconst processFrontmatter = (code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config: config2 = {} } = metadata;\n if (displayMode) {\n if (!config2.gantt) {\n config2.gantt = {};\n }\n config2.gantt.displayMode = displayMode;\n }\n return { title, config: config2, text };\n};\nconst processDirectives = (code) => {\n const initDirective = utils.detectInit(code) ?? {};\n const wrapDirectives = utils.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type: type2 }) => {\n });\n } else if ((wrapDirectives == null ? void 0 : wrapDirectives.type) === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n};\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config2 = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config: config2\n };\n}\nconst MAX_TEXTLENGTH = 5e4;\nconst MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nconst SECURITY_LVL_SANDBOX = \"sandbox\";\nconst SECURITY_LVL_LOOSE = \"loose\";\nconst XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nconst XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nconst XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nconst IFRAME_WIDTH = \"100%\";\nconst IFRAME_HEIGHT = \"100%\";\nconst IFRAME_STYLES = \"border:0;margin:0;\";\nconst IFRAME_BODY_STYLE = \"margin:0\";\nconst IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nconst IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nconst DOMPURIFY_TAGS = [\"foreignobject\"];\nconst DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\nasync function parse$1(text, parseOptions) {\n addDiagrams();\n text = processAndSetConfigs(text).code;\n try {\n await getDiagramFromText(text);\n } catch (error) {\n if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {\n return false;\n }\n throw error;\n }\n return true;\n}\nconst cssImportantStyles = (cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n};\nconst createCssStyles = (config2, classDefs = {}) => {\n var _a;\n let cssStyles = \"\";\n if (config2.themeCSS !== void 0) {\n cssStyles += `\n${config2.themeCSS}`;\n }\n if (config2.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config2.fontFamily}}`;\n }\n if (config2.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;\n }\n if (!isEmpty(classDefs)) {\n const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels);\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n for (const classId in classDefs) {\n const styleClassDef = classDefs[classId];\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(styleClassDef.id, \"tspan\", styleClassDef.textStyles);\n }\n }\n }\n return cssStyles;\n};\nconst createUserStyles = (config2, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config2, classDefs);\n const allStyles = getStyles$1(graphType, userCSSstyles, config2.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n};\nconst cleanUpSvgCode = (svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/
/g, \"
\");\n return cleanedUpSvg;\n};\nconst putIntoIFrame = (svgCode = \"\", svgElement) => {\n var _a, _b;\n const height = ((_b = (_a = svgElement == null ? void 0 : svgElement.viewBox) == null ? void 0 : _a.baseVal) == null ? void 0 : _b.height) ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = btoa('' + svgCode + \"\");\n return ``;\n};\nconst appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id2).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n};\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\nconst removeExistingElements = (doc, id2, divId, iFrameId) => {\n var _a, _b, _c;\n (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();\n (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();\n (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();\n};\nconst render$1 = async function(id2, text, svgContainingElement) {\n var _a, _b, _c, _d, _e, _f;\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config2 = getConfig$1();\n log$1.debug(config2);\n if (text.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id2;\n const iFrameID = \"i\" + id2;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id2;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n let root = select(\"body\");\n const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config2.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id2, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id2, enclosingDivID);\n }\n let diag;\n let parseEncounteredException;\n try {\n diag = await getDiagramFromText(text, { title: processed.title });\n } catch (error) {\n diag = new Diagram(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = (_b = (_a = diag.renderer).getClasses) == null ? void 0 : _b.call(_a, text, diag);\n const rules = createUserStyles(config2, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id2, version, diag);\n } catch (e) {\n errorRenderer.draw(text, id2, version);\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = (_d = (_c = diag.db).getAccTitle) == null ? void 0 : _d.call(_c);\n const a11yDescr = (_f = (_e = diag.db).getAccDescription) == null ? void 0 : _f.call(_e);\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id2}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log$1.debug(\"config.arrowMarkerAbsolute\", config2.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n return {\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n};\nfunction initialize$1(options = {}) {\n var _a;\n if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if ((options == null ? void 0 : options.theme) && options.theme in theme) {\n options.themeVariables = theme[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n const config2 = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel$1(config2.logLevel);\n addDiagrams();\n}\nconst getDiagramFromText = (text, metadata = {}) => {\n const { code } = preprocessDiagram(text);\n return getDiagramFromText$1(code, metadata);\n};\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\nconst mermaidAPI = Object.freeze({\n render: render$1,\n parse: parse$1,\n getDiagramFromText,\n initialize: initialize$1,\n getConfig: getConfig$1,\n setConfig: setConfig$1,\n getSiteConfig,\n updateSiteConfig,\n reset: () => {\n reset();\n },\n globalReset: () => {\n reset(defaultConfig$1);\n },\n defaultConfig: defaultConfig$1\n});\nsetLogLevel$1(getConfig$1().logLevel);\nreset(getConfig$1());\nconst loadRegisteredDiagrams = async () => {\n log$1.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => {\n if (loader2) {\n try {\n getDiagram(key);\n } catch (error) {\n try {\n const { diagram: diagram2, id: id2 } = await loader2();\n registerDiagram(id2, diagram2, detector2);\n } catch (err) {\n log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log$1.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log$1.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n};\nconst handleError = (error, errors, parseError) => {\n log$1.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n};\nconst run = async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log$1.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log$1.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n};\nconst runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log$1.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log$1.debug(`Found ${nodesToProcess.length} diagrams`);\n if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) {\n log$1.debug(\"Start On Load: \" + (conf == null ? void 0 : conf.startOnLoad));\n mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad });\n }\n const idGenerator = new utils.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log$1.info(\"Rendering diagram: \" + element.id);\n /*! Check if previously processed */\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id2 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, \"
\");\n const init2 = utils.detectInit(txt);\n if (init2) {\n log$1.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render(id2, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id2);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n};\nconst initialize = function(config2) {\n mermaidAPI.initialize(config2);\n};\nconst init = async function(config2, nodes, callback) {\n log$1.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config2) {\n initialize(config2);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n};\nconst registerExternalDiagrams = async (diagrams2, {\n lazyLoad = true\n} = {}) => {\n registerLazyLoadedDiagrams(...diagrams2);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n};\nconst contentLoaded = function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log$1.error(\"Mermaid failed to initialize\", err));\n }\n }\n};\nif (typeof document !== \"undefined\") {\n /*!\n * Wait for document loaded before starting the execution\n */\n window.addEventListener(\"load\", contentLoaded, false);\n}\nconst setParseErrorHandler = function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n};\nconst executionQueue = [];\nlet executionQueueRunning = false;\nconst executeQueue = async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log$1.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n};\nconst parse = async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst render = (id2, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.render(id2, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse,\n render,\n init,\n run,\n registerExternalDiagrams,\n initialize,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType\n};\nexport {\n selectSvgElement as A,\n defaultConfig$2 as B,\n cleanAndMerge as C,\n parseFontSize as D,\n getThemeVariables$2 as E,\n getConfig$1 as F,\n hasKatex as G,\n calculateMathMLDimensions as H,\n generateId as I,\n lineBreakRegex as J,\n defaultConfig as K,\n commonDb as L,\n decodeEntities as M,\n mermaid as N,\n ZERO_WIDTH_SPACE as Z,\n getAccDescription as a,\n setAccDescription as b,\n getConfig as c,\n sanitizeText$2 as d,\n common$1 as e,\n assignWithDepth$1 as f,\n getAccTitle as g,\n calculateTextWidth as h,\n configureSvgSize as i,\n calculateTextHeight as j,\n getStylesFromArray as k,\n log$1 as l,\n evaluate as m,\n interpolateToCurve as n,\n setupGraphViewbox$1 as o,\n setConfig as p,\n setDiagramTitle as q,\n renderKatexSanitized as r,\n setAccTitle as s,\n getDiagramTitle as t,\n utils as u,\n clear as v,\n wrapLabel as w,\n parseGenericTypes as x,\n random as y,\n setupGraphViewbox as z\n};\n","import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { J as lineBreakRegex } from \"./mermaid-ad1dc92f.js\";\nconst drawRect = (element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n if (rectData.name) {\n rectElement.attr(\"name\", rectData.name);\n }\n rectData.rx !== void 0 && rectElement.attr(\"rx\", rectData.rx);\n rectData.ry !== void 0 && rectElement.attr(\"ry\", rectData.ry);\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n rectData.class !== void 0 && rectElement.attr(\"class\", rectData.class);\n return rectElement;\n};\nconst drawBackgroundRect = (element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n};\nconst drawText = (element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n textData.class !== void 0 && textElem.attr(\"class\", textData.class);\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n};\nconst drawImage = (elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawEmbeddedImage = (element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n};\nconst getNoteRect = () => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n};\nconst getTextObj = () => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n};\nexport {\n drawBackgroundRect as a,\n drawEmbeddedImage as b,\n drawImage as c,\n drawRect as d,\n getTextObj as e,\n drawText as f,\n getNoteRect as g\n};\n","import { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, d as sanitizeText, e as common, f as assignWithDepth, h as calculateTextWidth, l as log, i as configureSvgSize, w as wrapLabel, j as calculateTextHeight } from \"./mermaid-ad1dc92f.js\";\nimport { select } from \"d3\";\nimport { d as drawRect$1, g as getNoteRect } from \"./svgDrawCommon-3ba9043b.js\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [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], $VJ = [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], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [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];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setDirection(\"TB\");\n break;\n case 4:\n yy.setDirection(\"BT\");\n break;\n case 5:\n yy.setDirection(\"RL\");\n break;\n case 6:\n yy.setDirection(\"LR\");\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 19:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 20:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 21:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 22:\n case 23:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n case 29:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 30:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 32:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 33:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 34:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 35:\n yy.popBoundaryParseStack();\n break;\n case 39:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 43:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 44:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 45:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 46:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 66:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n this.$ = [$$[$0]];\n break;\n case 72:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 73:\n case 75:\n this.$ = $$[$0].trim();\n break;\n case 74:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 76:\n this.$ = \"\";\n break;\n }\n },\n 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: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])],\n 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] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 6;\n case 1:\n return 7;\n case 2:\n return 8;\n case 3:\n return 9;\n case 4:\n return 22;\n case 5:\n return 23;\n case 6:\n this.begin(\"acc_title\");\n return 24;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 26;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n break;\n case 14:\n c;\n break;\n case 15:\n return 12;\n case 16:\n break;\n case 17:\n return 11;\n case 18:\n return 15;\n case 19:\n return 16;\n case 20:\n return 17;\n case 21:\n return 18;\n case 22:\n this.begin(\"person_ext\");\n return 45;\n case 23:\n this.begin(\"person\");\n return 44;\n case 24:\n this.begin(\"system_ext_queue\");\n return 51;\n case 25:\n this.begin(\"system_ext_db\");\n return 50;\n case 26:\n this.begin(\"system_ext\");\n return 49;\n case 27:\n this.begin(\"system_queue\");\n return 48;\n case 28:\n this.begin(\"system_db\");\n return 47;\n case 29:\n this.begin(\"system\");\n return 46;\n case 30:\n this.begin(\"boundary\");\n return 37;\n case 31:\n this.begin(\"enterprise_boundary\");\n return 34;\n case 32:\n this.begin(\"system_boundary\");\n return 36;\n case 33:\n this.begin(\"container_ext_queue\");\n return 57;\n case 34:\n this.begin(\"container_ext_db\");\n return 56;\n case 35:\n this.begin(\"container_ext\");\n return 55;\n case 36:\n this.begin(\"container_queue\");\n return 54;\n case 37:\n this.begin(\"container_db\");\n return 53;\n case 38:\n this.begin(\"container\");\n return 52;\n case 39:\n this.begin(\"container_boundary\");\n return 38;\n case 40:\n this.begin(\"component_ext_queue\");\n return 63;\n case 41:\n this.begin(\"component_ext_db\");\n return 62;\n case 42:\n this.begin(\"component_ext\");\n return 61;\n case 43:\n this.begin(\"component_queue\");\n return 60;\n case 44:\n this.begin(\"component_db\");\n return 59;\n case 45:\n this.begin(\"component\");\n return 58;\n case 46:\n this.begin(\"node\");\n return 39;\n case 47:\n this.begin(\"node\");\n return 39;\n case 48:\n this.begin(\"node_l\");\n return 40;\n case 49:\n this.begin(\"node_r\");\n return 41;\n case 50:\n this.begin(\"rel\");\n return 64;\n case 51:\n this.begin(\"birel\");\n return 65;\n case 52:\n this.begin(\"rel_u\");\n return 66;\n case 53:\n this.begin(\"rel_u\");\n return 66;\n case 54:\n this.begin(\"rel_d\");\n return 67;\n case 55:\n this.begin(\"rel_d\");\n return 67;\n case 56:\n this.begin(\"rel_l\");\n return 68;\n case 57:\n this.begin(\"rel_l\");\n return 68;\n case 58:\n this.begin(\"rel_r\");\n return 69;\n case 59:\n this.begin(\"rel_r\");\n return 69;\n case 60:\n this.begin(\"rel_b\");\n return 70;\n case 61:\n this.begin(\"rel_index\");\n return 71;\n case 62:\n this.begin(\"update_el_style\");\n return 72;\n case 63:\n this.begin(\"update_rel_style\");\n return 73;\n case 64:\n this.begin(\"update_layout_config\");\n return 74;\n case 65:\n return \"EOF_IN_STRUCT\";\n case 66:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n case 67:\n this.begin(\"attribute\");\n break;\n case 68:\n this.popState();\n this.popState();\n break;\n case 69:\n return 80;\n case 70:\n break;\n case 71:\n return 80;\n case 72:\n this.begin(\"string\");\n break;\n case 73:\n this.popState();\n break;\n case 74:\n return \"STR\";\n case 75:\n this.begin(\"string_kv\");\n break;\n case 76:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n case 77:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 78:\n return \"STR_VALUE\";\n case 79:\n this.popState();\n this.popState();\n break;\n case 80:\n return \"STR\";\n case 81:\n return \"LBRACE\";\n case 82:\n return \"RBRACE\";\n case 83:\n return \"SPACE\";\n case 84:\n return \"EOL\";\n case 85:\n return 14;\n }\n },\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:title\\s[^#\\n;]+)/, /^(?:accDescription\\s[^#\\n;]+)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:C4Context\\b)/, /^(?:C4Container\\b)/, /^(?:C4Component\\b)/, /^(?:C4Dynamic\\b)/, /^(?:C4Deployment\\b)/, /^(?:Person_Ext\\b)/, /^(?:Person\\b)/, /^(?:SystemQueue_Ext\\b)/, /^(?:SystemDb_Ext\\b)/, /^(?:System_Ext\\b)/, /^(?:SystemQueue\\b)/, /^(?:SystemDb\\b)/, /^(?:System\\b)/, /^(?:Boundary\\b)/, /^(?:Enterprise_Boundary\\b)/, /^(?:System_Boundary\\b)/, /^(?:ContainerQueue_Ext\\b)/, /^(?:ContainerDb_Ext\\b)/, /^(?:Container_Ext\\b)/, /^(?:ContainerQueue\\b)/, /^(?:ContainerDb\\b)/, /^(?:Container\\b)/, /^(?:Container_Boundary\\b)/, /^(?:ComponentQueue_Ext\\b)/, /^(?:ComponentDb_Ext\\b)/, /^(?:Component_Ext\\b)/, /^(?:ComponentQueue\\b)/, /^(?:ComponentDb\\b)/, /^(?:Component\\b)/, /^(?:Deployment_Node\\b)/, /^(?:Node\\b)/, /^(?:Node_L\\b)/, /^(?:Node_R\\b)/, /^(?:Rel\\b)/, /^(?:BiRel\\b)/, /^(?:Rel_Up\\b)/, /^(?:Rel_U\\b)/, /^(?:Rel_Down\\b)/, /^(?:Rel_D\\b)/, /^(?:Rel_Left\\b)/, /^(?:Rel_L\\b)/, /^(?:Rel_Right\\b)/, /^(?:Rel_R\\b)/, /^(?:Rel_Back\\b)/, /^(?:RelIndex\\b)/, /^(?:UpdateElementStyle\\b)/, /^(?:UpdateRelStyle\\b)/, /^(?:UpdateLayoutConfig\\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*[\"][\"])/, /^(?:[ ]*[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[ ]*[\\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[^,]+)/, /^(?:\\{)/, /^(?:\\})/, /^(?:[\\s]+)/, /^(?:[\\n\\r]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [78, 79], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [77], \"inclusive\": false }, \"string_kv\": { \"rules\": [76], \"inclusive\": false }, \"string\": { \"rules\": [73, 74], \"inclusive\": false }, \"attribute\": { \"rules\": [68, 69, 70, 71, 72, 75, 80], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_el_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_b\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_d\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_u\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"birel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet c4ShapeArray = [];\nlet boundaryParseStack = [\"\"];\nlet currentBoundaryParse = \"global\";\nlet parentBoundaryParse = \"\";\nlet boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n];\nlet rels = [];\nlet title = \"\";\nlet wrapEnabled = false;\nlet c4ShapeInRow$1 = 4;\nlet c4BoundaryInRow$1 = 2;\nvar c4Type;\nconst getC4Type = function() {\n return c4Type;\n};\nconst setC4Type = function(c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n};\nconst addRel = function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n};\nconst addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n};\nconst addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n};\nconst addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n};\nconst addPersonOrSystemBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addContainerBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst popBoundaryParseStack = function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === void 0) {\n old = boundaries.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n};\nconst updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n};\nconst updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow$1;\n let c4BoundaryInRowValue = c4BoundaryInRow$1;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow$1 = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow$1 = c4BoundaryInRowValue;\n }\n};\nconst getC4ShapeInRow = function() {\n return c4ShapeInRow$1;\n};\nconst getC4BoundaryInRow = function() {\n return c4BoundaryInRow$1;\n};\nconst getCurrentBoundaryParse = function() {\n return currentBoundaryParse;\n};\nconst getParentBoundaryParse = function() {\n return parentBoundaryParse;\n};\nconst getC4ShapeArray = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n};\nconst getC4Shape = function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n};\nconst getC4ShapeKeys = function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n};\nconst getBoundaries = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundaries;\n } else {\n return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n};\nconst getBoundarys = getBoundaries;\nconst getRels = function() {\n return rels;\n};\nconst getTitle = function() {\n return title;\n};\nconst setWrap = function(wrapSetting) {\n wrapEnabled = wrapSetting;\n};\nconst autoWrap = function() {\n return wrapEnabled;\n};\nconst clear = function() {\n c4ShapeArray = [];\n boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n ];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow$1 = 4;\n c4BoundaryInRow$1 = 2;\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst setTitle = function(txt) {\n let sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n};\nconst db = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundaries,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => getConfig().c4,\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawImage = function(elem, width, height, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"width\", width);\n imageElem.attr(\"height\", height);\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n let sanitizedLink = link.startsWith(\"data:image/png;base64\") ? link : sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawRels$1 = (elem, rels2, conf2) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (let rel of rels2) {\n let textColor = rel.textColor ? rel.textColor : \"#444444\";\n let strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n let url = \"\";\n if (i === 0) {\n let line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n i = -1;\n } else {\n let line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\"controly\", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n }\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n};\nconst drawBoundary$1 = function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n let fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n let strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n let fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = { \"stroke-width\": 1, \"stroke-dasharray\": \"7.0,7.0\" };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n};\nconst drawC4Shape = function(elem, c4Shape, conf2) {\n var _a;\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + \"_bg_color\"];\n let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + \"_border_color\"];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : \"#FFFFFF\";\n let personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n break;\n case \"external_person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";\n break;\n }\n const c4ShapeElem = elem.append(\"g\");\n c4ShapeElem.attr(\"class\", \"person-man\");\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n case \"system\":\n case \"external_system\":\n case \"container\":\n case \"external_container\":\n case \"component\":\n case \"external_component\":\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.stroke = strokeColor;\n rect.rx = 2.5;\n rect.ry = 2.5;\n rect.attrs = { \"stroke-width\": 0.5 };\n drawRect(c4ShapeElem, rect);\n break;\n case \"system_db\":\n case \"external_system_db\":\n case \"container_db\":\n case \"external_container_db\":\n case \"component_db\":\n case \"external_component_db\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2).replaceAll(\"height\", c4Shape.height)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2)\n );\n break;\n case \"system_queue\":\n case \"external_system_queue\":\n case \"container_queue\":\n case \"external_container_queue\":\n case \"component_queue\":\n case \"external_component_queue\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"width\", c4Shape.width).replaceAll(\"half\", c4Shape.height / 2)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\", c4Shape.x + c4Shape.width).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.height / 2)\n );\n break;\n }\n let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);\n c4ShapeElem.append(\"text\").attr(\"fill\", fontColor).attr(\"font-family\", c4ShapeFontConf.fontFamily).attr(\"font-size\", c4ShapeFontConf.fontSize - 2).attr(\"font-style\", \"italic\").attr(\"lengthAdjust\", \"spacing\").attr(\"textLength\", c4Shape.typeC4Shape.width).attr(\"x\", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr(\"y\", c4Shape.y + c4Shape.typeC4Shape.Y).text(\"<<\" + c4Shape.typeC4Shape.text + \">>\");\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n let textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontWeight = \"bold\";\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontColor = fontColor;\n if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.techn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.techn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n }\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n textFontConf = conf2.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n return c4Shape.height;\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 9).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\");\n};\nconst insertArrowEnd = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowend\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 18).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\");\n};\nconst insertDynamicNumber = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.append(\"path\").attr(\"fill\", \"black\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 9,2 V 6 L16,4 Z\");\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 0,1 L 6,7 M 6,1 L 0,7\");\n};\nconst getC4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawBoundary: drawBoundary$1,\n drawC4Shape,\n drawRels: drawRels$1,\n drawImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\nlet globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\nparser.yy = db;\nlet conf = {};\nclass Bounds {\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n}\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst c4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst boundaryFont = (cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;\n c4Shape[textType].width = textLimitWidth;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (const line of lines) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(line, textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(line, textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n }\n }\n}\nconst drawBoundary = function(diagram2, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw.drawBoundary(diagram2, boundary, conf);\n};\nconst drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n let Y = 0;\n for (const c4ShapeKey of c4ShapeKeys) {\n Y = 0;\n const c4Shape = c4ShapeArray2[c4ShapeKey];\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n \"«\" + c4Shape.typeC4Shape.text + \"»\",\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\"label\", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape[\"label\"].Y = Y + 8;\n Y = c4Shape[\"label\"].Y + c4Shape[\"label\"].height;\n if (c4Shape.type && c4Shape.type.text !== \"\") {\n c4Shape.type.text = \"[\" + c4Shape.type.text + \"]\";\n let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"type\", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);\n c4Shape[\"type\"].Y = Y + 5;\n Y = c4Shape[\"type\"].Y + c4Shape[\"type\"].height;\n } else if (c4Shape.techn && c4Shape.techn.text !== \"\") {\n c4Shape.techn.text = \"[\" + c4Shape.techn.text + \"]\";\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH(\"techn\", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape[\"techn\"].Y = Y + 5;\n Y = c4Shape[\"techn\"].Y + c4Shape[\"techn\"].height;\n }\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"descr\", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape[\"descr\"].Y = Y + 20;\n Y = c4Shape[\"descr\"].Y + c4Shape[\"descr\"].height;\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape[\"descr\"].textLines * 5;\n }\n rectWidth = rectWidth + conf.c4ShapePadding;\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n currentBounds.insert(c4Shape);\n svgDraw.drawC4Shape(diagram2, c4Shape, conf);\n }\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n};\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nlet getIntersectPoint = function(fromNode, endPoint) {\n let x1 = fromNode.x;\n let y1 = fromNode.y;\n let x2 = endPoint.x;\n let y2 = endPoint.y;\n let fromCenterX = x1 + fromNode.width / 2;\n let fromCenterY = y1 + fromNode.height / 2;\n let dx = Math.abs(x1 - x2);\n let dy = Math.abs(y1 - y2);\n let tanDYX = dy / dx;\n let fromDYX = fromNode.height / fromNode.width;\n let returnPoint = null;\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);\n }\n }\n return returnPoint;\n};\nlet getIntersectPoints = function(fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n};\nconst drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels2) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw.drawRels(diagram2, rels2, conf);\n};\nfunction drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n let currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);\n for (let [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"label\"].Y = Y + 8;\n Y = currentBoundary[\"label\"].Y + currentBoundary[\"label\"].height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"type\"].Y = Y + 5;\n Y = currentBoundary[\"type\"].Y + currentBoundary[\"type\"].height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"descr\"].Y = Y + 20;\n Y = currentBoundary[\"descr\"].Y + currentBoundary[\"descr\"].height;\n }\n if (i == 0 || i % c4BoundaryInRow === 0) {\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundaries = diagObj.db.getBoundarys(parentBoundaryAlias);\n if (nextCurrentBoundaries.length > 0) {\n drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundaries,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\nconst draw = function(_text, id, _version, diagObj) {\n conf = getConfig().c4;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n let db2 = diagObj.db;\n diagObj.db.setWrap(conf.wrap);\n c4ShapeInRow = db2.getC4ShapeInRow();\n c4BoundaryInRow = db2.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n let screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = diagObj.db.getTitle();\n let currentBoundaries = diagObj.db.getBoundarys(\"\");\n drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowEnd(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n let boxHeight = box.stopy - box.starty;\n let height = boxHeight + 2 * conf.diagramMarginY;\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr(\"y\", box.starty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n};\nconst renderer = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary,\n setConf,\n draw\n};\nconst getStyles = (options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: ({ c4, wrap }) => {\n renderer.setConf(c4);\n db.setWrap(wrap);\n }\n};\nexport {\n diagram\n};\n","import { select } from \"d3\";\nimport { K as defaultConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, c as getConfig, l as log, u as utils, v as clear$1, e as common } from \"./mermaid-ad1dc92f.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 3], $V2 = [1, 5], $V3 = [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], $V4 = [2, 2], $V5 = [1, 13], $V6 = [1, 14], $V7 = [1, 15], $V8 = [1, 16], $V9 = [1, 23], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 49], $Ve = [1, 48], $Vf = [1, 29], $Vg = [1, 30], $Vh = [1, 31], $Vi = [1, 32], $Vj = [1, 33], $Vk = [1, 44], $Vl = [1, 46], $Vm = [1, 42], $Vn = [1, 47], $Vo = [1, 43], $Vp = [1, 50], $Vq = [1, 45], $Vr = [1, 51], $Vs = [1, 52], $Vt = [1, 34], $Vu = [1, 35], $Vv = [1, 36], $Vw = [1, 37], $Vx = [1, 57], $Vy = [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], $Vz = [1, 61], $VA = [1, 60], $VB = [1, 62], $VC = [8, 9, 11, 73, 75], $VD = [1, 88], $VE = [1, 93], $VF = [1, 92], $VG = [1, 89], $VH = [1, 85], $VI = [1, 91], $VJ = [1, 87], $VK = [1, 94], $VL = [1, 90], $VM = [1, 95], $VN = [1, 86], $VO = [8, 9, 10, 11, 73, 75], $VP = [8, 9, 10, 11, 44, 73, 75], $VQ = [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], $VR = [8, 9, 11, 42, 58, 73, 75, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VS = [42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], $VT = [1, 121], $VU = [1, 120], $VV = [1, 128], $VW = [1, 142], $VX = [1, 143], $VY = [1, 144], $VZ = [1, 145], $V_ = [1, 130], $V$ = [1, 132], $V01 = [1, 136], $V11 = [1, 137], $V21 = [1, 138], $V31 = [1, 139], $V41 = [1, 140], $V51 = [1, 141], $V61 = [1, 146], $V71 = [1, 147], $V81 = [1, 126], $V91 = [1, 127], $Va1 = [1, 134], $Vb1 = [1, 129], $Vc1 = [1, 133], $Vd1 = [1, 131], $Ve1 = [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], $Vf1 = [1, 149], $Vg1 = [8, 9, 11], $Vh1 = [8, 9, 10, 11, 14, 42, 58, 86, 102, 103, 106, 108, 111, 112, 113], $Vi1 = [1, 169], $Vj1 = [1, 165], $Vk1 = [1, 166], $Vl1 = [1, 170], $Vm1 = [1, 167], $Vn1 = [1, 168], $Vo1 = [75, 113, 116], $Vp1 = [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], $Vq1 = [10, 103], $Vr1 = [31, 47, 49, 51, 53, 55, 60, 62, 64, 65, 67, 69, 113, 114, 115], $Vs1 = [1, 235], $Vt1 = [1, 233], $Vu1 = [1, 237], $Vv1 = [1, 231], $Vw1 = [1, 232], $Vx1 = [1, 234], $Vy1 = [1, 236], $Vz1 = [1, 238], $VA1 = [1, 255], $VB1 = [8, 9, 11, 103], $VC1 = [8, 9, 10, 11, 58, 81, 102, 103, 106, 107, 108, 109];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 2:\n this.$ = [];\n break;\n case 3:\n if (!Array.isArray($$[$0]) || $$[$0].length > 0) {\n $$[$0 - 1].push($$[$0]);\n }\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 176:\n this.$ = $$[$0];\n break;\n case 11:\n yy.setDirection(\"TB\");\n this.$ = \"TB\";\n break;\n case 12:\n yy.setDirection($$[$0 - 1]);\n this.$ = $$[$0 - 1];\n break;\n case 27:\n this.$ = $$[$0 - 1].nodes;\n break;\n case 28:\n case 29:\n case 30:\n case 31:\n case 32:\n this.$ = [];\n break;\n case 33:\n this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);\n break;\n case 34:\n this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);\n break;\n case 35:\n this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);\n break;\n case 37:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 38:\n case 39:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 43:\n yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);\n this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };\n break;\n case 44:\n yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);\n this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };\n break;\n case 45:\n this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };\n break;\n case 46:\n this.$ = { stmt: $$[$0], nodes: $$[$0] };\n break;\n case 47:\n this.$ = [$$[$0]];\n break;\n case 48:\n this.$ = $$[$0 - 4].concat($$[$0]);\n break;\n case 49:\n this.$ = $$[$0];\n break;\n case 50:\n this.$ = $$[$0 - 2];\n yy.setClass($$[$0 - 2], $$[$0]);\n break;\n case 51:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"square\");\n break;\n case 52:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"doublecircle\");\n break;\n case 53:\n this.$ = $$[$0 - 5];\n yy.addVertex($$[$0 - 5], $$[$0 - 2], \"circle\");\n break;\n case 54:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"ellipse\");\n break;\n case 55:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"stadium\");\n break;\n case 56:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"subroutine\");\n break;\n case 57:\n this.$ = $$[$0 - 7];\n yy.addVertex($$[$0 - 7], $$[$0 - 1], \"rect\", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));\n break;\n case 58:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"cylinder\");\n break;\n case 59:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"round\");\n break;\n case 60:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"diamond\");\n break;\n case 61:\n this.$ = $$[$0 - 5];\n yy.addVertex($$[$0 - 5], $$[$0 - 2], \"hexagon\");\n break;\n case 62:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"odd\");\n break;\n case 63:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"trapezoid\");\n break;\n case 64:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"inv_trapezoid\");\n break;\n case 65:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_right\");\n break;\n case 66:\n this.$ = $$[$0 - 3];\n yy.addVertex($$[$0 - 3], $$[$0 - 1], \"lean_left\");\n break;\n case 67:\n this.$ = $$[$0];\n yy.addVertex($$[$0]);\n break;\n case 68:\n $$[$0 - 1].text = $$[$0];\n this.$ = $$[$0 - 1];\n break;\n case 69:\n case 70:\n $$[$0 - 2].text = $$[$0 - 1];\n this.$ = $$[$0 - 2];\n break;\n case 71:\n this.$ = $$[$0];\n break;\n case 72:\n var inf = yy.destructLink($$[$0], $$[$0 - 2]);\n this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length, \"text\": $$[$0 - 1] };\n break;\n case 73:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 74:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 75:\n this.$ = { text: $$[$0], type: \"string\" };\n break;\n case 76:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 77:\n var inf = yy.destructLink($$[$0]);\n this.$ = { \"type\": inf.type, \"stroke\": inf.stroke, \"length\": inf.length };\n break;\n case 78:\n this.$ = $$[$0 - 1];\n break;\n case 79:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 80:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 81:\n this.$ = { text: $$[$0], type: \"string\" };\n break;\n case 82:\n case 97:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 94:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 95:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 96:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 98:\n this.$ = $$[$0 - 4];\n yy.addClass($$[$0 - 2], $$[$0]);\n break;\n case 99:\n this.$ = $$[$0 - 4];\n yy.setClass($$[$0 - 2], $$[$0]);\n break;\n case 100:\n case 108:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 101:\n case 109:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 102:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 103:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 4], $$[$0]);\n break;\n case 104:\n this.$ = $$[$0 - 2];\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 105:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 4], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 4], $$[$0]);\n break;\n case 106:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 107:\n this.$ = $$[$0 - 6];\n yy.setLink($$[$0 - 6], $$[$0 - 4], $$[$0]);\n yy.setTooltip($$[$0 - 6], $$[$0 - 2]);\n break;\n case 110:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 111:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 112:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n break;\n case 113:\n this.$ = $$[$0 - 5];\n yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);\n yy.setTooltip($$[$0 - 5], $$[$0 - 2]);\n break;\n case 114:\n this.$ = $$[$0 - 4];\n yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);\n break;\n case 115:\n this.$ = $$[$0 - 4];\n yy.updateLink([$$[$0 - 2]], $$[$0]);\n break;\n case 116:\n this.$ = $$[$0 - 4];\n yy.updateLink($$[$0 - 2], $$[$0]);\n break;\n case 117:\n this.$ = $$[$0 - 8];\n yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);\n yy.updateLink([$$[$0 - 6]], $$[$0]);\n break;\n case 118:\n this.$ = $$[$0 - 8];\n yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);\n yy.updateLink($$[$0 - 6], $$[$0]);\n break;\n case 119:\n this.$ = $$[$0 - 6];\n yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);\n break;\n case 120:\n this.$ = $$[$0 - 6];\n yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);\n break;\n case 121:\n case 123:\n this.$ = [$$[$0]];\n break;\n case 122:\n case 124:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 126:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 174:\n this.$ = $$[$0];\n break;\n case 175:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n case 177:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n case 178:\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 179:\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 180:\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 181:\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 9: $V0, 10: $V1, 12: $V2 }, { 1: [3] }, o($V3, $V4, { 5: 6 }), { 4: 7, 9: $V0, 10: $V1, 12: $V2 }, { 4: 8, 9: $V0, 10: $V1, 12: $V2 }, { 13: [1, 9], 14: [1, 10] }, { 1: [2, 1], 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($V3, [2, 9]), o($V3, [2, 10]), o($V3, [2, 11]), { 8: [1, 54], 9: [1, 55], 10: $Vx, 15: 53, 18: 56 }, o($Vy, [2, 3]), o($Vy, [2, 4]), o($Vy, [2, 5]), o($Vy, [2, 6]), o($Vy, [2, 7]), o($Vy, [2, 8]), { 8: $Vz, 9: $VA, 11: $VB, 21: 58, 39: 59, 70: 63, 73: [1, 64], 75: [1, 65] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 66 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 67 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 68 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 69 }, { 8: $Vz, 9: $VA, 11: $VB, 21: 70 }, { 8: $Vz, 9: $VA, 10: [1, 71], 11: $VB, 21: 72 }, o($Vy, [2, 36]), { 35: [1, 73] }, { 37: [1, 74] }, o($Vy, [2, 39]), o($VC, [2, 46], { 18: 75, 10: $Vx }), { 10: [1, 76] }, { 10: [1, 77] }, { 10: [1, 78] }, { 10: [1, 79] }, { 14: $VD, 42: $VE, 58: $VF, 77: [1, 83], 86: $VG, 92: [1, 80], 94: [1, 81], 98: 82, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, o($Vy, [2, 178]), o($Vy, [2, 179]), o($Vy, [2, 180]), o($Vy, [2, 181]), o($VO, [2, 47]), o($VO, [2, 49], { 44: [1, 96] }), o($VP, [2, 67], { 110: 109, 29: [1, 97], 42: $Vd, 46: [1, 98], 48: [1, 99], 50: [1, 100], 52: [1, 101], 54: [1, 102], 56: [1, 103], 58: $Ve, 61: [1, 104], 63: [1, 105], 65: [1, 106], 66: [1, 107], 68: [1, 108], 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($VQ, [2, 174]), o($VQ, [2, 135]), o($VQ, [2, 136]), o($VQ, [2, 137]), o($VQ, [2, 138]), o($VQ, [2, 139]), o($VQ, [2, 140]), o($VQ, [2, 141]), o($VQ, [2, 142]), o($VQ, [2, 143]), o($VQ, [2, 144]), o($VQ, [2, 145]), o($V3, [2, 12]), o($V3, [2, 18]), o($V3, [2, 19]), { 9: [1, 110] }, o($VR, [2, 26], { 18: 111, 10: $Vx }), o($Vy, [2, 27]), { 40: 112, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vy, [2, 40]), o($Vy, [2, 41]), o($Vy, [2, 42]), o($VS, [2, 71], { 71: 113, 60: [1, 115], 72: [1, 114] }), { 74: 116, 76: 117, 77: [1, 118], 78: [1, 119], 113: $VT, 116: $VU }, o([42, 58, 60, 72, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 77]), o($Vy, [2, 28]), o($Vy, [2, 29]), o($Vy, [2, 30]), o($Vy, [2, 31]), o($Vy, [2, 32]), { 10: $VV, 12: $VW, 14: $VX, 27: $VY, 28: 122, 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 77: [1, 124], 78: [1, 125], 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 123, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Ve1, $V4, { 5: 148 }), o($Vy, [2, 37]), o($Vy, [2, 38]), o($VC, [2, 45], { 42: $Vf1 }), { 42: $Vd, 45: 150, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 99: [1, 151], 100: 152, 102: [1, 153] }, { 42: $Vd, 45: 154, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 42: $Vd, 45: 155, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 100], { 10: [1, 156], 93: [1, 157] }), { 77: [1, 158] }, o($Vg1, [2, 108], { 117: 160, 10: [1, 159], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 110], { 10: [1, 161] }), o($Vh1, [2, 176]), o($Vh1, [2, 163]), o($Vh1, [2, 164]), o($Vh1, [2, 165]), o($Vh1, [2, 166]), o($Vh1, [2, 167]), o($Vh1, [2, 168]), o($Vh1, [2, 169]), o($Vh1, [2, 170]), o($Vh1, [2, 171]), o($Vh1, [2, 172]), o($Vh1, [2, 173]), { 42: $Vd, 45: 162, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 30: 163, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 171, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 173, 48: [1, 172], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 174, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 175, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 176, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 106: [1, 177] }, { 30: 178, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 179, 63: [1, 180], 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 181, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 182, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 183, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VQ, [2, 175]), o($V3, [2, 20]), o($VR, [2, 25]), o($VC, [2, 43], { 18: 184, 10: $Vx }), o($VS, [2, 68], { 10: [1, 185] }), { 10: [1, 186] }, { 30: 187, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 75: [1, 188], 76: 189, 113: $VT, 116: $VU }, o($Vo1, [2, 73]), o($Vo1, [2, 75]), o($Vo1, [2, 76]), o($Vo1, [2, 161]), o($Vo1, [2, 162]), { 8: $Vz, 9: $VA, 10: $VV, 11: $VB, 12: $VW, 14: $VX, 21: 191, 27: $VY, 29: [1, 190], 32: $VZ, 42: $V_, 58: $V$, 73: $V01, 80: 135, 81: $V11, 82: $V21, 83: $V31, 84: $V41, 85: $V51, 86: $V61, 87: $V71, 88: 192, 102: $V81, 106: $V91, 108: $Va1, 111: $Vb1, 112: $Vc1, 113: $Vd1 }, o($Vp1, [2, 94]), o($Vp1, [2, 96]), o($Vp1, [2, 97]), o($Vp1, [2, 150]), o($Vp1, [2, 151]), o($Vp1, [2, 152]), o($Vp1, [2, 153]), o($Vp1, [2, 154]), o($Vp1, [2, 155]), o($Vp1, [2, 156]), o($Vp1, [2, 157]), o($Vp1, [2, 158]), o($Vp1, [2, 159]), o($Vp1, [2, 160]), o($Vp1, [2, 83]), o($Vp1, [2, 84]), o($Vp1, [2, 85]), o($Vp1, [2, 86]), o($Vp1, [2, 87]), o($Vp1, [2, 88]), o($Vp1, [2, 89]), o($Vp1, [2, 90]), o($Vp1, [2, 91]), o($Vp1, [2, 92]), o($Vp1, [2, 93]), { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 193], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vx, 18: 194 }, { 10: [1, 195], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 196] }, { 10: [1, 197], 103: [1, 198] }, o($Vq1, [2, 121]), { 10: [1, 199], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: [1, 200], 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 109, 111: $Vq, 112: $Vr, 113: $Vs }, { 77: [1, 201] }, o($Vg1, [2, 102], { 10: [1, 202] }), o($Vg1, [2, 104], { 10: [1, 203] }), { 77: [1, 204] }, o($Vh1, [2, 177]), { 77: [1, 205], 95: [1, 206] }, o($VO, [2, 50], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), { 31: [1, 207], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Vr1, [2, 79]), o($Vr1, [2, 81]), o($Vr1, [2, 82]), o($Vr1, [2, 146]), o($Vr1, [2, 147]), o($Vr1, [2, 148]), o($Vr1, [2, 149]), { 47: [1, 209], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 210, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 49: [1, 211], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 51: [1, 212], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 53: [1, 213], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 55: [1, 214], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 58: [1, 215] }, { 62: [1, 216], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 64: [1, 217], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 30: 218, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 31: [1, 219], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 220], 69: [1, 221], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 65: $Vi1, 67: [1, 223], 69: [1, 222], 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VC, [2, 44], { 42: $Vf1 }), o($VS, [2, 70]), o($VS, [2, 69]), { 60: [1, 224], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VS, [2, 72]), o($Vo1, [2, 74]), { 30: 225, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($Ve1, $V4, { 5: 226 }), o($Vp1, [2, 95]), o($Vy, [2, 35]), { 41: 227, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 228, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 239, 101: [1, 240], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 241, 101: [1, 242], 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 102: [1, 243] }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 244, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 42: $Vd, 45: 245, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs }, o($Vg1, [2, 101]), { 77: [1, 246] }, { 77: [1, 247], 95: [1, 248] }, o($Vg1, [2, 109]), o($Vg1, [2, 111], { 10: [1, 249] }), o($Vg1, [2, 112]), o($VP, [2, 51]), o($Vr1, [2, 80]), o($VP, [2, 52]), { 49: [1, 250], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 59]), o($VP, [2, 54]), o($VP, [2, 55]), o($VP, [2, 56]), { 106: [1, 251] }, o($VP, [2, 58]), o($VP, [2, 60]), { 64: [1, 252], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 62]), o($VP, [2, 63]), o($VP, [2, 65]), o($VP, [2, 64]), o($VP, [2, 66]), o([10, 42, 58, 86, 99, 102, 103, 106, 108, 111, 112, 113], [2, 78]), { 31: [1, 253], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 254], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, o($VO, [2, 48]), o($Vg1, [2, 114], { 103: $VA1 }), o($VB1, [2, 123], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($VC1, [2, 125]), o($VC1, [2, 127]), o($VC1, [2, 128]), o($VC1, [2, 129]), o($VC1, [2, 130]), o($VC1, [2, 131]), o($VC1, [2, 132]), o($VC1, [2, 133]), o($VC1, [2, 134]), o($Vg1, [2, 115], { 103: $VA1 }), { 10: [1, 257] }, o($Vg1, [2, 116], { 103: $VA1 }), { 10: [1, 258] }, o($Vq1, [2, 122]), o($Vg1, [2, 98], { 103: $VA1 }), o($Vg1, [2, 99], { 110: 109, 42: $Vd, 58: $Ve, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 111: $Vq, 112: $Vr, 113: $Vs }), o($Vg1, [2, 103]), o($Vg1, [2, 105], { 10: [1, 259] }), o($Vg1, [2, 106]), { 95: [1, 260] }, { 49: [1, 261] }, { 60: [1, 262] }, { 64: [1, 263] }, { 8: $Vz, 9: $VA, 11: $VB, 21: 264 }, o($Vy, [2, 34]), { 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 104: 265, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VC1, [2, 126]), { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 266, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 14: $VD, 42: $VE, 58: $VF, 86: $VG, 98: 267, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN, 117: 84 }, { 95: [1, 268] }, o($Vg1, [2, 113]), o($VP, [2, 53]), { 30: 269, 65: $Vi1, 77: $Vj1, 78: $Vk1, 79: 164, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, o($VP, [2, 61]), o($Ve1, $V4, { 5: 270 }), o($VB1, [2, 124], { 105: 256, 10: $Vs1, 58: $Vt1, 81: $Vu1, 102: $Vv1, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }), o($Vg1, [2, 119], { 117: 160, 10: [1, 271], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 120], { 117: 160, 10: [1, 272], 14: $VD, 42: $VE, 58: $VF, 86: $VG, 102: $VH, 103: $VI, 106: $VJ, 108: $VK, 111: $VL, 112: $VM, 113: $VN }), o($Vg1, [2, 107]), { 31: [1, 273], 65: $Vi1, 79: 208, 113: $Vl1, 114: $Vm1, 115: $Vn1 }, { 6: 11, 7: 12, 8: $V5, 9: $V6, 10: $V7, 11: $V8, 20: 17, 22: 18, 23: 19, 24: 20, 25: 21, 26: 22, 27: $V9, 32: [1, 274], 33: 24, 34: $Va, 36: $Vb, 38: $Vc, 40: 28, 41: 38, 42: $Vd, 43: 39, 45: 40, 58: $Ve, 81: $Vf, 82: $Vg, 83: $Vh, 84: $Vi, 85: $Vj, 86: $Vk, 99: $Vl, 102: $Vm, 103: $Vn, 106: $Vo, 108: $Vp, 110: 41, 111: $Vq, 112: $Vr, 113: $Vs, 118: $Vt, 119: $Vu, 120: $Vv, 121: $Vw }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 275, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, { 10: $Vs1, 58: $Vt1, 81: $Vu1, 89: 276, 102: $Vv1, 104: 229, 105: 230, 106: $Vw1, 107: $Vx1, 108: $Vy1, 109: $Vz1 }, o($VP, [2, 57]), o($Vy, [2, 33]), o($Vg1, [2, 117], { 103: $VA1 }), o($Vg1, [2, 118], { 103: $VA1 })],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex2() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex2();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex2() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 34;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 36;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n this.begin(\"callbackname\");\n break;\n case 8:\n this.popState();\n break;\n case 9:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 10:\n return 92;\n case 11:\n this.popState();\n break;\n case 12:\n return 93;\n case 13:\n return \"MD_STR\";\n case 14:\n this.popState();\n break;\n case 15:\n this.begin(\"md_string\");\n break;\n case 16:\n return \"STR\";\n case 17:\n this.popState();\n break;\n case 18:\n this.pushState(\"string\");\n break;\n case 19:\n return 81;\n case 20:\n return 99;\n case 21:\n return 82;\n case 22:\n return 101;\n case 23:\n return 83;\n case 24:\n return 84;\n case 25:\n return 94;\n case 26:\n this.begin(\"click\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return 85;\n case 29:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 12;\n case 30:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 12;\n case 31:\n if (yy.lex.firstGraph()) {\n this.begin(\"dir\");\n }\n return 12;\n case 32:\n return 27;\n case 33:\n return 32;\n case 34:\n return 95;\n case 35:\n return 95;\n case 36:\n return 95;\n case 37:\n return 95;\n case 38:\n this.popState();\n return 13;\n case 39:\n this.popState();\n return 14;\n case 40:\n this.popState();\n return 14;\n case 41:\n this.popState();\n return 14;\n case 42:\n this.popState();\n return 14;\n case 43:\n this.popState();\n return 14;\n case 44:\n this.popState();\n return 14;\n case 45:\n this.popState();\n return 14;\n case 46:\n this.popState();\n return 14;\n case 47:\n this.popState();\n return 14;\n case 48:\n this.popState();\n return 14;\n case 49:\n return 118;\n case 50:\n return 119;\n case 51:\n return 120;\n case 52:\n return 121;\n case 53:\n return 102;\n case 54:\n return 108;\n case 55:\n return 44;\n case 56:\n return 58;\n case 57:\n return 42;\n case 58:\n return 8;\n case 59:\n return 103;\n case 60:\n return 112;\n case 61:\n this.popState();\n return 75;\n case 62:\n this.pushState(\"edgeText\");\n return 73;\n case 63:\n return 116;\n case 64:\n this.popState();\n return 75;\n case 65:\n this.pushState(\"thickEdgeText\");\n return 73;\n case 66:\n return 116;\n case 67:\n this.popState();\n return 75;\n case 68:\n this.pushState(\"dottedEdgeText\");\n return 73;\n case 69:\n return 116;\n case 70:\n return 75;\n case 71:\n this.popState();\n return 51;\n case 72:\n return \"TEXT\";\n case 73:\n this.pushState(\"ellipseText\");\n return 50;\n case 74:\n this.popState();\n return 53;\n case 75:\n this.pushState(\"text\");\n return 52;\n case 76:\n this.popState();\n return 55;\n case 77:\n this.pushState(\"text\");\n return 54;\n case 78:\n return 56;\n case 79:\n this.pushState(\"text\");\n return 65;\n case 80:\n this.popState();\n return 62;\n case 81:\n this.pushState(\"text\");\n return 61;\n case 82:\n this.popState();\n return 47;\n case 83:\n this.pushState(\"text\");\n return 46;\n case 84:\n this.popState();\n return 67;\n case 85:\n this.popState();\n return 69;\n case 86:\n return 114;\n case 87:\n this.pushState(\"trapText\");\n return 66;\n case 88:\n this.pushState(\"trapText\");\n return 68;\n case 89:\n return 115;\n case 90:\n return 65;\n case 91:\n return 87;\n case 92:\n return \"SEP\";\n case 93:\n return 86;\n case 94:\n return 112;\n case 95:\n return 108;\n case 96:\n return 42;\n case 97:\n return 106;\n case 98:\n return 111;\n case 99:\n return 113;\n case 100:\n this.popState();\n return 60;\n case 101:\n this.pushState(\"text\");\n return 60;\n case 102:\n this.popState();\n return 49;\n case 103:\n this.pushState(\"text\");\n return 48;\n case 104:\n this.popState();\n return 31;\n case 105:\n this.pushState(\"text\");\n return 29;\n case 106:\n this.popState();\n return 64;\n case 107:\n this.pushState(\"text\");\n return 63;\n case 108:\n return \"TEXT\";\n case 109:\n return \"QUOTE\";\n case 110:\n return 9;\n case 111:\n return 10;\n case 112:\n return 11;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:call[\\s]+)/, /^(?:\\([\\s]*\\))/, /^(?:\\()/, /^(?:[^(]*)/, /^(?:\\))/, /^(?:[^)]*)/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"][`])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[\"])/, /^(?:style\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\b)/, /^(?:class\\b)/, /^(?:href[\\s])/, /^(?:click[\\s]+)/, /^(?:[\\s\\n])/, /^(?:[^\\s\\n]*)/, /^(?:flowchart-elk\\b)/, /^(?:graph\\b)/, /^(?:flowchart\\b)/, /^(?:subgraph\\b)/, /^(?:end\\b\\s*)/, /^(?:_self\\b)/, /^(?:_blank\\b)/, /^(?:_parent\\b)/, /^(?:_top\\b)/, /^(?:(\\r?\\n)*\\s*\\n)/, /^(?:\\s*LR\\b)/, /^(?:\\s*RL\\b)/, /^(?:\\s*TB\\b)/, /^(?:\\s*BT\\b)/, /^(?:\\s*TD\\b)/, /^(?:\\s*BR\\b)/, /^(?:\\s*<)/, /^(?:\\s*>)/, /^(?:\\s*\\^)/, /^(?:\\s*v\\b)/, /^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\\*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:[^-]|-(?!-)+)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:[^=]|=(?!))/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[^\\.]|\\.(?!))/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:[-/\\)][\\)])/, /^(?:[^\\(\\)\\[\\]\\{\\}]|!\\)+)/, /^(?:\\(-)/, /^(?:\\]\\))/, /^(?:\\(\\[)/, /^(?:\\]\\])/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:>)/, /^(?:\\)\\])/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\(\\(\\()/, /^(?:[\\\\(?=\\])][\\]])/, /^(?:\\/(?=\\])\\])/, /^(?:\\/(?!\\])|\\\\(?!\\])|[^\\\\\\[\\]\\(\\)\\{\\}\\/]+)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:<)/, /^(?:>)/, /^(?:\\^)/, /^(?:\\\\\\|)/, /^(?:v\\b)/, /^(?:\\*)/, /^(?:#)/, /^(?:&)/, /^(?:([A-Za-z0-9!\"\\#$%&'*+\\.`?\\\\_\\/]|-(?=[^\\>\\-\\.])|(?!))+)/, /^(?:-)/, /^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/, /^(?:\\|)/, /^(?:\\|)/, /^(?:\\))/, /^(?:\\()/, /^(?:\\])/, /^(?:\\[)/, /^(?:(\\}))/, /^(?:\\{)/, /^(?:[^\\[\\]\\(\\)\\{\\}\\|\\\"]+)/, /^(?:\")/, /^(?:(\\r?\\n)+)/, /^(?:\\s)/, /^(?:$)/],\n conditions: { \"callbackargs\": { \"rules\": [11, 12, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"callbackname\": { \"rules\": [8, 9, 10, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"href\": { \"rules\": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"click\": { \"rules\": [15, 18, 27, 28, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"dottedEdgeText\": { \"rules\": [15, 18, 67, 69, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"thickEdgeText\": { \"rules\": [15, 18, 64, 66, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"edgeText\": { \"rules\": [15, 18, 61, 63, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"trapText\": { \"rules\": [15, 18, 70, 73, 75, 77, 81, 83, 84, 85, 86, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"ellipseText\": { \"rules\": [15, 18, 70, 71, 72, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"text\": { \"rules\": [15, 18, 70, 73, 74, 75, 76, 77, 80, 81, 82, 83, 87, 88, 100, 101, 102, 103, 104, 105, 106, 107, 108], \"inclusive\": false }, \"vertex\": { \"rules\": [15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"dir\": { \"rules\": [15, 18, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [5, 6, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"acc_title\": { \"rules\": [1, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"md_string\": { \"rules\": [13, 14, 15, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"string\": { \"rules\": [15, 16, 17, 18, 70, 73, 75, 77, 81, 83, 87, 88, 101, 103, 105, 107], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 70, 73, 75, 77, 78, 79, 81, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 103, 105, 107, 109, 110, 111, 112], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst MERMAID_DOM_ID_PREFIX = \"flowchart-\";\nlet vertexCounter = 0;\nlet config = getConfig();\nlet vertices = {};\nlet edges = [];\nlet classes = {};\nlet subGraphs = [];\nlet subGraphLookup = {};\nlet tooltips = {};\nlet subCount = 0;\nlet firstGraphFlag = true;\nlet direction;\nlet version;\nlet funs = [];\nconst sanitizeText = (txt) => common.sanitizeText(txt, config);\nconst lookUpDomId = function(id) {\n const vertexKeys = Object.keys(vertices);\n for (const vertexKey of vertexKeys) {\n if (vertices[vertexKey].id === id) {\n return vertices[vertexKey].domId;\n }\n }\n return id;\n};\nconst addVertex = function(_id, textObj, type, style, classes2, dir, props = {}) {\n let txt;\n let id = _id;\n if (id === void 0) {\n return;\n }\n if (id.trim().length === 0) {\n return;\n }\n if (vertices[id] === void 0) {\n vertices[id] = {\n id,\n labelType: \"text\",\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + vertexCounter,\n styles: [],\n classes: []\n };\n }\n vertexCounter++;\n if (textObj !== void 0) {\n config = getConfig();\n txt = sanitizeText(textObj.text.trim());\n vertices[id].labelType = textObj.type;\n if (txt[0] === '\"' && txt[txt.length - 1] === '\"') {\n txt = txt.substring(1, txt.length - 1);\n }\n vertices[id].text = txt;\n } else {\n if (vertices[id].text === void 0) {\n vertices[id].text = _id;\n }\n }\n if (type !== void 0) {\n vertices[id].type = type;\n }\n if (style !== void 0 && style !== null) {\n style.forEach(function(s) {\n vertices[id].styles.push(s);\n });\n }\n if (classes2 !== void 0 && classes2 !== null) {\n classes2.forEach(function(s) {\n vertices[id].classes.push(s);\n });\n }\n if (dir !== void 0) {\n vertices[id].dir = dir;\n }\n if (vertices[id].props === void 0) {\n vertices[id].props = props;\n } else if (props !== void 0) {\n Object.assign(vertices[id].props, props);\n }\n};\nconst addSingleLink = function(_start, _end, type) {\n let start = _start;\n let end = _end;\n const edge = { start, end, type: void 0, text: \"\", labelType: \"text\" };\n log.info(\"abc78 Got edge...\", edge);\n const linkTextObj = type.text;\n if (linkTextObj !== void 0) {\n edge.text = sanitizeText(linkTextObj.text.trim());\n if (edge.text[0] === '\"' && edge.text[edge.text.length - 1] === '\"') {\n edge.text = edge.text.substring(1, edge.text.length - 1);\n }\n edge.labelType = linkTextObj.type;\n }\n if (type !== void 0) {\n edge.type = type.type;\n edge.stroke = type.stroke;\n edge.length = type.length;\n }\n if ((edge == null ? void 0 : edge.length) > 10) {\n edge.length = 10;\n }\n if (edges.length < (config.maxEdges ?? 500)) {\n log.info(\"abc78 pushing edge...\");\n edges.push(edge);\n } else {\n throw new Error(\n `Edge limit exceeded. ${edges.length} edges found, but the limit is ${config.maxEdges}.\n\nInitialize mermaid with maxEdges set to a higher number to allow more edges.\nYou cannot set this config via configuration inside the diagram as it is a secure config.\nYou have to call mermaid.initialize.`\n );\n }\n};\nconst addLink = function(_start, _end, type) {\n log.info(\"addLink (abc78)\", _start, _end, type);\n let i, j;\n for (i = 0; i < _start.length; i++) {\n for (j = 0; j < _end.length; j++) {\n addSingleLink(_start[i], _end[j], type);\n }\n }\n};\nconst updateLinkInterpolate = function(positions, interp) {\n positions.forEach(function(pos) {\n if (pos === \"default\") {\n edges.defaultInterpolate = interp;\n } else {\n edges[pos].interpolate = interp;\n }\n });\n};\nconst updateLink = function(positions, style) {\n positions.forEach(function(pos) {\n if (pos >= edges.length) {\n throw new Error(\n `The index ${pos} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${edges.length - 1}. (Help: Ensure that the index is within the range of existing edges.)`\n );\n }\n if (pos === \"default\") {\n edges.defaultStyle = style;\n } else {\n if (utils.isSubstringInArray(\"fill\", style) === -1) {\n style.push(\"fill:none\");\n }\n edges[pos].style = style;\n }\n });\n};\nconst addClass = function(ids, style) {\n ids.split(\",\").forEach(function(id) {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n if (style !== void 0 && style !== null) {\n style.forEach(function(s) {\n if (s.match(\"color\")) {\n const newStyle = s.replace(\"fill\", \"bgFill\").replace(\"color\", \"fill\");\n classes[id].textStyles.push(newStyle);\n }\n classes[id].styles.push(s);\n });\n }\n });\n};\nconst setDirection = function(dir) {\n direction = dir;\n if (direction.match(/.*/)) {\n direction = \"LR\";\n }\n if (direction.match(/.*v/)) {\n direction = \"TB\";\n }\n if (direction === \"TD\") {\n direction = \"TB\";\n }\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (vertices[id] !== void 0) {\n vertices[id].classes.push(className);\n }\n if (subGraphLookup[id] !== void 0) {\n subGraphLookup[id].classes.push(className);\n }\n });\n};\nconst setTooltip = function(ids, tooltip) {\n ids.split(\",\").forEach(function(id) {\n if (tooltip !== void 0) {\n tooltips[version === \"gen-1\" ? lookUpDomId(id) : id] = sanitizeText(tooltip);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n let domId = lookUpDomId(id);\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n if (vertices[id] !== void 0) {\n vertices[id].haveCallback = true;\n funs.push(function() {\n const elem = document.querySelector(`[id=\"${domId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n function() {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\nconst setLink = function(ids, linkStr, target) {\n ids.split(\",\").forEach(function(id) {\n if (vertices[id] !== void 0) {\n vertices[id].link = utils.formatUrl(linkStr, config);\n vertices[id].linkTarget = target;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst getTooltip = function(id) {\n if (tooltips.hasOwnProperty(id)) {\n return tooltips[id];\n }\n return void 0;\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst getDirection = function() {\n return direction.trim();\n};\nconst getVertices = function() {\n return vertices;\n};\nconst getEdges = function() {\n return edges;\n};\nconst getClasses = function() {\n return classes;\n};\nconst setupToolTips = function(element) {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", function() {\n const el = select(this);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.bottom + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
\"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", function() {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(this);\n el.classed(\"hover\", false);\n });\n};\nfuns.push(setupToolTips);\nconst clear = function(ver = \"gen-1\") {\n vertices = {};\n classes = {};\n edges = [];\n funs = [setupToolTips];\n subGraphs = [];\n subGraphLookup = {};\n subCount = 0;\n tooltips = {};\n firstGraphFlag = true;\n version = ver;\n config = getConfig();\n clear$1();\n};\nconst setGen = (ver) => {\n version = ver || \"gen-2\";\n};\nconst defaultStyle = function() {\n return \"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;\";\n};\nconst addSubGraph = function(_id, list, _title) {\n let id = _id.text.trim();\n let title = _title.text;\n if (_id === _title && _title.text.match(/\\s/)) {\n id = void 0;\n }\n function uniq(a) {\n const prims = { boolean: {}, number: {}, string: {} };\n const objs = [];\n let dir2;\n const nodeList2 = a.filter(function(item) {\n const type = typeof item;\n if (item.stmt && item.stmt === \"dir\") {\n dir2 = item.value;\n return false;\n }\n if (item.trim() === \"\") {\n return false;\n }\n if (type in prims) {\n return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true;\n } else {\n return objs.includes(item) ? false : objs.push(item);\n }\n });\n return { nodeList: nodeList2, dir: dir2 };\n }\n let nodeList = [];\n const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));\n nodeList = nl;\n if (version === \"gen-1\") {\n for (let i = 0; i < nodeList.length; i++) {\n nodeList[i] = lookUpDomId(nodeList[i]);\n }\n }\n id = id || \"subGraph\" + subCount;\n title = title || \"\";\n title = sanitizeText(title);\n subCount = subCount + 1;\n const subGraph = {\n id,\n nodes: nodeList,\n title: title.trim(),\n classes: [],\n dir,\n labelType: _title.type\n };\n log.info(\"Adding\", subGraph.id, subGraph.nodes, subGraph.dir);\n subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;\n subGraphs.push(subGraph);\n subGraphLookup[id] = subGraph;\n return id;\n};\nconst getPosForId = function(id) {\n for (const [i, subGraph] of subGraphs.entries()) {\n if (subGraph.id === id) {\n return i;\n }\n }\n return -1;\n};\nlet secCount = -1;\nconst posCrossRef = [];\nconst indexNodes2 = function(id, pos) {\n const nodes = subGraphs[pos].nodes;\n secCount = secCount + 1;\n if (secCount > 2e3) {\n return;\n }\n posCrossRef[secCount] = pos;\n if (subGraphs[pos].id === id) {\n return {\n result: true,\n count: 0\n };\n }\n let count = 0;\n let posCount = 1;\n while (count < nodes.length) {\n const childPos = getPosForId(nodes[count]);\n if (childPos >= 0) {\n const res = indexNodes2(id, childPos);\n if (res.result) {\n return {\n result: true,\n count: posCount + res.count\n };\n } else {\n posCount = posCount + res.count;\n }\n }\n count = count + 1;\n }\n return {\n result: false,\n count: posCount\n };\n};\nconst getDepthFirstPos = function(pos) {\n return posCrossRef[pos];\n};\nconst indexNodes = function() {\n secCount = -1;\n if (subGraphs.length > 0) {\n indexNodes2(\"none\", subGraphs.length - 1);\n }\n};\nconst getSubGraphs = function() {\n return subGraphs;\n};\nconst firstGraph = () => {\n if (firstGraphFlag) {\n firstGraphFlag = false;\n return true;\n }\n return false;\n};\nconst destructStartLink = (_str) => {\n let str = _str.trim();\n let type = \"arrow_open\";\n switch (str[0]) {\n case \"<\":\n type = \"arrow_point\";\n str = str.slice(1);\n break;\n case \"x\":\n type = \"arrow_cross\";\n str = str.slice(1);\n break;\n case \"o\":\n type = \"arrow_circle\";\n str = str.slice(1);\n break;\n }\n let stroke = \"normal\";\n if (str.includes(\"=\")) {\n stroke = \"thick\";\n }\n if (str.includes(\".\")) {\n stroke = \"dotted\";\n }\n return { type, stroke };\n};\nconst countChar = (char, str) => {\n const length = str.length;\n let count = 0;\n for (let i = 0; i < length; ++i) {\n if (str[i] === char) {\n ++count;\n }\n }\n return count;\n};\nconst destructEndLink = (_str) => {\n const str = _str.trim();\n let line = str.slice(0, -1);\n let type = \"arrow_open\";\n switch (str.slice(-1)) {\n case \"x\":\n type = \"arrow_cross\";\n if (str[0] === \"x\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n case \">\":\n type = \"arrow_point\";\n if (str[0] === \"<\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n case \"o\":\n type = \"arrow_circle\";\n if (str[0] === \"o\") {\n type = \"double_\" + type;\n line = line.slice(1);\n }\n break;\n }\n let stroke = \"normal\";\n let length = line.length - 1;\n if (line[0] === \"=\") {\n stroke = \"thick\";\n }\n if (line[0] === \"~\") {\n stroke = \"invisible\";\n }\n let dots = countChar(\".\", line);\n if (dots) {\n stroke = \"dotted\";\n length = dots;\n }\n return { type, stroke, length };\n};\nconst destructLink = (_str, _startStr) => {\n const info = destructEndLink(_str);\n let startInfo;\n if (_startStr) {\n startInfo = destructStartLink(_startStr);\n if (startInfo.stroke !== info.stroke) {\n return { type: \"INVALID\", stroke: \"INVALID\" };\n }\n if (startInfo.type === \"arrow_open\") {\n startInfo.type = info.type;\n } else {\n if (startInfo.type !== info.type) {\n return { type: \"INVALID\", stroke: \"INVALID\" };\n }\n startInfo.type = \"double_\" + startInfo.type;\n }\n if (startInfo.type === \"double_arrow\") {\n startInfo.type = \"double_arrow_point\";\n }\n startInfo.length = info.length;\n return startInfo;\n }\n return info;\n};\nconst exists = (allSgs, _id) => {\n let res = false;\n allSgs.forEach((sg) => {\n const pos = sg.nodes.indexOf(_id);\n if (pos >= 0) {\n res = true;\n }\n });\n return res;\n};\nconst makeUniq = (sg, allSubgraphs) => {\n const res = [];\n sg.nodes.forEach((_id, pos) => {\n if (!exists(allSubgraphs, _id)) {\n res.push(sg.nodes[pos]);\n }\n });\n return { nodes: res };\n};\nconst lex = {\n firstGraph\n};\nconst flowDb = {\n defaultConfig: () => defaultConfig.flowchart,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n addVertex,\n lookUpDomId,\n addLink,\n updateLinkInterpolate,\n updateLink,\n addClass,\n setDirection,\n setClass,\n setTooltip,\n getTooltip,\n setClickEvent,\n setLink,\n bindFunctions,\n getDirection,\n getVertices,\n getEdges,\n getClasses,\n clear,\n setGen,\n defaultStyle,\n addSubGraph,\n getDepthFirstPos,\n indexNodes,\n getSubGraphs,\n destructLink,\n lex,\n exists,\n makeUniq,\n setDiagramTitle,\n getDiagramTitle\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addClass,\n addLink,\n addSingleLink,\n addSubGraph,\n addVertex,\n bindFunctions,\n clear,\n default: flowDb,\n defaultStyle,\n destructLink,\n firstGraph,\n getClasses,\n getDepthFirstPos,\n getDirection,\n getEdges,\n getSubGraphs,\n getTooltip,\n getVertices,\n indexNodes,\n lex,\n lookUpDomId,\n setClass,\n setClickEvent,\n setDirection,\n setGen,\n setLink,\n updateLink,\n updateLinkInterpolate\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n db as d,\n flowDb as f,\n parser$1 as p\n};\n","import { l as log, M as decodeEntities, d as sanitizeText, F as getConfig } from \"./mermaid-ad1dc92f.js\";\nimport { fromMarkdown } from \"mdast-util-from-markdown\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown) {\n const withoutMultipleNewlines = markdown.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n return withoutExtraSpaces;\n}\nfunction markdownToLines(markdown) {\n const preprocessedMarkdown = preprocessMarkdown(markdown);\n const { children } = fromMarkdown(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.value.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"emphasis\") {\n node.children.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n }\n }\n children.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.children.forEach((contentNode) => {\n processNode(contentNode);\n });\n }\n });\n return lines;\n}\nfunction markdownToHTML(markdown) {\n const { children } = fromMarkdown(markdown);\n function output(node) {\n if (node.type === \"text\") {\n return node.value.replace(/\\n/g, \"
\");\n } else if (node.type === \"strong\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"emphasis\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

${node.children.map(output).join(\"\")}

`;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n return children.map(output).join(\"\");\n}\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n sanitizeText(\n `\n \" + label + \"\",\n getConfig()\n )\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"max-width\", width + \"px\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n fo.style(\"width\", bbox.width);\n fo.style(\"height\", bbox.height);\n return fo.node();\n}\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n var _a;\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width;\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", -padding).attr(\"y\", -padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"emphasis\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\nconst createText = (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}) => {\n log.info(\"createText\", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text);\n const node = {\n isNode,\n label: decodeEntities(htmlText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n // cspell: disable-line\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const structuredText = markdownToLines(text);\n const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);\n return svgLabel;\n }\n};\nexport {\n createText as a,\n computeDimensionOfText as c\n};\n","import { l as log, c as getConfig, m as evaluate, M as decodeEntities, d as sanitizeText, u as utils } from \"./mermaid-ad1dc92f.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { a as createText } from \"./createText-d213de94.js\";\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\nconst extension = (elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).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\");\n};\nconst composition = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).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\");\n};\nconst aggregation = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).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\");\n};\nconst dependency = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).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\");\n};\nconst lollipop = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).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);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).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);\n};\nconst point = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).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\");\n};\nconst circle$1 = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).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\");\n};\nconst cross = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).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\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).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\");\n};\nconst barb = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-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\");\n};\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle: circle$1,\n cross,\n barb\n};\nconst insertMarkers$1 = insertMarkers;\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlLabel(node, config) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n sanitizeText(\n '\" + label + \"\",\n config\n )\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n const config = getConfig();\n if (evaluate(config.flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
\");\n log.debug(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n // cspell: disable-line\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node, config);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\nconst createLabel$1 = createLabel;\nconst labelHelper = async (parent, node, _classes, isNode) => {\n let classes;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);\n if (!_classes) {\n classes = \"node default\";\n } else {\n classes = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {\n useHtmlLabels,\n width: node.width || getConfig().flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n });\n } else {\n text = textNode.appendChild(\n createLabel$1(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n};\nconst updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\nfunction intersectCircle(node, rx, point2) {\n return intersectEllipse(node, rx, rx, point2);\n}\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect2 = intersectLine(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect2) {\n intersections.push(intersect2);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\nconst intersectRect = (node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n};\nconst intersectRect$1 = intersectRect;\nconst intersect = {\n node: intersectNode,\n circle: intersectCircle,\n ellipse: intersectEllipse,\n polygon: intersectPolygon,\n rect: intersectRect$1\n};\nconst note = async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst note$1 = note;\nconst expandAndDeduplicateDirections = (directions) => {\n const uniqueDirections = /* @__PURE__ */ new Set();\n for (const direction of directions) {\n switch (direction) {\n case \"x\":\n uniqueDirections.add(\"right\");\n uniqueDirections.add(\"left\");\n break;\n case \"y\":\n uniqueDirections.add(\"up\");\n uniqueDirections.add(\"down\");\n break;\n default:\n uniqueDirections.add(direction);\n break;\n }\n }\n return uniqueDirections;\n};\nconst getArrowPoints = (duplicatedDirections, bbox, node) => {\n const directions = expandAndDeduplicateDirections(duplicatedDirections);\n const f = 2;\n const height = bbox.height + 2 * node.padding;\n const midpoint = height / f;\n const width = bbox.width + 2 * midpoint + node.padding;\n const padding = node.padding / 2;\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom\n { x: 0, y: 0 },\n { x: midpoint, y: 0 },\n { x: width / 2, y: 2 * padding },\n { x: width - midpoint, y: 0 },\n { x: width, y: 0 },\n // Right\n { x: width, y: -height / 3 },\n { x: width + 2 * padding, y: -height / 2 },\n { x: width, y: -2 * height / 3 },\n { x: width, y: -height },\n // Top\n { x: width - midpoint, y: -height },\n { x: width / 2, y: -height - 2 * padding },\n { x: midpoint, y: -height },\n // Left\n { x: 0, y: -height },\n { x: 0, y: -2 * height / 3 },\n { x: -2 * padding, y: -height / 2 },\n { x: 0, y: -height / 3 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: midpoint, y: 0 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: midpoint, y: -height },\n { x: width - midpoint, y: -height },\n { x: width, y: 0 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: width, y: -height + midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: 0, y: -height + midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding },\n { x: width - midpoint, y: -padding },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding },\n { x: midpoint, y: -height + padding },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding },\n { x: midpoint, y: -padding },\n // Left top over vertical section\n { x: midpoint, y: -height + padding },\n { x: 0, y: -height + padding },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding },\n { x: width - midpoint, y: -padding },\n { x: width, y: -padding }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: 0 },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: 0 },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\")) {\n return [\n { x: midpoint, y: -padding },\n { x: midpoint, y: -padding },\n { x: width - midpoint, y: -padding },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding },\n // top left corner of arrow\n { x: midpoint, y: -height + padding },\n { x: midpoint, y: -height + padding }\n ];\n }\n if (directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding },\n // Two points, the right corners\n { x: width - midpoint, y: -padding },\n { x: width - midpoint, y: -height + padding },\n { x: midpoint, y: -height + padding },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\")) {\n return [\n // Bottom center\n { x: midpoint, y: -padding },\n // Left top over vertical section\n { x: midpoint, y: -height + padding },\n { x: 0, y: -height + padding },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding },\n { x: width - midpoint, y: -padding }\n ];\n }\n if (directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding },\n { x: midpoint, y: -padding },\n // Left top over vertical section\n { x: midpoint, y: -height + padding },\n { x: width - midpoint, y: -height + padding },\n { x: width - midpoint, y: -padding },\n { x: width, y: -padding }\n ];\n }\n return [{ x: 0, y: 0 }];\n};\nconst formatClass = (str) => {\n if (str) {\n return \" \" + str;\n }\n return \"\";\n};\nconst getClassesFromNode = (node, otherClasses) => {\n return `${otherClasses ? otherClasses : \"node default\"}${formatClass(node.classes)} ${formatClass(\n node.class\n )}`;\n};\nconst question = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst choice = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect.circle(node, 14, point2);\n };\n return shapeSvg;\n};\nconst hexagon = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst block_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const f = 2;\n const h = bbox.height + 2 * node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = getArrowPoints(node.directions, bbox, node);\n const blockArrow = insertPolygonShape(shapeSvg, w, h, points);\n blockArrow.attr(\"style\", node.style);\n updateNodeBounds(node, blockArrow);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_left_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_right = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_left = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst inv_trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_right_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst cylinder = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n};\nconst rect = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes + \" \" + node.class,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst composite = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic cluster composite label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst labelRect = async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.class);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length, 0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0, length);\n };\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\nconst rectWithTitle = (parent, node) => {\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n createLabel$1(textRows.join ? textRows.join(\"
\") : textRows, node.labelStyle, true, true)\n );\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst stadium = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst circle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n};\nconst doublecircle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", node.class);\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n};\nconst subroutine = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst start = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst end = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"«\" + node.classData.annotations[0] + \"»\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n rect2.attr(\"style\", node.style).attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst shapes = {\n rhombus: question,\n composite,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n block_arrow,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note$1,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nlet nodeElems = {};\nconst insertNode = async (elem, node, dir) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, dir);\n } else {\n el = await shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n newEl.attr(\"data-node\", \"true\");\n newEl.attr(\"data-id\", node.id);\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n};\nconst setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nconst clear$1 = () => {\n nodeElems = {};\n};\nconst positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n};\nconst getSubGraphTitleMargins = ({\n flowchart\n}) => {\n var _a, _b;\n const subGraphTitleTopMargin = ((_a = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _a.top) ?? 0;\n const subGraphTitleBottomMargin = ((_b = flowchart == null ? void 0 : flowchart.subGraphTitleMargin) == null ? void 0 : _b.bottom) ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n};\nconst markerOffsets = {\n aggregation: 18,\n extension: 18,\n composition: 18,\n dependency: 6,\n lollipop: 13.5,\n arrow_point: 5.3\n};\nfunction calculateDeltaAndAngle(point1, point2) {\n if (point1 === void 0 || point2 === void 0) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n point1 = pointTransformer(point1);\n point2 = pointTransformer(point2);\n const [x1, y1] = [point1.x, point1.y];\n const [x2, y2] = [point2.x, point2.y];\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };\n}\nconst pointTransformer = (data) => {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n};\nconst getLineFunctionsWithOffset = (edge) => {\n return {\n x: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n return pointTransformer(d).x + offset;\n },\n y: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n return pointTransformer(d).y + offset;\n }\n };\n};\nconst addEdgeMarkers = (svgPath, edge, url, id, diagramType) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType);\n }\n};\nconst arrowTypesMap = {\n arrow_cross: \"cross\",\n arrow_point: \"point\",\n arrow_barb: \"barb\",\n arrow_circle: \"circle\",\n aggregation: \"aggregation\",\n extension: \"extension\",\n composition: \"composition\",\n dependency: \"dependency\",\n lollipop: \"lollipop\"\n};\nconst addEdgeMarker = (svgPath, position, arrowType, url, id, diagramType) => {\n const endMarkerType = arrowTypesMap[arrowType];\n if (!endMarkerType) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`);\n};\nlet edgeLabels = {};\nlet terminalLabels = {};\nconst clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\nconst insertEdgeLabel = (elem, edge) => {\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n }) : createLabel$1(edge.label, edge.labelStyle);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n};\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\nconst positionEdgeLabel = (edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels[edge.id], paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n};\nconst outsideNode = (node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\nconst intersection = (node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n};\nconst cutPathAtIntersect = (_points, boundaryNode) => {\n log.debug(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n }\n isInside = true;\n } else {\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n return points;\n};\nconst insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) {\n let points = edge.points;\n log.debug(\"abc88 InsertEdge: edge=\", edge, \"e=\", e);\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n if ((head == null ? void 0 : head.intersect) && (tail == null ? void 0 : tail.intersect)) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.debug(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve = curveBasis;\n if (edge.curve && (diagramType === \"graph\" || diagramType === \"flowchart\")) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n addEdgeMarkers(svgPath, edge, url, id, diagramType);\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\nexport {\n insertMarkers$1 as a,\n clear$1 as b,\n createLabel$1 as c,\n clear as d,\n insertNode as e,\n insertEdgeLabel as f,\n getSubGraphTitleMargins as g,\n insertEdge as h,\n intersectRect$1 as i,\n positionEdgeLabel as j,\n getLineFunctionsWithOffset as k,\n labelHelper as l,\n addEdgeMarkers as m,\n positionNode as p,\n setNodeElem as s,\n updateNodeBounds as u\n};\n","import { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport { c as createLabel, g as getSubGraphTitleMargins, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, h as insertEdge, j as positionEdgeLabel } from \"./edges-332bd1c7.js\";\nimport { l as log, c as getConfig, m as evaluate } from \"./mermaid-ad1dc92f.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { a as createText } from \"./createText-d213de94.js\";\nimport { select } from \"d3\";\nlet clusterDb = {};\nlet descendants = {};\nlet parents = {};\nconst clear$1 = () => {\n descendants = {};\n parents = {};\n clusterDb = {};\n};\nconst isDescendant = (id, ancestorId) => {\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", descendants[ancestorId].includes(id));\n if (descendants[ancestorId].includes(id)) {\n return true;\n }\n return false;\n};\nconst edgeInCluster = (edge, clusterId) => {\n log.info(\"Descendants of \", clusterId, \" is \", descendants[clusterId]);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId) {\n return false;\n }\n if (edge.w === clusterId) {\n return false;\n }\n if (!descendants[clusterId]) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);\n};\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n};\nconst extractDescendants = (id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents[child] = id;\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n};\nconst findNonClusterChild = (id, graph) => {\n log.trace(\"Searching\", id);\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n log.trace(\"This is a valid node\", id);\n return id;\n }\n for (const child of children) {\n const _id = findNonClusterChild(child, graph);\n if (_id) {\n log.trace(\"Found replacement for\", id, \" => \", _id);\n return _id;\n }\n }\n};\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\nconst adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph)\n );\n descendants[id] = extractDescendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n if (edge.v !== id && edge.w !== id) {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of Object.keys(clusterDb)) {\n const nonClusterChild = clusterDb[id].id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb[parent] && !clusterDb[parent].externalConnections) {\n clusterDb[id].id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb[e.v],\n \" --- \",\n clusterDb[e.w]\n );\n if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {\n log.warn(\"Fixing and trixing link to self - removing XXX\", e.v, e.w, e.name);\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n const specialId = e.w + \"---\" + e.v;\n graph.setNode(specialId, {\n domId: specialId,\n id: specialId,\n labelStyle: \"\",\n labelText: edge.label,\n padding: 0,\n shape: \"labelRect\",\n style: \"\"\n });\n const edge1 = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge2.label = \"\";\n edge1.fromCluster = e.v;\n edge2.toCluster = e.v;\n graph.setEdge(v, specialId, edge1, e.name + \"-cyclic-special\");\n graph.setEdge(specialId, w, edge2, e.name + \"-cyclic-special\");\n } else if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb[parent].externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb[parent].externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n};\nconst extractor = (graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb[node]) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&\n graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb[node].clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb[node].externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n};\nconst sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\nconst rect = (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig();\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster\" + (node.class ? \" \" + node.class : \"\")).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const text = node.labelType === \"markdown\" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2 - node.padding / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n log.trace(\"Data \", node, JSON.stringify(node));\n rect2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - width / 2).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width).attr(\"height\", node.height + padding);\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n if (useHtmlLabels) {\n label.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n } else {\n label.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n }\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst noteGroup = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n const siteConfig = getConfig();\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const innerRect = shapeSvg.append(\"rect\");\n const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n rect2.attr(\"class\", \"outer\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width + padding).attr(\"height\", node.height + padding);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr(\"width\", width + padding).attr(\"height\", node.height + padding - bbox.height - 3);\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 - node.padding / 3 + (evaluate(siteConfig.flowchart.htmlLabels) ? 5 : 3) + subGraphTitleTopMargin})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst divider = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"class\", \"divider\").attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding);\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\nlet clusterElems = {};\nconst insertCluster = (elem, node) => {\n log.trace(\"Inserting cluster\");\n const shape = node.shape || \"rect\";\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nconst clear = () => {\n clusterElems = {};\n};\nconst recursiveRender = async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.info(\"Graph in recursive render: XXX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.info(\"Setting data for cluster XXX (\", v, \") \", data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n log.info(\"Cluster identified\", v, node.width, graph.node(v));\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\"Node bounds (abc123)\", v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n log.warn(\"Recursive render complete \", newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\"Cluster - the non recursive path XXX\", v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n } else {\n log.info(\"Node - the non recursive path\", v, node.id, node);\n await insertNode(nodes, graph.node(v), dir);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\"Fix\", clusterDb, \"ids:\", e.v, e.w, \"Translating: \", clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n graph.edges().forEach(function(e) {\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n });\n log.info(\"#############################################\");\n log.info(\"### Layout ###\");\n log.info(\"#############################################\");\n log.info(graph);\n layout(graph);\n log.info(\"Graph after layout:\", graphlibJson.write(graph));\n let diff = 0;\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n sortNodesByHierarchy(graph).forEach(function(v) {\n const node = graph.node(v);\n log.info(\"Position \" + v + \": \" + JSON.stringify(graph.node(v)));\n log.info(\n \"Position \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node && node.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n node.height += subGraphTitleTotalMargin;\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n node.y += subGraphTitleTotalMargin / 2;\n positionNode(node);\n }\n }\n });\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramType, graph, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === \"group\") {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\nconst render = async (elem, graph, markers, diagramType, id) => {\n insertMarkers(elem, markers, diagramType, id);\n clear$2();\n clear$3();\n clear();\n clear$1();\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after:\", JSON.stringify(graphlibJson.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(elem, graph, diagramType, id, void 0, siteConfig);\n};\nexport {\n render as r\n};\n","import { curveLinear, select, selectAll } from \"d3\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { r as render } from \"./index-6079d271.js\";\nimport { k as getStylesFromArray, l as log, m as evaluate, c as getConfig, e as common, r as renderKatexSanitized, n as interpolateToCurve, u as utils, o as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport * as khroma from \"khroma\";\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = async function(vert, g, svgId, root, doc, diagObj) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(vert);\n for (const id of keys) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n log.info(\"vertex\", vertex, vertex.labelType);\n if (vertex.labelType === \"markdown\") {\n log.info(\"vertex\", vertex, vertex.labelType);\n } else {\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n }\n let radius = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const labelText = await renderKatexSanitized(vertexText, getConfig());\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText,\n labelType: vertex.labelType,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n log.info(\"setNode\", {\n labelStyle: styles.labelStyle,\n labelType: vertex.labelType,\n shape: _shape,\n labelText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n domId: diagObj.db.lookUpDomId(vertex.id),\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n dir: vertex.dir,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n }\n};\nconst addEdges = async function(edges, g, diagObj) {\n log.info(\"abc78 edges = \", edges);\n let cnt = 0;\n let linkIdCnt = {};\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n for (const edge of edges) {\n cnt++;\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n case \"invisible\":\n edgeData.thickness = \"invisible\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 0;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = await renderKatexSanitized(\n edge.text.replace(common.lineBreakRegex, \"\\n\"),\n getConfig()\n );\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n g.setEdge(edge.start, edge.end, edgeData, cnt);\n }\n};\nconst getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 0,\n marginy: 0\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n log.info(\"Subgraph - \", subG);\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const vert = diagObj.db.getVertices();\n const edges = diagObj.db.getEdges();\n log.info(\"Edges\", edges);\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.info(\"Setting up subgraphs\", subG.nodes[j], subG.id);\n g.setParent(subG.nodes[j], subG.id);\n }\n }\n await addVertices(vert, g, id, root, doc, diagObj);\n await addEdges(edges, g);\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"point\", \"circle\", \"cross\"], \"flowchart\", id);\n utils.insertTitle(svg, \"flowchartTitleText\", conf2.titleTopMargin, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n diagObj.db.indexNodes(\"subGraph\" + i);\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = select(\"#\" + id + ' [id=\"' + key + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRendererV2 = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .katex path {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nexport {\n flowStyles as a,\n flowRendererV2 as f\n};\n","import { p as parser, f as flowDb } from \"./flowDb-7c981674.js\";\nimport { select, curveLinear, selectAll } from \"d3\";\nimport { render } from \"dagre-d3-es\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport { applyStyle } from \"dagre-d3-es/src/dagre-js/util.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { k as getStylesFromArray, m as evaluate, c as getConfig, r as renderKatexSanitized, e as common, l as log, n as interpolateToCurve, o as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport { intersectPolygon } from \"dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js\";\nimport { intersectRect } from \"dagre-d3-es/src/dagre-js/intersect/intersect-rect.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-2ab5d517.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./index-6079d271.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-332bd1c7.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nfunction question(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const s = (w + h) * 0.9;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, s, s, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction hexagon(parent, bbox, node) {\n const f = 4;\n const h = bbox.height;\n const m = h / f;\n const w = bbox.width + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_left_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_right(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_left(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction inv_trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_right_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction stadium(parent, bbox, node) {\n const h = bbox.height;\n const w = bbox.width + h / 4;\n const shapeSvg = parent.insert(\"rect\", \":first-child\").attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n}\nfunction subroutine(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction cylinder(parent, bbox, node) {\n const w = bbox.width;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const shapeSvg = parent.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n node.intersect = function(point) {\n const pos = intersectRect(node, point);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\nfunction addToRender(render2) {\n render2.shapes().question = question;\n render2.shapes().hexagon = hexagon;\n render2.shapes().stadium = stadium;\n render2.shapes().subroutine = subroutine;\n render2.shapes().cylinder = cylinder;\n render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;\n render2.shapes().lean_right = lean_right;\n render2.shapes().lean_left = lean_left;\n render2.shapes().trapezoid = trapezoid;\n render2.shapes().inv_trapezoid = inv_trapezoid;\n render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;\n}\nfunction addToRenderV2(addShape) {\n addShape({ question });\n addShape({ hexagon });\n addShape({ stadium });\n addShape({ subroutine });\n addShape({ cylinder });\n addShape({ rect_left_inv_arrow });\n addShape({ lean_right });\n addShape({ lean_left });\n addShape({ trapezoid });\n addShape({ inv_trapezoid });\n addShape({ rect_right_inv_arrow });\n}\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nconst flowChartShapes = {\n addToRender,\n addToRenderV2\n};\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = async function(vert, g, svgId, root, _doc, diagObj) {\n const svg = !root ? select(`[id=\"${svgId}\"]`) : root.select(`[id=\"${svgId}\"]`);\n const doc = !_doc ? document : _doc;\n const keys = Object.keys(vert);\n for (const id of keys) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: await renderKatexSanitized(\n vertexText.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n // cspell:disable-line\n (s) => ``\n ),\n getConfig()\n )\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n let radius = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n default:\n _shape = \"rect\";\n }\n log.warn(\"Adding node\", vertex.id, vertex.domId);\n g.setNode(diagObj.db.lookUpDomId(vertex.id), {\n labelType: \"svg\",\n labelStyle: styles.labelStyle,\n shape: _shape,\n label: vertexNode,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: diagObj.db.lookUpDomId(vertex.id)\n });\n }\n};\nconst addEdges = async function(edges, g, diagObj) {\n let cnt = 0;\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n for (const edge of edges) {\n cnt++;\n const linkId = \"L-\" + edge.start + \"-\" + edge.end;\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = {};\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n let style = \"\";\n let labelStyle = \"\";\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n break;\n case \"dotted\":\n style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n style = \" stroke-width: 3.5px;fill:none\";\n break;\n }\n }\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n edgeData.labelType = \"html\";\n edgeData.label = `${await renderKatexSanitized(\n edge.text.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n // cspell:disable-line\n (s) => ``\n ),\n getConfig()\n )}`;\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n edgeData.id = linkId;\n edgeData.class = linkNameStart + \" \" + linkNameEnd;\n edgeData.minlen = edge.length || 1;\n g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);\n }\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n diagObj.db.addVertex(subG.id, subG.title, \"group\", void 0, subG.classes);\n }\n const vert = diagObj.db.getVertices();\n log.warn(\"Get vertices\", vert);\n const edges = diagObj.db.getEdges();\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.warn(\n \"Setting subgraph\",\n subG.nodes[j],\n diagObj.db.lookUpDomId(subG.nodes[j]),\n diagObj.db.lookUpDomId(subG.id)\n );\n g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));\n }\n }\n await addVertices(vert, g, id, root, doc, diagObj);\n await addEdges(edges, g, diagObj);\n const render$1 = new render();\n flowChartShapes.addToRender(render$1);\n render$1.arrows().none = function normal(parent, id2, edge, type) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n const path = marker.append(\"path\").attr(\"d\", \"M 0 0 L 0 0 L 0 0 z\");\n applyStyle(path, edge[type + \"Style\"]);\n };\n render$1.arrows().normal = function normal(parent, id2) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n marker.append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowheadPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n };\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n render$1(element, g);\n element.selectAll(\"g.node\").attr(\"title\", function() {\n return diagObj.db.getTooltip(this.id);\n });\n diagObj.db.indexNodes(\"subGraph\" + i);\n for (i = 0; i < subGraphs.length; i++) {\n subG = subGraphs[i];\n if (subG.title !== \"undefined\") {\n const clusterRects = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"] rect'\n );\n const clusterEl = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"]'\n );\n const xPos = clusterRects[0].x.baseVal.value;\n const yPos = clusterRects[0].y.baseVal.value;\n const _width = clusterRects[0].width.baseVal.value;\n const cluster = select(clusterEl[0]);\n const te = cluster.select(\".label\");\n te.attr(\"transform\", `translate(${xPos + _width / 2}, ${yPos + 14})`);\n te.attr(\"id\", id + \"Text\");\n for (let j = 0; j < subG.classes.length; j++) {\n clusterEl[0].classList.add(subG.classes[j]);\n }\n }\n }\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = root.select(\"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(key) + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRenderer = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n flowRenderer.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-1\");\n }\n};\nexport {\n diagram\n};\n","import { p as parser, f as flowDb } from \"./flowDb-7c981674.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-2ab5d517.js\";\nimport { p as setConfig } from \"./mermaid-ad1dc92f.js\";\nimport \"d3\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport \"dagre-d3-es/src/graphlib/index.js\";\nimport \"./index-6079d271.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-332bd1c7.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"khroma\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });\n flowRendererV2.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-2\");\n }\n};\nexport {\n diagram\n};\n","import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, v as clear$1, u as utils, i as configureSvgSize, x as parseGenericTypes } from \"./mermaid-ad1dc92f.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport { v5 } from \"uuid\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.addEntity($$[$0 - 4]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n break;\n case 9:\n yy.addEntity($$[$0 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 10:\n yy.addEntity($$[$0 - 2]);\n break;\n case 11:\n yy.addEntity($$[$0]);\n break;\n case 12:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 15:\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n case 43:\n this.$ = $$[$0];\n break;\n case 20:\n case 41:\n case 42:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 21:\n case 29:\n this.$ = [$$[$0]];\n break;\n case 22:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 23:\n this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };\n break;\n case 24:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };\n break;\n case 25:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 26:\n this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 27:\n case 28:\n case 31:\n this.$ = $$[$0];\n break;\n case 30:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 32:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 33:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 34:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 35:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 36:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 37:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 38:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 39:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 40:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])],\n defaultActions: { 34: [2, 27], 41: [2, 22] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 22;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 24;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n return 10;\n case 8:\n break;\n case 9:\n return 8;\n case 10:\n return 28;\n case 11:\n return 48;\n case 12:\n return 4;\n case 13:\n this.begin(\"block\");\n return 15;\n case 14:\n return 36;\n case 15:\n break;\n case 16:\n return 37;\n case 17:\n return 34;\n case 18:\n return 34;\n case 19:\n return 38;\n case 20:\n break;\n case 21:\n this.popState();\n return 17;\n case 22:\n return yy_.yytext[0];\n case 23:\n return 18;\n case 24:\n return 19;\n case 25:\n return 41;\n case 26:\n return 43;\n case 27:\n return 43;\n case 28:\n return 43;\n case 29:\n return 41;\n case 30:\n return 41;\n case 31:\n return 42;\n case 32:\n return 42;\n case 33:\n return 42;\n case 34:\n return 42;\n case 35:\n return 42;\n case 36:\n return 43;\n case 37:\n return 42;\n case 38:\n return 43;\n case 39:\n return 44;\n case 40:\n return 44;\n case 41:\n return 44;\n case 42:\n return 44;\n case 43:\n return 41;\n case 44:\n return 42;\n case 45:\n return 43;\n case 46:\n return 45;\n case 47:\n return 46;\n case 48:\n return 47;\n case 49:\n return 47;\n case 50:\n return 46;\n case 51:\n return 46;\n case 52:\n return 46;\n case 53:\n return 27;\n case 54:\n return yy_.yytext[0];\n case 55:\n return 6;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:,)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\\*A-Za-z_][A-Za-z0-9\\-_\\[\\]\\(\\)]*)/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:one or zero\\b)/i, /^(?:one or more\\b)/i, /^(?:one or many\\b)/i, /^(?:1\\+)/i, /^(?:\\|o\\b)/i, /^(?:zero or one\\b)/i, /^(?:zero or more\\b)/i, /^(?:zero or many\\b)/i, /^(?:0\\+)/i, /^(?:\\}o\\b)/i, /^(?:many\\(0\\))/i, /^(?:many\\(1\\))/i, /^(?:many\\b)/i, /^(?:\\}\\|)/i, /^(?:one\\b)/i, /^(?:only one\\b)/i, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\\-_]*)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [14, 15, 16, 17, 18, 19, 20, 21, 22], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst erParser = parser;\nlet entities = {};\nlet relationships = [];\nconst Cardinality = {\n ZERO_OR_ONE: \"ZERO_OR_ONE\",\n ZERO_OR_MORE: \"ZERO_OR_MORE\",\n ONE_OR_MORE: \"ONE_OR_MORE\",\n ONLY_ONE: \"ONLY_ONE\",\n MD_PARENT: \"MD_PARENT\"\n};\nconst Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n};\nconst addEntity = function(name, alias = void 0) {\n if (entities[name] === void 0) {\n entities[name] = { attributes: [], alias };\n log.info(\"Added new entity :\", name);\n } else if (entities[name] && !entities[name].alias && alias) {\n entities[name].alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return entities[name];\n};\nconst getEntities = () => entities;\nconst addAttributes = function(entityName, attribs) {\n let entity = addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].attributeName);\n }\n};\nconst addRelationship = function(entA, rolA, entB, rSpec) {\n let rel = {\n entityA: entA,\n roleA: rolA,\n entityB: entB,\n relSpec: rSpec\n };\n relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n};\nconst getRelationships = () => relationships;\nconst clear = function() {\n entities = {};\n relationships = [];\n clear$1();\n};\nconst erDb = {\n Cardinality,\n Identification,\n getConfig: () => getConfig().er,\n addEntity,\n addAttributes,\n getEntities,\n addRelationship,\n getRelationships,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst ERMarkers = {\n ONLY_ONE_START: \"ONLY_ONE_START\",\n ONLY_ONE_END: \"ONLY_ONE_END\",\n ZERO_OR_ONE_START: \"ZERO_OR_ONE_START\",\n ZERO_OR_ONE_END: \"ZERO_OR_ONE_END\",\n ONE_OR_MORE_START: \"ONE_OR_MORE_START\",\n ONE_OR_MORE_END: \"ONE_OR_MORE_END\",\n ZERO_OR_MORE_START: \"ZERO_OR_MORE_START\",\n ZERO_OR_MORE_END: \"ZERO_OR_MORE_END\",\n MD_PARENT_END: \"MD_PARENT_END\",\n MD_PARENT_START: \"MD_PARENT_START\"\n};\nconst insertMarkers = function(elem, conf2) {\n let marker;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_START).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_END).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\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_END).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_END).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,0 L21,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_END).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_END).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n return;\n};\nconst erMarkers = {\n ERMarkers,\n insertMarkers\n};\nconst BAD_ID_CHARS_REGEXP = /[^\\dA-Za-z](\\W)*/g;\nlet conf = {};\nlet entityNameIds = /* @__PURE__ */ new Map();\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst drawAttributes = (groupNode, entityTextNode, attributes) => {\n const heightPadding = conf.entityPadding / 3;\n const widthPadding = conf.entityPadding / 3;\n const attrFontSize = conf.fontSize * 0.85;\n const labelBBox = entityTextNode.node().getBBox();\n const attributeNodes = [];\n let hasKeyType = false;\n let hasComment = false;\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeyWidth = 0;\n let maxCommentWidth = 0;\n let cumulativeHeight = labelBBox.height + heightPadding * 2;\n let attrNum = 1;\n attributes.forEach((item) => {\n if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {\n hasKeyType = true;\n }\n if (item.attributeComment !== void 0) {\n hasComment = true;\n }\n });\n attributes.forEach((item) => {\n const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;\n let nodeHeight = 0;\n const attributeType = parseGenericTypes(item.attributeType);\n const typeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-type`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(attributeType);\n const nameNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-name`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeName);\n const attributeNode = {};\n attributeNode.tn = typeNode;\n attributeNode.nn = nameNode;\n const typeBBox = typeNode.node().getBBox();\n const nameBBox = nameNode.node().getBBox();\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);\n maxNameWidth = Math.max(maxNameWidth, nameBBox.width);\n nodeHeight = Math.max(typeBBox.height, nameBBox.height);\n if (hasKeyType) {\n const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(\",\") : \"\";\n const keyTypeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-key`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(keyTypeNodeText);\n attributeNode.kn = keyTypeNode;\n const keyTypeBBox = keyTypeNode.node().getBBox();\n maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);\n nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);\n }\n if (hasComment) {\n const commentNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-comment`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeComment || \"\");\n attributeNode.cn = commentNode;\n const commentNodeBBox = commentNode.node().getBBox();\n maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);\n nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);\n }\n attributeNode.height = nodeHeight;\n attributeNodes.push(attributeNode);\n cumulativeHeight += nodeHeight + heightPadding * 2;\n attrNum += 1;\n });\n let widthPaddingFactor = 4;\n if (hasKeyType) {\n widthPaddingFactor += 2;\n }\n if (hasComment) {\n widthPaddingFactor += 2;\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;\n const bBox = {\n width: Math.max(\n conf.minEntityWidth,\n Math.max(\n labelBBox.width + conf.entityPadding * 2,\n maxWidth + widthPadding * widthPaddingFactor\n )\n ),\n height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)\n };\n if (attributes.length > 0) {\n const spareColumnWidth = Math.max(\n 0,\n (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)\n );\n entityTextNode.attr(\n \"transform\",\n \"translate(\" + bBox.width / 2 + \",\" + (heightPadding + labelBBox.height / 2) + \")\"\n );\n let heightOffset = labelBBox.height + heightPadding * 2;\n let attribStyle = \"attributeBoxOdd\";\n attributeNodes.forEach((attributeNode) => {\n const alignY = heightOffset + heightPadding + attributeNode.height / 2;\n attributeNode.tn.attr(\"transform\", \"translate(\" + widthPadding + \",\" + alignY + \")\");\n const typeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", 0).attr(\"y\", heightOffset).attr(\"width\", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n const nameXOffset = parseFloat(typeRect.attr(\"x\")) + parseFloat(typeRect.attr(\"width\"));\n attributeNode.nn.attr(\n \"transform\",\n \"translate(\" + (nameXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const nameRect = groupNode.insert(\"rect\", \"#\" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", nameXOffset).attr(\"y\", heightOffset).attr(\"width\", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n let keyTypeAndCommentXOffset = parseFloat(nameRect.attr(\"x\")) + parseFloat(nameRect.attr(\"width\"));\n if (hasKeyType) {\n attributeNode.kn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const keyTypeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr(\"x\")) + parseFloat(keyTypeRect.attr(\"width\"));\n }\n if (hasComment) {\n attributeNode.cn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n groupNode.insert(\"rect\", \"#\" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, \"true\").attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n }\n heightOffset += attributeNode.height + heightPadding * 2;\n attribStyle = attribStyle === \"attributeBoxOdd\" ? \"attributeBoxEven\" : \"attributeBoxOdd\";\n });\n } else {\n bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);\n entityTextNode.attr(\"transform\", \"translate(\" + bBox.width / 2 + \",\" + bBox.height / 2 + \")\");\n }\n return bBox;\n};\nconst drawEntities = function(svgNode, entities2, graph) {\n const keys = Object.keys(entities2);\n let firstOne;\n keys.forEach(function(entityName) {\n const entityId = generateId(entityName, \"entity\");\n entityNameIds.set(entityName, entityId);\n const groupNode = svgNode.append(\"g\").attr(\"id\", entityId);\n firstOne = firstOne === void 0 ? entityId : firstOne;\n const textId = \"text-\" + entityId;\n const textNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", textId).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(entities2[entityName].alias ?? entityName);\n const { width: entityWidth, height: entityHeight } = drawAttributes(\n groupNode,\n textNode,\n entities2[entityName].attributes\n );\n const rectNode = groupNode.insert(\"rect\", \"#\" + textId).classed(\"er entityBox\", true).attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", entityWidth).attr(\"height\", entityHeight);\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(entityId, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: entityId\n });\n });\n return firstOne;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n};\nconst getEdgeName = function(rel) {\n return (rel.entityA + rel.roleA + rel.entityB).replace(/\\s/g, \"\");\n};\nconst addRelationships = function(relationships2, g) {\n relationships2.forEach(function(r) {\n g.setEdge(\n entityNameIds.get(r.entityA),\n entityNameIds.get(r.entityB),\n { relationship: r },\n getEdgeName(r)\n );\n });\n return relationships2;\n};\nlet relCnt = 0;\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n relCnt++;\n const edge = g.edge(\n entityNameIds.get(rel.entityA),\n entityNameIds.get(rel.entityB),\n getEdgeName(rel)\n );\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = svg.insert(\"path\", \"#\" + insert).classed(\"er relationshipLine\", true).attr(\"d\", lineFunction(edge.points)).style(\"stroke\", conf.stroke).style(\"fill\", \"none\");\n if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {\n svgPath.attr(\"stroke-dasharray\", \"8,8\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (rel.relSpec.cardA) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_END + \")\");\n break;\n }\n switch (rel.relSpec.cardB) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_START + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_START + \")\");\n break;\n }\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n const labelNode = svg.append(\"text\").classed(\"er relationshipLabel\", true).attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).style(\"text-anchor\", \"middle\").style(\"dominant-baseline\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(rel.roleA);\n const labelBBox = labelNode.node().getBBox();\n svg.insert(\"rect\", \"#\" + labelId).classed(\"er relationshipLabelBox\", true).attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height);\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().er;\n log.info(\"Drawing ER diagram\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n erMarkers.insertMarkers(svg, conf);\n let g;\n g = new graphlib.Graph({\n multigraph: true,\n directed: true,\n compound: false\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);\n const relationships2 = addRelationships(diagObj.db.getRelationships(), g);\n layout(g);\n adjustEntities(svg, g);\n relationships2.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);\n });\n const padding = conf.diagramPadding;\n utils.insertTitle(svg, \"entityTitleText\", conf.titleTopMargin, diagObj.db.getDiagramTitle());\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst MERMAID_ERDIAGRAM_UUID = \"28e9f9db-3c8d-5aa5-9faf-44286ae5937c\";\nfunction generateId(str = \"\", prefix = \"\") {\n const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, \"\");\n return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(\n str,\n MERMAID_ERDIAGRAM_UUID\n )}`;\n}\nfunction strWithHyphen(str = \"\") {\n return str.length > 0 ? `${str}-` : \"\";\n}\nconst erRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${options.attributeBackgroundColorOdd};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${options.attributeBackgroundColorEven};\n stroke: ${options.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${options.tertiaryColor};\n opacity: 0.7;\n background-color: ${options.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${options.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n } \n #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n \n`;\nconst erStyles = getStyles;\nconst diagram = {\n parser: erParser,\n db: erDb,\n renderer: erRenderer,\n styles: erStyles\n};\nexport {\n diagram\n};\n","import { c as getConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, e as common, v as clear$2, y as random, u as utils, z as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport { select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 6], $V2 = [1, 4], $V3 = [1, 5], $V4 = [2, 5], $V5 = [1, 12], $V6 = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40, 47], $V7 = [7, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V8 = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 37, 40], $V9 = [7, 13, 47], $Va = [1, 42], $Vb = [1, 41], $Vc = [7, 13, 29, 32, 35, 38, 47], $Vd = [1, 55], $Ve = [1, 56], $Vf = [1, 57], $Vg = [7, 13, 32, 35, 42, 47];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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: \";\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 2:\n return $$[$0];\n case 3:\n return $$[$0 - 1];\n case 4:\n yy.setDirection($$[$0 - 3]);\n return $$[$0 - 1];\n case 6:\n yy.setOptions($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 7:\n $$[$0 - 1] += $$[$0];\n this.$ = $$[$0 - 1];\n break;\n case 9:\n this.$ = [];\n break;\n case 10:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 11:\n this.$ = $$[$0 - 1];\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 21:\n yy.checkout($$[$0]);\n break;\n case 22:\n yy.branch($$[$0]);\n break;\n case 23:\n yy.branch($$[$0 - 2], $$[$0]);\n break;\n case 24:\n yy.cherryPick($$[$0], \"\", void 0);\n break;\n case 25:\n yy.cherryPick($$[$0 - 2], \"\", void 0, $$[$0]);\n break;\n case 26:\n yy.cherryPick($$[$0 - 2], \"\", $$[$0]);\n break;\n case 27:\n yy.cherryPick($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 28:\n yy.cherryPick($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 29:\n yy.cherryPick($$[$0], \"\", $$[$0 - 2]);\n break;\n case 30:\n yy.cherryPick($$[$0], \"\", \"\");\n break;\n case 31:\n yy.cherryPick($$[$0 - 2], \"\", \"\");\n break;\n case 32:\n yy.cherryPick($$[$0 - 4], \"\", \"\", $$[$0 - 2]);\n break;\n case 33:\n yy.cherryPick($$[$0 - 4], \"\", \"\", $$[$0]);\n break;\n case 34:\n yy.cherryPick($$[$0 - 2], \"\", $$[$0 - 4], $$[$0]);\n break;\n case 35:\n yy.cherryPick($$[$0 - 2], \"\", \"\", $$[$0]);\n break;\n case 36:\n yy.merge($$[$0], \"\", \"\", \"\");\n break;\n case 37:\n yy.merge($$[$0 - 2], $$[$0], \"\", \"\");\n break;\n case 38:\n yy.merge($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 39:\n yy.merge($$[$0 - 2], \"\", \"\", $$[$0]);\n break;\n case 40:\n yy.merge($$[$0 - 4], $$[$0], \"\", $$[$0 - 2]);\n break;\n case 41:\n yy.merge($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 42:\n yy.merge($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 43:\n yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 44:\n yy.merge($$[$0 - 4], $$[$0 - 2], \"\", $$[$0]);\n break;\n case 45:\n yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 46:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 47:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 48:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 49:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 50:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 51:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 52:\n yy.commit($$[$0]);\n break;\n case 53:\n yy.commit(\"\", \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 54:\n yy.commit(\"\", \"\", $$[$0], \"\");\n break;\n case 55:\n yy.commit(\"\", \"\", $$[$0], $$[$0 - 2]);\n break;\n case 56:\n yy.commit(\"\", \"\", $$[$0 - 2], $$[$0]);\n break;\n case 57:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 58:\n yy.commit(\"\", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 59:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 60:\n yy.commit(\"\", $$[$0 - 2], $$[$0], \"\");\n break;\n case 61:\n yy.commit(\"\", $$[$0], $$[$0 - 2], \"\");\n break;\n case 62:\n yy.commit(\"\", $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 63:\n yy.commit(\"\", $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 64:\n yy.commit(\"\", $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 65:\n yy.commit(\"\", $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 66:\n yy.commit(\"\", $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 67:\n yy.commit(\"\", $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 68:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, \"\");\n break;\n case 69:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 70:\n yy.commit($$[$0 - 2], \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 71:\n yy.commit($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 72:\n yy.commit($$[$0], \"\", $$[$0 - 2], \"\");\n break;\n case 73:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, \"\");\n break;\n case 74:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 75:\n yy.commit($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 76:\n yy.commit($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 77:\n yy.commit($$[$0 - 2], \"\", $$[$0 - 4], $$[$0]);\n break;\n case 78:\n yy.commit($$[$0], \"\", $$[$0 - 4], $$[$0 - 2]);\n break;\n case 79:\n yy.commit($$[$0], \"\", $$[$0 - 2], $$[$0 - 4]);\n break;\n case 80:\n yy.commit($$[$0 - 2], \"\", $$[$0], $$[$0 - 4]);\n break;\n case 81:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 82:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 83:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], \"\");\n break;\n case 84:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], \"\");\n break;\n case 85:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], \"\");\n break;\n case 86:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], \"\");\n break;\n case 87:\n yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 88:\n yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 89:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 90:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 91:\n yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 92:\n yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);\n break;\n case 93:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 94:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 95:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 96:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 97:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 98:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 99:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);\n break;\n case 100:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);\n break;\n case 101:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);\n break;\n case 102:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 103:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);\n break;\n case 104:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 105:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 106:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);\n break;\n case 107:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 108:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 109:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);\n break;\n case 110:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 111:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);\n break;\n case 112:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 113:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 114:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 115:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);\n break;\n case 116:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 117:\n this.$ = \"\";\n break;\n case 118:\n this.$ = $$[$0];\n break;\n case 119:\n this.$ = yy.commitType.NORMAL;\n break;\n case 120:\n this.$ = yy.commitType.REVERSE;\n break;\n case 121:\n this.$ = yy.commitType.HIGHLIGHT;\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 7: $V1, 13: $V2, 47: $V3 }, { 6: 8, 7: $V4, 8: [1, 9], 9: [1, 10], 10: 11, 13: $V5 }, o($V6, [2, 124]), o($V6, [2, 125]), o($V6, [2, 126]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: $V4, 10: 11, 13: $V5 }, { 8: [1, 15] }, o($V7, [2, 9], { 11: 16, 12: [1, 17] }), o($V8, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: $V4, 10: 11, 13: $V5 }, { 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] }, o($V8, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, o($V7, [2, 10]), { 4: 37, 7: $V1, 13: $V2, 47: $V3 }, o($V7, [2, 12]), o($V9, [2, 13]), o($V9, [2, 14]), o($V9, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), { 27: 40, 33: $Va, 46: $Vb }, o($V9, [2, 117], { 41: 43, 32: [1, 46], 33: [1, 48], 35: [1, 44], 38: [1, 45], 42: [1, 47] }), { 27: 49, 33: $Va, 46: $Vb }, { 32: [1, 50], 35: [1, 51] }, { 27: 52, 33: $Va, 46: $Vb }, { 1: [2, 4] }, o($V7, [2, 11]), o($V9, [2, 16]), o($V9, [2, 17]), o($V9, [2, 21]), o($Vc, [2, 122]), o($Vc, [2, 123]), o($V9, [2, 52]), { 33: [1, 53] }, { 39: 54, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 58] }, { 33: [1, 59] }, o($V9, [2, 118]), o($V9, [2, 36], { 32: [1, 60], 35: [1, 62], 38: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 36: [1, 65] }, o($V9, [2, 22], { 29: [1, 66] }), o($V9, [2, 53], { 32: [1, 68], 38: [1, 67], 42: [1, 69] }), o($V9, [2, 54], { 32: [1, 71], 35: [1, 70], 42: [1, 72] }), o($Vg, [2, 119]), o($Vg, [2, 120]), o($Vg, [2, 121]), o($V9, [2, 57], { 35: [1, 73], 38: [1, 74], 42: [1, 75] }), o($V9, [2, 68], { 32: [1, 78], 35: [1, 76], 38: [1, 77] }), { 33: [1, 79] }, { 39: 80, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 81] }, o($V9, [2, 24], { 34: [1, 82], 35: [1, 83] }), { 32: [1, 84] }, { 32: [1, 85] }, { 30: [1, 86] }, { 39: 87, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 33: [1, 93] }, { 39: 94, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 95] }, { 33: [1, 96] }, { 39: 97, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 98] }, o($V9, [2, 37], { 35: [1, 100], 38: [1, 99] }), o($V9, [2, 38], { 32: [1, 102], 35: [1, 101] }), o($V9, [2, 39], { 32: [1, 103], 38: [1, 104] }), { 33: [1, 105] }, { 33: [1, 106], 36: [1, 107] }, { 33: [1, 108] }, { 33: [1, 109] }, o($V9, [2, 23]), o($V9, [2, 55], { 32: [1, 110], 42: [1, 111] }), o($V9, [2, 59], { 38: [1, 112], 42: [1, 113] }), o($V9, [2, 69], { 32: [1, 115], 38: [1, 114] }), o($V9, [2, 56], { 32: [1, 116], 42: [1, 117] }), o($V9, [2, 61], { 35: [1, 118], 42: [1, 119] }), o($V9, [2, 72], { 32: [1, 121], 35: [1, 120] }), o($V9, [2, 58], { 38: [1, 122], 42: [1, 123] }), o($V9, [2, 60], { 35: [1, 124], 42: [1, 125] }), o($V9, [2, 73], { 35: [1, 127], 38: [1, 126] }), o($V9, [2, 70], { 32: [1, 129], 38: [1, 128] }), o($V9, [2, 71], { 32: [1, 131], 35: [1, 130] }), o($V9, [2, 74], { 35: [1, 133], 38: [1, 132] }), { 39: 134, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 135] }, { 33: [1, 136] }, { 33: [1, 137] }, { 33: [1, 138] }, { 39: 139, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 25], { 35: [1, 140] }), o($V9, [2, 26], { 34: [1, 141] }), o($V9, [2, 31], { 34: [1, 142] }), o($V9, [2, 29], { 34: [1, 143] }), o($V9, [2, 30], { 34: [1, 144] }), { 33: [1, 145] }, { 33: [1, 146] }, { 39: 147, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 148] }, { 39: 149, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 150] }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 33: [1, 154] }, { 33: [1, 155] }, { 33: [1, 156] }, { 39: 157, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 158] }, { 33: [1, 159] }, { 33: [1, 160] }, { 39: 161, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 162] }, { 39: 163, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 164] }, { 33: [1, 165] }, { 33: [1, 166] }, { 39: 167, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 168] }, o($V9, [2, 43], { 35: [1, 169] }), o($V9, [2, 44], { 38: [1, 170] }), o($V9, [2, 42], { 32: [1, 171] }), o($V9, [2, 45], { 35: [1, 172] }), o($V9, [2, 40], { 38: [1, 173] }), o($V9, [2, 41], { 32: [1, 174] }), { 33: [1, 175], 36: [1, 176] }, { 33: [1, 177] }, { 33: [1, 178] }, { 33: [1, 179] }, { 33: [1, 180] }, o($V9, [2, 66], { 42: [1, 181] }), o($V9, [2, 79], { 32: [1, 182] }), o($V9, [2, 67], { 42: [1, 183] }), o($V9, [2, 90], { 38: [1, 184] }), o($V9, [2, 80], { 32: [1, 185] }), o($V9, [2, 89], { 38: [1, 186] }), o($V9, [2, 65], { 42: [1, 187] }), o($V9, [2, 78], { 32: [1, 188] }), o($V9, [2, 64], { 42: [1, 189] }), o($V9, [2, 84], { 35: [1, 190] }), o($V9, [2, 77], { 32: [1, 191] }), o($V9, [2, 83], { 35: [1, 192] }), o($V9, [2, 63], { 42: [1, 193] }), o($V9, [2, 91], { 38: [1, 194] }), o($V9, [2, 62], { 42: [1, 195] }), o($V9, [2, 85], { 35: [1, 196] }), o($V9, [2, 86], { 35: [1, 197] }), o($V9, [2, 92], { 38: [1, 198] }), o($V9, [2, 76], { 32: [1, 199] }), o($V9, [2, 87], { 38: [1, 200] }), o($V9, [2, 75], { 32: [1, 201] }), o($V9, [2, 81], { 35: [1, 202] }), o($V9, [2, 82], { 35: [1, 203] }), o($V9, [2, 88], { 38: [1, 204] }), { 33: [1, 205] }, { 39: 206, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 207] }, { 33: [1, 208] }, { 39: 209, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 210] }, o($V9, [2, 27]), o($V9, [2, 32]), o($V9, [2, 28]), o($V9, [2, 33]), o($V9, [2, 34]), o($V9, [2, 35]), { 33: [1, 211] }, { 33: [1, 212] }, { 33: [1, 213] }, { 39: 214, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 215] }, { 39: 216, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 217] }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 33: [1, 221] }, { 33: [1, 222] }, { 33: [1, 223] }, { 39: 224, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 225] }, { 33: [1, 226] }, { 33: [1, 227] }, { 39: 228, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 229] }, { 39: 230, 43: $Vd, 44: $Ve, 45: $Vf }, { 33: [1, 231] }, { 33: [1, 232] }, { 33: [1, 233] }, { 39: 234, 43: $Vd, 44: $Ve, 45: $Vf }, o($V9, [2, 46]), o($V9, [2, 48]), o($V9, [2, 47]), o($V9, [2, 49]), o($V9, [2, 51]), o($V9, [2, 50]), o($V9, [2, 107]), o($V9, [2, 108]), o($V9, [2, 105]), o($V9, [2, 106]), o($V9, [2, 110]), o($V9, [2, 109]), o($V9, [2, 114]), o($V9, [2, 113]), o($V9, [2, 112]), o($V9, [2, 111]), o($V9, [2, 116]), o($V9, [2, 115]), o($V9, [2, 104]), o($V9, [2, 103]), o($V9, [2, 102]), o($V9, [2, 101]), o($V9, [2, 99]), o($V9, [2, 100]), o($V9, [2, 98]), o($V9, [2, 97]), o($V9, [2, 96]), o($V9, [2, 95]), o($V9, [2, 93]), o($V9, [2, 94])],\n defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 19;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 21;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n return 13;\n case 8:\n break;\n case 9:\n break;\n case 10:\n return 5;\n case 11:\n return 40;\n case 12:\n return 32;\n case 13:\n return 38;\n case 14:\n return 42;\n case 15:\n return 43;\n case 16:\n return 44;\n case 17:\n return 45;\n case 18:\n return 35;\n case 19:\n return 28;\n case 20:\n return 29;\n case 21:\n return 37;\n case 22:\n return 31;\n case 23:\n return 34;\n case 24:\n return 26;\n case 25:\n return 9;\n case 26:\n return 9;\n case 27:\n return 8;\n case 28:\n return \"CARET\";\n case 29:\n this.begin(\"options\");\n break;\n case 30:\n this.popState();\n break;\n case 31:\n return 12;\n case 32:\n return 36;\n case 33:\n this.begin(\"string\");\n break;\n case 34:\n this.popState();\n break;\n case 35:\n return 33;\n case 36:\n return 30;\n case 37:\n return 46;\n case 38:\n return 7;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:gitGraph\\b)/i, /^(?:commit(?=\\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\\b)/i, /^(?:REVERSE\\b)/i, /^(?:HIGHLIGHT\\b)/i, /^(?:tag:)/i, /^(?:branch(?=\\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\\s|$))/i, /^(?:cherry-pick(?=\\s|$))/i, /^(?:parent:)/i, /^(?:checkout(?=\\s|$))/i, /^(?:LR\\b)/i, /^(?:TB\\b)/i, /^(?::)/i, /^(?:\\^)/i, /^(?:options\\r?\\n)/i, /^(?:[ \\r\\n\\t]+end\\b)/i, /^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i, /^(?:[\"][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[0-9]+(?=\\s|$))/i, /^(?:\\w([-\\./\\w]*[-\\w])?)/i, /^(?:$)/i, /^(?:\\s+)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"options\": { \"rules\": [30, 31], \"inclusive\": false }, \"string\": { \"rules\": [34, 35], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 37, 38, 39], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst gitGraphParser = parser;\nlet mainBranchName = getConfig().gitGraph.mainBranchName;\nlet mainBranchOrder = getConfig().gitGraph.mainBranchOrder;\nlet commits = {};\nlet head = null;\nlet branchesConfig = {};\nbranchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };\nlet branches = {};\nbranches[mainBranchName] = head;\nlet curBranch = mainBranchName;\nlet direction = \"LR\";\nlet seq = 0;\nfunction getId() {\n return random({ length: 7 });\n}\nfunction uniqBy(list, fn) {\n const recordMap = /* @__PURE__ */ Object.create(null);\n return list.reduce((out, item) => {\n const key = fn(item);\n if (!recordMap[key]) {\n recordMap[key] = true;\n out.push(item);\n }\n return out;\n }, []);\n}\nconst setDirection = function(dir2) {\n direction = dir2;\n};\nlet options = {};\nconst setOptions = function(rawOptString) {\n log.debug(\"options str\", rawOptString);\n rawOptString = rawOptString && rawOptString.trim();\n rawOptString = rawOptString || \"{}\";\n try {\n options = JSON.parse(rawOptString);\n } catch (e) {\n log.error(\"error while parsing gitGraph options\", e.message);\n }\n};\nconst getOptions = function() {\n return options;\n};\nconst commit = function(msg, id, type, tag) {\n log.debug(\"Entering commit:\", msg, id, type, tag);\n id = common.sanitizeText(id, getConfig());\n msg = common.sanitizeText(msg, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n const commit2 = {\n id: id ? id : seq + \"-\" + getId(),\n message: msg,\n seq: seq++,\n type: type ? type : commitType$1.NORMAL,\n tag: tag ? tag : \"\",\n parents: head == null ? [] : [head.id],\n branch: curBranch\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(\"in pushCommit \" + commit2.id);\n};\nconst branch = function(name, order) {\n name = common.sanitizeText(name, getConfig());\n if (branches[name] === void 0) {\n branches[name] = head != null ? head.id : null;\n branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null };\n checkout(name);\n log.debug(\"in createBranch\");\n } else {\n let error = new Error(\n 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using \"checkout ' + name + '\")'\n );\n error.hash = {\n text: \"branch \" + name,\n token: \"branch \" + name,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"checkout ' + name + '\"']\n };\n throw error;\n }\n};\nconst merge = function(otherBranch, custom_id, override_type, custom_tag) {\n otherBranch = common.sanitizeText(otherBranch, getConfig());\n custom_id = common.sanitizeText(custom_id, getConfig());\n const currentCommit = commits[branches[curBranch]];\n const otherCommit = commits[branches[otherBranch]];\n if (curBranch === otherBranch) {\n let error = new Error('Incorrect usage of \"merge\". Cannot merge a branch to itself');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"commit\"]\n };\n throw error;\n } else if (branches[otherBranch] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") does not exist\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch \" + otherBranch]\n };\n throw error;\n } else if (otherCommit === void 0 || !otherCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"commit\"']\n };\n throw error;\n } else if (currentCommit === otherCommit) {\n let error = new Error('Incorrect usage of \"merge\". Both branches have same head');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (custom_id && commits[custom_id] !== void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Commit with id:' + custom_id + \" already exists, use different custom Id\"\n );\n error.hash = {\n text: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n token: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\n \"merge \" + otherBranch + \" \" + custom_id + \"_UNIQUE \" + override_type + \" \" + custom_tag\n ]\n };\n throw error;\n }\n const commit2 = {\n id: custom_id ? custom_id : seq + \"-\" + getId(),\n message: \"merged branch \" + otherBranch + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, branches[otherBranch]],\n branch: curBranch,\n type: commitType$1.MERGE,\n customType: override_type,\n customId: custom_id ? true : false,\n tag: custom_tag ? custom_tag : \"\"\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in mergeBranch\");\n};\nconst cherryPick = function(sourceId, targetId, tag, parentCommitId) {\n log.debug(\"Entering cherryPick:\", sourceId, targetId, tag);\n sourceId = common.sanitizeText(sourceId, getConfig());\n targetId = common.sanitizeText(targetId, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n parentCommitId = common.sanitizeText(parentCommitId, getConfig());\n if (!sourceId || commits[sourceId] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit id should exist and provided'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n let sourceCommit = commits[sourceId];\n let sourceCommitBranch = sourceCommit.branch;\n if (parentCommitId && !(Array.isArray(sourceCommit.parents) && sourceCommit.parents.includes(parentCommitId))) {\n let error = new Error(\n \"Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.\"\n );\n throw error;\n }\n if (sourceCommit.type === commitType$1.MERGE && !parentCommitId) {\n let error = new Error(\n \"Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.\"\n );\n throw error;\n }\n if (!targetId || commits[targetId] === void 0) {\n if (sourceCommitBranch === curBranch) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit is already on current branch'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const currentCommit = commits[branches[curBranch]];\n if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"cherry-pick\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const commit2 = {\n id: seq + \"-\" + getId(),\n message: \"cherry-picked \" + sourceCommit + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, sourceCommit.id],\n branch: curBranch,\n type: commitType$1.CHERRY_PICK,\n tag: tag ?? `cherry-pick:${sourceCommit.id}${sourceCommit.type === commitType$1.MERGE ? `|parent:${parentCommitId}` : \"\"}`\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in cherryPick\");\n }\n};\nconst checkout = function(branch2) {\n branch2 = common.sanitizeText(branch2, getConfig());\n if (branches[branch2] === void 0) {\n let error = new Error(\n 'Trying to checkout branch which is not yet created. (Help try using \"branch ' + branch2 + '\")'\n );\n error.hash = {\n text: \"checkout \" + branch2,\n token: \"checkout \" + branch2,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"branch ' + branch2 + '\"']\n };\n throw error;\n } else {\n curBranch = branch2;\n const id = branches[curBranch];\n head = commits[id];\n }\n};\nfunction upsert(arr, key, newVal) {\n const index = arr.indexOf(key);\n if (index === -1) {\n arr.push(newVal);\n } else {\n arr.splice(index, 1, newVal);\n }\n}\nfunction prettyPrintCommitHistory(commitArr) {\n const commit2 = commitArr.reduce((out, commit3) => {\n if (out.seq > commit3.seq) {\n return out;\n }\n return commit3;\n }, commitArr[0]);\n let line = \"\";\n commitArr.forEach(function(c) {\n if (c === commit2) {\n line += \"\t*\";\n } else {\n line += \"\t|\";\n }\n });\n const label = [line, commit2.id, commit2.seq];\n for (let branch2 in branches) {\n if (branches[branch2] === commit2.id) {\n label.push(branch2);\n }\n }\n log.debug(label.join(\" \"));\n if (commit2.parents && commit2.parents.length == 2) {\n const newCommit = commits[commit2.parents[0]];\n upsert(commitArr, commit2, newCommit);\n commitArr.push(commits[commit2.parents[1]]);\n } else if (commit2.parents.length == 0) {\n return;\n } else {\n const nextCommit = commits[commit2.parents];\n upsert(commitArr, commit2, nextCommit);\n }\n commitArr = uniqBy(commitArr, (c) => c.id);\n prettyPrintCommitHistory(commitArr);\n}\nconst prettyPrint = function() {\n log.debug(commits);\n const node = getCommitsArray()[0];\n prettyPrintCommitHistory([node]);\n};\nconst clear$1 = function() {\n commits = {};\n head = null;\n let mainBranch = getConfig().gitGraph.mainBranchName;\n let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder;\n branches = {};\n branches[mainBranch] = null;\n branchesConfig = {};\n branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };\n curBranch = mainBranch;\n seq = 0;\n clear$2();\n};\nconst getBranchesAsObjArray = function() {\n const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => {\n if (branchConfig.order !== null) {\n return branchConfig;\n }\n return {\n ...branchConfig,\n order: parseFloat(`0.${i}`, 10)\n };\n }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name }));\n return branchesArray;\n};\nconst getBranches = function() {\n return branches;\n};\nconst getCommits = function() {\n return commits;\n};\nconst getCommitsArray = function() {\n const commitArr = Object.keys(commits).map(function(key) {\n return commits[key];\n });\n commitArr.forEach(function(o) {\n log.debug(o.id);\n });\n commitArr.sort((a, b) => a.seq - b.seq);\n return commitArr;\n};\nconst getCurrentBranch = function() {\n return curBranch;\n};\nconst getDirection = function() {\n return direction;\n};\nconst getHead = function() {\n return head;\n};\nconst commitType$1 = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst gitGraphDb = {\n getConfig: () => getConfig().gitGraph,\n setDirection,\n setOptions,\n getOptions,\n commit,\n branch,\n merge,\n cherryPick,\n checkout,\n //reset,\n prettyPrint,\n clear: clear$1,\n getBranchesAsObjArray,\n getBranches,\n getCommits,\n getCommitsArray,\n getCurrentBranch,\n getDirection,\n getHead,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commitType: commitType$1\n};\nlet allCommitsDict = {};\nconst commitType = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst THEME_COLOR_LIMIT = 8;\nlet branchPos = {};\nlet commitPos = {};\nlet lanes = [];\nlet maxPos = 0;\nlet dir = \"LR\";\nconst clear = () => {\n branchPos = {};\n commitPos = {};\n allCommitsDict = {};\n maxPos = 0;\n lanes = [];\n dir = \"LR\";\n};\nconst drawText = (txt) => {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n let rows = [];\n if (typeof txt === \"string\") {\n rows = txt.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(txt)) {\n rows = txt;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n tspan.setAttribute(\"class\", \"row\");\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n};\nconst findClosestParent = (parents) => {\n let closestParent = \"\";\n let maxPosition = 0;\n parents.forEach((parent) => {\n const parentPosition = dir === \"TB\" ? commitPos[parent].y : commitPos[parent].x;\n if (parentPosition >= maxPosition) {\n closestParent = parent;\n maxPosition = parentPosition;\n }\n });\n return closestParent || void 0;\n};\nconst drawCommits = (svg, commits2, modifyGraph) => {\n const gitGraphConfig = getConfig().gitGraph;\n const gBullets = svg.append(\"g\").attr(\"class\", \"commit-bullets\");\n const gLabels = svg.append(\"g\").attr(\"class\", \"commit-labels\");\n let pos = 0;\n if (dir === \"TB\") {\n pos = 30;\n }\n const keys = Object.keys(commits2);\n const sortedKeys = keys.sort((a, b) => {\n return commits2[a].seq - commits2[b].seq;\n });\n const isParallelCommits = gitGraphConfig.parallelCommits;\n const layoutOffset = 10;\n const commitStep = 40;\n sortedKeys.forEach((key) => {\n const commit2 = commits2[key];\n if (isParallelCommits) {\n if (commit2.parents.length) {\n const closestParent = findClosestParent(commit2.parents);\n pos = dir === \"TB\" ? commitPos[closestParent].y + commitStep : commitPos[closestParent].x + commitStep;\n } else {\n pos = 0;\n if (dir === \"TB\") {\n pos = 30;\n }\n }\n }\n const posWithOffset = pos + layoutOffset;\n const y = dir === \"TB\" ? posWithOffset : branchPos[commit2.branch].pos;\n const x = dir === \"TB\" ? branchPos[commit2.branch].pos : posWithOffset;\n if (modifyGraph) {\n let typeClass;\n let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== \"\" ? commit2.customType : commit2.type;\n switch (commitSymbolType) {\n case commitType.NORMAL:\n typeClass = \"commit-normal\";\n break;\n case commitType.REVERSE:\n typeClass = \"commit-reverse\";\n break;\n case commitType.HIGHLIGHT:\n typeClass = \"commit-highlight\";\n break;\n case commitType.MERGE:\n typeClass = \"commit-merge\";\n break;\n case commitType.CHERRY_PICK:\n typeClass = \"commit-cherry-pick\";\n break;\n default:\n typeClass = \"commit-normal\";\n }\n if (commitSymbolType === commitType.HIGHLIGHT) {\n const circle = gBullets.append(\"rect\");\n circle.attr(\"x\", x - 10);\n circle.attr(\"y\", y - 10);\n circle.attr(\"height\", 20);\n circle.attr(\"width\", 20);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`\n );\n gBullets.append(\"rect\").attr(\"x\", x - 6).attr(\"y\", y - 6).attr(\"height\", 12).attr(\"width\", 12).attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`\n );\n } else if (commitSymbolType === commitType.CHERRY_PICK) {\n gBullets.append(\"circle\").attr(\"cx\", x).attr(\"cy\", y).attr(\"r\", 10).attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x - 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x + 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x + 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x - 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n } else {\n const circle = gBullets.append(\"circle\");\n circle.attr(\"cx\", x);\n circle.attr(\"cy\", y);\n circle.attr(\"r\", commit2.type === commitType.MERGE ? 9 : 10);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n if (commitSymbolType === commitType.MERGE) {\n const circle2 = gBullets.append(\"circle\");\n circle2.attr(\"cx\", x);\n circle2.attr(\"cy\", y);\n circle2.attr(\"r\", 6);\n circle2.attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n if (commitSymbolType === commitType.REVERSE) {\n const cross = gBullets.append(\"path\");\n cross.attr(\"d\", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n }\n }\n if (dir === \"TB\") {\n commitPos[commit2.id] = { x, y: posWithOffset };\n } else {\n commitPos[commit2.id] = { x: posWithOffset, y };\n }\n if (modifyGraph) {\n const px = 4;\n const py = 2;\n if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {\n const wrapper = gLabels.append(\"g\");\n const labelBkg = wrapper.insert(\"rect\").attr(\"class\", \"commit-label-bkg\");\n const text = wrapper.append(\"text\").attr(\"x\", pos).attr(\"y\", y + 25).attr(\"class\", \"commit-label\").text(commit2.id);\n let bbox = text.node().getBBox();\n labelBkg.attr(\"x\", posWithOffset - bbox.width / 2 - py).attr(\"y\", y + 13.5).attr(\"width\", bbox.width + 2 * py).attr(\"height\", bbox.height + 2 * py);\n if (dir === \"TB\") {\n labelBkg.attr(\"x\", x - (bbox.width + 4 * px + 5)).attr(\"y\", y - 12);\n text.attr(\"x\", x - (bbox.width + 4 * px)).attr(\"y\", y + bbox.height - 12);\n }\n if (dir !== \"TB\") {\n text.attr(\"x\", posWithOffset - bbox.width / 2);\n }\n if (gitGraphConfig.rotateCommitLabel) {\n if (dir === \"TB\") {\n text.attr(\"transform\", \"rotate(-45, \" + x + \", \" + y + \")\");\n labelBkg.attr(\"transform\", \"rotate(-45, \" + x + \", \" + y + \")\");\n } else {\n let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;\n let r_y = 10 + bbox.width / 25 * 8.5;\n wrapper.attr(\n \"transform\",\n \"translate(\" + r_x + \", \" + r_y + \") rotate(-45, \" + pos + \", \" + y + \")\"\n );\n }\n }\n }\n if (commit2.tag) {\n const rect = gLabels.insert(\"polygon\");\n const hole = gLabels.append(\"circle\");\n const tag = gLabels.append(\"text\").attr(\"y\", y - 16).attr(\"class\", \"tag-label\").text(commit2.tag);\n let tagBbox = tag.node().getBBox();\n tag.attr(\"x\", posWithOffset - tagBbox.width / 2);\n const h2 = tagBbox.height / 2;\n const ly = y - 19.2;\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${pos - tagBbox.width / 2 - px / 2},${ly + py}\n ${pos - tagBbox.width / 2 - px / 2},${ly - py}\n ${posWithOffset - tagBbox.width / 2 - px},${ly - h2 - py}\n ${posWithOffset + tagBbox.width / 2 + px},${ly - h2 - py}\n ${posWithOffset + tagBbox.width / 2 + px},${ly + h2 + py}\n ${posWithOffset - tagBbox.width / 2 - px},${ly + h2 + py}`\n );\n hole.attr(\"cx\", pos - tagBbox.width / 2 + px / 2).attr(\"cy\", ly).attr(\"r\", 1.5).attr(\"class\", \"tag-hole\");\n if (dir === \"TB\") {\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${x},${pos + py}\n ${x},${pos - py}\n ${x + layoutOffset},${pos - h2 - py}\n ${x + layoutOffset + tagBbox.width + px},${pos - h2 - py}\n ${x + layoutOffset + tagBbox.width + px},${pos + h2 + py}\n ${x + layoutOffset},${pos + h2 + py}`\n ).attr(\"transform\", \"translate(12,12) rotate(45, \" + x + \",\" + pos + \")\");\n hole.attr(\"cx\", x + px / 2).attr(\"cy\", pos).attr(\"transform\", \"translate(12,12) rotate(45, \" + x + \",\" + pos + \")\");\n tag.attr(\"x\", x + 5).attr(\"y\", pos + 3).attr(\"transform\", \"translate(14,14) rotate(45, \" + x + \",\" + pos + \")\");\n }\n }\n }\n pos += commitStep + layoutOffset;\n if (pos > maxPos) {\n maxPos = pos;\n }\n });\n};\nconst shouldRerouteArrow = (commitA, commitB, p1, p2, allCommits) => {\n const commitBIsFurthest = dir === \"TB\" ? p1.x < p2.x : p1.y < p2.y;\n const branchToGetCurve = commitBIsFurthest ? commitB.branch : commitA.branch;\n const isOnBranchToGetCurve = (x) => x.branch === branchToGetCurve;\n const isBetweenCommits = (x) => x.seq > commitA.seq && x.seq < commitB.seq;\n return Object.values(allCommits).some((commitX) => {\n return isBetweenCommits(commitX) && isOnBranchToGetCurve(commitX);\n });\n};\nconst findLane = (y1, y2, depth = 0) => {\n const candidate = y1 + Math.abs(y1 - y2) / 2;\n if (depth > 5) {\n return candidate;\n }\n let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);\n if (ok) {\n lanes.push(candidate);\n return candidate;\n }\n const diff = Math.abs(y1 - y2);\n return findLane(y1, y2 - diff / 5, depth + 1);\n};\nconst drawArrow = (svg, commitA, commitB, allCommits) => {\n const p1 = commitPos[commitA.id];\n const p2 = commitPos[commitB.id];\n const arrowNeedsRerouting = shouldRerouteArrow(commitA, commitB, p1, p2, allCommits);\n let arc = \"\";\n let arc2 = \"\";\n let radius = 0;\n let offset = 0;\n let colorClassNum = branchPos[commitB.branch].index;\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n colorClassNum = branchPos[commitA.branch].index;\n }\n let lineDef;\n if (arrowNeedsRerouting) {\n arc = \"A 10 10, 0, 0, 0,\";\n arc2 = \"A 10 10, 0, 0, 1,\";\n radius = 10;\n offset = 10;\n const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);\n const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x);\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n colorClassNum = branchPos[commitA.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;\n } else {\n colorClassNum = branchPos[commitA.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;\n }\n }\n } else {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x > p2.x) {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x + radius} ${p1.y} ${arc} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.x === p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.y > p2.y) {\n if (commitB.type === commitType.MERGE && commitA.id !== commitB.parents[0]) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y + radius} ${arc2} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n if (p1.y === p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`;\n }\n }\n }\n svg.append(\"path\").attr(\"d\", lineDef).attr(\"class\", \"arrow arrow\" + colorClassNum % THEME_COLOR_LIMIT);\n};\nconst drawArrows = (svg, commits2) => {\n const gArrows = svg.append(\"g\").attr(\"class\", \"commit-arrows\");\n Object.keys(commits2).forEach((key) => {\n const commit2 = commits2[key];\n if (commit2.parents && commit2.parents.length > 0) {\n commit2.parents.forEach((parent) => {\n drawArrow(gArrows, commits2[parent], commit2, commits2);\n });\n }\n });\n};\nconst drawBranches = (svg, branches2) => {\n const gitGraphConfig = getConfig().gitGraph;\n const g = svg.append(\"g\");\n branches2.forEach((branch2, index) => {\n const adjustIndexForTheme = index % THEME_COLOR_LIMIT;\n const pos = branchPos[branch2.name].pos;\n const line = g.append(\"line\");\n line.attr(\"x1\", 0);\n line.attr(\"y1\", pos);\n line.attr(\"x2\", maxPos);\n line.attr(\"y2\", pos);\n line.attr(\"class\", \"branch branch\" + adjustIndexForTheme);\n if (dir === \"TB\") {\n line.attr(\"y1\", 30);\n line.attr(\"x1\", pos);\n line.attr(\"y2\", maxPos);\n line.attr(\"x2\", pos);\n }\n lanes.push(pos);\n let name = branch2.name;\n const labelElement = drawText(name);\n const bkg = g.insert(\"rect\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\" + adjustIndexForTheme);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n bkg.attr(\"class\", \"branchLabelBkg label\" + adjustIndexForTheme).attr(\"rx\", 4).attr(\"ry\", 4).attr(\"x\", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr(\"y\", -bbox.height / 2 + 8).attr(\"width\", bbox.width + 18).attr(\"height\", bbox.height + 4);\n label.attr(\n \"transform\",\n \"translate(\" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + \", \" + (pos - bbox.height / 2 - 1) + \")\"\n );\n if (dir === \"TB\") {\n bkg.attr(\"x\", pos - bbox.width / 2 - 10).attr(\"y\", 0);\n label.attr(\"transform\", \"translate(\" + (pos - bbox.width / 2 - 5) + \", 0)\");\n }\n if (dir !== \"TB\") {\n bkg.attr(\"transform\", \"translate(-19, \" + (pos - bbox.height / 2) + \")\");\n }\n });\n};\nconst draw = function(txt, id, ver, diagObj) {\n clear();\n const conf = getConfig();\n const gitGraphConfig = conf.gitGraph;\n log.debug(\"in gitgraph renderer\", txt + \"\\n\", \"id:\", id, ver);\n allCommitsDict = diagObj.db.getCommits();\n const branches2 = diagObj.db.getBranchesAsObjArray();\n dir = diagObj.db.getDirection();\n const diagram2 = select(`[id=\"${id}\"]`);\n let pos = 0;\n branches2.forEach((branch2, index) => {\n const labelElement = drawText(branch2.name);\n const g = diagram2.append(\"g\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n branchPos[branch2.name] = { pos, index };\n pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0) + (dir === \"TB\" ? bbox.width / 2 : 0);\n label.remove();\n branchLabel.remove();\n g.remove();\n });\n drawCommits(diagram2, allCommitsDict, false);\n if (gitGraphConfig.showBranches) {\n drawBranches(diagram2, branches2);\n }\n drawArrows(diagram2, allCommitsDict);\n drawCommits(diagram2, allCommitsDict, true);\n utils.insertTitle(\n diagram2,\n \"gitTitleText\",\n gitGraphConfig.titleTopMargin,\n diagObj.db.getDiagramTitle()\n );\n setupGraphViewbox(\n void 0,\n diagram2,\n gitGraphConfig.diagramPadding,\n gitGraphConfig.useMaxWidth ?? conf.useMaxWidth\n );\n};\nconst gitGraphRenderer = {\n draw\n};\nconst getStyles = (options2) => `\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(\n (i) => `\n .branch-label${i} { fill: ${options2[\"gitBranchLabel\" + i]}; }\n .commit${i} { stroke: ${options2[\"git\" + i]}; fill: ${options2[\"git\" + i]}; }\n .commit-highlight${i} { stroke: ${options2[\"gitInv\" + i]}; fill: ${options2[\"gitInv\" + i]}; }\n .label${i} { fill: ${options2[\"git\" + i]}; }\n .arrow${i} { stroke: ${options2[\"git\" + i]}; }\n `\n).join(\"\\n\")}\n\n .branch {\n stroke-width: 1;\n stroke: ${options2.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}\n .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}\n .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }\n .tag-hole { fill: ${options2.textColor}; }\n\n .commit-merge {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n .commit-reverse {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options2.textColor};\n }\n`;\nconst gitGraphStyles = getStyles;\nconst diagram = {\n parser: gitGraphParser,\n db: gitGraphDb,\n renderer: gitGraphRenderer,\n styles: gitGraphStyles\n};\nexport {\n diagram\n};\n","import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport dayjs from \"dayjs\";\nimport dayjsIsoWeek from \"dayjs/plugin/isoWeek.js\";\nimport dayjsCustomParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport dayjsAdvancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport { c as getConfig, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, b as setAccDescription, a as getAccDescription, v as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from \"./mermaid-ad1dc92f.js\";\nimport { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, axisTop, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday } from \"d3\";\nimport \"ts-dedent\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [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], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setWeekday(\"monday\");\n break;\n case 9:\n yy.setWeekday(\"tuesday\");\n break;\n case 10:\n yy.setWeekday(\"wednesday\");\n break;\n case 11:\n yy.setWeekday(\"thursday\");\n break;\n case 12:\n yy.setWeekday(\"friday\");\n break;\n case 13:\n yy.setWeekday(\"saturday\");\n break;\n case 14:\n yy.setWeekday(\"sunday\");\n break;\n case 15:\n yy.setDateFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 16:\n yy.enableInclusiveEndDates();\n this.$ = $$[$0].substr(18);\n break;\n case 17:\n yy.TopAxis();\n this.$ = $$[$0].substr(8);\n break;\n case 18:\n yy.setAxisFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 19:\n yy.setTickInterval($$[$0].substr(13));\n this.$ = $$[$0].substr(13);\n break;\n case 20:\n yy.setExcludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 21:\n yy.setIncludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 22:\n yy.setTodayMarker($$[$0].substr(12));\n this.$ = $$[$0].substr(12);\n break;\n case 24:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 30:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 31:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0], null);\n break;\n case 32:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 33:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 34:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setLink($$[$0 - 3], $$[$0]);\n break;\n case 35:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0], null);\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n break;\n case 37:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 38:\n case 44:\n this.$ = $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 39:\n case 40:\n case 42:\n this.$ = $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 41:\n case 43:\n this.$ = $$[$0 - 3] + \" \" + $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return \"open_directive\";\n case 1:\n this.begin(\"acc_title\");\n return 28;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 30;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n return 10;\n case 12:\n break;\n case 13:\n break;\n case 14:\n this.begin(\"href\");\n break;\n case 15:\n this.popState();\n break;\n case 16:\n return 40;\n case 17:\n this.begin(\"callbackname\");\n break;\n case 18:\n this.popState();\n break;\n case 19:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 20:\n return 38;\n case 21:\n this.popState();\n break;\n case 22:\n return 39;\n case 23:\n this.begin(\"click\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return 37;\n case 26:\n return 4;\n case 27:\n return 19;\n case 28:\n return 20;\n case 29:\n return 21;\n case 30:\n return 22;\n case 31:\n return 23;\n case 32:\n return 25;\n case 33:\n return 24;\n case 34:\n return 26;\n case 35:\n return 12;\n case 36:\n return 13;\n case 37:\n return 14;\n case 38:\n return 15;\n case 39:\n return 16;\n case 40:\n return 17;\n case 41:\n return 18;\n case 42:\n return \"date\";\n case 43:\n return 27;\n case 44:\n return \"accDescription\";\n case 45:\n return 33;\n case 46:\n return 35;\n case 47:\n return 36;\n case 48:\n return \":\";\n case 49:\n return 6;\n case 50:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:%%(?!\\{)*[^\\n]*)/i, /^(?:[^\\}]%%*[^\\n]*)/i, /^(?:%%*[^\\n]*[\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:%[^\\n]*)/i, /^(?:href[\\s]+[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:call[\\s]+)/i, /^(?:\\([\\s]*\\))/i, /^(?:\\()/i, /^(?:[^(]*)/i, /^(?:\\))/i, /^(?:[^)]*)/i, /^(?:click[\\s]+)/i, /^(?:[\\s\\n])/i, /^(?:[^\\s\\n]*)/i, /^(?:gantt\\b)/i, /^(?:dateFormat\\s[^#\\n;]+)/i, /^(?:inclusiveEndDates\\b)/i, /^(?:topAxis\\b)/i, /^(?:axisFormat\\s[^#\\n;]+)/i, /^(?:tickInterval\\s[^#\\n;]+)/i, /^(?:includes\\s[^#\\n;]+)/i, /^(?:excludes\\s[^#\\n;]+)/i, /^(?:todayMarker\\s[^\\n;]+)/i, /^(?:weekday\\s+monday\\b)/i, /^(?:weekday\\s+tuesday\\b)/i, /^(?:weekday\\s+wednesday\\b)/i, /^(?:weekday\\s+thursday\\b)/i, /^(?:weekday\\s+friday\\b)/i, /^(?:weekday\\s+saturday\\b)/i, /^(?:weekday\\s+sunday\\b)/i, /^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accDescription\\s[^#\\n;]+)/i, /^(?:section\\s[^\\n]+)/i, /^(?:[^:\\n]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"callbackargs\": { \"rules\": [21, 22], \"inclusive\": false }, \"callbackname\": { \"rules\": [18, 19, 20], \"inclusive\": false }, \"href\": { \"rules\": [15, 16], \"inclusive\": false }, \"click\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 17, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst ganttParser = parser;\ndayjs.extend(dayjsIsoWeek);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsAdvancedFormat);\nlet dateFormat = \"\";\nlet axisFormat = \"\";\nlet tickInterval = void 0;\nlet todayMarker = \"\";\nlet includes = [];\nlet excludes = [];\nlet links = {};\nlet sections = [];\nlet tasks = [];\nlet currentSection = \"\";\nlet displayMode = \"\";\nconst tags = [\"active\", \"done\", \"crit\", \"milestone\"];\nlet funs = [];\nlet inclusiveEndDates = false;\nlet topAxis = false;\nlet weekday = \"sunday\";\nlet lastOrder = 0;\nconst clear = function() {\n sections = [];\n tasks = [];\n currentSection = \"\";\n funs = [];\n taskCnt = 0;\n lastTask = void 0;\n lastTaskID = void 0;\n rawTasks = [];\n dateFormat = \"\";\n axisFormat = \"\";\n displayMode = \"\";\n tickInterval = void 0;\n todayMarker = \"\";\n includes = [];\n excludes = [];\n inclusiveEndDates = false;\n topAxis = false;\n lastOrder = 0;\n links = {};\n clear$1();\n weekday = \"sunday\";\n};\nconst setAxisFormat = function(txt) {\n axisFormat = txt;\n};\nconst getAxisFormat = function() {\n return axisFormat;\n};\nconst setTickInterval = function(txt) {\n tickInterval = txt;\n};\nconst getTickInterval = function() {\n return tickInterval;\n};\nconst setTodayMarker = function(txt) {\n todayMarker = txt;\n};\nconst getTodayMarker = function() {\n return todayMarker;\n};\nconst setDateFormat = function(txt) {\n dateFormat = txt;\n};\nconst enableInclusiveEndDates = function() {\n inclusiveEndDates = true;\n};\nconst endDatesAreInclusive = function() {\n return inclusiveEndDates;\n};\nconst enableTopAxis = function() {\n topAxis = true;\n};\nconst topAxisEnabled = function() {\n return topAxis;\n};\nconst setDisplayMode = function(txt) {\n displayMode = txt;\n};\nconst getDisplayMode = function() {\n return displayMode;\n};\nconst getDateFormat = function() {\n return dateFormat;\n};\nconst setIncludes = function(txt) {\n includes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getIncludes = function() {\n return includes;\n};\nconst setExcludes = function(txt) {\n excludes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getExcludes = function() {\n return excludes;\n};\nconst getLinks = function() {\n return links;\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 10;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks = rawTasks;\n return tasks;\n};\nconst isInvalidDate = function(date, dateFormat2, excludes2, includes2) {\n if (includes2.includes(date.format(dateFormat2.trim()))) {\n return false;\n }\n if (date.isoWeekday() >= 6 && excludes2.includes(\"weekends\")) {\n return true;\n }\n if (excludes2.includes(date.format(\"dddd\").toLowerCase())) {\n return true;\n }\n return excludes2.includes(date.format(dateFormat2.trim()));\n};\nconst setWeekday = function(txt) {\n weekday = txt;\n};\nconst getWeekday = function() {\n return weekday;\n};\nconst checkTaskDates = function(task, dateFormat2, excludes2, includes2) {\n if (!excludes2.length || task.manualEndTime) {\n return;\n }\n let startTime;\n if (task.startTime instanceof Date) {\n startTime = dayjs(task.startTime);\n } else {\n startTime = dayjs(task.startTime, dateFormat2, true);\n }\n startTime = startTime.add(1, \"d\");\n let originalEndTime;\n if (task.endTime instanceof Date) {\n originalEndTime = dayjs(task.endTime);\n } else {\n originalEndTime = dayjs(task.endTime, dateFormat2, true);\n }\n const [fixedEndTime, renderEndTime] = fixTaskDates(\n startTime,\n originalEndTime,\n dateFormat2,\n excludes2,\n includes2\n );\n task.endTime = fixedEndTime.toDate();\n task.renderEndTime = renderEndTime;\n};\nconst fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {\n let invalid = false;\n let renderEndTime = null;\n while (startTime <= endTime) {\n if (!invalid) {\n renderEndTime = endTime.toDate();\n }\n invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);\n if (invalid) {\n endTime = endTime.add(1, \"d\");\n }\n startTime = startTime.add(1, \"d\");\n }\n return [endTime, renderEndTime];\n};\nconst getStartDate = function(prevTime, dateFormat2, str) {\n str = str.trim();\n const afterRePattern = /^after\\s+(?[\\d\\w- ]+)/;\n const afterStatement = afterRePattern.exec(str);\n if (afterStatement !== null) {\n let latestTask = null;\n for (const id of afterStatement.groups.ids.split(\" \")) {\n let task = findTaskById(id);\n if (task !== void 0 && (!latestTask || task.endTime > latestTask.endTime)) {\n latestTask = task;\n }\n }\n if (latestTask) {\n return latestTask.endTime;\n }\n const today = /* @__PURE__ */ new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n }\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n return mDate.toDate();\n } else {\n log.debug(\"Invalid date:\" + str);\n log.debug(\"With date format:\" + dateFormat2.trim());\n const d = new Date(str);\n if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously\n // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.\n // This can cause virtually infinite loops while rendering, so for the\n // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as\n // invalid.\n d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {\n throw new Error(\"Invalid date:\" + str);\n }\n return d;\n }\n};\nconst parseDuration = function(str) {\n const statement = /^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());\n if (statement !== null) {\n return [Number.parseFloat(statement[1]), statement[2]];\n }\n return [NaN, \"ms\"];\n};\nconst getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {\n str = str.trim();\n const untilRePattern = /^until\\s+(?[\\d\\w- ]+)/;\n const untilStatement = untilRePattern.exec(str);\n if (untilStatement !== null) {\n let earliestTask = null;\n for (const id of untilStatement.groups.ids.split(\" \")) {\n let task = findTaskById(id);\n if (task !== void 0 && (!earliestTask || task.startTime < earliestTask.startTime)) {\n earliestTask = task;\n }\n }\n if (earliestTask) {\n return earliestTask.startTime;\n }\n const today = /* @__PURE__ */ new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n }\n let parsedDate = dayjs(str, dateFormat2.trim(), true);\n if (parsedDate.isValid()) {\n if (inclusive) {\n parsedDate = parsedDate.add(1, \"d\");\n }\n return parsedDate.toDate();\n }\n let endTime = dayjs(prevTime);\n const [durationValue, durationUnit] = parseDuration(str);\n if (!Number.isNaN(durationValue)) {\n const newEndTime = endTime.add(durationValue, durationUnit);\n if (newEndTime.isValid()) {\n endTime = newEndTime;\n }\n }\n return endTime.toDate();\n};\nlet taskCnt = 0;\nconst parseId = function(idStr) {\n if (idStr === void 0) {\n taskCnt = taskCnt + 1;\n return \"task\" + taskCnt;\n }\n return idStr;\n};\nconst compileData = function(prevTask, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n let endTimeData = \"\";\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = prevTask.endTime;\n endTimeData = data[0];\n break;\n case 2:\n task.id = parseId();\n task.startTime = getStartDate(void 0, dateFormat, data[0]);\n endTimeData = data[1];\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = getStartDate(void 0, dateFormat, data[1]);\n endTimeData = data[2];\n break;\n }\n if (endTimeData) {\n task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);\n task.manualEndTime = dayjs(endTimeData, \"YYYY-MM-DD\", true).isValid();\n checkTaskDates(task, dateFormat, excludes, includes);\n }\n return task;\n};\nconst parseData = function(prevTaskId, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = {\n type: \"prevTaskEnd\",\n id: prevTaskId\n };\n task.endTime = {\n data: data[0]\n };\n break;\n case 2:\n task.id = parseId();\n task.startTime = {\n type: \"getStartDate\",\n startData: data[0]\n };\n task.endTime = {\n data: data[1]\n };\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = {\n type: \"getStartDate\",\n startData: data[1]\n };\n task.endTime = {\n data: data[2]\n };\n break;\n }\n return task;\n};\nlet lastTask;\nlet lastTaskID;\nlet rawTasks = [];\nconst taskDb = {};\nconst addTask = function(descr, data) {\n const rawTask = {\n section: currentSection,\n type: currentSection,\n processed: false,\n manualEndTime: false,\n renderEndTime: null,\n raw: { data },\n task: descr,\n classes: []\n };\n const taskInfo = parseData(lastTaskID, data);\n rawTask.raw.startTime = taskInfo.startTime;\n rawTask.raw.endTime = taskInfo.endTime;\n rawTask.id = taskInfo.id;\n rawTask.prevTaskId = lastTaskID;\n rawTask.active = taskInfo.active;\n rawTask.done = taskInfo.done;\n rawTask.crit = taskInfo.crit;\n rawTask.milestone = taskInfo.milestone;\n rawTask.order = lastOrder;\n lastOrder++;\n const pos = rawTasks.push(rawTask);\n lastTaskID = rawTask.id;\n taskDb[rawTask.id] = pos - 1;\n};\nconst findTaskById = function(id) {\n const pos = taskDb[id];\n return rawTasks[pos];\n};\nconst addTaskOrg = function(descr, data) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n const taskInfo = compileData(lastTask, data);\n newTask.startTime = taskInfo.startTime;\n newTask.endTime = taskInfo.endTime;\n newTask.id = taskInfo.id;\n newTask.active = taskInfo.active;\n newTask.done = taskInfo.done;\n newTask.crit = taskInfo.crit;\n newTask.milestone = taskInfo.milestone;\n lastTask = newTask;\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n const task = rawTasks[pos];\n let startTime = \"\";\n switch (rawTasks[pos].raw.startTime.type) {\n case \"prevTaskEnd\": {\n const prevTask = findTaskById(task.prevTaskId);\n task.startTime = prevTask.endTime;\n break;\n }\n case \"getStartDate\":\n startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);\n if (startTime) {\n rawTasks[pos].startTime = startTime;\n }\n break;\n }\n if (rawTasks[pos].startTime) {\n rawTasks[pos].endTime = getEndDate(\n rawTasks[pos].startTime,\n dateFormat,\n rawTasks[pos].raw.endTime.data,\n inclusiveEndDates\n );\n if (rawTasks[pos].endTime) {\n rawTasks[pos].processed = true;\n rawTasks[pos].manualEndTime = dayjs(\n rawTasks[pos].raw.endTime.data,\n \"YYYY-MM-DD\",\n true\n ).isValid();\n checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);\n }\n }\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst setLink = function(ids, _linkStr) {\n let linkStr = _linkStr;\n if (getConfig().securityLevel !== \"loose\") {\n linkStr = sanitizeUrl(_linkStr);\n }\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n window.open(linkStr, \"_self\");\n });\n links[id] = linkStr;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n rawTask.classes.push(className);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n utils.runFunc(functionName, ...argList);\n });\n }\n};\nconst pushFun = function(id, callbackFunction) {\n funs.push(\n function() {\n const elem = document.querySelector(`[id=\"${id}\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n },\n function() {\n const elem = document.querySelector(`[id=\"${id}-text\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n }\n );\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst ganttDb = {\n getConfig: () => getConfig().gantt,\n clear,\n setDateFormat,\n getDateFormat,\n enableInclusiveEndDates,\n endDatesAreInclusive,\n enableTopAxis,\n topAxisEnabled,\n setAxisFormat,\n getAxisFormat,\n setTickInterval,\n getTickInterval,\n setTodayMarker,\n getTodayMarker,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setDisplayMode,\n getDisplayMode,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n findTaskById,\n addTaskOrg,\n setIncludes,\n getIncludes,\n setExcludes,\n getExcludes,\n setClickEvent,\n setLink,\n getLinks,\n bindFunctions,\n parseDuration,\n isInvalidDate,\n setWeekday,\n getWeekday\n};\nfunction getTaskTags(data, task, tags2) {\n let matchFound = true;\n while (matchFound) {\n matchFound = false;\n tags2.forEach(function(t) {\n const pattern = \"^\\\\s*\" + t + \"\\\\s*$\";\n const regex = new RegExp(pattern);\n if (data[0].match(regex)) {\n task[t] = true;\n data.shift(1);\n matchFound = true;\n }\n });\n }\n}\nconst setConf = function() {\n log.debug(\"Something is calling, setConf, remove the call\");\n};\nconst mapWeekdayToTimeFunction = {\n monday: timeMonday,\n tuesday: timeTuesday,\n wednesday: timeWednesday,\n thursday: timeThursday,\n friday: timeFriday,\n saturday: timeSaturday,\n sunday: timeSunday\n};\nconst getMaxIntersections = (tasks2, orderOffset) => {\n let timeline = [...tasks2].map(() => -Infinity);\n let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);\n let maxIntersections = 0;\n for (const element of sorted) {\n for (let j = 0; j < timeline.length; j++) {\n if (element.startTime >= timeline[j]) {\n timeline[j] = element.endTime;\n element.order = j + orderOffset;\n if (j > maxIntersections) {\n maxIntersections = j;\n }\n break;\n }\n }\n }\n return maxIntersections;\n};\nlet w;\nconst draw = function(text, id, version, diagObj) {\n const conf = getConfig().gantt;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const elem = doc.getElementById(id);\n w = elem.parentElement.offsetWidth;\n if (w === void 0) {\n w = 1200;\n }\n if (conf.useWidth !== void 0) {\n w = conf.useWidth;\n }\n const taskArray = diagObj.db.getTasks();\n let categories = [];\n for (const element of taskArray) {\n categories.push(element.type);\n }\n categories = checkUnique(categories);\n const categoryHeights = {};\n let h = 2 * conf.topPadding;\n if (diagObj.db.getDisplayMode() === \"compact\" || conf.displayMode === \"compact\") {\n const categoryElements = {};\n for (const element of taskArray) {\n if (categoryElements[element.section] === void 0) {\n categoryElements[element.section] = [element];\n } else {\n categoryElements[element.section].push(element);\n }\n }\n let intersections = 0;\n for (const category of Object.keys(categoryElements)) {\n const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;\n intersections += categoryHeight;\n h += categoryHeight * (conf.barHeight + conf.barGap);\n categoryHeights[category] = categoryHeight;\n }\n } else {\n h += taskArray.length * (conf.barHeight + conf.barGap);\n for (const category of categories) {\n categoryHeights[category] = taskArray.filter((task) => task.type === category).length;\n }\n }\n elem.setAttribute(\"viewBox\", \"0 0 \" + w + \" \" + h);\n const svg = root.select(`[id=\"${id}\"]`);\n const timeScale = scaleTime().domain([\n min(taskArray, function(d) {\n return d.startTime;\n }),\n max(taskArray, function(d) {\n return d.endTime;\n })\n ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);\n function taskCompare(a, b) {\n const taskA = a.startTime;\n const taskB = b.startTime;\n let result = 0;\n if (taskA > taskB) {\n result = 1;\n } else if (taskA < taskB) {\n result = -1;\n }\n return result;\n }\n taskArray.sort(taskCompare);\n makeGantt(taskArray, w, h);\n configureSvgSize(svg, h, w, conf.useMaxWidth);\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", w / 2).attr(\"y\", conf.titleTopMargin).attr(\"class\", \"titleText\");\n function makeGantt(tasks2, pageWidth, pageHeight) {\n const barHeight = conf.barHeight;\n const gap = barHeight + conf.barGap;\n const topPadding = conf.topPadding;\n const leftPadding = conf.leftPadding;\n const colorScale = scaleLinear().domain([0, categories.length]).range([\"#00B9FA\", \"#F95002\"]).interpolate(interpolateHcl);\n drawExcludeDays(\n gap,\n topPadding,\n leftPadding,\n pageWidth,\n pageHeight,\n tasks2,\n diagObj.db.getExcludes(),\n diagObj.db.getIncludes()\n );\n makeGrid(leftPadding, topPadding, pageWidth, pageHeight);\n drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);\n vertLabels(gap, topPadding);\n drawToday(leftPadding, topPadding, pageWidth, pageHeight);\n }\n function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {\n const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];\n const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));\n svg.append(\"g\").selectAll(\"rect\").data(uniqueTasks).enter().append(\"rect\").attr(\"x\", 0).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad - 2;\n }).attr(\"width\", function() {\n return w2 - conf.rightPadding / 2;\n }).attr(\"height\", theGap).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n return \"section section\" + i % conf.numberSectionStyles;\n }\n }\n return \"section section0\";\n });\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(theArray).enter();\n const links2 = diagObj.db.getLinks();\n rectangles.append(\"rect\").attr(\"id\", function(d) {\n return d.id;\n }).attr(\"rx\", 3).attr(\"ry\", 3).attr(\"x\", function(d) {\n if (d.milestone) {\n return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n return timeScale(d.startTime) + theSidePad;\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad;\n }).attr(\"width\", function(d) {\n if (d.milestone) {\n return theBarHeight;\n }\n return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);\n }).attr(\"height\", theBarHeight).attr(\"transform-origin\", function(d, i) {\n i = d.order;\n return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + \"px \" + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + \"px\";\n }).attr(\"class\", function(d) {\n const res = \"task\";\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskClass = \"\";\n if (d.active) {\n if (d.crit) {\n taskClass += \" activeCrit\";\n } else {\n taskClass = \" active\";\n }\n } else if (d.done) {\n if (d.crit) {\n taskClass = \" doneCrit\";\n } else {\n taskClass = \" done\";\n }\n } else {\n if (d.crit) {\n taskClass += \" crit\";\n }\n }\n if (taskClass.length === 0) {\n taskClass = \" task\";\n }\n if (d.milestone) {\n taskClass = \" milestone \" + taskClass;\n }\n taskClass += secNum;\n taskClass += \" \" + classStr;\n return res + taskClass;\n });\n rectangles.append(\"text\").attr(\"id\", function(d) {\n return d.id + \"-text\";\n }).text(function(d) {\n return d.task;\n }).attr(\"font-size\", conf.fontSize).attr(\"x\", function(d) {\n let startX = timeScale(d.startTime);\n let endX = timeScale(d.renderEndTime || d.endTime);\n if (d.milestone) {\n startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return startX + theSidePad - 5;\n } else {\n return endX + theSidePad + 5;\n }\n } else {\n return (endX - startX) / 2 + startX + theSidePad;\n }\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;\n }).attr(\"text-height\", theBarHeight).attr(\"class\", function(d) {\n const startX = timeScale(d.startTime);\n let endX = timeScale(d.endTime);\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskType = \"\";\n if (d.active) {\n if (d.crit) {\n taskType = \"activeCritText\" + secNum;\n } else {\n taskType = \"activeText\" + secNum;\n }\n }\n if (d.done) {\n if (d.crit) {\n taskType = taskType + \" doneCritText\" + secNum;\n } else {\n taskType = taskType + \" doneText\" + secNum;\n }\n } else {\n if (d.crit) {\n taskType = taskType + \" critText\" + secNum;\n }\n }\n if (d.milestone) {\n taskType += \" milestoneText\";\n }\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return classStr + \" taskTextOutsideLeft taskTextOutside\" + secNum + \" \" + taskType;\n } else {\n return classStr + \" taskTextOutsideRight taskTextOutside\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n } else {\n return classStr + \" taskText taskText\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n });\n const securityLevel2 = getConfig().securityLevel;\n if (securityLevel2 === \"sandbox\") {\n let sandboxElement2;\n sandboxElement2 = select(\"#i\" + id);\n const doc2 = sandboxElement2.nodes()[0].contentDocument;\n rectangles.filter(function(d) {\n return links2[d.id] !== void 0;\n }).each(function(o) {\n var taskRect = doc2.querySelector(\"#\" + o.id);\n var taskText = doc2.querySelector(\"#\" + o.id + \"-text\");\n const oldParent = taskRect.parentNode;\n var Link = doc2.createElement(\"a\");\n Link.setAttribute(\"xlink:href\", links2[o.id]);\n Link.setAttribute(\"target\", \"_top\");\n oldParent.appendChild(Link);\n Link.appendChild(taskRect);\n Link.appendChild(taskText);\n });\n }\n }\n function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {\n if (excludes2.length === 0 && includes2.length === 0) {\n return;\n }\n let minTime;\n let maxTime;\n for (const { startTime, endTime } of tasks2) {\n if (minTime === void 0 || startTime < minTime) {\n minTime = startTime;\n }\n if (maxTime === void 0 || endTime > maxTime) {\n maxTime = endTime;\n }\n }\n if (!minTime || !maxTime) {\n return;\n }\n if (dayjs(maxTime).diff(dayjs(minTime), \"year\") > 5) {\n log.warn(\n \"The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.\"\n );\n return;\n }\n const dateFormat2 = diagObj.db.getDateFormat();\n const excludeRanges = [];\n let range = null;\n let d = dayjs(minTime);\n while (d.valueOf() <= maxTime) {\n if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {\n if (!range) {\n range = {\n start: d,\n end: d\n };\n } else {\n range.end = d;\n }\n } else {\n if (range) {\n excludeRanges.push(range);\n range = null;\n }\n }\n d = d.add(1, \"d\");\n }\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(excludeRanges).enter();\n rectangles.append(\"rect\").attr(\"id\", function(d2) {\n return \"exclude-\" + d2.start.format(\"YYYY-MM-DD\");\n }).attr(\"x\", function(d2) {\n return timeScale(d2.start) + theSidePad;\n }).attr(\"y\", conf.gridLineStartPadding).attr(\"width\", function(d2) {\n const renderEnd = d2.end.add(1, \"day\");\n return timeScale(renderEnd) - timeScale(d2.start);\n }).attr(\"height\", h2 - theTopPad - conf.gridLineStartPadding).attr(\"transform-origin\", function(d2, i) {\n return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + \"px \" + (i * theGap + 0.5 * h2).toString() + \"px\";\n }).attr(\"class\", \"exclude-range\");\n }\n function makeGrid(theSidePad, theTopPad, w2, h2) {\n let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n const reTickInterval = /^([1-9]\\d*)(millisecond|second|minute|hour|day|week|month)$/;\n const resultTickInterval = reTickInterval.exec(\n diagObj.db.getTickInterval() || conf.tickInterval\n );\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n bottomXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n bottomXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n bottomXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n bottomXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n bottomXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n bottomXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + (h2 - 50) + \")\").call(bottomXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10).attr(\"dy\", \"1em\");\n if (diagObj.db.topAxisEnabled() || conf.topAxis) {\n let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n topXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n topXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n topXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n topXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n topXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n topXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + theTopPad + \")\").call(topXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10);\n }\n }\n function vertLabels(theGap, theTopPad) {\n let prevGap = 0;\n const numOccurrences = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);\n svg.append(\"g\").selectAll(\"text\").data(numOccurrences).enter().append(function(d) {\n const rows = d[0].split(common.lineBreakRegex);\n const dy = -(rows.length - 1) / 2;\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"dy\", dy + \"em\");\n for (const [j, row] of rows.entries()) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttribute(\"alignment-baseline\", \"central\");\n tspan.setAttribute(\"x\", \"10\");\n if (j > 0) {\n tspan.setAttribute(\"dy\", \"1em\");\n }\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }).attr(\"x\", 10).attr(\"y\", function(d, i) {\n if (i > 0) {\n for (let j = 0; j < i; j++) {\n prevGap += numOccurrences[i - 1][1];\n return d[1] * theGap / 2 + prevGap * theGap + theTopPad;\n }\n } else {\n return d[1] * theGap / 2 + theTopPad;\n }\n }).attr(\"font-size\", conf.sectionFontSize).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d[0] === category) {\n return \"sectionTitle sectionTitle\" + i % conf.numberSectionStyles;\n }\n }\n return \"sectionTitle\";\n });\n }\n function drawToday(theSidePad, theTopPad, w2, h2) {\n const todayMarker2 = diagObj.db.getTodayMarker();\n if (todayMarker2 === \"off\") {\n return;\n }\n const todayG = svg.append(\"g\").attr(\"class\", \"today\");\n const today = /* @__PURE__ */ new Date();\n const todayLine = todayG.append(\"line\");\n todayLine.attr(\"x1\", timeScale(today) + theSidePad).attr(\"x2\", timeScale(today) + theSidePad).attr(\"y1\", conf.titleTopMargin).attr(\"y2\", h2 - conf.titleTopMargin).attr(\"class\", \"today\");\n if (todayMarker2 !== \"\") {\n todayLine.attr(\"style\", todayMarker2.replace(/,/g, \";\"));\n }\n }\n function checkUnique(arr) {\n const hash = {};\n const result = [];\n for (let i = 0, l = arr.length; i < l; ++i) {\n if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {\n hash[arr[i]] = true;\n result.push(arr[i]);\n }\n }\n return result;\n }\n};\nconst ganttRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .mermaid-main-font {\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .exclude-range {\n fill: ${options.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${options.sectionBkgColor};\n }\n\n .section2 {\n fill: ${options.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${options.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${options.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n }\n\n .grid .tick text {\n font-family: ${options.fontFamily};\n fill: ${options.textColor};\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${options.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideRight {\n fill: ${options.taskTextDarkColor};\n text-anchor: start;\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n\n .taskTextOutsideLeft {\n fill: ${options.taskTextDarkColor};\n text-anchor: end;\n }\n\n\n /* Special case clickable */\n\n .task.clickable {\n cursor: pointer;\n }\n\n .taskText.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${options.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${options.taskBkgColor};\n stroke: ${options.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${options.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${options.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${options.activeTaskBkgColor};\n stroke: ${options.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${options.doneTaskBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.titleColor || options.textColor};\n font-family: var(--mermaid-font-family, \"trebuchet ms\", verdana, arial, sans-serif);\n }\n`;\nconst ganttStyles = getStyles;\nconst diagram = {\n parser: ganttParser,\n db: ganttDb,\n renderer: ganttRenderer,\n styles: ganttStyles\n};\nexport {\n diagram\n};\n","import { l as log, A as selectSvgElement, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"d3\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 9, 10];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"info\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"statement\": 8, \"NL\": 9, \"showInfo\": 10, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"info\", 6: \"EOF\", 9: \"NL\", 10: \"showInfo\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n $$.length - 1;\n switch (yystate) {\n case 1:\n return yy;\n case 4:\n break;\n case 6:\n yy.setInfo(true);\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],\n defaultActions: { 4: [2, 1] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 4;\n case 1:\n return 9;\n case 2:\n return \"space\";\n case 3:\n return 10;\n case 4:\n return 6;\n case 5:\n return \"TXT\";\n }\n },\n rules: [/^(?:info\\b)/i, /^(?:[\\s\\n\\r]+)/i, /^(?:[\\s]+)/i, /^(?:showInfo\\b)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_INFO_DB = {\n info: false\n};\nlet info = DEFAULT_INFO_DB.info;\nconst setInfo = (toggle) => {\n info = toggle;\n};\nconst getInfo = () => info;\nconst clear = () => {\n info = DEFAULT_INFO_DB.info;\n};\nconst db = {\n clear,\n setInfo,\n getInfo\n};\nconst draw = (text, id, version) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version}`);\n};\nconst renderer = { draw };\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n","import { B as defaultConfig, q as setDiagramTitle, t as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, d as sanitizeText, c as getConfig$1, l as log, C as cleanAndMerge, A as selectSvgElement, D as parseFontSize, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport { arc, scaleOrdinal, pie } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V5 = [2, 4], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V7 = [20, 21, 22], $V8 = [2, 7], $V9 = [1, 12], $Va = [1, 13], $Vb = [1, 14], $Vc = [1, 15], $Vd = [1, 16], $Ve = [1, 17];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setShowData(true);\n break;\n case 6:\n this.$ = $$[$0 - 1];\n break;\n case 8:\n yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 10:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 11:\n case 12:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 13:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, o($V4, $V5, { 6: 8, 7: [1, 9] }), o($V6, [2, 14]), o($V6, [2, 15]), o($V6, [2, 16]), { 1: [2, 1] }, o($V7, $V8, { 8: 10, 9: 11, 1: [2, 2], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, $V5, { 6: 18 }), o($V4, [2, 5]), { 4: 19, 20: $V1, 21: $V2, 22: $V3 }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, o($V7, [2, 12]), o($V7, [2, 13]), o($V7, $V8, { 8: 10, 9: 11, 1: [2, 3], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, [2, 6]), o($V7, [2, 8]), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11])],\n defaultActions: { 7: [2, 1] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 20;\n case 3:\n break;\n case 4:\n break;\n case 5:\n this.begin(\"title\");\n return 12;\n case 6:\n this.popState();\n return \"title_value\";\n case 7:\n this.begin(\"acc_title\");\n return 14;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 16;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n this.begin(\"string\");\n break;\n case 15:\n this.popState();\n break;\n case 16:\n return \"txt\";\n case 17:\n return 5;\n case 18:\n return 7;\n case 19:\n return \"value\";\n case 20:\n return 22;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:[\\s]+)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:pie\\b)/i, /^(?:showData\\b)/i, /^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [6], \"inclusive\": false }, \"string\": { \"rules\": [15, 16], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_PIE_CONFIG = defaultConfig.pie;\nconst DEFAULT_PIE_DB = {\n sections: {},\n showData: false,\n config: DEFAULT_PIE_CONFIG\n};\nlet sections = DEFAULT_PIE_DB.sections;\nlet showData = DEFAULT_PIE_DB.showData;\nconst config = structuredClone(DEFAULT_PIE_CONFIG);\nconst getConfig = () => structuredClone(config);\nconst clear = () => {\n sections = structuredClone(DEFAULT_PIE_DB.sections);\n showData = DEFAULT_PIE_DB.showData;\n clear$1();\n};\nconst addSection = (label, value) => {\n label = sanitizeText(label, getConfig$1());\n if (sections[label] === void 0) {\n sections[label] = value;\n log.debug(`added new section: ${label}, with value: ${value}`);\n }\n};\nconst getSections = () => sections;\nconst cleanupValue = (value) => {\n if (value.substring(0, 1) === \":\") {\n value = value.substring(1).trim();\n }\n return Number(value.trim());\n};\nconst setShowData = (toggle) => {\n showData = toggle;\n};\nconst getShowData = () => showData;\nconst db = {\n getConfig,\n clear,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n cleanupValue,\n setShowData,\n getShowData\n};\nconst getStyles = (options) => `\n .pieCircle{\n stroke: ${options.pieStrokeColor};\n stroke-width : ${options.pieStrokeWidth};\n opacity : ${options.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${options.pieOuterStrokeColor};\n stroke-width: ${options.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${options.pieTitleTextSize};\n fill: ${options.pieTitleTextColor};\n font-family: ${options.fontFamily};\n }\n .slice {\n font-family: ${options.fontFamily};\n fill: ${options.pieSectionTextColor};\n font-size:${options.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${options.pieLegendTextColor};\n font-family: ${options.fontFamily};\n font-size: ${options.pieLegendTextSize};\n }\n`;\nconst styles = getStyles;\nconst createPieArcs = (sections2) => {\n const pieData = Object.entries(sections2).map((element) => {\n return {\n label: element[0],\n value: element[1]\n };\n }).sort((a, b) => {\n return b.value - a.value;\n });\n const pie$1 = pie().value(\n (d3Section) => d3Section.value\n );\n return pie$1(pieData);\n};\nconst draw = (text, id, _version, diagObj) => {\n log.debug(\"rendering pie chart\\n\" + text);\n const db2 = diagObj.db;\n const globalConfig = getConfig$1();\n const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie);\n const MARGIN = 40;\n const LEGEND_RECT_SIZE = 18;\n const LEGEND_SPACING = 4;\n const height = 450;\n const pieWidth = height;\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\");\n const sections2 = db2.getSections();\n group.attr(\"transform\", \"translate(\" + pieWidth / 2 + \",\" + height / 2 + \")\");\n const { themeVariables } = globalConfig;\n let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);\n outerStrokeWidth ?? (outerStrokeWidth = 2);\n const textPosition = pieConfig.textPosition;\n const radius = Math.min(pieWidth, height) / 2 - MARGIN;\n const arcGenerator = arc().innerRadius(0).outerRadius(radius);\n const labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);\n group.append(\"circle\").attr(\"cx\", 0).attr(\"cy\", 0).attr(\"r\", radius + outerStrokeWidth / 2).attr(\"class\", \"pieOuterCircle\");\n const arcs = createPieArcs(sections2);\n const myGeneratedColors = [\n themeVariables.pie1,\n themeVariables.pie2,\n themeVariables.pie3,\n themeVariables.pie4,\n themeVariables.pie5,\n themeVariables.pie6,\n themeVariables.pie7,\n themeVariables.pie8,\n themeVariables.pie9,\n themeVariables.pie10,\n themeVariables.pie11,\n themeVariables.pie12\n ];\n const color = scaleOrdinal(myGeneratedColors);\n group.selectAll(\"mySlices\").data(arcs).enter().append(\"path\").attr(\"d\", arcGenerator).attr(\"fill\", (datum) => {\n return color(datum.data.label);\n }).attr(\"class\", \"pieCircle\");\n let sum = 0;\n Object.keys(sections2).forEach((key) => {\n sum += sections2[key];\n });\n group.selectAll(\"mySlices\").data(arcs).enter().append(\"text\").text((datum) => {\n return (datum.data.value / sum * 100).toFixed(0) + \"%\";\n }).attr(\"transform\", (datum) => {\n return \"translate(\" + labelArcGenerator.centroid(datum) + \")\";\n }).style(\"text-anchor\", \"middle\").attr(\"class\", \"slice\");\n group.append(\"text\").text(db2.getDiagramTitle()).attr(\"x\", 0).attr(\"y\", -(height - 50) / 2).attr(\"class\", \"pieTitleText\");\n const legend = group.selectAll(\".legend\").data(color.domain()).enter().append(\"g\").attr(\"class\", \"legend\").attr(\"transform\", (_datum, index) => {\n const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING;\n const offset = height2 * color.domain().length / 2;\n const horizontal = 12 * LEGEND_RECT_SIZE;\n const vertical = index * height2 - offset;\n return \"translate(\" + horizontal + \",\" + vertical + \")\";\n });\n legend.append(\"rect\").attr(\"width\", LEGEND_RECT_SIZE).attr(\"height\", LEGEND_RECT_SIZE).style(\"fill\", color).style(\"stroke\", color);\n legend.data(arcs).append(\"text\").attr(\"x\", LEGEND_RECT_SIZE + LEGEND_SPACING).attr(\"y\", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum) => {\n const { label, value } = datum.data;\n if (db2.getShowData()) {\n return `${label} [${value}]`;\n }\n return label;\n });\n const longestTextWidth = Math.max(\n ...legend.selectAll(\"text\").nodes().map((node) => (node == null ? void 0 : node.getBoundingClientRect().width) ?? 0)\n );\n const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth;\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${height}`);\n configureSvgSize(svg, height, totalWidth, pieConfig.useMaxWidth);\n};\nconst renderer = { draw };\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n","import { E as getThemeVariables, B as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, v as clear$1, d as sanitizeText, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport { scaleLinear, select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [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], $V6 = [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], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 12:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 13:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 14:\n case 15:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 16:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 17:\n yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 18:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 19:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 20:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 21:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 22:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 23:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 24:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 25:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 26:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 27:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 31:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 32:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 33:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 34:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 35:\n this.$ = $$[$0];\n break;\n case 36:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])],\n defaultActions: { 8: [2, 1], 9: [2, 2] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 32;\n case 3:\n break;\n case 4:\n this.begin(\"title\");\n return 13;\n case 5:\n this.popState();\n return \"title_value\";\n case 6:\n this.begin(\"acc_title\");\n return 15;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 17;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 25;\n case 14:\n return 27;\n case 15:\n return 26;\n case 16:\n return 28;\n case 17:\n return 29;\n case 18:\n return 30;\n case 19:\n return 31;\n case 20:\n this.begin(\"md_string\");\n break;\n case 21:\n return \"MD_STR\";\n case 22:\n this.popState();\n break;\n case 23:\n this.begin(\"string\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n case 26:\n this.begin(\"point_start\");\n return 22;\n case 27:\n this.begin(\"point_x\");\n return 23;\n case 28:\n this.popState();\n break;\n case 29:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 30:\n this.popState();\n return 24;\n case 31:\n return 6;\n case 32:\n return 43;\n case 33:\n return \"COLON\";\n case 34:\n return 45;\n case 35:\n return 44;\n case 36:\n return 46;\n case 37:\n return 46;\n case 38:\n return 47;\n case 39:\n return 49;\n case 40:\n return 50;\n case 41:\n return 48;\n case 42:\n return 41;\n case 43:\n return 51;\n case 44:\n return 42;\n case 45:\n return 5;\n case 46:\n return 33;\n case 47:\n return 40;\n case 48:\n return 34;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\s*:\\s*\\[\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?:\\s*\\] *)/i, /^(?:\\s*,\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s)/i, /^(?:;)/i, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i, /^(?:$)/i],\n conditions: { \"point_y\": { \"rules\": [30], \"inclusive\": false }, \"point_x\": { \"rules\": [29], \"inclusive\": false }, \"point_start\": { \"rules\": [27, 28], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"title\": { \"rules\": [5], \"inclusive\": false }, \"md_string\": { \"rules\": [21, 22], \"inclusive\": false }, \"string\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst defaultThemeVariables = getThemeVariables();\nclass QuadrantBuilder {\n constructor() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n log.info(\"clear called\");\n }\n setData(data) {\n this.data = { ...this.data, ...data };\n }\n addPoints(points) {\n this.data.points = [...points, ...this.data.points];\n }\n setConfig(config2) {\n log.trace(\"setConfig called with: \", config2);\n this.config = { ...this.config, ...config2 };\n }\n setThemeConfig(themeConfig) {\n log.trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = { ...this.themeConfig, ...themeConfig };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft,\n quadrantTop,\n quadrantWidth,\n quadrantHalfWidth,\n quadrantHeight,\n quadrantHalfHeight\n };\n return {\n xAxisSpace,\n yAxisSpace,\n titleSpace,\n quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace, titleSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.xAxisRightText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.yAxisBottomText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n if (this.data.yAxisTopText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants) {\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n const points = this.data.points.map((point) => {\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: this.themeConfig.quadrantPointFill,\n radius: this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n }\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) {\n return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n }\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n}\nconst config = getConfig();\nfunction textSanitizer(text) {\n return sanitizeText(text.trim(), config);\n}\nconst quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant2Text(textObj) {\n quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant3Text(textObj) {\n quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant4Text(textObj) {\n quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\nfunction setXAxisLeftText(textObj) {\n quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\nfunction setXAxisRightText(textObj) {\n quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\nfunction setYAxisTopText(textObj) {\n quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\nfunction setYAxisBottomText(textObj) {\n quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\nfunction addPoint(textObj, x, y) {\n quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]);\n}\nfunction setWidth(width) {\n quadrantBuilder.setConfig({ chartWidth: width });\n}\nfunction setHeight(height) {\n quadrantBuilder.setConfig({ chartHeight: height });\n}\nfunction getQuadrantData() {\n const config2 = getConfig();\n const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) {\n quadrantBuilder.setConfig(quadrantChartConfig);\n }\n quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n quadrantBuilder.setData({ titleText: getDiagramTitle() });\n return quadrantBuilder.build();\n}\nconst clear = function() {\n quadrantBuilder.clear();\n clear$1();\n};\nconst db = {\n setWidth,\n setHeight,\n setQuadrant1Text,\n setQuadrant2Text,\n setQuadrant3Text,\n setQuadrant4Text,\n setXAxisLeftText,\n setXAxisRightText,\n setYAxisTopText,\n setYAxisBottomText,\n addPoint,\n getQuadrantData,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\nconst draw = (txt, id, _version, diagObj) => {\n var _a, _b, _c;\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n const conf = getConfig();\n log.debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) {\n titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n }\n if (quadrantData.borderLines) {\n borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n }\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles: () => \"\"\n};\nexport {\n diagram\n};\n","import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, t as getDiagramTitle, a as getAccDescription, b as setAccDescription, E as getThemeVariables, F as getConfig, C as cleanAndMerge, B as defaultConfig, v as clear$1, d as sanitizeText, A as selectSvgElement, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport { c as computeDimensionOfText } from \"./createText-d213de94.js\";\nimport { scaleBand, scaleLinear, line } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"XYCHART\": 5, \"chartConfig\": 6, \"document\": 7, \"CHART_ORIENTATION\": 8, \"statement\": 9, \"title\": 10, \"text\": 11, \"X_AXIS\": 12, \"parseXAxis\": 13, \"Y_AXIS\": 14, \"parseYAxis\": 15, \"LINE\": 16, \"plotData\": 17, \"BAR\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"SQUARE_BRACES_START\": 24, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"XYCHART\", 8: \"CHART_ORIENTATION\", 10: \"title\", 12: \"X_AXIS\", 14: \"Y_AXIS\", 16: \"LINE\", 18: \"BAR\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"SQUARE_BRACES_START\", 26: \"SQUARE_BRACES_END\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:(\\r?\\n))/i, /^(?:(\\r?\\n))/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:\\{)/i, /^(?:[^\\}]*)/i, /^(?:xychart-beta\\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\\b)/i, /^(?:y-axis\\b)/i, /^(?:\\[)/i, /^(?:-->)/i, /^(?:line\\b)/i, /^(?:bar\\b)/i, /^(?:\\[)/i, /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i, /^(?:\\])/i, /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n\\(\\?:`))/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s+)/i, /^(?:;)/i, /^(?:$)/i],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [27, 28], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass TextDimensionCalculatorWithFont {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n}\nclass BandAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass LinearAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimensionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimensionCalculator\n );\n}\nclass ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n}\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n}\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizontalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizontalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n}\nclass XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet plotIndex = 0;\nlet tmpSVGGroup;\nlet xyChartConfig = getChartDefaultConfig();\nlet xyChartThemeConfig = getChartDefaultThemeConfig();\nlet xyChartData = getChartDefaultData();\nlet plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nlet hasSetXAxis = false;\nlet hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig.xyChart,\n config.xyChart\n );\n}\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\nfunction getChartConfig() {\n return xyChartConfig;\n}\nconst clear = function() {\n clear$1();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n};\nconst db = {\n getDrawableElem,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig\n};\nconst draw = (txt, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n","import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, l as log, v as clear$1, i as configureSvgSize, e as common } from \"./mermaid-ad1dc92f.js\";\nimport { select, line } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 5:\n case 6:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 7:\n this.$ = [];\n break;\n case 13:\n yy.addRequirement($$[$0 - 3], $$[$0 - 4]);\n break;\n case 14:\n yy.setNewReqId($$[$0 - 2]);\n break;\n case 15:\n yy.setNewReqText($$[$0 - 2]);\n break;\n case 16:\n yy.setNewReqRisk($$[$0 - 2]);\n break;\n case 17:\n yy.setNewReqVerifyMethod($$[$0 - 2]);\n break;\n case 20:\n this.$ = yy.RequirementType.REQUIREMENT;\n break;\n case 21:\n this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;\n break;\n case 22:\n this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;\n break;\n case 23:\n this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;\n break;\n case 24:\n this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;\n break;\n case 25:\n this.$ = yy.RequirementType.DESIGN_CONSTRAINT;\n break;\n case 26:\n this.$ = yy.RiskLevel.LOW_RISK;\n break;\n case 27:\n this.$ = yy.RiskLevel.MED_RISK;\n break;\n case 28:\n this.$ = yy.RiskLevel.HIGH_RISK;\n break;\n case 29:\n this.$ = yy.VerifyType.VERIFY_ANALYSIS;\n break;\n case 30:\n this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;\n break;\n case 31:\n this.$ = yy.VerifyType.VERIFY_INSPECTION;\n break;\n case 32:\n this.$ = yy.VerifyType.VERIFY_TEST;\n break;\n case 33:\n yy.addElement($$[$0 - 3]);\n break;\n case 34:\n yy.setNewElementType($$[$0 - 2]);\n break;\n case 35:\n yy.setNewElementDocRef($$[$0 - 2]);\n break;\n case 38:\n yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 39:\n yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 40:\n this.$ = yy.Relationships.CONTAINS;\n break;\n case 41:\n this.$ = yy.Relationships.COPIES;\n break;\n case 42:\n this.$ = yy.Relationships.DERIVES;\n break;\n case 43:\n this.$ = yy.Relationships.SATISFIES;\n break;\n case 44:\n this.$ = yy.Relationships.VERIFIES;\n break;\n case 45:\n this.$ = yy.Relationships.REFINES;\n break;\n case 46:\n this.$ = yy.Relationships.TRACES;\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o($Vg, [2, 20]), o($Vg, [2, 21]), o($Vg, [2, 22]), o($Vg, [2, 23]), o($Vg, [2, 24]), o($Vg, [2, 25]), o($Vh, [2, 49]), o($Vh, [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: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o($Vp, [2, 40]), o($Vp, [2, 41]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o($VA, [2, 19]), o($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 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] }, o($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o($VA, [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: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o($VA, [2, 14]), o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 34]), o($VA, [2, 35])],\n 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] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return \"title\";\n case 1:\n this.begin(\"acc_title\");\n return 9;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 11;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n return 5;\n case 9:\n break;\n case 10:\n break;\n case 11:\n break;\n case 12:\n return 8;\n case 13:\n return 6;\n case 14:\n return 19;\n case 15:\n return 30;\n case 16:\n return 22;\n case 17:\n return 21;\n case 18:\n return 24;\n case 19:\n return 26;\n case 20:\n return 28;\n case 21:\n return 31;\n case 22:\n return 32;\n case 23:\n return 33;\n case 24:\n return 34;\n case 25:\n return 35;\n case 26:\n return 36;\n case 27:\n return 37;\n case 28:\n return 38;\n case 29:\n return 39;\n case 30:\n return 40;\n case 31:\n return 41;\n case 32:\n return 42;\n case 33:\n return 43;\n case 34:\n return 44;\n case 35:\n return 55;\n case 36:\n return 56;\n case 37:\n return 57;\n case 38:\n return 58;\n case 39:\n return 59;\n case 40:\n return 60;\n case 41:\n return 61;\n case 42:\n return 47;\n case 43:\n return 49;\n case 44:\n return 51;\n case 45:\n return 54;\n case 46:\n return 53;\n case 47:\n this.begin(\"string\");\n break;\n case 48:\n this.popState();\n break;\n case 49:\n return \"qString\";\n case 50:\n yy_.yytext = yy_.yytext.trim();\n return 62;\n }\n },\n rules: [/^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\\b)/i, /^(?:\\{)/i, /^(?:\\})/i, /^(?::)/i, /^(?:id\\b)/i, /^(?:text\\b)/i, /^(?:risk\\b)/i, /^(?:verifyMethod\\b)/i, /^(?:requirement\\b)/i, /^(?:functionalRequirement\\b)/i, /^(?:interfaceRequirement\\b)/i, /^(?:performanceRequirement\\b)/i, /^(?:physicalRequirement\\b)/i, /^(?:designConstraint\\b)/i, /^(?:low\\b)/i, /^(?:medium\\b)/i, /^(?:high\\b)/i, /^(?:analysis\\b)/i, /^(?:demonstration\\b)/i, /^(?:inspection\\b)/i, /^(?:test\\b)/i, /^(?:element\\b)/i, /^(?:contains\\b)/i, /^(?:copies\\b)/i, /^(?:derives\\b)/i, /^(?:satisfies\\b)/i, /^(?:verifies\\b)/i, /^(?:refines\\b)/i, /^(?:traces\\b)/i, /^(?:type\\b)/i, /^(?:docref\\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"unqString\": { \"rules\": [], \"inclusive\": false }, \"token\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [48, 49], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet relations = [];\nlet latestRequirement = {};\nlet requirements = {};\nlet latestElement = {};\nlet elements = {};\nconst RequirementType = {\n REQUIREMENT: \"Requirement\",\n FUNCTIONAL_REQUIREMENT: \"Functional Requirement\",\n INTERFACE_REQUIREMENT: \"Interface Requirement\",\n PERFORMANCE_REQUIREMENT: \"Performance Requirement\",\n PHYSICAL_REQUIREMENT: \"Physical Requirement\",\n DESIGN_CONSTRAINT: \"Design Constraint\"\n};\nconst RiskLevel = {\n LOW_RISK: \"Low\",\n MED_RISK: \"Medium\",\n HIGH_RISK: \"High\"\n};\nconst VerifyType = {\n VERIFY_ANALYSIS: \"Analysis\",\n VERIFY_DEMONSTRATION: \"Demonstration\",\n VERIFY_INSPECTION: \"Inspection\",\n VERIFY_TEST: \"Test\"\n};\nconst Relationships = {\n CONTAINS: \"contains\",\n COPIES: \"copies\",\n DERIVES: \"derives\",\n SATISFIES: \"satisfies\",\n VERIFIES: \"verifies\",\n REFINES: \"refines\",\n TRACES: \"traces\"\n};\nconst addRequirement = (name, type) => {\n if (requirements[name] === void 0) {\n requirements[name] = {\n name,\n type,\n id: latestRequirement.id,\n text: latestRequirement.text,\n risk: latestRequirement.risk,\n verifyMethod: latestRequirement.verifyMethod\n };\n }\n latestRequirement = {};\n return requirements[name];\n};\nconst getRequirements = () => requirements;\nconst setNewReqId = (id) => {\n if (latestRequirement !== void 0) {\n latestRequirement.id = id;\n }\n};\nconst setNewReqText = (text) => {\n if (latestRequirement !== void 0) {\n latestRequirement.text = text;\n }\n};\nconst setNewReqRisk = (risk) => {\n if (latestRequirement !== void 0) {\n latestRequirement.risk = risk;\n }\n};\nconst setNewReqVerifyMethod = (verifyMethod) => {\n if (latestRequirement !== void 0) {\n latestRequirement.verifyMethod = verifyMethod;\n }\n};\nconst addElement = (name) => {\n if (elements[name] === void 0) {\n elements[name] = {\n name,\n type: latestElement.type,\n docRef: latestElement.docRef\n };\n log.info(\"Added new requirement: \", name);\n }\n latestElement = {};\n return elements[name];\n};\nconst getElements = () => elements;\nconst setNewElementType = (type) => {\n if (latestElement !== void 0) {\n latestElement.type = type;\n }\n};\nconst setNewElementDocRef = (docRef) => {\n if (latestElement !== void 0) {\n latestElement.docRef = docRef;\n }\n};\nconst addRelationship = (type, src, dst) => {\n relations.push({\n type,\n src,\n dst\n });\n};\nconst getRelationships = () => relations;\nconst clear = () => {\n relations = [];\n latestRequirement = {};\n requirements = {};\n latestElement = {};\n elements = {};\n clear$1();\n};\nconst db = {\n RequirementType,\n RiskLevel,\n VerifyType,\n Relationships,\n getConfig: () => getConfig().req,\n addRequirement,\n getRequirements,\n setNewReqId,\n setNewReqText,\n setNewReqRisk,\n setNewReqVerifyMethod,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addElement,\n getElements,\n setNewElementType,\n setNewElementDocRef,\n addRelationship,\n getRelationships,\n clear\n};\nconst getStyles = (options) => `\n\n marker {\n fill: ${options.relationColor};\n stroke: ${options.relationColor};\n }\n\n marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n .reqBox {\n fill: ${options.requirementBackground};\n fill-opacity: 1.0;\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${options.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${options.relationLabelBackground};\n fill-opacity: 1.0;\n }\n\n .req-title-line {\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${options.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${options.relationLabelColor};\n }\n\n`;\nconst styles = getStyles;\nconst ReqMarkers = {\n CONTAINS: \"contains\",\n ARROW: \"arrow\"\n};\nconst insertLineEndings = (parentNode, conf2) => {\n let containsNode = parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.CONTAINS + \"_line_ending\").attr(\"refX\", 0).attr(\"refY\", conf2.line_height / 2).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", conf2.line_height / 2).attr(\"cy\", conf2.line_height / 2).attr(\"r\", conf2.line_height / 2).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 0).attr(\"x2\", conf2.line_height).attr(\"y1\", conf2.line_height / 2).attr(\"y2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n containsNode.append(\"line\").attr(\"y1\", 0).attr(\"y2\", conf2.line_height).attr(\"x1\", conf2.line_height / 2).attr(\"x2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.ARROW + \"_line_ending\").attr(\"refX\", conf2.line_height).attr(\"refY\", 0.5 * conf2.line_height).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L${conf2.line_height},${conf2.line_height / 2}\n M${conf2.line_height},${conf2.line_height / 2}\n L0,${conf2.line_height}`\n ).attr(\"stroke-width\", 1);\n};\nconst markers = {\n ReqMarkers,\n insertLineEndings\n};\nlet conf = {};\nlet relCnt = 0;\nconst newRectNode = (parentNode, id) => {\n return parentNode.insert(\"rect\", \"#\" + id).attr(\"class\", \"req reqBox\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", conf.rect_min_width + \"px\").attr(\"height\", conf.rect_min_height + \"px\");\n};\nconst newTitleNode = (parentNode, id, txts) => {\n let x = conf.rect_min_width / 2;\n let title = parentNode.append(\"text\").attr(\"class\", \"req reqLabel reqTitle\").attr(\"id\", id).attr(\"x\", x).attr(\"y\", conf.rect_padding).attr(\"dominant-baseline\", \"hanging\");\n let i = 0;\n txts.forEach((textStr) => {\n if (i == 0) {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", 0).text(textStr);\n } else {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", conf.line_height * 0.75).text(textStr);\n }\n i++;\n });\n let yPadding = 1.5 * conf.rect_padding;\n let linePadding = i * conf.line_height * 0.75;\n let totalY = yPadding + linePadding;\n parentNode.append(\"line\").attr(\"class\", \"req-title-line\").attr(\"x1\", \"0\").attr(\"x2\", conf.rect_min_width).attr(\"y1\", totalY).attr(\"y2\", totalY);\n return {\n titleNode: title,\n y: totalY\n };\n};\nconst newBodyNode = (parentNode, id, txts, yStart) => {\n let body = parentNode.append(\"text\").attr(\"class\", \"req reqLabel\").attr(\"id\", id).attr(\"x\", conf.rect_padding).attr(\"y\", yStart).attr(\"dominant-baseline\", \"hanging\");\n let currentRow = 0;\n const charLimit = 30;\n let wrappedTxts = [];\n txts.forEach((textStr) => {\n let currentTextLen = textStr.length;\n while (currentTextLen > charLimit && currentRow < 3) {\n let firstPart = textStr.substring(0, charLimit);\n textStr = textStr.substring(charLimit, textStr.length);\n currentTextLen = textStr.length;\n wrappedTxts[wrappedTxts.length] = firstPart;\n currentRow++;\n }\n if (currentRow == 3) {\n let lastStr = wrappedTxts[wrappedTxts.length - 1];\n wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + \"...\";\n } else {\n wrappedTxts[wrappedTxts.length] = textStr;\n }\n currentRow = 0;\n });\n wrappedTxts.forEach((textStr) => {\n body.append(\"tspan\").attr(\"x\", conf.rect_padding).attr(\"dy\", conf.line_height).text(textStr);\n });\n return body;\n};\nconst addEdgeLabel = (parentNode, svgPath, conf2, txt) => {\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n relCnt++;\n const labelNode = parentNode.append(\"text\").attr(\"class\", \"req relationshipLabel\").attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(txt);\n const labelBBox = labelNode.node().getBBox();\n parentNode.insert(\"rect\", \"#\" + labelId).attr(\"class\", \"req reqLabelBox\").attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height).attr(\"fill\", \"white\").attr(\"fill-opacity\", \"85%\");\n};\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n const edge = g.edge(elementString(rel.src), elementString(rel.dst));\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n });\n const svgPath = svg.insert(\"path\", \"#\" + insert).attr(\"class\", \"er relationshipLine\").attr(\"d\", lineFunction(edge.points)).attr(\"fill\", \"none\");\n if (rel.type == diagObj.db.Relationships.CONTAINS) {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + rel.type + \"_line_ending)\"\n );\n } else {\n svgPath.attr(\"stroke-dasharray\", \"10,7\");\n svgPath.attr(\n \"marker-end\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + markers.ReqMarkers.ARROW + \"_line_ending)\"\n );\n }\n addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`);\n return;\n};\nconst drawReqs = (reqs, graph, svgNode) => {\n Object.keys(reqs).forEach((reqName) => {\n let req = reqs[reqName];\n reqName = elementString(reqName);\n log.info(\"Added new requirement: \", reqName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", reqName);\n const textId = \"req-\" + reqName;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, reqName + \"_title\", [\n `<<${req.type}>>`,\n `${req.name}`\n ]);\n newBodyNode(\n groupNode,\n reqName + \"_body\",\n [\n `Id: ${req.id}`,\n `Text: ${req.text}`,\n `Risk: ${req.risk}`,\n `Verification: ${req.verifyMethod}`\n ],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(reqName, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: reqName\n });\n });\n};\nconst drawElements = (els, graph, svgNode) => {\n Object.keys(els).forEach((elName) => {\n let el = els[elName];\n const id = elementString(elName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", id);\n const textId = \"element-\" + id;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, textId + \"_title\", [`<>`, `${elName}`]);\n newBodyNode(\n groupNode,\n textId + \"_body\",\n [`Type: ${el.type || \"Not Specified\"}`, `Doc Ref: ${el.docRef || \"None\"}`],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(id, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id\n });\n });\n};\nconst addRelationships = (relationships, g) => {\n relationships.forEach(function(r) {\n let src = elementString(r.src);\n let dst = elementString(r.dst);\n g.setEdge(src, dst, { relationship: r });\n });\n return relationships;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v);\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n return;\n};\nconst elementString = (str) => {\n return str.replace(/\\s/g, \"\").replace(/\\./g, \"_\");\n};\nconst draw = (text, id, _version, diagObj) => {\n conf = getConfig().requirement;\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n markers.insertLineEndings(svg, conf);\n const g = new graphlib.Graph({\n multigraph: false,\n compound: false,\n directed: true\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let requirements2 = diagObj.db.getRequirements();\n let elements2 = diagObj.db.getElements();\n let relationships = diagObj.db.getRelationships();\n drawReqs(requirements2, g, svg);\n drawElements(elements2, g, svg);\n addRelationships(relationships, g);\n layout(g);\n adjustEntities(svg, g);\n relationships.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, id, diagObj);\n });\n const padding = conf.rect_padding;\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n","import { g as getAccTitle, t as getDiagramTitle, q as setDiagramTitle, c as getConfig, s as setAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, l as log, d as sanitizeText, e as common, D as parseFontSize, G as hasKatex, r as renderKatexSanitized, F as getConfig$1, Z as ZERO_WIDTH_SPACE, H as calculateMathMLDimensions, f as assignWithDepth, i as configureSvgSize, u as utils } from \"./mermaid-ad1dc92f.js\";\nimport { select } from \"d3\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { d as drawRect$1, a as drawBackgroundRect$1, b as drawEmbeddedImage, c as drawImage, e as getTextObj$1, g as getNoteRect$1 } from \"./svgDrawCommon-3ba9043b.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [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], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [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], $VA = [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], $VB = [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], $VC = [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], $VD = [68, 69, 70], $VE = [1, 120];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.apply($$[$0]);\n return $$[$0];\n case 4:\n case 9:\n this.$ = [];\n break;\n case 5:\n case 10:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 6:\n case 7:\n case 11:\n case 12:\n this.$ = $$[$0];\n break;\n case 8:\n case 13:\n this.$ = [];\n break;\n case 15:\n $$[$0].type = \"createParticipant\";\n this.$ = $$[$0];\n break;\n case 16:\n $$[$0 - 1].unshift({ type: \"boxStart\", boxData: yy.parseBoxData($$[$0 - 2]) });\n $$[$0 - 1].push({ type: \"boxEnd\", boxText: $$[$0 - 2] });\n this.$ = $$[$0 - 1];\n break;\n case 18:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 19:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 20:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 21:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 22:\n this.$ = { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };\n break;\n case 23:\n this.$ = { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };\n break;\n case 29:\n yy.setDiagramTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 30:\n yy.setDiagramTitle($$[$0].substring(7));\n this.$ = $$[$0].substring(7);\n break;\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 32:\n case 33:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 34:\n $$[$0 - 1].unshift({ type: \"loopStart\", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });\n $$[$0 - 1].push({ type: \"loopEnd\", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });\n this.$ = $$[$0 - 1];\n break;\n case 35:\n $$[$0 - 1].unshift({ type: \"rectStart\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });\n $$[$0 - 1].push({ type: \"rectEnd\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });\n this.$ = $$[$0 - 1];\n break;\n case 36:\n $$[$0 - 1].unshift({ type: \"optStart\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });\n $$[$0 - 1].push({ type: \"optEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });\n this.$ = $$[$0 - 1];\n break;\n case 37:\n $$[$0 - 1].unshift({ type: \"altStart\", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });\n $$[$0 - 1].push({ type: \"altEnd\", signalType: yy.LINETYPE.ALT_END });\n this.$ = $$[$0 - 1];\n break;\n case 38:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 39:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 40:\n $$[$0 - 1].unshift({ type: \"criticalStart\", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });\n $$[$0 - 1].push({ type: \"criticalEnd\", signalType: yy.LINETYPE.CRITICAL_END });\n this.$ = $$[$0 - 1];\n break;\n case 41:\n $$[$0 - 1].unshift({ type: \"breakStart\", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });\n $$[$0 - 1].push({ type: \"breakEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });\n this.$ = $$[$0 - 1];\n break;\n case 43:\n this.$ = $$[$0 - 3].concat([{ type: \"option\", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);\n break;\n case 45:\n this.$ = $$[$0 - 3].concat([{ type: \"and\", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);\n break;\n case 47:\n this.$ = $$[$0 - 3].concat([{ type: \"else\", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);\n break;\n case 48:\n $$[$0 - 3].draw = \"participant\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 49:\n $$[$0 - 1].draw = \"participant\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 50:\n $$[$0 - 3].draw = \"actor\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 51:\n $$[$0 - 1].draw = \"actor\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 52:\n $$[$0 - 1].type = \"destroyParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 53:\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 54:\n $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);\n $$[$0 - 2][0] = $$[$0 - 2][0].actor;\n $$[$0 - 2][1] = $$[$0 - 2][1].actor;\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];\n break;\n case 55:\n this.$ = [$$[$0 - 1], { type: \"addLinks\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 56:\n this.$ = [$$[$0 - 1], { type: \"addALink\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 57:\n this.$ = [$$[$0 - 1], { type: \"addProperties\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 58:\n this.$ = [$$[$0 - 1], { type: \"addDetails\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 61:\n this.$ = [$$[$0 - 2], $$[$0]];\n break;\n case 62:\n this.$ = $$[$0];\n break;\n case 63:\n this.$ = yy.PLACEMENT.LEFTOF;\n break;\n case 64:\n this.$ = yy.PLACEMENT.RIGHTOF;\n break;\n case 65:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true },\n { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }\n ];\n break;\n case 66:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },\n { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }\n ];\n break;\n case 67:\n this.$ = [$$[$0 - 3], $$[$0 - 1], { type: \"addMessage\", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];\n break;\n case 68:\n this.$ = { type: \"addParticipant\", actor: $$[$0] };\n break;\n case 69:\n this.$ = yy.LINETYPE.SOLID_OPEN;\n break;\n case 70:\n this.$ = yy.LINETYPE.DOTTED_OPEN;\n break;\n case 71:\n this.$ = yy.LINETYPE.SOLID;\n break;\n case 72:\n this.$ = yy.LINETYPE.DOTTED;\n break;\n case 73:\n this.$ = yy.LINETYPE.SOLID_CROSS;\n break;\n case 74:\n this.$ = yy.LINETYPE.DOTTED_CROSS;\n break;\n case 75:\n this.$ = yy.LINETYPE.SOLID_POINT;\n break;\n case 76:\n this.$ = yy.LINETYPE.DOTTED_POINT;\n break;\n case 77:\n this.$ = yy.parseMessage($$[$0].trim().substring(1));\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([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], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [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: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 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: $Vw }, { 22: 88, 70: $Vw }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, o([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vy, [2, 9], { 10: 91 }), o($Vx, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, o($Vx, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($Vz, $V3, { 7: 97 }), o($Vz, $V3, { 7: 98 }), o($Vz, $V3, { 7: 99 }), o($VA, $V3, { 40: 100, 7: 101 }), o($VB, $V3, { 42: 102, 7: 103 }), o($VB, $V3, { 7: 103, 42: 104 }), o($VC, $V3, { 45: 105, 7: 106 }), o($Vz, $V3, { 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: $Vw }, o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), { 22: 116, 70: $Vw }, { 22: 118, 58: 117, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: $VE }, { 56: 121, 79: $VE }, { 56: 122, 79: $VE }, { 56: 123, 79: $VE }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 129] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 130], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 131], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 133] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 134], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 139], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 140], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 141] }, o($Vx, [2, 49]), { 15: [1, 142] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 143, 70: $Vw }, { 22: 144, 70: $Vw }, { 56: 145, 79: $VE }, { 56: 146, 79: $VE }, { 56: 147, 79: $VE }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o($Vx, [2, 16]), o($Vy, [2, 10]), { 12: 149, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vy, [2, 12]), o($Vy, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 150] }, o($Vx, [2, 38]), { 15: [1, 151] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 152] }, o($Vx, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: $VE }, { 56: 156, 79: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: $Vw }, o($Vy, [2, 11]), o($VA, $V3, { 7: 101, 40: 158 }), o($VB, $V3, { 7: 103, 42: 159 }), o($VC, $V3, { 7: 106, 45: 160 }), o($Vx, [2, 48]), o($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }],\n 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] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state2, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state2 = stack[stack.length - 1];\n if (this.defaultActions[state2]) {\n action = this.defaultActions[state2];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state2] && table[state2][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state2]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state2 + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 5;\n case 1:\n break;\n case 2:\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n break;\n case 6:\n return 19;\n case 7:\n this.begin(\"LINE\");\n return 14;\n case 8:\n this.begin(\"ID\");\n return 50;\n case 9:\n this.begin(\"ID\");\n return 52;\n case 10:\n return 13;\n case 11:\n this.begin(\"ID\");\n return 53;\n case 12:\n yy_.yytext = yy_.yytext.trim();\n this.begin(\"ALIAS\");\n return 70;\n case 13:\n this.popState();\n this.popState();\n this.begin(\"LINE\");\n return 51;\n case 14:\n this.popState();\n this.popState();\n return 5;\n case 15:\n this.begin(\"LINE\");\n return 36;\n case 16:\n this.begin(\"LINE\");\n return 37;\n case 17:\n this.begin(\"LINE\");\n return 38;\n case 18:\n this.begin(\"LINE\");\n return 39;\n case 19:\n this.begin(\"LINE\");\n return 49;\n case 20:\n this.begin(\"LINE\");\n return 41;\n case 21:\n this.begin(\"LINE\");\n return 43;\n case 22:\n this.begin(\"LINE\");\n return 48;\n case 23:\n this.begin(\"LINE\");\n return 44;\n case 24:\n this.begin(\"LINE\");\n return 47;\n case 25:\n this.begin(\"LINE\");\n return 46;\n case 26:\n this.popState();\n return 15;\n case 27:\n return 16;\n case 28:\n return 65;\n case 29:\n return 66;\n case 30:\n return 59;\n case 31:\n return 60;\n case 32:\n return 61;\n case 33:\n return 62;\n case 34:\n return 57;\n case 35:\n return 54;\n case 36:\n this.begin(\"ID\");\n return 21;\n case 37:\n this.begin(\"ID\");\n return 23;\n case 38:\n return 29;\n case 39:\n return 30;\n case 40:\n this.begin(\"acc_title\");\n return 31;\n case 41:\n this.popState();\n return \"acc_title_value\";\n case 42:\n this.begin(\"acc_descr\");\n return 33;\n case 43:\n this.popState();\n return \"acc_descr_value\";\n case 44:\n this.begin(\"acc_descr_multiline\");\n break;\n case 45:\n this.popState();\n break;\n case 46:\n return \"acc_descr_multiline_value\";\n case 47:\n return 6;\n case 48:\n return 18;\n case 49:\n return 20;\n case 50:\n return 64;\n case 51:\n return 5;\n case 52:\n yy_.yytext = yy_.yytext.trim();\n return 70;\n case 53:\n return 73;\n case 54:\n return 74;\n case 55:\n return 71;\n case 56:\n return 72;\n case 57:\n return 75;\n case 58:\n return 76;\n case 59:\n return 77;\n case 60:\n return 78;\n case 61:\n return 79;\n case 62:\n return 68;\n case 63:\n return 69;\n case 64:\n return 5;\n case 65:\n return \"INVALID\";\n }\n },\n rules: [/^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[0-9]+(?=[ \\n]+))/i, /^(?:box\\b)/i, /^(?:participant\\b)/i, /^(?:actor\\b)/i, /^(?:create\\b)/i, /^(?:destroy\\b)/i, /^(?:[^\\->:\\n,;]+?([\\-]*[^\\->:\\n,;]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i, /^(?:as\\b)/i, /^(?:(?:))/i, /^(?:loop\\b)/i, /^(?:rect\\b)/i, /^(?:opt\\b)/i, /^(?:alt\\b)/i, /^(?:else\\b)/i, /^(?:par\\b)/i, /^(?:par_over\\b)/i, /^(?:and\\b)/i, /^(?:critical\\b)/i, /^(?:option\\b)/i, /^(?:break\\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i, /^(?:end\\b)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:links\\b)/i, /^(?:link\\b)/i, /^(?:properties\\b)/i, /^(?:details\\b)/i, /^(?:over\\b)/i, /^(?:note\\b)/i, /^(?:activate\\b)/i, /^(?:deactivate\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:title:\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:sequenceDiagram\\b)/i, /^(?:autonumber\\b)/i, /^(?:off\\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\\)])/i, /^(?:--[\\)])/i, /^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i, /^(?:\\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [45, 46], \"inclusive\": false }, \"acc_descr\": { \"rules\": [43], \"inclusive\": false }, \"acc_title\": { \"rules\": [41], \"inclusive\": false }, \"ID\": { \"rules\": [2, 3, 12], \"inclusive\": false }, \"ALIAS\": { \"rules\": [2, 3, 13, 14], \"inclusive\": false }, \"LINE\": { \"rules\": [2, 3, 26], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nclass ImperativeState {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n reset() {\n this.records = this.init();\n }\n}\nconst state = new ImperativeState(() => ({\n prevActor: void 0,\n actors: {},\n createdActors: {},\n destroyedActors: {},\n boxes: [],\n messages: [],\n notes: [],\n sequenceNumbersEnabled: false,\n wrapEnabled: void 0,\n currentBox: void 0,\n lastCreated: void 0,\n lastDestroyed: void 0\n}));\nconst addBox = function(data) {\n state.records.boxes.push({\n name: data.text,\n wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,\n fill: data.color,\n actorKeys: []\n });\n state.records.currentBox = state.records.boxes.slice(-1)[0];\n};\nconst addActor = function(id, name, description, type) {\n let assignedBox = state.records.currentBox;\n const old = state.records.actors[id];\n if (old) {\n if (state.records.currentBox && old.box && state.records.currentBox !== old.box) {\n throw new Error(\n \"A same participant should only be defined in one Box: \" + old.name + \" can't be in '\" + old.box.name + \"' and in '\" + state.records.currentBox.name + \"' at the same time.\"\n );\n }\n assignedBox = old.box ? old.box : state.records.currentBox;\n old.box = assignedBox;\n if (old && name === old.name && description == null) {\n return;\n }\n }\n if (description == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n if (type == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n state.records.actors[id] = {\n box: assignedBox,\n name,\n description: description.text,\n wrap: description.wrap === void 0 && autoWrap() || !!description.wrap,\n prevActor: state.records.prevActor,\n links: {},\n properties: {},\n actorCnt: null,\n rectData: null,\n type: type || \"participant\"\n };\n if (state.records.prevActor && state.records.actors[state.records.prevActor]) {\n state.records.actors[state.records.prevActor].nextActor = id;\n }\n if (state.records.currentBox) {\n state.records.currentBox.actorKeys.push(id);\n }\n state.records.prevActor = id;\n};\nconst activationCount = (part) => {\n let i;\n let count = 0;\n for (i = 0; i < state.records.messages.length; i++) {\n if (state.records.messages[i].type === LINETYPE.ACTIVE_START && state.records.messages[i].from.actor === part) {\n count++;\n }\n if (state.records.messages[i].type === LINETYPE.ACTIVE_END && state.records.messages[i].from.actor === part) {\n count--;\n }\n }\n return count;\n};\nconst addMessage = function(idFrom, idTo, message, answer) {\n state.records.messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n answer\n });\n};\nconst addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType, activate = false) {\n if (messageType === LINETYPE.ACTIVE_END) {\n const cnt = activationCount(idFrom.actor);\n if (cnt < 1) {\n let error = new Error(\"Trying to inactivate an inactive participant (\" + idFrom.actor + \")\");\n error.hash = {\n text: \"->>-\",\n token: \"->>-\",\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"'ACTIVE_PARTICIPANT'\"]\n };\n throw error;\n }\n }\n state.records.messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: messageType,\n activate\n });\n return true;\n};\nconst hasAtLeastOneBox = function() {\n return state.records.boxes.length > 0;\n};\nconst hasAtLeastOneBoxWithTitle = function() {\n return state.records.boxes.some((b) => b.name);\n};\nconst getMessages = function() {\n return state.records.messages;\n};\nconst getBoxes = function() {\n return state.records.boxes;\n};\nconst getActors = function() {\n return state.records.actors;\n};\nconst getCreatedActors = function() {\n return state.records.createdActors;\n};\nconst getDestroyedActors = function() {\n return state.records.destroyedActors;\n};\nconst getActor = function(id) {\n return state.records.actors[id];\n};\nconst getActorKeys = function() {\n return Object.keys(state.records.actors);\n};\nconst enableSequenceNumbers = function() {\n state.records.sequenceNumbersEnabled = true;\n};\nconst disableSequenceNumbers = function() {\n state.records.sequenceNumbersEnabled = false;\n};\nconst showSequenceNumbers = () => state.records.sequenceNumbersEnabled;\nconst setWrap = function(wrapSetting) {\n state.records.wrapEnabled = wrapSetting;\n};\nconst autoWrap = () => {\n if (state.records.wrapEnabled !== void 0) {\n return state.records.wrapEnabled;\n }\n return getConfig().sequence.wrap;\n};\nconst clear = function() {\n state.reset();\n clear$1();\n};\nconst parseMessage = function(str) {\n const _str = str.trim();\n const message = {\n text: _str.replace(/^:?(?:no)?wrap:/, \"\").trim(),\n wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0\n };\n log.debug(\"parseMessage:\", message);\n return message;\n};\nconst parseBoxData = function(str) {\n const match = str.match(/^((?:rgba?|hsla?)\\s*\\(.*\\)|\\w*)(.*)$/);\n let color = match != null && match[1] ? match[1].trim() : \"transparent\";\n let title = match != null && match[2] ? match[2].trim() : void 0;\n if (window && window.CSS) {\n if (!window.CSS.supports(\"color\", color)) {\n color = \"transparent\";\n title = str.trim();\n }\n } else {\n const style = new Option().style;\n style.color = color;\n if (style.color !== color) {\n color = \"transparent\";\n title = str.trim();\n }\n }\n return {\n color,\n text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, \"\"), getConfig()) : void 0,\n wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0\n };\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n AUTONUMBER: 26,\n CRITICAL_START: 27,\n CRITICAL_OPTION: 28,\n CRITICAL_END: 29,\n BREAK_START: 30,\n BREAK_END: 31,\n PAR_OVER_START: 32\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst addNote = function(actor, placement, message) {\n const note = {\n actor,\n placement,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap\n };\n const actors = [].concat(actor, actor);\n state.records.notes.push(note);\n state.records.messages.push({\n from: actors[0],\n to: actors[1],\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: LINETYPE.NOTE,\n placement\n });\n};\nconst addLinks = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n const links = JSON.parse(sanitizedText);\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nconst addALink = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n const links = {};\n let sanitizedText = sanitizeText(text.text, getConfig());\n var sep = sanitizedText.indexOf(\"@\");\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n var label = sanitizedText.slice(0, sep - 1).trim();\n var link = sanitizedText.slice(sep + 1).trim();\n links[label] = link;\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nfunction insertLinks(actor, links) {\n if (actor.links == null) {\n actor.links = links;\n } else {\n for (let key in links) {\n actor.links[key] = links[key];\n }\n }\n}\nconst addProperties = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n const properties = JSON.parse(sanitizedText);\n insertProperties(actor, properties);\n } catch (e) {\n log.error(\"error while parsing actor properties text\", e);\n }\n};\nfunction insertProperties(actor, properties) {\n if (actor.properties == null) {\n actor.properties = properties;\n } else {\n for (let key in properties) {\n actor.properties[key] = properties[key];\n }\n }\n}\nfunction boxEnd() {\n state.records.currentBox = void 0;\n}\nconst addDetails = function(actorId, text) {\n const actor = getActor(actorId);\n const elem = document.getElementById(text.text);\n try {\n const text2 = elem.innerHTML;\n const details = JSON.parse(text2);\n if (details[\"properties\"]) {\n insertProperties(actor, details[\"properties\"]);\n }\n if (details[\"links\"]) {\n insertLinks(actor, details[\"links\"]);\n }\n } catch (e) {\n log.error(\"error while parsing actor details text\", e);\n }\n};\nconst getActorProperty = function(actor, key) {\n if (actor !== void 0 && actor.properties !== void 0) {\n return actor.properties[key];\n }\n return void 0;\n};\nconst apply = function(param) {\n if (Array.isArray(param)) {\n param.forEach(function(item) {\n apply(item);\n });\n } else {\n switch (param.type) {\n case \"sequenceIndex\":\n state.records.messages.push({\n from: void 0,\n to: void 0,\n message: {\n start: param.sequenceIndex,\n step: param.sequenceIndexStep,\n visible: param.sequenceVisible\n },\n wrap: false,\n type: param.signalType\n });\n break;\n case \"addParticipant\":\n addActor(param.actor, param.actor, param.description, param.draw);\n break;\n case \"createParticipant\":\n if (state.records.actors[param.actor]) {\n throw new Error(\n \"It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior\"\n );\n }\n state.records.lastCreated = param.actor;\n addActor(param.actor, param.actor, param.description, param.draw);\n state.records.createdActors[param.actor] = state.records.messages.length;\n break;\n case \"destroyParticipant\":\n state.records.lastDestroyed = param.actor;\n state.records.destroyedActors[param.actor] = state.records.messages.length;\n break;\n case \"activeStart\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"activeEnd\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"addNote\":\n addNote(param.actor, param.placement, param.text);\n break;\n case \"addLinks\":\n addLinks(param.actor, param.text);\n break;\n case \"addALink\":\n addALink(param.actor, param.text);\n break;\n case \"addProperties\":\n addProperties(param.actor, param.text);\n break;\n case \"addDetails\":\n addDetails(param.actor, param.text);\n break;\n case \"addMessage\":\n if (state.records.lastCreated) {\n if (param.to !== state.records.lastCreated) {\n throw new Error(\n \"The created participant \" + state.records.lastCreated + \" does not have an associated creating message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n state.records.lastCreated = void 0;\n }\n } else if (state.records.lastDestroyed) {\n if (param.to !== state.records.lastDestroyed && param.from !== state.records.lastDestroyed) {\n throw new Error(\n \"The destroyed participant \" + state.records.lastDestroyed + \" does not have an associated destroying message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n state.records.lastDestroyed = void 0;\n }\n }\n addSignal(param.from, param.to, param.msg, param.signalType, param.activate);\n break;\n case \"boxStart\":\n addBox(param.boxData);\n break;\n case \"boxEnd\":\n boxEnd();\n break;\n case \"loopStart\":\n addSignal(void 0, void 0, param.loopText, param.signalType);\n break;\n case \"loopEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"rectStart\":\n addSignal(void 0, void 0, param.color, param.signalType);\n break;\n case \"rectEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"optStart\":\n addSignal(void 0, void 0, param.optText, param.signalType);\n break;\n case \"optEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"altStart\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"else\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"altEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"setAccTitle\":\n setAccTitle(param.text);\n break;\n case \"parStart\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"and\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"parEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"criticalStart\":\n addSignal(void 0, void 0, param.criticalText, param.signalType);\n break;\n case \"option\":\n addSignal(void 0, void 0, param.optionText, param.signalType);\n break;\n case \"criticalEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"breakStart\":\n addSignal(void 0, void 0, param.breakText, param.signalType);\n break;\n case \"breakEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n }\n }\n};\nconst db = {\n addActor,\n addMessage,\n addSignal,\n addLinks,\n addDetails,\n addProperties,\n autoWrap,\n setWrap,\n enableSequenceNumbers,\n disableSequenceNumbers,\n showSequenceNumbers,\n getMessages,\n getActors,\n getCreatedActors,\n getDestroyedActors,\n getActor,\n getActorKeys,\n getActorProperty,\n getAccTitle,\n getBoxes,\n getDiagramTitle,\n setDiagramTitle,\n getConfig: () => getConfig().sequence,\n clear,\n parseMessage,\n parseBoxData,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n addNote,\n setAccTitle,\n apply,\n setAccDescription,\n getAccDescription,\n hasAtLeastOneBox,\n hasAtLeastOneBoxWithTitle\n};\nconst getStyles = (options) => `.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n #arrowhead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${options.signalColor};\n }\n\n #crosshead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n`;\nconst styles = getStyles;\nconst ACTOR_TYPE_WIDTH = 18 * 2;\nconst TOP_ACTOR_CLASS = \"actor-top\";\nconst BOTTOM_ACTOR_CLASS = \"actor-bottom\";\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {\n if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {\n return { height: 0, width: 0 };\n }\n const links = actor.links;\n const actorCnt2 = actor.actorCnt;\n const rectData = actor.rectData;\n var displayValue = \"none\";\n if (forceMenus) {\n displayValue = \"block !important\";\n }\n const g = elem.append(\"g\");\n g.attr(\"id\", \"actor\" + actorCnt2 + \"_popup\");\n g.attr(\"class\", \"actorPopupMenu\");\n g.attr(\"display\", displayValue);\n var actorClass = \"\";\n if (rectData.class !== void 0) {\n actorClass = \" \" + rectData.class;\n }\n let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;\n const rectElem = g.append(\"rect\");\n rectElem.attr(\"class\", \"actorPopupMenuPanel\" + actorClass);\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.height);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", menuWidth);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (links != null) {\n var linkY = 20;\n for (let key in links) {\n var linkElem = g.append(\"a\");\n var sanitizedLink = sanitizeUrl(links[key]);\n linkElem.attr(\"xlink:href\", sanitizedLink);\n linkElem.attr(\"target\", \"_blank\");\n _drawMenuItemTextCandidateFunc(textAttrs)(\n key,\n linkElem,\n rectData.x + 10,\n rectData.height + linkY,\n menuWidth,\n 20,\n { class: \"actor\" },\n textAttrs\n );\n linkY += 30;\n }\n }\n rectElem.attr(\"height\", linkY);\n return { height: rectData.height + linkY, width: menuWidth };\n};\nconst popupMenuToggle = function(popId) {\n return \"var pu = document.getElementById('\" + popId + \"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }\";\n};\nconst drawKatex = async function(elem, textData, msgModel = null) {\n let textElem = elem.append(\"foreignObject\");\n const linesSanitized = await renderKatexSanitized(textData.text, getConfig$1());\n const divElem = textElem.append(\"xhtml:div\").attr(\"style\", \"width: fit-content;\").attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\").html(linesSanitized);\n const dim = divElem.node().getBoundingClientRect();\n textElem.attr(\"height\", Math.round(dim.height)).attr(\"width\", Math.round(dim.width));\n if (textData.class === \"noteText\") {\n const rectElem = elem.node().firstChild;\n rectElem.setAttribute(\"height\", dim.height + 2 * textData.textMargin);\n const rectDim = rectElem.getBBox();\n textElem.attr(\"x\", Math.round(rectDim.x + rectDim.width / 2 - dim.width / 2)).attr(\"y\", Math.round(rectDim.y + rectDim.height / 2 - dim.height / 2));\n } else if (msgModel) {\n let { startx, stopx, starty } = msgModel;\n if (startx > stopx) {\n const temp = startx;\n startx = stopx;\n stopx = temp;\n }\n textElem.attr(\"x\", Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2));\n if (textData.class === \"loopText\") {\n textElem.attr(\"y\", Math.round(starty));\n } else {\n textElem.attr(\"y\", Math.round(starty - dim.height));\n }\n }\n return [textElem];\n};\nconst drawText = function(elem, textData) {\n let prevTextHeight = 0;\n let textHeight = 0;\n const lines = textData.text.split(common.lineBreakRegex);\n const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);\n let textElems = [];\n let dy = 0;\n let yfunc = () => textData.y;\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n switch (textData.valign) {\n case \"top\":\n case \"start\":\n yfunc = () => Math.round(textData.y + textData.textMargin);\n break;\n case \"middle\":\n case \"center\":\n yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);\n break;\n case \"bottom\":\n case \"end\":\n yfunc = () => Math.round(\n textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin\n );\n break;\n }\n }\n if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {\n switch (textData.anchor) {\n case \"left\":\n case \"start\":\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = \"start\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"middle\":\n case \"center\":\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = \"middle\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"right\":\n case \"end\":\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = \"end\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n }\n }\n for (let [i, line] of lines.entries()) {\n if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {\n dy = i * _textFontSize;\n }\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", yfunc());\n if (textData.anchor !== void 0) {\n textElem.attr(\"text-anchor\", textData.anchor).attr(\"dominant-baseline\", textData.dominantBaseline).attr(\"alignment-baseline\", textData.alignmentBaseline);\n }\n if (textData.fontFamily !== void 0) {\n textElem.style(\"font-family\", textData.fontFamily);\n }\n if (_textFontSizePx !== void 0) {\n textElem.style(\"font-size\", _textFontSizePx);\n }\n if (textData.fontWeight !== void 0) {\n textElem.style(\"font-weight\", textData.fontWeight);\n }\n if (textData.fill !== void 0) {\n textElem.attr(\"fill\", textData.fill);\n }\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n if (textData.dy !== void 0) {\n textElem.attr(\"dy\", textData.dy);\n } else if (dy !== 0) {\n textElem.attr(\"dy\", dy);\n }\n const text = line || ZERO_WIDTH_SPACE;\n if (textData.tspan) {\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x);\n if (textData.fill !== void 0) {\n span.attr(\"fill\", textData.fill);\n }\n span.text(text);\n } else {\n textElem.text(text);\n }\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n textElems.push(textElem);\n }\n return textElems;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.height / 2;\n drawText(elem, txtObject);\n return polygon;\n};\nlet actorCnt = -1;\nconst fixLifeLineHeights = (diagram2, actors, actorKeys, conf2) => {\n if (!diagram2.select) {\n return;\n }\n actorKeys.forEach((actorKey) => {\n const actor = actors[actorKey];\n const actorDOM = diagram2.select(\"#actor\" + actor.actorCnt);\n if (!conf2.mirrorActors && actor.stopy) {\n actorDOM.attr(\"y2\", actor.stopy + actor.height / 2);\n } else if (conf2.mirrorActors) {\n actorDOM.attr(\"y2\", actor.stopy);\n }\n });\n};\nconst drawActorTypeParticipant = async function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 5;\n const boxplusLineGroup = elem.append(\"g\").lower();\n var g = boxplusLineGroup;\n if (!isFooter) {\n actorCnt++;\n if (Object.keys(actor.links || {}).length && !conf2.forceMenus) {\n g.attr(\"onclick\", popupMenuToggle(`actor${actorCnt}_popup`)).attr(\"cursor\", \"pointer\");\n }\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"class\", \"200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n g = boxplusLineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n }\n }\n const rect = getNoteRect$1();\n var cssclass = \"actor\";\n if (actor.properties != null && actor.properties[\"class\"]) {\n cssclass = actor.properties[\"class\"];\n } else {\n rect.fill = \"#eaeaea\";\n }\n if (isFooter) {\n cssclass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssclass += ` ${TOP_ACTOR_CLASS}`;\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.rx = 3;\n rect.ry = 3;\n rect.name = actor.name;\n const rectElem = drawRect(g, rect);\n actor.rectData = rect;\n if (actor.properties != null && actor.properties[\"icon\"]) {\n const iconSrc = actor.properties[\"icon\"].trim();\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));\n } else {\n drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);\n }\n }\n await _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n let height = actor.height;\n if (rectElem.node) {\n const bounds2 = rectElem.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n};\nconst drawActorTypeActor = async function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 80;\n elem.lower();\n if (!isFooter) {\n actorCnt++;\n elem.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"class\", \"200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n actor.actorCnt = actorCnt;\n }\n const actElem = elem.append(\"g\");\n let cssClass = \"actor-man\";\n if (isFooter) {\n cssClass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssClass += ` ${TOP_ACTOR_CLASS}`;\n }\n actElem.attr(\"class\", cssClass);\n actElem.attr(\"name\", actor.name);\n const rect = getNoteRect$1();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n rect.rx = 3;\n rect.ry = 3;\n actElem.append(\"line\").attr(\"id\", \"actor-man-torso\" + actorCnt).attr(\"x1\", center).attr(\"y1\", actorY + 25).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"id\", \"actor-man-arms\" + actorCnt).attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 33).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2).attr(\"y2\", actorY + 33);\n actElem.append(\"line\").attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 60).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"x1\", center).attr(\"y1\", actorY + 45).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2 - 2).attr(\"y2\", actorY + 60);\n const circle = actElem.append(\"circle\");\n circle.attr(\"cx\", actor.x + actor.width / 2);\n circle.attr(\"cy\", actorY + 10);\n circle.attr(\"r\", 15);\n circle.attr(\"width\", actor.width);\n circle.attr(\"height\", actor.height);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height;\n await _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n actElem,\n rect.x,\n rect.y + 35,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n return actor.height;\n};\nconst drawActor = async function(elem, actor, conf2, isFooter) {\n switch (actor.type) {\n case \"actor\":\n return await drawActorTypeActor(elem, actor, conf2, isFooter);\n case \"participant\":\n return await drawActorTypeParticipant(elem, actor, conf2, isFooter);\n }\n};\nconst drawBox = async function(elem, box, conf2) {\n const boxplusTextGroup = elem.append(\"g\");\n const g = boxplusTextGroup;\n drawBackgroundRect(g, box);\n if (box.name) {\n await _drawTextCandidateFunc(conf2)(\n box.name,\n g,\n box.x,\n box.y + (box.textMaxHeight || 0) / 2,\n box.width,\n 0,\n { class: \"text\" },\n conf2\n );\n }\n g.lower();\n};\nconst anchorElement = function(elem) {\n return elem.append(\"g\");\n};\nconst drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {\n const rect = getNoteRect$1();\n const g = bounds2.anchored;\n rect.x = bounds2.startx;\n rect.y = bounds2.starty;\n rect.class = \"activation\" + actorActivations2 % 3;\n rect.width = bounds2.stopx - bounds2.startx;\n rect.height = verticalPos - bounds2.starty;\n drawRect(g, rect);\n};\nconst drawLoop = async function(elem, loopModel, labelText, conf2) {\n const {\n boxMargin,\n boxTextMargin,\n labelBoxHeight,\n labelBoxWidth,\n messageFontFamily: fontFamily,\n messageFontSize: fontSize,\n messageFontWeight: fontWeight\n } = conf2;\n const g = elem.append(\"g\");\n const drawLoopLine = function(startx, starty, stopx, stopy) {\n return g.append(\"line\").attr(\"x1\", startx).attr(\"y1\", starty).attr(\"x2\", stopx).attr(\"y2\", stopy).attr(\"class\", \"loopLine\");\n };\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);\n drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);\n if (loopModel.sections !== void 0) {\n loopModel.sections.forEach(function(item) {\n drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(\n \"stroke-dasharray\",\n \"3, 3\"\n );\n });\n }\n let txt = getTextObj$1();\n txt.text = labelText;\n txt.x = loopModel.startx;\n txt.y = loopModel.starty;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.width = labelBoxWidth || 50;\n txt.height = labelBoxHeight || 20;\n txt.textMargin = boxTextMargin;\n txt.class = \"labelText\";\n drawLabel(g, txt);\n txt = getTextObj();\n txt.text = loopModel.title;\n txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.starty + boxMargin + boxTextMargin;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.textMargin = boxTextMargin;\n txt.class = \"loopText\";\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = true;\n let textElem = hasKatex(txt.text) ? await drawKatex(g, txt, loopModel) : drawText(g, txt);\n if (loopModel.sectionTitles !== void 0) {\n for (const [idx, item] of Object.entries(loopModel.sectionTitles)) {\n if (item.message) {\n txt.text = item.message;\n txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;\n txt.class = \"loopText\";\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = loopModel.wrap;\n if (hasKatex(txt.text)) {\n loopModel.starty = loopModel.sections[idx].y;\n await drawKatex(g, txt, loopModel);\n } else {\n drawText(g, txt);\n }\n let sectionHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);\n }\n }\n }\n loopModel.height = Math.round(loopModel.stopy - loopModel.starty);\n return g;\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 7.9).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\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 15.5).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\");\n};\nconst insertSequenceNumber = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 4).attr(\"refY\", 4.5);\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1pt\").attr(\"d\", \"M 1,2 L 6,7 M 6,2 L 1,7\");\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: void 0,\n style: \"#666\",\n width: void 0,\n height: void 0,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: void 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").style(\"font-size\", _actorFontSizePx).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n async function byKatex(content, g, x, y, width, height, textAttrs, conf2) {\n const dim = await calculateMathMLDimensions(content, getConfig$1());\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x + width / 2 - dim.width / 2).attr(\"y\", y + height / 2 - dim.height / 2).attr(\"width\", dim.width).attr(\"height\", dim.height);\n const text = f.append(\"xhtml:div\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(await renderKatexSanitized(content, getConfig$1()));\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2, hasKatex2 = false) {\n if (hasKatex2) {\n return byKatex;\n }\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst _drawMenuItemTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").style(\"font-size\", actorFontSize).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawText,\n drawLabel,\n drawActor,\n drawBox,\n drawPopup,\n anchorElement,\n drawActivation,\n drawLoop,\n drawBackgroundRect,\n insertArrowHead,\n insertArrowFilledHead,\n insertSequenceNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj,\n getNoteRect,\n fixLifeLineHeights,\n sanitizeUrl\n};\nlet conf = {};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n activations: [],\n models: {\n getHeight: function() {\n return Math.max.apply(\n null,\n this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)\n ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));\n },\n clear: function() {\n this.actors = [];\n this.boxes = [];\n this.loops = [];\n this.messages = [];\n this.notes = [];\n },\n addBox: function(boxModel) {\n this.boxes.push(boxModel);\n },\n addActor: function(actorModel) {\n this.actors.push(actorModel);\n },\n addLoop: function(loopModel) {\n this.loops.push(loopModel);\n },\n addMessage: function(msgModel) {\n this.messages.push(msgModel);\n },\n addNote: function(noteModel) {\n this.notes.push(noteModel);\n },\n lastActor: function() {\n return this.actors[this.actors.length - 1];\n },\n lastLoop: function() {\n return this.loops[this.loops.length - 1];\n },\n lastMessage: function() {\n return this.messages[this.messages.length - 1];\n },\n lastNote: function() {\n return this.notes[this.notes.length - 1];\n },\n actors: [],\n boxes: [],\n loops: [],\n messages: [],\n notes: []\n },\n init: function() {\n this.sequenceItems = [];\n this.activations = [];\n this.models.clear();\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n setConf(getConfig());\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n this.activations.forEach(updateFn(\"activation\"));\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = common.getMin(startx, stopx);\n const _stopx = common.getMax(startx, stopx);\n const _starty = common.getMin(starty, stopy);\n const _stopy = common.getMax(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n newActivation: function(message, diagram2, actors) {\n const actorRect = actors[message.from.actor];\n const stackedSize = actorActivations(message.from.actor).length || 0;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n this.activations.push({\n startx: x,\n starty: this.verticalPos + 2,\n stopx: x + conf.activationWidth,\n stopy: void 0,\n actor: message.from.actor,\n anchored: svgDraw.anchorElement(diagram2)\n });\n },\n endActivation: function(message) {\n const lastActorActivationIdx = this.activations.map(function(activation) {\n return activation.actor;\n }).lastIndexOf(message.from.actor);\n return this.activations.splice(lastActorActivationIdx, 1)[0];\n },\n createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n return {\n startx: void 0,\n starty: this.verticalPos,\n stopx: void 0,\n stopy: void 0,\n title: title.message,\n wrap: title.wrap,\n width: title.width,\n height: 0,\n fill\n };\n },\n newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n this.sequenceItems.push(this.createLoop(title, fill));\n },\n endLoop: function() {\n return this.sequenceItems.pop();\n },\n isLoopOverlap: function() {\n return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;\n },\n addSectionToLoop: function(message) {\n const loop = this.sequenceItems.pop();\n loop.sections = loop.sections || [];\n loop.sectionTitles = loop.sectionTitles || [];\n loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });\n loop.sectionTitles.push(message);\n this.sequenceItems.push(loop);\n },\n saveVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.savedVerticalPos = this.verticalPos;\n }\n },\n resetVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.verticalPos = this.savedVerticalPos;\n }\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = common.getMax(this.data.stopy, this.verticalPos);\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return { bounds: this.data, models: this.models };\n }\n};\nconst drawNote = async function(elem, noteModel) {\n bounds.bumpVerticalPos(conf.boxMargin);\n noteModel.height = conf.boxMargin;\n noteModel.starty = bounds.getVerticalPos();\n const rect = getNoteRect$1();\n rect.x = noteModel.startx;\n rect.y = noteModel.starty;\n rect.width = noteModel.width || conf.width;\n rect.class = \"note\";\n const g = elem.append(\"g\");\n const rectElem = svgDraw.drawRect(g, rect);\n const textObj = getTextObj$1();\n textObj.x = noteModel.startx;\n textObj.y = noteModel.starty;\n textObj.width = rect.width;\n textObj.dy = \"1em\";\n textObj.text = noteModel.message;\n textObj.class = \"noteText\";\n textObj.fontFamily = conf.noteFontFamily;\n textObj.fontSize = conf.noteFontSize;\n textObj.fontWeight = conf.noteFontWeight;\n textObj.anchor = conf.noteAlign;\n textObj.textMargin = conf.noteMargin;\n textObj.valign = \"center\";\n const textElem = hasKatex(textObj.text) ? await drawKatex(g, textObj) : drawText(g, textObj);\n const textHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n rectElem.attr(\"height\", textHeight + 2 * conf.noteMargin);\n noteModel.height += textHeight + 2 * conf.noteMargin;\n bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);\n noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;\n noteModel.stopx = noteModel.startx + rect.width;\n bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);\n bounds.models.addNote(noteModel);\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nconst noteFont = (cnf) => {\n return {\n fontFamily: cnf.noteFontFamily,\n fontSize: cnf.noteFontSize,\n fontWeight: cnf.noteFontWeight\n };\n};\nconst actorFont = (cnf) => {\n return {\n fontFamily: cnf.actorFontFamily,\n fontSize: cnf.actorFontSize,\n fontWeight: cnf.actorFontWeight\n };\n};\nasync function boundMessage(_diagram, msgModel) {\n bounds.bumpVerticalPos(10);\n const { startx, stopx, message } = msgModel;\n const lines = common.splitBreaks(message).length;\n const isKatexMsg = hasKatex(message);\n const textDims = isKatexMsg ? await calculateMathMLDimensions(message, getConfig()) : utils.calculateTextDimensions(message, messageFont(conf));\n if (!isKatexMsg) {\n const lineHeight = textDims.height / lines;\n msgModel.height += lineHeight;\n bounds.bumpVerticalPos(lineHeight);\n }\n let lineStartY;\n let totalOffset = textDims.height - 10;\n const textWidth = textDims.width;\n if (startx === stopx) {\n lineStartY = bounds.getVerticalPos() + totalOffset;\n if (!conf.rightAngles) {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n }\n totalOffset += 30;\n const dx = common.getMax(textWidth / 2, conf.width / 2);\n bounds.insert(\n startx - dx,\n bounds.getVerticalPos() - 10 + totalOffset,\n stopx + dx,\n bounds.getVerticalPos() + 30 + totalOffset\n );\n } else {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n bounds.insert(startx, lineStartY - 10, stopx, lineStartY);\n }\n bounds.bumpVerticalPos(totalOffset);\n msgModel.height += totalOffset;\n msgModel.stopy = msgModel.starty + msgModel.height;\n bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);\n return lineStartY;\n}\nconst drawMessage = async function(diagram2, msgModel, lineStartY, diagObj) {\n const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;\n const textDims = utils.calculateTextDimensions(message, messageFont(conf));\n const textObj = getTextObj$1();\n textObj.x = startx;\n textObj.y = starty + 10;\n textObj.width = stopx - startx;\n textObj.class = \"messageText\";\n textObj.dy = \"1em\";\n textObj.text = message;\n textObj.fontFamily = conf.messageFontFamily;\n textObj.fontSize = conf.messageFontSize;\n textObj.fontWeight = conf.messageFontWeight;\n textObj.anchor = conf.messageAlign;\n textObj.valign = \"center\";\n textObj.textMargin = conf.wrapPadding;\n textObj.tspan = false;\n hasKatex(textObj.text) ? await drawKatex(diagram2, textObj, { startx, stopx, starty: lineStartY }) : drawText(diagram2, textObj);\n const textWidth = textDims.width;\n let line;\n if (startx === stopx) {\n if (conf.rightAngles) {\n line = diagram2.append(\"path\").attr(\n \"d\",\n `M ${startx},${lineStartY} H ${startx + common.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`\n );\n } else {\n line = diagram2.append(\"path\").attr(\n \"d\",\n \"M \" + startx + \",\" + lineStartY + \" C \" + (startx + 60) + \",\" + (lineStartY - 10) + \" \" + (startx + 60) + \",\" + (lineStartY + 30) + \" \" + startx + \",\" + (lineStartY + 20)\n );\n }\n } else {\n line = diagram2.append(\"line\");\n line.attr(\"x1\", startx);\n line.attr(\"y1\", lineStartY);\n line.attr(\"x2\", stopx);\n line.attr(\"y2\", lineStartY);\n }\n if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {\n line.style(\"stroke-dasharray\", \"3, 3\");\n line.attr(\"class\", \"messageLine1\");\n } else {\n line.attr(\"class\", \"messageLine0\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n line.attr(\"stroke-width\", 2);\n line.attr(\"stroke\", \"none\");\n line.style(\"fill\", \"none\");\n if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {\n line.attr(\"marker-end\", \"url(\" + url + \"#filled-head)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {\n line.attr(\"marker-end\", \"url(\" + url + \"#crosshead)\");\n }\n if (sequenceVisible || conf.showSequenceNumbers) {\n line.attr(\"marker-start\", \"url(\" + url + \"#sequencenumber)\");\n diagram2.append(\"text\").attr(\"x\", startx).attr(\"y\", lineStartY + 4).attr(\"font-family\", \"sans-serif\").attr(\"font-size\", \"12px\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"sequenceNumber\").text(sequenceIndex);\n }\n};\nconst addActorRenderingData = async function(diagram2, actors, createdActors, actorKeys, verticalPos, messages, isFooter) {\n let prevWidth = 0;\n let prevMargin = 0;\n let prevBox = void 0;\n let maxHeight = 0;\n for (const actorKey of actorKeys) {\n const actor = actors[actorKey];\n const box = actor.box;\n if (prevBox && prevBox != box) {\n if (!isFooter) {\n bounds.models.addBox(prevBox);\n }\n prevMargin += conf.boxMargin + prevBox.margin;\n }\n if (box && box != prevBox) {\n if (!isFooter) {\n box.x = prevWidth + prevMargin;\n box.y = verticalPos;\n }\n prevMargin += box.margin;\n }\n actor.width = actor.width || conf.width;\n actor.height = common.getMax(actor.height || conf.height, conf.height);\n actor.margin = actor.margin || conf.actorMargin;\n maxHeight = common.getMax(maxHeight, actor.height);\n if (createdActors[actor.name]) {\n prevMargin += actor.width / 2;\n }\n actor.x = prevWidth + prevMargin;\n actor.starty = bounds.getVerticalPos();\n bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);\n prevWidth += actor.width + prevMargin;\n if (actor.box) {\n actor.box.width = prevWidth + box.margin - actor.box.x;\n }\n prevMargin = actor.margin;\n prevBox = actor.box;\n bounds.models.addActor(actor);\n }\n if (prevBox && !isFooter) {\n bounds.models.addBox(prevBox);\n }\n bounds.bumpVerticalPos(maxHeight);\n};\nconst drawActors = async function(diagram2, actors, actorKeys, isFooter) {\n if (!isFooter) {\n for (const actorKey of actorKeys) {\n const actor = actors[actorKey];\n await svgDraw.drawActor(diagram2, actor, conf, false);\n }\n } else {\n let maxHeight = 0;\n bounds.bumpVerticalPos(conf.boxMargin * 2);\n for (const actorKey of actorKeys) {\n const actor = actors[actorKey];\n if (!actor.stopy) {\n actor.stopy = bounds.getVerticalPos();\n }\n const height = await svgDraw.drawActor(diagram2, actor, conf, true);\n maxHeight = common.getMax(maxHeight, height);\n }\n bounds.bumpVerticalPos(maxHeight + conf.boxMargin);\n }\n};\nconst drawActorsPopup = function(diagram2, actors, actorKeys, doc) {\n let maxHeight = 0;\n let maxWidth = 0;\n for (const actorKey of actorKeys) {\n const actor = actors[actorKey];\n const minMenuWidth = getRequiredPopupWidth(actor);\n const menuDimensions = svgDraw.drawPopup(\n diagram2,\n actor,\n minMenuWidth,\n conf,\n conf.forceMenus,\n doc\n );\n if (menuDimensions.height > maxHeight) {\n maxHeight = menuDimensions.height;\n }\n if (menuDimensions.width + actor.x > maxWidth) {\n maxWidth = menuDimensions.width + actor.x;\n }\n }\n return { maxHeight, maxWidth };\n};\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst actorActivations = function(actor) {\n return bounds.activations.filter(function(activation) {\n return activation.actor === actor;\n });\n};\nconst activationBounds = function(actor, actors) {\n const actorObj = actors[actor];\n const activations = actorActivations(actor);\n const left = activations.reduce(function(acc, activation) {\n return common.getMin(acc, activation.startx);\n }, actorObj.x + actorObj.width / 2 - 1);\n const right = activations.reduce(function(acc, activation) {\n return common.getMax(acc, activation.stopx);\n }, actorObj.x + actorObj.width / 2 + 1);\n return [left, right];\n};\nfunction adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {\n bounds.bumpVerticalPos(preMargin);\n let heightAdjust = postMargin;\n if (msg.id && msg.message && loopWidths[msg.id]) {\n const loopWidth = loopWidths[msg.id].width;\n const textConf = messageFont(conf);\n msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);\n msg.width = loopWidth;\n msg.wrap = true;\n const textDims = utils.calculateTextDimensions(msg.message, textConf);\n const totalOffset = common.getMax(textDims.height, conf.labelBoxHeight);\n heightAdjust = postMargin + totalOffset;\n log.debug(`${totalOffset} - ${msg.message}`);\n }\n addLoopFn(msg);\n bounds.bumpVerticalPos(heightAdjust);\n}\nfunction adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors, createdActors, destroyedActors) {\n function receiverAdjustment(actor, adjustment) {\n if (actor.x < actors[msg.from].x) {\n bounds.insert(\n msgModel.stopx - adjustment,\n msgModel.starty,\n msgModel.startx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx + adjustment;\n } else {\n bounds.insert(\n msgModel.startx,\n msgModel.starty,\n msgModel.stopx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx - adjustment;\n }\n }\n function senderAdjustment(actor, adjustment) {\n if (actor.x < actors[msg.to].x) {\n bounds.insert(\n msgModel.startx - adjustment,\n msgModel.starty,\n msgModel.stopx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx + adjustment;\n } else {\n bounds.insert(\n msgModel.stopx,\n msgModel.starty,\n msgModel.startx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx - adjustment;\n }\n }\n if (createdActors[msg.to] == index) {\n const actor = actors[msg.to];\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n actor.starty = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors[msg.from] == index) {\n const actor = actors[msg.from];\n if (conf.mirrorActors) {\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2;\n senderAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors[msg.to] == index) {\n const actor = actors[msg.to];\n if (conf.mirrorActors) {\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n }\n}\nconst draw = async function(_text, id, _version, diagObj) {\n const { securityLevel, sequence } = getConfig();\n conf = sequence;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n bounds.init();\n log.debug(diagObj.db);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const actors = diagObj.db.getActors();\n const createdActors = diagObj.db.getCreatedActors();\n const destroyedActors = diagObj.db.getDestroyedActors();\n const boxes = diagObj.db.getBoxes();\n let actorKeys = diagObj.db.getActorKeys();\n const messages = diagObj.db.getMessages();\n const title = diagObj.db.getDiagramTitle();\n const hasBoxes = diagObj.db.hasAtLeastOneBox();\n const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();\n const maxMessageWidthPerActor = await getMaxMessageWidthPerActor(actors, messages, diagObj);\n conf.height = await calculateActorMargins(actors, maxMessageWidthPerActor, boxes);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n if (hasBoxTitles) {\n bounds.bumpVerticalPos(boxes[0].textMaxHeight);\n }\n }\n if (conf.hideUnusedParticipants === true) {\n const newActors = /* @__PURE__ */ new Set();\n messages.forEach((message) => {\n newActors.add(message.from);\n newActors.add(message.to);\n });\n actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));\n }\n await addActorRenderingData(diagram2, actors, createdActors, actorKeys, 0, messages, false);\n const loopWidths = await calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n svgDraw.insertSequenceNumber(diagram2);\n function activeEnd(msg, verticalPos) {\n const activationData = bounds.endActivation(msg);\n if (activationData.starty + 18 > verticalPos) {\n activationData.starty = verticalPos - 6;\n verticalPos += 12;\n }\n svgDraw.drawActivation(\n diagram2,\n activationData,\n verticalPos,\n conf,\n actorActivations(msg.from.actor).length\n );\n bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);\n }\n let sequenceIndex = 1;\n let sequenceIndexStep = 1;\n const messagesToDraw = [];\n const backgrounds = [];\n let index = 0;\n for (const msg of messages) {\n let loopModel, noteModel, msgModel;\n switch (msg.type) {\n case diagObj.db.LINETYPE.NOTE:\n bounds.resetVerticalPos();\n noteModel = msg.noteModel;\n await drawNote(diagram2, noteModel);\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n bounds.newActivation(msg, diagram2, actors);\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n activeEnd(msg, bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.LOOP_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"loop\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.RECT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin,\n (message) => bounds.newLoop(void 0, message.message)\n );\n break;\n case diagObj.db.LINETYPE.RECT_END:\n loopModel = bounds.endLoop();\n backgrounds.push(loopModel);\n bounds.models.addLoop(loopModel);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.OPT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.OPT_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"opt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.ALT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"alt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n bounds.saveVerticalPos();\n break;\n case diagObj.db.LINETYPE.PAR_AND:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.PAR_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"par\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.AUTONUMBER:\n sequenceIndex = msg.message.start || sequenceIndex;\n sequenceIndexStep = msg.message.step || sequenceIndexStep;\n if (msg.message.visible) {\n diagObj.db.enableSequenceNumbers();\n } else {\n diagObj.db.disableSequenceNumbers();\n }\n break;\n case diagObj.db.LINETYPE.CRITICAL_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"critical\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.BREAK_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.BREAK_END:\n loopModel = bounds.endLoop();\n await svgDraw.drawLoop(diagram2, loopModel, \"break\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n default:\n try {\n msgModel = msg.msgModel;\n msgModel.starty = bounds.getVerticalPos();\n msgModel.sequenceIndex = sequenceIndex;\n msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();\n const lineStartY = await boundMessage(diagram2, msgModel);\n adjustCreatedDestroyedData(\n msg,\n msgModel,\n lineStartY,\n index,\n actors,\n createdActors,\n destroyedActors\n );\n messagesToDraw.push({ messageModel: msgModel, lineStartY });\n bounds.models.addMessage(msgModel);\n } catch (e) {\n log.error(\"error while drawing message\", e);\n }\n }\n if ([\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n sequenceIndex = sequenceIndex + sequenceIndexStep;\n }\n index++;\n }\n log.debug(\"createdActors\", createdActors);\n log.debug(\"destroyedActors\", destroyedActors);\n await drawActors(diagram2, actors, actorKeys, false);\n for (const e of messagesToDraw) {\n await drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj);\n }\n if (conf.mirrorActors) {\n await drawActors(diagram2, actors, actorKeys, true);\n }\n backgrounds.forEach((e) => svgDraw.drawBackgroundRect(diagram2, e));\n fixLifeLineHeights(diagram2, actors, actorKeys, conf);\n for (const box2 of bounds.models.boxes) {\n box2.height = bounds.getVerticalPos() - box2.y;\n bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);\n box2.startx = box2.x;\n box2.starty = box2.y;\n box2.stopx = box2.startx + box2.width;\n box2.stopy = box2.starty + box2.height;\n box2.stroke = \"rgb(0,0,0, 0.5)\";\n await svgDraw.drawBox(diagram2, box2, conf);\n }\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n }\n const requiredBoxSize = drawActorsPopup(diagram2, actors, actorKeys, doc);\n const { bounds: box } = bounds.getBounds();\n let boxHeight = box.stopy - box.starty;\n if (boxHeight < requiredBoxSize.maxHeight) {\n boxHeight = requiredBoxSize.maxHeight;\n }\n let height = boxHeight + 2 * conf.diagramMarginY;\n if (conf.mirrorActors) {\n height = height - conf.boxMargin + conf.bottomMarginAdj;\n }\n let boxWidth = box.stopx - box.startx;\n if (boxWidth < requiredBoxSize.maxWidth) {\n boxWidth = requiredBoxSize.maxWidth;\n }\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr(\"y\", -25);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title ? 40 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, bounds.models);\n};\nasync function getMaxMessageWidthPerActor(actors, messages, diagObj) {\n const maxMessageWidthPerActor = {};\n for (const msg of messages) {\n if (actors[msg.to] && actors[msg.from]) {\n const actor = actors[msg.to];\n if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {\n continue;\n }\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {\n continue;\n }\n const isNote = msg.placement !== void 0;\n const isMessage = !isNote;\n const textFont = isNote ? noteFont(conf) : messageFont(conf);\n const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;\n const messageDimensions = hasKatex(wrappedMessage) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions(wrappedMessage, textFont);\n const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;\n if (isMessage && msg.from === actor.nextActor) {\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === actor.prevActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === msg.to) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth / 2\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {\n if (actor.prevActor) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth / 2\n );\n }\n if (actor.nextActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n }\n }\n }\n }\n log.debug(\"maxMessageWidthPerActor:\", maxMessageWidthPerActor);\n return maxMessageWidthPerActor;\n}\nconst getRequiredPopupWidth = function(actor) {\n let requiredPopupWidth = 0;\n const textFont = actorFont(conf);\n for (const key in actor.links) {\n const labelDimensions = utils.calculateTextDimensions(key, textFont);\n const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;\n if (requiredPopupWidth < labelWidth) {\n requiredPopupWidth = labelWidth;\n }\n }\n return requiredPopupWidth;\n};\nasync function calculateActorMargins(actors, actorToMessageWidth, boxes) {\n let maxHeight = 0;\n for (const prop of Object.keys(actors)) {\n const actor = actors[prop];\n if (actor.wrap) {\n actor.description = utils.wrapLabel(\n actor.description,\n conf.width - 2 * conf.wrapPadding,\n actorFont(conf)\n );\n }\n const actDims = hasKatex(actor.description) ? await calculateMathMLDimensions(actor.description, getConfig()) : utils.calculateTextDimensions(actor.description, actorFont(conf));\n actor.width = actor.wrap ? conf.width : common.getMax(conf.width, actDims.width + 2 * conf.wrapPadding);\n actor.height = actor.wrap ? common.getMax(actDims.height, conf.height) : conf.height;\n maxHeight = common.getMax(maxHeight, actor.height);\n }\n for (const actorKey in actorToMessageWidth) {\n const actor = actors[actorKey];\n if (!actor) {\n continue;\n }\n const nextActor = actors[actor.nextActor];\n if (!nextActor) {\n const messageWidth2 = actorToMessageWidth[actorKey];\n const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;\n actor.margin = common.getMax(actorWidth2, conf.actorMargin);\n continue;\n }\n const messageWidth = actorToMessageWidth[actorKey];\n const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;\n actor.margin = common.getMax(actorWidth, conf.actorMargin);\n }\n let maxBoxHeight = 0;\n boxes.forEach((box) => {\n const textFont = messageFont(conf);\n let totalWidth = box.actorKeys.reduce((total, aKey) => {\n return total += actors[aKey].width + (actors[aKey].margin || 0);\n }, 0);\n totalWidth -= 2 * conf.boxTextMargin;\n if (box.wrap) {\n box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);\n }\n const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);\n maxBoxHeight = common.getMax(boxMsgDimensions.height, maxBoxHeight);\n const minWidth = common.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);\n box.margin = conf.boxTextMargin;\n if (totalWidth < minWidth) {\n const missing = (minWidth - totalWidth) / 2;\n box.margin += missing;\n }\n });\n boxes.forEach((box) => box.textMaxHeight = maxBoxHeight);\n return common.getMax(maxHeight, conf.height);\n}\nconst buildNoteModel = async function(msg, actors, diagObj) {\n const startx = actors[msg.from].x;\n const stopx = actors[msg.to].x;\n const shouldWrap = msg.wrap && msg.message;\n let textDimensions = hasKatex(msg.message) ? await calculateMathMLDimensions(msg.message, getConfig()) : utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,\n noteFont(conf)\n );\n const noteModel = {\n width: shouldWrap ? conf.width : common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin),\n height: 0,\n startx: actors[msg.from].x,\n stopx: 0,\n starty: 0,\n stopy: 0,\n message: msg.message\n };\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width) : common.getMax(\n actors[msg.from].width / 2 + actors[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2;\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common.getMax(\n actors[msg.from].width / 2 + actors[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2;\n } else if (msg.to === msg.from) {\n textDimensions = utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(\n msg.message,\n common.getMax(conf.width, actors[msg.from].width),\n noteFont(conf)\n ) : msg.message,\n noteFont(conf)\n );\n noteModel.width = shouldWrap ? common.getMax(conf.width, actors[msg.from].width) : common.getMax(\n actors[msg.from].width,\n conf.width,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2;\n } else {\n noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin;\n noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2;\n }\n if (shouldWrap) {\n noteModel.message = utils.wrapLabel(\n msg.message,\n noteModel.width - 2 * conf.wrapPadding,\n noteFont(conf)\n );\n }\n log.debug(\n `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`\n );\n return noteModel;\n};\nconst buildMessageModel = function(msg, actors, diagObj) {\n if (![\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n return {};\n }\n const [fromLeft, fromRight] = activationBounds(msg.from, actors);\n const [toLeft, toRight] = activationBounds(msg.to, actors);\n const isArrowToRight = fromLeft <= toLeft;\n const startx = isArrowToRight ? fromRight : fromLeft;\n let stopx = isArrowToRight ? toLeft : toRight;\n const isArrowToActivation = Math.abs(toLeft - toRight) > 2;\n const adjustValue = (value) => {\n return isArrowToRight ? -value : value;\n };\n if (msg.from === msg.to) {\n stopx = startx;\n } else {\n if (msg.activate && !isArrowToActivation) {\n stopx += adjustValue(conf.activationWidth / 2 - 1);\n }\n if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) {\n stopx += adjustValue(3);\n }\n }\n const allBounds = [fromLeft, fromRight, toLeft, toRight];\n const boundedWidth = Math.abs(startx - stopx);\n if (msg.wrap && msg.message) {\n msg.message = utils.wrapLabel(\n msg.message,\n common.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width),\n messageFont(conf)\n );\n }\n const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf));\n return {\n width: common.getMax(\n msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,\n boundedWidth + 2 * conf.wrapPadding,\n conf.width\n ),\n height: 0,\n startx,\n stopx,\n starty: 0,\n stopy: 0,\n message: msg.message,\n type: msg.type,\n wrap: msg.wrap,\n fromBounds: Math.min.apply(null, allBounds),\n toBounds: Math.max.apply(null, allBounds)\n };\n};\nconst calculateLoopBounds = async function(messages, actors, _maxWidthPerActor, diagObj) {\n const loops = {};\n const stack = [];\n let current, noteModel, msgModel;\n for (const msg of messages) {\n msg.id = utils.random({ length: 10 });\n switch (msg.type) {\n case diagObj.db.LINETYPE.LOOP_START:\n case diagObj.db.LINETYPE.ALT_START:\n case diagObj.db.LINETYPE.OPT_START:\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n case diagObj.db.LINETYPE.CRITICAL_START:\n case diagObj.db.LINETYPE.BREAK_START:\n stack.push({\n id: msg.id,\n msg: msg.message,\n from: Number.MAX_SAFE_INTEGER,\n to: Number.MIN_SAFE_INTEGER,\n width: 0\n });\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n case diagObj.db.LINETYPE.PAR_AND:\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n if (msg.message) {\n current = stack.pop();\n loops[current.id] = current;\n loops[msg.id] = current;\n stack.push(current);\n }\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n case diagObj.db.LINETYPE.ALT_END:\n case diagObj.db.LINETYPE.OPT_END:\n case diagObj.db.LINETYPE.PAR_END:\n case diagObj.db.LINETYPE.CRITICAL_END:\n case diagObj.db.LINETYPE.BREAK_END:\n current = stack.pop();\n loops[current.id] = current;\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n {\n const actorRect = actors[msg.from ? msg.from.actor : msg.to.actor];\n const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n const toAdd = {\n startx: x,\n stopx: x + conf.activationWidth,\n actor: msg.from.actor,\n enabled: true\n };\n bounds.activations.push(toAdd);\n }\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n {\n const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);\n delete bounds.activations.splice(lastActorActivationIdx, 1)[0];\n }\n break;\n }\n const isNote = msg.placement !== void 0;\n if (isNote) {\n noteModel = await buildNoteModel(msg, actors, diagObj);\n msg.noteModel = noteModel;\n stack.forEach((stk) => {\n current = stk;\n current.from = common.getMin(current.from, noteModel.startx);\n current.to = common.getMax(current.to, noteModel.startx + noteModel.width);\n current.width = common.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;\n });\n } else {\n msgModel = buildMessageModel(msg, actors, diagObj);\n msg.msgModel = msgModel;\n if (msgModel.startx && msgModel.stopx && stack.length > 0) {\n stack.forEach((stk) => {\n current = stk;\n if (msgModel.startx === msgModel.stopx) {\n const from = actors[msg.from];\n const to = actors[msg.to];\n current.from = common.getMin(\n from.x - msgModel.width / 2,\n from.x - from.width / 2,\n current.from\n );\n current.to = common.getMax(\n to.x + msgModel.width / 2,\n to.x + from.width / 2,\n current.to\n );\n current.width = common.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;\n } else {\n current.from = common.getMin(msgModel.startx, current.from);\n current.to = common.getMax(msgModel.stopx, current.to);\n current.width = common.getMax(current.width, msgModel.width) - conf.labelBoxWidth;\n }\n });\n }\n }\n }\n bounds.activations = [];\n log.debug(\"Loop type widths:\", loops);\n return loops;\n};\nconst renderer = {\n bounds,\n drawActors,\n drawActorsPopup,\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: ({ wrap }) => {\n db.setWrap(wrap);\n }\n};\nexport {\n diagram\n};\n","import { select } from \"d3\";\nimport { d as sanitizeText$1, c as getConfig, x as parseGenericTypes, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, e as common, v as clear$1, l as log, u as utils } from \"./mermaid-ad1dc92f.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 17], $V1 = [1, 18], $V2 = [1, 19], $V3 = [1, 39], $V4 = [1, 40], $V5 = [1, 25], $V6 = [1, 23], $V7 = [1, 24], $V8 = [1, 31], $V9 = [1, 32], $Va = [1, 33], $Vb = [1, 34], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 43], $Vj = [1, 30], $Vk = [1, 42], $Vl = [1, 44], $Vm = [1, 41], $Vn = [1, 45], $Vo = [1, 9], $Vp = [1, 8, 9], $Vq = [1, 56], $Vr = [1, 57], $Vs = [1, 58], $Vt = [1, 59], $Vu = [1, 60], $Vv = [1, 61], $Vw = [1, 62], $Vx = [1, 8, 9, 39], $Vy = [1, 74], $Vz = [1, 8, 9, 12, 13, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], $VA = [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], $VB = [13, 74, 80, 95, 97, 98], $VC = [13, 64, 65, 74, 80, 95, 97, 98], $VD = [13, 59, 60, 61, 62, 63, 74, 80, 95, 97, 98], $VE = [1, 93], $VF = [1, 110], $VG = [1, 108], $VH = [1, 102], $VI = [1, 103], $VJ = [1, 104], $VK = [1, 105], $VL = [1, 106], $VM = [1, 107], $VN = [1, 109], $VO = [1, 8, 9, 37, 39, 42], $VP = [1, 8, 9, 21], $VQ = [1, 8, 9, 78], $VR = [1, 8, 9, 21, 73, 74, 78, 80, 81, 82, 83, 84, 85];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 8:\n this.$ = $$[$0 - 1];\n break;\n case 9:\n case 11:\n case 12:\n this.$ = $$[$0];\n break;\n case 10:\n case 13:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 14:\n case 15:\n this.$ = $$[$0 - 1] + \"~\" + $$[$0] + \"~\";\n break;\n case 16:\n yy.addRelation($$[$0]);\n break;\n case 17:\n $$[$0 - 1].title = yy.cleanupLabel($$[$0]);\n yy.addRelation($$[$0 - 1]);\n break;\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 28:\n case 29:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 30:\n yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);\n break;\n case 31:\n yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);\n break;\n case 32:\n this.$ = $$[$0];\n yy.addNamespace($$[$0]);\n break;\n case 33:\n this.$ = [$$[$0]];\n break;\n case 34:\n this.$ = [$$[$0 - 1]];\n break;\n case 35:\n $$[$0].unshift($$[$0 - 2]);\n this.$ = $$[$0];\n break;\n case 37:\n yy.setCssClass($$[$0 - 2], $$[$0]);\n break;\n case 38:\n yy.addMembers($$[$0 - 3], $$[$0 - 1]);\n break;\n case 39:\n yy.setCssClass($$[$0 - 5], $$[$0 - 3]);\n yy.addMembers($$[$0 - 5], $$[$0 - 1]);\n break;\n case 40:\n this.$ = $$[$0];\n yy.addClass($$[$0]);\n break;\n case 41:\n this.$ = $$[$0 - 1];\n yy.addClass($$[$0 - 1]);\n yy.setClassLabel($$[$0 - 1], $$[$0]);\n break;\n case 42:\n yy.addAnnotation($$[$0], $$[$0 - 2]);\n break;\n case 43:\n this.$ = [$$[$0]];\n break;\n case 44:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 45:\n break;\n case 46:\n yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));\n break;\n case 47:\n break;\n case 48:\n break;\n case 49:\n this.$ = { \"id1\": $$[$0 - 2], \"id2\": $$[$0], relation: $$[$0 - 1], relationTitle1: \"none\", relationTitle2: \"none\" };\n break;\n case 50:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: \"none\" };\n break;\n case 51:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: \"none\", relationTitle2: $$[$0 - 1] };\n break;\n case 52:\n this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };\n break;\n case 53:\n yy.addNote($$[$0], $$[$0 - 1]);\n break;\n case 54:\n yy.addNote($$[$0]);\n break;\n case 55:\n yy.setDirection(\"TB\");\n break;\n case 56:\n yy.setDirection(\"BT\");\n break;\n case 57:\n yy.setDirection(\"RL\");\n break;\n case 58:\n yy.setDirection(\"LR\");\n break;\n case 59:\n this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 60:\n this.$ = { type1: \"none\", type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 61:\n this.$ = { type1: $$[$0 - 1], type2: \"none\", lineType: $$[$0] };\n break;\n case 62:\n this.$ = { type1: \"none\", type2: \"none\", lineType: $$[$0] };\n break;\n case 63:\n this.$ = yy.relationType.AGGREGATION;\n break;\n case 64:\n this.$ = yy.relationType.EXTENSION;\n break;\n case 65:\n this.$ = yy.relationType.COMPOSITION;\n break;\n case 66:\n this.$ = yy.relationType.DEPENDENCY;\n break;\n case 67:\n this.$ = yy.relationType.LOLLIPOP;\n break;\n case 68:\n this.$ = yy.lineType.LINE;\n break;\n case 69:\n this.$ = yy.lineType.DOTTED_LINE;\n break;\n case 70:\n case 76:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 71:\n case 77:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 72:\n this.$ = $$[$0 - 2];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 73:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 74:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 75:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 3], $$[$0 - 1]);\n break;\n case 78:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 79:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 80:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 81:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 82:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 83:\n this.$ = $$[$0 - 5];\n yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 4], $$[$0 - 1]);\n break;\n case 84:\n this.$ = $$[$0 - 2];\n yy.setCssStyle($$[$0 - 1], $$[$0]);\n break;\n case 85:\n yy.setCssClass($$[$0 - 1], $$[$0]);\n break;\n case 86:\n this.$ = [$$[$0]];\n break;\n case 87:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 89:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n }\n },\n 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: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($Vo, [2, 5], { 8: [1, 46] }), { 8: [1, 47] }, o($Vp, [2, 16], { 21: [1, 48] }), o($Vp, [2, 18]), o($Vp, [2, 19]), o($Vp, [2, 20]), o($Vp, [2, 21]), o($Vp, [2, 22]), o($Vp, [2, 23]), o($Vp, [2, 24]), o($Vp, [2, 25]), o($Vp, [2, 26]), { 32: [1, 49] }, { 34: [1, 50] }, o($Vp, [2, 29]), o($Vp, [2, 45], { 49: 51, 57: 54, 58: 55, 13: [1, 52], 21: [1, 53], 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }), { 37: [1, 63] }, o($Vx, [2, 36], { 37: [1, 65], 42: [1, 64] }), o($Vp, [2, 47]), o($Vp, [2, 48]), { 16: 66, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 67, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 68, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 16: 37, 17: 69, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 74: [1, 70] }, { 13: [1, 71] }, { 16: 37, 17: 72, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: $Vy, 51: 73 }, o($Vp, [2, 55]), o($Vp, [2, 56]), o($Vp, [2, 57]), o($Vp, [2, 58]), o($Vz, [2, 11], { 16: 37, 18: 38, 17: 75, 19: [1, 76], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), o($Vz, [2, 12], { 19: [1, 77] }), { 15: 78, 16: 79, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 16: 37, 17: 80, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VA, [2, 112]), o($VA, [2, 113]), o($VA, [2, 114]), o($VA, [2, 115]), o([1, 8, 9, 12, 13, 19, 21, 37, 39, 42, 59, 60, 61, 62, 63, 64, 65, 70, 72], [2, 116]), o($Vo, [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: $V0, 33: $V1, 35: $V2, 40: $V3, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }), { 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: $V0, 33: $V1, 35: $V2, 36: 21, 40: $V3, 41: 22, 44: $V4, 45: $V5, 47: $V6, 48: $V7, 50: $V8, 52: $V9, 53: $Va, 54: $Vb, 55: $Vc, 56: $Vd, 66: $Ve, 67: $Vf, 69: $Vg, 73: $Vh, 74: $Vi, 76: $Vj, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 17]), o($Vp, [2, 27]), o($Vp, [2, 28]), { 13: [1, 84], 16: 37, 17: 83, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 49: 85, 57: 54, 58: 55, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu, 64: $Vv, 65: $Vw }, o($Vp, [2, 46]), { 58: 86, 64: $Vv, 65: $Vw }, o($VB, [2, 62], { 57: 87, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VC, [2, 63]), o($VC, [2, 64]), o($VC, [2, 65]), o($VC, [2, 66]), o($VC, [2, 67]), o($VD, [2, 68]), o($VD, [2, 69]), { 8: [1, 89], 23: 90, 38: 88, 41: 22, 44: $V4 }, { 16: 91, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, { 43: 92, 47: $VE }, { 46: [1, 94] }, { 13: [1, 95] }, { 13: [1, 96] }, { 70: [1, 97], 72: [1, 98] }, { 21: $VF, 73: $VG, 74: $VH, 75: 99, 77: 100, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, { 74: [1, 111] }, { 13: $Vy, 51: 112 }, o($Vp, [2, 54]), o($Vp, [2, 117]), o($Vz, [2, 13]), o($Vz, [2, 14]), o($Vz, [2, 15]), { 37: [2, 32] }, { 15: 113, 16: 79, 37: [2, 9], 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm }, o($VO, [2, 40], { 11: 114, 12: [1, 115] }), o($Vo, [2, 7]), { 9: [1, 116] }, o($VP, [2, 49]), { 16: 37, 17: 117, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, { 13: [1, 119], 16: 37, 17: 118, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 61], { 57: 120, 59: $Vq, 60: $Vr, 61: $Vs, 62: $Vt, 63: $Vu }), o($VB, [2, 60]), { 39: [1, 121] }, { 23: 90, 38: 122, 41: 22, 44: $V4 }, { 8: [1, 123], 39: [2, 33] }, o($Vx, [2, 37], { 37: [1, 124] }), { 39: [1, 125] }, { 39: [2, 43], 43: 126, 47: $VE }, { 16: 37, 17: 127, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($Vp, [2, 70], { 13: [1, 128] }), o($Vp, [2, 72], { 13: [1, 130], 68: [1, 129] }), o($Vp, [2, 76], { 13: [1, 131], 71: [1, 132] }), { 13: [1, 133] }, o($Vp, [2, 84], { 78: [1, 134] }), o($VQ, [2, 86], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VR, [2, 88]), o($VR, [2, 90]), o($VR, [2, 91]), o($VR, [2, 92]), o($VR, [2, 93]), o($VR, [2, 94]), o($VR, [2, 95]), o($VR, [2, 96]), o($VR, [2, 97]), o($VR, [2, 98]), o($Vp, [2, 85]), o($Vp, [2, 53]), { 37: [2, 10] }, o($VO, [2, 41]), { 13: [1, 136] }, { 1: [2, 4] }, o($VP, [2, 51]), o($VP, [2, 50]), { 16: 37, 17: 137, 18: 38, 74: $Vi, 80: $Vk, 95: $Vl, 97: $Vm, 98: $Vn }, o($VB, [2, 59]), o($Vp, [2, 30]), { 39: [1, 138] }, { 23: 90, 38: 139, 39: [2, 34], 41: 22, 44: $V4 }, { 43: 140, 47: $VE }, o($Vx, [2, 38]), { 39: [2, 44] }, o($Vp, [2, 42]), o($Vp, [2, 71]), o($Vp, [2, 73]), o($Vp, [2, 74], { 68: [1, 141] }), o($Vp, [2, 77]), o($Vp, [2, 78], { 13: [1, 142] }), o($Vp, [2, 80], { 13: [1, 144], 68: [1, 143] }), { 21: $VF, 73: $VG, 74: $VH, 77: 145, 79: 101, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }, o($VR, [2, 89]), { 14: [1, 146] }, o($VP, [2, 52]), o($Vp, [2, 31]), { 39: [2, 35] }, { 39: [1, 147] }, o($Vp, [2, 75]), o($Vp, [2, 79]), o($Vp, [2, 81]), o($Vp, [2, 82], { 68: [1, 148] }), o($VQ, [2, 87], { 79: 135, 21: $VF, 73: $VG, 74: $VH, 80: $VI, 81: $VJ, 82: $VK, 83: $VL, 84: $VM, 85: $VN }), o($VO, [2, 8]), o($Vx, [2, 39]), o($Vp, [2, 83])],\n 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] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 53;\n case 1:\n return 54;\n case 2:\n return 55;\n case 3:\n return 56;\n case 4:\n break;\n case 5:\n break;\n case 6:\n this.begin(\"acc_title\");\n return 31;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 33;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 8;\n case 14:\n break;\n case 15:\n return 7;\n case 16:\n return 7;\n case 17:\n return \"EDGE_STATE\";\n case 18:\n this.begin(\"callback_name\");\n break;\n case 19:\n this.popState();\n break;\n case 20:\n this.popState();\n this.begin(\"callback_args\");\n break;\n case 21:\n return 70;\n case 22:\n this.popState();\n break;\n case 23:\n return 71;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n case 26:\n this.begin(\"string\");\n break;\n case 27:\n return 73;\n case 28:\n this.begin(\"namespace\");\n return 40;\n case 29:\n this.popState();\n return 8;\n case 30:\n break;\n case 31:\n this.begin(\"namespace-body\");\n return 37;\n case 32:\n this.popState();\n return 39;\n case 33:\n return \"EOF_IN_STRUCT\";\n case 34:\n return 8;\n case 35:\n break;\n case 36:\n return \"EDGE_STATE\";\n case 37:\n this.begin(\"class\");\n return 44;\n case 38:\n this.popState();\n return 8;\n case 39:\n break;\n case 40:\n this.popState();\n this.popState();\n return 39;\n case 41:\n this.begin(\"class-body\");\n return 37;\n case 42:\n this.popState();\n return 39;\n case 43:\n return \"EOF_IN_STRUCT\";\n case 44:\n return \"EDGE_STATE\";\n case 45:\n return \"OPEN_IN_STRUCT\";\n case 46:\n break;\n case 47:\n return \"MEMBER\";\n case 48:\n return 76;\n case 49:\n return 66;\n case 50:\n return 67;\n case 51:\n return 69;\n case 52:\n return 50;\n case 53:\n return 52;\n case 54:\n return 45;\n case 55:\n return 46;\n case 56:\n return 72;\n case 57:\n this.popState();\n break;\n case 58:\n return \"GENERICTYPE\";\n case 59:\n this.begin(\"generic\");\n break;\n case 60:\n this.popState();\n break;\n case 61:\n return \"BQUOTE_STR\";\n case 62:\n this.begin(\"bqstring\");\n break;\n case 63:\n return 68;\n case 64:\n return 68;\n case 65:\n return 68;\n case 66:\n return 68;\n case 67:\n return 60;\n case 68:\n return 60;\n case 69:\n return 62;\n case 70:\n return 62;\n case 71:\n return 61;\n case 72:\n return 59;\n case 73:\n return 63;\n case 74:\n return 64;\n case 75:\n return 65;\n case 76:\n return 21;\n case 77:\n return 42;\n case 78:\n return 95;\n case 79:\n return \"DOT\";\n case 80:\n return \"PLUS\";\n case 81:\n return 81;\n case 82:\n return 78;\n case 83:\n return 84;\n case 84:\n return 84;\n case 85:\n return 85;\n case 86:\n return \"EQUALS\";\n case 87:\n return \"EQUALS\";\n case 88:\n return 74;\n case 89:\n return 12;\n case 90:\n return 14;\n case 91:\n return \"PUNCTUATION\";\n case 92:\n return 80;\n case 93:\n return 97;\n case 94:\n return 83;\n case 95:\n return 83;\n case 96:\n return 9;\n }\n },\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:classDiagram-v2\\b)/, /^(?:classDiagram\\b)/, /^(?:\\[\\*\\])/, /^(?:call[\\s]+)/, /^(?:\\([\\s]*\\))/, /^(?:\\()/, /^(?:[^(]*)/, /^(?:\\))/, /^(?:[^)]*)/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[\"])/, /^(?:style\\b)/, /^(?:namespace\\b)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:\\[\\*\\])/, /^(?:class\\b)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\\[\\*\\])/, /^(?:[{])/, /^(?:[\\n])/, /^(?:[^{}\\n]*)/, /^(?:cssClass\\b)/, /^(?:callback\\b)/, /^(?:link\\b)/, /^(?:click\\b)/, /^(?:note for\\b)/, /^(?:note\\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\\b)/, /^(?:_blank\\b)/, /^(?:_parent\\b)/, /^(?:_top\\b)/, /^(?:\\s*<\\|)/, /^(?:\\s*\\|>)/, /^(?:\\s*>)/, /^(?:\\s*<)/, /^(?:\\s*\\*)/, /^(?:\\s*o\\b)/, /^(?:\\s*\\(\\))/, /^(?:--)/, /^(?:\\.\\.)/, /^(?::{1}[^:\\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\\.)/, /^(?:\\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\\w+)/, /^(?:\\[)/, /^(?:\\])/, /^(?:[!\"#$%&'*+,-.`?\\\\/])/, /^(?:[0-9]+)/, /^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/, /^(?:\\s)/, /^(?:\\s)/, /^(?:$)/],\n conditions: { \"namespace-body\": { \"rules\": [26, 32, 33, 34, 35, 36, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"namespace\": { \"rules\": [26, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"class-body\": { \"rules\": [26, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"class\": { \"rules\": [26, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"acc_title\": { \"rules\": [7, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"callback_args\": { \"rules\": [22, 23, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"callback_name\": { \"rules\": [19, 20, 21, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"href\": { \"rules\": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"struct\": { \"rules\": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"generic\": { \"rules\": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"bqstring\": { \"rules\": [26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"string\": { \"rules\": [24, 25, 26, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 37, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst visibilityValues = [\"#\", \"+\", \"~\", \"-\", \"\"];\nclass ClassMember {\n constructor(input, memberType) {\n this.memberType = memberType;\n this.visibility = \"\";\n this.classifier = \"\";\n const sanitizedInput = sanitizeText$1(input, getConfig());\n this.parseMember(sanitizedInput);\n }\n getDisplayDetails() {\n let displayText = this.visibility + parseGenericTypes(this.id);\n if (this.memberType === \"method\") {\n displayText += `(${parseGenericTypes(this.parameters.trim())})`;\n if (this.returnType) {\n displayText += \" : \" + parseGenericTypes(this.returnType);\n }\n }\n displayText = displayText.trim();\n const cssStyle = this.parseClassifier();\n return {\n displayText,\n cssStyle\n };\n }\n parseMember(input) {\n let potentialClassifier = \"\";\n if (this.memberType === \"method\") {\n const methodRegEx = /([#+~-])?(.+)\\((.*)\\)([\\s$*])?(.*)([$*])?/;\n const match = input.match(methodRegEx);\n if (match) {\n const detectedVisibility = match[1] ? match[1].trim() : \"\";\n if (visibilityValues.includes(detectedVisibility)) {\n this.visibility = detectedVisibility;\n }\n this.id = match[2].trim();\n this.parameters = match[3] ? match[3].trim() : \"\";\n potentialClassifier = match[4] ? match[4].trim() : \"\";\n this.returnType = match[5] ? match[5].trim() : \"\";\n if (potentialClassifier === \"\") {\n const lastChar = this.returnType.substring(this.returnType.length - 1);\n if (lastChar.match(/[$*]/)) {\n potentialClassifier = lastChar;\n this.returnType = this.returnType.substring(0, this.returnType.length - 1);\n }\n }\n }\n } else {\n const length = input.length;\n const firstChar = input.substring(0, 1);\n const lastChar = input.substring(length - 1);\n if (visibilityValues.includes(firstChar)) {\n this.visibility = firstChar;\n }\n if (lastChar.match(/[$*]/)) {\n potentialClassifier = lastChar;\n }\n this.id = input.substring(\n this.visibility === \"\" ? 0 : 1,\n potentialClassifier === \"\" ? length : length - 1\n );\n }\n this.classifier = potentialClassifier;\n }\n parseClassifier() {\n switch (this.classifier) {\n case \"*\":\n return \"font-style:italic;\";\n case \"$\":\n return \"text-decoration:underline;\";\n default:\n return \"\";\n }\n }\n}\nconst MERMAID_DOM_ID_PREFIX = \"classId-\";\nlet relations = [];\nlet classes = {};\nlet notes = [];\nlet classCounter = 0;\nlet namespaces = {};\nlet namespaceCounter = 0;\nlet functions = [];\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\nconst splitClassNameAndType = function(_id) {\n const id = common.sanitizeText(_id, getConfig());\n let genericType = \"\";\n let className = id;\n if (id.indexOf(\"~\") > 0) {\n const split = id.split(\"~\");\n className = sanitizeText(split[0]);\n genericType = sanitizeText(split[1]);\n }\n return { className, type: genericType };\n};\nconst setClassLabel = function(_id, label) {\n const id = common.sanitizeText(_id, getConfig());\n if (label) {\n label = sanitizeText(label);\n }\n const { className } = splitClassNameAndType(id);\n classes[className].label = label;\n};\nconst addClass = function(_id) {\n const id = common.sanitizeText(_id, getConfig());\n const { className, type } = splitClassNameAndType(id);\n if (Object.hasOwn(classes, className)) {\n return;\n }\n const name = common.sanitizeText(className, getConfig());\n classes[name] = {\n id: name,\n type,\n label: name,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n styles: [],\n domId: MERMAID_DOM_ID_PREFIX + name + \"-\" + classCounter\n };\n classCounter++;\n};\nconst lookUpDomId = function(_id) {\n const id = common.sanitizeText(_id, getConfig());\n if (id in classes) {\n return classes[id].domId;\n }\n throw new Error(\"Class not found: \" + id);\n};\nconst clear = function() {\n relations = [];\n classes = {};\n notes = [];\n functions = [];\n functions.push(setupToolTips);\n namespaces = {};\n namespaceCounter = 0;\n clear$1();\n};\nconst getClass = function(id) {\n return classes[id];\n};\nconst getClasses = function() {\n return classes;\n};\nconst getRelations = function() {\n return relations;\n};\nconst getNotes = function() {\n return notes;\n};\nconst addRelation = function(relation) {\n log.debug(\"Adding relation: \" + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n relation.relationTitle1 = common.sanitizeText(relation.relationTitle1.trim(), getConfig());\n relation.relationTitle2 = common.sanitizeText(relation.relationTitle2.trim(), getConfig());\n relations.push(relation);\n};\nconst addAnnotation = function(className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\nconst addMember = function(className, member) {\n addClass(className);\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n if (typeof member === \"string\") {\n const memberString = member.trim();\n if (memberString.startsWith(\"<<\") && memberString.endsWith(\">>\")) {\n theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(\")\") > 0) {\n theClass.methods.push(new ClassMember(memberString, \"method\"));\n } else if (memberString) {\n theClass.members.push(new ClassMember(memberString, \"attribute\"));\n }\n }\n};\nconst addMembers = function(className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\nconst addNote = function(text, className) {\n const note = {\n id: `note${notes.length}`,\n class: className,\n text\n };\n notes.push(note);\n};\nconst cleanupLabel = function(label) {\n if (label.startsWith(\":\")) {\n label = label.substring(1);\n }\n return sanitizeText(label.trim());\n};\nconst setCssClass = function(ids, className) {\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n if (classes[id] !== void 0) {\n classes[id].cssClasses.push(className);\n }\n });\n};\nconst setTooltip = function(ids, tooltip) {\n ids.split(\",\").forEach(function(id) {\n if (tooltip !== void 0) {\n classes[id].tooltip = sanitizeText(tooltip);\n }\n });\n};\nconst getTooltip = function(id, namespace) {\n if (namespace) {\n return namespaces[namespace].classes[id].tooltip;\n }\n return classes[id].tooltip;\n};\nconst setLink = function(ids, linkStr, target) {\n const config = getConfig();\n ids.split(\",\").forEach(function(_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n if (classes[id] !== void 0) {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (config.securityLevel === \"sandbox\") {\n classes[id].linkTarget = \"_top\";\n } else if (typeof target === \"string\") {\n classes[id].linkTarget = sanitizeText(target);\n } else {\n classes[id].linkTarget = \"_blank\";\n }\n }\n });\n setCssClass(ids, \"clickable\");\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, \"clickable\");\n};\nconst setClickFunc = function(_domId, functionName, functionArgs) {\n const domId = common.sanitizeText(_domId, getConfig());\n const config = getConfig();\n if (config.securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n const id = domId;\n if (classes[id] !== void 0) {\n const elemId = lookUpDomId(id);\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(elemId);\n }\n functions.push(function() {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n function() {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\nconst bindFunctions = function(element) {\n functions.forEach(function(fun) {\n fun(element);\n });\n};\nconst lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nconst relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n LOLLIPOP: 4\n};\nconst setupToolTips = function(element) {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", function() {\n const el = select(this);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.top - 14 + document.body.scrollTop + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
\"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", function() {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(this);\n el.classed(\"hover\", false);\n });\n};\nfunctions.push(setupToolTips);\nlet direction = \"TB\";\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\nconst addNamespace = function(id) {\n if (namespaces[id] !== void 0) {\n return;\n }\n namespaces[id] = {\n id,\n classes: {},\n children: {},\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + namespaceCounter\n };\n namespaceCounter++;\n};\nconst getNamespace = function(name) {\n return namespaces[name];\n};\nconst getNamespaces = function() {\n return namespaces;\n};\nconst addClassesToNamespace = function(id, classNames) {\n if (namespaces[id] === void 0) {\n return;\n }\n for (const name of classNames) {\n const { className } = splitClassNameAndType(name);\n classes[className].parent = id;\n namespaces[id].classes[className] = classes[className];\n }\n};\nconst setCssStyle = function(id, styles2) {\n const thisClass = classes[id];\n if (!styles2 || !thisClass) {\n return;\n }\n for (const s of styles2) {\n if (s.includes(\",\")) {\n thisClass.styles.push(...s.split(\",\"));\n } else {\n thisClass.styles.push(s);\n }\n }\n};\nconst db = {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n getNotes,\n addAnnotation,\n addNote,\n getRelations,\n addRelation,\n getDirection,\n setDirection,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n getTooltip,\n setTooltip,\n lookUpDomId,\n setDiagramTitle,\n getDiagramTitle,\n setClassLabel,\n addNamespace,\n addClassesToNamespace,\n getNamespace,\n getNamespaces,\n setCssStyle\n};\nconst getStyles = (options) => `g.classGroup text {\n fill: ${options.nodeBorder || options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n line-height: initial;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`;\nconst styles = getStyles;\nexport {\n db as d,\n parser$1 as p,\n styles as s\n};\n","import { p as parser, d as db, s as styles } from \"./styles-5f03d8d2.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { u as utils, l as log, x as parseGenericTypes, c as getConfig, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation, conf, diagObj) {\n const getRelationType = function(type) {\n switch (type) {\n case diagObj.db.relationType.AGGREGATION:\n return \"aggregation\";\n case diagObj.db.relationType.EXTENSION:\n return \"extension\";\n case diagObj.db.relationType.COMPOSITION:\n return \"composition\";\n case diagObj.db.relationType.DEPENDENCY:\n return \"dependency\";\n case diagObj.db.relationType.LOLLIPOP:\n return \"lollipop\";\n }\n };\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"relation\");\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n if (relation.relation.lineType == 1) {\n svgPath.attr(\"class\", \"relation dashed-line\");\n }\n if (relation.relation.lineType == 10) {\n svgPath.attr(\"class\", \"relation dotted-line\");\n }\n if (relation.relation.type1 !== \"none\") {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type1) + \"Start)\"\n );\n }\n if (relation.relation.type2 !== \"none\") {\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type2) + \"End)\"\n );\n }\n let x, y;\n const l = path.points.length;\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== \"none\",\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== \"none\",\n path.points,\n path.points[l - 1]\n );\n log.debug(\"cardinality_1_point \" + JSON.stringify(cardinality_1_point));\n log.debug(\"cardinality_2_point \" + JSON.stringify(cardinality_2_point));\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n if (relation.title !== void 0) {\n const g = elem.append(\"g\").attr(\"class\", \"classLabel\");\n const label = g.append(\"text\").attr(\"class\", \"label\").attr(\"x\", x).attr(\"y\", y).attr(\"fill\", \"red\").attr(\"text-anchor\", \"middle\").text(relation.title);\n window.label = label;\n const bounds = label.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", bounds.x - conf.padding / 2).attr(\"y\", bounds.y - conf.padding / 2).attr(\"width\", bounds.width + conf.padding).attr(\"height\", bounds.height + conf.padding);\n }\n log.info(\"Rendering relation \" + JSON.stringify(relation));\n if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type1\").attr(\"x\", p1_card_x).attr(\"y\", p1_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle1);\n }\n if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type2\").attr(\"x\", p2_card_x).attr(\"y\", p2_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle2);\n }\n edgeCount++;\n};\nconst drawClass = function(elem, classDef, conf, diagObj) {\n log.debug(\"Rendering class \", classDef, conf);\n const id = classDef.id;\n const classInfo = {\n id,\n label: classDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", diagObj.db.lookUpDomId(id)).attr(\"class\", \"classGroup\");\n let title;\n if (classDef.link) {\n title = g.append(\"svg:a\").attr(\"xlink:href\", classDef.link).attr(\"target\", classDef.linkTarget).append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n } else {\n title = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n }\n let isFirst = true;\n classDef.annotations.forEach(function(member) {\n const titleText2 = title.append(\"tspan\").text(\"«\" + member + \"»\");\n if (!isFirst) {\n titleText2.attr(\"dy\", conf.textHeight);\n }\n isFirst = false;\n });\n let classTitleString = getClassTitleString(classDef);\n const classTitle = title.append(\"tspan\").text(classTitleString).attr(\"class\", \"title\");\n if (!isFirst) {\n classTitle.attr(\"dy\", conf.textHeight);\n }\n const titleHeight = title.node().getBBox().height;\n let membersLine;\n let membersBox;\n let methodsLine;\n if (classDef.members.length > 0) {\n membersLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin / 2).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin / 2);\n const members = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + conf.dividerMargin + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.members.forEach(function(member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n membersBox = members.node().getBBox();\n }\n if (classDef.methods.length > 0) {\n methodsLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n const methods = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.methods.forEach(function(method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n }\n const classBox = g.node().getBBox();\n var cssClassStr = \" \";\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(\" \");\n }\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", classBox.width + 2 * conf.padding).attr(\"height\", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr(\"class\", cssClassStr);\n const rectWidth = rect.node().getBBox().width;\n title.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n if (classDef.tooltip) {\n title.insert(\"title\").text(classDef.tooltip);\n }\n if (membersLine) {\n membersLine.attr(\"x2\", rectWidth);\n }\n if (methodsLine) {\n methodsLine.attr(\"x2\", rectWidth);\n }\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n return classInfo;\n};\nconst getClassTitleString = function(classDef) {\n let classTitleString = classDef.id;\n if (classDef.type) {\n classTitleString += \"<\" + parseGenericTypes(classDef.type) + \">\";\n }\n return classTitleString;\n};\nconst drawNote = function(elem, note, conf, diagObj) {\n log.debug(\"Rendering note \", note, conf);\n const id = note.id;\n const noteInfo = {\n id,\n text: note.text,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"classGroup\");\n let text = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n const lines = JSON.parse(`\"${note.text}\"`).split(\"\\n\");\n lines.forEach(function(line2) {\n log.debug(`Adding line: ${line2}`);\n text.append(\"tspan\").text(line2).attr(\"class\", \"title\").attr(\"dy\", conf.textHeight);\n });\n const noteBox = g.node().getBBox();\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", noteBox.width + 2 * conf.padding).attr(\n \"height\",\n noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin\n );\n const rectWidth = rect.node().getBBox().width;\n text.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n noteInfo.width = rectWidth;\n noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;\n return noteInfo;\n};\nconst addTspan = function(textEl, member, isFirst, conf) {\n const { displayText, cssStyle } = member.getDisplayDetails();\n const tSpan = textEl.append(\"tspan\").attr(\"x\", conf.padding).text(displayText);\n if (cssStyle !== \"\") {\n tSpan.attr(\"style\", member.cssStyle);\n }\n if (!isFirst) {\n tSpan.attr(\"dy\", conf.textHeight);\n }\n};\nconst svgDraw = {\n getClassTitleString,\n drawClass,\n drawEdge,\n drawNote\n};\nlet idCache = {};\nconst padding = 20;\nconst getGraphId = function(label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n if (foundEntry) {\n return foundEntry[0];\n }\n};\nconst insertMarkers = function(elem) {\n elem.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\");\n elem.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\");\n elem.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\");\n elem.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\");\n elem.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\");\n elem.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\");\n elem.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\");\n elem.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\");\n};\nconst draw = function(text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n log.info(\"Rendering diagram \" + text);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const g = new graphlib.Graph({\n multigraph: true\n });\n g.setGraph({\n isMultiGraph: true\n });\n g.setDefaultEdgeLabel(function() {\n return {};\n });\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n for (const key of keys) {\n const classDef = classes[key];\n const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n log.info(\"Org height: \" + node.height);\n }\n const relations = diagObj.db.getRelations();\n relations.forEach(function(relation) {\n log.info(\n // cspell:ignore tjoho\n \"tjoho\" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation\n },\n relation.title || \"DEFAULT\"\n );\n });\n const notes = diagObj.db.getNotes();\n notes.forEach(function(note) {\n log.debug(`Adding note: ${JSON.stringify(note)}`);\n const node = svgDraw.drawNote(diagram2, note, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n if (note.class && note.class in classes) {\n g.setEdge(\n note.id,\n getGraphId(note.class),\n {\n relation: {\n id1: note.id,\n id2: note.class,\n relation: {\n type1: \"none\",\n type2: \"none\",\n lineType: 10\n }\n }\n },\n \"DEFAULT\"\n );\n }\n });\n layout(g);\n g.nodes().forEach(function(v) {\n if (v !== void 0 && g.node(v) !== void 0) {\n log.debug(\"Node \" + v + \": \" + JSON.stringify(g.node(v)));\n root.select(\"#\" + (diagObj.db.lookUpDomId(v) || v)).attr(\n \"transform\",\n \"translate(\" + (g.node(v).x - g.node(v).width / 2) + \",\" + (g.node(v).y - g.node(v).height / 2) + \" )\"\n );\n }\n });\n g.edges().forEach(function(e) {\n if (e !== void 0 && g.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);\n }\n });\n const svgBounds = diagram2.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram2.attr(\"viewBox\", vBox);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n","import { p as parser, d as db, s as styles } from \"./styles-5f03d8d2.js\";\nimport { select, curveLinear } from \"d3\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { l as log, c as getConfig, u as utils, o as setupGraphViewbox, k as getStylesFromArray, n as interpolateToCurve, e as common } from \"./mermaid-ad1dc92f.js\";\nimport { r as render } from \"./index-6079d271.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-332bd1c7.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\nlet conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n curve: void 0\n};\nconst addNamespaces = function(namespaces, g, _id, diagObj) {\n const keys = Object.keys(namespaces);\n log.info(\"keys:\", keys);\n log.info(namespaces);\n keys.forEach(function(id) {\n var _a, _b;\n const vertex = namespaces[id];\n const shape = \"rect\";\n const node = {\n shape,\n id: vertex.id,\n domId: vertex.domId,\n labelText: sanitizeText(vertex.id),\n labelStyle: \"\",\n style: \"fill: none; stroke: black\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n addClasses(vertex.classes, g, _id, diagObj, vertex.id);\n log.info(\"setNode\", node);\n });\n};\nconst addClasses = function(classes, g, _id, diagObj, parent) {\n const keys = Object.keys(classes);\n log.info(\"keys:\", keys);\n log.info(classes);\n keys.filter((id) => classes[id].parent == parent).forEach(function(id) {\n var _a, _b;\n const vertex = classes[id];\n const cssClassStr = vertex.cssClasses.join(\" \");\n const styles2 = getStylesFromArray(vertex.styles);\n const vertexText = vertex.label ?? vertex.id;\n const radius = 0;\n const shape = \"class_box\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radius,\n ry: radius,\n class: cssClassStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.domId,\n tooltip: diagObj.db.getTooltip(vertex.id, parent) || \"\",\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n if (parent) {\n g.setParent(vertex.id, parent);\n }\n log.info(\"setNode\", node);\n });\n};\nconst addNotes = function(notes, g, startEdgeId, classes) {\n log.info(notes);\n notes.forEach(function(note, i) {\n var _a, _b;\n const vertex = note;\n const cssNoteStr = \"\";\n const styles2 = { labelStyle: \"\", style: \"\" };\n const vertexText = vertex.text;\n const radius = 0;\n const shape = \"note\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n noteData: vertex,\n rx: radius,\n ry: radius,\n class: cssNoteStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.id,\n tooltip: \"\",\n type: \"note\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n log.info(\"setNode\", node);\n if (!vertex.class || !(vertex.class in classes)) {\n return;\n }\n const edgeId = startEdgeId + i;\n const edgeData = {\n id: `edgeNote${edgeId}`,\n //Set relationship style and line type\n classes: \"relation\",\n pattern: \"dotted\",\n // Set link type for rendering\n arrowhead: \"none\",\n //Set edge extra labels\n startLabelRight: \"\",\n endLabelLeft: \"\",\n //Set relation arrow types\n arrowTypeStart: \"none\",\n arrowTypeEnd: \"none\",\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf.curve, curveLinear)\n };\n g.setEdge(vertex.id, vertex.class, edgeData, edgeId);\n });\n};\nconst addRelations = function(relations, g) {\n const conf2 = getConfig().flowchart;\n let cnt = 0;\n relations.forEach(function(edge) {\n var _a;\n cnt++;\n const edgeData = {\n //Set relationship style and line type\n classes: \"relation\",\n pattern: edge.relation.lineType == 1 ? \"dashed\" : \"solid\",\n id: `id_${edge.id1}_${edge.id2}_${cnt}`,\n // Set link type for rendering\n arrowhead: edge.type === \"arrow_open\" ? \"none\" : \"normal\",\n //Set edge extra labels\n startLabelRight: edge.relationTitle1 === \"none\" ? \"\" : edge.relationTitle1,\n endLabelLeft: edge.relationTitle2 === \"none\" ? \"\" : edge.relationTitle2,\n //Set relation arrow types\n arrowTypeStart: getArrowMarker(edge.relation.type1),\n arrowTypeEnd: getArrowMarker(edge.relation.type2),\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)\n };\n log.info(edgeData, edge);\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n edgeData.style = styles2.style;\n edgeData.labelStyle = styles2.labelStyle;\n }\n edge.text = edge.title;\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) {\n edgeData.labelType = \"html\";\n edgeData.label = '' + edge.text + \"\";\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\nconst setConf = function(cnf) {\n conf = {\n ...conf,\n ...cnf\n };\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing class - \", id);\n const conf2 = getConfig().flowchart ?? getConfig().class;\n const securityLevel = getConfig().securityLevel;\n log.info(\"config:\", conf2);\n const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;\n const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: diagObj.db.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const namespaces = diagObj.db.getNamespaces();\n const classes = diagObj.db.getClasses();\n const relations = diagObj.db.getRelations();\n const notes = diagObj.db.getNotes();\n log.info(relations);\n addNamespaces(namespaces, g, id, diagObj);\n addClasses(classes, g, id, diagObj);\n addRelations(relations, g);\n addNotes(notes, g, relations.length + 1, classes);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(\n element,\n g,\n [\"aggregation\", \"extension\", \"composition\", \"dependency\", \"lollipop\"],\n \"classDiagram\",\n id\n );\n utils.insertTitle(svg, \"classTitleText\", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);\n if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n};\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = \"aggregation\";\n break;\n case 1:\n marker = \"extension\";\n break;\n case 2:\n marker = \"composition\";\n break;\n case 3:\n marker = \"dependency\";\n break;\n case 4:\n marker = \"lollipop\";\n break;\n default:\n marker = \"none\";\n }\n return marker;\n}\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n","import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, t as getDiagramTitle, l as log, e as common, v as clear$1, I as generateId } from \"./mermaid-ad1dc92f.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 15], $V7 = [1, 16], $V8 = [1, 17], $V9 = [1, 18], $Va = [1, 30], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 25], $Vh = [1, 26], $Vi = [1, 27], $Vj = [1, 28], $Vk = [1, 29], $Vl = [1, 32], $Vm = [1, 33], $Vn = [1, 34], $Vo = [1, 35], $Vp = [1, 31], $Vq = [1, 4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $Vr = [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], $Vs = [4, 5, 15, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setRootDoc($$[$0]);\n return $$[$0];\n case 4:\n this.$ = [];\n break;\n case 5:\n if ($$[$0] != \"nl\") {\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n }\n break;\n case 6:\n case 7:\n this.$ = $$[$0];\n break;\n case 8:\n this.$ = \"nl\";\n break;\n case 11:\n this.$ = $$[$0];\n break;\n case 12:\n const stateStmt = $$[$0 - 1];\n stateStmt.description = yy.trimColon($$[$0]);\n this.$ = stateStmt;\n break;\n case 13:\n this.$ = { stmt: \"relation\", state1: $$[$0 - 2], state2: $$[$0] };\n break;\n case 14:\n const relDescription = yy.trimColon($$[$0]);\n this.$ = { stmt: \"relation\", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };\n break;\n case 18:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: \"\", doc: $$[$0 - 1] };\n break;\n case 19:\n var id = $$[$0];\n var description = $$[$0 - 2].trim();\n if ($$[$0].match(\":\")) {\n var parts = $$[$0].split(\":\");\n id = parts[0];\n description = [description, parts[1]];\n }\n this.$ = { stmt: \"state\", id, type: \"default\", description };\n break;\n case 20:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: $$[$0 - 5], doc: $$[$0 - 1] };\n break;\n case 21:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"fork\" };\n break;\n case 22:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"join\" };\n break;\n case 23:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"choice\" };\n break;\n case 24:\n this.$ = { stmt: \"state\", id: yy.getDividerId(), type: \"divider\" };\n break;\n case 25:\n this.$ = { stmt: \"state\", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };\n break;\n case 28:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 29:\n case 30:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 31:\n case 32:\n this.$ = { stmt: \"classDef\", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };\n break;\n case 33:\n this.$ = { stmt: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 34:\n yy.setDirection(\"TB\");\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 35:\n yy.setDirection(\"BT\");\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 36:\n yy.setDirection(\"RL\");\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 37:\n yy.setDirection(\"LR\");\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n case 40:\n case 41:\n this.$ = { stmt: \"state\", id: $$[$0].trim(), type: \"default\", description: \"\" };\n break;\n case 42:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 43:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 15, 16, 18, 21, 23, 24, 25, 26, 27, 28, 32, 34, 36, 37, 41, 44, 45, 46, 47, 50], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 5]), { 9: 36, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 7]), o($Vq, [2, 8]), o($Vq, [2, 9]), o($Vq, [2, 10]), o($Vq, [2, 11], { 13: [1, 37], 14: [1, 38] }), o($Vq, [2, 15]), { 17: [1, 39] }, o($Vq, [2, 17], { 19: [1, 40] }), { 22: [1, 41] }, o($Vq, [2, 21]), o($Vq, [2, 22]), o($Vq, [2, 23]), o($Vq, [2, 24]), { 29: 42, 30: [1, 43], 52: [1, 44], 53: [1, 45] }, o($Vq, [2, 27]), { 33: [1, 46] }, { 35: [1, 47] }, o($Vq, [2, 30]), { 38: [1, 48], 40: [1, 49] }, { 42: [1, 50] }, o($Vr, [2, 40], { 51: [1, 51] }), o($Vr, [2, 41], { 51: [1, 52] }), o($Vq, [2, 34]), o($Vq, [2, 35]), o($Vq, [2, 36]), o($Vq, [2, 37]), o($Vq, [2, 6]), o($Vq, [2, 12]), { 12: 53, 23: $Va, 50: $Vp }, o($Vq, [2, 16]), o($Vs, $V3, { 7: 54 }), { 23: [1, 55] }, { 23: [1, 56] }, { 22: [1, 57] }, { 23: [2, 44] }, { 23: [2, 45] }, o($Vq, [2, 28]), o($Vq, [2, 29]), { 39: [1, 58] }, { 39: [1, 59] }, { 43: [1, 60] }, { 23: [1, 61] }, { 23: [1, 62] }, o($Vq, [2, 13], { 13: [1, 63] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 64], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 19], { 19: [1, 65] }), { 30: [1, 66] }, { 23: [1, 67] }, o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vr, [2, 42]), o($Vr, [2, 43]), o($Vq, [2, 14]), o($Vq, [2, 18]), o($Vs, $V3, { 7: 68 }), o($Vq, [2, 25]), o($Vq, [2, 26]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 15: $V6, 16: $V7, 18: $V8, 20: [1, 69], 21: $V9, 23: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 31: 24, 32: $Vg, 34: $Vh, 36: $Vi, 37: $Vj, 41: $Vk, 44: $Vl, 45: $Vm, 46: $Vn, 47: $Vo, 50: $Vp }, o($Vq, [2, 20])],\n defaultActions: { 5: [2, 1], 6: [2, 2], 44: [2, 44], 45: [2, 45] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 40;\n case 1:\n return 44;\n case 2:\n return 45;\n case 3:\n return 46;\n case 4:\n return 47;\n case 5:\n break;\n case 6:\n break;\n case 7:\n return 5;\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n break;\n case 12:\n this.pushState(\"SCALE\");\n return 16;\n case 13:\n return 17;\n case 14:\n this.popState();\n break;\n case 15:\n this.begin(\"acc_title\");\n return 32;\n case 16:\n this.popState();\n return \"acc_title_value\";\n case 17:\n this.begin(\"acc_descr\");\n return 34;\n case 18:\n this.popState();\n return \"acc_descr_value\";\n case 19:\n this.begin(\"acc_descr_multiline\");\n break;\n case 20:\n this.popState();\n break;\n case 21:\n return \"acc_descr_multiline_value\";\n case 22:\n this.pushState(\"CLASSDEF\");\n return 37;\n case 23:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n case 24:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 38;\n case 25:\n this.popState();\n return 39;\n case 26:\n this.pushState(\"CLASS\");\n return 41;\n case 27:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 42;\n case 28:\n this.popState();\n return 43;\n case 29:\n this.pushState(\"SCALE\");\n return 16;\n case 30:\n return 17;\n case 31:\n this.popState();\n break;\n case 32:\n this.pushState(\"STATE\");\n break;\n case 33:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 24;\n case 34:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n case 35:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 26;\n case 36:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 24;\n case 37:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n case 38:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 26;\n case 39:\n return 44;\n case 40:\n return 45;\n case 41:\n return 46;\n case 42:\n return 47;\n case 43:\n this.pushState(\"STATE_STRING\");\n break;\n case 44:\n this.pushState(\"STATE_ID\");\n return \"AS\";\n case 45:\n this.popState();\n return \"ID\";\n case 46:\n this.popState();\n break;\n case 47:\n return \"STATE_DESCR\";\n case 48:\n return 18;\n case 49:\n this.popState();\n break;\n case 50:\n this.popState();\n this.pushState(\"struct\");\n return 19;\n case 51:\n break;\n case 52:\n this.popState();\n return 20;\n case 53:\n break;\n case 54:\n this.begin(\"NOTE\");\n return 28;\n case 55:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 52;\n case 56:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 53;\n case 57:\n this.popState();\n this.pushState(\"FLOATING_NOTE\");\n break;\n case 58:\n this.popState();\n this.pushState(\"FLOATING_NOTE_ID\");\n return \"AS\";\n case 59:\n break;\n case 60:\n return \"NOTE_TEXT\";\n case 61:\n this.popState();\n return \"ID\";\n case 62:\n this.popState();\n this.pushState(\"NOTE_TEXT\");\n return 23;\n case 63:\n this.popState();\n yy_.yytext = yy_.yytext.substr(2).trim();\n return 30;\n case 64:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 30;\n case 65:\n return 6;\n case 66:\n return 6;\n case 67:\n return 15;\n case 68:\n return 50;\n case 69:\n return 23;\n case 70:\n yy_.yytext = yy_.yytext.trim();\n return 13;\n case 71:\n return 14;\n case 72:\n return 27;\n case 73:\n return 51;\n case 74:\n return 5;\n case 75:\n return \"INVALID\";\n }\n },\n rules: [/^(?:default\\b)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:[\\s]+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:classDef\\s+)/i, /^(?:DEFAULT\\s+)/i, /^(?:\\w+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:class\\s+)/i, /^(?:(\\w+)+((,\\s*\\w+)*))/i, /^(?:[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:state\\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\\[\\[fork\\]\\])/i, /^(?:.*\\[\\[join\\]\\])/i, /^(?:.*\\[\\[choice\\]\\])/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:[\"])/i, /^(?:\\s*as\\s+)/i, /^(?:[^\\n\\{]*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n\\s\\{]+)/i, /^(?:\\n)/i, /^(?:\\{)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:\\})/i, /^(?:[\\n])/i, /^(?:note\\s+)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:\")/i, /^(?:\\s*as\\s*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n]*)/i, /^(?:\\s*[^:\\n\\s\\-]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:[\\s\\S]*?end note\\b)/i, /^(?:stateDiagram\\s+)/i, /^(?:stateDiagram-v2\\s+)/i, /^(?:hide empty description\\b)/i, /^(?:\\[\\*\\])/i, /^(?:[^:\\n\\s\\-\\{]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"LINE\": { \"rules\": [9, 10], \"inclusive\": false }, \"struct\": { \"rules\": [9, 10, 22, 26, 32, 39, 40, 41, 42, 51, 52, 53, 54, 68, 69, 70, 71, 72], \"inclusive\": false }, \"FLOATING_NOTE_ID\": { \"rules\": [61], \"inclusive\": false }, \"FLOATING_NOTE\": { \"rules\": [58, 59, 60], \"inclusive\": false }, \"NOTE_TEXT\": { \"rules\": [63, 64], \"inclusive\": false }, \"NOTE_ID\": { \"rules\": [62], \"inclusive\": false }, \"NOTE\": { \"rules\": [55, 56, 57], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [28], \"inclusive\": false }, \"CLASS\": { \"rules\": [27], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [25], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [23, 24], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [20, 21], \"inclusive\": false }, \"acc_descr\": { \"rules\": [18], \"inclusive\": false }, \"acc_title\": { \"rules\": [16], \"inclusive\": false }, \"SCALE\": { \"rules\": [13, 14, 30, 31], \"inclusive\": false }, \"ALIAS\": { \"rules\": [], \"inclusive\": false }, \"STATE_ID\": { \"rules\": [45], \"inclusive\": false }, \"STATE_STRING\": { \"rules\": [46, 47], \"inclusive\": false }, \"FORK_STATE\": { \"rules\": [], \"inclusive\": false }, \"STATE\": { \"rules\": [9, 10, 33, 34, 35, 36, 37, 38, 43, 44, 48, 49, 50], \"inclusive\": false }, \"ID\": { \"rules\": [9, 10], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 15, 17, 19, 22, 26, 29, 32, 50, 54, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_DIAGRAM_DIRECTION = \"LR\";\nconst DEFAULT_NESTED_DOC_DIR = \"TB\";\nconst STMT_STATE = \"state\";\nconst STMT_RELATION = \"relation\";\nconst STMT_CLASSDEF = \"classDef\";\nconst STMT_APPLYCLASS = \"applyClass\";\nconst DEFAULT_STATE_TYPE = \"default\";\nconst DIVIDER_TYPE = \"divider\";\nconst START_NODE = \"[*]\";\nconst START_TYPE = \"start\";\nconst END_NODE = START_NODE;\nconst END_TYPE = \"end\";\nconst COLOR_KEYWORD = \"color\";\nconst FILL_KEYWORD = \"fill\";\nconst BG_FILL = \"bgFill\";\nconst STYLECLASS_SEP = \",\";\nfunction newClassesList() {\n return {};\n}\nlet direction = DEFAULT_DIAGRAM_DIRECTION;\nlet rootDoc = [];\nlet classes = newClassesList();\nconst newDoc = () => {\n return {\n relations: [],\n states: {},\n documents: {}\n };\n};\nlet documents = {\n root: newDoc()\n};\nlet currentDocument = documents.root;\nlet startEndCount = 0;\nlet dividerCnt = 0;\nconst lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n};\nconst relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3\n};\nconst clone = (o) => JSON.parse(JSON.stringify(o));\nconst setRootDoc = (o) => {\n log.info(\"Setting root doc\", o);\n rootDoc = o;\n};\nconst getRootDoc = () => rootDoc;\nconst docTranslator = (parent, node, first) => {\n if (node.stmt === STMT_RELATION) {\n docTranslator(parent, node.state1, true);\n docTranslator(parent, node.state2, false);\n } else {\n if (node.stmt === STMT_STATE) {\n if (node.id === \"[*]\") {\n node.id = first ? parent.id + \"_start\" : parent.id + \"_end\";\n node.start = first;\n } else {\n node.id = node.id.trim();\n }\n }\n if (node.doc) {\n const doc = [];\n let currentDoc = [];\n let i;\n for (i = 0; i < node.doc.length; i++) {\n if (node.doc[i].type === DIVIDER_TYPE) {\n const newNode = clone(node.doc[i]);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(node.doc[i]);\n }\n }\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: \"divider\",\n doc: clone(currentDoc)\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n node.doc.forEach((docNode) => docTranslator(node, docNode, true));\n }\n }\n};\nconst getRootDocV2 = () => {\n docTranslator({ id: \"root\" }, { id: \"root\", doc: rootDoc }, true);\n return { id: \"root\", doc: rootDoc };\n};\nconst extract = (_doc) => {\n let doc;\n if (_doc.doc) {\n doc = _doc.doc;\n } else {\n doc = _doc;\n }\n log.info(doc);\n clear(true);\n log.info(\"Extract\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n addState(\n item.id.trim(),\n item.type,\n item.doc,\n item.description,\n item.note,\n item.classes,\n item.styles,\n item.textStyles\n );\n break;\n case STMT_RELATION:\n addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_APPLYCLASS:\n setCssClass(item.id.trim(), item.styleClass);\n break;\n }\n });\n};\nconst addState = function(id, type = DEFAULT_STATE_TYPE, doc = null, descr = null, note = null, classes2 = null, styles2 = null, textStyles = null) {\n const trimmedId = id == null ? void 0 : id.trim();\n if (currentDocument.states[trimmedId] === void 0) {\n log.info(\"Adding state \", trimmedId, descr);\n currentDocument.states[trimmedId] = {\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: []\n };\n } else {\n if (!currentDocument.states[trimmedId].doc) {\n currentDocument.states[trimmedId].doc = doc;\n }\n if (!currentDocument.states[trimmedId].type) {\n currentDocument.states[trimmedId].type = type;\n }\n }\n if (descr) {\n log.info(\"Setting state description\", trimmedId, descr);\n if (typeof descr === \"string\") {\n addDescription(trimmedId, descr.trim());\n }\n if (typeof descr === \"object\") {\n descr.forEach((des) => addDescription(trimmedId, des.trim()));\n }\n }\n if (note) {\n currentDocument.states[trimmedId].note = note;\n currentDocument.states[trimmedId].note.text = common.sanitizeText(\n currentDocument.states[trimmedId].note.text,\n getConfig()\n );\n }\n if (classes2) {\n log.info(\"Setting state classes\", trimmedId, classes2);\n const classesList = typeof classes2 === \"string\" ? [classes2] : classes2;\n classesList.forEach((cssClass) => setCssClass(trimmedId, cssClass.trim()));\n }\n if (styles2) {\n log.info(\"Setting state styles\", trimmedId, styles2);\n const stylesList = typeof styles2 === \"string\" ? [styles2] : styles2;\n stylesList.forEach((style) => setStyle(trimmedId, style.trim()));\n }\n if (textStyles) {\n log.info(\"Setting state styles\", trimmedId, styles2);\n const textStylesList = typeof textStyles === \"string\" ? [textStyles] : textStyles;\n textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));\n }\n};\nconst clear = function(saveCommon) {\n documents = {\n root: newDoc()\n };\n currentDocument = documents.root;\n startEndCount = 0;\n classes = newClassesList();\n if (!saveCommon) {\n clear$1();\n }\n};\nconst getState = function(id) {\n return currentDocument.states[id];\n};\nconst getStates = function() {\n return currentDocument.states;\n};\nconst logDocuments = function() {\n log.info(\"Documents = \", documents);\n};\nconst getRelations = function() {\n return currentDocument.relations;\n};\nfunction startIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === START_NODE) {\n startEndCount++;\n fixedId = `${START_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\nfunction startTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === START_NODE ? START_TYPE : type;\n}\nfunction endIdIfNeeded(id = \"\") {\n let fixedId = id;\n if (id === END_NODE) {\n startEndCount++;\n fixedId = `${END_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\nfunction endTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === END_NODE ? END_TYPE : type;\n}\nfunction addRelationObjs(item1, item2, relationTitle) {\n let id1 = startIdIfNeeded(item1.id.trim());\n let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);\n let id2 = startIdIfNeeded(item2.id.trim());\n let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);\n addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common.sanitizeText(relationTitle, getConfig())\n });\n}\nconst addRelation = function(item1, item2, title) {\n if (typeof item1 === \"object\") {\n addRelationObjs(item1, item2, title);\n } else {\n const id1 = startIdIfNeeded(item1.trim());\n const type1 = startTypeIfNeeded(item1);\n const id2 = endIdIfNeeded(item2.trim());\n const type2 = endTypeIfNeeded(item2);\n addState(id1, type1);\n addState(id2, type2);\n currentDocument.relations.push({\n id1,\n id2,\n title: common.sanitizeText(title, getConfig())\n });\n }\n};\nconst addDescription = function(id, descr) {\n const theState = currentDocument.states[id];\n const _descr = descr.startsWith(\":\") ? descr.replace(\":\", \"\").trim() : descr;\n theState.descriptions.push(common.sanitizeText(_descr, getConfig()));\n};\nconst cleanupLabel = function(label) {\n if (label.substring(0, 1) === \":\") {\n return label.substr(2).trim();\n } else {\n return label.trim();\n }\n};\nconst getDividerId = () => {\n dividerCnt++;\n return \"divider-id-\" + dividerCnt;\n};\nconst addStyleClass = function(id, styleAttributes = \"\") {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n const foundClass = classes[id];\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (attrib.match(COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n};\nconst getClasses = function() {\n return classes;\n};\nconst setCssClass = function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundState = getState(id);\n if (foundState === void 0) {\n const trimmedId = id.trim();\n addState(trimmedId);\n foundState = getState(trimmedId);\n }\n foundState.classes.push(cssClassName);\n });\n};\nconst setStyle = function(itemId, styleText) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.textStyles.push(styleText);\n }\n};\nconst setTextStyle = function(itemId, cssClassName) {\n const item = getState(itemId);\n if (item !== void 0) {\n item.textStyles.push(cssClassName);\n }\n};\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\nconst trimColon = (str) => str && str[0] === \":\" ? str.substr(1).trim() : str.trim();\nconst db = {\n getConfig: () => getConfig().state,\n addState,\n clear,\n getState,\n getStates,\n getRelations,\n getClasses,\n getDirection,\n addRelation,\n getDividerId,\n setDirection,\n cleanupLabel,\n lineType,\n relationType,\n logDocuments,\n getRootDoc,\n setRootDoc,\n getRootDocV2,\n extract,\n trimColon,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n addStyleClass,\n setCssClass,\n addDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst getStyles = (options) => `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`;\nconst styles = getStyles;\nexport {\n DEFAULT_STATE_TYPE as D,\n STMT_RELATION as S,\n DIVIDER_TYPE as a,\n STMT_STATE as b,\n DEFAULT_NESTED_DOC_DIR as c,\n db as d,\n parser$1 as p,\n styles as s\n};\n","import { d as db, p as parser, s as styles } from \"./styles-edf9a4b0.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as getConfig, u as utils, e as common, l as log, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst idCache = {};\nconst set = (key, val) => {\n idCache[key] = val;\n};\nconst get = (k) => idCache[k];\nconst keys = () => Object.keys(idCache);\nconst size = () => keys().length;\nconst idCache$1 = {\n get,\n set,\n keys,\n size\n};\nconst drawStartState = (g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit);\nconst drawDivider = (g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0);\nconst drawSimpleState = (g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n};\nconst drawDescrState = (g, stateDef) => {\n const addTspan = function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n };\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst addTitleAndBox = (g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc)\n ;\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst drawEndState = (g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n};\nconst drawForkJoinState = (g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n};\nconst _drawLongText = (_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"
\");\n text = text.replace(/\\n/g, \"
\");\n const lines = text.split(common.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n};\nconst drawNote = (text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n};\nconst drawState = function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n idCache$1.set(id, stateInfo);\n return stateInfo;\n};\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation) {\n const getRelationType = function(type) {\n switch (type) {\n case db.relationType.AGGREGATION:\n return \"aggregation\";\n case db.relationType.EXTENSION:\n return \"extension\";\n case db.relationType.COMPOSITION:\n return \"composition\";\n case db.relationType.DEPENDENCY:\n return \"dependency\";\n }\n };\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(db.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils.calcLabelPosition(path.points);\n const rows = common.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundsTmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundsTmp.width);\n minX = Math.min(minX, boundsTmp.x);\n log.info(boundsTmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n};\nlet conf;\nconst transformationLog = {};\nconst setConf = function() {\n};\nconst insertMarkers = function(elem) {\n elem.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\");\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n};\nconst getLabelWidth = (text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n};\nconst renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n diagObj.db.extract(doc);\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys2 = Object.keys(states);\n for (const key of keys2) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n }\n } else {\n node = drawState(diagram2, stateDef);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n layout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n","import { D as DEFAULT_STATE_TYPE, a as DIVIDER_TYPE, S as STMT_RELATION, b as STMT_STATE, c as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from \"./styles-edf9a4b0.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select } from \"d3\";\nimport { l as log, c as getConfig, u as utils, i as configureSvgSize, e as common } from \"./mermaid-ad1dc92f.js\";\nimport { r as render } from \"./index-6079d271.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-332bd1c7.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nconst SHAPE_STATE = \"rect\";\nconst SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nconst SHAPE_START = \"start\";\nconst SHAPE_END = \"end\";\nconst SHAPE_DIVIDER = \"divider\";\nconst SHAPE_GROUP = \"roundedWithTitle\";\nconst SHAPE_NOTE = \"note\";\nconst SHAPE_NOTEGROUP = \"noteGroup\";\nconst CSS_DIAGRAM = \"statediagram\";\nconst CSS_STATE = \"state\";\nconst CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nconst CSS_EDGE = \"transition\";\nconst CSS_NOTE = \"note\";\nconst CSS_NOTE_EDGE = \"note-edge\";\nconst CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nconst CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nconst CSS_CLUSTER = \"cluster\";\nconst CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nconst CSS_CLUSTER_ALT = \"cluster-alt\";\nconst CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nconst PARENT = \"parent\";\nconst NOTE = \"note\";\nconst DOMID_STATE = \"state\";\nconst DOMID_TYPE_SPACER = \"----\";\nconst NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nconst PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\nconst G_EDGE_STYLE = \"fill:none\";\nconst G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nconst G_EDGE_LABELPOS = \"c\";\nconst G_EDGE_LABELTYPE = \"text\";\nconst G_EDGE_THICKNESS = \"normal\";\nlet nodeDb = {};\nlet graphItemCount = 0;\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n cnf[key];\n }\n};\nconst getClasses = function(text, diagramObj) {\n diagramObj.db.extract(diagramObj.db.getRootDocV2());\n return diagramObj.db.getClasses();\n};\nfunction getClassesFromDbInfo(dbInfoItem) {\n if (dbInfoItem === void 0 || dbInfoItem === null) {\n return \"\";\n } else {\n if (dbInfoItem.classes) {\n return dbInfoItem.classes.join(\" \");\n } else {\n return \"\";\n }\n }\n}\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\nconst setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {\n const itemId = parsedItem.id;\n const classStr = getClassesFromDbInfo(diagramStates[itemId]);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n }\n if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb[itemId]) {\n nodeDb[itemId] = {\n id: itemId,\n shape,\n description: common.sanitizeText(itemId, getConfig()),\n classes: `${classStr} ${CSS_DIAGRAM_STATE}`\n };\n }\n const newNode = nodeDb[itemId];\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig());\n }\n if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n newNode.shape = SHAPE_STATE;\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for \", itemId, getDir(parsedItem));\n newNode.type = \"group\";\n newNode.dir = getDir(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.classes = newNode.classes + \" \" + CSS_DIAGRAM_CLUSTER + \" \" + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\");\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n labelText: newNode.description,\n // typeof newNode.description === 'object'\n // ? newNode.description[0]\n // : newNode.description,\n classes: newNode.classes,\n style: \"\",\n //styles.style,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n labelText: parsedItem.note.text,\n classes: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n style: \"\",\n // styles.style,\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n labelText: parsedItem.note.text,\n classes: newNode.classes,\n style: \"\",\n // styles.style,\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n padding: 0\n //getConfig().flowchart.padding\n };\n graphItemCount++;\n const parentNodeId = itemId + PARENT_ID;\n g.setNode(parentNodeId, groupData);\n g.setNode(noteData.id, noteData);\n g.setNode(itemId, nodeData);\n g.setParent(itemId, parentNodeId);\n g.setParent(noteData.id, parentNodeId);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n g.setEdge(from, to, {\n arrowhead: \"none\",\n arrowType: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS\n });\n } else {\n g.setNode(itemId, nodeData);\n }\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n g.setParent(itemId, parent.id);\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);\n }\n};\nconst setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case DEFAULT_STATE_TYPE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case STMT_RELATION:\n {\n setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);\n setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);\n const edgeData = {\n id: \"edge\" + graphItemCount,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common.sanitizeText(item.description, getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE\n };\n g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);\n graphItemCount++;\n }\n break;\n }\n });\n};\nconst getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (let i = 0; i < parsedItem.doc.length; i++) {\n const parsedItemDoc = parsedItem.doc[i];\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n};\nconst draw = async function(text, id, _version, diag) {\n log.info(\"Drawing state diagram (v2)\", id);\n nodeDb = {};\n diag.db.getDirection();\n const { securityLevel, state: conf } = getConfig();\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n log.info(diag.db.getRootDocV2());\n diag.db.extract(diag.db.getRootDocV2());\n log.info(diag.db.getRootDocV2());\n const diagramStates = diag.db.getStates();\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: getDir(diag.db.getRootDocV2()),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"barb\"], CSS_DIAGRAM, id);\n const padding = 8;\n utils.insertTitle(svg, \"statediagramTitleText\", conf.titleTopMargin, diag.db.getDiagramTitle());\n const bounds = svg.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n svg.attr(\"class\", CSS_DIAGRAM);\n const svgBounds = svg.node().getBBox();\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n svg.attr(\"viewBox\", vBox);\n const labels = document.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = document.createElementNS(\"http://www.w3.org/2000/svg\", SHAPE_STATE);\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n};\nconst renderer = {\n setConf,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n","import { c as getConfig, q as setDiagramTitle, t as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, v as clear$1, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport { arc, select } from \"d3\";\nimport { d as drawRect$1, f as drawText$1, a as drawBackgroundRect$1, g as getNoteRect } from \"./svgDrawCommon-3ba9043b.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 13:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n case 6:\n return 11;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 17;\n case 15:\n return 18;\n case 16:\n return 19;\n case 17:\n return \":\";\n case 18:\n return 6;\n case 19:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:journey\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst updateActors = function() {\n const tempActors = [];\n tasks.forEach((task) => {\n if (task.people) {\n tempActors.push(...task.people);\n }\n });\n const unique = new Set(tempActors);\n return [...unique].sort();\n};\nconst addTask = function(descr, taskData) {\n const pieces = taskData.substr(1).split(\":\");\n let score = 0;\n let peeps = [];\n if (pieces.length === 1) {\n score = Number(pieces[0]);\n peeps = [];\n } else {\n score = Number(pieces[0]);\n peeps = pieces[1].split(\",\");\n }\n const peopleList = peeps.map((s) => s.trim());\n const rawTask = {\n section: currentSection,\n type: currentSection,\n people: peopleList,\n task: descr,\n score\n };\n rawTasks.push(rawTask);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst getActors = function() {\n return updateActors();\n};\nconst db = {\n getConfig: () => getConfig().journey,\n clear,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n getActors\n};\nconst getStyles = (options) => `.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor ? `fill: ${options.faceColor}` : \"fill: #FFF8DC\"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${options.fillType0 ? `fill: ${options.fillType0}` : \"\"};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0 ? `fill: ${options.fillType1}` : \"\"};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0 ? `fill: ${options.fillType2}` : \"\"};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0 ? `fill: ${options.fillType3}` : \"\"};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0 ? `fill: ${options.fillType4}` : \"\"};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0 ? `fill: ${options.fillType5}` : \"\"};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0 ? `fill: ${options.fillType6}` : \"\"};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0 ? `fill: ${options.fillType7}` : \"\"};\n }\n\n .actor-0 {\n ${options.actor0 ? `fill: ${options.actor0}` : \"\"};\n }\n .actor-1 {\n ${options.actor1 ? `fill: ${options.actor1}` : \"\"};\n }\n .actor-2 {\n ${options.actor2 ? `fill: ${options.actor2}` : \"\"};\n }\n .actor-3 {\n ${options.actor3 ? `fill: ${options.actor3}` : \"\"};\n }\n .actor-4 {\n ${options.actor4 ? `fill: ${options.actor4}` : \"\"};\n }\n .actor-5 {\n ${options.actor5 ? `fill: ${options.actor5}` : \"\"};\n }\n`;\nconst styles = getStyles;\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n return drawText$1(elem, textData);\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf2) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf2.width * section.taskCount + // width of the tasks\n conf2.diagramMarginX * (section.taskCount - 1);\n rect.height = conf2.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf2)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf2,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf2) {\n const center = task.x + conf2.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf2.width;\n rect.height = conf2.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n let xPos = task.x + 14;\n task.people.forEach((person) => {\n const colour = task.actors[person].color;\n const circle = {\n cx: xPos,\n cy: task.y,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n title: person,\n pos: task.actors[person].position\n };\n drawCircle(g, circle);\n xPos += 10;\n });\n _drawTextCandidateFunc(conf2)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf2,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {\n const { taskFontSize, taskFontFamily } = conf2;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n initGraphics\n};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n keys.forEach(function(key) {\n conf[key] = cnf[key];\n });\n};\nconst actors = {};\nfunction drawActorLegend(diagram2) {\n const conf2 = getConfig().journey;\n let yPos = 60;\n Object.keys(actors).forEach((person) => {\n const colour = actors[person].color;\n const circleData = {\n cx: 20,\n cy: yPos,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n pos: actors[person].position\n };\n svgDraw.drawCircle(diagram2, circleData);\n const labelData = {\n x: 40,\n y: yPos + 7,\n fill: \"#666\",\n text: person,\n textMargin: conf2.boxTextMargin | 5\n };\n svgDraw.drawText(diagram2, labelData);\n yPos += 20;\n });\n}\nconst conf = getConfig().journey;\nconst LEFT_MARGIN = conf.leftMargin;\nconst draw = function(text, id, version, diagObj) {\n const conf2 = getConfig().journey;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n bounds.init();\n const diagram2 = root.select(\"#\" + id);\n svgDraw.initGraphics(diagram2);\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getDiagramTitle();\n const actorNames = diagObj.db.getActors();\n for (const member in actors) {\n delete actors[member];\n }\n let actorPos = 0;\n actorNames.forEach((actorName) => {\n actors[actorName] = {\n color: conf2.actorColours[actorPos % conf2.actorColours.length],\n position: actorPos\n };\n actorPos++;\n });\n drawActorLegend(diagram2);\n bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);\n drawTasks(diagram2, tasks2, 0);\n const box = bounds.getBounds();\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 25);\n }\n const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;\n const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;\n configureSvgSize(diagram2, height, width, conf2.useMaxWidth);\n diagram2.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", conf2.height * 4).attr(\"x2\", width - LEFT_MARGIN - 4).attr(\"y2\", conf2.height * 4).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n const extraVertForTitle = title ? 70 : 0;\n diagram2.attr(\"viewBox\", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);\n diagram2.attr(\"preserveAspectRatio\", \"xMinYMin meet\");\n diagram2.attr(\"height\", height + extraVertForTitle + 25);\n};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n init: function() {\n this.sequenceItems = [];\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const conf2 = getConfig().journey;\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = Math.min(startx, stopx);\n const _stopx = Math.max(startx, stopx);\n const _starty = Math.min(starty, stopy);\n const _stopy = Math.max(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = this.verticalPos;\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return this.data;\n }\n};\nconst fills = conf.sectionFills;\nconst textColours = conf.sectionColours;\nconst drawTasks = function(diagram2, tasks2, verticalPos) {\n const conf2 = getConfig().journey;\n let lastSection = \"\";\n const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;\n const taskPos = verticalPos + sectionVHeight;\n let sectionNumber = 0;\n let fill = \"#CCC\";\n let colour = \"black\";\n let num = 0;\n for (const [i, task] of tasks2.entries()) {\n if (lastSection !== task.section) {\n fill = fills[sectionNumber % fills.length];\n num = sectionNumber % fills.length;\n colour = textColours[sectionNumber % textColours.length];\n let taskInSectionCount = 0;\n const currentSection2 = task.section;\n for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {\n if (tasks2[taskIndex].section == currentSection2) {\n taskInSectionCount = taskInSectionCount + 1;\n } else {\n break;\n }\n }\n const section = {\n x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,\n y: 50,\n text: task.section,\n fill,\n num,\n colour,\n taskCount: taskInSectionCount\n };\n svgDraw.drawSection(diagram2, section, conf2);\n lastSection = task.section;\n sectionNumber++;\n }\n const taskActors = task.people.reduce((acc, actorName) => {\n if (actors[actorName]) {\n acc[actorName] = actors[actorName];\n }\n return acc;\n }, {});\n task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;\n task.y = taskPos;\n task.width = conf2.diagramMarginX;\n task.height = conf2.diagramMarginY;\n task.colour = colour;\n task.fill = fill;\n task.num = num;\n task.actors = taskActors;\n svgDraw.drawTask(diagram2, task, conf2);\n bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);\n }\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: (cnf) => {\n renderer.setConf(cnf.journey);\n db.clear();\n }\n};\nexport {\n diagram\n};\n","import { d as db, p as parser } from \"./flowDb-7c981674.js\";\nimport { select, curveLinear, line } from \"d3\";\nimport { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel, k as getLineFunctionsWithOffset, m as addEdgeMarkers } from \"./edges-332bd1c7.js\";\nimport { l as log, F as getConfig, o as setupGraphViewbox, k as getStylesFromArray, n as interpolateToCurve, e as common } from \"./mermaid-ad1dc92f.js\";\nimport ELK from \"elkjs/lib/elk.bundled.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst findCommonAncestor = (id1, id2, treeData) => {\n const { parentById } = treeData;\n const visited = /* @__PURE__ */ new Set();\n let currentId = id1;\n while (currentId) {\n visited.add(currentId);\n if (currentId === id2) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n currentId = id2;\n while (currentId) {\n if (visited.has(currentId)) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n return \"root\";\n};\nconst elk = new ELK();\nlet portPos = {};\nconst conf = {};\nlet nodeDb = {};\nconst addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const nodes = svg.insert(\"g\").attr(\"class\", \"nodes\");\n const keys = Object.keys(vert);\n await Promise.all(\n keys.map(async function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles2 = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n const labelData = { width: 0, height: 0 };\n const ports = [\n {\n id: vertex.id + \"-west\",\n layoutOptions: {\n \"port.side\": \"WEST\"\n }\n },\n {\n id: vertex.id + \"-east\",\n layoutOptions: {\n \"port.side\": \"EAST\"\n }\n },\n {\n id: vertex.id + \"-south\",\n layoutOptions: {\n \"port.side\": \"SOUTH\"\n }\n },\n {\n id: vertex.id + \"-north\",\n layoutOptions: {\n \"port.side\": \"NORTH\"\n }\n }\n ];\n let radius = 0;\n let _shape = \"\";\n let layoutOptions = {};\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n layoutOptions = {\n portConstraints: \"FIXED_SIDE\"\n };\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const node = {\n labelStyle: styles2.labelStyle,\n shape: _shape,\n labelText: vertexText,\n labelType: vertex.labelType,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles2.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n };\n let boundingBox;\n let nodeEl;\n if (node.type !== \"group\") {\n nodeEl = await insertNode(nodes, node, vertex.dir);\n boundingBox = nodeEl.node().getBBox();\n } else {\n doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true);\n labelData.width = bbox.width;\n labelData.wrappingWidth = getConfig().flowchart.wrappingWidth;\n labelData.height = bbox.height;\n labelData.labelNode = shapeSvg.node();\n node.labelData = labelData;\n }\n const data = {\n id: vertex.id,\n ports: vertex.type === \"diamond\" ? ports : [],\n // labelStyle: styles.labelStyle,\n // shape: _shape,\n layoutOptions,\n labelText: vertexText,\n labelData,\n // labels: [{ text: vertexText }],\n // rx: radius,\n // ry: radius,\n // class: classStr,\n // style: styles.style,\n // link: vertex.link,\n // linkTarget: vertex.linkTarget,\n // tooltip: diagObj.db.getTooltip(vertex.id) || '',\n domId: diagObj.db.lookUpDomId(vertex.id),\n // haveCallback: vertex.haveCallback,\n width: boundingBox == null ? void 0 : boundingBox.width,\n height: boundingBox == null ? void 0 : boundingBox.height,\n // dir: vertex.dir,\n type: vertex.type,\n // props: vertex.props,\n // padding: getConfig().flowchart.padding,\n // boundingBox,\n el: nodeEl,\n parent: parentLookupDb.parentById[vertex.id]\n };\n nodeDb[node.id] = data;\n })\n );\n return graph;\n};\nconst getNextPosition = (position, edgeDirection, graphDirection) => {\n const portPos2 = {\n TB: {\n in: {\n north: \"north\"\n },\n out: {\n south: \"west\",\n west: \"east\",\n east: \"south\"\n }\n },\n LR: {\n in: {\n west: \"west\"\n },\n out: {\n east: \"south\",\n south: \"north\",\n north: \"east\"\n }\n },\n RL: {\n in: {\n east: \"east\"\n },\n out: {\n west: \"north\",\n north: \"south\",\n south: \"west\"\n }\n },\n BT: {\n in: {\n south: \"south\"\n },\n out: {\n north: \"east\",\n east: \"west\",\n west: \"north\"\n }\n }\n };\n portPos2.TD = portPos2.TB;\n return portPos2[graphDirection][edgeDirection][position];\n};\nconst getNextPort = (node, edgeDirection, graphDirection) => {\n log.info(\"getNextPort\", { node, edgeDirection, graphDirection });\n if (!portPos[node]) {\n switch (graphDirection) {\n case \"TB\":\n case \"TD\":\n portPos[node] = {\n inPosition: \"north\",\n outPosition: \"south\"\n };\n break;\n case \"BT\":\n portPos[node] = {\n inPosition: \"south\",\n outPosition: \"north\"\n };\n break;\n case \"RL\":\n portPos[node] = {\n inPosition: \"east\",\n outPosition: \"west\"\n };\n break;\n case \"LR\":\n portPos[node] = {\n inPosition: \"west\",\n outPosition: \"east\"\n };\n break;\n }\n }\n const result = edgeDirection === \"in\" ? portPos[node].inPosition : portPos[node].outPosition;\n if (edgeDirection === \"in\") {\n portPos[node].inPosition = getNextPosition(\n portPos[node].inPosition,\n edgeDirection,\n graphDirection\n );\n } else {\n portPos[node].outPosition = getNextPosition(\n portPos[node].outPosition,\n edgeDirection,\n graphDirection\n );\n }\n return result;\n};\nconst getEdgeStartEndPoint = (edge, dir) => {\n let source = edge.start;\n let target = edge.end;\n const sourceId = source;\n const targetId = target;\n const startNode = nodeDb[source];\n const endNode = nodeDb[target];\n if (!startNode || !endNode) {\n return { source, target };\n }\n if (startNode.type === \"diamond\") {\n source = `${source}-${getNextPort(source, \"out\", dir)}`;\n }\n if (endNode.type === \"diamond\") {\n target = `${target}-${getNextPort(target, \"in\", dir)}`;\n }\n return { source, target, sourceId, targetId };\n};\nconst addEdges = function(edges, diagObj, graph, svg) {\n log.info(\"abc78 edges = \", edges);\n const labelsEl = svg.insert(\"g\").attr(\"class\", \"edgeLabels\");\n let linkIdCnt = {};\n let dir = diagObj.db.getDirection();\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n style = styles2.style;\n labelStyle = styles2.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n const labelEl = insertEdgeLabel(labelsEl, edgeData);\n const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);\n log.debug(\"abc78 source and target\", source, target);\n graph.edges.push({\n id: \"e\" + edge.start + edge.end,\n sources: [source],\n targets: [target],\n sourceId,\n targetId,\n labelEl,\n labels: [\n {\n width: edgeData.width,\n height: edgeData.height,\n orgWidth: edgeData.width,\n orgHeight: edgeData.height,\n text: edgeData.label,\n layoutOptions: {\n \"edgeLabels.inline\": \"true\",\n \"edgeLabels.placement\": \"CENTER\"\n }\n }\n ],\n edgeData\n });\n });\n return graph;\n};\nconst addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute, id) {\n let url = \"\";\n if (arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n addEdgeMarkers(svgPath, edgeData, url, id, diagramType);\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n return diagObj.db.getClasses();\n};\nconst addSubGraphs = function(db2) {\n const parentLookupDb = { parentById: {}, childrenById: {} };\n const subgraphs = db2.getSubGraphs();\n log.info(\"Subgraphs - \", subgraphs);\n subgraphs.forEach(function(subgraph) {\n subgraph.nodes.forEach(function(node) {\n parentLookupDb.parentById[node] = subgraph.id;\n if (parentLookupDb.childrenById[subgraph.id] === void 0) {\n parentLookupDb.childrenById[subgraph.id] = [];\n }\n parentLookupDb.childrenById[subgraph.id].push(node);\n });\n });\n subgraphs.forEach(function(subgraph) {\n ({ id: subgraph.id });\n if (parentLookupDb.parentById[subgraph.id] !== void 0) {\n parentLookupDb.parentById[subgraph.id];\n }\n });\n return parentLookupDb;\n};\nconst calcOffset = function(src, dest, parentLookupDb) {\n const ancestor = findCommonAncestor(src, dest, parentLookupDb);\n if (ancestor === void 0 || ancestor === \"root\") {\n return { x: 0, y: 0 };\n }\n const ancestorOffset = nodeDb[ancestor].offset;\n return { x: ancestorOffset.posX, y: ancestorOffset.posY };\n};\nconst insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb, id) {\n const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);\n const src = edge.sections[0].startPoint;\n const dest = edge.sections[0].endPoint;\n const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];\n const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);\n const points = [\n [src.x + offset.x, src.y + offset.y],\n ...segPoints,\n [dest.x + offset.x, dest.y + offset.y]\n ];\n const { x, y } = getLineFunctionsWithOffset(edge.edgeData);\n const curve = line().x(x).y(y).curve(curveLinear);\n const edgePath = edgesEl.insert(\"path\").attr(\"d\", curve(points)).attr(\"class\", \"path \" + edgeData.classes).attr(\"fill\", \"none\");\n const edgeG = edgesEl.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));\n const box = edgeWithLabel.node().firstChild.getBoundingClientRect();\n edgeWithLabel.attr(\"width\", box.width);\n edgeWithLabel.attr(\"height\", box.height);\n edgeG.attr(\n \"transform\",\n `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`\n );\n addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute, id);\n};\nconst insertChildren = (nodeArray, parentLookupDb) => {\n nodeArray.forEach((node) => {\n if (!node.children) {\n node.children = [];\n }\n const childIds = parentLookupDb.childrenById[node.id];\n if (childIds) {\n childIds.forEach((childId) => {\n node.children.push(nodeDb[childId]);\n });\n }\n insertChildren(node.children, parentLookupDb);\n });\n};\nconst draw = async function(text, id, _version, diagObj) {\n var _a;\n diagObj.db.clear();\n nodeDb = {};\n portPos = {};\n diagObj.db.setGen(\"gen-2\");\n diagObj.parser.parse(text);\n const renderEl = select(\"body\").append(\"div\").attr(\"style\", \"height:400px\").attr(\"id\", \"cy\");\n let graph = {\n id: \"root\",\n layoutOptions: {\n \"elk.hierarchyHandling\": \"INCLUDE_CHILDREN\",\n \"org.eclipse.elk.padding\": \"[top=100, left=100, bottom=110, right=110]\",\n \"elk.layered.spacing.edgeNodeBetweenLayers\": \"30\",\n // 'elk.layered.mergeEdges': 'true',\n \"elk.direction\": \"DOWN\"\n // 'elk.ports.sameLayerEdges': true,\n // 'nodePlacement.strategy': 'SIMPLE',\n },\n children: [],\n edges: []\n };\n log.info(\"Drawing flowchart using v3 renderer\", elk);\n let dir = diagObj.db.getDirection();\n switch (dir) {\n case \"BT\":\n graph.layoutOptions[\"elk.direction\"] = \"UP\";\n break;\n case \"TB\":\n graph.layoutOptions[\"elk.direction\"] = \"DOWN\";\n break;\n case \"LR\":\n graph.layoutOptions[\"elk.direction\"] = \"RIGHT\";\n break;\n case \"RL\":\n graph.layoutOptions[\"elk.direction\"] = \"LEFT\";\n break;\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const svg = root.select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n insertMarkers(svg, markers, diagObj.type, id);\n const vert = diagObj.db.getVertices();\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const subGraphsEl = svg.insert(\"g\").attr(\"class\", \"subgraphs\");\n const parentLookupDb = addSubGraphs(diagObj.db);\n graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);\n const edgesEl = svg.insert(\"g\").attr(\"class\", \"edges edgePath\");\n const edges = diagObj.db.getEdges();\n graph = addEdges(edges, diagObj, graph, svg);\n const nodes = Object.keys(nodeDb);\n nodes.forEach((nodeId) => {\n const node = nodeDb[nodeId];\n if (!node.parent) {\n graph.children.push(node);\n }\n if (parentLookupDb.childrenById[nodeId] !== void 0) {\n node.labels = [\n {\n text: node.labelText,\n layoutOptions: {\n \"nodeLabels.placement\": \"[H_CENTER, V_TOP, INSIDE]\"\n },\n width: node.labelData.width,\n height: node.labelData.height\n // width: 100,\n // height: 100,\n }\n ];\n delete node.x;\n delete node.y;\n delete node.width;\n delete node.height;\n }\n });\n insertChildren(graph.children, parentLookupDb);\n log.info(\"after layout\", JSON.stringify(graph, null, 2));\n const g = await elk.layout(graph);\n drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);\n log.info(\"after layout\", g);\n (_a = g.edges) == null ? void 0 : _a.map((edge) => {\n insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb, id);\n });\n setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth);\n renderEl.remove();\n};\nconst drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => {\n nodeArray.forEach(function(node) {\n if (node) {\n nodeDb[node.id].offset = {\n posX: node.x + relX,\n posY: node.y + relY,\n x: relX,\n y: relY,\n depth,\n width: node.width,\n height: node.height\n };\n if (node.type === \"group\") {\n const subgraphEl = subgraphsEl.insert(\"g\").attr(\"class\", \"subgraph\");\n subgraphEl.insert(\"rect\").attr(\"class\", \"subgraph subgraph-lvl-\" + depth % 5 + \" node\").attr(\"x\", node.x + relX).attr(\"y\", node.y + relY).attr(\"width\", node.width).attr(\"height\", node.height);\n const label = subgraphEl.insert(\"g\").attr(\"class\", \"label\");\n const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0;\n label.attr(\n \"transform\",\n `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})`\n );\n label.node().appendChild(node.labelData.labelNode);\n log.info(\"Id (UGH)= \", node.type, node.labels);\n } else {\n log.info(\"Id (UGH)= \", node.id);\n node.el.attr(\n \"transform\",\n `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`\n );\n }\n }\n });\n nodeArray.forEach(function(node) {\n if (node && node.type === \"group\") {\n drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1);\n }\n });\n};\nconst renderer = {\n getClasses,\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < 5; i++) {\n sections += `\n .subgraph-lvl-${i} {\n fill: ${options[`surface${i}`]};\n stroke: ${options[`surfacePeer${i}`]};\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span {\n color: ${options.titleColor};\n }\n\n .label text,span {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.85;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n\n .flowchart-label text {\n text-anchor: middle;\n }\n\n ${genSections(options)}\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser,\n styles\n};\nexport {\n diagram\n};\n","import { L as commonDb, v as clear$1, c as getConfig, l as log, o as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport { select, arc } from \"d3\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 15:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 16:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n case 6:\n return 11;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 17;\n case 15:\n return 21;\n case 16:\n return 20;\n case 17:\n return 6;\n case 18:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:timeline\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?::\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nlet currentTaskId = 0;\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst getCommonDb = () => commonDb;\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst addTask = function(period, length, event) {\n const rawTask = {\n id: currentTaskId++,\n section: currentSection,\n type: currentSection,\n task: period,\n score: length ? length : 0,\n //if event is defined, then add it the events array\n events: event ? [event] : []\n };\n rawTasks.push(rawTask);\n};\nconst addEvent = function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst timelineDb = {\n clear,\n getCommonDb,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addEvent,\n addSection,\n addTask,\n addTaskOrg,\n clear,\n default: timelineDb,\n getCommonDb,\n getSections,\n getTasks\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst drawRect = function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.class !== void 0) {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n const nText = textData.text.replace(//gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf) {\n const center = task.x + conf.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n task.x + 14;\n _drawTextCandidateFunc(conf)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n class: \"rect\"\n });\n rectElem.lower();\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n \"text-anchor\": \"start\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n const { taskFontSize, taskFontFamily } = conf;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf) {\n return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nfunction wrap(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/(\\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n for (let j = 0; j < words.length; j++) {\n word = words[words.length - 1 - j];\n line.push(word);\n tspan.text(line.join(\" \").trim());\n if (tspan.node().getComputedTextLength() > width || word === \"
\") {\n line.pop();\n tspan.text(line.join(\" \").trim());\n if (word === \"
\") {\n line = [\"\"];\n } else {\n line = [word];\n }\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n }\n }\n });\n}\nconst drawNode = function(elem, node, fullSection, conf) {\n const section = fullSection % MAX_SECTIONS - 1;\n const nodeElem = elem.append(\"g\");\n node.section = section;\n nodeElem.attr(\n \"class\",\n (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n );\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.height = Math.max(node.height, node.maxHeight);\n node.width = node.width + 2 * node.padding;\n textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n defaultBkg(bkgElem, node, section);\n return node;\n};\nconst getVirtualNodeHeight = function(elem, node, conf) {\n const textElem = elem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n};\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n getTextObj,\n getNoteRect,\n initGraphics,\n drawNode,\n getVirtualNodeHeight\n};\nconst draw = function(text, id, version, diagObj) {\n var _a, _b;\n const conf = getConfig();\n const LEFT_MARGIN = conf.leftMargin ?? 50;\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw.initGraphics(svg);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n let depthY = 0;\n let sectionBeginY = 0;\n let masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n sectionBeginY = 50;\n let sectionNumber = 0;\n let hasSections = true;\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n });\n let maxEventCount = 0;\n let maxEventLineLength = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n maxEventCount = Math.max(maxEventCount, task.events.length);\n let maxEventLineLengthTemp = 0;\n for (let j = 0; j < task.events.length; j++) {\n const event = task.events[j];\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);\n }\n maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n if (sections2 && sections2.length > 0) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 200 * Math.max(tasksForSection.length, 1) - 50,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false\n );\n }\n masterX += 200 * Math.max(tasksForSection.length, 1);\n masterY = sectionBeginY;\n sectionNumber++;\n });\n } else {\n hasSections = false;\n drawTasks(\n svg,\n tasks2,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true\n );\n }\n const box = svg.node().getBBox();\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n }\n depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n setupGraphViewbox(\n void 0,\n svg,\n ((_a = conf.timeline) == null ? void 0 : _a.padding) ?? 50,\n ((_b = conf.timeline) == null ? void 0 : _b.useMaxWidth) ?? false\n );\n};\nconst drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {\n var _a;\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events) {\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n let lineLength = maxTaskHeight;\n masterY += 100;\n lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\n \"y2\",\n masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120\n ).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n};\nconst drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) {\n let maxEventHeight = 0;\n const eventBeginY = masterY;\n masterY = masterY + 100;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf);\n const eventHeight = node.height;\n maxEventHeight = maxEventHeight + eventHeight;\n eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n masterY = masterY + 10 + eventHeight;\n }\n masterY = eventBeginY;\n return maxEventHeight;\n};\nconst renderer = {\n setConf: () => {\n },\n draw\n};\nconst genSections = (options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${options[\"cScaleLabel\" + i]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections2;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n","import { l as log, c as getConfig, B as defaultConfig, d as sanitizeText, D as parseFontSize, A as selectSvgElement, o as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport cytoscape from \"cytoscape\";\nimport coseBilkent from \"cytoscape-cose-bilkent\";\nimport { select } from \"d3\";\nimport { a as createText } from \"./createText-d213de94.js\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mindMap\": 4, \"spaceLines\": 5, \"SPACELINE\": 6, \"NL\": 7, \"MINDMAP\": 8, \"document\": 9, \"stop\": 10, \"EOF\": 11, \"statement\": 12, \"SPACELIST\": 13, \"node\": 14, \"ICON\": 15, \"CLASS\": 16, \"nodeWithId\": 17, \"nodeWithoutId\": 18, \"NODE_DSTART\": 19, \"NODE_DESCR\": 20, \"NODE_DEND\": 21, \"NODE_ID\": 22, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"SPACELINE\", 7: \"NL\", 8: \"MINDMAP\", 11: \"EOF\", 13: \"SPACELIST\", 15: \"ICON\", 16: \"CLASS\", 19: \"NODE_DSTART\", 20: \"NODE_DESCR\", 21: \"NODE_DEND\", 22: \"NODE_ID\" },\n productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 16:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 17:\n case 21:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 18:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 19:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 20:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 25:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 26:\n this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n case 1:\n return 8;\n case 2:\n this.begin(\"CLASS\");\n break;\n case 3:\n this.popState();\n return 16;\n case 4:\n this.popState();\n break;\n case 5:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 6:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n case 7:\n return 7;\n case 8:\n return 15;\n case 9:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 10:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 19;\n case 11:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 19;\n case 12:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 19;\n case 13:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 19;\n case 14:\n this.begin(\"NODE\");\n return 19;\n case 15:\n this.begin(\"NODE\");\n return 19;\n case 16:\n this.begin(\"NODE\");\n return 19;\n case 17:\n this.begin(\"NODE\");\n return 19;\n case 18:\n return 13;\n case 19:\n return 22;\n case 20:\n return 11;\n case 21:\n this.begin(\"NSTR2\");\n break;\n case 22:\n return \"NODE_DESCR\";\n case 23:\n this.popState();\n break;\n case 24:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 25:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 26:\n this.popState();\n break;\n case 27:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n case 28:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n case 29:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n case 30:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 31:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 32:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 35:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n case 36:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n }\n },\n rules: [/^(?:\\s*%%.*)/i, /^(?:mindmap\\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\\n)/i, /^(?:::icon\\()/i, /^(?:[\\s]+[\\n])/i, /^(?:[\\n]+)/i, /^(?:[^\\)]+)/i, /^(?:\\))/i, /^(?:-\\))/i, /^(?:\\(-)/i, /^(?:\\)\\))/i, /^(?:\\))/i, /^(?:\\(\\()/i, /^(?:\\{\\{)/i, /^(?:\\()/i, /^(?:\\[)/i, /^(?:[\\s]+)/i, /^(?:[^\\(\\[\\n\\)\\{\\}]+)/i, /^(?:$)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[^\"]+)/i, /^(?:[\"])/i, /^(?:[\\)]\\))/i, /^(?:[\\)])/i, /^(?:[\\]])/i, /^(?:\\}\\})/i, /^(?:\\(-)/i, /^(?:-\\))/i, /^(?:\\(\\()/i, /^(?:\\()/i, /^(?:[^\\)\\]\\(\\}]+)/i, /^(?:.+(?!\\(\\())/i],\n conditions: { \"CLASS\": { \"rules\": [3, 4], \"inclusive\": false }, \"ICON\": { \"rules\": [8, 9], \"inclusive\": false }, \"NSTR2\": { \"rules\": [22, 23], \"inclusive\": false }, \"NSTR\": { \"rules\": [25, 26], \"inclusive\": false }, \"NODE\": { \"rules\": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet nodes = [];\nlet cnt = 0;\nlet elements = {};\nconst clear = () => {\n nodes = [];\n cnt = 0;\n elements = {};\n};\nconst getParent = function(level) {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level < level) {\n return nodes[i];\n }\n }\n return null;\n};\nconst getMindmap = () => {\n return nodes.length > 0 ? nodes[0] : null;\n};\nconst addNode = (level, id, descr, type) => {\n var _a, _b;\n log.info(\"addNode\", level, id, descr, type);\n const conf = getConfig();\n let padding = ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding;\n switch (type) {\n case nodeType.ROUNDED_RECT:\n case nodeType.RECT:\n case nodeType.HEXAGON:\n padding *= 2;\n }\n const node = {\n id: cnt++,\n nodeId: sanitizeText(id, conf),\n level,\n descr: sanitizeText(descr, conf),\n type,\n children: [],\n width: ((_b = conf.mindmap) == null ? void 0 : _b.maxNodeWidth) ?? defaultConfig.mindmap.maxNodeWidth,\n padding\n };\n const parent = getParent(level);\n if (parent) {\n parent.children.push(node);\n nodes.push(node);\n } else {\n if (nodes.length === 0) {\n nodes.push(node);\n } else {\n throw new Error(\n 'There can be only one root. No parent could be found for (\"' + node.descr + '\")'\n );\n }\n }\n};\nconst nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nconst getType = (startStr, endStr) => {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case \"((\":\n return nodeType.CIRCLE;\n case \")\":\n return nodeType.CLOUD;\n case \"))\":\n return nodeType.BANG;\n case \"{{\":\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n};\nconst setElementForId = (id, element) => {\n elements[id] = element;\n};\nconst decorateNode = (decoration) => {\n if (!decoration) {\n return;\n }\n const config = getConfig();\n const node = nodes[nodes.length - 1];\n if (decoration.icon) {\n node.icon = sanitizeText(decoration.icon, config);\n }\n if (decoration.class) {\n node.class = sanitizeText(decoration.class, config);\n }\n};\nconst type2Str = (type) => {\n switch (type) {\n case nodeType.DEFAULT:\n return \"no-border\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case nodeType.CIRCLE:\n return \"circle\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexgon\";\n default:\n return \"no-border\";\n }\n};\nconst getLogger = () => log;\nconst getElementById = (id) => elements[id];\nconst db = {\n clear,\n addNode,\n getMindmap,\n nodeType,\n getType,\n setElementForId,\n decorateNode,\n type2Str,\n getLogger,\n getElementById\n};\nconst db$1 = db;\nconst MAX_SECTIONS = 12;\nconst defaultBkg = function(db2, elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst rectBkg = function(db2, elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"height\", node.height).attr(\"width\", node.width);\n};\nconst cloudBkg = function(db2, elem, node) {\n const w = node.width;\n const h = node.height;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n\n H0 V0 Z`\n );\n};\nconst bangBkg = function(db2, elem, node) {\n const w = node.width;\n const h = node.height;\n const r = 0.15 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}\n\n a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}\n a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}\n a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}\n\n H0 V0 Z`\n );\n};\nconst circleBkg = function(db2, elem, node) {\n elem.append(\"circle\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"r\", node.width / 2);\n};\nfunction insertPolygonShape(parent, w, h, points, node) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + (node.width - w) / 2 + \", \" + h + \")\");\n}\nconst hexagonBkg = function(_db, elem, node) {\n const h = node.height;\n const f = 4;\n const m = h / f;\n const w = node.width - node.padding + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n insertPolygonShape(elem, w, h, points, node);\n};\nconst roundedRectBkg = function(db2, elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + db2.type2Str(node.type)).attr(\"height\", node.height).attr(\"rx\", node.padding).attr(\"ry\", node.padding).attr(\"width\", node.width);\n};\nconst drawNode = function(db2, elem, node, fullSection, conf) {\n const htmlLabels = conf.htmlLabels;\n const section = fullSection % (MAX_SECTIONS - 1);\n const nodeElem = elem.append(\"g\");\n node.section = section;\n let sectionClass = \"section-\" + section;\n if (section < 0) {\n sectionClass += \" section-root\";\n }\n nodeElem.attr(\"class\", (node.class ? node.class + \" \" : \"\") + \"mindmap-node \" + sectionClass);\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const description = node.descr.replace(/()/g, \"\\n\");\n createText(textElem, description, {\n useHtmlLabels: htmlLabels,\n width: node.width,\n classes: \"mindmap-node-label\"\n });\n if (!htmlLabels) {\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n }\n const bbox = textElem.node().getBBox();\n const [fontSize] = parseFontSize(conf.fontSize);\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.width = bbox.width + 2 * node.padding;\n if (node.icon) {\n if (node.type === db2.nodeType.CIRCLE) {\n node.height += 50;\n node.width += 50;\n const icon = nodeElem.append(\"foreignObject\").attr(\"height\", \"50px\").attr(\"width\", node.width).attr(\"style\", \"text-align: center;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + node.width / 2 + \", \" + (node.height / 2 - 1.5 * node.padding) + \")\"\n );\n } else {\n node.width += 50;\n const orgHeight = node.height;\n node.height = Math.max(orgHeight, 60);\n const heightDiff = Math.abs(node.height - orgHeight);\n const icon = nodeElem.append(\"foreignObject\").attr(\"width\", \"60px\").attr(\"height\", node.height).attr(\"style\", \"text-align: center;margin-top:\" + heightDiff / 2 + \"px;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + (25 + node.width / 2) + \", \" + (heightDiff / 2 + node.padding / 2) + \")\"\n );\n }\n } else {\n if (!htmlLabels) {\n const dx = node.width / 2;\n const dy = node.padding / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n } else {\n const dx = (node.width - bbox.width) / 2;\n const dy = (node.height - bbox.height) / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n }\n }\n switch (node.type) {\n case db2.nodeType.DEFAULT:\n defaultBkg(db2, bkgElem, node, section);\n break;\n case db2.nodeType.ROUNDED_RECT:\n roundedRectBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.RECT:\n rectBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.CIRCLE:\n bkgElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + +node.height / 2 + \")\");\n circleBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.CLOUD:\n cloudBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.BANG:\n bangBkg(db2, bkgElem, node);\n break;\n case db2.nodeType.HEXAGON:\n hexagonBkg(db2, bkgElem, node);\n break;\n }\n db2.setElementForId(node.id, nodeElem);\n return node.height;\n};\nconst positionNode = function(db2, node) {\n const nodeElem = db2.getElementById(node.id);\n const x = node.x || 0;\n const y = node.y || 0;\n nodeElem.attr(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n};\ncytoscape.use(coseBilkent);\nfunction drawNodes(db2, svg, mindmap, section, conf) {\n drawNode(db2, svg, mindmap, section, conf);\n if (mindmap.children) {\n mindmap.children.forEach((child, index) => {\n drawNodes(db2, svg, child, section < 0 ? index : section, conf);\n });\n }\n}\nfunction drawEdges(edgesEl, cy) {\n cy.edges().map((edge, id) => {\n const data = edge.data();\n if (edge[0]._private.bodyBounds) {\n const bounds = edge[0]._private.rscratch;\n log.trace(\"Edge: \", id, data);\n edgesEl.insert(\"path\").attr(\n \"d\",\n `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `\n ).attr(\"class\", \"edge section-edge-\" + data.section + \" edge-depth-\" + data.depth);\n }\n });\n}\nfunction addNodes(mindmap, cy, conf, level) {\n cy.add({\n group: \"nodes\",\n data: {\n id: mindmap.id.toString(),\n labelText: mindmap.descr,\n height: mindmap.height,\n width: mindmap.width,\n level,\n nodeId: mindmap.id,\n padding: mindmap.padding,\n type: mindmap.type\n },\n position: {\n x: mindmap.x,\n y: mindmap.y\n }\n });\n if (mindmap.children) {\n mindmap.children.forEach((child) => {\n addNodes(child, cy, conf, level + 1);\n cy.add({\n group: \"edges\",\n data: {\n id: `${mindmap.id}_${child.id}`,\n source: mindmap.id,\n target: child.id,\n depth: level,\n section: child.section\n }\n });\n });\n }\n}\nfunction layoutMindmap(node, conf) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n // container to render in\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"bezier\"\n }\n }\n ]\n });\n renderEl.remove();\n addNodes(node, cy, conf, 0);\n cy.nodes().forEach(function(n) {\n n.layoutDimensions = () => {\n const data = n.data();\n return { w: data.width, h: data.height };\n };\n });\n cy.layout({\n name: \"cose-bilkent\",\n // @ts-ignore Types for cose-bilkent are not correct?\n quality: \"proof\",\n styleEnabled: false,\n animate: false\n }).run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\nfunction positionNodes(db2, cy) {\n cy.nodes().map((node, id) => {\n const data = node.data();\n data.x = node.position().x;\n data.y = node.position().y;\n positionNode(db2, data);\n const el = db2.getElementById(data.nodeId);\n log.info(\"Id:\", id, \"Position: (\", node.position().x, \", \", node.position().y, \")\", data);\n el.attr(\n \"transform\",\n `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`\n );\n el.attr(\"attr\", `apa-${id})`);\n });\n}\nconst draw = async (text, id, _version, diagObj) => {\n var _a, _b;\n log.debug(\"Rendering mindmap diagram\\n\" + text);\n const db2 = diagObj.db;\n const mm = db2.getMindmap();\n if (!mm) {\n return;\n }\n const conf = getConfig();\n conf.htmlLabels = false;\n const svg = selectSvgElement(id);\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"mindmap-edges\");\n const nodesElem = svg.append(\"g\");\n nodesElem.attr(\"class\", \"mindmap-nodes\");\n drawNodes(db2, nodesElem, mm, -1, conf);\n const cy = await layoutMindmap(mm, conf);\n drawEdges(edgesElem, cy);\n positionNodes(db2, cy);\n setupGraphViewbox(\n void 0,\n svg,\n ((_a = conf.mindmap) == null ? void 0 : _a.padding) ?? defaultConfig.mindmap.padding,\n ((_b = conf.mindmap) == null ? void 0 : _b.useMaxWidth) ?? defaultConfig.mindmap.useMaxWidth\n );\n};\nconst renderer = {\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n db: db$1,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n","import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, t as getDiagramTitle, q as setDiagramTitle, v as clear$1, e as common, K as defaultConfig, o as setupGraphViewbox } from \"./mermaid-ad1dc92f.js\";\nimport { select, scaleOrdinal, schemeTableau10 } from \"d3\";\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from \"d3-sankey\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 7:\n const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('\"\"', '\"'));\n const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('\"\"', '\"'));\n const value = parseFloat($$[$0].trim());\n yy.addLink(source, target, value);\n break;\n case 8:\n case 9:\n case 11:\n this.$ = $$[$0];\n break;\n case 10:\n this.$ = $$[$0 - 1];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])],\n defaultActions: { 11: [2, 1], 12: [2, 5] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.pushState(\"csv\");\n return 4;\n case 1:\n return 10;\n case 2:\n return 5;\n case 3:\n return 12;\n case 4:\n this.pushState(\"escaped_text\");\n return 18;\n case 5:\n return 20;\n case 6:\n this.popState(\"escaped_text\");\n return 18;\n case 7:\n return 19;\n }\n },\n rules: [/^(?:sankey-beta\\b)/i, /^(?:$)/i, /^(?:((\\u000D\\u000A)|(\\u000A)))/i, /^(?:(\\u002C))/i, /^(?:(\\u0022))/i, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/i, /^(?:(\\u0022)(?!(\\u0022)))/i, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/i],\n conditions: { \"csv\": { \"rules\": [1, 2, 3, 4, 5, 6, 7], \"inclusive\": false }, \"escaped_text\": { \"rules\": [6, 7], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet links = [];\nlet nodes = [];\nlet nodesMap = {};\nconst clear = () => {\n links = [];\n nodes = [];\n nodesMap = {};\n clear$1();\n};\nclass SankeyLink {\n constructor(source, target, value = 0) {\n this.source = source;\n this.target = target;\n this.value = value;\n }\n}\nconst addLink = (source, target, value) => {\n links.push(new SankeyLink(source, target, value));\n};\nclass SankeyNode {\n constructor(ID) {\n this.ID = ID;\n }\n}\nconst findOrCreateNode = (ID) => {\n ID = common.sanitizeText(ID, getConfig());\n if (!nodesMap[ID]) {\n nodesMap[ID] = new SankeyNode(ID);\n nodes.push(nodesMap[ID]);\n }\n return nodesMap[ID];\n};\nconst getNodes = () => nodes;\nconst getLinks = () => links;\nconst getGraph = () => ({\n nodes: nodes.map((node) => ({ id: node.ID })),\n links: links.map((link) => ({\n source: link.source.ID,\n target: link.target.ID,\n value: link.value\n }))\n});\nconst db = {\n nodesMap,\n getConfig: () => getConfig().sankey,\n getNodes,\n getLinks,\n getGraph,\n addLink,\n findOrCreateNode,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n getDiagramTitle,\n setDiagramTitle,\n clear\n};\nconst _Uid = class _Uid2 {\n static next(name) {\n return new _Uid2(name + ++_Uid2.count);\n }\n constructor(id) {\n this.id = id;\n this.href = `#${id}`;\n }\n toString() {\n return \"url(\" + this.href + \")\";\n }\n};\n_Uid.count = 0;\nlet Uid = _Uid;\nconst alignmentsMap = {\n left: sankeyLeft,\n right: sankeyRight,\n center: sankeyCenter,\n justify: sankeyJustify\n};\nconst draw = function(text, id, _version, diagObj) {\n const { securityLevel, sankey: conf } = getConfig();\n const defaultSankeyConfig = defaultConfig.sankey;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width;\n const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width;\n const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth;\n const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment;\n const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix;\n const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix;\n const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues;\n const graph = diagObj.db.getGraph();\n const nodeAlign = alignmentsMap[nodeAlignment];\n const nodeWidth = 10;\n const sankey$1 = sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([\n [0, 0],\n [width, height]\n ]);\n sankey$1(graph);\n const colorScheme = scaleOrdinal(schemeTableau10);\n svg.append(\"g\").attr(\"class\", \"nodes\").selectAll(\".node\").data(graph.nodes).join(\"g\").attr(\"class\", \"node\").attr(\"id\", (d) => (d.uid = Uid.next(\"node-\")).id).attr(\"transform\", function(d) {\n return \"translate(\" + d.x0 + \",\" + d.y0 + \")\";\n }).attr(\"x\", (d) => d.x0).attr(\"y\", (d) => d.y0).append(\"rect\").attr(\"height\", (d) => {\n return d.y1 - d.y0;\n }).attr(\"width\", (d) => d.x1 - d.x0).attr(\"fill\", (d) => colorScheme(d.id));\n const getText = ({ id: id2, value }) => {\n if (!showValues) {\n return id2;\n }\n return `${id2}\n${prefix}${Math.round(value * 100) / 100}${suffix}`;\n };\n svg.append(\"g\").attr(\"class\", \"node-labels\").attr(\"font-family\", \"sans-serif\").attr(\"font-size\", 14).selectAll(\"text\").data(graph.nodes).join(\"text\").attr(\"x\", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr(\"y\", (d) => (d.y1 + d.y0) / 2).attr(\"dy\", `${showValues ? \"0\" : \"0.35\"}em`).attr(\"text-anchor\", (d) => d.x0 < width / 2 ? \"start\" : \"end\").text(getText);\n const link = svg.append(\"g\").attr(\"class\", \"links\").attr(\"fill\", \"none\").attr(\"stroke-opacity\", 0.5).selectAll(\".link\").data(graph.links).join(\"g\").attr(\"class\", \"link\").style(\"mix-blend-mode\", \"multiply\");\n const linkColor = (conf == null ? void 0 : conf.linkColor) || \"gradient\";\n if (linkColor === \"gradient\") {\n const gradient = link.append(\"linearGradient\").attr(\"id\", (d) => (d.uid = Uid.next(\"linearGradient-\")).id).attr(\"gradientUnits\", \"userSpaceOnUse\").attr(\"x1\", (d) => d.source.x1).attr(\"x2\", (d) => d.target.x0);\n gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", (d) => colorScheme(d.source.id));\n gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (d) => colorScheme(d.target.id));\n }\n let coloring;\n switch (linkColor) {\n case \"gradient\":\n coloring = (d) => d.uid;\n break;\n case \"source\":\n coloring = (d) => colorScheme(d.source.id);\n break;\n case \"target\":\n coloring = (d) => colorScheme(d.target.id);\n break;\n default:\n coloring = linkColor;\n }\n link.append(\"path\").attr(\"d\", sankeyLinkHorizontal()).attr(\"stroke\", coloring).attr(\"stroke-width\", (d) => Math.max(1, d.width));\n setupGraphViewbox(void 0, svg, 0, useMaxWidth);\n};\nconst renderer = {\n draw\n};\nconst prepareTextForParsing = (text) => {\n const textToParse = text.replaceAll(/^[^\\S\\n\\r]+|[^\\S\\n\\r]+$/g, \"\").replaceAll(/([\\n\\r])+/g, \"\\n\").trim();\n return textToParse;\n};\nconst originalParse = parser$1.parse.bind(parser$1);\nparser$1.parse = (text) => originalParse(prepareTextForParsing(text));\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n","var _a, _b;\nimport { c as getConfig, F as getConfig$1, l as log, v as clear$1, e as common, k as getStylesFromArray, i as configureSvgSize } from \"./mermaid-ad1dc92f.js\";\nimport clone from \"lodash-es/clone.js\";\nimport * as khroma from \"khroma\";\nimport { h as insertEdge, f as insertEdgeLabel, j as positionEdgeLabel, e as insertNode, p as positionNode, a as insertMarkers } from \"./edges-332bd1c7.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, scaleOrdinal, schemeTableau10 } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./createText-d213de94.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 7], $V1 = [1, 13], $V2 = [1, 14], $V3 = [1, 15], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 15, 16, 21, 28, 29, 30, 31, 32, 40, 44, 47], $Vd = [8, 15, 16, 21, 27, 28, 29, 30, 31, 32, 40, 44, 47], $Ve = [1, 49];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n 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 },\n 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\" },\n 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]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [$$[$0]];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = { edgeTypeStr: $$[$0], label: \"\" };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = { id: spaceId, type: \"space\", label: \"\", width: num, children: [] };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n this.$ = [\n { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },\n { id: $$[$0 - 2].id + \"-\" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: \"edge\", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: \"arrow_open\" },\n { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = { type: \"column-setting\", columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0]) };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n yy.generateId();\n this.$ = { ...$$[$0 - 2], type: \"composite\", children: $$[$0 - 1] };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = { id, type: \"composite\", label: \"\", children: $$[$0 - 1] };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = { id: $$[$0] };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [$$[$0]];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };\n break;\n case 35:\n case 36:\n this.$ = { type: \"classDef\", id: $$[$0 - 1].trim(), css: $$[$0].trim() };\n break;\n case 37:\n this.$ = { type: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n this.$ = { type: \"applyStyles\", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };\n break;\n }\n },\n table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 11: 3, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 21: $V0, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 32: $V4 }, { 11: 27, 13: 4, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 41: [1, 28], 43: [1, 29] }, { 45: [1, 30] }, { 48: [1, 31] }, o($Vd, [2, 29], { 33: 32, 36: [1, 33], 38: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 32: $V4 }, { 32: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V0, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V1, 29: $V2, 31: $V3, 32: $V4, 40: $V5, 44: $V6, 47: $V7 }, { 30: [1, 38] }, { 42: [1, 39] }, { 42: [1, 40] }, { 46: [1, 41] }, { 49: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 37: [1, 47] }, { 34: 48, 35: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 39: [1, 51] }, { 34: 52, 35: $Ve, 39: [2, 31] }, { 32: [2, 15] }, o($Vd, [2, 34]), { 39: [2, 32] }],\n defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n 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).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 10;\n case 1:\n yy.getLogger().debug(\"Found space-block\");\n return 31;\n case 2:\n yy.getLogger().debug(\"Found nl-block\");\n return 31;\n case 3:\n yy.getLogger().debug(\"Found space-block\");\n return 29;\n case 4:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 5:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 6:\n return 5;\n case 7:\n yy_.yytext = -1;\n return 28;\n case 8:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n case 9:\n this.pushState(\"md_string\");\n break;\n case 10:\n return \"MD_STR\";\n case 11:\n this.popState();\n break;\n case 12:\n this.pushState(\"string\");\n break;\n case 13:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 14:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n case 15:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n case 16:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n case 17:\n return 43;\n case 18:\n return \"LINKSTYLE\";\n case 19:\n return \"INTERPOLATE\";\n case 20:\n this.pushState(\"CLASSDEF\");\n return 40;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n case 22:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 41;\n case 23:\n this.popState();\n return 42;\n case 24:\n this.pushState(\"CLASS\");\n return 44;\n case 25:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 45;\n case 26:\n this.popState();\n return 46;\n case 27:\n this.pushState(\"STYLE_STMNT\");\n return 47;\n case 28:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 48;\n case 29:\n this.popState();\n return 49;\n case 30:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n case 31:\n this.popState();\n return \"acc_title_value\";\n case 32:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n case 33:\n this.popState();\n return \"acc_descr_value\";\n case 34:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 35:\n this.popState();\n break;\n case 36:\n return \"acc_descr_multiline_value\";\n case 37:\n return 30;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n case 54:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n case 55:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 36;\n case 56:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 36;\n case 57:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 36;\n case 58:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 59:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 36;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 62:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 63:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 36;\n case 64:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 36;\n case 65:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 36;\n case 66:\n this.pushState(\"NODE\");\n return 36;\n case 67:\n this.pushState(\"NODE\");\n return 36;\n case 68:\n this.pushState(\"NODE\");\n return 36;\n case 69:\n this.pushState(\"NODE\");\n return 36;\n case 70:\n this.pushState(\"NODE\");\n return 36;\n case 71:\n this.pushState(\"NODE\");\n return 36;\n case 72:\n this.pushState(\"NODE\");\n return 36;\n case 73:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 36;\n case 74:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 38;\n case 75:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 32;\n case 76:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n this.pushState(\"md_string\");\n break;\n case 79:\n return \"NODE_DESCR\";\n case 80:\n this.popState();\n break;\n case 81:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 83:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 84:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 85:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n case 91:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n case 92:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 96:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 99:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n case 100:\n this.pushState(\"md_string\");\n break;\n case 101:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 104:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n case 105:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n }\n },\n rules: [/^(?:block-beta\\b)/, /^(?:block\\s+)/, /^(?:block\\n+)/, /^(?:block:)/, /^(?:[\\s]+)/, /^(?:[\\n]+)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:columns\\s+auto\\b)/, /^(?:columns\\s+[\\d]+)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:space[:]\\d+)/, /^(?:space\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\s+)/, /^(?:DEFAULT\\s+)/, /^(?:\\w+\\s+)/, /^(?:[^\\n]*)/, /^(?:class\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:style\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:end\\b\\s*)/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:[\\)]\\))/, /^(?:\\}\\})/, /^(?:\\})/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\()/, /^(?:\\]\\])/, /^(?:\\()/, /^(?:\\]\\))/, /^(?:\\\\\\])/, /^(?:\\/\\])/, /^(?:\\)\\])/, /^(?:[\\)])/, /^(?:\\]>)/, /^(?:[\\]])/, /^(?:-\\))/, /^(?:\\(-)/, /^(?:\\)\\))/, /^(?:\\))/, /^(?:\\(\\(\\()/, /^(?:\\(\\()/, /^(?:\\{\\{)/, /^(?:\\{)/, /^(?:>)/, /^(?:\\(\\[)/, /^(?:\\()/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\[\\\\)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:\\[)/, /^(?:<\\[)/, /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:]+)/, /^(?:$)/, /^(?:[\"][`])/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:\\]>\\s*\\()/, /^(?:,?\\s*right\\s*)/, /^(?:,?\\s*left\\s*)/, /^(?:,?\\s*x\\s*)/, /^(?:,?\\s*y\\s*)/, /^(?:,?\\s*up\\s*)/, /^(?:,?\\s*down\\s*)/, /^(?:\\)\\s*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[\"][`])/, /^(?:[\"])/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?::\\d+)/],\n conditions: { \"STYLE_DEFINITION\": { \"rules\": [29], \"inclusive\": false }, \"STYLE_STMNT\": { \"rules\": [28], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [23], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [21, 22], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [26], \"inclusive\": false }, \"CLASS\": { \"rules\": [25], \"inclusive\": false }, \"LLABEL\": { \"rules\": [100, 101, 102, 103, 104], \"inclusive\": false }, \"ARROW_DIR\": { \"rules\": [86, 87, 88, 89, 90, 91, 92], \"inclusive\": false }, \"BLOCK_ARROW\": { \"rules\": [77, 82, 85], \"inclusive\": false }, \"NODE\": { \"rules\": [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 78, 81], \"inclusive\": false }, \"md_string\": { \"rules\": [10, 11, 79, 80], \"inclusive\": false }, \"space\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [13, 14, 83, 84], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [35, 36], \"inclusive\": false }, \"acc_descr\": { \"rules\": [33], \"inclusive\": false }, \"acc_title\": { \"rules\": [31], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 24, 27, 30, 32, 34, 37, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, 105], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet blockDatabase = {};\nlet edgeList = [];\nlet edgeCount = {};\nconst COLOR_KEYWORD = \"color\";\nconst FILL_KEYWORD = \"fill\";\nconst BG_FILL = \"bgFill\";\nconst STYLECLASS_SEP = \",\";\nconst config = getConfig();\nlet classes = {};\nconst sanitizeText = (txt) => common.sanitizeText(txt, config);\nconst addStyleClass = function(id, styleAttributes = \"\") {\n if (classes[id] === void 0) {\n classes[id] = { id, styles: [], textStyles: [] };\n }\n const foundClass = classes[id];\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (attrib.match(COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n};\nconst addStyle2Node = function(id, styles = \"\") {\n const foundBlock = blockDatabase[id];\n if (styles !== void 0 && styles !== null) {\n foundBlock.styles = styles.split(STYLECLASS_SEP);\n }\n};\nconst setCssClass = function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = blockDatabase[id];\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n blockDatabase[trimmedId] = { id: trimmedId, type: \"na\", children: [] };\n foundBlock = blockDatabase[trimmedId];\n }\n if (!foundBlock.classes) {\n foundBlock.classes = [];\n }\n foundBlock.classes.push(cssClassName);\n });\n};\nconst populateBlockDatabase = (_blockList, parent) => {\n const blockList = _blockList.flat();\n const children = [];\n for (const block of blockList) {\n if (block.label) {\n block.label = sanitizeText(block.label);\n }\n if (block.type === \"classDef\") {\n addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n setCssClass(block.id, (block == null ? void 0 : block.styleClass) || \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block == null ? void 0 : block.stylesStr) {\n addStyle2Node(block.id, block == null ? void 0 : block.stylesStr);\n }\n continue;\n }\n if (block.type === \"column-setting\") {\n parent.columns = block.columns || -1;\n } else if (block.type === \"edge\") {\n if (edgeCount[block.id]) {\n edgeCount[block.id]++;\n } else {\n edgeCount[block.id] = 1;\n }\n block.id = edgeCount[block.id] + \"-\" + block.id;\n edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") {\n block.label = \"\";\n } else {\n block.label = block.id;\n }\n }\n const newBlock = !blockDatabase[block.id];\n if (newBlock) {\n blockDatabase[block.id] = block;\n } else {\n if (block.type !== \"na\") {\n blockDatabase[block.id].type = block.type;\n }\n if (block.label !== block.id) {\n blockDatabase[block.id].label = block.label;\n }\n }\n if (block.children) {\n populateBlockDatabase(block.children, block);\n }\n if (block.type === \"space\") {\n const w = block.width || 1;\n for (let j = 0; j < w; j++) {\n const newBlock2 = clone(block);\n newBlock2.id = newBlock2.id + \"-\" + j;\n blockDatabase[newBlock2.id] = newBlock2;\n children.push(newBlock2);\n }\n } else if (newBlock) {\n children.push(block);\n }\n }\n }\n parent.children = children;\n};\nlet blocks = [];\nlet rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\nconst clear = () => {\n log.debug(\"Clear called\");\n clear$1();\n rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\n blockDatabase = { root: rootBlock };\n blocks = [];\n classes = {};\n edgeList = [];\n edgeCount = {};\n};\nfunction typeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"[]\":\n return \"square\";\n case \"()\":\n log.debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\nfunction edgeTypeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\nfunction edgeStrToEdgeData(typeStr) {\n switch (typeStr.trim()) {\n case \"--x\":\n return \"arrow_cross\";\n case \"--o\":\n return \"arrow_circle\";\n default:\n return \"arrow_point\";\n }\n}\nlet cnt = 0;\nconst generateId = () => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n};\nconst setHierarchy = (block) => {\n rootBlock.children = block;\n populateBlockDatabase(block, rootBlock);\n blocks = rootBlock.children;\n};\nconst getColumns = (blockId) => {\n const block = blockDatabase[blockId];\n if (!block) {\n return -1;\n }\n if (block.columns) {\n return block.columns;\n }\n if (!block.children) {\n return -1;\n }\n return block.children.length;\n};\nconst getBlocksFlat = () => {\n return [...Object.values(blockDatabase)];\n};\nconst getBlocks = () => {\n return blocks || [];\n};\nconst getEdges = () => {\n return edgeList;\n};\nconst getBlock = (id) => {\n return blockDatabase[id];\n};\nconst setBlock = (block) => {\n blockDatabase[block.id] = block;\n};\nconst getLogger = () => console;\nconst getClasses$1 = function() {\n return classes;\n};\nconst db = {\n getConfig: () => getConfig$1().block,\n typeStr2Type,\n edgeTypeStr2Type,\n edgeStrToEdgeData,\n getLogger,\n getBlocksFlat,\n getBlocks,\n getEdges,\n setHierarchy,\n getBlock,\n setBlock,\n getColumns,\n getClasses: getClasses$1,\n clear,\n generateId\n};\nconst db$1 = db;\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${fade(options.mainBkg, 0.5)};\n fill: ${fade(options.clusterBkg, 0.5)};\n stroke: ${fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nfunction getNodeFromBlock(block, db2, positioned = false) {\n var _a2, _b2, _c;\n const vertex = block;\n let classStr = \"default\";\n if ((((_a2 = vertex == null ? void 0 : vertex.classes) == null ? void 0 : _a2.length) || 0) > 0) {\n classStr = ((vertex == null ? void 0 : vertex.classes) || []).join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n let radius = 0;\n let shape = \"\";\n let padding2;\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding2 = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = getStylesFromArray((vertex == null ? void 0 : vertex.styles) || []);\n const vertexText = vertex.label;\n const bounds = vertex.size || { width: 0, height: 0, x: 0, y: 0 };\n const node = {\n labelStyle: styles.labelStyle,\n shape,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n directions: vertex.directions,\n width: bounds.width,\n height: bounds.height,\n x: bounds.x,\n y: bounds.y,\n positioned,\n intersect: void 0,\n type: vertex.type,\n padding: padding2 ?? (((_c = (_b2 = getConfig$1()) == null ? void 0 : _b2.block) == null ? void 0 : _c.padding) || 0)\n };\n return node;\n}\nasync function calculateBlockSize(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, false);\n if (node.type === \"group\") {\n return;\n }\n const nodeEl = await insertNode(elem, node);\n const boundingBox = nodeEl.node().getBBox();\n const obj = db2.getBlock(node.id);\n obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl };\n db2.setBlock(obj);\n nodeEl.remove();\n}\nasync function insertBlockPositioned(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n await insertNode(elem, node);\n block.intersect = node == null ? void 0 : node.intersect;\n positionNode(node);\n }\n}\nasync function performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2) {\n await operation(elem, block, db2);\n if (block.children) {\n await performOperations(elem, block.children, db2, operation);\n }\n }\n}\nasync function calculateBlockSizes(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, calculateBlockSize);\n}\nasync function insertBlocks(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, insertBlockPositioned);\n}\nasync function insertEdges(elem, edges, blocks2, db2, id) {\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2) {\n if (block.size) {\n g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n }\n }\n for (const edge of edges) {\n if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if ((startBlock == null ? void 0 : startBlock.size) && (endBlock == null ? void 0 : endBlock.size)) {\n const start = startBlock.size;\n const end = endBlock.size;\n const points = [\n { x: start.x, y: start.y },\n { x: start.x + (end.x - start.x) / 2, y: start.y + (end.y - start.y) / 2 },\n { x: end.x, y: end.y }\n ];\n await insertEdge(\n elem,\n { v: edge.start, w: edge.end, name: edge.id },\n {\n ...edge,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n },\n void 0,\n \"block\",\n g,\n id\n );\n if (edge.label) {\n await insertEdgeLabel(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n });\n await positionEdgeLabel(\n { ...edge, x: points[1].x, y: points[1].y },\n {\n originalPath: points\n }\n );\n }\n }\n }\n }\n}\nconst padding = ((_b = (_a = getConfig()) == null ? void 0 : _a.block) == null ? void 0 : _b.padding) || 8;\nfunction calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) {\n throw new Error(\"Columns must be an integer !== 0.\");\n }\n if (position < 0 || !Number.isInteger(position)) {\n throw new Error(\"Position must be a non-negative integer.\" + position);\n }\n if (columns < 0) {\n return { px: position, py: 0 };\n }\n if (columns === 1) {\n return { px: 0, py: position };\n }\n const px = position % columns;\n const py = Math.floor(position / columns);\n return { px, py };\n}\nconst getMaxChildSize = (block) => {\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children) {\n const { width, height, x, y } = child.size || { width: 0, height: 0, x: 0, y: 0 };\n log.debug(\n \"getMaxChildSize abc95 child:\",\n child.id,\n \"width:\",\n width,\n \"height:\",\n height,\n \"x:\",\n x,\n \"y:\",\n y,\n child.type\n );\n if (child.type === \"space\") {\n continue;\n }\n if (width > maxWidth) {\n maxWidth = width / (block.widthInColumns || 1);\n }\n if (height > maxHeight) {\n maxHeight = height;\n }\n }\n return { width: maxWidth, height: maxHeight };\n};\nfunction setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n log.debug(\n \"setBlockSizes abc95 (start)\",\n block.id,\n (_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x,\n \"block width =\",\n block == null ? void 0 : block.size,\n \"sieblingWidth\",\n siblingWidth\n );\n if (!((_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.width)) {\n block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n }\n let maxWidth = 0;\n let maxHeight = 0;\n if (((_c = block.children) == null ? void 0 : _c.length) > 0) {\n for (const child of block.children) {\n setBlockSizes(child, db2);\n }\n const childSize = getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n log.debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children) {\n if (child.size) {\n log.debug(\n `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${child.size}`\n );\n child.size.width = maxWidth * (child.widthInColumns || 1) + padding * ((child.widthInColumns || 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n log.debug(\n `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`\n );\n }\n }\n for (const child of block.children) {\n setBlockSizes(child, db2, maxWidth, maxHeight);\n }\n const columns = block.columns || -1;\n let numItems = 0;\n for (const child of block.children) {\n numItems += child.widthInColumns || 1;\n }\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) {\n xSize = columns;\n }\n block.widthInColumns || 1;\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + padding) + padding;\n let height = ySize * (maxHeight + padding) + padding;\n if (width < siblingWidth) {\n log.debug(\n `Detected to small siebling: abc95 ${block.id} sieblingWidth ${siblingWidth} sieblingHeight ${siblingHeight} width ${width}`\n );\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * padding - padding) / xSize;\n const childHeight = (siblingHeight - ySize * padding - padding) / ySize;\n log.debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n log.debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n log.debug(\"Size indata abc88 xSize\", xSize, \"padding\", padding);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n }\n log.debug(\n `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, ((_d = block.size) == null ? void 0 : _d.width) || 0)}`\n );\n if (width < (((_e = block == null ? void 0 : block.size) == null ? void 0 : _e.width) || 0)) {\n width = ((_f = block == null ? void 0 : block.size) == null ? void 0 : _f.width) || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * padding - padding) / num;\n log.debug(\"abc95 (growing to fit) width\", block.id, width, (_g = block.size) == null ? void 0 : _g.width, childWidth);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n }\n }\n }\n }\n block.size = {\n width,\n height,\n x: 0,\n y: 0\n };\n }\n log.debug(\n \"setBlockSizes abc94 (done)\",\n block.id,\n (_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x,\n (_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width,\n (_j = block == null ? void 0 : block.size) == null ? void 0 : _j.y,\n (_k = block == null ? void 0 : block.size) == null ? void 0 : _k.height\n );\n}\nfunction layoutBlocks(block, db2) {\n var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n log.debug(\n `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${(_a2 = block == null ? void 0 : block.size) == null ? void 0 : _a2.x} y: ${(_b2 = block == null ? void 0 : block.size) == null ? void 0 : _b2.y} width: ${(_c = block == null ? void 0 : block.size) == null ? void 0 : _c.width}`\n );\n const columns = block.columns || -1;\n log.debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = ((_e = (_d = block == null ? void 0 : block.children[0]) == null ? void 0 : _d.size) == null ? void 0 : _e.width) || 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding;\n log.debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n let columnPos = 0;\n log.debug(\"abc91 block?.size?.x\", block.id, (_f = block == null ? void 0 : block.size) == null ? void 0 : _f.x);\n let startingPosX = ((_g = block == null ? void 0 : block.size) == null ? void 0 : _g.x) ? ((_h = block == null ? void 0 : block.size) == null ? void 0 : _h.x) + (-((_i = block == null ? void 0 : block.size) == null ? void 0 : _i.width) / 2 || 0) : -padding;\n let rowPos = 0;\n for (const child of block.children) {\n const parent = block;\n if (!child.size) {\n continue;\n }\n const { width: width2, height } = child.size;\n const { px, py } = calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = ((_j = block == null ? void 0 : block.size) == null ? void 0 : _j.x) ? ((_k = block == null ? void 0 : block.size) == null ? void 0 : _k.x) + (-((_l = block == null ? void 0 : block.size) == null ? void 0 : _l.width) / 2 || 0) : -padding;\n log.debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n log.debug(\n `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${(_m = parent == null ? void 0 : parent.size) == null ? void 0 : _m.x},${(_n = parent == null ? void 0 : parent.size) == null ? void 0 : _n.y}) parent: ${parent.id} width: ${width2}${padding}`\n );\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + padding + halfWidth;\n log.debug(\n `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`\n );\n startingPosX = child.size.x + halfWidth;\n child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding;\n log.debug(\n `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * ((child == null ? void 0 : child.widthInColumns) || 1) / 2}`\n );\n }\n if (child.children) {\n layoutBlocks(child);\n }\n columnPos += (child == null ? void 0 : child.widthInColumns) || 1;\n log.debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n log.debug(\n `layout blocks (<==layoutBlocks) ${block.id} x: ${(_o = block == null ? void 0 : block.size) == null ? void 0 : _o.x} y: ${(_p = block == null ? void 0 : block.size) == null ? void 0 : _p.y} width: ${(_q = block == null ? void 0 : block.size) == null ? void 0 : _q.width}`\n );\n}\nfunction findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {\n if (block.size && block.id !== \"root\") {\n const { x, y, width, height } = block.size;\n if (x - width / 2 < minX) {\n minX = x - width / 2;\n }\n if (y - height / 2 < minY) {\n minY = y - height / 2;\n }\n if (x + width / 2 > maxX) {\n maxX = x + width / 2;\n }\n if (y + height / 2 > maxY) {\n maxY = y + height / 2;\n }\n }\n if (block.children) {\n for (const child of block.children) {\n ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));\n }\n }\n return { minX, minY, maxX, maxY };\n}\nfunction layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) {\n return;\n }\n setBlockSizes(root, db2, 0, 0);\n layoutBlocks(root);\n log.debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX, minY, maxX, maxY } = findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return { x: minX, y: minY, width, height };\n}\nconst getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n const { securityLevel, block: conf } = getConfig$1();\n const db2 = diagObj.db;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n insertMarkers(svg, markers, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await calculateBlockSizes(nodes, bl, db2);\n const bounds = layout(db2);\n await insertBlocks(nodes, bl, db2);\n await insertEdges(nodes, edges, blArr, db2, id);\n if (bounds) {\n const bounds2 = bounds;\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth } = conf;\n configureSvgSize(svg, height, width, !!useMaxWidth);\n log.debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\n \"viewBox\",\n `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`\n );\n }\n scaleOrdinal(schemeTableau10);\n};\nconst renderer = {\n draw,\n getClasses\n};\nconst diagram = {\n parser: parser$1,\n db: db$1,\n renderer,\n styles: flowStyles\n};\nexport {\n diagram\n};\n"],"file":"mermaid-KwKZWwy0.js"} \ No newline at end of file diff --git a/assets/micromark-CTBPIv-_.js b/assets/micromark-CTBPIv-_.js new file mode 100644 index 0000000000000000000000000000000000000000..97f1556e294bad96e2763770f0586d7fa432f5d2 --- /dev/null +++ b/assets/micromark-CTBPIv-_.js @@ -0,0 +1,4 @@ +import{c as fn}from"./micromark-util-combine-extensions-Bka6Sc1c.js";import{f as K}from"./micromark-factory-space-x2vfxbz5.js";import{m as V}from"./micromark-util-character-Bcm1tP9o.js";import{s as G,p as dn}from"./micromark-util-chunked-DrRIdSP-.js";import{b as hn,c as pn,a as xn,l as b,d as mn,e as H,f as Z,t as Q,s as nn,h as gn,g as kn,i as rn,j as sn,k as wn,m as J,n as bn,o as Cn,p as vn,q as _n,r as In,u as yn,v as U}from"./micromark-core-commonmark-AH8VCgT7.js";import{r as Sn}from"./micromark-util-resolve-all-PQCKh0dx.js";import{s as An}from"./micromark-util-subtokenize-QwsxNXk2.js";const zn={tokenize:Fn};function Fn(n){const t=n.attempt(this.parser.constructs.contentInitial,e,r);let i;return t;function e(l){if(l===null){n.consume(l);return}return n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),K(n,t,"linePrefix")}function r(l){return n.enter("paragraph"),s(l)}function s(l){const d=n.enter("chunkText",{contentType:"text",previous:i});return i&&(i.next=d),i=d,u(l)}function u(l){if(l===null){n.exit("chunkText"),n.exit("paragraph"),n.consume(l);return}return V(l)?(n.consume(l),n.exit("chunkText"),s):(n.consume(l),u)}}const Tn={tokenize:En},en={tokenize:On};function En(n){const t=this,i=[];let e=0,r,s,u;return l;function l(a){if(eu))return;const C=t.events.length;let A=C,j,z;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){if(j){z=t.events[A][1].end;break}j=!0}for(S(e),m=C;ma;){const w=i[k];t.containerState=w[1],w[0].exit.call(t,n)}i.length=a}function T(){r.write([null]),s=void 0,r=void 0,t.containerState._closeFlow=void 0}}function On(n,t,i){return K(n,n.attempt(this.parser.constructs.document,t,i),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}const Bn={tokenize:jn};function jn(n){const t=this,i=n.attempt(hn,e,n.attempt(this.parser.constructs.flowInitial,r,K(n,n.attempt(this.parser.constructs.flow,r,n.attempt(pn,r)),"linePrefix")));return i;function e(s){if(s===null){n.consume(s);return}return n.enter("lineEndingBlank"),n.consume(s),n.exit("lineEndingBlank"),t.currentConstruct=void 0,i}function r(s){if(s===null){n.consume(s);return}return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),t.currentConstruct=void 0,i}}const Pn={resolveAll:un()},Ln=on("string"),$n=on("text");function on(n){return{tokenize:t,resolveAll:un(n==="text"?Mn:void 0)};function t(i){const e=this,r=this.parser.constructs[n],s=i.attempt(r,u,l);return u;function u(h){return o(h)?s(h):l(h)}function l(h){if(h===null){i.consume(h);return}return i.enter("data"),i.consume(h),d}function d(h){return o(h)?(i.exit("data"),s(h)):(i.consume(h),d)}function o(h){if(h===null)return!0;const p=r[h];let x=-1;if(p)for(;++x-1){const l=u[0];typeof l=="string"?u[0]=l.slice(e):u.shift()}s>0&&u.push(n[r].slice(0,s))}return u}function Dn(n,t){let i=-1;const e=[];let r;for(;++i} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n"],"names":["content","initializeContent","effects","contentStart","afterContentStartConstruct","paragraphInitial","previous","code","factorySpace","lineStart","token","data","markdownLineEnding","document","initializeDocument","containerConstruct","tokenizeContainer","self","stack","continued","childFlow","childToken","lineStartOffset","start","item","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","point","exitContainers","index","splice","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","eof","stream","seen","size","entry","ok","nok","flow","initializeFlow","initial","blankLine","atBlankEnding","afterConstruct","resolver","createResolver","string","initializeFactory","text","field","initializeText","resolveAllLineSuffixes","constructs","notText","atBreak","list","extraResolver","resolveAllText","events","context","enter","eventIndex","chunks","bufferIndex","tabs","chunk","createTokenizer","parser","initialize","from","columnStart","resolveAllConstructs","consume","exit","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","sliceStream","sliceSerialize","now","defineSkip","write","state","slice","push","main","addResult","resolveAll","expandTabs","serializeChunks","sliceChunks","line","column","offset","_index","_bufferIndex","value","accountForPotentialSkip","chunkIndex","go","type","fields","construct","info","_","onreturn","hook","returnState","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","map","def","all","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","head","result","atTab","blockQuote","contentInitial","definition","flowInitial","codeIndented","headingAtx","thematicBreak","setextUnderline","htmlFlow","codeFenced","characterReference","characterEscape","lineEnding","labelStartImage","attention","autolink","htmlText","labelStartLink","hardBreakEscape","labelEnd","codeText","insideSpan","resolveText","attentionMarkers","disable","parse","options","combineExtensions","defaultConstructs","create","creator","search","preprocess","buffer","atCarriageReturn","preprocessor","encoding","end","match","next","startPosition","endPosition","postprocess","subtokenize"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]} \ No newline at end of file diff --git a/assets/micromark-core-commonmark-AH8VCgT7.js b/assets/micromark-core-commonmark-AH8VCgT7.js new file mode 100644 index 0000000000000000000000000000000000000000..80f4117c99f8ad5b8a7c532101428164e31c889e --- /dev/null +++ b/assets/micromark-core-commonmark-AH8VCgT7.js @@ -0,0 +1,2 @@ +import{p as L,s as Z}from"./micromark-util-chunked-DrRIdSP-.js";import{c as d}from"./micromark-util-classify-character-Cq7Fg3xE.js";import{r as en}from"./micromark-util-resolve-all-PQCKh0dx.js";import{a as P,b as F,c as mn,d as pn,e as c,m as S,f as hn,g as xn,h as Y,i as w}from"./micromark-util-character-Bcm1tP9o.js";import{f as y}from"./micromark-factory-space-x2vfxbz5.js";import{d as kn}from"./decode-named-character-reference-C3-224fz.js";import{s as gn}from"./micromark-util-subtokenize-QwsxNXk2.js";import{f as un}from"./micromark-factory-destination-CypD_wgM.js";import{f as an}from"./micromark-factory-label-CRHH4ZHP.js";import{f as ln}from"./micromark-factory-title-B7kCBvC9.js";import{f as G}from"./micromark-factory-whitespace-B322EA6O.js";import{n as $}from"./micromark-util-normalize-identifier-C9ANKk3v.js";import{h as nn,a as bn}from"./micromark-util-html-tag-name-DbKNfynz.js";const Dt={name:"attention",tokenize:cn,resolveAll:Sn};function Sn(n,a){let r=-1,t,l,o,u,s,g,h,x;for(;++r1&&n[r][1].end.offset-n[r][1].start.offset>1?2:1;const p=Object.assign({},n[t][1].end),b=Object.assign({},n[r][1].start);tn(p,-g),tn(b,g),u={type:g>1?"strongSequence":"emphasisSequence",start:p,end:Object.assign({},n[t][1].end)},s={type:g>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[r][1].start),end:b},o={type:g>1?"strongText":"emphasisText",start:Object.assign({},n[t][1].end),end:Object.assign({},n[r][1].start)},l={type:g>1?"strong":"emphasis",start:Object.assign({},u.start),end:Object.assign({},s.end)},n[t][1].end=Object.assign({},u.start),n[r][1].start=Object.assign({},s.end),h=[],n[t][1].end.offset-n[t][1].start.offset&&(h=L(h,[["enter",n[t][1],a],["exit",n[t][1],a]])),h=L(h,[["enter",l,a],["enter",u,a],["exit",u,a],["enter",o,a]]),h=L(h,en(a.parser.constructs.insideSpan.null,n.slice(t+1,r),a)),h=L(h,[["exit",o,a],["enter",s,a],["exit",s,a],["exit",l,a]]),n[r][1].end.offset-n[r][1].start.offset?(x=2,h=L(h,[["enter",n[r][1],a],["exit",n[r][1],a]])):x=0,Z(n,t-1,r-t+3,h),r=t+h.length-x-2;break}}for(r=-1;++r0&&c(k)?y(n,M,"linePrefix",o+1)(k):M(k)}function M(k){return k===null||S(k)?n.check(rn,B,R)(k):(n.enter("codeFlowValue"),A(k))}function A(k){return k===null||S(k)?(n.exit("codeFlowValue"),M(k)):(n.consume(k),A)}function R(k){return n.exit("codeFenced"),a(k)}function _(k,f,q){let I=0;return H;function H(z){return k.enter("lineEnding"),k.consume(z),k.exit("lineEnding"),V}function V(z){return k.enter("codeFencedFence"),c(z)?y(k,E,"linePrefix",t.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(z):E(z)}function E(z){return z===s?(k.enter("codeFencedFenceSequence"),O(z)):q(z)}function O(z){return z===s?(I++,k.consume(z),O):I>=u?(k.exit("codeFencedFenceSequence"),c(z)?y(k,N,"whitespace")(z):N(z)):q(z)}function N(z){return z===null||S(z)?(k.exit("codeFencedFence"),f(z)):q(z)}}}function Ln(n,a,r){const t=this;return l;function l(u){return u===null?r(u):(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),o)}function o(u){return t.parser.lazy[t.now().line]?r(u):a(u)}}const _t={name:"codeIndented",tokenize:Bn},Fn={tokenize:Mn,partial:!0};function Bn(n,a,r){const t=this;return l;function l(h){return n.enter("codeIndented"),y(n,o,"linePrefix",5)(h)}function o(h){const x=t.events[t.events.length-1];return x&&x[1].type==="linePrefix"&&x[2].sliceSerialize(x[1],!0).length>=4?u(h):r(h)}function u(h){return h===null?g(h):S(h)?n.attempt(Fn,u,g)(h):(n.enter("codeFlowValue"),s(h))}function s(h){return h===null||S(h)?(n.exit("codeFlowValue"),u(h)):(n.consume(h),s)}function g(h){return n.exit("codeIndented"),a(h)}}function Mn(n,a,r){const t=this;return l;function l(u){return t.parser.lazy[t.now().line]?r(u):S(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),l):y(n,o,"linePrefix",5)(u)}function o(u){const s=t.events[t.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?a(u):S(u)?l(u):r(u)}}const Nt={name:"codeText",tokenize:qn,resolve:On,previous:Pn};function On(n){let a=n.length-4,r=3,t,l;if((n[r][1].type==="lineEnding"||n[r][1].type==="space")&&(n[a][1].type==="lineEnding"||n[a][1].type==="space")){for(t=r;++t=4?a(u):n.interrupt(t.parser.constructs.flow,r,a)(u)}}const Wt={name:"definition",tokenize:_n},jn={tokenize:Nn,partial:!0};function _n(n,a,r){const t=this;let l;return o;function o(m){return n.enter("definition"),u(m)}function u(m){return an.call(t,n,s,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(m)}function s(m){return l=$(t.sliceSerialize(t.events[t.events.length-1][1]).slice(1,-1)),m===58?(n.enter("definitionMarker"),n.consume(m),n.exit("definitionMarker"),g):r(m)}function g(m){return w(m)?G(n,h)(m):h(m)}function h(m){return un(n,x,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(m)}function x(m){return n.attempt(jn,p,p)(m)}function p(m){return c(m)?y(n,b,"whitespace")(m):b(m)}function b(m){return m===null||S(m)?(n.exit("definition"),t.parser.defined.push(l),a(m)):r(m)}}function Nn(n,a,r){return t;function t(s){return w(s)?G(n,l)(s):r(s)}function l(s){return ln(n,o,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function o(s){return c(s)?y(n,u,"whitespace")(s):u(s)}function u(s){return s===null||S(s)?a(s):r(s)}}const Ut={name:"hardBreakEscape",tokenize:Qn};function Qn(n,a,r){return t;function t(o){return n.enter("hardBreakEscape"),n.consume(o),l}function l(o){return S(o)?(n.exit("hardBreakEscape"),a(o)):r(o)}}const Gt={name:"headingAtx",tokenize:Un,resolve:Wn};function Wn(n,a){let r=n.length-2,t=3,l,o;return n[t][1].type==="whitespace"&&(t+=2),r-2>t&&n[r][1].type==="whitespace"&&(r-=2),n[r][1].type==="atxHeadingSequence"&&(t===r-1||r-4>t&&n[r-2][1].type==="whitespace")&&(r-=t+1===r?2:4),r>t&&(l={type:"atxHeadingText",start:n[t][1].start,end:n[r][1].end},o={type:"chunkText",start:n[t][1].start,end:n[r][1].end,contentType:"text"},Z(n,t,r-t+1,[["enter",l,a],["enter",o,a],["exit",o,a],["exit",l,a]])),n}function Un(n,a,r){let t=0;return l;function l(x){return n.enter("atxHeading"),o(x)}function o(x){return n.enter("atxHeadingSequence"),u(x)}function u(x){return x===35&&t++<6?(n.consume(x),u):x===null||w(x)?(n.exit("atxHeadingSequence"),s(x)):r(x)}function s(x){return x===35?(n.enter("atxHeadingSequence"),g(x)):x===null||S(x)?(n.exit("atxHeading"),a(x)):c(x)?y(n,s,"whitespace")(x):(n.enter("atxHeadingText"),h(x))}function g(x){return x===35?(n.consume(x),g):(n.exit("atxHeadingSequence"),s(x))}function h(x){return x===null||x===35||w(x)?(n.exit("atxHeadingText"),s(x)):(n.consume(x),h)}}const Jt={name:"htmlFlow",tokenize:Xn,resolveTo:Kn,concrete:!0},Gn={tokenize:Zn,partial:!0},Jn={tokenize:Yn,partial:!0};function Kn(n){let a=n.length;for(;a--&&!(n[a][0]==="enter"&&n[a][1].type==="htmlFlow"););return a>1&&n[a-2][1].type==="linePrefix"&&(n[a][1].start=n[a-2][1].start,n[a+1][1].start=n[a-2][1].start,n.splice(a-2,2)),n}function Xn(n,a,r){const t=this;let l,o,u,s,g;return h;function h(i){return x(i)}function x(i){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(i),p}function p(i){return i===33?(n.consume(i),b):i===47?(n.consume(i),o=!0,B):i===63?(n.consume(i),l=3,t.interrupt?a:e):P(i)?(n.consume(i),u=String.fromCharCode(i),j):r(i)}function b(i){return i===45?(n.consume(i),l=2,m):i===91?(n.consume(i),l=5,s=0,C):P(i)?(n.consume(i),l=4,t.interrupt?a:e):r(i)}function m(i){return i===45?(n.consume(i),t.interrupt?a:e):r(i)}function C(i){const W="CDATA[";return i===W.charCodeAt(s++)?(n.consume(i),s===W.length?t.interrupt?a:E:C):r(i)}function B(i){return P(i)?(n.consume(i),u=String.fromCharCode(i),j):r(i)}function j(i){if(i===null||i===47||i===62||w(i)){const W=i===47,sn=u.toLowerCase();return!W&&!o&&nn.includes(sn)?(l=1,t.interrupt?a(i):E(i)):bn.includes(u.toLowerCase())?(l=6,W?(n.consume(i),U):t.interrupt?a(i):E(i)):(l=7,t.interrupt&&!t.parser.lazy[t.now().line]?r(i):o?M(i):A(i))}return i===45||F(i)?(n.consume(i),u+=String.fromCharCode(i),j):r(i)}function U(i){return i===62?(n.consume(i),t.interrupt?a:E):r(i)}function M(i){return c(i)?(n.consume(i),M):H(i)}function A(i){return i===47?(n.consume(i),H):i===58||i===95||P(i)?(n.consume(i),R):c(i)?(n.consume(i),A):H(i)}function R(i){return i===45||i===46||i===58||i===95||F(i)?(n.consume(i),R):_(i)}function _(i){return i===61?(n.consume(i),k):c(i)?(n.consume(i),_):A(i)}function k(i){return i===null||i===60||i===61||i===62||i===96?r(i):i===34||i===39?(n.consume(i),g=i,f):c(i)?(n.consume(i),k):q(i)}function f(i){return i===g?(n.consume(i),g=null,I):i===null||S(i)?r(i):(n.consume(i),f)}function q(i){return i===null||i===34||i===39||i===47||i===60||i===61||i===62||i===96||w(i)?_(i):(n.consume(i),q)}function I(i){return i===47||i===62||c(i)?A(i):r(i)}function H(i){return i===62?(n.consume(i),V):r(i)}function V(i){return i===null||S(i)?E(i):c(i)?(n.consume(i),V):r(i)}function E(i){return i===45&&l===2?(n.consume(i),D):i===60&&l===1?(n.consume(i),T):i===62&&l===4?(n.consume(i),Q):i===63&&l===3?(n.consume(i),e):i===93&&l===5?(n.consume(i),K):S(i)&&(l===6||l===7)?(n.exit("htmlFlowData"),n.check(Gn,X,O)(i)):i===null||S(i)?(n.exit("htmlFlowData"),O(i)):(n.consume(i),E)}function O(i){return n.check(Jn,N,X)(i)}function N(i){return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),z}function z(i){return i===null||S(i)?O(i):(n.enter("htmlFlowData"),E(i))}function D(i){return i===45?(n.consume(i),e):E(i)}function T(i){return i===47?(n.consume(i),u="",J):E(i)}function J(i){if(i===62){const W=u.toLowerCase();return nn.includes(W)?(n.consume(i),Q):E(i)}return P(i)&&u.length<8?(n.consume(i),u+=String.fromCharCode(i),J):E(i)}function K(i){return i===93?(n.consume(i),e):E(i)}function e(i){return i===62?(n.consume(i),Q):i===45&&l===2?(n.consume(i),e):E(i)}function Q(i){return i===null||S(i)?(n.exit("htmlFlowData"),X(i)):(n.consume(i),Q)}function X(i){return n.exit("htmlFlow"),a(i)}}function Yn(n,a,r){const t=this;return l;function l(u){return S(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),o):r(u)}function o(u){return t.parser.lazy[t.now().line]?r(u):a(u)}}function Zn(n,a,r){return t;function t(l){return n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),n.attempt(v,a,r)}}const Kt={name:"htmlText",tokenize:$n};function $n(n,a,r){const t=this;let l,o,u;return s;function s(e){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(e),g}function g(e){return e===33?(n.consume(e),h):e===47?(n.consume(e),_):e===63?(n.consume(e),A):P(e)?(n.consume(e),q):r(e)}function h(e){return e===45?(n.consume(e),x):e===91?(n.consume(e),o=0,C):P(e)?(n.consume(e),M):r(e)}function x(e){return e===45?(n.consume(e),m):r(e)}function p(e){return e===null?r(e):e===45?(n.consume(e),b):S(e)?(u=p,T(e)):(n.consume(e),p)}function b(e){return e===45?(n.consume(e),m):p(e)}function m(e){return e===62?D(e):e===45?b(e):p(e)}function C(e){const Q="CDATA[";return e===Q.charCodeAt(o++)?(n.consume(e),o===Q.length?B:C):r(e)}function B(e){return e===null?r(e):e===93?(n.consume(e),j):S(e)?(u=B,T(e)):(n.consume(e),B)}function j(e){return e===93?(n.consume(e),U):B(e)}function U(e){return e===62?D(e):e===93?(n.consume(e),U):B(e)}function M(e){return e===null||e===62?D(e):S(e)?(u=M,T(e)):(n.consume(e),M)}function A(e){return e===null?r(e):e===63?(n.consume(e),R):S(e)?(u=A,T(e)):(n.consume(e),A)}function R(e){return e===62?D(e):A(e)}function _(e){return P(e)?(n.consume(e),k):r(e)}function k(e){return e===45||F(e)?(n.consume(e),k):f(e)}function f(e){return S(e)?(u=f,T(e)):c(e)?(n.consume(e),f):D(e)}function q(e){return e===45||F(e)?(n.consume(e),q):e===47||e===62||w(e)?I(e):r(e)}function I(e){return e===47?(n.consume(e),D):e===58||e===95||P(e)?(n.consume(e),H):S(e)?(u=I,T(e)):c(e)?(n.consume(e),I):D(e)}function H(e){return e===45||e===46||e===58||e===95||F(e)?(n.consume(e),H):V(e)}function V(e){return e===61?(n.consume(e),E):S(e)?(u=V,T(e)):c(e)?(n.consume(e),V):I(e)}function E(e){return e===null||e===60||e===61||e===62||e===96?r(e):e===34||e===39?(n.consume(e),l=e,O):S(e)?(u=E,T(e)):c(e)?(n.consume(e),E):(n.consume(e),N)}function O(e){return e===l?(n.consume(e),l=void 0,z):e===null?r(e):S(e)?(u=O,T(e)):(n.consume(e),O)}function N(e){return e===null||e===34||e===39||e===60||e===61||e===96?r(e):e===47||e===62||w(e)?I(e):(n.consume(e),N)}function z(e){return e===47||e===62||w(e)?I(e):r(e)}function D(e){return e===62?(n.consume(e),n.exit("htmlTextData"),n.exit("htmlText"),a):r(e)}function T(e){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(e),n.exit("lineEnding"),J}function J(e){return c(e)?y(n,K,"linePrefix",t.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):K(e)}function K(e){return n.enter("htmlTextData"),u(e)}}const on={name:"labelEnd",tokenize:et,resolveTo:rt,resolveAll:tt},vn={tokenize:it},dn={tokenize:ut},nt={tokenize:at};function tt(n){let a=-1;for(;++a=3&&(h===null||S(h))?(n.exit("thematicBreak"),a(h)):r(h)}function g(h){return h===l?(n.consume(h),t++,g):(n.exit("thematicBreakSequence"),c(h)?y(n,s,"whitespace")(h):s(h))}}const ht={name:"list",tokenize:gt,continuation:{tokenize:bt},exit:ct},xt={tokenize:zt,partial:!0},kt={tokenize:St,partial:!0};function gt(n,a,r){const t=this,l=t.events[t.events.length-1];let o=l&&l[1].type==="linePrefix"?l[2].sliceSerialize(l[1],!0).length:0,u=0;return s;function s(m){const C=t.containerState.type||(m===42||m===43||m===45?"listUnordered":"listOrdered");if(C==="listUnordered"?!t.containerState.marker||m===t.containerState.marker:Y(m)){if(t.containerState.type||(t.containerState.type=C,n.enter(C,{_container:!0})),C==="listUnordered")return n.enter("listItemPrefix"),m===42||m===45?n.check(mt,r,h)(m):h(m);if(!t.interrupt||m===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),g(m)}return r(m)}function g(m){return Y(m)&&++u<10?(n.consume(m),g):(!t.interrupt||u<2)&&(t.containerState.marker?m===t.containerState.marker:m===41||m===46)?(n.exit("listItemValue"),h(m)):r(m)}function h(m){return n.enter("listItemMarker"),n.consume(m),n.exit("listItemMarker"),t.containerState.marker=t.containerState.marker||m,n.check(v,t.interrupt?r:x,n.attempt(xt,b,p))}function x(m){return t.containerState.initialBlankLine=!0,o++,b(m)}function p(m){return c(m)?(n.enter("listItemPrefixWhitespace"),n.consume(m),n.exit("listItemPrefixWhitespace"),b):r(m)}function b(m){return t.containerState.size=o+t.sliceSerialize(n.exit("listItemPrefix"),!0).length,a(m)}}function bt(n,a,r){const t=this;return t.containerState._closeFlow=void 0,n.check(v,l,o);function l(s){return t.containerState.furtherBlankLines=t.containerState.furtherBlankLines||t.containerState.initialBlankLine,y(n,a,"listItemIndent",t.containerState.size+1)(s)}function o(s){return t.containerState.furtherBlankLines||!c(s)?(t.containerState.furtherBlankLines=void 0,t.containerState.initialBlankLine=void 0,u(s)):(t.containerState.furtherBlankLines=void 0,t.containerState.initialBlankLine=void 0,n.attempt(kt,a,u)(s))}function u(s){return t.containerState._closeFlow=!0,t.interrupt=void 0,y(n,n.attempt(ht,a,r),"linePrefix",t.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function St(n,a,r){const t=this;return y(n,l,"listItemIndent",t.containerState.size+1);function l(o){const u=t.events[t.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===t.containerState.size?a(o):r(o)}}function ct(n){n.exit(this.containerState.type)}function zt(n,a,r){const t=this;return y(n,l,"listItemPrefixWhitespace",t.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function l(o){const u=t.events[t.events.length-1];return!c(o)&&u&&u[1].type==="listItemPrefixWhitespace"?a(o):r(o)}}const $t={name:"setextUnderline",tokenize:Et,resolveTo:yt};function yt(n,a){let r=n.length,t,l,o;for(;r--;)if(n[r][0]==="enter"){if(n[r][1].type==="content"){t=r;break}n[r][1].type==="paragraph"&&(l=r)}else n[r][1].type==="content"&&n.splice(r,1),!o&&n[r][1].type==="definition"&&(o=r);const u={type:"setextHeading",start:Object.assign({},n[l][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[l][1].type="setextHeadingText",o?(n.splice(l,0,["enter",u,a]),n.splice(o+1,0,["exit",n[t][1],a]),n[t][1].end=Object.assign({},n[o][1].end)):n[t][1]=u,n.push(["exit",u,a]),n}function Et(n,a,r){const t=this;let l;return o;function o(h){let x=t.events.length,p;for(;x--;)if(t.events[x][1].type!=="lineEnding"&&t.events[x][1].type!=="linePrefix"&&t.events[x][1].type!=="content"){p=t.events[x][1].type==="paragraph";break}return!t.parser.lazy[t.now().line]&&(t.interrupt||p)?(n.enter("setextHeadingLine"),l=h,u(h)):r(h)}function u(h){return n.enter("setextHeadingLineSequence"),s(h)}function s(h){return h===l?(n.consume(h),s):(n.exit("setextHeadingLineSequence"),c(h)?y(n,g,"lineSuffix")(h):g(h))}function g(h){return h===null||S(h)?(n.exit("setextHeadingLine"),a(h)):r(h)}}export{En as a,v as b,Qt as c,Wt as d,_t as e,jt as f,Gt as g,Jt as h,Ht as i,Vt as j,Nt as k,ht as l,Dt as m,on as n,Ut as o,Yt as p,Rt as q,Kt as r,$t as s,mt as t,Xt as u,Zt as v}; +//# sourceMappingURL=micromark-core-commonmark-AH8VCgT7.js.map diff --git a/assets/micromark-core-commonmark-AH8VCgT7.js.map b/assets/micromark-core-commonmark-AH8VCgT7.js.map new file mode 100644 index 0000000000000000000000000000000000000000..7df5785b3e274fa517e74d7dde4b515369b0b9e5 --- /dev/null +++ b/assets/micromark-core-commonmark-AH8VCgT7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-core-commonmark-AH8VCgT7.js","sources":["../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js"],"sourcesContent":["/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | &<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | \n * ^^\n * > | \n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > |
\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | \n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n"],"names":["attention","tokenizeAttention","resolveAllAttention","events","context","index","open","group","text","openingSequence","closingSequence","use","nextEvents","offset","start","end","movePoint","push","resolveAll","splice","effects","ok","attentionMarkers","previous","before","classifyCharacter","marker","code","inside","token","after","close","point","autolink","tokenizeAutolink","nok","size","asciiAlpha","schemeOrEmailAtext","emailAtext","asciiAlphanumeric","schemeInsideOrEmailAtext","urlInside","asciiControl","emailAtSignOrDot","asciiAtext","emailLabel","emailValue","next","blankLine","tokenizeBlankLine","markdownSpace","factorySpace","markdownLineEnding","blockQuote","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","exit","self","state","contStart","contBefore","characterEscape","tokenizeCharacterEscape","asciiPunctuation","characterReference","tokenizeCharacterReference","max","test","numeric","value","asciiHexDigit","asciiDigit","decodeNamedCharacterReference","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","tail","sequenceOpen","infoBefore","atNonLazyBreak","info","metaBefore","meta","contentBefore","contentStart","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","lineStart","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","enter","between","data","content","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","subtokenize","chunkStart","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","definition","tokenizeDefinition","titleBefore","tokenizeTitleBefore","identifier","factoryLabel","labelAfter","normalizeIdentifier","markerAfter","markdownLineEndingOrSpace","factoryWhitespace","destinationBefore","factoryDestination","destinationAfter","afterWhitespace","beforeMarker","factoryTitle","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","sequenceFurther","htmlFlow","tokenizeHtmlFlow","resolveToHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","buffer","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","tagName","commentOpenInside","cdataOpenInside","continuation","slash","name","htmlRawNames","htmlBlockNames","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","declaration","commentEnd","comment","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","list","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","heading","paragraph"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]} \ No newline at end of file diff --git a/assets/micromark-factory-destination-CypD_wgM.js b/assets/micromark-factory-destination-CypD_wgM.js new file mode 100644 index 0000000000000000000000000000000000000000..91fe96cd56f968a1af7e46cc32170cf397155dd1 --- /dev/null +++ b/assets/micromark-factory-destination-CypD_wgM.js @@ -0,0 +1,2 @@ +import{c as h,m as B,i as C}from"./micromark-util-character-Bcm1tP9o.js";function F(r,S,l,i,g,t,E,m,w){const N=w||Number.POSITIVE_INFINITY;let x=0;return b;function b(n){return n===60?(r.enter(i),r.enter(g),r.enter(t),r.consume(n),r.exit(t),I):n===null||n===32||n===41||h(n)?l(n):(r.enter(i),r.enter(E),r.enter(m),r.enter("chunkString",{contentType:"string"}),u(n))}function I(n){return n===62?(r.enter(t),r.consume(n),r.exit(t),r.exit(g),r.exit(i),S):(r.enter(m),r.enter("chunkString",{contentType:"string"}),a(n))}function a(n){return n===62?(r.exit("chunkString"),r.exit(m),I(n)):n===null||n===60||B(n)?l(n):(r.consume(n),n===92?L:a)}function L(n){return n===60||n===62||n===92?(r.consume(n),a):a(n)}function u(n){return!x&&(n===null||n===41||C(n))?(r.exit("chunkString"),r.exit(m),r.exit(E),r.exit(i),S(n)):x\n * b>\n * \n * \n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (``).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | \n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n"],"names":["factoryDestination","effects","ok","nok","type","literalType","literalMarkerType","rawType","stringType","max","limit","balance","start","code","enclosedBefore","asciiControl","raw","enclosed","markdownLineEnding","enclosedEscape","markdownLineEndingOrSpace","rawEscape"],"mappings":"yEAgDO,SAASA,EACdC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,MAAMC,EAAQD,GAAO,OAAO,kBAC5B,IAAIE,EAAU,EACd,OAAOC,EAcP,SAASA,EAAMC,EAAM,CACnB,OAAIA,IAAS,IACXZ,EAAQ,MAAMG,CAAI,EAClBH,EAAQ,MAAMI,CAAW,EACzBJ,EAAQ,MAAMK,CAAiB,EAC/BL,EAAQ,QAAQY,CAAI,EACpBZ,EAAQ,KAAKK,CAAiB,EACvBQ,GAILD,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAME,EAAaF,CAAI,EAC3DV,EAAIU,CAAI,GAEjBZ,EAAQ,MAAMG,CAAI,EAClBH,EAAQ,MAAMM,CAAO,EACrBN,EAAQ,MAAMO,CAAU,EACxBP,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMe,EAAIH,CAAI,EACjB,CAYA,SAASC,EAAeD,EAAM,CAC5B,OAAIA,IAAS,IACXZ,EAAQ,MAAMK,CAAiB,EAC/BL,EAAQ,QAAQY,CAAI,EACpBZ,EAAQ,KAAKK,CAAiB,EAC9BL,EAAQ,KAAKI,CAAW,EACxBJ,EAAQ,KAAKG,CAAI,EACVF,IAETD,EAAQ,MAAMO,CAAU,EACxBP,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMgB,EAASJ,CAAI,EACtB,CAYA,SAASI,EAASJ,EAAM,CACtB,OAAIA,IAAS,IACXZ,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAKO,CAAU,EAChBM,EAAeD,CAAI,GAExBA,IAAS,MAAQA,IAAS,IAAMK,EAAmBL,CAAI,EAClDV,EAAIU,CAAI,GAEjBZ,EAAQ,QAAQY,CAAI,EACbA,IAAS,GAAKM,EAAiBF,EACxC,CAYA,SAASE,EAAeN,EAAM,CAC5B,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCZ,EAAQ,QAAQY,CAAI,EACbI,GAEFA,EAASJ,CAAI,CACtB,CAYA,SAASG,EAAIH,EAAM,CACjB,MACE,CAACF,IACAE,IAAS,MAAQA,IAAS,IAAMO,EAA0BP,CAAI,IAE/DZ,EAAQ,KAAK,aAAa,EAC1BA,EAAQ,KAAKO,CAAU,EACvBP,EAAQ,KAAKM,CAAO,EACpBN,EAAQ,KAAKG,CAAI,EACVF,EAAGW,CAAI,GAEZF,EAAUD,GAASG,IAAS,IAC9BZ,EAAQ,QAAQY,CAAI,EACpBF,IACOK,GAELH,IAAS,IACXZ,EAAQ,QAAQY,CAAI,EACpBF,IACOK,GAMLH,IAAS,MAAQA,IAAS,IAAMA,IAAS,IAAME,EAAaF,CAAI,EAC3DV,EAAIU,CAAI,GAEjBZ,EAAQ,QAAQY,CAAI,EACbA,IAAS,GAAKQ,EAAYL,EACnC,CAYA,SAASK,EAAUR,EAAM,CACvB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCZ,EAAQ,QAAQY,CAAI,EACbG,GAEFA,EAAIH,CAAI,CACjB,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-factory-label-CRHH4ZHP.js b/assets/micromark-factory-label-CRHH4ZHP.js new file mode 100644 index 0000000000000000000000000000000000000000..4b25f69a0c53186843f3db6806ea03f58edf7247 --- /dev/null +++ b/assets/micromark-factory-label-CRHH4ZHP.js @@ -0,0 +1,2 @@ +import{m as g,e as p}from"./micromark-util-character-Bcm1tP9o.js";function k(r,h,E,m,i,x){const S=this;let t=0,l;return b;function b(n){return r.enter(m),r.enter(i),r.consume(n),r.exit(i),r.enter(x),a}function a(n){return t>999||n===null||n===91||n===93&&!l||n===94&&!t&&"_hiddenFootnoteSupport"in S.parser.constructs?E(n):n===93?(r.exit(x),r.enter(i),r.consume(n),r.exit(i),r.exit(m),h):g(n)?(r.enter("lineEnding"),r.consume(n),r.exit("lineEnding"),a):(r.enter("chunkString",{contentType:"string"}),u(n))}function u(n){return n===null||n===91||n===93||g(n)||t++>999?(r.exit("chunkString"),a(n)):(r.consume(n),l||(l=!p(n)),n===92?o:u)}function o(n){return n===91||n===92||n===93?(r.consume(n),t++,u):u(n)}}export{k as f}; +//# sourceMappingURL=micromark-factory-label-CRHH4ZHP.js.map diff --git a/assets/micromark-factory-label-CRHH4ZHP.js.map b/assets/micromark-factory-label-CRHH4ZHP.js.map new file mode 100644 index 0000000000000000000000000000000000000000..e3b9ac6369ff56151eaf52e11c68c4d7692587a6 --- /dev/null +++ b/assets/micromark-factory-label-CRHH4ZHP.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-factory-label-CRHH4ZHP.js","sources":["../../node_modules/micromark-factory-label/index.js"],"sourcesContent":["/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n"],"names":["factoryLabel","effects","ok","nok","type","markerType","stringType","self","size","seen","start","code","atBreak","markdownLineEnding","labelInside","markdownSpace","labelEscape"],"mappings":"kEAuCO,SAASA,EAAaC,EAASC,EAAIC,EAAKC,EAAMC,EAAYC,EAAY,CAC3E,MAAMC,EAAO,KACb,IAAIC,EAAO,EAEPC,EACJ,OAAOC,EAYP,SAASA,EAAMC,EAAM,CACnB,OAAAV,EAAQ,MAAMG,CAAI,EAClBH,EAAQ,MAAMI,CAAU,EACxBJ,EAAQ,QAAQU,CAAI,EACpBV,EAAQ,KAAKI,CAAU,EACvBJ,EAAQ,MAAMK,CAAU,EACjBM,CACT,CAYA,SAASA,EAAQD,EAAM,CACrB,OACEH,EAAO,KACPG,IAAS,MACTA,IAAS,IACRA,IAAS,IAAM,CAACF,GAMhBE,IAAS,IACR,CAACH,GACD,2BAA4BD,EAAK,OAAO,WAEnCJ,EAAIQ,CAAI,EAEbA,IAAS,IACXV,EAAQ,KAAKK,CAAU,EACvBL,EAAQ,MAAMI,CAAU,EACxBJ,EAAQ,QAAQU,CAAI,EACpBV,EAAQ,KAAKI,CAAU,EACvBJ,EAAQ,KAAKG,CAAI,EACVF,GAILW,EAAmBF,CAAI,GACzBV,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQU,CAAI,EACpBV,EAAQ,KAAK,YAAY,EAClBW,IAETX,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMa,EAAYH,CAAI,EACzB,CAYA,SAASG,EAAYH,EAAM,CACzB,OACEA,IAAS,MACTA,IAAS,IACTA,IAAS,IACTE,EAAmBF,CAAI,GACvBH,IAAS,KAETP,EAAQ,KAAK,aAAa,EACnBW,EAAQD,CAAI,IAErBV,EAAQ,QAAQU,CAAI,EACfF,IAAMA,EAAO,CAACM,EAAcJ,CAAI,GAC9BA,IAAS,GAAKK,EAAcF,EACrC,CAYA,SAASE,EAAYL,EAAM,CACzB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCV,EAAQ,QAAQU,CAAI,EACpBH,IACOM,GAEFA,EAAYH,CAAI,CACzB,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-factory-space-x2vfxbz5.js b/assets/micromark-factory-space-x2vfxbz5.js new file mode 100644 index 0000000000000000000000000000000000000000..b8a93aa5ba29af1ec2b7513ff9572cac330585a6 --- /dev/null +++ b/assets/micromark-factory-space-x2vfxbz5.js @@ -0,0 +1,2 @@ +import{e as a}from"./micromark-util-character-Bcm1tP9o.js";function p(n,t,i,u){const f=u?u-1:Number.POSITIVE_INFINITY;let m=0;return o;function o(r){return a(r)?(n.enter(i),e(r)):t(r)}function e(r){return a(r)&&m++} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n"],"names":["factoryTitle","effects","ok","nok","type","markerType","stringType","marker","start","code","begin","atBreak","markdownLineEnding","factorySpace","inside","escape"],"mappings":"qHAwCO,SAASA,EAAaC,EAASC,EAAIC,EAAKC,EAAMC,EAAYC,EAAY,CAE3E,IAAIC,EACJ,OAAOC,EAYP,SAASA,EAAMC,EAAM,CACnB,OAAIA,IAAS,IAAMA,IAAS,IAAMA,IAAS,IACzCR,EAAQ,MAAMG,CAAI,EAClBH,EAAQ,MAAMI,CAAU,EACxBJ,EAAQ,QAAQQ,CAAI,EACpBR,EAAQ,KAAKI,CAAU,EACvBE,EAASE,IAAS,GAAK,GAAKA,EACrBC,GAEFP,EAAIM,CAAI,CACjB,CAcA,SAASC,EAAMD,EAAM,CACnB,OAAIA,IAASF,GACXN,EAAQ,MAAMI,CAAU,EACxBJ,EAAQ,QAAQQ,CAAI,EACpBR,EAAQ,KAAKI,CAAU,EACvBJ,EAAQ,KAAKG,CAAI,EACVF,IAETD,EAAQ,MAAMK,CAAU,EACjBK,EAAQF,CAAI,EACrB,CAYA,SAASE,EAAQF,EAAM,CACrB,OAAIA,IAASF,GACXN,EAAQ,KAAKK,CAAU,EAChBI,EAAMH,CAAM,GAEjBE,IAAS,KACJN,EAAIM,CAAI,EAIbG,EAAmBH,CAAI,GAEzBR,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQQ,CAAI,EACpBR,EAAQ,KAAK,YAAY,EAClBY,EAAaZ,EAASU,EAAS,YAAY,IAEpDV,EAAQ,MAAM,cAAe,CAC3B,YAAa,QACnB,CAAK,EACMa,EAAOL,CAAI,EACpB,CAOA,SAASK,EAAOL,EAAM,CACpB,OAAIA,IAASF,GAAUE,IAAS,MAAQG,EAAmBH,CAAI,GAC7DR,EAAQ,KAAK,aAAa,EACnBU,EAAQF,CAAI,IAErBR,EAAQ,QAAQQ,CAAI,EACbA,IAAS,GAAKM,EAASD,EAChC,CAYA,SAASC,EAAON,EAAM,CACpB,OAAIA,IAASF,GAAUE,IAAS,IAC9BR,EAAQ,QAAQQ,CAAI,EACbK,GAEFA,EAAOL,CAAI,CACpB,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-factory-whitespace-B322EA6O.js b/assets/micromark-factory-whitespace-B322EA6O.js new file mode 100644 index 0000000000000000000000000000000000000000..18a5666d77caafd54fe2fd81f7b00d8e51f2df6e --- /dev/null +++ b/assets/micromark-factory-whitespace-B322EA6O.js @@ -0,0 +1,2 @@ +import{f as a}from"./micromark-factory-space-x2vfxbz5.js";import{m as u,e as m}from"./micromark-util-character-Bcm1tP9o.js";function p(r,e){let t;return i;function i(n){return u(n)?(r.enter("lineEnding"),r.consume(n),r.exit("lineEnding"),t=!0,i):m(n)?a(r,i,t?"linePrefix":"lineSuffix")(n):e(n)}}export{p as f}; +//# sourceMappingURL=micromark-factory-whitespace-B322EA6O.js.map diff --git a/assets/micromark-factory-whitespace-B322EA6O.js.map b/assets/micromark-factory-whitespace-B322EA6O.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2ec7c48f1ef50a82ac3f0bf6fae8c3099ab9884d --- /dev/null +++ b/assets/micromark-factory-whitespace-B322EA6O.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-factory-whitespace-B322EA6O.js","sources":["../../node_modules/micromark-factory-whitespace/index.js"],"sourcesContent":["/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n"],"names":["factoryWhitespace","effects","ok","seen","start","code","markdownLineEnding","markdownSpace","factorySpace"],"mappings":"4HAyBO,SAASA,EAAkBC,EAASC,EAAI,CAE7C,IAAIC,EACJ,OAAOC,EAGP,SAASA,EAAMC,EAAM,CACnB,OAAIC,EAAmBD,CAAI,GACzBJ,EAAQ,MAAM,YAAY,EAC1BA,EAAQ,QAAQI,CAAI,EACpBJ,EAAQ,KAAK,YAAY,EACzBE,EAAO,GACAC,GAELG,EAAcF,CAAI,EACbG,EACLP,EACAG,EACAD,EAAO,aAAe,YAC9B,EAAQE,CAAI,EAEDH,EAAGG,CAAI,CAChB,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-character-Bcm1tP9o.js b/assets/micromark-util-character-Bcm1tP9o.js new file mode 100644 index 0000000000000000000000000000000000000000..a21ed32d0d46860b9938dc08f637629b1e534975 --- /dev/null +++ b/assets/micromark-util-character-Bcm1tP9o.js @@ -0,0 +1,2 @@ +const E=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\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\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\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\u2E52-\u2E5D\u3001-\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]/,D=F(/[A-Za-z]/),i=F(/[\dA-Za-z]/),t=F(/[#-'*+\--9=?A-Z^-~]/);function C(u){return u!==null&&(u<32||u===127)}const a=F(/\d/),s=F(/[\dA-Fa-f]/),c=F(/[!-/:-@[-`{-~]/);function B(u){return u!==null&&u<-2}function r(u){return u!==null&&(u<0||u===32)}function o(u){return u===-2||u===-1||u===32}const e=F(E),x=F(/\s/);function F(u){return n;function n(A){return A!==null&&u.test(String.fromCharCode(A))}}export{D as a,i as b,C as c,t as d,o as e,c as f,s as g,a as h,r as i,e as j,B as m,x as u}; +//# sourceMappingURL=micromark-util-character-Bcm1tP9o.js.map diff --git a/assets/micromark-util-character-Bcm1tP9o.js.map b/assets/micromark-util-character-Bcm1tP9o.js.map new file mode 100644 index 0000000000000000000000000000000000000000..d0b1b3d91fb556655f2f74b761bf9203ef15a5ea --- /dev/null +++ b/assets/micromark-util-character-Bcm1tP9o.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-character-Bcm1tP9o.js","sources":["../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../../node_modules/micromark-util-character/index.js"],"sourcesContent":["// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\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\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\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\\u2E52-\\u2E5D\\u3001-\\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]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n"],"names":["unicodePunctuationRegex","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","code","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","check"],"mappings":"AAUO,MAAMA,EACX,uwCCYWC,EAAaC,EAAW,UAAU,EAclCC,EAAoBD,EAAW,YAAY,EAuB3CE,EAAaF,EAAW,qBAAqB,EAanD,SAASG,EAAaC,EAAM,CACjC,OAGEA,IAAS,OAASA,EAAO,IAAMA,IAAS,IAE5C,CAaY,MAACC,EAAaL,EAAW,IAAI,EAoB5BM,EAAgBN,EAAW,YAAY,EAevCO,EAAmBP,EAAW,gBAAgB,EAiBpD,SAASQ,EAAmBJ,EAAM,CACvC,OAAOA,IAAS,MAAQA,EAAO,EACjC,CAWO,SAASK,EAA0BL,EAAM,CAC9C,OAAOA,IAAS,OAASA,EAAO,GAAKA,IAAS,GAChD,CAiBO,SAASM,EAAcN,EAAM,CAClC,OAAOA,IAAS,IAAMA,IAAS,IAAMA,IAAS,EAChD,CAuBY,MAACO,EAAqBX,EAAWF,CAAuB,EAsBvDc,EAAoBZ,EAAW,IAAI,EAQhD,SAASA,EAAWa,EAAO,CACzB,OAAOC,EAUP,SAASA,EAAMV,EAAM,CACnB,OAAOA,IAAS,MAAQS,EAAM,KAAK,OAAO,aAAaT,CAAI,CAAC,CAC9D,CACF","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/assets/micromark-util-chunked-DrRIdSP-.js b/assets/micromark-util-chunked-DrRIdSP-.js new file mode 100644 index 0000000000000000000000000000000000000000..d69c17ba88eb04559b47665cdb5682ce00bb9fe4 --- /dev/null +++ b/assets/micromark-util-chunked-DrRIdSP-.js @@ -0,0 +1,2 @@ +function u(h,n,c,f){const l=h.length;let p=0,e;if(n<0?n=-n>l?0:l+n:n=n>l?l:n,c=c>0?c:0,f.length<1e4)e=Array.from(f),e.unshift(n,c),h.splice(...e);else for(c&&h.splice(n,c);p0?(u(h,h.length,0,n),h):n}export{g as p,u as s}; +//# sourceMappingURL=micromark-util-chunked-DrRIdSP-.js.map diff --git a/assets/micromark-util-chunked-DrRIdSP-.js.map b/assets/micromark-util-chunked-DrRIdSP-.js.map new file mode 100644 index 0000000000000000000000000000000000000000..69246ac6269ed7ce631a2209d261c413ecb15a89 --- /dev/null +++ b/assets/micromark-util-chunked-DrRIdSP-.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-chunked-DrRIdSP-.js","sources":["../../node_modules/micromark-util-chunked/index.js"],"sourcesContent":["/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n"],"names":["splice","list","start","remove","items","end","chunkStart","parameters","push"],"mappings":"AAsBO,SAASA,EAAOC,EAAMC,EAAOC,EAAQC,EAAO,CACjD,MAAMC,EAAMJ,EAAK,OACjB,IAAIK,EAAa,EAEbC,EAWJ,GARIL,EAAQ,EACVA,EAAQ,CAACA,EAAQG,EAAM,EAAIA,EAAMH,EAEjCA,EAAQA,EAAQG,EAAMA,EAAMH,EAE9BC,EAASA,EAAS,EAAIA,EAAS,EAG3BC,EAAM,OAAS,IACjBG,EAAa,MAAM,KAAKH,CAAK,EAC7BG,EAAW,QAAQL,EAAOC,CAAM,EAEhCF,EAAK,OAAO,GAAGM,CAAU,MAMzB,KAHIJ,GAAQF,EAAK,OAAOC,EAAOC,CAAM,EAG9BG,EAAaF,EAAM,QACxBG,EAAaH,EAAM,MAAME,EAAYA,EAAa,GAAK,EACvDC,EAAW,QAAQL,EAAO,CAAC,EAE3BD,EAAK,OAAO,GAAGM,CAAU,EACzBD,GAAc,IACdJ,GAAS,GAGf,CAkBO,SAASM,EAAKP,EAAMG,EAAO,CAChC,OAAIH,EAAK,OAAS,GAChBD,EAAOC,EAAMA,EAAK,OAAQ,EAAGG,CAAK,EAC3BH,GAEFG,CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-classify-character-Cq7Fg3xE.js b/assets/micromark-util-classify-character-Cq7Fg3xE.js new file mode 100644 index 0000000000000000000000000000000000000000..cef7b90b6890fce25f64dfc030e821897a2a7598 --- /dev/null +++ b/assets/micromark-util-classify-character-Cq7Fg3xE.js @@ -0,0 +1,2 @@ +import{i,u as a,j as r}from"./micromark-util-character-Bcm1tP9o.js";function u(n){if(n===null||i(n)||a(n))return 1;if(r(n))return 2}export{u as c}; +//# sourceMappingURL=micromark-util-classify-character-Cq7Fg3xE.js.map diff --git a/assets/micromark-util-classify-character-Cq7Fg3xE.js.map b/assets/micromark-util-classify-character-Cq7Fg3xE.js.map new file mode 100644 index 0000000000000000000000000000000000000000..f36ae6b78fab537b8ce9256ef5beda1273a7816f --- /dev/null +++ b/assets/micromark-util-classify-character-Cq7Fg3xE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-classify-character-Cq7Fg3xE.js","sources":["../../node_modules/micromark-util-classify-character/index.js"],"sourcesContent":["/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n"],"names":["classifyCharacter","code","markdownLineEndingOrSpace","unicodeWhitespace","unicodePunctuation"],"mappings":"oEAuBO,SAASA,EAAkBC,EAAM,CACtC,GACEA,IAAS,MACTC,EAA0BD,CAAI,GAC9BE,EAAkBF,CAAI,EAEtB,MAAO,GAET,GAAIG,EAAmBH,CAAI,EACzB,MAAO,EAEX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-combine-extensions-Bka6Sc1c.js b/assets/micromark-util-combine-extensions-Bka6Sc1c.js new file mode 100644 index 0000000000000000000000000000000000000000..142b98765d788a1e3d2d5a636d4eb3436e52073e --- /dev/null +++ b/assets/micromark-util-combine-extensions-Bka6Sc1c.js @@ -0,0 +1,2 @@ +import{s as f}from"./micromark-util-chunked-DrRIdSP-.js";const i={}.hasOwnProperty;function d(t){const e={};let n=-1;for(;++n} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * @param {Array} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n"],"names":["hasOwnProperty","combineExtensions","extensions","all","index","syntaxExtension","extension","hook","left","right","code","value","constructs","existing","list","before","splice"],"mappings":"yDASA,MAAMA,EAAiB,CAAA,EAAG,eAUnB,SAASC,EAAkBC,EAAY,CAE5C,MAAMC,EAAM,CAAA,EACZ,IAAIC,EAAQ,GAEZ,KAAO,EAAEA,EAAQF,EAAW,QAC1BG,EAAgBF,EAAKD,EAAWE,CAAK,CAAC,EAGxC,OAAOD,CACT,CAWA,SAASE,EAAgBF,EAAKG,EAAW,CAEvC,IAAIC,EAEJ,IAAKA,KAAQD,EAAW,CAGtB,MAAME,GAFQR,EAAe,KAAKG,EAAKI,CAAI,EAAIJ,EAAII,CAAI,EAAI,UAEpCJ,EAAII,CAAI,EAAI,CAAA,GAE7BE,EAAQH,EAAUC,CAAI,EAE5B,IAAIG,EAEJ,GAAID,EACF,IAAKC,KAAQD,EAAO,CACbT,EAAe,KAAKQ,EAAME,CAAI,IAAGF,EAAKE,CAAI,EAAI,CAAA,GACnD,MAAMC,EAAQF,EAAMC,CAAI,EACxBE,EAEEJ,EAAKE,CAAI,EACT,MAAM,QAAQC,CAAK,EAAIA,EAAQA,EAAQ,CAACA,CAAK,EAAI,CAAA,CAC3D,CACM,CAEJ,CACF,CAUA,SAASC,EAAWC,EAAUC,EAAM,CAClC,IAAIV,EAAQ,GAEZ,MAAMW,EAAS,CAAA,EAEf,KAAO,EAAEX,EAAQU,EAAK,SAElBA,EAAKV,CAAK,EAAE,MAAQ,QAAUS,EAAWE,GAAQ,KAAKD,EAAKV,CAAK,CAAC,EAGrEY,EAAOH,EAAU,EAAG,EAAGE,CAAM,CAC/B","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js b/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js new file mode 100644 index 0000000000000000000000000000000000000000..c01ef2246fe9675e8ccf1377bcd9ff882bf4cbef --- /dev/null +++ b/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js @@ -0,0 +1,2 @@ +function t(r,n){const e=Number.parseInt(r,n);return e<9||e===11||e>13&&e<32||e>126&&e<160||e>55295&&e<57344||e>64975&&e<65008||(e&65535)===65535||(e&65535)===65534||e>1114111?"�":String.fromCharCode(e)}export{t as d}; +//# sourceMappingURL=micromark-util-decode-numeric-character-reference-DRnCnno4.js.map diff --git a/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js.map b/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js.map new file mode 100644 index 0000000000000000000000000000000000000000..37237214f055991d0b49eb43b0e395c47b1819bb --- /dev/null +++ b/assets/micromark-util-decode-numeric-character-reference-DRnCnno4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-decode-numeric-character-reference-DRnCnno4.js","sources":["../../node_modules/micromark-util-decode-numeric-character-reference/index.js"],"sourcesContent":["/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n"],"names":["decodeNumericCharacterReference","value","base","code"],"mappings":"AAcO,SAASA,EAAgCC,EAAOC,EAAM,CAC3D,MAAMC,EAAO,OAAO,SAASF,EAAOC,CAAI,EACxC,OAEEC,EAAO,GACPA,IAAS,IACRA,EAAO,IAAMA,EAAO,IAEpBA,EAAO,KAAOA,EAAO,KAErBA,EAAO,OAASA,EAAO,OAEvBA,EAAO,OAASA,EAAO,QACvBA,EAAO,SAAW,QAClBA,EAAO,SAAW,OAEnBA,EAAO,QAEA,IAEF,OAAO,aAAaA,CAAI,CACjC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-decode-string-DJl8Y_PO.js b/assets/micromark-util-decode-string-DJl8Y_PO.js new file mode 100644 index 0000000000000000000000000000000000000000..d72c59b6bb21081620d862fdc8a71776d9749836 --- /dev/null +++ b/assets/micromark-util-decode-string-DJl8Y_PO.js @@ -0,0 +1,2 @@ +import{d as t}from"./decode-named-character-reference-C3-224fz.js";import{d as o}from"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";const n=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function u(r){return r.replace(n,f)}function f(r,c,e){if(c)return c;if(e.charCodeAt(0)===35){const d=e.charCodeAt(1),a=d===120||d===88;return o(e.slice(a?2:1),a?16:10)}return t(e)||r}export{u as d}; +//# sourceMappingURL=micromark-util-decode-string-DJl8Y_PO.js.map diff --git a/assets/micromark-util-decode-string-DJl8Y_PO.js.map b/assets/micromark-util-decode-string-DJl8Y_PO.js.map new file mode 100644 index 0000000000000000000000000000000000000000..d267d31f1be7245826cef89800feb2bf402bd9d1 --- /dev/null +++ b/assets/micromark-util-decode-string-DJl8Y_PO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-decode-string-DJl8Y_PO.js","sources":["../../node_modules/micromark-util-decode-string/index.js"],"sourcesContent":["import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n"],"names":["characterEscapeOrReference","decodeString","value","decode","$0","$1","$2","head","hex","decodeNumericCharacterReference","decodeNamedCharacterReference"],"mappings":"uJAEA,MAAMA,EACJ,oEAcK,SAASC,EAAaC,EAAO,CAClC,OAAOA,EAAM,QAAQF,EAA4BG,CAAM,CACzD,CAQA,SAASA,EAAOC,EAAIC,EAAIC,EAAI,CAC1B,GAAID,EAEF,OAAOA,EAKT,GADaC,EAAG,WAAW,CAAC,IACf,GAAI,CACf,MAAMC,EAAOD,EAAG,WAAW,CAAC,EACtBE,EAAMD,IAAS,KAAOA,IAAS,GACrC,OAAOE,EAAgCH,EAAG,MAAME,EAAM,EAAI,CAAC,EAAGA,EAAM,GAAK,EAAE,CAC7E,CACA,OAAOE,EAA8BJ,CAAE,GAAKF,CAC9C","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-html-tag-name-DbKNfynz.js b/assets/micromark-util-html-tag-name-DbKNfynz.js new file mode 100644 index 0000000000000000000000000000000000000000..1f3807049b628463bb4adf6ee436b743f3d9c45c --- /dev/null +++ b/assets/micromark-util-html-tag-name-DbKNfynz.js @@ -0,0 +1,2 @@ +const e=["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"],t=["pre","script","style","textarea"];export{e as a,t as h}; +//# sourceMappingURL=micromark-util-html-tag-name-DbKNfynz.js.map diff --git a/assets/micromark-util-html-tag-name-DbKNfynz.js.map b/assets/micromark-util-html-tag-name-DbKNfynz.js.map new file mode 100644 index 0000000000000000000000000000000000000000..d9e15bc9d8460d9d7ef2e1b7a970607497f98f95 --- /dev/null +++ b/assets/micromark-util-html-tag-name-DbKNfynz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-html-tag-name-DbKNfynz.js","sources":["../../node_modules/micromark-util-html-tag-name/index.js"],"sourcesContent":["/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * .\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n"],"names":["htmlBlockNames","htmlRawNames"],"mappings":"AAeY,MAACA,EAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,IACF,EAcaC,EAAe,CAAC,MAAO,SAAU,QAAS,UAAU","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-normalize-identifier-C9ANKk3v.js b/assets/micromark-util-normalize-identifier-C9ANKk3v.js new file mode 100644 index 0000000000000000000000000000000000000000..0ed634797afd32723251da0a2340c33707f481b8 --- /dev/null +++ b/assets/micromark-util-normalize-identifier-C9ANKk3v.js @@ -0,0 +1,2 @@ +function r(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}export{r as n}; +//# sourceMappingURL=micromark-util-normalize-identifier-C9ANKk3v.js.map diff --git a/assets/micromark-util-normalize-identifier-C9ANKk3v.js.map b/assets/micromark-util-normalize-identifier-C9ANKk3v.js.map new file mode 100644 index 0000000000000000000000000000000000000000..3d16759113e3043ad101e7d1234457a4e4c87778 --- /dev/null +++ b/assets/micromark-util-normalize-identifier-C9ANKk3v.js.map @@ -0,0 +1 @@ +{"version":3,"file":"micromark-util-normalize-identifier-C9ANKk3v.js","sources":["../../node_modules/micromark-util-normalize-identifier/index.js"],"sourcesContent":["/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n"],"names":["normalizeIdentifier","value"],"mappings":"AAmBO,SAASA,EAAoBC,EAAO,CACzC,OACEA,EAEG,QAAQ,cAAe,GAAG,EAE1B,QAAQ,SAAU,EAAE,EAOpB,YAAW,EACX,YAAW,CAElB","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-resolve-all-PQCKh0dx.js b/assets/micromark-util-resolve-all-PQCKh0dx.js new file mode 100644 index 0000000000000000000000000000000000000000..74c58cdab872913a35fa1ce5c9358bb82344bd4b --- /dev/null +++ b/assets/micromark-util-resolve-all-PQCKh0dx.js @@ -0,0 +1,2 @@ +function s(o,e,n){const r=[];let i=-1;for(;++i} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n"],"names":["resolveAll","constructs","events","context","called","index","resolve"],"mappings":"AAkBO,SAASA,EAAWC,EAAYC,EAAQC,EAAS,CAEtD,MAAMC,EAAS,CAAA,EACf,IAAIC,EAAQ,GAEZ,KAAO,EAAEA,EAAQJ,EAAW,QAAQ,CAClC,MAAMK,EAAUL,EAAWI,CAAK,EAAE,WAE9BC,GAAW,CAACF,EAAO,SAASE,CAAO,IACrCJ,EAASI,EAAQJ,EAAQC,CAAO,EAChCC,EAAO,KAAKE,CAAO,EAEvB,CAEA,OAAOJ,CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/micromark-util-subtokenize-QwsxNXk2.js b/assets/micromark-util-subtokenize-QwsxNXk2.js new file mode 100644 index 0000000000000000000000000000000000000000..fc92b2ca1943b852e982a2cb66ccd69a7692bea4 --- /dev/null +++ b/assets/micromark-util-subtokenize-QwsxNXk2.js @@ -0,0 +1,2 @@ +import{s as w}from"./micromark-util-chunked-DrRIdSP-.js";function I(l){const c={};let e=-1,p,r,n,o,f,s,u;for(;++e} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array} */\n let parameters\n /** @type {Array} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array} events\n * @param {number} eventIndex\n * @returns {Record}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record} */\n const gaps = {}\n /** @type {Array} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n"],"names":["subtokenize","events","jumps","index","event","lineIndex","otherIndex","otherEvent","parameters","subevents","more","subcontent","splice","eventIndex","token","context","startPosition","startPositions","tokenizer","childEvents","gaps","stream","previous","current","adjust","start","breaks","slice"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/octokit-B6bKu3NB.js b/assets/octokit-B6bKu3NB.js new file mode 100644 index 0000000000000000000000000000000000000000..00d02d9969abfd6ddd307104af2ae89ab9e5bfad --- /dev/null +++ b/assets/octokit-B6bKu3NB.js @@ -0,0 +1,2 @@ +import{O as a,r as n,p as o,a as u,b as s,t as i}from"./@octokit-MBEWYTsi.js";var d="0.0.0-development",c=a.plugin(n,o,u,s,i).defaults({userAgent:`octokit.js/${d}`,throttle:{onRateLimit:f,onSecondaryRateLimit:g}});function f(r,e,t){if(t.log.warn(`Request quota exhausted for request ${e.method} ${e.url}`),e.request.retryCount===0)return t.log.info(`Retrying after ${r} seconds!`),!0}function g(r,e,t){if(t.log.warn(`SecondaryRateLimit detected for request ${e.method} ${e.url}`),e.request.retryCount===0)return t.log.info(`Retrying after ${r} seconds!`),!0}export{c as O}; +//# sourceMappingURL=octokit-B6bKu3NB.js.map diff --git a/assets/octokit-B6bKu3NB.js.map b/assets/octokit-B6bKu3NB.js.map new file mode 100644 index 0000000000000000000000000000000000000000..31a5d1f6a0143affda62a77fb19e8e7a422324aa --- /dev/null +++ b/assets/octokit-B6bKu3NB.js.map @@ -0,0 +1 @@ +{"version":3,"file":"octokit-B6bKu3NB.js","sources":["../../node_modules/octokit/dist-bundle/index.js"],"sourcesContent":["// pkg/dist-src/octokit.js\nimport { Octokit as OctokitCore } from \"@octokit/core\";\nimport { paginateRest } from \"@octokit/plugin-paginate-rest\";\nimport { paginateGraphQL } from \"@octokit/plugin-paginate-graphql\";\nimport { restEndpointMethods } from \"@octokit/plugin-rest-endpoint-methods\";\nimport { retry } from \"@octokit/plugin-retry\";\nimport { throttling } from \"@octokit/plugin-throttling\";\n\n// pkg/dist-src/version.js\nvar VERSION = \"0.0.0-development\";\n\n// pkg/dist-src/octokit.js\nimport { RequestError } from \"@octokit/request-error\";\nvar Octokit = OctokitCore.plugin(\n restEndpointMethods,\n paginateRest,\n paginateGraphQL,\n retry,\n throttling\n).defaults({\n userAgent: `octokit.js/${VERSION}`,\n throttle: {\n onRateLimit,\n onSecondaryRateLimit\n }\n});\nfunction onRateLimit(retryAfter, options, octokit) {\n octokit.log.warn(\n `Request quota exhausted for request ${options.method} ${options.url}`\n );\n if (options.request.retryCount === 0) {\n octokit.log.info(`Retrying after ${retryAfter} seconds!`);\n return true;\n }\n}\nfunction onSecondaryRateLimit(retryAfter, options, octokit) {\n octokit.log.warn(\n `SecondaryRateLimit detected for request ${options.method} ${options.url}`\n );\n if (options.request.retryCount === 0) {\n octokit.log.info(`Retrying after ${retryAfter} seconds!`);\n return true;\n }\n}\n\n// pkg/dist-src/app.js\nimport { App as DefaultApp } from \"@octokit/app\";\nimport { OAuthApp as DefaultOAuthApp } from \"@octokit/oauth-app\";\nimport { createNodeMiddleware } from \"@octokit/app\";\nvar App = DefaultApp.defaults({ Octokit });\nvar OAuthApp = DefaultOAuthApp.defaults({ Octokit });\nexport {\n App,\n OAuthApp,\n Octokit,\n RequestError,\n createNodeMiddleware\n};\n"],"names":["VERSION","Octokit","OctokitCore","restEndpointMethods","paginateRest","paginateGraphQL","retry","throttling","onRateLimit","onSecondaryRateLimit","retryAfter","options","octokit"],"mappings":"8EASA,IAAIA,EAAU,oBAIVC,EAAUC,EAAY,OACxBC,EACAC,EACAC,EACAC,EACAC,CACF,EAAE,SAAS,CACT,UAAW,cAAcP,CAAO,GAChC,SAAU,CACR,YAAAQ,EACA,qBAAAC,CACJ,CACA,CAAC,EACD,SAASD,EAAYE,EAAYC,EAASC,EAAS,CAIjD,GAHAA,EAAQ,IAAI,KACV,uCAAuCD,EAAQ,MAAM,IAAIA,EAAQ,GAAG,EACxE,EACMA,EAAQ,QAAQ,aAAe,EACjC,OAAAC,EAAQ,IAAI,KAAK,kBAAkBF,CAAU,WAAW,EACjD,EAEX,CACA,SAASD,EAAqBC,EAAYC,EAASC,EAAS,CAI1D,GAHAA,EAAQ,IAAI,KACV,2CAA2CD,EAAQ,MAAM,IAAIA,EAAQ,GAAG,EAC5E,EACMA,EAAQ,QAAQ,aAAe,EACjC,OAAAC,EAAQ,IAAI,KAAK,kBAAkBF,CAAU,WAAW,EACjD,EAEX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/promptUtils-BE1ZWeM-.js b/assets/promptUtils-BE1ZWeM-.js new file mode 100644 index 0000000000000000000000000000000000000000..8b5fb35d825c45199b90e81750192309f764e733 --- /dev/null +++ b/assets/promptUtils-BE1ZWeM-.js @@ -0,0 +1,22 @@ +import{E as o}from"./index-CX7Qxd1D.js";const s=[{id:"1",name:"Default Reviewer",persona:"You are a senior software engineer performing a code review. You are meticulous, helpful, and provide constructive feedback.",rules:["Be clear and concise.","Provide code examples for suggestions.",'Explain the "why" behind your suggestions.'],outputFormat:"markdown",exampleIO:[]},{id:"2",name:"Sarcastic Senior Dev",persona:"You are a cynical, sarcastic, but brilliant senior software engineer. Your feedback is brutally honest and often humorous, but always technically correct.",rules:["Use a sarcastic tone.","Point out rookie mistakes without mercy.","Your code suggestions must be flawless."],outputFormat:"markdown",exampleIO:[{input:"I wrote this function: `function add(a,b){return a+b}`",output:"Wow, a function that adds two numbers. Groundbreaking. Did you consider that maybe, just maybe, you should add a semicolon at the end? `function add(a, b) { return a + b; };`"}]}],r=()=>{const[e,t]=o("devcore_ai_personalities",s);return[e,t]},u=e=>{if(!e)return"You are a helpful assistant.";let t=`**PERSONA:** +${e.persona} + +`;return e.rules&&e.rules.length>0&&(t+=`**RULES:** +${e.rules.map(a=>`- ${a}`).join(` +`)} + +`),e.outputFormat&&(t+=`**OUTPUT FORMAT:** +You must respond in ${e.outputFormat} format. + +`),e.exampleIO&&e.exampleIO.length>0&&(t+=`**EXAMPLES:** +`,e.exampleIO.forEach(a=>{a.input&&a.output&&(t+=`User Input: +\`\`\` +${a.input} +\`\`\` +`,t+=`Your Output: +\`\`\` +${a.output} +\`\`\` +--- +`)})),t.trim()};export{u as f,r as u}; +//# sourceMappingURL=promptUtils-BE1ZWeM-.js.map diff --git a/assets/promptUtils-BE1ZWeM-.js.map b/assets/promptUtils-BE1ZWeM-.js.map new file mode 100644 index 0000000000000000000000000000000000000000..ca0b594800da4670c630c16f70b625deef39fe63 --- /dev/null +++ b/assets/promptUtils-BE1ZWeM-.js.map @@ -0,0 +1 @@ +{"version":3,"file":"promptUtils-BE1ZWeM-.js","sources":["../../hooks/useAiPersonalities.ts","../../utils/promptUtils.ts"],"sourcesContent":["import { useLocalStorage } from './useLocalStorage.ts';\nimport type { SystemPrompt } from '../types.ts';\n\nconst defaultPersonalities: SystemPrompt[] = [\n {\n id: '1',\n name: 'Default Reviewer',\n persona: 'You are a senior software engineer performing a code review. You are meticulous, helpful, and provide constructive feedback.',\n rules: ['Be clear and concise.', 'Provide code examples for suggestions.', 'Explain the \"why\" behind your suggestions.'],\n outputFormat: 'markdown',\n exampleIO: []\n },\n {\n id: '2',\n name: 'Sarcastic Senior Dev',\n persona: 'You are a cynical, sarcastic, but brilliant senior software engineer. Your feedback is brutally honest and often humorous, but always technically correct.',\n rules: ['Use a sarcastic tone.', 'Point out rookie mistakes without mercy.', 'Your code suggestions must be flawless.'],\n outputFormat: 'markdown',\n exampleIO: [\n {\n input: 'I wrote this function: `function add(a,b){return a+b}`',\n output: 'Wow, a function that adds two numbers. Groundbreaking. Did you consider that maybe, just maybe, you should add a semicolon at the end? `function add(a, b) { return a + b; };`'\n }\n ]\n }\n];\n\n\n/**\n * A custom hook to access the list of saved AI personalities.\n * @returns An array of SystemPrompt objects.\n */\nexport const useAiPersonalities = (): [SystemPrompt[], (value: SystemPrompt[] | ((val: SystemPrompt[]) => SystemPrompt[])) => void] => {\n const [personalities, setPersonalities] = useLocalStorage('devcore_ai_personalities', defaultPersonalities);\n return [personalities, setPersonalities];\n};","import type { SystemPrompt } from '../types.ts';\n\n/**\n * Converts a structured SystemPrompt object into a single string\n * that can be used as the `systemInstruction` for the Gemini API.\n * @param prompt The SystemPrompt object.\n * @returns A formatted string representing the system prompt.\n */\nexport const formatSystemPromptToString = (prompt: SystemPrompt): string => {\n if (!prompt) return \"You are a helpful assistant.\";\n\n let instruction = `**PERSONA:**\\n${prompt.persona}\\n\\n`;\n\n if (prompt.rules && prompt.rules.length > 0) {\n instruction += `**RULES:**\\n${prompt.rules.map(rule => `- ${rule}`).join('\\n')}\\n\\n`;\n }\n\n if (prompt.outputFormat) {\n instruction += `**OUTPUT FORMAT:**\\nYou must respond in ${prompt.outputFormat} format.\\n\\n`;\n }\n\n if (prompt.exampleIO && prompt.exampleIO.length > 0) {\n instruction += `**EXAMPLES:**\\n`;\n prompt.exampleIO.forEach(ex => {\n if (ex.input && ex.output) {\n instruction += `User Input:\\n\\`\\`\\`\\n${ex.input}\\n\\`\\`\\`\\n`;\n instruction += `Your Output:\\n\\`\\`\\`\\n${ex.output}\\n\\`\\`\\`\\n---\\n`;\n }\n });\n }\n\n return instruction.trim();\n};"],"names":["defaultPersonalities","useAiPersonalities","personalities","setPersonalities","useLocalStorage","formatSystemPromptToString","prompt","instruction","rule","ex"],"mappings":"wCAGA,MAAMA,EAAuC,CACzC,CACI,GAAI,IACJ,KAAM,mBACN,QAAS,+HACT,MAAO,CAAC,wBAAyB,yCAA0C,4CAA4C,EACvH,aAAc,WACd,UAAW,CAAA,CAAC,EAEhB,CACI,GAAI,IACJ,KAAM,uBACN,QAAS,6JACT,MAAO,CAAC,wBAAyB,2CAA4C,yCAAyC,EACtH,aAAc,WACd,UAAW,CACP,CACI,MAAO,yDACP,OAAQ,gLAAA,CACZ,CACJ,CAER,EAOaC,EAAqB,IAAqG,CACnI,KAAM,CAACC,EAAeC,CAAgB,EAAIC,EAAgC,2BAA4BJ,CAAoB,EAC1H,MAAO,CAACE,EAAeC,CAAgB,CAC3C,EC3BaE,EAA8BC,GAAiC,CACxE,GAAI,CAACA,EAAQ,MAAO,+BAEpB,IAAIC,EAAc;AAAA,EAAiBD,EAAO,OAAO;AAAA;AAAA,EAEjD,OAAIA,EAAO,OAASA,EAAO,MAAM,OAAS,IACtCC,GAAe;AAAA,EAAeD,EAAO,MAAM,IAAIE,GAAQ,KAAKA,CAAI,EAAE,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,GAG9EF,EAAO,eACPC,GAAe;AAAA,sBAA2CD,EAAO,YAAY;AAAA;AAAA,GAG7EA,EAAO,WAAaA,EAAO,UAAU,OAAS,IAC9CC,GAAe;AAAA,EACfD,EAAO,UAAU,QAAQG,GAAM,CACvBA,EAAG,OAASA,EAAG,SACfF,GAAe;AAAA;AAAA,EAAwBE,EAAG,KAAK;AAAA;AAAA,EAC/CF,GAAe;AAAA;AAAA,EAAyBE,EAAG,MAAM;AAAA;AAAA;AAAA,EAEzD,CAAC,GAGEF,EAAY,KAAA,CACvB"} \ No newline at end of file diff --git a/assets/react-CIdJ77ke.js b/assets/react-CIdJ77ke.js new file mode 100644 index 0000000000000000000000000000000000000000..d490e6e76d8173c263f9f18dcfcb46dc1cdd9155 --- /dev/null +++ b/assets/react-CIdJ77ke.js @@ -0,0 +1,18 @@ +import{g as re}from"./@braintree-DzxiOROe.js";var F={exports:{}},S={},L={exports:{}},r={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var W;function ne(){if(W)return r;W=1;var d=Symbol.for("react.element"),b=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),O=Symbol.for("react.profiler"),P=Symbol.for("react.provider"),E=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),a=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),_=Symbol.iterator;function h(e){return e===null||typeof e!="object"?null:(e=_&&e[_]||e["@@iterator"],typeof e=="function"?e:null)}var R={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},U=Object.assign,A={};function v(e,t,n){this.props=e,this.context=t,this.refs=A,this.updater=n||R}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function N(){}N.prototype=v.prototype;function g(e,t,n){this.props=e,this.context=t,this.refs=A,this.updater=n||R}var q=g.prototype=new N;q.constructor=g,U(q,v.prototype),q.isPureReactComponent=!0;var V=Array.isArray,J=Object.prototype.hasOwnProperty,I={current:null},M={key:!0,ref:!0,__self:!0,__source:!0};function B(e,t,n){var o,u={},c=null,f=null;if(t!=null)for(o in t.ref!==void 0&&(f=t.ref),t.key!==void 0&&(c=""+t.key),t)J.call(t,o)&&!M.hasOwnProperty(o)&&(u[o]=t[o]);var s=arguments.length-2;if(s===1)u.children=n;else if(1=0||(o[t]=r[t]);return o}function C(r){var e=v.useRef(r),t=v.useRef(function(n){e.current&&e.current(n)});return e.current=r,t.current}var b=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r0:h.buttons>0)&&o.current?a(R(o.current,h,u.current)):x(!1)},q=function(){return x(!1)};function x(h){var f=d.current,g=M(o.current),m=h?g.addEventListener:g.removeEventListener;m(f?"touchmove":"mousemove",S),m(f?"touchend":"mouseup",q)}return[function(h){var f=h.nativeEvent,g=o.current;if(g&&(O(f),!(function(T,B){return B&&!_(T)})(f,d.current)&&g)){if(_(f)){d.current=!0;var m=f.changedTouches||[];m.length&&(u.current=m[0].identifier)}g.focus(),a(R(g,f,u.current)),x(!0)}},function(h){var f=h.which||h.keyCode;f<37||f>40||(h.preventDefault(),c({left:f===39?.05:f===37?-.05:0,top:f===40?.05:f===38?-.05:0}))},x]},[c,a]),p=l[0],y=l[1],I=l[2];return v.useEffect(function(){return I},[I]),s.createElement("div",E({},n,{onTouchStart:p,onMouseDown:p,className:"react-colorful__interactive",ref:o,onKeyDown:y,tabIndex:0,role:"slider"}))}),H=function(r){return r.filter(Boolean).join(" ")},K=function(r){var e=r.color,t=r.left,n=r.top,o=n===void 0?.5:n,a=H(["react-colorful__pointer",r.className]);return s.createElement("div",{className:a,style:{top:100*o+"%",left:100*t+"%"}},s.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},i=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t},X=function(r){return J(k(r))},k=function(r){return r[0]==="#"&&(r=r.substring(1)),r.length<6?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?i(parseInt(r[3]+r[3],16)/255,2):1}:{r:parseInt(r.substring(0,2),16),g:parseInt(r.substring(2,4),16),b:parseInt(r.substring(4,6),16),a:r.length===8?i(parseInt(r.substring(6,8),16)/255,2):1}},Y=function(r){return F(A(r))},V=function(r){var e=r.s,t=r.v,n=r.a,o=(200-e)*t/100;return{h:i(r.h),s:i(o>0&&o<200?e*t/100/(o<=100?o:200-o)*100:0),l:i(o/2),a:i(n,2)}},N=function(r){var e=V(r);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},A=function(r){var e=r.h,t=r.s,n=r.v,o=r.a;e=e/360*6,t/=100,n/=100;var a=Math.floor(e),c=n*(1-t),u=n*(1-(e-a)*t),d=n*(1-(1-e+a)*t),l=a%6;return{r:i(255*[n,u,c,c,d,n][l]),g:i(255*[d,n,n,u,c,c][l]),b:i(255*[c,c,d,n,n,u][l]),a:i(o,2)}},w=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},F=function(r){var e=r.r,t=r.g,n=r.b,o=r.a,a=o<1?w(i(255*o)):"";return"#"+w(e)+w(t)+w(n)+a},J=function(r){var e=r.r,t=r.g,n=r.b,o=r.a,a=Math.max(e,t,n),c=a-Math.min(e,t,n),u=c?a===e?(t-n)/c:a===t?2+(n-e)/c:4+(e-t)/c:0;return{h:i(60*(u<0?u+6:u)),s:i(a?c/a*100:0),v:i(a/255*100),a:o}},P=s.memo(function(r){var e=r.hue,t=r.onChange,n=H(["react-colorful__hue",r.className]);return s.createElement("div",{className:n},s.createElement(L,{onMove:function(o){t({h:360*o.left})},onKey:function(o){t({h:b(e+360*o.left,0,360)})},"aria-label":"Hue","aria-valuenow":i(e),"aria-valuemax":"360","aria-valuemin":"0"},s.createElement(K,{className:"react-colorful__hue-pointer",left:e/360,color:N({h:e,s:100,v:100,a:1})})))}),Q=s.memo(function(r){var e=r.hsva,t=r.onChange,n={backgroundColor:N({h:e.h,s:100,v:100,a:1})};return s.createElement("div",{className:"react-colorful__saturation",style:n},s.createElement(L,{onMove:function(o){t({s:100*o.left,v:100-100*o.top})},onKey:function(o){t({s:b(e.s+100*o.left,0,100),v:b(e.v-100*o.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+i(e.s)+"%, Brightness "+i(e.v)+"%"},s.createElement(K,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:N(e)})))}),j=function(r,e){if(r===e)return!0;for(var t in r)if(r[t]!==e[t])return!1;return!0},U=function(r,e){return r.toLowerCase()===e.toLowerCase()||j(k(r),k(e))};function W(r,e,t){var n=C(t),o=v.useState(function(){return r.toHsva(e)}),a=o[0],c=o[1],u=v.useRef({color:e,hsva:a});v.useEffect(function(){if(!r.equal(e,u.current.color)){var l=r.toHsva(e);u.current={hsva:l,color:e},c(l)}},[e,r]),v.useEffect(function(){var l;j(a,u.current.hsva)||r.equal(l=r.fromHsva(a),u.current.color)||(u.current={hsva:a,color:l},n(l))},[a,r,n]);var d=v.useCallback(function(l){c(function(p){return Object.assign({},p,l)})},[]);return[a,d]}var Z=typeof window<"u"?v.useLayoutEffect:v.useEffect,$=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},z=new Map,G=function(r){Z(function(){var e=r.current?r.current.ownerDocument:document;if(e!==void 0&&!z.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,z.set(e,t);var n=$();n&&t.setAttribute("nonce",n),e.head.appendChild(t)}},[])},rr=function(r){var e=r.className,t=r.colorModel,n=r.color,o=n===void 0?t.defaultColor:n,a=r.onChange,c=D(r,["className","colorModel","color","onChange"]),u=v.useRef(null);G(u);var d=W(t,o,a),l=d[0],p=d[1],y=H(["react-colorful",e]);return s.createElement("div",E({},c,{ref:u,className:y}),s.createElement(Q,{hsva:l,onChange:p}),s.createElement(P,{hue:l.h,onChange:p,className:"react-colorful__last-control"}))},er={defaultColor:"000",toHsva:X,fromHsva:function(r){return Y({h:r.h,s:r.s,v:r.v,a:1})},equal:U},nr=function(r){return s.createElement(rr,E({},r,{colorModel:er}))};export{nr as Z}; +//# sourceMappingURL=react-colorful-vLUrq4A0.js.map diff --git a/assets/react-colorful-vLUrq4A0.js.map b/assets/react-colorful-vLUrq4A0.js.map new file mode 100644 index 0000000000000000000000000000000000000000..7ff9bbc2c1537cf5919bca4376883e389b43e5bc --- /dev/null +++ b/assets/react-colorful-vLUrq4A0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-colorful-vLUrq4A0.js","sources":["../../node_modules/react-colorful/dist/index.mjs"],"sourcesContent":["import e,{useRef as r,useMemo as t,useEffect as n,useState as o,useCallback as a,useLayoutEffect as l}from\"react\";function u(){return(u=Object.assign||function(e){for(var r=1;r=0||(o[t]=e[t]);return o}function i(e){var t=r(e),n=r(function(e){t.current&&t.current(e)});return t.current=e,n.current}var s=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=1),e>t?t:e0:e.buttons>0)&&m.current?g(d(m.current,e,b.current)):t(!1)},r=function(){return t(!1)};function t(t){var n=_.current,o=v(m.current),a=t?o.addEventListener:o.removeEventListener;a(n?\"touchmove\":\"mousemove\",e),a(n?\"touchend\":\"mouseup\",r)}return[function(e){var r=e.nativeEvent,n=m.current;if(n&&(h(r),!function(e,r){return r&&!f(e)}(r,_.current)&&n)){if(f(r)){_.current=!0;var o=r.changedTouches||[];o.length&&(b.current=o[0].identifier)}n.focus(),g(d(n,r,b.current)),t(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),p({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},t]},[p,g]),C=x[0],E=x[1],H=x[2];return n(function(){return H},[H]),e.createElement(\"div\",u({},s,{onTouchStart:C,onMouseDown:C,className:\"react-colorful__interactive\",ref:m,onKeyDown:E,tabIndex:0,role:\"slider\"}))}),g=function(e){return e.filter(Boolean).join(\" \")},p=function(r){var t=r.color,n=r.left,o=r.top,a=void 0===o?.5:o,l=g([\"react-colorful__pointer\",r.className]);return e.createElement(\"div\",{className:l,style:{top:100*a+\"%\",left:100*n+\"%\"}},e.createElement(\"div\",{className:\"react-colorful__pointer-fill\",style:{backgroundColor:t}}))},b=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=Math.pow(10,r)),Math.round(t*e)/t},_={grad:.9,turn:360,rad:360/(2*Math.PI)},x=function(e){return L(C(e))},C=function(e){return\"#\"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?b(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?b(parseInt(e.substring(6,8),16)/255,2):1}},E=function(e,r){return void 0===r&&(r=\"deg\"),Number(e)*(_[r]||1)},H=function(e){var r=/hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?N({h:E(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},M=H,N=function(e){var r=e.s,t=e.l;return{h:e.h,s:(r*=(t<50?t:100-t)/100)>0?2*r/(t+r)*100:0,v:t+r,a:e.a}},w=function(e){return K(I(e))},y=function(e){var r=e.s,t=e.v,n=e.a,o=(200-r)*t/100;return{h:b(e.h),s:b(o>0&&o<200?r*t/100/(o<=100?o:200-o)*100:0),l:b(o/2),a:b(n,2)}},q=function(e){var r=y(e);return\"hsl(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%)\"},k=function(e){var r=y(e);return\"hsla(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%, \"+r.a+\")\"},I=function(e){var r=e.h,t=e.s,n=e.v,o=e.a;r=r/360*6,t/=100,n/=100;var a=Math.floor(r),l=n*(1-t),u=n*(1-(r-a)*t),c=n*(1-(1-r+a)*t),i=a%6;return{r:b(255*[n,u,l,l,c,n][i]),g:b(255*[c,n,n,u,l,l][i]),b:b(255*[l,l,c,n,n,u][i]),a:b(o,2)}},O=function(e){var r=/hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?A({h:E(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},j=O,z=function(e){var r=/rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?L({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=z,D=function(e){var r=e.toString(16);return r.length<2?\"0\"+r:r},K=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=o<1?D(b(255*o)):\"\";return\"#\"+D(r)+D(t)+D(n)+a},L=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=Math.max(r,t,n),l=a-Math.min(r,t,n),u=l?a===r?(t-n)/l:a===t?2+(n-r)/l:4+(r-t)/l:0;return{h:b(60*(u<0?u+6:u)),s:b(a?l/a*100:0),v:b(a/255*100),a:o}},A=function(e){return{h:b(e.h),s:b(e.s),v:b(e.v),a:b(e.a,2)}},S=e.memo(function(r){var t=r.hue,n=r.onChange,o=g([\"react-colorful__hue\",r.className]);return e.createElement(\"div\",{className:o},e.createElement(m,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:s(t+360*e.left,0,360)})},\"aria-label\":\"Hue\",\"aria-valuenow\":b(t),\"aria-valuemax\":\"360\",\"aria-valuemin\":\"0\"},e.createElement(p,{className:\"react-colorful__hue-pointer\",left:t/360,color:q({h:t,s:100,v:100,a:1})})))}),T=e.memo(function(r){var t=r.hsva,n=r.onChange,o={backgroundColor:q({h:t.h,s:100,v:100,a:1})};return e.createElement(\"div\",{className:\"react-colorful__saturation\",style:o},e.createElement(m,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:s(t.s+100*e.left,0,100),v:s(t.v-100*e.top,0,100)})},\"aria-label\":\"Color\",\"aria-valuetext\":\"Saturation \"+b(t.s)+\"%, Brightness \"+b(t.v)+\"%\"},e.createElement(p,{className:\"react-colorful__saturation-pointer\",top:1-t.v/100,left:t.s/100,color:q(t)})))}),F=function(e,r){if(e===r)return!0;for(var t in e)if(e[t]!==r[t])return!1;return!0},P=function(e,r){return e.replace(/\\s/g,\"\")===r.replace(/\\s/g,\"\")},X=function(e,r){return e.toLowerCase()===r.toLowerCase()||F(C(e),C(r))};function Y(e,t,l){var u=i(l),c=o(function(){return e.toHsva(t)}),s=c[0],f=c[1],v=r({color:t,hsva:s});n(function(){if(!e.equal(t,v.current.color)){var r=e.toHsva(t);v.current={hsva:r,color:t},f(r)}},[t,e]),n(function(){var r;F(s,v.current.hsva)||e.equal(r=e.fromHsva(s),v.current.color)||(v.current={hsva:s,color:r},u(r))},[s,e,u]);var d=a(function(e){f(function(r){return Object.assign({},r,e)})},[]);return[s,d]}var R,V=\"undefined\"!=typeof window?l:n,$=function(){return R||(\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0)},G=function(e){R=e},J=new Map,Q=function(e){V(function(){var r=e.current?e.current.ownerDocument:document;if(void 0!==r&&!J.has(r)){var t=r.createElement(\"style\");t.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\\'data:image/svg+xml;charset=utf-8,\\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}',J.set(r,t);var n=$();n&&t.setAttribute(\"nonce\",n),r.head.appendChild(t)}},[])},U=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=c(t,[\"className\",\"colorModel\",\"color\",\"onChange\"]),f=r(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=g([\"react-colorful\",n]);return e.createElement(\"div\",u({},s,{ref:f,className:m}),e.createElement(T,{hsva:d,onChange:h}),e.createElement(S,{hue:d.h,onChange:h,className:\"react-colorful__last-control\"}))},W={defaultColor:\"000\",toHsva:x,fromHsva:function(e){return w({h:e.h,s:e.s,v:e.v,a:1})},equal:X},Z=function(r){return e.createElement(U,u({},r,{colorModel:W}))},ee=function(r){var t=r.className,n=r.hsva,o=r.onChange,a={backgroundImage:\"linear-gradient(90deg, \"+k(Object.assign({},n,{a:0}))+\", \"+k(Object.assign({},n,{a:1}))+\")\"},l=g([\"react-colorful__alpha\",t]),u=b(100*n.a);return e.createElement(\"div\",{className:l},e.createElement(\"div\",{className:\"react-colorful__alpha-gradient\",style:a}),e.createElement(m,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:s(n.a+e.left)})},\"aria-label\":\"Alpha\",\"aria-valuetext\":u+\"%\",\"aria-valuenow\":u,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},e.createElement(p,{className:\"react-colorful__alpha-pointer\",left:n.a,color:k(n)})))},re=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=c(t,[\"className\",\"colorModel\",\"color\",\"onChange\"]),f=r(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=g([\"react-colorful\",n]);return e.createElement(\"div\",u({},s,{ref:f,className:m}),e.createElement(T,{hsva:d,onChange:h}),e.createElement(S,{hue:d.h,onChange:h}),e.createElement(ee,{hsva:d,onChange:h,className:\"react-colorful__last-control\"}))},te={defaultColor:\"0001\",toHsva:x,fromHsva:w,equal:X},ne=function(r){return e.createElement(re,u({},r,{colorModel:te}))},oe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:N,fromHsva:y,equal:F},ae=function(r){return e.createElement(re,u({},r,{colorModel:oe}))},le={defaultColor:\"hsla(0, 0%, 0%, 1)\",toHsva:H,fromHsva:k,equal:P},ue=function(r){return e.createElement(re,u({},r,{colorModel:le}))},ce={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return N({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=y(e)).h,s:r.s,l:r.l};var r},equal:F},ie=function(r){return e.createElement(U,u({},r,{colorModel:ce}))},se={defaultColor:\"hsl(0, 0%, 0%)\",toHsva:M,fromHsva:q,equal:P},fe=function(r){return e.createElement(U,u({},r,{colorModel:se}))},ve={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:A,equal:F},de=function(r){return e.createElement(re,u({},r,{colorModel:ve}))},he={defaultColor:\"hsva(0, 0%, 0%, 1)\",toHsva:O,fromHsva:function(e){var r=A(e);return\"hsva(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%, \"+r.a+\")\"},equal:P},me=function(r){return e.createElement(re,u({},r,{colorModel:he}))},ge={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=A(e);return{h:r.h,s:r.s,v:r.v}},equal:F},pe=function(r){return e.createElement(U,u({},r,{colorModel:ge}))},be={defaultColor:\"hsv(0, 0%, 0%)\",toHsva:j,fromHsva:function(e){var r=A(e);return\"hsv(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%)\"},equal:P},_e=function(r){return e.createElement(U,u({},r,{colorModel:be}))},xe={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L,fromHsva:I,equal:F},Ce=function(r){return e.createElement(re,u({},r,{colorModel:xe}))},Ee={defaultColor:\"rgba(0, 0, 0, 1)\",toHsva:z,fromHsva:function(e){var r=I(e);return\"rgba(\"+r.r+\", \"+r.g+\", \"+r.b+\", \"+r.a+\")\"},equal:P},He=function(r){return e.createElement(re,u({},r,{colorModel:Ee}))},Me={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return L({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=I(e)).r,g:r.g,b:r.b};var r},equal:F},Ne=function(r){return e.createElement(U,u({},r,{colorModel:Me}))},we={defaultColor:\"rgb(0, 0, 0)\",toHsva:B,fromHsva:function(e){var r=I(e);return\"rgb(\"+r.r+\", \"+r.g+\", \"+r.b+\")\"},equal:P},ye=function(r){return e.createElement(U,u({},r,{colorModel:we}))},qe=/^#?([0-9A-F]{3,8})$/i,ke=function(r){var t=r.color,l=void 0===t?\"\":t,s=r.onChange,f=r.onBlur,v=r.escape,d=r.validate,h=r.format,m=r.process,g=c(r,[\"color\",\"onChange\",\"onBlur\",\"escape\",\"validate\",\"format\",\"process\"]),p=o(function(){return v(l)}),b=p[0],_=p[1],x=i(s),C=i(f),E=a(function(e){var r=v(e.target.value);_(r),d(r)&&x(m?m(r):r)},[v,m,d,x]),H=a(function(e){d(e.target.value)||_(v(l)),C(e)},[l,v,d,C]);return n(function(){_(v(l))},[l,v]),e.createElement(\"input\",u({},g,{value:h?h(b):b,spellCheck:\"false\",onChange:E,onBlur:H}))},Ie=function(e){return\"#\"+e},Oe=function(r){var t=r.prefixed,n=r.alpha,o=c(r,[\"prefixed\",\"alpha\"]),l=a(function(e){return e.replace(/([^0-9A-F]+)/gi,\"\").substring(0,n?8:6)},[n]),i=a(function(e){return function(e,r){var t=qe.exec(e),n=t?t[1].length:0;return 3===n||6===n||!!r&&4===n||!!r&&8===n}(e,n)},[n]);return e.createElement(ke,u({},o,{escape:l,format:t?Ie:void 0,process:Ie,validate:i}))};export{ne as HexAlphaColorPicker,Oe as HexColorInput,Z as HexColorPicker,ie as HslColorPicker,fe as HslStringColorPicker,ae as HslaColorPicker,ue as HslaStringColorPicker,pe as HsvColorPicker,_e as HsvStringColorPicker,de as HsvaColorPicker,me as HsvaStringColorPicker,Ne as RgbColorPicker,ye as RgbStringColorPicker,Ce as RgbaColorPicker,He as RgbaStringColorPicker,G as setNonce};\n//# sourceMappingURL=index.module.js.map\n"],"names":["u","e","r","c","i","t","n","s","f","v","d","h","m","o","a","l","g","p","b","_","x","C","E","H","L","w","K","I","y","q","D","S","T","F","X","Y","V","J","Q","U","W","Z"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/react-dom-R9L8nDNe.js b/assets/react-dom-R9L8nDNe.js new file mode 100644 index 0000000000000000000000000000000000000000..504159f860eb9c4a36f3a5054d63299d74471d54 --- /dev/null +++ b/assets/react-dom-R9L8nDNe.js @@ -0,0 +1,17 @@ +import{g as hc}from"./@braintree-DzxiOROe.js";import{a as vc}from"./react-CIdJ77ke.js";import{r as gc}from"./scheduler-CoSDG3-6.js";var Zr={},li={exports:{}},oe={};/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var sa;function yc(){if(sa)return oe;sa=1;var ot=vc(),q=gc();function v(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Jr=Object.prototype.hasOwnProperty,ca=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ii={},oi={};function da(e){return Jr.call(oi,e)?!0:Jr.call(ii,e)?!1:ca.test(e)?oi[e]=!0:(ii[e]=!0,!1)}function pa(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ma(e,t,n,r){if(t===null||typeof t>"u"||pa(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function b(e,t,n,r,l,u,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=i}var $={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){$[e]=new b(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];$[t]=new b(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){$[e]=new b(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){$[e]=new b(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){$[e]=new b(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){$[e]=new b(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){$[e]=new b(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){$[e]=new b(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){$[e]=new b(e,5,!1,e.toLowerCase(),null,!1,!1)});var qr=/[\-:]([a-z])/g;function br(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(qr,br);$[t]=new b(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(qr,br);$[t]=new b(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(qr,br);$[t]=new b(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){$[e]=new b(e,1,!1,e.toLowerCase(),null,!1,!1)}),$.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){$[e]=new b(e,1,!1,e.toLowerCase(),null,!0,!0)});function el(e,t,n,r){var l=$.hasOwnProperty(t)?$[t]:null;(l!==null?l.type!==0:r||!(2o||l[i]!==u[o]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=o);break}}}finally{sl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?qt(e):""}function ha(e){switch(e.tag){case 5:return qt(e.type);case 16:return qt("Lazy");case 13:return qt("Suspense");case 19:return qt("SuspenseList");case 0:case 2:case 15:return e=al(e.type,!1),e;case 11:return e=al(e.type.render,!1),e;case 1:return e=al(e.type,!0),e;default:return""}}function fl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case xt:return"Fragment";case Ct:return"Portal";case nl:return"Profiler";case tl:return"StrictMode";case ll:return"Suspense";case ul:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ai:return(e.displayName||"Context")+".Consumer";case si:return(e._context.displayName||"Context")+".Provider";case rl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case il:return t=e.displayName||null,t!==null?t:fl(e.type)||"Memo";case Ae:t=e._payload,e=e._init;try{return fl(e(t))}catch{}}return null}function va(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return fl(t);case 8:return t===tl?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Be(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function di(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ga(e){var t=di(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,u.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function An(e){e._valueTracker||(e._valueTracker=ga(e))}function pi(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=di(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Bn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function cl(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function mi(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Be(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hi(e,t){t=t.checked,t!=null&&el(e,"checked",t,!1)}function dl(e,t){hi(e,t);var n=Be(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?pl(e,t.type,n):t.hasOwnProperty("defaultValue")&&pl(e,t.type,Be(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function vi(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function pl(e,t,n){(t!=="number"||Bn(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var bt=Array.isArray;function Nt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Hn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function en(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var tn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ya=["Webkit","ms","Moz","O"];Object.keys(tn).forEach(function(e){ya.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),tn[t]=tn[e]})});function Ei(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||tn.hasOwnProperty(e)&&tn[e]?(""+t).trim():t+"px"}function Ci(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Ei(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var wa=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vl(e,t){if(t){if(wa[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(v(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(v(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(v(61))}if(t.style!=null&&typeof t.style!="object")throw Error(v(62))}}function gl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var yl=null;function wl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Sl=null,zt=null,Pt=null;function xi(e){if(e=xn(e)){if(typeof Sl!="function")throw Error(v(280));var t=e.stateNode;t&&(t=cr(t),Sl(e.stateNode,e.type,t))}}function Ni(e){zt?Pt?Pt.push(e):Pt=[e]:zt=e}function zi(){if(zt){var e=zt,t=Pt;if(Pt=zt=null,xi(e),t)for(e=0;e>>=0,e===0?32:31-(Ta(e)/Ra|0)|0}var Yn=64,Xn=4194304;function un(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Gn(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,i=n&268435455;if(i!==0){var o=i&~l;o!==0?r=un(o):(u&=i,u!==0&&(r=un(u)))}else i=n&~l,i!==0?r=un(i):u!==0&&(r=un(u));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function on(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ye(t),e[t]=n}function Fa(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=hn),eo=" ",to=!1;function no(e,t){switch(e){case"keyup":return ff.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ro(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Tt=!1;function df(e,t){switch(e){case"compositionend":return ro(t);case"keypress":return t.which!==32?null:(to=!0,eo);case"textInput":return e=t.data,e===eo&&to?null:e;default:return null}}function pf(e,t){if(Tt)return e==="compositionend"||!Ul&&no(e,t)?(e=Xi(),er=Dl=Ke=null,Tt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=fo(n)}}function po(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?po(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function mo(){for(var e=window,t=Bn();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Bn(e.document)}return t}function Bl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ef(e){var t=mo(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&po(n.ownerDocument.documentElement,n)){if(r!==null&&Bl(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=co(n,u);var i=co(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Rt=null,Hl=null,wn=null,Ql=!1;function ho(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ql||Rt==null||Rt!==Bn(r)||(r=Rt,"selectionStart"in r&&Bl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),wn&&yn(wn,r)||(wn=r,r=sr(Hl,"onSelect"),0It||(e.current=tu[It],tu[It]=null,It--)}function L(e,t){It++,tu[It]=e.current,e.current=t}var Ze={},X=Ge(Ze),ne=Ge(!1),ct=Ze;function jt(e,t){var n=e.type.contextTypes;if(!n)return Ze;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function re(e){return e=e.childContextTypes,e!=null}function dr(){R(ne),R(X)}function To(e,t,n){if(X.current!==Ze)throw Error(v(168));L(X,t),L(ne,n)}function Ro(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(v(108,va(e)||"Unknown",l));return M({},n,r)}function pr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ze,ct=X.current,L(X,e),L(ne,ne.current),!0}function Do(e,t,n){var r=e.stateNode;if(!r)throw Error(v(169));n?(e=Ro(e,t,ct),r.__reactInternalMemoizedMergedChildContext=e,R(ne),R(X),L(X,e)):R(ne),L(ne,n)}var Me=null,mr=!1,nu=!1;function Mo(e){Me===null?Me=[e]:Me.push(e)}function Of(e){mr=!0,Mo(e)}function Je(){if(!nu&&Me!==null){nu=!0;var e=0,t=_;try{var n=Me;for(_=1;e>=i,l-=i,Oe=1<<32-ye(t)+l|n<N?(W=x,x=null):W=x.sibling;var P=p(f,x,c[N],g);if(P===null){x===null&&(x=W);break}e&&x&&P.alternate===null&&t(f,x),a=u(P,a,N),C===null?E=P:C.sibling=P,C=P,x=W}if(N===c.length)return n(f,x),D&&pt(f,N),E;if(x===null){for(;NN?(W=x,x=null):W=x.sibling;var it=p(f,x,P.value,g);if(it===null){x===null&&(x=W);break}e&&x&&it.alternate===null&&t(f,x),a=u(it,a,N),C===null?E=it:C.sibling=it,C=it,x=W}if(P.done)return n(f,x),D&&pt(f,N),E;if(x===null){for(;!P.done;N++,P=c.next())P=h(f,P.value,g),P!==null&&(a=u(P,a,N),C===null?E=P:C.sibling=P,C=P);return D&&pt(f,N),E}for(x=r(f,x);!P.done;N++,P=c.next())P=y(x,f,N,P.value,g),P!==null&&(e&&P.alternate!==null&&x.delete(P.key===null?N:P.key),a=u(P,a,N),C===null?E=P:C.sibling=P,C=P);return e&&x.forEach(function(mc){return t(f,mc)}),D&&pt(f,N),E}function U(f,a,c,g){if(typeof c=="object"&&c!==null&&c.type===xt&&c.key===null&&(c=c.props.children),typeof c=="object"&&c!==null){switch(c.$$typeof){case Vn:e:{for(var E=c.key,C=a;C!==null;){if(C.key===E){if(E=c.type,E===xt){if(C.tag===7){n(f,C.sibling),a=l(C,c.props.children),a.return=f,f=a;break e}}else if(C.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Ae&&Vo(E)===C.type){n(f,C.sibling),a=l(C,c.props),a.ref=Nn(f,C,c),a.return=f,f=a;break e}n(f,C);break}else t(f,C);C=C.sibling}c.type===xt?(a=kt(c.props.children,f.mode,g,c.key),a.return=f,f=a):(g=Hr(c.type,c.key,c.props,null,f.mode,g),g.ref=Nn(f,a,c),g.return=f,f=g)}return i(f);case Ct:e:{for(C=c.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===c.containerInfo&&a.stateNode.implementation===c.implementation){n(f,a.sibling),a=l(a,c.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=bu(c,f.mode,g),a.return=f,f=a}return i(f);case Ae:return C=c._init,U(f,a,C(c._payload),g)}if(bt(c))return S(f,a,c,g);if(Jt(c))return k(f,a,c,g);yr(f,c)}return typeof c=="string"&&c!==""||typeof c=="number"?(c=""+c,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,c),a.return=f,f=a):(n(f,a),a=qu(c,f.mode,g),a.return=f,f=a),i(f)):n(f,a)}return U}var Bt=Ao(!0),Bo=Ao(!1),wr=Ge(null),Sr=null,Ht=null,su=null;function au(){su=Ht=Sr=null}function fu(e){var t=wr.current;R(wr),e._currentValue=t}function cu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Qt(e,t){Sr=e,su=Ht=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(le=!0),e.firstContext=null)}function me(e){var t=e._currentValue;if(su!==e)if(e={context:e,memoizedValue:t,next:null},Ht===null){if(Sr===null)throw Error(v(308));Ht=e,Sr.dependencies={lanes:0,firstContext:e}}else Ht=Ht.next=e;return t}var mt=null;function du(e){mt===null?mt=[e]:mt.push(e)}function Ho(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,du(t)):(n.next=l.next,l.next=n),t.interleaved=n,Ie(e,r)}function Ie(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var qe=!1;function pu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Qo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function je(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function be(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(z&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Ie(e,n)}return l=r.interleaved,l===null?(t.next=t,du(r)):(t.next=l.next,l.next=t),r.interleaved=t,Ie(e,n)}function kr(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Pl(e,n)}}function Wo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=i:u=u.next=i,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Er(e,t,n,r){var l=e.updateQueue;qe=!1;var u=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var s=o,d=s.next;s.next=null,i===null?u=d:i.next=d,i=s;var m=e.alternate;m!==null&&(m=m.updateQueue,o=m.lastBaseUpdate,o!==i&&(o===null?m.firstBaseUpdate=d:o.next=d,m.lastBaseUpdate=s))}if(u!==null){var h=l.baseState;i=0,m=d=s=null,o=u;do{var p=o.lane,y=o.eventTime;if((r&p)===p){m!==null&&(m=m.next={eventTime:y,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var S=e,k=o;switch(p=t,y=n,k.tag){case 1:if(S=k.payload,typeof S=="function"){h=S.call(y,h,p);break e}h=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=k.payload,p=typeof S=="function"?S.call(y,h,p):S,p==null)break e;h=M({},h,p);break e;case 2:qe=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[o]:p.push(o))}else y={eventTime:y,lane:p,tag:o.tag,payload:o.payload,callback:o.callback,next:null},m===null?(d=m=y,s=h):m=m.next=y,i|=p;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;p=o,o=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(m===null&&(s=h),l.baseState=s,l.firstBaseUpdate=d,l.lastBaseUpdate=m,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);gt|=i,e.lanes=i,e.memoizedState=h}}function $o(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=yu.transition;yu.transition={};try{e(!1),t()}finally{_=n,yu.transition=r}}function fs(){return he().memoizedState}function Uf(e,t,n){var r=rt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},cs(e))ds(t,n);else if(n=Ho(e,t,n,r),n!==null){var l=te();xe(n,e,r,l),ps(n,t,r)}}function Vf(e,t,n){var r=rt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(cs(e))ds(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,o=u(i,n);if(l.hasEagerState=!0,l.eagerState=o,we(o,i)){var s=t.interleaved;s===null?(l.next=l,du(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Ho(e,t,l,r),n!==null&&(l=te(),xe(n,e,r,l),ps(n,t,r))}}function cs(e){var t=e.alternate;return e===F||t!==null&&t===F}function ds(e,t){Ln=Nr=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ps(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Pl(e,n)}}var _r={readContext:me,useCallback:G,useContext:G,useEffect:G,useImperativeHandle:G,useInsertionEffect:G,useLayoutEffect:G,useMemo:G,useReducer:G,useRef:G,useState:G,useDebugValue:G,useDeferredValue:G,useTransition:G,useMutableSource:G,useSyncExternalStore:G,useId:G,unstable_isNewReconciler:!1},Af={readContext:me,useCallback:function(e,t){return _e().memoizedState=[e,t===void 0?null:t],e},useContext:me,useEffect:ns,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,zr(4194308,4,us.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zr(4194308,4,e,t)},useInsertionEffect:function(e,t){return zr(4,2,e,t)},useMemo:function(e,t){var n=_e();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=_e();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Uf.bind(null,F,e),[r.memoizedState,e]},useRef:function(e){var t=_e();return e={current:e},t.memoizedState=e},useState:es,useDebugValue:Nu,useDeferredValue:function(e){return _e().memoizedState=e},useTransition:function(){var e=es(!1),t=e[0];return e=jf.bind(null,e[1]),_e().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=F,l=_e();if(D){if(n===void 0)throw Error(v(407));n=n()}else{if(n=t(),Q===null)throw Error(v(349));(vt&30)!==0||Go(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,ns(Jo.bind(null,r,u,e),[e]),r.flags|=2048,Dn(9,Zo.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=_e(),t=Q.identifierPrefix;if(D){var n=Fe,r=Oe;n=(r&~(1<<32-ye(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Tn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[ze]=t,e[Cn]=r,Ms(e,t,!1,!1),t.stateNode=e;e:{switch(i=gl(n,r),n){case"dialog":T("cancel",e),T("close",e),l=r;break;case"iframe":case"object":case"embed":T("load",e),l=r;break;case"video":case"audio":for(l=0;lXt&&(t.flags|=128,r=!0,Mn(u,!1),t.lanes=4194304)}else{if(!r)if(e=Cr(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Mn(u,!0),u.tail===null&&u.tailMode==="hidden"&&!i.alternate&&!D)return Z(t),null}else 2*j()-u.renderingStartTime>Xt&&n!==1073741824&&(t.flags|=128,r=!0,Mn(u,!1),t.lanes=4194304);u.isBackwards?(i.sibling=t.child,t.child=i):(n=u.last,n!==null?n.sibling=i:t.child=i,u.last=i)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=j(),t.sibling=null,n=O.current,L(O,r?n&1|2:n&1),t):(Z(t),null);case 22:case 23:return Gu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(ce&1073741824)!==0&&(Z(t),t.subtreeFlags&6&&(t.flags|=8192)):Z(t),null;case 24:return null;case 25:return null}throw Error(v(156,t.tag))}function Xf(e,t){switch(lu(t),t.tag){case 1:return re(t.type)&&dr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wt(),R(ne),R(X),gu(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return hu(t),null;case 13:if(R(O),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(v(340));At()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return R(O),null;case 4:return Wt(),null;case 10:return fu(t.type._context),null;case 22:case 23:return Gu(),null;case 24:return null;default:return null}}var Dr=!1,J=!1,Gf=typeof WeakSet=="function"?WeakSet:Set,w=null;function Kt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){I(e,t,r)}else n.current=null}function ju(e,t,n){try{n()}catch(r){I(e,t,r)}}var Is=!1;function Zf(e,t){if(Gl=qn,e=mo(),Bl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var i=0,o=-1,s=-1,d=0,m=0,h=e,p=null;t:for(;;){for(var y;h!==n||l!==0&&h.nodeType!==3||(o=i+l),h!==u||r!==0&&h.nodeType!==3||(s=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(y=h.firstChild)!==null;)p=h,h=y;for(;;){if(h===e)break t;if(p===n&&++d===l&&(o=i),p===u&&++m===r&&(s=i),(y=h.nextSibling)!==null)break;h=p,p=h.parentNode}h=y}n=o===-1||s===-1?null:{start:o,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Zl={focusedElem:e,selectionRange:n},qn=!1,w=t;w!==null;)if(t=w,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,w=e;else for(;w!==null;){t=w;try{var S=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var k=S.memoizedProps,U=S.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?k:ke(t.type,k),U);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var c=t.stateNode.containerInfo;c.nodeType===1?c.textContent="":c.nodeType===9&&c.documentElement&&c.removeChild(c.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(v(163))}}catch(g){I(t,t.return,g)}if(e=t.sibling,e!==null){e.return=t.return,w=e;break}w=t.return}return S=Is,Is=!1,S}function On(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&ju(t,n,u)}l=l.next}while(l!==r)}}function Mr(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Uu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function js(e){var t=e.alternate;t!==null&&(e.alternate=null,js(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ze],delete t[Cn],delete t[eu],delete t[Df],delete t[Mf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Us(e){return e.tag===5||e.tag===3||e.tag===4}function Vs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Us(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=fr));else if(r!==4&&(e=e.child,e!==null))for(Vu(e,t,n),e=e.sibling;e!==null;)Vu(e,t,n),e=e.sibling}function Au(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Au(e,t,n),e=e.sibling;e!==null;)Au(e,t,n),e=e.sibling}var K=null,Ee=!1;function et(e,t,n){for(n=n.child;n!==null;)As(e,t,n),n=n.sibling}function As(e,t,n){if(Ne&&typeof Ne.onCommitFiberUnmount=="function")try{Ne.onCommitFiberUnmount(Kn,n)}catch{}switch(n.tag){case 5:J||Kt(n,t);case 6:var r=K,l=Ee;K=null,et(e,t,n),K=r,Ee=l,K!==null&&(Ee?(e=K,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):K.removeChild(n.stateNode));break;case 18:K!==null&&(Ee?(e=K,n=n.stateNode,e.nodeType===8?bl(e.parentNode,n):e.nodeType===1&&bl(e,n),dn(e)):bl(K,n.stateNode));break;case 4:r=K,l=Ee,K=n.stateNode.containerInfo,Ee=!0,et(e,t,n),K=r,Ee=l;break;case 0:case 11:case 14:case 15:if(!J&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,i=u.destroy;u=u.tag,i!==void 0&&((u&2)!==0||(u&4)!==0)&&ju(n,t,i),l=l.next}while(l!==r)}et(e,t,n);break;case 1:if(!J&&(Kt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){I(n,t,o)}et(e,t,n);break;case 21:et(e,t,n);break;case 22:n.mode&1?(J=(r=J)||n.memoizedState!==null,et(e,t,n),J=r):et(e,t,n);break;default:et(e,t,n)}}function Bs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Gf),t.forEach(function(r){var l=uc.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ce(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~u}if(r=l,r=j()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*qf(r/1960))-r,10e?16:e,nt===null)var r=!1;else{if(e=nt,nt=null,Ur=0,(z&6)!==0)throw Error(v(331));var l=z;for(z|=4,w=e.current;w!==null;){var u=w,i=u.child;if((w.flags&16)!==0){var o=u.deletions;if(o!==null){for(var s=0;sj()-Qu?wt(e,0):Hu|=n),ie(e,t)}function ea(e,t){t===0&&((e.mode&1)===0?t=1:(t=Xn,Xn<<=1,(Xn&130023424)===0&&(Xn=4194304)));var n=te();e=Ie(e,t),e!==null&&(on(e,t,n),ie(e,n))}function lc(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ea(e,n)}function uc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(v(314))}r!==null&&r.delete(t),ea(e,n)}var ta;ta=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ne.current)le=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return le=!1,Kf(e,t,n);le=(e.flags&131072)!==0}else le=!1,D&&(t.flags&1048576)!==0&&Oo(t,vr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Rr(e,t),e=t.pendingProps;var l=jt(t,X.current);Qt(t,n),l=Su(null,t,r,e,l,n);var u=ku();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,re(r)?(u=!0,pr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,pu(t),l.updater=Lr,t.stateNode=l,l._reactInternals=t,Pu(t,r,e,n),t=Ru(null,t,r,!0,u,n)):(t.tag=0,D&&u&&ru(t),ee(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Rr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=oc(r),e=ke(r,e),l){case 0:t=Tu(null,t,r,e,n);break e;case 1:t=Ps(null,t,r,e,n);break e;case 11:t=Es(null,t,r,e,n);break e;case 14:t=Cs(null,t,r,ke(r.type,e),n);break e}throw Error(v(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ke(r,l),Tu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ke(r,l),Ps(e,t,r,l,n);case 3:e:{if(_s(t),e===null)throw Error(v(387));r=t.pendingProps,u=t.memoizedState,l=u.element,Qo(e,t),Er(t,r,null,n);var i=t.memoizedState;if(r=i.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=$t(Error(v(423)),t),t=Ls(e,t,r,n,l);break e}else if(r!==l){l=$t(Error(v(424)),t),t=Ls(e,t,r,n,l);break e}else for(fe=Xe(t.stateNode.containerInfo.firstChild),ae=t,D=!0,Se=null,n=Bo(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(At(),r===l){t=Ue(e,t,n);break e}ee(e,t,r,n)}t=t.child}return t;case 5:return Ko(t),e===null&&iu(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,i=l.children,Jl(r,l)?i=null:u!==null&&Jl(r,u)&&(t.flags|=32),zs(e,t),ee(e,t,i,n),t.child;case 6:return e===null&&iu(t),null;case 13:return Ts(e,t,n);case 4:return mu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Bt(t,null,r,n):ee(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ke(r,l),Es(e,t,r,l,n);case 7:return ee(e,t,t.pendingProps,n),t.child;case 8:return ee(e,t,t.pendingProps.children,n),t.child;case 12:return ee(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,i=l.value,L(wr,r._currentValue),r._currentValue=i,u!==null)if(we(u.value,i)){if(u.children===l.children&&!ne.current){t=Ue(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var o=u.dependencies;if(o!==null){i=u.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=je(-1,n&-n),s.tag=2;var d=u.updateQueue;if(d!==null){d=d.shared;var m=d.pending;m===null?s.next=s:(s.next=m.next,m.next=s),d.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),cu(u.return,n,t),o.lanes|=n;break}s=s.next}}else if(u.tag===10)i=u.type===t.type?null:u.child;else if(u.tag===18){if(i=u.return,i===null)throw Error(v(341));i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),cu(i,n,t),i=u.sibling}else i=u.child;if(i!==null)i.return=u;else for(i=u;i!==null;){if(i===t){i=null;break}if(u=i.sibling,u!==null){u.return=i.return,i=u;break}i=i.return}u=i}ee(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Qt(t,n),l=me(l),r=r(l),t.flags|=1,ee(e,t,r,n),t.child;case 14:return r=t.type,l=ke(r,t.pendingProps),l=ke(r.type,l),Cs(e,t,r,l,n);case 15:return xs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ke(r,l),Rr(e,t),t.tag=1,re(r)?(e=!0,pr(t)):e=!1,Qt(t,n),hs(t,r,l),Pu(t,r,l,n),Ru(null,t,r,!0,e,n);case 19:return Ds(e,t,n);case 22:return Ns(e,t,n)}throw Error(v(156,t.tag))};function na(e,t){return Oi(e,t)}function ic(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ge(e,t,n,r){return new ic(e,t,n,r)}function Ju(e){return e=e.prototype,!(!e||!e.isReactComponent)}function oc(e){if(typeof e=="function")return Ju(e)?1:0;if(e!=null){if(e=e.$$typeof,e===rl)return 11;if(e===il)return 14}return 2}function ut(e,t){var n=e.alternate;return n===null?(n=ge(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Hr(e,t,n,r,l,u){var i=2;if(r=e,typeof e=="function")Ju(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case xt:return kt(n.children,l,u,t);case tl:i=8,l|=8;break;case nl:return e=ge(12,n,t,l|2),e.elementType=nl,e.lanes=u,e;case ll:return e=ge(13,n,t,l),e.elementType=ll,e.lanes=u,e;case ul:return e=ge(19,n,t,l),e.elementType=ul,e.lanes=u,e;case fi:return Qr(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case si:i=10;break e;case ai:i=9;break e;case rl:i=11;break e;case il:i=14;break e;case Ae:i=16,r=null;break e}throw Error(v(130,e==null?e:typeof e,""))}return t=ge(i,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function kt(e,t,n,r){return e=ge(7,e,r,t),e.lanes=n,e}function Qr(e,t,n,r){return e=ge(22,e,r,t),e.elementType=fi,e.lanes=n,e.stateNode={isHidden:!1},e}function qu(e,t,n){return e=ge(6,e,null,t),e.lanes=n,e}function bu(e,t,n){return t=ge(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function sc(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zl(0),this.expirationTimes=zl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function ei(e,t,n,r,l,u,i,o,s){return e=new sc(e,t,n,o,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=ge(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},pu(u),e}function ac(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ot)}catch(q){console.error(q)}}return ot(),li.exports=yc(),li.exports}var fa;function Sc(){if(fa)return Zr;fa=1;var ot=wc();return Zr.createRoot=ot.createRoot,Zr.hydrateRoot=ot.hydrateRoot,Zr}var kc=Sc();const Nc=hc(kc);export{Nc as R}; +//# sourceMappingURL=react-dom-R9L8nDNe.js.map diff --git a/assets/react-dom-R9L8nDNe.js.map b/assets/react-dom-R9L8nDNe.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a4224739fcf0dfe9c3cf07f50aaece6204e80188 --- /dev/null +++ b/assets/react-dom-R9L8nDNe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-dom-R9L8nDNe.js","sources":["../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js"],"sourcesContent":["/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3>>1,u=e[l];if(0>>1;lg(R,t))dg(I,R)?(e[l]=I,e[d]=t,l=d):(e[l]=R,e[v]=t,l=v);else if(dg(I,t))e[l]=I,e[d]=t,l=d;else break e}}return n}function g(e,n){var t=e.sortIndex-n.sortIndex;return t!==0?t:e.id-n.id}if(typeof performance=="object"&&typeof performance.now=="function"){var O=performance;r.unstable_now=function(){return O.now()}}else{var N=Date,Q=N.now();r.unstable_now=function(){return N.now()-Q}}var f=[],c=[],U=1,a=null,i=3,m=!1,s=!1,b=!1,j=typeof setTimeout=="function"?setTimeout:null,B=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function T(e){for(var n=o(c);n!==null;){if(n.callback===null)_(c);else if(n.startTime<=e)_(c),n.sortIndex=n.expirationTime,P(f,n);else break;n=o(c)}}function E(e){if(b=!1,T(e),!s)if(o(f)!==null)s=!0,L(q);else{var n=o(c);n!==null&&M(E,n.startTime-e)}}function q(e,n){s=!1,b&&(b=!1,B(y),y=-1),m=!0;var t=i;try{for(T(n),a=o(f);a!==null&&(!(a.expirationTime>n)||e&&!G());){var l=a.callback;if(typeof l=="function"){a.callback=null,i=a.priorityLevel;var u=l(a.expirationTime<=n);n=r.unstable_now(),typeof u=="function"?a.callback=u:a===o(f)&&_(f),T(n)}else _(f);a=o(f)}if(a!==null)var w=!0;else{var v=o(c);v!==null&&M(E,v.startTime-n),w=!1}return w}finally{a=null,i=t,m=!1}}var k=!1,p=null,y=-1,z=5,A=-1;function G(){return!(r.unstable_now()-Ae||125l?(e.sortIndex=t,P(c,e),o(f)===null&&e===o(c)&&(b?(B(y),y=-1):b=!0,M(E,t-l))):(e.sortIndex=u,P(f,e),s||m||(s=!0,L(q))),e},r.unstable_shouldYield=G,r.unstable_wrapCallback=function(e){var n=i;return function(){var t=i;i=n;try{return e.apply(this,arguments)}finally{i=t}}}})(F)),F}var K;function V(){return K||(K=1,S.exports=Y()),S.exports}export{V as r}; +//# sourceMappingURL=scheduler-CoSDG3-6.js.map diff --git a/assets/scheduler-CoSDG3-6.js.map b/assets/scheduler-CoSDG3-6.js.map new file mode 100644 index 0000000000000000000000000000000000000000..50027982fa864236bad413d4786c394990cf62a8 --- /dev/null +++ b/assets/scheduler-CoSDG3-6.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduler-CoSDG3-6.js","sources":["../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js"],"sourcesContent":["/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n"],"names":["f","a","b","c","d","e","h","k","m","C","n","x","l","exports","p","q","r","t","u","v","y","z","A","B","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","schedulerModule","require$$0"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/assets/stylis-D5iaQeiq.js b/assets/stylis-D5iaQeiq.js new file mode 100644 index 0000000000000000000000000000000000000000..4354b54c81a5a00a126d50365cb6b3bc1a05c56b --- /dev/null +++ b/assets/stylis-D5iaQeiq.js @@ -0,0 +1,2 @@ +var V="comm",W="rule",X="decl",y="@import",rr="@namespace",er="@keyframes",ar="@layer",Z=Math.abs,B=String.fromCharCode;function _(r){return r.trim()}function Y(r,e,c){return r.replace(e,c)}function cr(r,e,c){return r.indexOf(e,c)}function S(r,e){return r.charCodeAt(e)|0}function T(r,e,c){return r.slice(e,c)}function l(r){return r.length}function nr(r){return r.length}function P(r,e){return e.push(r),r}var K=1,x=1,$=0,v=0,i=0,L="";function G(r,e,c,n,s,d,O,o){return{value:r,root:e,parent:c,type:n,props:s,children:d,line:K,column:x,length:O,return:"",siblings:o}}function ir(){return i}function tr(){return i=v>0?S(L,--v):0,x--,i===10&&(x=1,K--),i}function h(){return i=v<$?S(L,v++):0,x++,i===10&&(x=1,K++),i}function M(){return S(L,v)}function D(){return v}function U(r,e){return T(L,r,e)}function I(r){switch(r){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function sr(r){return K=x=1,$=l(L=r),v=0,[]}function ur(r){return L="",r}function j(r){return _(U(v-1,q(r===91?r+2:r===40?r+1:r)))}function fr(r){for(;(i=M())&&i<33;)h();return I(r)>2||I(i)>3?"":" "}function or(r,e){for(;--e&&h()&&!(i<48||i>102||i>57&&i<65||i>70&&i<97););return U(r,D()+(e<6&&M()==32&&h()==32))}function q(r){for(;h();)switch(i){case r:return v;case 34:case 39:r!==34&&r!==39&&q(i);break;case 40:r===41&&q(r);break;case 92:h();break}return v}function vr(r,e){for(;h()&&r+i!==57;)if(r+i===84&&M()===47)break;return"/*"+U(e,v-1)+"*"+B(r===47?r:h())}function hr(r){for(;!I(M());)h();return U(r,v)}function kr(r){return ur(F("",null,null,null,[""],r=sr(r),0,[0],r))}function F(r,e,c,n,s,d,O,o,E){for(var m=0,b=0,u=O,N=0,p=0,w=0,f=1,z=1,g=1,t=0,A="",R=s,C=d,k=n,a=A;z;)switch(w=t,t=h()){case 40:if(w!=108&&S(a,u-1)==58){cr(a+=Y(j(t),"&","&\f"),"&\f",Z(m?o[m-1]:0))!=-1&&(g=-1);break}case 34:case 39:case 91:a+=j(t);break;case 9:case 10:case 13:case 32:a+=fr(w);break;case 92:a+=or(D()-1,7);continue;case 47:switch(M()){case 42:case 47:P(br(vr(h(),D()),e,c,E),E),(I(w||1)==5||I(M()||1)==5)&&l(a)&&T(a,-1,void 0)!==" "&&(a+=" ");break;default:a+="/"}break;case 123*f:o[m++]=l(a)*g;case 125*f:case 59:case 0:switch(t){case 0:case 125:z=0;case 59+b:g==-1&&(a=Y(a,/\f/g,"")),p>0&&(l(a)-u||f===0&&w===47)&&P(p>32?J(a+";",n,c,u-1,E):J(Y(a," ","")+";",n,c,u-2,E),E);break;case 59:a+=";";default:if(P(k=H(a,e,c,m,b,s,o,A,R=[],C=[],u,d),d),t===123)if(b===0)F(a,e,k,k,R,d,u,o,C);else{switch(N){case 99:if(S(a,3)===110)break;case 108:if(S(a,2)===97)break;default:b=0;case 100:case 109:case 115:}b?F(r,k,k,n&&P(H(r,k,k,0,0,s,o,A,s,R=[],u,C),C),s,C,u,o,n?R:C):F(a,k,k,k,[""],C,0,o,C)}}m=b=p=0,f=g=1,A=a="",u=O;break;case 58:u=1+l(a),p=w;default:if(f<1){if(t==123)--f;else if(t==125&&f++==0&&tr()==125)continue}switch(a+=B(t),t*f){case 38:g=b>0?1:(a+="\f",-1);break;case 44:o[m++]=(l(a)-1)*g,g=1;break;case 64:M()===45&&(a+=j(h())),N=M(),b=u=l(A=a+=hr(D())),t++;break;case 45:w===45&&l(a)==2&&(f=0)}}return d}function H(r,e,c,n,s,d,O,o,E,m,b,u){for(var N=s-1,p=s===0?d:[""],w=nr(p),f=0,z=0,g=0;f0?p[t]+" "+A:Y(A,/&\f/g,p[t])))&&(E[g++]=R);return G(r,e,c,s===0?W:o,E,m,b,u)}function br(r,e,c,n){return G(r,e,c,V,B(ir()),T(r,2,-2),0,n)}function J(r,e,c,n,s){return G(r,e,c,X,T(r,0,n),T(r,n+1,-1),n,s)}function Q(r,e){for(var c="",n=0;n 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES, NAMESPACE} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case NAMESPACE: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n"],"names":["COMMENT","RULESET","DECLARATION","IMPORT","NAMESPACE","KEYFRAMES","LAYER","abs","from","trim","value","replace","pattern","replacement","indexof","search","position","charat","index","substr","begin","end","strlen","sizeof","append","array","line","column","length","character","characters","node","root","parent","type","props","children","siblings","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","serialize","callback","output","stringify","element"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/assets/taxonomyService-CBHwv5t5.js b/assets/taxonomyService-CBHwv5t5.js new file mode 100644 index 0000000000000000000000000000000000000000..6618ff29422089d02a6b2df740c6efd645059c7d --- /dev/null +++ b/assets/taxonomyService-CBHwv5t5.js @@ -0,0 +1,2 @@ +const e=[{id:"ai-command-center",name:"AI Command Center",description:"The main entry point. Use natural language to navigate and control the entire toolkit. Can call other tools.",category:"Core",inputs:"A natural language prompt describing what the user wants to do. Examples: 'explain this code: ...', 'design a theme with space vibes'."},{id:"workspace-connector-hub",name:"Workspace Connector Hub",description:"A central hub to execute actions on connected third-party services like Jira, Slack, GitHub, Vercel, and more. This is the primary tool for inter-service orchestration. The AI should use the 'runWorkspaceAction' function to interact with it.",category:"Workflow",inputs:"A natural language command describing a sequence of actions. Examples: 'create a jira ticket and post to slack', 'deploy the `dev` branch to vercel', 'summarize the last 5 commits and create a Confluence page'."},{id:"ai-code-explainer",name:"AI Code Explainer",description:"Accepts a code snippet and provides a detailed, structured analysis including summary, line-by-line breakdown, complexity, suggestions, and a visual flowchart.",category:"AI Tools",inputs:"A string containing a code snippet."},{id:"theme-designer",name:"AI Theme Designer",description:"Generates a complete UI color theme, including a semantic palette and accessibility scores, from a simple text description or an uploaded image.",category:"AI Tools",inputs:"A string describing the desired aesthetic (e.g., 'a calm, minimalist theme for a blog') or an image file."},{id:"regex-sandbox",name:"RegEx Sandbox",description:"Generates a regular expression from a natural language description. Also allows testing expressions against a string.",category:"Testing",inputs:"A string describing the pattern to match. Example: 'find all email addresses'."},{id:"ai-pull-request-assistant",name:"AI Pull Request Assistant",description:"Takes 'before' and 'after' code snippets, calculates the diff, generates a structured pull request summary (title, description, changes), and populates a full PR template.",category:"AI Tools",inputs:"Two strings: 'beforeCode' and 'afterCode'."},{id:"visual-git-tree",name:"AI Git Log Analyzer",description:"Intelligently parses a raw 'git log' output to create a categorized and well-formatted changelog, separating new features from bug fixes.",category:"Git",inputs:"A string containing the raw output of a 'git log' command."},{id:"cron-job-builder",name:"AI Cron Job Builder",description:"Generates a valid cron expression from a natural language description of a schedule.",category:"Deployment",inputs:"A string describing a schedule. Example: 'every weekday at 5pm'."},{id:"ai-code-migrator",name:"AI Code Migrator",description:"Translate code between languages & frameworks.",category:"AI Tools",inputs:"A string of code to convert, a string for the source language, and a string for the target language. e.g. 'migrate this SASS to CSS: ...'"},{id:"ai-commit-generator",name:"AI Commit Message Generator",description:"Generates a conventional commit message from a git diff.",category:"AI Tools",inputs:"A string containing a git diff."},{id:"worker-thread-debugger",name:"AI Concurrency Analyzer",description:"Analyzes JavaScript code for potential Web Worker concurrency issues like race conditions.",category:"Testing",inputs:"A string of JavaScript code to analyze for concurrency issues."},{id:"xbrl-converter",name:"XBRL Converter",description:"Converts a JSON object into a simplified XBRL-like XML format.",category:"Data",inputs:"A string containing valid JSON."},{id:"api-mock-generator",name:"API Mock Server",description:"Generates mock API data from a description and serves it locally using a service worker.",category:"Local Dev",inputs:"A text description of a data schema (e.g., 'a user with id, name, and email')."},{id:"env-manager",name:".env Manager",description:"A graphical interface for creating and managing .env files.",category:"Local Dev",inputs:"Key-value pairs for environment variables."},{id:"performance-profiler",name:"AI Performance Profiler",description:"Analyze runtime performance traces and bundle stats to get AI-powered optimization advice.",category:"Performance & Auditing",inputs:"Runtime performance data or pasted bundle statistics JSON."},{id:"a11y-auditor",name:"Accessibility Auditor",description:"Audit a live URL for accessibility issues and get AI-powered suggestions for fixes.",category:"Performance & Auditing",inputs:"A URL to a website or web application."},{id:"ci-cd-generator",name:"AI CI/CD Pipeline Architect",description:"Generate CI/CD configuration files (e.g., GitHub Actions YAML) from a natural language description.",category:"Deployment & CI/CD",inputs:"A text description of deployment stages (e.g., 'install, test, build, deploy')."},{id:"deployment-preview",name:"Static Deployment Previewer",description:"See a live preview of files generated by the AI Feature Builder as if they were statically deployed.",category:"Deployment & CI/CD",inputs:"Files stored in the app's local database from the AI Feature Builder."},{id:"security-scanner",name:"AI Security Scanner",description:"Perform static analysis on code snippets to find common vulnerabilities and get AI-driven mitigation advice.",category:"Security",inputs:"A string containing a code snippet."},{id:"gmail-addon-simulator",name:"Gmail Add-on Simulator",description:"A simulation of how this app could use contextual Gmail Add-on scopes to read the current email and compose replies with AI assistance.",category:"Productivity",inputs:"A mock email context. No user input required to launch the simulation."},{id:"iam-policy-visualizer",name:"GCP IAM Policy Visualizer",description:"Visually test what a user can and cannot do across a set of Google Cloud resources.",category:"Cloud",inputs:"A list of full GCP resource names and a list of permission strings to test."}];export{e as F}; +//# sourceMappingURL=taxonomyService-CBHwv5t5.js.map diff --git a/assets/taxonomyService-CBHwv5t5.js.map b/assets/taxonomyService-CBHwv5t5.js.map new file mode 100644 index 0000000000000000000000000000000000000000..4ea3fd62dc33506a578d89d94a7648f76c998a03 --- /dev/null +++ b/assets/taxonomyService-CBHwv5t5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"taxonomyService-CBHwv5t5.js","sources":["../../services/taxonomyService.ts"],"sourcesContent":["export interface FeatureTaxonomy {\n id: string;\n name: string;\n description: string;\n category: string;\n inputs: string;\n}\n\nexport const FEATURE_TAXONOMY: FeatureTaxonomy[] = [\n {\n id: \"ai-command-center\",\n name: \"AI Command Center\",\n description: \"The main entry point. Use natural language to navigate and control the entire toolkit. Can call other tools.\",\n category: \"Core\",\n inputs: \"A natural language prompt describing what the user wants to do. Examples: 'explain this code: ...', 'design a theme with space vibes'.\"\n },\n {\n id: \"workspace-connector-hub\",\n name: \"Workspace Connector Hub\",\n description: \"A central hub to execute actions on connected third-party services like Jira, Slack, GitHub, Vercel, and more. This is the primary tool for inter-service orchestration. The AI should use the 'runWorkspaceAction' function to interact with it.\",\n category: \"Workflow\",\n inputs: \"A natural language command describing a sequence of actions. Examples: 'create a jira ticket and post to slack', 'deploy the `dev` branch to vercel', 'summarize the last 5 commits and create a Confluence page'.\"\n },\n {\n id: \"ai-code-explainer\",\n name: \"AI Code Explainer\",\n description: \"Accepts a code snippet and provides a detailed, structured analysis including summary, line-by-line breakdown, complexity, suggestions, and a visual flowchart.\",\n category: \"AI Tools\",\n inputs: \"A string containing a code snippet.\"\n },\n {\n id: \"theme-designer\",\n name: \"AI Theme Designer\",\n description: \"Generates a complete UI color theme, including a semantic palette and accessibility scores, from a simple text description or an uploaded image.\",\n category: \"AI Tools\",\n inputs: \"A string describing the desired aesthetic (e.g., 'a calm, minimalist theme for a blog') or an image file.\"\n },\n {\n id: \"regex-sandbox\",\n name: \"RegEx Sandbox\",\n description: \"Generates a regular expression from a natural language description. Also allows testing expressions against a string.\",\n category: \"Testing\",\n inputs: \"A string describing the pattern to match. Example: 'find all email addresses'.\"\n },\n {\n id: \"ai-pull-request-assistant\",\n name: \"AI Pull Request Assistant\",\n description: \"Takes 'before' and 'after' code snippets, calculates the diff, generates a structured pull request summary (title, description, changes), and populates a full PR template.\",\n category: \"AI Tools\",\n inputs: \"Two strings: 'beforeCode' and 'afterCode'.\"\n },\n {\n id: \"visual-git-tree\",\n name: \"AI Git Log Analyzer\",\n description: \"Intelligently parses a raw 'git log' output to create a categorized and well-formatted changelog, separating new features from bug fixes.\",\n category: \"Git\",\n inputs: \"A string containing the raw output of a 'git log' command.\"\n },\n {\n id: \"cron-job-builder\",\n name: \"AI Cron Job Builder\",\n description: \"Generates a valid cron expression from a natural language description of a schedule.\",\n category: \"Deployment\",\n inputs: \"A string describing a schedule. Example: 'every weekday at 5pm'.\"\n },\n {\n id: \"ai-code-migrator\",\n name: \"AI Code Migrator\",\n description: \"Translate code between languages & frameworks.\",\n category: \"AI Tools\",\n inputs: \"A string of code to convert, a string for the source language, and a string for the target language. e.g. 'migrate this SASS to CSS: ...'\"\n },\n {\n id: \"ai-commit-generator\",\n name: \"AI Commit Message Generator\",\n description: \"Generates a conventional commit message from a git diff.\",\n category: \"AI Tools\",\n inputs: \"A string containing a git diff.\"\n },\n {\n id: \"worker-thread-debugger\",\n name: \"AI Concurrency Analyzer\",\n description: \"Analyzes JavaScript code for potential Web Worker concurrency issues like race conditions.\",\n category: \"Testing\",\n inputs: \"A string of JavaScript code to analyze for concurrency issues.\"\n },\n {\n id: \"xbrl-converter\",\n name: \"XBRL Converter\",\n description: \"Converts a JSON object into a simplified XBRL-like XML format.\",\n category: \"Data\",\n inputs: \"A string containing valid JSON.\"\n },\n {\n id: \"api-mock-generator\",\n name: \"API Mock Server\",\n description: \"Generates mock API data from a description and serves it locally using a service worker.\",\n category: \"Local Dev\",\n inputs: \"A text description of a data schema (e.g., 'a user with id, name, and email').\"\n },\n {\n id: \"env-manager\",\n name: \".env Manager\",\n description: \"A graphical interface for creating and managing .env files.\",\n category: \"Local Dev\",\n inputs: \"Key-value pairs for environment variables.\"\n },\n {\n id: \"performance-profiler\",\n name: \"AI Performance Profiler\",\n description: \"Analyze runtime performance traces and bundle stats to get AI-powered optimization advice.\",\n category: \"Performance & Auditing\",\n inputs: \"Runtime performance data or pasted bundle statistics JSON.\"\n },\n {\n id: \"a11y-auditor\",\n name: \"Accessibility Auditor\",\n description: \"Audit a live URL for accessibility issues and get AI-powered suggestions for fixes.\",\n category: \"Performance & Auditing\",\n inputs: \"A URL to a website or web application.\"\n },\n {\n id: \"ci-cd-generator\",\n name: \"AI CI/CD Pipeline Architect\",\n description: \"Generate CI/CD configuration files (e.g., GitHub Actions YAML) from a natural language description.\",\n category: \"Deployment & CI/CD\",\n inputs: \"A text description of deployment stages (e.g., 'install, test, build, deploy').\"\n },\n {\n id: \"deployment-preview\",\n name: \"Static Deployment Previewer\",\n description: \"See a live preview of files generated by the AI Feature Builder as if they were statically deployed.\",\n category: \"Deployment & CI/CD\",\n inputs: \"Files stored in the app's local database from the AI Feature Builder.\"\n },\n {\n id: \"security-scanner\",\n name: \"AI Security Scanner\",\n description: \"Perform static analysis on code snippets to find common vulnerabilities and get AI-driven mitigation advice.\",\n category: \"Security\",\n inputs: \"A string containing a code snippet.\"\n },\n {\n id: \"gmail-addon-simulator\",\n name: \"Gmail Add-on Simulator\",\n description: \"A simulation of how this app could use contextual Gmail Add-on scopes to read the current email and compose replies with AI assistance.\",\n category: \"Productivity\",\n inputs: \"A mock email context. No user input required to launch the simulation.\"\n },\n {\n id: \"iam-policy-visualizer\",\n name: \"GCP IAM Policy Visualizer\",\n description: \"Visually test what a user can and cannot do across a set of Google Cloud resources.\",\n category: \"Cloud\",\n inputs: \"A list of full GCP resource names and a list of permission strings to test.\"\n }\n];"],"names":["FEATURE_TAXONOMY"],"mappings":"AAQO,MAAMA,EAAsC,CAC/C,CACI,GAAI,oBACJ,KAAM,oBACN,YAAa,+GACb,SAAU,OACV,OAAQ,wIAAA,EAEZ,CACI,GAAI,0BACJ,KAAM,0BACN,YAAa,oPACb,SAAU,WACV,OAAQ,oNAAA,EAEZ,CACI,GAAI,oBACJ,KAAM,oBACN,YAAa,kKACb,SAAU,WACV,OAAQ,qCAAA,EAEZ,CACI,GAAI,iBACJ,KAAM,oBACN,YAAa,mJACb,SAAU,WACV,OAAQ,2GAAA,EAEZ,CACI,GAAI,gBACJ,KAAM,gBACN,YAAa,wHACb,SAAU,UACV,OAAQ,gFAAA,EAEZ,CACI,GAAI,4BACJ,KAAM,4BACN,YAAa,8KACb,SAAU,WACV,OAAQ,4CAAA,EAEX,CACG,GAAI,kBACJ,KAAM,sBACN,YAAa,4IACb,SAAU,MACV,OAAQ,4DAAA,EAEZ,CACI,GAAI,mBACJ,KAAM,sBACN,YAAa,uFACb,SAAU,aACV,OAAQ,kEAAA,EAEZ,CACI,GAAI,mBACJ,KAAM,mBACN,YAAa,iDACb,SAAU,WACV,OAAQ,2IAAA,EAEZ,CACI,GAAI,sBACJ,KAAM,8BACN,YAAa,2DACb,SAAU,WACV,OAAQ,iCAAA,EAEZ,CACI,GAAI,yBACJ,KAAM,0BACN,YAAa,6FACb,SAAU,UACV,OAAQ,gEAAA,EAEZ,CACI,GAAI,iBACJ,KAAM,iBACN,YAAa,iEACb,SAAU,OACV,OAAQ,iCAAA,EAEZ,CACI,GAAI,qBACJ,KAAM,kBACN,YAAa,2FACb,SAAU,YACV,OAAQ,gFAAA,EAEZ,CACI,GAAI,cACJ,KAAM,eACN,YAAa,8DACb,SAAU,YACV,OAAQ,4CAAA,EAEZ,CACI,GAAI,uBACJ,KAAM,0BACN,YAAa,6FACb,SAAU,yBACV,OAAQ,4DAAA,EAEZ,CACI,GAAI,eACJ,KAAM,wBACN,YAAa,sFACb,SAAU,yBACV,OAAQ,wCAAA,EAEZ,CACI,GAAI,kBACJ,KAAM,8BACN,YAAa,sGACb,SAAU,qBACV,OAAQ,iFAAA,EAEZ,CACI,GAAI,qBACJ,KAAM,8BACN,YAAa,uGACb,SAAU,qBACV,OAAQ,uEAAA,EAEZ,CACI,GAAI,mBACJ,KAAM,sBACN,YAAa,+GACb,SAAU,WACV,OAAQ,qCAAA,EAEZ,CACI,GAAI,wBACJ,KAAM,yBACN,YAAa,0IACb,SAAU,eACV,OAAQ,wEAAA,EAEZ,CACI,GAAI,wBACJ,KAAM,4BACN,YAAa,sFACb,SAAU,QACV,OAAQ,6EAAA,CAEhB"} \ No newline at end of file diff --git a/assets/ts-dedent-DrFu-skq.js b/assets/ts-dedent-DrFu-skq.js new file mode 100644 index 0000000000000000000000000000000000000000..0ccf831556cee5cfa38c6d05ca4c5552dc3d4038 --- /dev/null +++ b/assets/ts-dedent-DrFu-skq.js @@ -0,0 +1,7 @@ +function l(o){for(var f=[],i=1;i"}export{e as g}; +//# sourceMappingURL=universal-user-agent-CLgqIJsR.js.map diff --git a/assets/universal-user-agent-CLgqIJsR.js.map b/assets/universal-user-agent-CLgqIJsR.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c405c7e2e5fc55c9a189749bb4f2f3740df2bf39 --- /dev/null +++ b/assets/universal-user-agent-CLgqIJsR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"universal-user-agent-CLgqIJsR.js","sources":["../../node_modules/universal-user-agent/index.js"],"sourcesContent":["export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && process.version !== undefined) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${\n process.arch\n })`;\n }\n\n return \"\";\n}\n"],"names":["getUserAgent"],"mappings":"AAAO,SAASA,GAAe,CAC7B,OAAI,OAAO,WAAc,UAAY,cAAe,UAC3C,UAAU,UAGf,OAAO,SAAY,UAAY,QAAQ,UAAY,OAC9C,WAAW,QAAQ,QAAQ,OAAO,CAAC,CAAC,KAAK,QAAQ,QAAQ,KAC9D,QAAQ,IACd,IAGS,4BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/uuid-DhYbOkY1.js b/assets/uuid-DhYbOkY1.js new file mode 100644 index 0000000000000000000000000000000000000000..3b0d655cf979bb6b409f9ee054f928cbfbf975a8 --- /dev/null +++ b/assets/uuid-DhYbOkY1.js @@ -0,0 +1,2 @@ +const A=/^(?:[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 I(f){return typeof f=="string"&&A.test(f)}const o=[];for(let f=0;f<256;++f)o.push((f+256).toString(16).slice(1));function w(f,t=0){return o[f[t+0]]+o[f[t+1]]+o[f[t+2]]+o[f[t+3]]+"-"+o[f[t+4]]+o[f[t+5]]+"-"+o[f[t+6]]+o[f[t+7]]+"-"+o[f[t+8]]+o[f[t+9]]+"-"+o[f[t+10]]+o[f[t+11]]+o[f[t+12]]+o[f[t+13]]+o[f[t+14]]+o[f[t+15]]}function v(f){if(!I(f))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(f.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=t&255,n[4]=(t=parseInt(f.slice(9,13),16))>>>8,n[5]=t&255,n[6]=(t=parseInt(f.slice(14,18),16))>>>8,n[7]=t&255,n[8]=(t=parseInt(f.slice(19,23),16))>>>8,n[9]=t&255,n[10]=(t=parseInt(f.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=t&255,n}function R(f){f=unescape(encodeURIComponent(f));const t=[];for(let n=0;n>>32-t}function D(f){const t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof f=="string"){const e=unescape(encodeURIComponent(f));f=[];for(let r=0;r>>0;g=p,p=h,h=d(x,30)>>>0,x=i,i=U}n[0]=n[0]+i>>>0,n[1]=n[1]+x>>>0,n[2]=n[2]+h>>>0,n[3]=n[3]+p>>>0,n[4]=n[4]+g>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,n[0]&255,n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,n[1]&255,n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,n[2]&255,n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,n[3]&255,n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,n[4]&255]}const E=y("v5",80,D);export{E as v}; +//# sourceMappingURL=uuid-DhYbOkY1.js.map diff --git a/assets/uuid-DhYbOkY1.js.map b/assets/uuid-DhYbOkY1.js.map new file mode 100644 index 0000000000000000000000000000000000000000..832a49e49b26029e80dddf234fec62e029ca0d95 --- /dev/null +++ b/assets/uuid-DhYbOkY1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"uuid-DhYbOkY1.js","sources":["../../node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/parse.js","../../node_modules/uuid/dist/esm-browser/v35.js","../../node_modules/uuid/dist/esm-browser/sha1.js","../../node_modules/uuid/dist/esm-browser/v5.js"],"sourcesContent":["export default /^(?:[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;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;"],"names":["REGEX","validate","uuid","byteToHex","i","unsafeStringify","arr","offset","parse","v","stringToBytes","str","bytes","DNS","URL","v35","name","version","hashfunc","generateUUID","value","namespace","buf","_namespace","f","s","x","y","z","ROTL","n","sha1","K","H","msg","l","N","M","j","W","t","a","b","c","d","e","T","v5"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]} \ No newline at end of file diff --git a/assets/workspaceConnectorService-KhhKdOYD.js b/assets/workspaceConnectorService-KhhKdOYD.js new file mode 100644 index 0000000000000000000000000000000000000000..694a80b5f8259b8858ef9c4665373dbf6bbc51a9 --- /dev/null +++ b/assets/workspaceConnectorService-KhhKdOYD.js @@ -0,0 +1,2 @@ +import{a9 as i,l as u,e as s}from"./index-CX7Qxd1D.js";const n=new Map;n.set("jira_create_ticket",{id:"jira_create_ticket",service:"Jira",description:"Creates a new issue in a Jira project.",getParameters:()=>({projectKey:{type:"string",required:!0},summary:{type:"string",required:!0},description:{type:"string",required:!1},issueType:{type:"string",required:!0,default:"Task"}}),execute:async e=>{const o=await s("jira_domain"),t=await s("jira_pat"),r=await s("jira_email");if(!o||!t||!r)throw new Error("Jira credentials not found in vault. Please connect Jira in the Workspace Connector Hub.");const c={type:"doc",version:1,content:[{type:"paragraph",content:[{text:e.description||"",type:"text"}]}]},a=await fetch(`https://${o}/rest/api/3/issue`,{method:"POST",headers:{Authorization:`Basic ${btoa(`${r}:${t}`)}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({fields:{project:{key:e.projectKey},summary:e.summary,description:c,issuetype:{name:e.issueType||"Task"}}})});if(!a.ok){const p=await a.text();throw new Error(`Jira API Error (${a.status}): ${p}`)}return a.json()}});n.set("slack_post_message",{id:"slack_post_message",service:"Slack",description:"Posts a message to a Slack channel.",getParameters:()=>({channel:{type:"string",required:!0},text:{type:"string",required:!0}}),execute:async e=>{const o=await s("slack_bot_token");if(!o)throw new Error("Slack credentials not found in vault. Please connect Slack in the Workspace Connector Hub.");const t=await fetch("https://slack.com/api/chat.postMessage",{method:"POST",headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/json; charset=utf-8"},body:JSON.stringify({channel:e.channel,text:e.text})});if(!t.ok){const r=await t.json();throw new Error(`Slack API Error: ${r.error}`)}return t.json()}});async function y(e,o){const t=n.get(e);if(!t)throw new Error(`Action "${e}" not found.`);i("workspace_action_execute",{actionId:e});try{const r=await t.execute(o);return i("workspace_action_success",{actionId:e}),r}catch(r){throw u(r,{context:"executeWorkspaceAction",actionId:e}),r}}export{n as A,y as e}; +//# sourceMappingURL=workspaceConnectorService-KhhKdOYD.js.map diff --git a/assets/workspaceConnectorService-KhhKdOYD.js.map b/assets/workspaceConnectorService-KhhKdOYD.js.map new file mode 100644 index 0000000000000000000000000000000000000000..28c91ba881ff8e01a7a97e434dfd05f7391541fb --- /dev/null +++ b/assets/workspaceConnectorService-KhhKdOYD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workspaceConnectorService-KhhKdOYD.js","sources":["../../services/workspaceConnectorService.ts"],"sourcesContent":["import * as vaultService from './vaultService.ts';\nimport { logError, logEvent } from './telemetryService.ts';\nimport { getDecryptedCredential } from './vaultService.ts';\n\n// Interface for any action\nexport interface WorkspaceAction {\n id: string; // e.g., 'jira_create_ticket'\n service: 'Jira' | 'Slack' | 'GitHub'; // etc.\n description: string;\n // Function to define the necessary input fields for this action\n getParameters: () => { [key: string]: { type: 'string' | 'number', required: boolean, default?: string } };\n // The actual logic to execute the action\n execute: (params: any) => Promise;\n}\n\n// THE REGISTRY: This is the pattern for all services.\nexport const ACTION_REGISTRY: Map = new Map();\n\n// --- JIRA EXAMPLE ---\nACTION_REGISTRY.set('jira_create_ticket', {\n id: 'jira_create_ticket',\n service: 'Jira',\n description: 'Creates a new issue in a Jira project.',\n getParameters: () => ({\n projectKey: { type: 'string', required: true },\n summary: { type: 'string', required: true },\n description: { type: 'string', required: false },\n issueType: { type: 'string', required: true, default: 'Task' }\n }),\n execute: async (params) => {\n const domain = await getDecryptedCredential('jira_domain');\n const token = await getDecryptedCredential('jira_pat');\n const email = await getDecryptedCredential('jira_email');\n\n if (!domain || !token || !email) {\n throw new Error(\"Jira credentials not found in vault. Please connect Jira in the Workspace Connector Hub.\");\n }\n \n // The Atlassian Document Format for the description field\n const descriptionDoc = {\n type: 'doc',\n version: 1,\n content: [\n {\n type: 'paragraph',\n content: [\n {\n text: params.description || '',\n type: 'text'\n }\n ]\n }\n ]\n };\n\n const response = await fetch(`https://${domain}/rest/api/3/issue`, {\n method: 'POST',\n headers: {\n 'Authorization': `Basic ${btoa(`${email}:${token}`)}`,\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n fields: {\n project: { key: params.projectKey },\n summary: params.summary,\n description: descriptionDoc,\n issuetype: { name: params.issueType || 'Task' }\n }\n })\n });\n if (!response.ok) {\n const errorBody = await response.text();\n throw new Error(`Jira API Error (${response.status}): ${errorBody}`);\n }\n return response.json();\n }\n});\n\n// --- SLACK EXAMPLE ---\nACTION_REGISTRY.set('slack_post_message', {\n id: 'slack_post_message',\n service: 'Slack',\n description: 'Posts a message to a Slack channel.',\n getParameters: () => ({\n channel: { type: 'string', required: true }, // e.g., #engineering or C1234567\n text: { type: 'string', required: true }\n }),\n execute: async (params) => {\n const token = await getDecryptedCredential('slack_bot_token');\n if (!token) {\n throw new Error(\"Slack credentials not found in vault. Please connect Slack in the Workspace Connector Hub.\");\n }\n const response = await fetch('https://slack.com/api/chat.postMessage', {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${token}`,\n 'Content-Type': 'application/json; charset=utf-8'\n },\n body: JSON.stringify({\n channel: params.channel,\n text: params.text\n })\n });\n if (!response.ok) {\n const errorBody = await response.json();\n throw new Error(`Slack API Error: ${errorBody.error}`);\n }\n return response.json();\n }\n});\n\n\n// --- CENTRAL EXECUTION FUNCTION ---\nexport async function executeWorkspaceAction(actionId: string, params: any): Promise {\n const action = ACTION_REGISTRY.get(actionId);\n if (!action) {\n throw new Error(`Action \"${actionId}\" not found.`);\n }\n logEvent('workspace_action_execute', { actionId });\n try {\n const result = await action.execute(params);\n logEvent('workspace_action_success', { actionId });\n return result;\n } catch (error) {\n logError(error as Error, { context: 'executeWorkspaceAction', actionId });\n throw error;\n }\n}"],"names":["ACTION_REGISTRY","params","domain","getDecryptedCredential","token","email","descriptionDoc","response","errorBody","executeWorkspaceAction","actionId","action","logEvent","result","error","logError"],"mappings":"uDAgBO,MAAMA,MAAoD,IAGjEA,EAAgB,IAAI,qBAAsB,CACxC,GAAI,qBACJ,QAAS,OACT,YAAa,yCACb,cAAe,KAAO,CACpB,WAAY,CAAE,KAAM,SAAU,SAAU,EAAA,EACxC,QAAS,CAAE,KAAM,SAAU,SAAU,EAAA,EACrC,YAAa,CAAE,KAAM,SAAU,SAAU,EAAA,EACzC,UAAW,CAAE,KAAM,SAAU,SAAU,GAAM,QAAS,MAAA,CAAO,GAE/D,QAAS,MAAOC,GAAW,CACzB,MAAMC,EAAS,MAAMC,EAAuB,aAAa,EACnDC,EAAQ,MAAMD,EAAuB,UAAU,EAC/CE,EAAQ,MAAMF,EAAuB,YAAY,EAEvD,GAAI,CAACD,GAAU,CAACE,GAAS,CAACC,EACtB,MAAM,IAAI,MAAM,0FAA0F,EAI9G,MAAMC,EAAiB,CACrB,KAAM,MACN,QAAS,EACT,QAAS,CACP,CACE,KAAM,YACN,QAAS,CACP,CACE,KAAML,EAAO,aAAe,GAC5B,KAAM,MAAA,CACR,CACF,CACF,CACF,EAGIM,EAAW,MAAM,MAAM,WAAWL,CAAM,oBAAqB,CACjE,OAAQ,OACR,QAAS,CACP,cAAiB,SAAS,KAAK,GAAGG,CAAK,IAAID,CAAK,EAAE,CAAC,GACnD,OAAU,mBACV,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CACnB,OAAQ,CACL,QAAS,CAAE,IAAKH,EAAO,UAAA,EACvB,QAASA,EAAO,QAChB,YAAaK,EACb,UAAW,CAAE,KAAML,EAAO,WAAa,MAAA,CAAO,CACjD,CACD,CAAA,CACF,EACD,GAAI,CAACM,EAAS,GAAI,CACd,MAAMC,EAAY,MAAMD,EAAS,KAAA,EACjC,MAAM,IAAI,MAAM,mBAAmBA,EAAS,MAAM,MAAMC,CAAS,EAAE,CACvE,CACA,OAAOD,EAAS,KAAA,CAClB,CACF,CAAC,EAGDP,EAAgB,IAAI,qBAAsB,CACxC,GAAI,qBACJ,QAAS,QACT,YAAa,sCACb,cAAe,KAAO,CACpB,QAAS,CAAE,KAAM,SAAU,SAAU,EAAA,EACrC,KAAM,CAAE,KAAM,SAAU,SAAU,EAAA,CAAK,GAEzC,QAAS,MAAOC,GAAW,CACzB,MAAMG,EAAQ,MAAMD,EAAuB,iBAAiB,EAC5D,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,4FAA4F,EAEhH,MAAMG,EAAW,MAAM,MAAM,yCAA0C,CACnE,OAAQ,OACR,QAAS,CACL,cAAiB,UAAUH,CAAK,GAChC,eAAgB,iCAAA,EAEpB,KAAM,KAAK,UAAU,CACjB,QAASH,EAAO,QAChB,KAAMA,EAAO,IAAA,CAChB,CAAA,CACJ,EACA,GAAI,CAACM,EAAS,GAAI,CACf,MAAMC,EAAY,MAAMD,EAAS,KAAA,EACjC,MAAM,IAAI,MAAM,oBAAoBC,EAAU,KAAK,EAAE,CACzD,CACA,OAAOD,EAAS,KAAA,CAClB,CACF,CAAC,EAID,eAAsBE,EAAuBC,EAAkBT,EAA2B,CACtF,MAAMU,EAASX,EAAgB,IAAIU,CAAQ,EAC3C,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,WAAWD,CAAQ,cAAc,EAErDE,EAAS,2BAA4B,CAAE,SAAAF,EAAU,EACjD,GAAI,CACA,MAAMG,EAAS,MAAMF,EAAO,QAAQV,CAAM,EAC1C,OAAAW,EAAS,2BAA4B,CAAE,SAAAF,EAAU,EAC1CG,CACX,OAASC,EAAO,CACZ,MAAAC,EAASD,EAAgB,CAAE,QAAS,yBAA0B,SAAAJ,EAAU,EAClEI,CACV,CACJ"} \ No newline at end of file