@citolab/qti-components 6.9.1-beta.58 → 6.9.1-beta.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-YY52I6U7.js +24 -0
- package/dist/custom-elements.json +156 -156
- package/dist/index.global.js +1 -1
- package/dist/index.js +1 -1
- package/dist/item.css +16 -49
- package/dist/qti-components/index.js +1 -1
- package/dist/qti-loader/index.js +1 -1
- package/dist/qti-transformers/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-SOXSSPDZ.js +0 -24
package/dist/item.css
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
--qti-bg-active: #ffecec;
|
|
7
7
|
--qti-border-active: #f86d70;
|
|
8
8
|
|
|
9
|
+
/* Gap size */
|
|
10
|
+
--qti-gap-size: 1rem;
|
|
11
|
+
|
|
9
12
|
/* Background colors */
|
|
10
13
|
--qti-bg: white;
|
|
11
14
|
--qti-hover-bg: #f9fafb;
|
|
@@ -21,9 +24,6 @@
|
|
|
21
24
|
--qti-border-radius: 0.3rem;
|
|
22
25
|
--qti-drop-border-radius: calc(var(--qti-border-radius) + var(--qti-border-thickness));
|
|
23
26
|
|
|
24
|
-
/* Typography */
|
|
25
|
-
--qti-font-weight-semibold: 600;
|
|
26
|
-
|
|
27
27
|
/* Focus & active states */
|
|
28
28
|
--qti-focus-border-width: 5px;
|
|
29
29
|
--qti-focus-color: #bddcff7e;
|
|
@@ -119,7 +119,6 @@
|
|
|
119
119
|
|
|
120
120
|
border-radius: var(--qti-border-radius);
|
|
121
121
|
padding: var(--qti-button-padding-vertical) var(--qti-button-padding-horizontal);
|
|
122
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
123
122
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
124
123
|
outline: none;
|
|
125
124
|
}
|
|
@@ -185,7 +184,9 @@
|
|
|
185
184
|
rotate 200ms ease-out;
|
|
186
185
|
cursor: grab;
|
|
187
186
|
background-color: var(--qti-bg);
|
|
188
|
-
padding
|
|
187
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
188
|
+
border-radius: var(--qti-border-radius);
|
|
189
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem) !important; /* 1.5rem for the drag */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color); outline: none; background-image: radial-gradient(
|
|
189
190
|
circle at center,
|
|
190
191
|
rgb(0 0 0 / 10%) 0,
|
|
191
192
|
rgb(0 0 0 / 20%) 2px,
|
|
@@ -2002,8 +2003,6 @@ qti-response-declaration {
|
|
|
2002
2003
|
|
|
2003
2004
|
padding: var(--qti-button-padding-vertical) var(--qti-button-padding-horizontal);
|
|
2004
2005
|
|
|
2005
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2006
|
-
|
|
2007
2006
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2008
2007
|
|
|
2009
2008
|
outline: none
|
|
@@ -2177,17 +2176,11 @@ qti-response-declaration {
|
|
|
2177
2176
|
|
|
2178
2177
|
background-color: var(--qti-bg);
|
|
2179
2178
|
|
|
2180
|
-
padding
|
|
2179
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
2181
2180
|
|
|
2182
2181
|
border-radius: var(--qti-border-radius);
|
|
2183
2182
|
|
|
2184
|
-
padding:
|
|
2185
|
-
|
|
2186
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2187
|
-
|
|
2188
|
-
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2189
|
-
|
|
2190
|
-
outline: none;
|
|
2183
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem);
|
|
2191
2184
|
|
|
2192
2185
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2193
2186
|
|
|
@@ -2518,8 +2511,6 @@ qti-response-declaration {
|
|
|
2518
2511
|
|
|
2519
2512
|
padding: var(--qti-button-padding-vertical) var(--qti-button-padding-horizontal);
|
|
2520
2513
|
|
|
2521
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2522
|
-
|
|
2523
2514
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2524
2515
|
|
|
2525
2516
|
outline: none
|
|
@@ -2633,17 +2624,11 @@ qti-response-declaration {
|
|
|
2633
2624
|
|
|
2634
2625
|
background-color: var(--qti-bg);
|
|
2635
2626
|
|
|
2636
|
-
padding
|
|
2627
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
2637
2628
|
|
|
2638
2629
|
border-radius: var(--qti-border-radius);
|
|
2639
2630
|
|
|
2640
|
-
padding:
|
|
2641
|
-
|
|
2642
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2643
|
-
|
|
2644
|
-
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2645
|
-
|
|
2646
|
-
outline: none;
|
|
2631
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem);
|
|
2647
2632
|
|
|
2648
2633
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2649
2634
|
|
|
@@ -2769,17 +2754,11 @@ qti-response-declaration {
|
|
|
2769
2754
|
|
|
2770
2755
|
background-color: var(--qti-bg);
|
|
2771
2756
|
|
|
2772
|
-
padding
|
|
2757
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
2773
2758
|
|
|
2774
2759
|
border-radius: var(--qti-border-radius);
|
|
2775
2760
|
|
|
2776
|
-
padding:
|
|
2777
|
-
|
|
2778
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2779
|
-
|
|
2780
|
-
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2781
|
-
|
|
2782
|
-
outline: none;
|
|
2761
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem);
|
|
2783
2762
|
|
|
2784
2763
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2785
2764
|
|
|
@@ -2830,17 +2809,11 @@ qti-response-declaration {
|
|
|
2830
2809
|
|
|
2831
2810
|
background-color: var(--qti-bg);
|
|
2832
2811
|
|
|
2833
|
-
padding
|
|
2812
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
2834
2813
|
|
|
2835
2814
|
border-radius: var(--qti-border-radius);
|
|
2836
2815
|
|
|
2837
|
-
padding:
|
|
2838
|
-
|
|
2839
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2840
|
-
|
|
2841
|
-
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2842
|
-
|
|
2843
|
-
outline: none;
|
|
2816
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem);
|
|
2844
2817
|
|
|
2845
2818
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2846
2819
|
|
|
@@ -2937,17 +2910,11 @@ qti-response-declaration {
|
|
|
2937
2910
|
|
|
2938
2911
|
background-color: var(--qti-bg);
|
|
2939
2912
|
|
|
2940
|
-
padding
|
|
2913
|
+
padding: var(--qti-drag-padding-vertical) var(--qti-drag-padding-horizontal);
|
|
2941
2914
|
|
|
2942
2915
|
border-radius: var(--qti-border-radius);
|
|
2943
2916
|
|
|
2944
|
-
padding:
|
|
2945
|
-
|
|
2946
|
-
font-weight: var(--qti-font-weight-semibold);
|
|
2947
|
-
|
|
2948
|
-
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2949
|
-
|
|
2950
|
-
outline: none;
|
|
2917
|
+
padding-left: calc(var(--qti-drag-padding-horizontal) + 0.5rem);
|
|
2951
2918
|
|
|
2952
2919
|
border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
|
|
2953
2920
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Rt}from"../chunk-
|
|
1
|
+
import{a as Rt}from"../chunk-YY52I6U7.js";import{a as b,b as C,c as a}from"../chunk-NYAUPIAG.js";import{provide as hr}from"@lit/context";import{LitElement as fr,html as gr}from"lit";import{customElement as br,property as K}from"lit/decorators.js";function x(c,i){let e=b({waitUntilFirstUpdate:!1},i);return(t,r)=>{let{update:s}=t,o=Array.isArray(c)?c:[c];t.update=function(n){o.forEach(l=>{let p=l;if(n.has(p)){let d=n.get(p),m=this[p];d!==m&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[r](d,m)}}),s.call(this,n)}}}import{createContext as mr}from"@lit/context";var Lt=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],M=mr("item");var q=class extends fr{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Lt};this._initialContext=C(b({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=C(b({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>b({identifier:e.identifier,value:e.value,type:e.type},e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=C(b({},this._context),{variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?b(b({},t),r):t})}),this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.value=t.value)}t.type==="outcome"&&this._feedbackElements.forEach(r=>r.checkShowFeedback(t.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(o=>o.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.value=t.response)}}render(){return gr`<slot></slot>`}showCorrectResponse(e){let r=this._context.variables.filter(s=>"correctResponse"in s&&s.correctResponse).map(s=>({responseIdentifier:s.identifier,response:s.correctResponse}));for(let s of r){let o=this._interactionElements.find(n=>n.getAttribute("response-identifier")===s.responseIdentifier);o&&(o.correctResponse=e?s.response:"")}}processResponse(e=!0){var r;let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((r=this._context.variables.find(s=>s.identifier==="numAttempts"))==null?void 0:r.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context=C(b({},this._context),{variables:this._context.variables.map(r=>r.identifier!==e?r:C(b({},r),{value:t}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){var s;let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=C(b({},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:C(b({},o),{value:r.cardinality==="single"?t:[...o.value,t]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(s=this._context.variables.find(o=>o.identifier===e))==null?void 0:s.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};a([K({type:String})],q.prototype,"title",2),a([K({type:String})],q.prototype,"identifier",2),a([K({type:String})],q.prototype,"adaptive",2),a([K({type:String})],q.prototype,"timeDependent",2),a([K({type:Boolean})],q.prototype,"disabled",2),a([x("disabled",{waitUntilFirstUpdate:!0})],q.prototype,"_handleDisabledChange",2),a([K({type:Boolean})],q.prototype,"readonly",2),a([x("readonly",{waitUntilFirstUpdate:!0})],q.prototype,"_handleReadonlyChange",2),a([hr({context:M})],q.prototype,"_context",2),q=a([br("qti-assessment-item")],q);import{LitElement as vr}from"lit";import{customElement as yr,property as At}from"lit/decorators.js";var W=class extends vr{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let s=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);s?await this.updateStimulusRef(s):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=this.href.substring(0,this.href.lastIndexOf("/")),r=await Rt().load(this.href).then(s=>s.path(t).htmlDoc());if(r){let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...s)}}};a([At({type:String})],W.prototype,"identifier",2),a([At({type:String})],W.prototype,"href",2),W=a([yr("qti-assessment-stimulus-ref")],W);import{html as xr}from"lit";import{property as Re}from"lit/decorators.js";var Dt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function _(c,i){class e extends c{constructor(...s){super(...s);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this.internals=this.attachInternals()}handleDisabledChange(s,o){this.tabIndex=o?-1:0,o&&this.blur()}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${i}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${i}`,{bubbles:!0,composed:!0}))}_onKeyUp(s){s.altKey||s.code==="Space"&&(s.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${i}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return xr`<slot></slot>`}}return a([Re({type:String})],e.prototype,"identifier",2),a([Re({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),a([Re({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Dt})],e.prototype,"disabled",2),a([Re({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Dt})],e.prototype,"readonly",2),a([x("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}import{customElement as Cr}from"lit/decorators.js";import{html as qr,LitElement as wr}from"lit";import{css as Er}from"lit";var Vt=Er`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
package/dist/qti-loader/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i,b as o,c as r}from"../chunk-
|
|
1
|
+
import{a as i,b as o,c as r}from"../chunk-YY52I6U7.js";import"../chunk-NYAUPIAG.js";var h=async s=>{let t=s.substring(0,s.lastIndexOf("/")),e=await o().load(`${s}`).then(n=>n.assessmentTest()),m=await r().load(`${t}/${e.href}`).then(n=>n.htmlDoc()),f=await r().load(`${t}/${e.href}`).then(n=>n.items()),a=`${t}/${e.href}`,c=`${t}/${e.href.substring(0,e.href.lastIndexOf("/"))}`;return{testHTMLDoc:m,testURI:c,testURL:a,items:f,testIdentifier:e.identifier}},d=async s=>i().load(s).then(t=>t.htmlDoc().firstElementChild);export{d as getItemByUri,h as getManifestInfo};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktbG9hZGVyL3F0aS1sb2FkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFF0aUFzc2Vzc21lbnRJdGVtIH0gZnJvbSAnLi4vcXRpLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgcXRpVHJhbnNmb3JtSXRlbSwgcXRpVHJhbnNmb3JtVGVzdCB9IGZyb20gJy4uL3F0aS10cmFuc2Zvcm1lcnMnO1xuaW1wb3J0IHsgcXRpVHJhbnNmb3JtTWFuaWZlc3QgfSBmcm9tICcuLi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm0tbWFuaWZlc3QnO1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdEluZm8gPSB7XG4gIHRlc3RJZGVudGlmaWVyOiBzdHJpbmc7XG4gIHRlc3RIVE1MRG9jOiBEb2N1bWVudEZyYWdtZW50O1xuICB0ZXN0VVJJOiBzdHJpbmc7XG4gIHRlc3RVUkw6IHN0cmluZztcbiAgaXRlbXM6IHtcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgaHJlZjogc3RyaW5nO1xuICAgIGNhdGVnb3J5OiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbi8vIFV0aWxpdHkgZnVuY3Rpb24gdG8gZW5zdXJlIHBhY2thZ2UgVVJJcyBlbmQgd2l0aCBhICcvJ1xuLy8gY29uc3Qgbm9ybWFsaXplVXJpID0gKHVyaTogc3RyaW5nKSA9PiAodXJpLmVuZHNXaXRoKCcvJykgPyB1cmkgOiBgJHt1cml9L2ApO1xuXG4vLyBGZXRjaGVzIGFzc2Vzc21lbnQgZGF0YSBmcm9tIHRoZSBtYW5pZmVzdFxuZXhwb3J0IGNvbnN0IGdldE1hbmlmZXN0SW5mbyA9IGFzeW5jIChtYW5pZmVzdFVSTDogc3RyaW5nKTogUHJvbWlzZTxNYW5pZmVzdEluZm8+ID0+IHtcbiAgY29uc3QgYmFzZVVSSSA9IG1hbmlmZXN0VVJMLnN1YnN0cmluZygwLCBtYW5pZmVzdFVSTC5sYXN0SW5kZXhPZignLycpKTtcblxuICBjb25zdCB0ZXN0ID0gYXdhaXQgcXRpVHJhbnNmb3JtTWFuaWZlc3QoKVxuICAgIC5sb2FkKGAke21hbmlmZXN0VVJMfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5hc3Nlc3NtZW50VGVzdCgpKTtcblxuICBjb25zdCB0ZXN0SFRNTERvYyA9IGF3YWl0IHF0aVRyYW5zZm9ybVRlc3QoKVxuICAgIC5sb2FkKGAke2Jhc2VVUkl9LyR7dGVzdC5ocmVmfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5odG1sRG9jKCkpO1xuXG4gIGNvbnN0IGl0ZW1zID0gYXdhaXQgcXRpVHJhbnNmb3JtVGVzdCgpXG4gICAgLmxvYWQoYCR7YmFzZVVSSX0vJHt0ZXN0LmhyZWZ9YClcbiAgICAudGhlbihhcGkgPT4gYXBpLml0ZW1zKCkpO1xuXG4gIGNvbnN0IHRlc3RVUkwgPSBgJHtiYXNlVVJJfS8ke3Rlc3QuaHJlZn1gO1xuICBjb25zdCB0ZXN0VVJJID0gYCR7YmFzZVVSSX0vJHt0ZXN0LmhyZWYuc3Vic3RyaW5nKDAsIHRlc3QuaHJlZi5sYXN0SW5kZXhPZignLycpKX1gO1xuXG4gIHJldHVybiB7XG4gICAgdGVzdEhUTUxEb2MsXG4gICAgdGVzdFVSSSxcbiAgICB0ZXN0VVJMLFxuICAgIGl0ZW1zLFxuICAgIHRlc3RJZGVudGlmaWVyOiB0ZXN0LmlkZW50aWZpZXJcbiAgfTtcbn07XG5cbi8vIEZldGNoZXMgYSBzaW5nbGUgaXRlbSBieSBVUklcbmV4cG9ydCBjb25zdCBnZXRJdGVtQnlVcmkgPSBhc3luYyAoaXRlbVVyaTogc3RyaW5nKTogUHJvbWlzZTxRdGlBc3Nlc3NtZW50SXRlbT4gPT5cbiAgcXRpVHJhbnNmb3JtSXRlbSgpXG4gICAgLmxvYWQoaXRlbVVyaSlcbiAgICAudGhlbihhcGkgPT4gYXBpLmh0bWxEb2MoKS5maXJzdEVsZW1lbnRDaGlsZCBhcyBRdGlBc3Nlc3NtZW50SXRlbSk7XG4iXSwKICAibWFwcGluZ3MiOiAib0ZBb0JPLElBQU1BLEVBQWtCLE1BQU9DLEdBQStDLENBQ25GLElBQU1DLEVBQVVELEVBQVksVUFBVSxFQUFHQSxFQUFZLFlBQVksR0FBRyxDQUFDLEVBRS9ERSxFQUFPLE1BQU1DLEVBQXFCLEVBQ3JDLEtBQUssR0FBR0gsQ0FBVyxFQUFFLEVBQ3JCLEtBQUtJLEdBQU9BLEVBQUksZUFBZSxDQUFDLEVBRTdCQyxFQUFjLE1BQU1DLEVBQWlCLEVBQ3hDLEtBQUssR0FBR0wsQ0FBTyxJQUFJQyxFQUFLLElBQUksRUFBRSxFQUM5QixLQUFLRSxHQUFPQSxFQUFJLFFBQVEsQ0FBQyxFQUV0QkcsRUFBUSxNQUFNRCxFQUFpQixFQUNsQyxLQUFLLEdBQUdMLENBQU8sSUFBSUMsRUFBSyxJQUFJLEVBQUUsRUFDOUIsS0FBS0UsR0FBT0EsRUFBSSxNQUFNLENBQUMsRUFFcEJJLEVBQVUsR0FBR1AsQ0FBTyxJQUFJQyxFQUFLLElBQUksR0FDakNPLEVBQVUsR0FBR1IsQ0FBTyxJQUFJQyxFQUFLLEtBQUssVUFBVSxFQUFHQSxFQUFLLEtBQUssWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUVoRixNQUFPLENBQ0wsWUFBQUcsRUFDQSxRQUFBSSxFQUNBLFFBQUFELEVBQ0EsTUFBQUQsRUFDQSxlQUFnQkwsRUFBSyxVQUN2QixDQUNGLEVBR2FRLEVBQWUsTUFBT0MsR0FDakNDLEVBQWlCLEVBQ2QsS0FBS0QsQ0FBTyxFQUNaLEtBQUtQLEdBQU9BLEVBQUksUUFBUSxFQUFFLGlCQUFzQyIsCiAgIm5hbWVzIjogWyJnZXRNYW5pZmVzdEluZm8iLCAibWFuaWZlc3RVUkwiLCAiYmFzZVVSSSIsICJ0ZXN0IiwgInF0aVRyYW5zZm9ybU1hbmlmZXN0IiwgImFwaSIsICJ0ZXN0SFRNTERvYyIsICJxdGlUcmFuc2Zvcm1UZXN0IiwgIml0ZW1zIiwgInRlc3RVUkwiLCAidGVzdFVSSSIsICJnZXRJdGVtQnlVcmkiLCAiaXRlbVVyaSIsICJxdGlUcmFuc2Zvcm1JdGVtIl0KfQo=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-YY52I6U7.js";import"../chunk-NYAUPIAG.js";export{a as qtiTransformItem,b as qtiTransformManifest,c as qtiTransformTest};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
|
package/package.json
CHANGED
package/dist/chunk-SOXSSPDZ.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var b=String.raw,T=b`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
2
|
-
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
|
|
3
|
-
<xsl:template match="@*|node()">
|
|
4
|
-
<xsl:copy>
|
|
5
|
-
<xsl:apply-templates select="@*|node()"/>
|
|
6
|
-
</xsl:copy>
|
|
7
|
-
</xsl:template>
|
|
8
|
-
|
|
9
|
-
<!-- remove existing namespaces -->
|
|
10
|
-
<xsl:template match="*">
|
|
11
|
-
<!-- remove element prefix -->
|
|
12
|
-
<xsl:element name="{local-name()}">
|
|
13
|
-
<!-- process attributes -->
|
|
14
|
-
<xsl:for-each select="@*">
|
|
15
|
-
<!-- remove attribute prefix -->
|
|
16
|
-
<xsl:attribute name="{local-name()}">
|
|
17
|
-
<xsl:value-of select="."/>
|
|
18
|
-
</xsl:attribute>
|
|
19
|
-
</xsl:for-each>
|
|
20
|
-
<xsl:apply-templates/>
|
|
21
|
-
</xsl:element>
|
|
22
|
-
</xsl:template>
|
|
23
|
-
</xsl:stylesheet>`;function f(e,r,t){e.querySelectorAll(r).forEach(s=>{let n=`${r}-${t}`,o=x(s,n);s.replaceWith(o)})}function g(e,r){e.querySelectorAll("*").forEach(t=>{let s=t.classList;s&&s.forEach(n=>{if(n.startsWith(`${r}:`)){let o=n.slice(`${r}:`.length),i=`${t.nodeName}-${o}`,c=x(t,i);t.replaceWith(c)}})})}function x(e,r){let t=document.createElement(r);for(let s of e.attributes)t.setAttribute(s.name,s.value);for(;e.firstChild;)t.appendChild(e.firstChild);return t}function h(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let s=t.getAttribute("identifier"),n=t.getAttribute("href"),o=t.getAttribute("category");r.push({identifier:s,href:n,category:o})}),r}var p=null;function a(e,r=!0){return r&&p!==null&&p.abort(),new Promise((t,s)=>{let n=new XMLHttpRequest;p=n,n.open("GET",e,!0),n.responseType="document",n.onload=()=>{n.status>=200&&n.status<300?t(n.responseXML):s(n.statusText)},n.onerror=()=>{s(n.statusText)},n.send()})}function m(e){return new DOMParser().parseFromString(e,"text/xml")}function l(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(T,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function d(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var o;let s="";t.getAttribute("src")&&(s="src"),t.getAttribute("href")&&(s="href"),t.getAttribute("primary-path")&&(s="primary-path");let n=(o=t.getAttribute(s))==null?void 0:o.trim();if(!n.startsWith("data:")&&!n.startsWith("http")){let i=r+encodeURI(n);t.setAttribute(s,i)}})}function A(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let s=document.createComment(t.textContent);t.replaceChild(s,t.firstChild)})}function y(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}var D=()=>{let e,r={async load(t,s=!1){return new Promise((n,o)=>{a(t,s).then(i=>(e=i,r.path(t.substring(0,t.lastIndexOf("/"))),n(r)))})},parse(t){return e=m(t),r},path:t=>(d(e,t),r),fn(t){return t(e),r},pciHooks(t){let s=["hook","module"],n=t.substring(0,t.lastIndexOf("/"));for(let o of s)e.querySelectorAll("["+o+"]").forEach(c=>{let u=c.getAttribute(o);!u.startsWith("data:")&&!u.startsWith("http")&&(c.setAttribute("base-url",t),c.setAttribute("module",n+"/"+encodeURI(u+(u.endsWith(".js")?"":".js"))))});return r},extendElementName:(t,s)=>(f(e,t,s),r),extendElementsWithClass:(t="extend")=>(g(e,t),r),customInteraction(t,s){let n=e.querySelector("qti-custom-interaction"),o=n.querySelector("object");return n.setAttribute("data-base-ref",t),n.setAttribute("data-base-item",t+s),n.setAttribute("data",o.getAttribute("data")),n.setAttribute("width",o.getAttribute("width")),n.setAttribute("height",o.getAttribute("height")),n.removeChild(o),r},convertCDATAtoComment(){return A(e),r},stripStyleSheets(){return y(e),r},html(){return new XMLSerializer().serializeToString(l(e))},xml(){return new XMLSerializer().serializeToString(e)},htmlDoc(){return l(e)},xmlDoc(){return e}};return r};var w=()=>{let e,r={async load(t){return new Promise((s,n)=>{a(t).then(o=>(e=o,s(r)))})},parse(t){e=m(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return r};var F=()=>{let e,r={async load(t){return new Promise((s,n)=>{a(t).then(o=>(e=o,s(r)))})},parse(t){return e=m(t),r},fn(t){return t(e),r},items(){return h(e)},html(){return new XMLSerializer().serializeToString(l(e))},xml(){return new XMLSerializer().serializeToString(e)},htmlDoc(){return l(e)},xmlDoc(){return e}};return r};export{D as a,w as b,F as c};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiLCAiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm0taXRlbS50cyIsICIuLi9zcmMvbGliL3F0aS10cmFuc2Zvcm1lcnMvcXRpLXRyYW5zZm9ybS1tYW5pZmVzdC50cyIsICIuLi9zcmMvbGliL3F0aS10cmFuc2Zvcm1lcnMvcXRpLXRyYW5zZm9ybS10ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCB4bWwgPSBTdHJpbmcucmF3O1xuXG4vKiAgIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgPHhzbDpjb21tZW50PlxuICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgPC94c2w6Y29tbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuKi9cblxuLypcbiAgPCEtLSByZW1vdmUgeG1sIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiY29tbWVudCgpXCIgLz5cbiAgKi9cblxuY29uc3QgeG1sVG9IVE1MID0geG1sYDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIGV4aXN0aW5nIG5hbWVzcGFjZXMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCIqXCI+XG4gICAgPCEtLSByZW1vdmUgZWxlbWVudCBwcmVmaXggLS0+XG4gICAgPHhzbDplbGVtZW50IG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgPCEtLSBwcm9jZXNzIGF0dHJpYnV0ZXMgLS0+XG4gICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD1cIkAqXCI+XG4gICAgICAgIDwhLS0gcmVtb3ZlIGF0dHJpYnV0ZSBwcmVmaXggLS0+XG4gICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgICAgICAgPC94c2w6YXR0cmlidXRlPlxuICAgICAgPC94c2w6Zm9yLWVhY2g+XG4gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPlxuICA8L3hzbDplbGVtZW50PlxuPC94c2w6dGVtcGxhdGU+XG48L3hzbDpzdHlsZXNoZWV0PmA7XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBlbGVtZW50cyB3aXRoIGEgc3BlY2lmaWMgdGFnIG5hbWUgYnkgYWRkaW5nIGFuIGV4dGVuc2lvbiBzdWZmaXhcbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRFbGVtZW50TmFtZSh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQsIHRhZ05hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCh0YWdOYW1lKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IG5ld1RhZ05hbWUgPSBgJHt0YWdOYW1lfS0ke2V4dGVuc2lvbn1gO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSk7XG4gICAgZWxlbWVudC5yZXBsYWNlV2l0aChuZXdFbGVtZW50KTtcbiAgfSk7XG59XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBhbnkgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWMgY2xhc3MgcGF0dGVybiAoZS5nLiwgXCJleHRlbmQ6c3VmZml4XCIpXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50LCBjbGFzc05hbWVQYXR0ZXJuOiBzdHJpbmcpIHtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnKicpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gZWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgaWYgKGNsYXNzTGlzdCkge1xuICAgICAgY2xhc3NMaXN0LmZvckVhY2goY2xhc3NOYW1lID0+IHtcbiAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKGAke2NsYXNzTmFtZVBhdHRlcm59OmApKSB7XG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gY2xhc3NOYW1lLnNsaWNlKGAke2NsYXNzTmFtZVBhdHRlcm59OmAubGVuZ3RoKTtcbiAgICAgICAgICBjb25zdCBuZXdUYWdOYW1lID0gYCR7ZWxlbWVudC5ub2RlTmFtZX0tJHtzdWZmaXh9YDtcbiAgICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lKGVsZW1lbnQsIG5ld1RhZ05hbWUpO1xuICAgICAgICAgIGVsZW1lbnQucmVwbGFjZVdpdGgobmV3RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgZWxlbWVudCB3aXRoIGEgbmV3IHRhZyBuYW1lIGFuZCBjb3B5IGF0dHJpYnV0ZXMgYW5kIGNoaWxkcmVuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSkge1xuICBjb25zdCBuZXdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuZXdUYWdOYW1lKTtcbiAgLy8gQ29weSBhdHRyaWJ1dGVzXG4gIGZvciAoY29uc3QgYXR0ciBvZiBlbGVtZW50LmF0dHJpYnV0ZXMpIHtcbiAgICBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICB9XG4gIC8vIENvcHkgY2hpbGQgbm9kZXNcbiAgd2hpbGUgKGVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgIG5ld0VsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudC5maXJzdENoaWxkKTtcbiAgfVxuICByZXR1cm4gbmV3RWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlbXM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdID0gW107XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0tcmVmJykuZm9yRWFjaChlbCA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpO1xuICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGVsLmdldEF0dHJpYnV0ZSgnY2F0ZWdvcnknKTtcbiAgICBpdGVtcy5wdXNoKHsgaWRlbnRpZmllciwgaHJlZiwgY2F0ZWdvcnkgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmxldCBjdXJyZW50UmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRYTUwodXJsLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSB0cnVlKSB7XG4gIGlmIChjYW5jZWxQcmV2aW91c1JlcXVlc3QgJiYgY3VycmVudFJlcXVlc3QgIT09IG51bGwpIHtcbiAgICBjdXJyZW50UmVxdWVzdC5hYm9ydCgpOyAvLyBBYm9ydCB0aGUgb25nb2luZyByZXF1ZXN0IGlmIHRoZXJlIGlzIG9uZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFhNTERvY3VtZW50IHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGN1cnJlbnRSZXF1ZXN0ID0geGhyOyAvLyBTdG9yZSB0aGUgY3VycmVudCByZXF1ZXN0XG5cbiAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2RvY3VtZW50JztcblxuICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgfTtcblxuICAgIHhoci5zZW5kKCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VYTUwoeG1sRG9jdW1lbnQ6IHN0cmluZykge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gIGNvbnN0IHhtbEZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh4bWxEb2N1bWVudCwgJ3RleHQveG1sJyk7XG4gIHJldHVybiB4bWxGcmFnbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvSFRNTCh4bWxGcmFnbWVudDogRG9jdW1lbnQpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgY29uc3QgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTtcbiAgY29uc3QgeHNsdERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxUb0hUTUwsICd0ZXh0L3htbCcpO1xuICBwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2x0RG9jdW1lbnQpO1xuICBjb25zdCBpdGVtSFRNTEZyYWdtZW50ID0gcHJvY2Vzc29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sRnJhZ21lbnQsIGRvY3VtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MRnJhZ21lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2NhdGlvbih4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgbG9jYXRpb246IHN0cmluZykge1xuICBpZiAoIWxvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICBsb2NhdGlvbiArPSAnLyc7XG4gIH1cblxuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbc3JjXSxbaHJlZl0sW3ByaW1hcnktcGF0aF0nKS5mb3JFYWNoKGVsV2l0aFNyYyA9PiB7XG4gICAgbGV0IGF0dHI6ICdzcmMnIHwgJ2hyZWYnIHwgJ3ByaW1hcnktcGF0aCcgfCAnJyA9ICcnO1xuXG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3NyYycpKSB7XG4gICAgICBhdHRyID0gJ3NyYyc7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIGF0dHIgPSAnaHJlZic7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdwcmltYXJ5LXBhdGgnKSkge1xuICAgICAgYXR0ciA9ICdwcmltYXJ5LXBhdGgnO1xuICAgIH1cbiAgICBjb25zdCBhdHRyVmFsdWUgPSBlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKGF0dHIpPy50cmltKCk7XG5cbiAgICBpZiAoIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBjb25zdCBuZXdTcmNWYWx1ZSA9IGxvY2F0aW9uICsgZW5jb2RlVVJJKGF0dHJWYWx1ZSk7XG4gICAgICBlbFdpdGhTcmMuc2V0QXR0cmlidXRlKGF0dHIsIG5ld1NyY1ZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENEQVRBdG9Db21tZW50KHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IGNkYXRhRWxlbWVudHMgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktY3VzdG9tLW9wZXJhdG9yW2NsYXNzPVwianMub3JnXCJdID4gcXRpLWJhc2UtdmFsdWUnKTtcbiAgY2RhdGFFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbW1lbnRUZXh0ID0gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICBlbGVtZW50LnJlcGxhY2VDaGlsZChjb21tZW50VGV4dCwgZWxlbWVudC5maXJzdENoaWxkKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIC8vIHJlbW92ZSBxdGktc3R5bGVzaGVldCB0YWdcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLXN0eWxlc2hlZXQnKS5mb3JFYWNoKHN0eWxlc2hlZXQgPT4gc3R5bGVzaGVldC5yZW1vdmUoKSk7XG59XG4iLCAiLyoqXG4gKiBCcm93c2VyIGJhc2VkIFFUSS1YTUwgdG8gSFRNTCB0cmFuc2Zvcm1lci5cbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSwgdHJhbnNmb3JtIGFuZCBzZXJpYWxpemUgUVRJIFhNTCBpdGVtcy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcXRpVHJhbnNmb3JtZXIgPSBxdGlUcmFuc2Zvcm1JdGVtKCk7XG4gKiBhd2FpdCBxdGlUcmFuc2Zvcm1lci5sb2FkKCdwYXRoL3RvL3htbC9maWxlLnhtbCcpO1xuICogcXRpVHJhbnNmb3JtZXIucGF0aCgnL2Fzc2Vzc21lbnRJdGVtL2l0ZW1Cb2R5Jyk7XG4gKiBjb25zdCBodG1sID0gcXRpVHJhbnNmb3JtZXIuaHRtbCgpO1xuICogY29uc3QgeG1sID0gcXRpVHJhbnNmb3JtZXIueG1sKCk7XG4gKiBjb25zdCBodG1sZG9jID0gcXRpVHJhbnNmb3JtZXIuaHRtbGRvYygpO1xuICogY29uc3QgeG1sZG9jID0gcXRpVHJhbnNmb3JtZXIueG1sZG9jKCk7XG4gKlxuICogcXRpVHJhbnNmb3JtSXRlbSgpLnBhcnNlKHN0b3J5WE1MKS5odG1sKClcbiAqL1xuXG5pbXBvcnQge1xuICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQsXG4gIGV4dGVuZEVsZW1lbnROYW1lLFxuICBleHRlbmRFbGVtZW50c1dpdGhDbGFzcyxcbiAgbG9hZFhNTCxcbiAgcGFyc2VYTUwsXG4gIHNldExvY2F0aW9uLFxuICBzdHJpcFN0eWxlU2hlZXRzLFxuICB0b0hUTUxcbn0gZnJvbSAnLi9xdGktdHJhbnNmb3JtZXJzJztcblxuZXhwb3J0IHR5cGUgdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3Q/OiBib29sZWFuKSA9PiBQcm9taXNlPHRyYW5zZm9ybUl0ZW1BcGk+O1xuICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICBwYXRoOiAobG9jYXRpb246IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZm46IChmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgcGNpSG9va3M6ICh1cmk6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZXh0ZW5kRWxlbWVudE5hbWU6IChlbGVtZW50TmFtZTogc3RyaW5nLCBleHRlbmQ6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3M6IChwYXJhbT86IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgY3VzdG9tSW50ZXJhY3Rpb246IChiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGNvbnZlcnRDREFUQXRvQ29tbWVudDogKCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgc3RyaXBTdHlsZVNoZWV0czogKCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICB4bWw6ICgpID0+IHN0cmluZztcbiAgaHRtbERvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgeG1sRG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1JdGVtID0gKCkgPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaTogdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSBmYWxzZSk6IFByb21pc2U8dHlwZW9mIGFwaT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdCkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIC8vIHNldCB0aGUgYmFzZSBwYXRoIGZvciBpbWFnZXMgYW5kIG90aGVyIHJlc291cmNlcyxcbiAgICAgICAgICAvLyB5b3UgcHJvYmFibHkgd2FudCB0byBzZXQgdGhlIGJhc2UgcGF0aCB0byB0aGUgZG9jdW1lbnQgcm9vdCBlbHNlIHlvdSBjYW4gdXNlIHRoZSBwYXRoIG1ldGhvZCB0byBzZXQgaXRcbiAgICAgICAgICBhcGkucGF0aCh1cmkuc3Vic3RyaW5nKDAsIHVyaS5sYXN0SW5kZXhPZignLycpKSk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKTogdHlwZW9mIGFwaSB7XG4gICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGF0aDogKGxvY2F0aW9uOiBzdHJpbmcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgIHNldExvY2F0aW9uKHhtbEZyYWdtZW50LCBsb2NhdGlvbik7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpOiB0eXBlb2YgYXBpIHtcbiAgICAgIGZuKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBwY2lIb29rcyh1cmk6IHN0cmluZyk6IHR5cGVvZiBhcGkge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFsnaG9vaycsICdtb2R1bGUnXTtcbiAgICAgIGNvbnN0IGRvY3VtZW50UGF0aCA9IHVyaS5zdWJzdHJpbmcoMCwgdXJpLmxhc3RJbmRleE9mKCcvJykpO1xuICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlcykge1xuICAgICAgICBjb25zdCBzcmNBdHRyaWJ1dGVzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnWycgKyBhdHRyaWJ1dGUgKyAnXScpO1xuICAgICAgICBzcmNBdHRyaWJ1dGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3JjVmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpITtcbiAgICAgICAgICBpZiAoIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgLy8gSnVzdCBwYXN0ZSB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3JjIGxvY2F0aW9uIGFmdGVyIHRoZSBkb2N1bWVudHJvb3RQYXRoXG4gICAgICAgICAgICAvLyBvbGQgcGNpcyBjYW4gaGF2ZSBhIC5qcywgbmV3IHBjaSdzIGRvbid0XG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnYmFzZS11cmwnLCB1cmkpO1xuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICdtb2R1bGUnLFxuICAgICAgICAgICAgICBkb2N1bWVudFBhdGggKyAnLycgKyBlbmNvZGVVUkkoc3JjVmFsdWUgKyAoc3JjVmFsdWUuZW5kc1dpdGgoJy5qcycpID8gJycgOiAnLmpzJykpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZXh0ZW5kRWxlbWVudE5hbWU6ICh0YWdOYW1lOiBzdHJpbmcsIGV4dGVuc2lvbjogc3RyaW5nKTogdHlwZW9mIGFwaSA9PiB7XG4gICAgICBleHRlbmRFbGVtZW50TmFtZSh4bWxGcmFnbWVudCwgdGFnTmFtZSwgZXh0ZW5zaW9uKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBleHRlbmRFbGVtZW50c1dpdGhDbGFzczogKHBhcmFtOiBzdHJpbmcgPSAnZXh0ZW5kJyk6IHR5cGVvZiBhcGkgPT4ge1xuICAgICAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MoeG1sRnJhZ21lbnQsIHBhcmFtKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBjdXN0b21JbnRlcmFjdGlvbihiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvcigncXRpLWN1c3RvbS1pbnRlcmFjdGlvbicpO1xuICAgICAgY29uc3QgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QgPSBxdGlDdXN0b21JbnRlcmFjdGlvbi5xdWVyeVNlbGVjdG9yKCdvYmplY3QnKTtcblxuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtcmVmJywgYmFzZVJlZik7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYmFzZS1pdGVtJywgYmFzZVJlZiArIGJhc2VJdGVtKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YScsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnZGF0YScpKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpKTtcblxuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucmVtb3ZlQ2hpbGQocXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGNvbnZlcnRDREFUQXRvQ29tbWVudCgpOiB0eXBlb2YgYXBpIHtcbiAgICAgIGNvbnZlcnRDREFUQXRvQ29tbWVudCh4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgc3RyaXBTdHlsZVNoZWV0cygpOiB0eXBlb2YgYXBpIHtcbiAgICAgIHN0cmlwU3R5bGVTaGVldHMoeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbERvYygpIHtcbiAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgeG1sRG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgIHJldHVybiB4bWxGcmFnbWVudDsgLy8gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcbiIsICJpbXBvcnQgeyBsb2FkWE1MLCBwYXJzZVhNTCB9IGZyb20gXCIuL3F0aS10cmFuc2Zvcm1lcnNcIjtcblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybU1hbmlmZXN0ID0gKCk6IHtcbiAgICBsb2FkOiAodXJpOiBzdHJpbmcpID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gICAgYXNzZXNzbWVudFRlc3Q6ICgpID0+IHsgaHJlZjogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfTtcbiAgfSA9PiB7XG4gICAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcbiAgXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICB9LFxuICAgICAgYXNzZXNzbWVudFRlc3QoKSB7XG4gICAgICAgIGNvbnN0IGVsID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvcigncmVzb3VyY2VbdHlwZT1cImltc3F0aV90ZXN0X3htbHYzcDBcIl0nKTtcbiAgICAgICAgcmV0dXJuIHsgaHJlZjogZWwuZ2V0QXR0cmlidXRlKCdocmVmJyksIGlkZW50aWZpZXI6IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpIH07XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gYXBpO1xuICB9OyIsICJcbi8qKlxuICogUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSBhbmQgdHJhbnNmb3JtIFFUSSB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBxdGlUcmFuc2Zvcm1lciA9IHF0aVRyYW5zZm9ybVRlc3QoKTtcbiAqIGF3YWl0IHF0aVRyYW5zZm9ybWVyLmxvYWQoJ2h0dHBzOi8vZXhhbXBsZS5jb20vdGVzdC54bWwnKTtcbiAqIGNvbnN0IGl0ZW1zID0gcXRpVHJhbnNmb3JtZXIuaXRlbXMoKTtcbiAqIGNvbnN0IGh0bWwgPSBxdGlUcmFuc2Zvcm1lci5odG1sKCk7XG4gKiBjb25zdCB4bWwgPSBxdGlUcmFuc2Zvcm1lci54bWwoKTtcbiAqL1xuXG5pbXBvcnQgeyBpdGVtc0Zyb21UZXN0LCBsb2FkWE1MLCBwYXJzZVhNTCwgdG9IVE1MIH0gZnJvbSBcIi4vcXRpLXRyYW5zZm9ybWVyc1wiO1xuXG5leHBvcnQgdHlwZSB0cmFuc2Zvcm1UZXN0QXBpID0ge1xuICAgIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0cmFuc2Zvcm1UZXN0QXBpPjtcbiAgICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0cmFuc2Zvcm1UZXN0QXBpO1xuICAgIGZuOiAoZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpID0+IHRyYW5zZm9ybVRlc3RBcGk7XG4gICAgaXRlbXM6ICgpID0+IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdO1xuICAgIGh0bWw6ICgpID0+IHN0cmluZztcbiAgICB4bWw6ICgpID0+IHN0cmluZztcbiAgICBodG1sRG9jOiAoKSA9PiBEb2N1bWVudEZyYWdtZW50O1xuICAgIHhtbERvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG4gIH1cbiAgXG4gIGV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1UZXN0ID0gKCk6IHRyYW5zZm9ybVRlc3RBcGkgPT4ge1xuICAgIGxldCB4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQ7XG4gIFxuICAgIGNvbnN0IGFwaTp0cmFuc2Zvcm1UZXN0QXBpID0ge1xuICAgICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHRyYW5zZm9ybVRlc3RBcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpIHtcbiAgICAgICAgZm4oeG1sRnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgfSxcbiAgICAgIGl0ZW1zKCkge1xuICAgICAgICByZXR1cm4gaXRlbXNGcm9tVGVzdCh4bWxGcmFnbWVudCk7XG4gICAgICB9LFxuICAgICAgaHRtbCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgICB9LFxuICAgICAgeG1sKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICAgIH0sXG4gICAgICBodG1sRG9jKCkge1xuICAgICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICAgIH0sXG4gICAgICB4bWxEb2MoKTogWE1MRG9jdW1lbnQge1xuICAgICAgICByZXR1cm4geG1sRnJhZ21lbnQ7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gYXBpO1xuICB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLElBQU1BLEVBQU0sT0FBTyxJQWViQyxFQUFZRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQXlCWCxTQUFTRSxFQUFrQkMsRUFBMEJDLEVBQWlCQyxFQUFtQixDQUM5RkYsRUFBWSxpQkFBaUJDLENBQU8sRUFBRSxRQUFRRSxHQUFXLENBQ3ZELElBQU1DLEVBQWEsR0FBR0gsQ0FBTyxJQUFJQyxDQUFTLEdBQ3BDRyxFQUFhQyxFQUE0QkgsRUFB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QWMsRUFBRSxrQkFBa0JXLEVBQU9YLENBQVcsQ0FBQyxDQUNsRSxFQUNBLEtBQWMsQ0FDWixPQUFPLElBQUksY0FBYyxFQUFFLGtCQUFrQkEsQ0FBVyxDQUMxRCxFQUNBLFNBQVUsQ0FDUixPQUFPVyxFQUFPWCxDQUFXLENBQzNCLEVBQ0EsUUFBc0IsQ0FDcEIsT0FBT0EsQ0FDVCxDQUNGLEVBQ0EsT0FBT0MsQ0FDVCIsCiAgIm5hbWVzIjogWyJ4bWwiLCAieG1sVG9IVE1MIiwgImV4dGVuZEVsZW1lbnROYW1lIiwgInhtbEZyYWdtZW50IiwgInRhZ05hbWUiLCAiZXh0ZW5zaW9uIiwgImVsZW1lbnQiLCAibmV3VGFnTmFtZSIsICJuZXdFbGVtZW50IiwgImNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZSIsICJleHRlbmRFbGVtZW50c1dpdGhDbGFzcyIsICJjbGFzc05hbWVQYXR0ZXJuIiwgImNsYXNzTGlzdCIsICJjbGFzc05hbWUiLCAic3VmZml4IiwgImF0dHIiLCAiaXRlbXNGcm9tVGVzdCIsICJpdGVtcyIsICJlbCIsICJpZGVudGlmaWVyIiwgImhyZWYiLCAiY2F0ZWdvcnkiLCAiY3VycmVudFJlcXVlc3QiLCAibG9hZFhNTCIsICJ1cmwiLCAiY2FuY2VsUHJldmlvdXNSZXF1ZXN0IiwgInJlc29sdmUiLCAicmVqZWN0IiwgInhociIsICJwYXJzZVhNTCIsICJ4bWxEb2N1bWVudCIsICJ0b0hUTUwiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJzZXRMb2NhdGlvbiIsICJsb2NhdGlvbiIsICJlbFdpdGhTcmMiLCAiX2EiLCAiYXR0clZhbHVlIiwgIm5ld1NyY1ZhbHVlIiwgImNvbnZlcnRDREFUQXRvQ29tbWVudCIsICJjb21tZW50VGV4dCIsICJzdHJpcFN0eWxlU2hlZXRzIiwgInN0eWxlc2hlZXQiLCAicXRpVHJhbnNmb3JtSXRlbSIsICJ4bWxGcmFnbWVudCIsICJhcGkiLCAidXJpIiwgImNhbmNlbFByZXZpb3VzUmVxdWVzdCIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAidGFnTmFtZSIsICJleHRlbnNpb24iLCAiZXh0ZW5kRWxlbWVudE5hbWUiLCAicGFyYW0iLCAiZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MiLCAiYmFzZVJlZiIsICJiYXNlSXRlbSIsICJxdGlDdXN0b21JbnRlcmFjdGlvbiIsICJxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCIsICJjb252ZXJ0Q0RBVEF0b0NvbW1lbnQiLCAic3RyaXBTdHlsZVNoZWV0cyIsICJ0b0hUTUwiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAiZWwiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJ4bWxGcmFnbWVudCIsICJhcGkiLCAidXJpIiwgInJlc29sdmUiLCAicmVqZWN0IiwgImxvYWRYTUwiLCAieG1sIiwgInhtbFN0cmluZyIsICJwYXJzZVhNTCIsICJmbiIsICJpdGVtc0Zyb21UZXN0IiwgInRvSFRNTCJdCn0K
|