@spiffcommerce/core 24.0.2 → 25.0.1

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.
@@ -1,3335 +0,0 @@
1
- (function(w,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("@apollo/client/core"),require("@apollo/client/link/context"),require("@apollo/client/link/error"),require("preact-render-to-string"),require("exifreader"),require("pith"),require("lodash.debounce"),require("lodash.isequal"),require("data-uri-to-buffer"),require("css"),require("fuse.js"),require("lodash.clonedeep"),require("preact/jsx-runtime"),require("opentype.js"),require("qrcode"),require("unicode-default-word-boundary"),require("svg-path-bbox"),require("lodash.chunk")):typeof define=="function"&&define.amd?define(["exports","@apollo/client/core","@apollo/client/link/context","@apollo/client/link/error","preact-render-to-string","exifreader","pith","lodash.debounce","lodash.isequal","data-uri-to-buffer","css","fuse.js","lodash.clonedeep","preact/jsx-runtime","opentype.js","qrcode","unicode-default-word-boundary","svg-path-bbox","lodash.chunk"],F):(w=typeof globalThis<"u"?globalThis:w||self,F(w.Core={},w.core,w.context,w.error,w.preactRenderToString,w.ExifReader,w.pith,w.debounce,w.isEqual,w.dataUriToBuffer,w.css,w.Fuse,w.cloneDeep,w.jsxRuntime,w.opentype,w.qrcode,w.unicodeDefaultWordBoundary,w.svgPathBbox,w.chunk))})(this,function(w,F,Gn,Tn,Jn,On,Re,zA,jA,Ln,zn,jn,Dt,x,Ge,KA,Te,Je,VA){"use strict";var Tt=(n=>(n.Data="Data",n.Font="Font",n.Frame="Frame",n.Illustration="Illustration",n.Image="Image",n.Model="Model",n.Material="Material",n.Color="Color",n.QuestionnaireCollateral="QuestionnaireCollateral",n.RequestCollateral="RequestCollateral",n.SignupCollateral="SignupCollateral",n.Video="Video",n.ColorProfile="ColorProfile",n.Environment="Environment",n))(Tt||{}),st=(n=>(n.FileUpload="FileUpload",n.Option="Option",n.ColorOption="ColorOption",n.Text="Text",n))(st||{}),S=(n=>(n.Information="Information",n.Bulk="Bulk",n.DigitalContent="DigitalContent",n.Finish="Finish",n.Frame="Frame",n.Illustration="Illustration",n.Introduction="Introduction",n.Material="Material",n.Model="Model",n.Module="Module",n.Picture="Picture",n.Photo="Photo",n.ProductOverlay="ProductOverlay",n.Question="Question",n.Shape="Shape",n.SilentIllustration="SilentIllustration",n.Text="Text",n))(S||{}),WA=(n=>(n.Color="Color",n.Colors="Colors",n.Selection="Selection",n.Selections="Selections",n.Text="Text",n.Upload="Upload",n))(WA||{}),Ft=(n=>(n.ThreeD="ThreeD",n.FreeDesign="FreeDesign",n.Print="Print",n))(Ft||{}),H=(n=>(n.Frame="frame",n.Group="group",n.Image="image",n.Pattern="pattern",n.Illustration="illustration",n.Textbox="textbox",n))(H||{}),XA=(n=>(n.Hyperlink="Hyperlink",n.Edit="Edit",n.Approve="Approve",n))(XA||{}),qA=(n=>(n.Hub="Hub",n.Shopify="Shopify",n))(qA||{}),he=(n=>(n.BackgroundRemover="BackgroundRemover",n.ConversionAccelerator="Conversion Accelerator",n.ProcessBuilder="ProcessBuilder",n))(he||{}),ZA=(n=>(n[n.Orbit=0]="Orbit",n[n.Pan=1]="Pan",n))(ZA||{}),$A=(n=>(n.Manual="Manual",n.OnStart="OnStart",n.OnQuit="OnQuit",n.OnEnd="OnEnd",n))($A||{}),_A=(n=>(n.Email="Email",n.FirstName="FirstName",n.LastName="LastName",n.Phone="Phone",n))(_A||{}),Jt=(n=>(n.Owner="Owner",n.Approver="Approver",n.Editor="Editor",n.Viewer="Viewer",n))(Jt||{}),Et=(n=>(n.Autosize="Autosize",n.Traditional="Traditional",n))(Et||{}),X=(n=>(n[n.North=0]="North",n[n.Northeast=1]="Northeast",n[n.East=2]="East",n[n.Southeast=3]="Southeast",n[n.South=4]="South",n[n.Southwest=5]="Southwest",n[n.West=6]="West",n[n.Northwest=7]="Northwest",n))(X||{}),ta=(n=>(n.Pixel="px",n.Millimeter="mm",n.Centimeter="cm",n))(ta||{});class ea extends Error{constructor(t){super(t),this.name=this.constructor.name}}class Ot extends ea{constructor(t){super(`ConfigurationError - ${t}`)}}class Lt extends Ot{constructor(t){super(`Option not Configured: ${t.stepTitle}`),this.optionId=(t==null?void 0:t.optionId)||"N/A"}}class q extends Ot{constructor(t){super(`Panel not Found: ${t.panelId}`),this.panelId=(t==null?void 0:t.panelId)||"N/A"}}class lt extends Ot{constructor(t){super(`Asset not found for variant: ${t.name}`),this.variant=t}}class yt extends Ot{constructor(t){super(`Resource not found for asset: ${t.name}`),this.asset=t}}class zt extends Ot{constructor(t,e){super(`Workflow Misconfiguration: ${t.stepName} - ${e}`),this.step=t}}class Ce extends ea{constructor(t){super(`ImplementationError - ${t}`)}}class L extends Ce{constructor(t){super(`Unhandled Behavior Encountered: ${t}`)}}class Mt extends Ce{constructor(t){super(`Parsing Error: ${t}`)}}class R extends Ce{constructor(t){super(`Client Error: ${t}`)}}class we extends Ce{constructor(t){super(`Resource Generation Failed: ${t}`)}}class Kn{get(t){return localStorage.getItem(t)||void 0}set(t,e){localStorage.setItem(t,e)}remove(t){localStorage.removeItem(t)}getMap(t){const e=this.get(t);if(e)return new Map(JSON.parse(e))}setMap(t,e){const A=JSON.stringify([...e.entries()]);this.set(t,A)}}class Aa{constructor(){this.storage=new Map}get(t){return this.storage.get(t)||void 0}set(t,e){this.storage.set(t,e)}remove(t){this.storage.delete(t)}getMap(t){const e=this.get(t);if(e)return new Map(JSON.parse(e))}setMap(t,e){const A=JSON.stringify([...e.entries()]);this.set(t,A)}}const v=(()=>{try{return localStorage?new Kn:new Aa}catch{return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."),new Aa}})();class Vn{constructor(){this.defaultServerUrl="https://api.spiff.com.au",this.defaultServicesApiUrl="https://services.spiff.com.au",this.defaultHubUrl="https://hub.spiff.com.au",this.serverUrl=this.defaultServerUrl,this.servicesApiUrl=this.defaultServicesApiUrl,this.hubUrl=this.defaultHubUrl,this.serverUrlCallbacks=[]}getServerUrl(){return this.serverUrl}getServicesApiUrl(){return this.servicesApiUrl}getHubUrl(){return this.hubUrl}setServerUrl(t){this.serverUrl=t,this.serverUrlCallbacks.forEach(e=>e())}setServicesApiUrl(t){this.servicesApiUrl=t}setHubUrl(t){this.hubUrl=t}addServerUrlCallback(t){this.serverUrlCallbacks.push(t)}}const it=new Vn;let Oe,Le;function Wn(n){Oe=n}function Xn(n){Le=n}function ue(){if(!Oe)throw new Error("DOM constructor is not registered. Please register it before calling this function.");return new Oe}function rt(n,t){if(!Le){if(typeof window<"u"&&window.fetch)return window.fetch(n,t);if(typeof global<"u"&&global.fetch)return global.fetch(n,t);throw new Error("Fetch implementation is not registered. Please register it before calling this function.")}return Le(n,t)}const aa=new Map,na=new Map,ia=new Map,sa=async n=>{const t=na.get(n);if(t)return t;const A=(async()=>{var i;const a=await rt(n);return aa.set(n,((i=a.headers)==null?void 0:i.get("content-type"))||""),await a.arrayBuffer()})();return na.set(n,A),A},qn=async n=>{const t=ia.get(n);if(t)return t;const A=(async()=>await(await rt(n)).text())();return ia.set(n,A),A},jt=n=>n.every(t=>t!=="undefined"),Ee=n=>jt([typeof document])?document.createElement(n):ue().window.document.createElement(n),Zn=(n,t)=>{if(jt([typeof document]))return document.createElementNS(n,t);const A=ue().window.document.createElement(t);return A.setAttribute("xmlns",n),A},gt=()=>{if(jt([typeof DOMParser]))return new DOMParser;const n=ue();return new n.window.DOMParser},me=(n,t)=>new Promise((e,A)=>{t?sa(n).then(e).catch(A):rt(n).then(a=>{a.arrayBuffer().then(e).catch(A)}).catch(a=>{A(a)})}),tt=(n,t)=>new Promise((e,A)=>{t?qn(n).then(e).catch(A):rt(n).then(a=>{a.text().then(e).catch(A)}).catch(A)}),oa=n=>Jn.renderToStaticMarkup(n),ze=new Map,$n=async(n,t)=>{if(jt([typeof FontFace])){if(ze.has(t))return ze.get(t);const e=n.names.fullName.en,A=new FontFace(e,`url(${t})`);document.fonts.add(A);const a=A.load();return ze.set(t,a),a}},Kt=()=>{if(jt([typeof XMLSerializer]))return new XMLSerializer;const n=ue();return new n.window.XMLSerializer},ra=n=>btoa(n),Vt=n=>{function t(){const A=new Uint8Array(n),a=4;if(A.length>=a){const i=new Array(a);for(let r=0;r<a;r++)i[r]=new Uint8Array(n)[r].toString(16);const s=i.join("").toUpperCase();switch(s){case"89504E47":return"image/png";case"47494638":return"image/gif";case"25504446":return"application/pdf";case"504B0304":return"application/zip"}switch(s.slice(0,4)){case"FFD8":return"image/jpeg"}}return null}const e=t();return e||"image/svg+xml"},_n=async n=>{const t=await sa(n),e=aa.get(n)||Vt(t);return await Ai(new Blob([t],{type:e}))},ti=n=>{let t="";const e=n.byteLength;for(let A=0;A<e;A++)t+=String.fromCharCode(n[A]);return t},ei=async n=>{const t=Vt(n),e=new Uint8Array(n),A=ti(e),a=btoa(A);return`data:${t};base64,${a}`},je=n=>`data:image/svg+xml;base64,${btoa(n)}`,ca=n=>{const t=n.replace(/\r?\n/g,""),e=t.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");const A=t.substring(5,e).split(";");let a=!1;for(let s=1;s<A.length;s++)A[s]==="base64"&&(a=!0);const i=decodeURI(t.substring(e+1));return a?new Uint8Array(atob(i).split("").map(o=>o.charCodeAt(0))).buffer:new Uint8Array(i.split("").map(o=>o.charCodeAt(0))).buffer},Ai=n=>new Promise((t,e)=>{const A=new FileReader;A.onload=function(a){const i=a.target;!i||!i.result?e():t(i.result.toString())},A.readAsDataURL(n)});let la;const ga=n=>{la=n};let Ke;const ai=n=>{Ke=n},ni=()=>Ke;let da;const Ba=n=>{da=n},ii=()=>new Promise(n=>{const t=it.getHubUrl(),e=A=>{A.origin===t&&(window.removeEventListener("message",e),n(A.data))};window.parent!==window&&(window.addEventListener("message",e,!1),window.parent.postMessage("ready",t))}),si=async()=>{const n={applicationKey:Ke,customerToken:la,bearer:da};return typeof window<"u"&&(window.location.href.includes("/workflows/product/")||window.location.href.includes("hub=true"))?{...await ii(),...n}:n};class oi{constructor(){this.shadowGraphqlClient=this.constructShadowGraphqlClient(),it.addServerUrlCallback(()=>{this.shadowGraphqlClient=this.constructShadowGraphqlClient()})}getShadowGraphqlClient(){return this.shadowGraphqlClient}constructShadowGraphqlClient(){const t=F.createHttpLink({uri:`${it.getServerUrl()}/graphql`,fetch:rt}),e=Gn.setContext(async(s,o)=>{const{headers:r}=o,c=r||{},l=await si(),g=o.bearer??l.bearer,d=o.partnerId??l.partnerId,B=o.activeIntegration??l.activeIntegration,h=o.transactionOwnerId,C=o.customerToken??l.customerToken,u=o.applicationKey??l.applicationKey,E=o.bundleOwnerId;try{if(window&&window.__SENTRY__){const m=window.__SENTRY__.hub;if(m){const f=m.traceHeaders();Object.entries(f).forEach(([p,Q])=>{c[p]=Q})}}}catch{}return g&&(c.Authorization=`Bearer ${g}`),d&&(c.partnerId=d),B&&(c.activeIntegration=B),h&&(c.transactionOwnerId=h),C&&(c.customerToken=C),u&&(c["X-Application-Key"]=u),E&&(c.bundleOwnerId=E),{headers:c}}),A=Tn.onError(({operation:s,graphQLErrors:o,networkError:r})=>{const c=o||[];r&&console.log("GraphQL Network error"),c.forEach(()=>console.log("GraphQL Error: "+s.operationName))});function a(){return{read(s=null){return s},merge(s,o){return o||s||null}}}const i=new F.InMemoryCache({addTypename:!1,typePolicies:{Transaction:{fields:{transactionOwnerId:a(),customLogoLink:a(),workflowFooterLogoLink:a(),workflowState:a(),externalDesignProductId:a(),externalDesignProductVariantId:a(),externalCartProductId:a(),externalCartProductVariantId:a(),lastSyncedAt:a(),quantity:a(),lineItem:a()}},WorkflowProduct:{fields:{isPresent:a()}},Product:{fields:{imageUrl:a(),overlayImageUrl:a(),preloadImageUrl:a(),weight:a(),conversionConfiguration:a()}}}});return new F.ApolloClient({link:F.from([A,e,t]),cache:i,name:"Core"})}}const N=new oi;let Ve,We;const dt=(n,t,e)=>{if(Ve!==void 0)return Ve(n,t,e);try{const A=ha(!0);return Xe(A),A.createCanvas(n,t,e)}catch{throw new Error("Canvas module not set")}},Wt=(n,t)=>{if(We!==void 0)return We(n,t);try{const e=ha(!0);return Xe(e),e.loadImage(n,t)}catch{throw new Error("Canvas module not set")}};function Xe(n){Ve=n==null?void 0:n.createCanvas,We=n==null?void 0:n.loadImage}function ha(n){try{if(document.createElement("canvas").getContext("2d"))return{createCanvas:(e,A,a)=>{const i=document.createElement("canvas");return e!=null&&(i.width=e),A!=null&&(i.height=A),i},loadImage:(e,A)=>new Promise((a,i)=>{const s=document.createElement("img");A!==!1&&(s.crossOrigin="Anonymous"),s.onload=()=>{a(s)},s.onerror=i,s.src=e})}}catch(t){if(n)throw t}}let qe;function Ze(){return qe===void 0&&(qe=DOMParser),qe}let fe=null;const ri=n=>new Promise(t=>{var a;if(Vt(n)!=="image/jpeg")return t(1);const A=(a=On.load(n).Orientation)==null?void 0:a.value;return t(A?Number(A):1)}),ci=async()=>{if(fe!==null)return!fe;const t=await Wt("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k=");return fe=t.width===2&&t.height===3,!fe},li=n=>{const e=n.naturalWidth/n.naturalHeight;return n.naturalHeight<=8192&&n.naturalWidth<=8192?[n.naturalWidth,n.naturalHeight]:n.naturalHeight>n.naturalWidth?[e*8192,8192]:[8192,8192/e]},gi=async n=>{var g;const t=await ei(n),e=await Wt(t),[A,a]=li(e);if(!await ci()){const d=dt(A,a);return(g=d.getContext("2d"))==null||g.drawImage(e,0,0,A,a),d}const s=await ri(n),[o,r]=s>4?[a,A]:[A,a],c=dt(o,r),l=c.getContext("2d");switch(s){case 2:l.translate(o,0),l.scale(-1,1);break;case 3:l.translate(o,r),l.rotate(Math.PI);break;case 4:l.translate(0,r),l.scale(1,-1);break;case 5:l.rotate(-.5*Math.PI),l.scale(-1,1);break;case 6:l.rotate(-.5*Math.PI),l.translate(-o,0);break;case 7:l.rotate(-.5*Math.PI),l.translate(-o,r),l.scale(1,-1);break;case 8:l.rotate(.5*Math.PI),l.translate(0,-r);break}return l.drawImage(e,0,0,o,r),c},Xt=async n=>{const t=await gi(n);return Vt(n)==="image/jpeg"?{dataUrl:t.toDataURL("image/jpeg",1),height:t.height,width:t.width}:{dataUrl:t.toDataURL(),height:t.height,width:t.width}},di=F.gql`
2
- fragment AssetMetadataFields on Asset {
3
- metadata {
4
- key
5
- value
6
- }
7
- }
8
- `,qt=n=>F.gql`
9
- ${n&&di||""}
10
- fragment AssetFields on Asset {
11
- name
12
- key
13
- type
14
- createdAt
15
- mimeType
16
- fileLink
17
- versions {
18
- name
19
- link
20
- }
21
- ${n&&"...AssetMetadataFields"||""}
22
- }
23
- `,Bi=F.gql`
24
- ${qt(!1)}
25
- query GetAssets($keys: [String]!) {
26
- assets(keys: $keys) {
27
- ...AssetFields
28
- }
29
- }
30
- `,$e=F.gql`
31
- fragment MaterialFields on Material {
32
- id
33
- name
34
- createdAt
35
- clearCoat
36
- clearCoatIor
37
- refractionIntensity
38
- reflectionIntensity
39
- reflectionRotation
40
- albedoMap {
41
- key
42
- fileLink
43
- }
44
- alphaMap {
45
- key
46
- fileLink
47
- }
48
- ambientMap {
49
- key
50
- fileLink
51
- }
52
- emissionMap {
53
- key
54
- fileLink
55
- }
56
- metallicMap {
57
- key
58
- fileLink
59
- }
60
- normalMap {
61
- key
62
- fileLink
63
- }
64
- refractionMap {
65
- key
66
- fileLink
67
- }
68
- reflectionMap {
69
- key
70
- fileLink
71
- }
72
- roughnessMap {
73
- key
74
- fileLink
75
- }
76
- }
77
- `,hi=F.gql`
78
- ${$e}
79
- query GetMaterials($ids: [String]) {
80
- materials(id: $ids) {
81
- ...MaterialFields
82
- }
83
- }
84
- `,Ci=F.gql`
85
- mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
86
- assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
87
- uploadUrl
88
- asset {
89
- name
90
- key
91
- type
92
- createdAt
93
- mimeType
94
- fileLink
95
- }
96
- }
97
- }
98
- `,wi=F.gql`
99
- ${qt(!1)}
100
- mutation RemoveBackgroundFromAsset($key: String!) {
101
- assetRemoveBackground(key: $key) {
102
- ...AssetFields
103
- }
104
- }
105
- `,_e=async n=>(await N.getShadowGraphqlClient().query({query:Bi,errorPolicy:"all",fetchPolicy:"no-cache",variables:{keys:n}})).data.assets,ui=async n=>(await N.getShadowGraphqlClient().query({query:hi,errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:n}})).data.materials,Ei=async(n,t,e,A,a)=>{var s;return(s=(await N.getShadowGraphqlClient().mutate({mutation:Ci,errorPolicy:"all",fetchPolicy:"no-cache",variables:{name:n,type:t,mimeType:e,anonymous:A,temporary:a}})).data)==null?void 0:s.assetCreate};class mi{constructor(){this.cache=new Map,this.bgrmProcessCache=new Map,this.materialCache=new Map,this.loadImageAsFileInfo=async t=>{const e=await t.arrayBuffer(),A=await Xt(e),a=(i,s)=>{const o=atob(i.split(",")[1]),r=[];for(let c=0;c<o.length;c++)r.push(o.charCodeAt(c));return new Blob([new Uint8Array(r)],{type:s})};return{name:t.name.substring(t.name.lastIndexOf("/")+1),blob:a(A.dataUrl,t.type)}}}async getLocalOrFromServer(t){if(this.cache.has(t)){const a=this.cache.get(t);if(!a)throw new L("Failed to get asset from cache!");return a}const A=(async()=>(await _e([t]))[0])();return this.cache.set(t,A),A}async getFromServer(t){const A=(async()=>(await _e([t]))[0])();return this.cache.set(t,A),A}keyFromURL(t){let e;try{e=new URL(t).pathname}catch{e=void 0}return e!==void 0&&e.startsWith("/")&&(e=e.replace("/","")),e==null?void 0:e.split("?")[0]}cacheAsset(t){if(!t.key)throw new L("Asset has no key!");this.cache.has(t.key)||this.cache.set(t.key,Promise.resolve(t))}cacheMaterial(t){if(!t.id)throw new L("Material has no id!");this.materialCache.has(t.id)||this.materialCache.set(t.id,Promise.resolve(t))}async getMaterialLocalOrFromServer(t){if(this.materialCache.has(t))return this.materialCache.get(t);const A=(async()=>(await ui([t]))[0])();return this.materialCache.set(t,A),A}async uploadAssetWithProgress(t,e,A,a,i){const s=await this.dispatchCreateAssetRequest(t,e,a,i);if(!s)throw new Error("Failed to create asset.");return await new Promise((o,r)=>{const c=new XMLHttpRequest;c.open("PUT",s.assetResponse.uploadUrl,!0),c.setRequestHeader("Content-Type",s.mimeType),c.setRequestHeader("Cache-Control","public,max-age=31536000,immutable"),c.upload.onprogress=l=>{l.lengthComputable&&A(l.loaded*100/l.total)},c.onload=()=>{const l=s.assetResponse.asset;St.add(s.assetResponse.asset),o(l)},c.onerror=r,c.send(t.blob)}),this.cacheAsset(s.assetResponse.asset),s.assetResponse.asset}async uploadAsset(t,e,A,a){return this.uploadAssetWithProgress(t,e,()=>{},A,a)}async uploadFile(t,e){const A=!(t.type==="image/svg+xml"||t.type==="application/pdf"||t.type==="application/postscript"),a=A?Tt.Image:Tt.Illustration;if(A){const i=await this.loadImageAsFileInfo(t);return await this.uploadAssetWithProgress(i,a,e,!0)}else{const i={name:t.name,blob:new Blob([t],{type:t.type})};return await this.uploadAssetWithProgress(i,a,e,!0)}}async removeBackgroundFromAsset(t){const e=t.key;if(this.bgrmProcessCache.has(e))return this.bgrmProcessCache.get(e);if(Z.has(e)){const i=this.getLocalOrFromServer(Z.get(e));return this.bgrmProcessCache.set(e,i),i}const a=(async()=>{var s,o;const i=await N.getShadowGraphqlClient().mutate({mutation:wi,fetchPolicy:"no-cache",errorPolicy:"all",variables:{key:e}});if(this.bgrmProcessCache.delete(e),!((o=(s=i.data)==null?void 0:s.assetRemoveBackground)!=null&&o.key))throw new Error("Failed to remove background from image");return St.add(i.data.assetRemoveBackground),Z.add(e,i.data.assetRemoveBackground.key),this.cache.set(i.data.assetRemoveBackground.key,Promise.resolve(i.data.assetRemoveBackground)),i.data.assetRemoveBackground})();return this.bgrmProcessCache.set(e,a),a}removePersistedAsset(t){St.remove(t),Z.delete(t),Z.deleteForBgRemovedKey(t)}getPersistedAssets(){return St.list()}registerPersistedAssetListener(t){St.addCallback(t)}unRegisterPersistedAssetListener(t){St.removeCallback(t)}async dispatchCreateAssetRequest(t,e,A,a){const i=t.blob.type?t.blob.type:this.guessMIME(t.name),s=await Ei(t.name,e,i,A,a);if(s)return{assetResponse:s,mimeType:i}}guessMIME(t){const e=t.split(".").pop();switch(e){case"glb":return"model/gltf-binary";case"ttf":return"font/ttf";case"mkv":return"video/x-matroska";default:throw new L("Unexpected mimetype: "+e)}}}const Zt="persistentAssets",Ca=class It{static add(t){if(!t.fileLink){console.error("Failed to find cdn link on asset, cannot persist!");return}const e=new Map;e.set(t.key||"",t.fileLink);const A=v.getMap(Zt);A&&A.forEach((a,i)=>{e.set(i,a)}),v.setMap(Zt,e),It.executeCallbacks()}static remove(t){const e=v.getMap(Zt);if(!e)return;const A=Array.from(e.entries()).find(a=>a[0]===t);A&&(e.delete(A[0]),v.setMap(Zt,e),It.executeCallbacks())}static list(){const t=v.getMap(Zt);return t?Array.from(t.entries()).map(e=>({assetKey:e[0],src:e[1]})):[]}static addCallback(t){It.callbacks.push(t)}static removeCallback(t){It.callbacks=It.callbacks.filter(e=>e!==t)}static executeCallbacks(){It.callbacks.forEach(t=>t())}};Ca.callbacks=[];let St=Ca;const wa="bgrmPersistentAssets";class Z{static has(t){return Z.getMap().has(t)}static get(t){return Z.getMap().get(t)}static keys(){return Z.getMap().keys()}static values(){return Z.getMap().values()}static add(t,e){const A=Z.getMap();A.set(t,e),Z.setMap(A)}static delete(t){const e=Z.getMap();e.delete(t),Z.setMap(e)}static deleteForBgRemovedKey(t){const e=Z.getMap(),A=Array.from(e.keys()).find(a=>e.get(a)===t);A&&(e.delete(A),Z.setMap(e))}static getMap(){return v.getMap(wa)||new Map}static setMap(t){v.setMap(wa,t)}}const T=new mi;class fi{constructor(){this.cache={},this.disabled=!1}get(t){if(this.disabled)return;const e=JSON.stringify(t);return this.cache[e]}set(t,e){if(this.disabled)return e;const A=JSON.stringify(t);return this.cache[A]=e,e}disable(t){this.disabled=t}}const xt=new fi,ua=F.gql`
106
- fragment OptionFields on Option {
107
- id
108
- name
109
- public
110
- currencyCode
111
- type
112
- workflowId
113
- displayType
114
- variants {
115
- id
116
- name
117
- enabled
118
- color
119
- namedColor
120
- priceModifier
121
- asset {
122
- ...AssetFields
123
- }
124
- thumbnail {
125
- ...AssetFields
126
- }
127
- material {
128
- ...MaterialFields
129
- }
130
- }
131
- defaultVariant {
132
- id
133
- name
134
- asset {
135
- ...AssetFields
136
- }
137
- }
138
- colorProfile {
139
- ...AssetFields
140
- }
141
- }
142
- `,Qi=F.gql`
143
- ${qt(!1)}
144
- ${$e}
145
- ${ua}
146
- query GetOptions($ids: [String]!) {
147
- options(ids: $ids) {
148
- ...OptionFields
149
- }
150
- }
151
- `,pi=async n=>{const t=await N.getShadowGraphqlClient().query({query:Qi,errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:n}});return t.data.options.forEach(e=>{var A,a;(A=e.defaultVariant)!=null&&A.asset&&T.cacheAsset(e.defaultVariant.asset),e.colorProfile&&T.cacheAsset(e.colorProfile),(a=e.variants)==null||a.forEach(i=>{i.asset&&T.cacheAsset(i.asset),i.thumbnail&&T.cacheAsset(i.thumbnail),i.material&&T.cacheMaterial(i.material)})}),t.data.options},Ii=async(n,t)=>(await t).find(A=>A.id===n),Di=async n=>{const t=n.map(s=>xt.get({id:s})),e=n.filter((s,o)=>t[o]===void 0);if(e.length===0)return Promise.all(t);const A=pi(e),a=e.map(s=>xt.set({id:s},Ii(s,A))),i=t.filter(s=>s!==void 0);return await Promise.all(i.concat(a))};class Fi{constructor(){this.getSelectedVariant=(t,e)=>{var A;if(!(!t||e.length===0))return(A=t.variants)==null?void 0:A.find(a=>a.id===e[0])}}async getOption(t){return(async()=>{const a=(await Di([t]))[0];if(a)return a})()}async getAssetTileImageForVariant(t){var a,i;const e=t.thumbnail;if(e){const s=(a=e.versions)==null?void 0:a.find(r=>r.name==="thumbnail"),o=e.fileLink;return(s==null?void 0:s.link)||o}const A=t.asset;if(A){const s=(i=A.versions)==null?void 0:i.find(r=>r.name==="thumbnail"),o=A.fileLink;return(s==null?void 0:s.link)||o}return t.material?t.material.id:""}getDefaultVariant(t){const e=t.variants;if(e){if(e.length===1)return e[0];if(t.defaultVariant!==void 0)return e.find(A=>{var a;return A.id===((a=t.defaultVariant)==null?void 0:a.id)})}}}const et=new Fi,Ea=F.gql`
152
- fragment ActiveIntegrationFields on Integration {
153
- id
154
- logo
155
- theme {
156
- id
157
- configuration
158
- primaryColor
159
- secondaryColor
160
- textColor
161
- }
162
- partner {
163
- id
164
- name
165
- activeAddons
166
- }
167
- }
168
- `,yi=F.gql`
169
- ${Ea}
170
- query GetCurrentIntegration {
171
- currentIntegration {
172
- ...ActiveIntegrationFields
173
- }
174
- }
175
- `,Yt=F.gql`
176
- fragment AdditionalIntegrationProductFields on IntegrationProduct {
177
- id
178
- product {
179
- id
180
- basePrice
181
- enabled
182
- name
183
- description
184
- sku
185
- skuCode
186
- weight
187
- imageUrl
188
- modelUrl
189
- overlayImageUrl
190
- preloadImageUrl
191
- }
192
- }
193
- `,ma=F.gql`
194
- ${Yt}
195
- mutation CreateTransaction(
196
- $integrationProductId: String
197
- $externalIntegrationId: String
198
- $externalProductId: String
199
- $claim: Boolean
200
- $workflowId: String
201
- $designName: String
202
- $marketplaceThemeInstallId: String
203
- $marketplaceThemeInstallConfigurationId: String
204
- ) {
205
- transactionCreate(
206
- integrationProductId: $integrationProductId
207
- externalIntegrationId: $externalIntegrationId
208
- externalProductId: $externalProductId
209
- claim: $claim
210
- workflowId: $workflowId
211
- designName: $designName
212
- marketplaceThemeInstallId: $marketplaceThemeInstallId
213
- marketplaceThemeInstallConfigurationId: $marketplaceThemeInstallConfigurationId
214
- ) {
215
- id
216
- designName
217
- transactionOwnerId
218
- workflowId
219
- customLogoLink
220
- workflowFooterLogoLink
221
- restApiIntegrationLink
222
- workflowState
223
- workflowViewerLink
224
- workflowViewerReadOnlyLink
225
- product {
226
- id
227
- basePrice
228
- enabled
229
- name
230
- description
231
- partner {
232
- id
233
- name
234
- currencyCode
235
- customerDetailsPromptMarkdown
236
- }
237
- profanities {
238
- id
239
- word
240
- }
241
- sku
242
- skuCode
243
- weight
244
- workflows {
245
- id
246
- friendlyName
247
- isPresent
248
- workflowName
249
- imageUrl
250
- }
251
- imageUrl
252
- modelUrl
253
- overlayImageUrl
254
- preloadImageUrl
255
- promptForCustomerDetails
256
- conversionConfiguration {
257
- id
258
- name
259
- locations
260
- requestedData
261
- requestedDataItems {
262
- type
263
- mandatory
264
- }
265
- mandatory
266
- }
267
- productTags {
268
- id
269
- name
270
- }
271
- priceBreaks {
272
- id
273
- minQty
274
- percentage
275
- }
276
- }
277
- integrationProduct {
278
- id
279
- externalProductId
280
- externalVariantId
281
- additionalExternalProductId
282
- additionalExternalVariantId
283
- additionalIntegrationProduct {
284
- ...AdditionalIntegrationProductFields
285
- }
286
- }
287
- }
288
- }
289
- `,Mi=F.gql`
290
- ${Yt}
291
- mutation CreateTransactions(
292
- $inputs: [TransactionCreateInput]!
293
- $marketplaceThemeInstallId: String
294
- $marketplaceThemeInstallConfigurationId: String
295
- ) {
296
- transactionCreateMany(
297
- inputs: $inputs
298
- marketplaceThemeInstallId: $marketplaceThemeInstallId
299
- marketplaceThemeInstallConfigurationId: $marketplaceThemeInstallConfigurationId
300
- ) {
301
- id
302
- designName
303
- transactionOwnerId
304
- workflowId
305
- customLogoLink
306
- workflowFooterLogoLink
307
- restApiIntegrationLink
308
- workflowState
309
- workflowViewerLink
310
- workflowViewerReadOnlyLink
311
- product {
312
- id
313
- basePrice
314
- enabled
315
- name
316
- description
317
- partner {
318
- id
319
- name
320
- currencyCode
321
- customerDetailsPromptMarkdown
322
- }
323
- profanities {
324
- id
325
- word
326
- }
327
- sku
328
- skuCode
329
- weight
330
- workflows {
331
- id
332
- friendlyName
333
- isPresent
334
- workflowName
335
- imageUrl
336
- }
337
- imageUrl
338
- modelUrl
339
- overlayImageUrl
340
- preloadImageUrl
341
- promptForCustomerDetails
342
- conversionConfiguration {
343
- id
344
- name
345
- locations
346
- requestedData
347
- requestedDataItems {
348
- type
349
- mandatory
350
- }
351
- mandatory
352
- }
353
- productTags {
354
- id
355
- name
356
- }
357
- priceBreaks {
358
- id
359
- minQty
360
- percentage
361
- }
362
- }
363
- integrationProduct {
364
- id
365
- externalProductId
366
- externalVariantId
367
- additionalExternalProductId
368
- additionalExternalVariantId
369
- additionalIntegrationProduct {
370
- ...AdditionalIntegrationProductFields
371
- }
372
- }
373
- }
374
- }
375
- `,Si=F.gql`
376
- ${Yt}
377
- mutation ClaimTransaction($id: String!) {
378
- transactionClaim(id: $id) {
379
- id
380
- designName
381
- transactionOwnerId
382
- workflowId
383
- customLogoLink
384
- workflowFooterLogoLink
385
- restApiIntegrationLink
386
- workflowState
387
- workflowViewerLink
388
- workflowViewerReadOnlyLink
389
- product {
390
- id
391
- basePrice
392
- enabled
393
- name
394
- description
395
- partner {
396
- id
397
- name
398
- currencyCode
399
- customerDetailsPromptMarkdown
400
- }
401
- profanities {
402
- id
403
- word
404
- }
405
- sku
406
- skuCode
407
- weight
408
- workflows {
409
- id
410
- friendlyName
411
- isPresent
412
- workflowName
413
- imageUrl
414
- }
415
- imageUrl
416
- modelUrl
417
- overlayImageUrl
418
- preloadImageUrl
419
- promptForCustomerDetails
420
- conversionConfiguration {
421
- id
422
- name
423
- locations
424
- requestedData
425
- requestedDataItems {
426
- type
427
- mandatory
428
- }
429
- mandatory
430
- }
431
- productTags {
432
- id
433
- name
434
- }
435
- priceBreaks {
436
- id
437
- minQty
438
- percentage
439
- }
440
- }
441
- integrationProduct {
442
- id
443
- externalProductId
444
- externalVariantId
445
- additionalExternalProductId
446
- additionalExternalVariantId
447
- additionalIntegrationProduct {
448
- ...AdditionalIntegrationProductFields
449
- }
450
- }
451
- }
452
- }
453
- `,fa=F.gql`
454
- fragment StakeholderFields on Stakeholder {
455
- id
456
- type
457
- authorizationDate
458
- authorizationNote
459
- authorizationStatus
460
- }
461
- `,Qa=F.gql`
462
- fragment TransactionShareActionFields on TransactionShareAction {
463
- id
464
- title
465
- type
466
- stakeholderType
467
- precedence
468
- url
469
- }
470
- `,Qe=F.gql`
471
- ${Yt}
472
- ${fa}
473
- ${Qa}
474
- ${Ea}
475
- query ReadTransactions($ids: [String]!) {
476
- transactions(ids: $ids) {
477
- customLogoLink
478
- designName
479
- externalDesignProductId
480
- externalDesignProductVariantId
481
- externalCartProductId
482
- externalCartProductVariantId
483
- id
484
- lastSyncedAt
485
- priceModifierTotal
486
- restApiIntegrationLink
487
- workflowFooterLogoLink
488
- workflowId
489
- workflowState
490
- workflowViewerLink
491
- workflowViewerReadOnlyLink
492
- previewImageLink
493
- isOrdered
494
- quantity
495
- printFileUrl1
496
- printFileUrl2
497
- printFileUrl3
498
- printFileUrl4
499
- printFileUrl5
500
- printFileName1
501
- printFileName2
502
- printFileName3
503
- printFileName4
504
- printFileName5
505
- stakeholders {
506
- ...StakeholderFields
507
- }
508
- currentStakeholder {
509
- ...StakeholderFields
510
- }
511
- hasAuthenticatedActions
512
- transactionShareActions {
513
- ...TransactionShareActionFields
514
- }
515
- product {
516
- id
517
- basePrice
518
- enabled
519
- name
520
- description
521
- partner {
522
- id
523
- name
524
- currencyCode
525
- customerDetailsPromptMarkdown
526
- }
527
- productImages {
528
- id
529
- precedence
530
- asset {
531
- key
532
- fileLink
533
- name
534
- type
535
- versions {
536
- name
537
- link
538
- }
539
- }
540
- }
541
- integrationProducts {
542
- id
543
- integration {
544
- id
545
- type
546
- }
547
- externalProductId
548
- externalVariantId
549
- additionalExternalProductId
550
- additionalExternalVariantId
551
- additionalIntegrationProduct {
552
- ...AdditionalIntegrationProductFields
553
- }
554
- }
555
- profanities {
556
- id
557
- word
558
- }
559
- sku
560
- skuCode
561
- weight
562
- workflows {
563
- id
564
- friendlyName
565
- isPresent
566
- workflowName
567
- imageUrl
568
- }
569
- imageUrl
570
- modelUrl
571
- overlayImageUrl
572
- preloadImageUrl
573
- promptForCustomerDetails
574
- conversionConfiguration {
575
- id
576
- name
577
- locations
578
- requestedData
579
- requestedDataItems {
580
- type
581
- mandatory
582
- }
583
- mandatory
584
- }
585
- productTags {
586
- id
587
- name
588
- }
589
- priceBreaks {
590
- id
591
- minQty
592
- percentage
593
- }
594
- }
595
- integrationProduct {
596
- id
597
- externalProductId
598
- externalVariantId
599
- additionalExternalProductId
600
- additionalExternalVariantId
601
- additionalIntegrationProduct {
602
- ...AdditionalIntegrationProductFields
603
- }
604
- integration {
605
- ...ActiveIntegrationFields
606
- }
607
- }
608
- }
609
- }
610
- `,xi=F.gql`
611
- mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
612
- transactionUpdate(id: $id, workflowState: $workflowState) {
613
- id
614
- }
615
- }
616
- `,Yi=F.gql`
617
- mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
618
- transactionUpdate(id: $id, workflowId: $workflowId) {
619
- id
620
- }
621
- }
622
- `,Pi=F.gql`
623
- mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
624
- transactionUpdate(id: $id, quantity: $quantity) {
625
- id
626
- }
627
- }
628
- `;F.gql`
629
- query ReadTransactionForDesignCreation($id: String!) {
630
- transactions(ids: [$id]) {
631
- id
632
- designName
633
- product {
634
- basePrice
635
- promptForCustomerDetails
636
- partner {
637
- id
638
- name
639
- customerDetailsPromptMarkdown
640
- }
641
- conversionConfiguration {
642
- id
643
- name
644
- locations
645
- requestedData
646
- requestedDataItems {
647
- type
648
- mandatory
649
- }
650
- mandatory
651
- }
652
- productTags {
653
- id
654
- name
655
- }
656
- priceBreaks {
657
- id
658
- minQty
659
- percentage
660
- }
661
- }
662
- priceModifierTotal
663
- externalDesignProductId
664
- externalDesignProductVariantId
665
- externalCartProductId
666
- externalCartProductVariantId
667
- workflowViewerLink
668
- workflowViewerReadOnlyLink
669
- lastSyncedAt
670
- quantity
671
- }
672
- }
673
- `;const vi=F.gql`
674
- ${Qa}
675
- query ReadTransactionForShareActions($id: String!) {
676
- transactions(ids: [$id]) {
677
- id
678
- hasAuthenticatedActions
679
- transactionShareActions {
680
- ...TransactionShareActionFields
681
- }
682
- }
683
- }
684
- `,pa=F.gql`
685
- query ReadWorkflowStates($ids: [String]!) {
686
- transactions(ids: $ids) {
687
- id
688
- workflowState
689
- }
690
- }
691
- `,Ia=F.gql`
692
- ${Yt}
693
- fragment IntegrationProductFields on IntegrationProduct {
694
- id
695
- externalProductId
696
- externalVariantId
697
- additionalExternalProductId
698
- additionalExternalVariantId
699
- additionalIntegrationProduct {
700
- ...AdditionalIntegrationProductFields
701
- }
702
- integration {
703
- id
704
- enabled
705
- externalIntegrationId
706
- type
707
- }
708
- product {
709
- id
710
- basePrice
711
- enabled
712
- imageUrl
713
- modelUrl
714
- name
715
- description
716
- overlayImageUrl
717
- preloadImageUrl
718
- sku
719
- skuCode
720
- workflows {
721
- id
722
- index
723
- friendlyName
724
- isPresent
725
- workflowName
726
- imageUrl
727
- }
728
- productTags {
729
- id
730
- name
731
- }
732
- productImages {
733
- id
734
- precedence
735
- asset {
736
- key
737
- fileLink
738
- name
739
- type
740
- versions {
741
- name
742
- link
743
- }
744
- }
745
- }
746
- priceBreaks {
747
- id
748
- minQty
749
- percentage
750
- }
751
- }
752
- }
753
- `,Ni=F.gql`
754
- ${Ia}
755
- query GetIntegrationProducts($ids: [String!]!) {
756
- integrationProducts(ids: $ids) {
757
- ...IntegrationProductFields
758
- }
759
- }
760
- `,ki=F.gql`
761
- ${Ia}
762
- query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
763
- integrationProductFromExternalIds(
764
- externalIntegrationId: $externalIntegrationId
765
- externalProductId: $externalProductId
766
- ) {
767
- ...IntegrationProductFields
768
- }
769
- }
770
- `,Hi=F.gql`
771
- ${fa}
772
- query ReadTransactionForStakeholders($id: String!) {
773
- transactions(ids: [$id]) {
774
- stakeholders {
775
- ...StakeholderFields
776
- }
777
- currentStakeholder {
778
- ...StakeholderFields
779
- }
780
- }
781
- }
782
- `,$t=[S.SilentIllustration,S.ProductOverlay],bi=async n=>{const t=[];n.introduction&&t.push({name:"Introduction",title:n.name,renderableSteps:[{type:S.Introduction,stepName:"Introduction",stepTitle:n.name,helpText:n.introduction,data:{},conditions:[]}],silentSteps:[]});for(const A of n.steps){const a=Ui(A.stepName,n.stepGroups);if(!a)t.push({name:A.stepName,title:A.stepTitle,renderableSteps:$t.includes(A.type)?[]:[A],silentSteps:$t.includes(A.type)?[A]:[]});else{const i=t.find(s=>s.name===a.name);i?$t.includes(A.type)?i.silentSteps.push(A):i.renderableSteps.push(A):t.push({name:a.name,title:a.name,renderableSteps:$t.includes(A.type)?[]:[A],silentSteps:$t.includes(A.type)?[A]:[]})}}const e="workflow.steps.finish.confirmDesign";return t.push({name:"Finish",title:e,renderableSteps:[{type:S.Finish,stepName:"Finish",stepTitle:e,helpText:"",data:{modelAnimation:n.finalizeStepConfig?n.finalizeStepConfig.modelAnimation:void 0,lookAtAnimation:n.finalizeStepConfig?n.finalizeStepConfig.lookAtAnimation:void 0},conditions:[]}],silentSteps:[]}),t},Ui=(n,t)=>t.find(e=>e.stepNames.includes(n)),mt=(n,t)=>(n.conditions||[]).every(e=>{const A=t[e.targetStepName];if(A&&A.selectedVariants){const a=A.selectedVariants;return e.requiredVariantSelections.some(i=>a.find(s=>s.id===i)!==void 0)}return!1}),Ri=(n,t)=>{const e={name:n.name,title:n.title,renderableSteps:n.renderableSteps.filter(A=>mt(A,t)),silentSteps:n.silentSteps.filter(A=>mt(A,t))};return e.silentSteps.length===0&&e.renderableSteps.length===0?null:e},Pt=(n,t)=>n.map(e=>Ri(e,t)).filter(e=>e!==null),Gi=async(n,t,e=!1)=>{var s;const A=Pt(n,t),a=[];for(const o of A)for(const r of o.renderableSteps){const c=(((s=r.option)==null?void 0:s.variants)||[]).length;r.silent||(r.type===S.Model||r.type===S.Material||r.type===S.Picture||r.type===S.Shape?(c>1||e)&&a.push(r.stepName):a.push(r.stepName))}const i=A.filter(o=>o.renderableSteps.filter(c=>a.includes(c.stepName)).length>0);for(const o of i)o.renderableSteps=o.renderableSteps.filter(r=>a.includes(r.stepName));return i};class tA{constructor(){this.timestamp=Date.now()}}class eA{constructor(t,e=!0){this.queue=[],this.activePromise=void 0,this.queueMaxSize=void 0,this.queueMaxSize=t,this.isEnabled=e}enqueue(t){if(this.queue.push(t),this.queueMaxSize!==void 0&&this.queue.length>this.queueMaxSize){const e=this.queue.length-1;for(let A=0;A<e;++A)this.queue.shift()}this.isEnabled&&(this.activePromise||(this.activePromise=this.dequeue()))}get enabled(){return this.isEnabled}set enabled(t){!this.isEnabled&&t&&!this.activePromise&&this.getRemainingQueueSize()>0&&(this.activePromise=this.dequeue()),this.isEnabled=t}hasActivePromise(){return!!this.activePromise}getRemainingQueueSize(){return this.queue.length}async finalize(){return this.activePromise?this.activePromise:Promise.resolve()}async dequeue(){const t=this.queue.shift();if(!t){this.activePromise=void 0;return}try{await t.execute()}catch(e){console.log(e)}finally{await this.dequeue()}}}const _t=n=>{const t=n.variants;if(t){if(t.length===1)return t[0];if(n.defaultVariant!==void 0)return t.find(e=>e.id===n.defaultVariant)}},Bt=new Map,vt=new Map,AA=new Map,Da=async(n,t)=>{if(!t){if(!n)throw new Error("No region or src supplied. Cannot construct frame!");return aA(n)}return tt(t)},aA=n=>{const t=n.width,e=n.height;return`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${t} ${e}'>
783
- <path id="target-path" d='M0 0 h ${t} v ${e} h ${-t} Z' />
784
- </svg>
785
- `},Ti=(n,t)=>{var A;if(!t)return;const e=((A=t.variants)==null?void 0:A.find(a=>a.id===n.frameVariantId))||_t(t);if(!e)throw new Error(`No variant with ID: ${n.frameVariantId}`);if(!e.asset)throw new Error(`No asset for variant with ID: ${n.frameVariantId}`);return e},te=async n=>{if(AA.has(n))return AA.get(n);const e=(async()=>{if(vt.has(n))return vt.get(n);await new Promise(d=>setTimeout(d,0));const a=gt().parseFromString(n,"image/svg+xml"),i=a.querySelector("svg");if(!i)throw new Error("Malformed frame SVG: <svg> tag not found");const s=i.getAttribute("viewBox");if(!s)throw new Error("SVG missing viewBox.");const o=s.split(" "),r=parseFloat(o[3])||1,c=parseFloat(o[2])||1,l=a.getElementById("target-path"),g=a.getElementsByClassName("st0").item(0);if(l){const d=l.getAttribute("d");if(!d)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const B={path:d,width:c,height:r};return vt.set(d,B),B}if(g){const d=g.getAttribute("d");if(!d)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const B={path:d,width:c,height:r};return vt.set(d,B),B}throw new Error("Malformed frame SVG")})();return AA.set(n,e),e},nA=(n,t,e,A)=>{const a=t.width/t.height,i=n.width/n.height;let s;A?i>a?s=t.height/n.height:s=t.width/n.width:i>a?s=t.width/n.width:s=t.height/n.height,(e==null?void 0:e.scale)!==void 0&&(s*=e==null?void 0:e.scale);const o=t.width/2,r=t.height/2,c=o-n.width/2*s,l=(e==null?void 0:e.left)||c,g=r-n.height/2*s,d=(e==null?void 0:e.top)||g;return{x:l,y:d,zoom:s}},iA=async n=>{var e;if(Bt.has(n))return Bt.get(n);if(n.startsWith("data:image/svg+xml")){const A=Ln.dataUriToBuffer(n),a=new TextDecoder().decode(A.buffer),i=sA(a),s={src:n,width:i.width,height:i.height,aspect:i.width/i.height};return Bt.set(n,s),s}const t=((e=n.split(".").pop())==null?void 0:e.toLowerCase())??"";if(t==="svg"){const A=await Fa(n),a=A.width,i=A.height,s={src:n,width:a,height:i,aspect:a/i};return Bt.set(n,s),s}else{const A=await me(n,!0),a=Vt(A),i=t==="jpg"||t==="jpeg";if(!a.endsWith(t)&&a==="image/jpeg"&&!i)throw Error(`File ${n} has wrong extension for mime type ${a}`);const s=await Xt(A),o={src:n,width:s.width,height:s.height,aspect:s.width/s.height};return Bt.set(n,o),o}},Fa=async n=>{const t=await tt(n);return sA(t)},ya=n=>n.endsWith("mm")?Number(n.replace("mm",""))*3.7795275591:n.endsWith("px")?Number(n.replace("px","")):Number(n),sA=n=>{const A=gt().parseFromString(n,"image/svg+xml").querySelector("svg");if(!A)throw new Error("No svg tag found, this svg must be malformed!");const a=A.getAttribute("viewBox"),i=A.getAttribute("width"),s=A.getAttribute("height"),o=s&&i?[0,0,ya(i),ya(s)]:a==null?void 0:a.split(" ").map(r=>Number(r));if(!o)throw new Error("No viewbox or width/height values detected on SVG file!");return{width:o[2],height:o[3]}},ee=["Yellow C","Yellow 012 C","Orange 021 C","Warm Red C","Red 032 C","Rubine Red C","Rhodamine Red C","Purple C","Violet C","Blue 072 C","Reflex Blue C","Process Blue C","Green C","Black C","Yellow 0131 C","Red 0331 C","Magenta 0521 C","Violet 0631 C","Blue 0821 C","Green 0921 C","Black 0961 C","801 C","802 C","803 C","804 C","805 C","806 C","807 C","871 C","872 C","873 C","874 C","875 C","876 C","877 C","Medium Yellow C","Bright Orange C","Bright Red C","Strong Red C","Pink C","Medium Purple C","Dark Blue C","Medium Blue C","Bright Green C","Neutral Black C","100 C","101 C","102 C","103 C","104 C","105 C","7401 C","7402 C","7403 C","7404 C","7405 C","7406 C","7407 C","106 C","107 C","108 C","109 C","110 C","111 C","112 C","113 C","114 C","115 C","116 C","117 C","118 C","119 C","127 C","128 C","129 C","130 C","131 C","132 C","133 C","1205 C","1215 C","1225 C","1235 C","1245 C","1255 C","1265 C","120 C","121 C","122 C","123 C","124 C","125 C","126 C","7548 C","7549 C","7550 C","7551 C","7552 C","7553 C","7554 C","7555 C","7556 C","7557 C","7558 C","7559 C","7560 C","7561 C","134 C","135 C","136 C","137 C","138 C","139 C","140 C","1345 C","1355 C","1365 C","1375 C","1385 C","1395 C","1405 C","141 C","142 C","143 C","144 C","145 C","146 C","147 C","7408 C","7409 C","7410 C","7411 C","7412 C","7413 C","7414 C","7562 C","7563 C","7564 C","7565 C","7566 C","7567 C","7568 C","7569 C","7570 C","7571 C","7572 C","7573 C","7574 C","7575 C","712 C","713 C","714 C","715 C","716 C","717 C","718 C","148 C","149 C","150 C","151 C","152 C","153 C","154 C","155 C","156 C","157 C","158 C","159 C","160 C","161 C","1485 C","1495 C","1505 C","1525 C","1535 C","1545 C","1555 C","1565 C","1575 C","1585 C","1595 C","1605 C","1615 C","162 C","163 C","164 C","165 C","166 C","167 C","168 C","7576 C","7577 C","7578 C","7579 C","7580 C","7581 C","7582 C","1625 C","1635 C","1645 C","1655 C","1665 C","1675 C","1685 C","169 C","170 C","171 C","172 C","173 C","174 C","175 C","7583 C","7584 C","7585 C","7586 C","7587 C","7588 C","7589 C","7590 C","7591 C","7592 C","7593 C","7594 C","7595 C","7596 C","7597 C","7598 C","7599 C","7600 C","7601 C","7602 C","7603 C","7604 C","7605 C","7606 C","7607 C","7608 C","7609 C","7610 C","7611 C","7612 C","7613 C","7614 C","7615 C","7616 C","7617 C","7520 C","7521 C","7522 C","7523 C","7524 C","7525 C","7526 C","489 C","488 C","487 C","486 C","485 C","484 C","483 C","176 C","177 C","178 C","179 C","180 C","181 C","1765 C","1775 C","1785 C","1788 C","1795 C","1805 C","1815 C","1767 C","1777 C","1787 C","1797 C","1807 C","1817 C","7618 C","7619 C","7620 C","7621 C","7622 C","7623 C","7624 C","7625 C","7626 C","7627 C","7628 C","7629 C","7630 C","7631 C","7415 C","7416 C","7417 C","7418 C","7419 C","7420 C","7421 C","182 C","183 C","184 C","185 C","186 C","187 C","188 C","196 C","197 C","198 C","199 C","200 C","201 C","202 C","189 C","190 C","191 C","192 C","193 C","194 C","195 C","1895 C","1905 C","1915 C","1925 C","1935 C","1945 C","1955 C","705 C","706 C","707 C","708 C","709 C","710 C","711 C","698 C","699 C","700 C","701 C","702 C","703 C","704 C","203 C","204 C","205 C","206 C","207 C","208 C","209 C","210 C","211 C","212 C","213 C","214 C","215 C","216 C","7422 C","7423 C","7424 C","7425 C","7426 C","7427 C","7428 C","7632 C","7633 C","7634 C","7635 C","7636 C","7637 C","7638 C","217 C","218 C","219 C","220 C","221 C","222 C","7639 C","7640 C","7641 C","7642 C","7643 C","7644 C","7645 C","223 C","224 C","225 C","226 C","227 C","228 C","229 C","230 C","231 C","232 C","233 C","234 C","235 C","670 C","671 C","672 C","673 C","674 C","675 C","676 C","677 C","678 C","679 C","680 C","681 C","682 C","683 C","684 C","685 C","686 C","687 C","688 C","689 C","690 C","510 C","509 C","508 C","507 C","506 C","505 C","504 C","7429 C","7430 C","7431 C","7432 C","7433 C","7434 C","7435 C","691 C","692 C","693 C","694 C","695 C","696 C","697 C","496 C","495 C","494 C","493 C","492 C","491 C","490 C","503 C","502 C","501 C","500 C","499 C","498 C","497 C","5035 C","5025 C","5015 C","5005 C","4995 C","4985 C","4975 C","236 C","237 C","238 C","239 C","240 C","241 C","242 C","2365 C","2375 C","2385 C","2395 C","2405 C","2415 C","2425 C","243 C","244 C","245 C","246 C","247 C","248 C","249 C","7646 C","7647 C","7648 C","7649 C","7650 C","7651 C","7652 C","250 C","251 C","252 C","253 C","254 C","255 C","517 C","516 C","515 C","514 C","513 C","512 C","511 C","7436 C","7437 C","7438 C","7439 C","7440 C","7441 C","7442 C","2562 C","2572 C","2582 C","2592 C","2602 C","2612 C","2622 C","7653 C","7654 C","7655 C","7656 C","7657 C","7658 C","7659 C","524 C","523 C","522 C","521 C","520 C","519 C","518 C","5245 C","5235 C","5225 C","5215 C","5205 C","5195 C","5185 C","5175 C","5165 C","5155 C","5145 C","5135 C","5125 C","5115 C","531 C","530 C","529 C","528 C","527 C","526 C","525 C","256 C","257 C","258 C","259 C","260 C","261 C","262 C","2563 C","2573 C","2583 C","2593 C","2603 C","2613 C","2623 C","7660 C","7661 C","7662 C","7663 C","7664 C","7665 C","7666 C","2567 C","2577 C","2587 C","2597 C","2607 C","2617 C","2627 C","263 C","264 C","265 C","266 C","267 C","268 C","269 C","2635 C","2645 C","2655 C","2665 C","2685 C","2695 C","270 C","271 C","272 C","273 C","274 C","275 C","276 C","2705 C","2715 C","2725 C","2735 C","2745 C","2755 C","2765 C","7667 C","7668 C","7669 C","7670 C","7671 C","7672 C","7673 C","7443 C","7444 C","7445 C","7446 C","7447 C","7448 C","7449 C","7674 C","7675 C","7676 C","7677 C","7678 C","7679 C","7680 C","663 C","664 C","665 C","666 C","667 C","668 C","669 C","5315 C","5305 C","5295 C","5285 C","5275 C","5265 C","5255 C","538 C","537 C","536 C","535 C","534 C","533 C","532 C","7541 C","7542 C","7543 C","7544 C","7545 C","7546 C","7547 C","552 C","551 C","550 C","549 C","548 C","547 C","546 C","5455 C","5445 C","5435 C","5425 C","5415 C","5405 C","5395 C","642 C","643 C","644 C","645 C","646 C","647 C","648 C","649 C","650 C","651 C","652 C","653 C","654 C","655 C","656 C","657 C","658 C","659 C","660 C","661 C","662 C","7450 C","7451 C","7452 C","7453 C","7454 C","7455 C","7456 C","2706 C","2716 C","2726 C","2736 C","2746 C","2756 C","2766 C","2708 C","2718 C","2728 C","2738 C","2748 C","2758 C","2768 C","2707 C","2717 C","2727 C","2747 C","2757 C","2767 C","277 C","278 C","279 C","280 C","281 C","282 C","283 C","284 C","285 C","286 C","287 C","288 C","289 C","7681 C","7682 C","7683 C","7684 C","7685 C","7686 C","7687 C","545 C","544 C","543 C","542 C","541 C","540 C","539 C","290 C","291 C","292 C","293 C","294 C","295 C","296 C","2905 C","2915 C","2925 C","2935 C","2945 C","2955 C","2965 C","297 C","298 C","299 C","300 C","301 C","302 C","303 C","7688 C","7689 C","7690 C","7691 C","7692 C","7693 C","7694 C","2975 C","2985 C","2995 C","3005 C","3015 C","3025 C","3035 C","7695 C","7696 C","7697 C","7698 C","7699 C","7700 C","7701 C","7457 C","7458 C","7459 C","7460 C","7461 C","7462 C","7463 C","304 C","305 C","306 C","307 C","308 C","309 C","635 C","636 C","637 C","638 C","639 C","640 C","641 C","7702 C","7703 C","7704 C","7705 C","7706 C","7707 C","7708 C","628 C","629 C","630 C","631 C","632 C","633 C","634 C","310 C","311 C","312 C","313 C","314 C","315 C","316 C","3105 C","3115 C","3125 C","3135 C","3145 C","3155 C","3165 C","7709 C","7710 C","7711 C","7712 C","7713 C","7714 C","7715 C","317 C","318 C","319 C","320 C","321 C","322 C","323 C","7464 C","7465 C","7466 C","7467 C","7468 C","7469 C","7470 C","7471 C","7472 C","7473 C","7474 C","7475 C","7476 C","7477 C","5523 C","5513 C","5503 C","5493 C","5483 C","5473 C","5463 C","7716 C","7717 C","7718 C","7719 C","7720 C","7721 C","7722 C","324 C","325 C","326 C","327 C","328 C","329 C","330 C","3242 C","3252 C","3262 C","3272 C","3282 C","3292 C","3302 C","3245 C","3255 C","3265 C","3275 C","3285 C","3295 C","3305 C","3248 C","3258 C","3268 C","3278 C","3288 C","3298 C","3308 C","566 C","565 C","564 C","563 C","562 C","561 C","560 C","573 C","572 C","571 C","570 C","569 C","568 C","567 C","559 C","558 C","557 C","556 C","555 C","554 C","553 C","5595 C","5585 C","5575 C","5565 C","5555 C","5545 C","5535 C","5665 C","5655 C","5645 C","5635 C","5625 C","5615 C","5605 C","5527 C","5517 C","5507 C","5497 C","5487 C","5477 C","5467 C","621 C","622 C","623 C","624 C","625 C","626 C","627 C","331 C","332 C","333 C","334 C","335 C","336 C","337 C","338 C","339 C","340 C","341 C","342 C","343 C","7723 C","7724 C","7725 C","7726 C","7727 C","7728 C","7729 C","3375 C","3385 C","3395 C","3405 C","3415 C","3425 C","3435 C","344 C","345 C","346 C","347 C","348 C","349 C","350 C","351 C","352 C","353 C","354 C","355 C","356 C","357 C","7478 C","7479 C","7480 C","7481 C","7482 C","7483 C","7484 C","7730 C","7731 C","7732 C","7733 C","7734 C","7735 C","7736 C","7737 C","7738 C","7739 C","7740 C","7741 C","7742 C","7743 C","358 C","359 C","360 C","361 C","362 C","363 C","364 C","7485 C","7486 C","7487 C","7488 C","7489 C","7490 C","7491 C","365 C","366 C","367 C","368 C","369 C","370 C","371 C","372 C","373 C","374 C","375 C","376 C","377 C","378 C","580 C","579 C","578 C","577 C","576 C","575 C","574 C","5807 C","5797 C","5787 C","5777 C","5767 C","5757 C","5747 C","5875 C","5865 C","5855 C","5845 C","5835 C","5825 C","5815 C","5803 C","5793 C","5783 C","5773 C","5763 C","5753 C","5743 C","7492 C","7493 C","7494 C","7495 C","7496 C","7497 C","7498 C","7744 C","7745 C","7746 C","7747 C","7748 C","7749 C","7750 C","379 C","380 C","381 C","382 C","383 C","384 C","385 C","386 C","387 C","388 C","389 C","390 C","391 C","392 C","587 C","586 C","585 C","584 C","583 C","582 C","581 C","393 C","394 C","395 C","396 C","397 C","398 C","399 C","3935 C","3945 C","3955 C","3965 C","3975 C","3985 C","3995 C","600 C","601 C","602 C","603 C","604 C","605 C","606 C","607 C","608 C","609 C","610 C","611 C","612 C","613 C","461 C","460 C","459 C","458 C","457 C","456 C","455 C","614 C","615 C","616 C","617 C","618 C","619 C","620 C","7751 C","7752 C","7753 C","7754 C","7755 C","7756 C","7757 C","7758 C","7759 C","7760 C","7761 C","7762 C","7763 C","7764 C","7765 C","7766 C","7767 C","7768 C","7769 C","7770 C","7771 C","4545 C","4535 C","4525 C","4515 C","4505 C","4495 C","4485 C","454 C","453 C","452 C","451 C","450 C","449 C","448 C","7499 C","7500 C","7501 C","7502 C","7503 C","7504 C","7505 C","468 C","467 C","466 C","465 C","464 C","463 C","462 C","7506 C","7507 C","7508 C","7509 C","7510 C","7511 C","7512 C","719 C","720 C","721 C","722 C","723 C","724 C","725 C","475 C","474 C","473 C","472 C","471 C","470 C","469 C","726 C","727 C","728 C","729 C","730 C","731 C","732 C","4685 C","4675 C","4665 C","4655 C","4645 C","4635 C","4625 C","7513 C","7514 C","7515 C","7516 C","7517 C","7518 C","7519 C","4755 C","4745 C","4735 C","4725 C","4715 C","4705 C","4695 C","482 C","481 C","480 C","479 C","478 C","477 C","476 C","7527 C","7528 C","7529 C","7530 C","7531 C","7532 C","7533 C","7534 C","7535 C","7536 C","7537 C","7538 C","7539 C","7540 C","427 C","428 C","429 C","430 C","431 C","432 C","433 C","420 C","421 C","422 C","423 C","424 C","425 C","426 C","441 C","442 C","443 C","444 C","445 C","446 C","447 C","413 C","414 C","415 C","416 C","417 C","418 C","419 C","400 C","401 C","402 C","403 C","404 C","405 C","406 C","407 C","408 C","409 C","410 C","411 C","412 C","434 C","435 C","436 C","437 C","438 C","439 C","440 C","Warm Gray 1 C","Warm Gray 2 C","Warm Gray 3 C","Warm Gray 4 C","Warm Gray 5 C","Warm Gray 6 C","Warm Gray 7 C","Warm Gray 8 C","Warm Gray 9 C","Warm Gray 10 C","Warm Gray 11 C","Cool Gray 1 C","Cool Gray 2 C","Cool Gray 3 C","Cool Gray 4 C","Cool Gray 5 C","Cool Gray 6 C","Cool Gray 7 C","Cool Gray 8 C","Cool Gray 9 C","Cool Gray 10 C","Cool Gray 11 C","Black 2 C","Black 3 C","Black 4 C","Black 5 C","Black 6 C","Black 7 C"],Nt=["FEDD00","FFD700","FE5000","F9423A","EF3340","CE0058","E10098","BB29BB","440099","10069F","001489","0085CA","00AB84","2D2926","F2F0A1","FCAEBB","F1B2DC","BF9BDE","74D1EA","9DE7D7","9E978E","009ACE","44D62C","FFE900","FFAA4D","FF7276","FF3EB5","EA27C2","84754E","85714D","866D4B","8B6F4E","87674F","8B634B","8A8D8F","FFD900","FF5E00","F93822","CE0056","D62598","4E008E","00239C","0084CA","00B08B","222223","F6EB61","F7EA48","FCE300","C5A900","AF9800","897A27","F5E1A4","ECD898","EED484","F4DA40","F2CD00","F1C400","CBA052","F9E547","FBE122","FEDB00","FFD100","DAAA00","AA8A00","9C8412","FAE053","FBDD40","FDDA24","FFCD00","C99700","AC8400","897322","F3DD6D","F3D54E","F3D03E","F2A900","CC8A00","A07400","6C571B","F8E08E","FBD872","FFC845","FFB81C","C69214","AD841F","886B25","FBDB65","FDD757","FED141","FFC72C","EAAA00","B58500","9A7611","FFC600","FFB500","D19000","B47E00","73531D","5A4522","4B3D2A","D29F13","B78B20","9F7D23","967126","8F6A2A","7D622E","6C5D34","FDD26E","FFC658","FFBF3F","FFA300","DE7C00","AF6D04","74531C","FDD086","FFC56E","FFB549","FF9E1B","D57800","996017","6E4C1E","F2C75C","F1BE48","F1B434","ED8B00","CF7F00","A76D11","715C2A","F6BE00","F0B323","FEAD77","E6A65D","D38235","DC8633","C16C18","BD9B60","D69A2D","DB8A06","CD7925","AD6433","89532F","775135","D78825","D3832B","C67D30","B67233","A7662B","9E6A38","835D32","FCC89B","FDBE87","FDAA63","F68D2E","EA7600","D45D00","BE4D00","FECB8B","FFC27B","FFB25B","FF8200","E57200","BE6A14","9B5A1A","EFD19F","EFBE7D","ECA154","E87722","CB6015","A1561C","603D20","FFAE62","FF8F1C","FF6900","B94700","94450B","653819","FFB990","FFA06A","FF7F32","FF6A13","D86018","A65523","8B4720","FFBE9F","FF9D6E","FF7F41","FF671F","E35205","BE531C","73381D","DB864E","E07E3C","DC6B2F","DC582A","C05131","864A33","674736","FFA38B","FF8D6D","FF6A39","FC4C02","DC4405","A9431E","833921","FFB3AB","FF8674","FF5C39","FA4616","CF4520","963821","6B3529","C4622D","BA5826","AF5C37","9E5330","924C2E","7B4D35","5C4738","D4B59E","C07D59","B15533","9D432C","7C3A2D","6B3D2E","5C3D31","D14124","BD472A","B33D26","8D3F2B","83412C","7B4931","674230","E4D5D3","E1BBB4","D6938A","C26E60","A4493D","823B34","683431","DDBCB0","CA9A8E","BC8A7E","A37F74","866761","6B4C4C","583D3E","EABEB0","C09C83","B46A55","AB5C57","A45248","9A6A4F","8A391B","ECC3B2","ECBAA8","EAA794","E8927C","DA291C","9A3324","653024","FFB1BB","FF808B","FF585D","E03C31","BE3A34","81312F","FFA3B5","FF8DA1","F8485E","EE2737","D22630","AF272F","7C2529","FCAFC0","FB637E","F4364C","CB333B","A4343A","643335","C66E4E","C04C36","B7312C","AB2328","93272C","8A2A2B","802F2D","E1523D","C63527","A72B2A","9E2A2B","6D3332","633231","572D2D","E6BAA8","E56A54","E04E39","CD545B","B04A5A","9B2242","651D32","FABBCB","FC9BB3","F65275","E4002B","C8102E","A6192E","76232F","ECC7CD","E89CAE","DF4661","D50032","BA0C2F","9D2235","862633","F8A3BC","F67599","EF426F","E40046","BF0D3E","9B2743","782F40","F5B6CD","F59BBB","EF4A81","E0004D","C5003E","A6093D","8A1538","F5DADF","F7CED7","F9B5C4","F890A5","EF6079","E03E52","CB2C30","F2D4D7","F4C3CC","F2ACB9","E68699","D25B73","B83A4B","9E2A2F","ECB3CB","E782A9","E0457B","CE0037","A50034","861F41","6F263D","F99FC9","F57EB6","F04E98","E31C79","CE0F69","AC145A","7D2248","F4CDD4","E06287","E24585","B52555","A4123F","971B2F","6A2C3E","D6C9CA","C4A4A7","C16784","C63663","BC204B","912F46","7E2D40","EABEDB","E56DB1","DA1884","A50050","910048","6C1D45","936D73","934054","8E2C48","732E4A","672E45","582D40","502B3A","EF95CF","EB6FBD","DF1995","D0006F","AA0061","890C58","672146","F4A6D7","F277C6","E93CAC","C6007E","A20067","840B55","EAD3E2","E6BCD8","DFA0C9","D986BA","C6579A","AE2573","960051","E5CEDB","E3C8D8","DEBED2","C996B6","B06C96","994878","7C2855","E4C6D4","DCB6C9","D0A1BA","BE84A3","A76389","893B67","612141","EBBECB","E8B3C3","E4A9BB","D592AA","84344E","6F2C3F","572932","E2BCCB","DCA9BF","C9809E","B55C80","A73A64","9B3259","872651","E9CDD0","E4BEC3","D7A3AB","C48490","B46B7A","984856","893C47","F2C6CF","F1BDC8","E9A2B2","DC8699","8F3237","7F3035","5D2A2C","E9C4C7","E5BAC1","DAA5AD","C6858F","7A3E3A","6A3735","512F2E","DFC2C3","DBB7BB","CCA1A6","B07C83","9C6169","874B52","3F2021","F1A7DC","EC86D0","E45DBF","DB3EB1","C5299B","AF1685","80225F","EFBAE1","E277CD","D539B5","C800A1","B0008E","9E007E","830065","EAB8E4","E59BDC","DD7FD3","C724B1","BB16A3","A51890","80276C","A56E87","A83D72","991E66","8A1B61","722257","6A2A5B","5E2751","E7BAE4","DD9CDF","C964CF","AD1AAC","981D97","72246C","EBC6DF","E6BEDD","E2ACD7","D48BC8","93328E","833177","612C51","EEDAEA","CCAED0","D59ED7","B288B9","A277A6","9F5CC0","963CBD","D7A9E3","C98BDB","AC4FC6","9B26B6","87189D","772583","653165","948794","A2789C","A15A95","8E3A80","6E2B62","6A3460","5D3754","D5C2D8","C9B1D0","BA9CC5","A57FB2","642F6C","59315F","4B3048","DBCDD3","D0BEC7","C6B0BC","AF95A6","86647A","66435A","4A3041","D8C8D1","D3C0CD","BFA5B8","9B7793","7E5475","693C5E","512A44","DFC8E7","D7B9E4","CAA2DD","B580D1","8031A7","702F8A","572C5F","D6BFDD","C6A1CF","8C4799","6D2077","642667","5D285F","51284F","CBA3D8","B884CB","A05EB5","84329B","702082","671E75","5F2167","9991A4","8D6E97","7A4183","6B3077","653279","5E366E","5C4E63","C1A0DA","A77BCA","8246AF","5C068C","500778","470A68","3C1053","D7C6E6","C1A7E2","9063CD","753BBD","5F259F","582C83","512D6D","C5B4E3","AD96DC","9678D3","7D55C7","330072","2E1A47","B4B5DF","9595D2","7474C1","24135F","211551","201747","221C35","A7A4E0","8B84D7","685BC7","2E008B","280071","250E62","201547","6E7CA0","686E9F","615E9B","565294","514689","4C4184","535486","DDDAE8","B6B8DC","A7A2C3","8986CA","5D4777","4B384C","41273B","878CB4","7C7FAB","7566A0","6F5091","68478D","563D82","523178","E5E1E6","E0DBE3","C6BCD0","A192B2","7C6992","614B79","3F2A56","D8D7DF","C6C4D2","B3B0C4","8D89A5","595478","403A60","1E1A34","C5CFDA","BBC7D6","A2B2C8","8E9FBC","1B365D","1F2A44","1C1F2A","D9E1E2","A4BCC2","98A4AE","768692","425563","253746","131E29","B9D3DC","A3C7D2","8DB9CA","6BA4B8","003D4C","00313C","072B31","BFCED6","B7C9D3","A6BBC8","7A99AC","5B7F95","4F758B","081F2C","D1DDE6","C6D6E3","9BB8D3","7DA1C4","5E8AB4","236192","002E5D","DBE2E9","CED9E5","A7BCD6","7D9BC1","326295","003A70","002554","DDE5ED","C8D8EB","B1C9E8","7BA4DB","407EC9","003594","001A70","BDC5DB","89ABE3","8094DD","7BA6DE","5F8FB4","3A5DAE","606EB2","CBD3EB","9FAEE5","485CC7","1E22AA","171C8F","151F6D","141B4D","B8CCEA","5C88DA","0047BB","06038D","001871","001E62","071D49","C3D7EE","A7C6ED","307FE2","001A72","001E60","13294B","ABCAE9","8BB8E8","418FDE","012169","00205B","041E42","92C1E9","6CACE4","0072CE","0033A0","003087","002D72","0C2340","94A9CB","6787B7","426DA9","385E9D","2C5697","1D4F91","1D428A","C6DAE7","BDD6E6","A4C8E1","7BAFD4","003C71","003057","00263A","B9D9EB","9BCBEB","69B3E7","003DA5","002F6C","002855","041C2C","8DC8E8","62B5E5","009CDE","0057B8","004C97","003865","00263E","71C5E8","41B6E6","00A3E0","005EB8","004B87","003B5C","002A3A","4698CB","298FC2","0076A8","006298","005587","004976","01426A","99D6EA","5BC2E7","00A9E0","0077C8","00629B","004F71","003E51","7BA7BC","6399AE","4E87A0","41748D","34657F","165C7D","005776","BBDDE6","71B2C9","4298B5","0086BF","007DBA","00558C","002B49","9ADBE8","59CBE8","00B5E2","006BA6","00587C","003B49","A4DBE8","8BD3E6","4EC3E0","00AFD7","0095C8","0082BA","0067A0","48A9C5","009CBD","0085AD","007096","006A8E","00617F","005670","B8DDE1","9BD3DD","77C5D5","3EB1C8","0093B2","007396","005F83","6AD1E3","05C3DE","00A9CE","0092BC","007FA3","00677F","004851","68D2DF","00C1D5","00AEC7","008EAA","00778B","006272","004F59","63B1BC","00A7B5","0097A9","00859B","007D8A","007680","006269","B1E4E3","88DBDF","2DCCD3","009CA6","008C95","007377","005F61","A0D1CA","40C1AC","00B0B9","00A3AD","007398","005F86","005A70","7EDDD3","5CB8B2","279989","007681","487A7B","0D5257","244C5A","B6CFD0","ABC7CA","94B7BB","7FA9AE","4F868E","115E67","07272D","00968F","00857D","007672","006D68","00635B","005E5D","005151","9CDBD9","64CCC9","00B2A9","008675","007367","00685E","00534C","71DBD4","2AD2C9","00BFB3","00A499","008578","00594F","004C45","7CE0D3","2CD5C4","00C7B1","00B398","009681","007864","004E42","6DCDB8","49C5B1","00AB8E","009B77","008264","006A52","034638","B9DCD2","A1D6CA","86C8BC","6BBBAE","006F62","00594C","1D3C34","B5E3D8","A5DFD3","98DBCE","6BCABA","00816D","006C5B","173F35","ADCAB8","9ABEAA","85B09A","6FA287","28724F","205C40","284734","BFCEC2","A7BDB1","92ACA0","7F9C90","5C7F71","43695B","183028","BAC5B9","B0BDB0","A3B2A4","94A596","708573","5E7461","22372B","BCC9C5","B1C0BC","9DB0AC","829995","5D7975","3E5D58","18332F","D1E0D7","B7CDC2","9AB9AD","789F90","507F70","285C4D","13322B","A7E6D7","8CE2D0","3CDBC0","009775","007B5F","00664F","8FD6BD","6ECEB2","00B388","00965E","007A53","006747","115740","50A684","00966C","008755","007B4B","006F44","006845","005844","7AE1BF","47D7AC","00C389","00AF66","007749","006341","154734","A0DAB3","91D6AC","71CC98","009A44","00843D","046A38","2C5234","A2E4B8","8FE2B0","80E0A7","00B140","009639","007A33","215732","9BE3BF","26D07C","00BF6F","00B74F","009F4D","275D38","00573F","4B9560","228848","007A3E","007041","286140","36573B","395542","6BA539","48A23F","319B42","3A913F","44883E","4A773C","44693D","ADDC91","A1D884","6CC24A","43B02A","509E2F","4C8C2B","4A7729","D0DEBB","BCE194","8EDD65","78D64B","74AA50","719949","79863C","C2E189","B7DD79","A4D65E","78BE20","64A70B","658D1B","546223","D4EB8E","CDEA80","C5E86C","97D700","84BD00","7A9A01","59621D","C4D6A4","BCD19B","B7CE95","A9C47F","789D4A","67823A","4E5B31","D0D1AB","C6C89B","BABD8B","A2A569","8A8D4A","6D712E","3D441E","D2CE9E","CBC793","C0BB87","AFA96E","A09958","89813D","555025","C3C6A8","B3B995","A3AA83","899064","737B4C","5E6738","3E4827","BFCC80","BBC592","9CAF88","8F993E","76881D","7A7256","5B6236","BABC16","ABAD23","999B30","888D30","7C8034","727337","656635","E2E868","DBE442","CEDC00","C4D600","A8AD00","949300","787121","E9EC6B","E3E935","E0E721","D0DF00","B5BD00","9A9500","827A04","E3E48D","E0E27C","DBDE70","D2D755","B7BF10","8E8C13","625D20","F0EC74","EDE939","ECE81A","E1E000","BFB800","ADA400","A09200","F3EA5D","F3E500","EFDF00","EEDC00","BBA600","9A8700","685C20","F1EB9C","F0E991","F0E87B","EDE04B","EADA24","E1CD00","CFB500","EBE49A","E9E186","E6DE77","E1D555","D7C826","C4B000","B39B00","E9DF97","E4D77E","DECD63","D9C756","B89D18","A28E2A","695B24","DCD59A","D6CF8D","D0C883","C0B561","AC9F3C","9F912A","8A7B19","CAB64B","CFB023","C1A01E","A08629","897630","736635","675E33","D4C304","C4B200","91852C","747136","5D6439","585C3B","535435","BBB323","B4A91F","AA9D2E","8F7E35","716135","635939","4E4934","D5CB9F","CFC493","C5B783","B3A369","998542","8C7732","614F25","CAC7A7","BFBB98","B0AA7E","9B945F","594A25","524727","4A412A","F1E6B2","DFD1A7","D9C89E","CEB888","A89968","94795D","816040","DDCBA4","D3BC8D","C6AA76","B9975B","8B5B29","744F28","5C462B","EFDBB2","FCD299","E1B87F","D6A461","C6893F","B77729","A6631B","EDC8A3","E7B78A","DDA46F","C88242","B36924","934D11","7D3F16","F3CFB3","F1C6A7","F0BF9B","E59E6D","B86125","A45A2A","693F23","E0C09F","D9B48F","CDA077","B58150","9E652E","774212","623412","E0C6AD","DCBFA6","CDA788","BF9474","AD7C59","946037","4F2C1D","E1B7A7","D5A286","C58B68","99552B","85431E","6D4F47","5E4B3C","D7C4B7","CDB5A7","C0A392","AE8A79","956C58","7C4D3A","5B3427","DBC8B6","D3BBA8","C6A992","AA8066","703F2A","623B2A","4E3629","D6D2C4","C5B9AC","B7A99A","A39382","7A6855","63513D","473729","D1CCBD","B7B09C","A69F88","A7ACA2","949A90","8E9089","4B4F54","D0D3D4","C1C6C8","A2AAAD","7C878E","5B6770","333F48","1D252D","C7C9C7","B2B4B2","9EA2A2","898D8D","707372","54585A","25282A","BEC6C4","A2ACAB","919D9D","717C7D","505759","3F4444","373A36","BABBB1","A8A99E","919388","7E7F74","65665C","51534A","212322","C4BFB6","AFA9A0","9D968D","8C857B","776E64","696158","C4BCB7","B2A8A2","978C87","857874","746661","5E514D","382F2D","D0C4C5","C1B2B6","AB989D","7B6469","584446","453536","382E2C","D7D2CB","CBC4BC","BFB8AF","B6ADA5","ACA39A","A59C94","968C83","8C8279","83786F","796E65","6E6259","D9D9D6","D0D0CE","C8C9C7","BBBCBC","B1B3B3","A7A8AA","97999B","888B8D","75787B","63666A","53565A","332F21","212721","31261D","3E2B2E","101820","3D3935"],oA=Nt.map(n=>[parseInt(n.substring(0,2),16),parseInt(n.substring(2,4),16),parseInt(n.substring(4,6),16)]);function Ji(n){const t=ee.indexOf(n);return t>=0?Nt[t]:""}function Ma(n){const t=Nt.indexOf(n);return t>=0?ee[t]:""}function Oi(n,t=64){const e=[],A=[],a=Ma(n);a&&e.push({pms:a,hex:n,distance:0});const i=parseInt(n.substring(0,2),16),s=parseInt(n.substring(2,4),16),o=parseInt(n.substring(4,6),16);let r,c,l;for(let g=0;g<Nt.length;g++){r=oA[g][0],c=oA[g][1],l=oA[g][2];const d=Math.sqrt(Math.pow(i-r,2)+Math.pow(s-c,2)+Math.pow(o-l,2));A.push(d)}for(let g=0;g<A.length;g++)A[g]<=t&&!e.some(d=>d.pms===ee[g])&&e.push({pms:ee[g],hex:Nt[g],distance:A[g]});return e.sort((g,d)=>g.distance-d.distance)}const Li=ee.map((n,t)=>({pms:n,hex:Nt[t]})),zi=new jn(Li,{keys:["pms"]});function ji(n,t){return zi.search(n,t?{limit:t}:void 0)}let Ae=null;function Sa(n){if(n.startsWith("#"))return xa(n);if(!document)throw new Error("browserColorToHex is only supported on browsers");if(Ae||(Ae=document.createElement("canvas").getContext("2d")),!Ae)throw new Error("Failed to create canvas context required to convert colors");Ae.fillStyle=n;const t=xa(Ae.fillStyle);return t||console.error(`Unknown browser color ${n}`),t}function xa(n){const t=n.substring(1).toUpperCase();return t.length===6?t:t.length===3?`${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`:""}const pe=n=>{const t=Ya(n.spotColor);return t?`${n.browserValue} ${t}`:n.browserValue},Ya=n=>{if(!n)return"";if(n.profileName.includes("/")&&n.profileName.includes(".icc")){const t=n.profileName.replace(/\s/g,"-"),e=t.lastIndexOf("/");return`icc-named-color(${t.slice(e+1).slice(0,-4)}, ${n.namedColor})`}return`icc-named-color(${n.profileName}, ${n.namedColor})`},rA=n=>{const t=n.split(/[ ](?=[^)]*?(?:\(|$))/);if(t.length===0)return{browserValue:"#000000"};if(t.length===1)return{browserValue:t[0]};const e=t[1].match(/\(([^)]+)\)/gm);if(!e)throw new Error("Unhandled state of color value in SVG");const A=e[0].replace(/[() ]/g,"").split(",");return{browserValue:t[0],spotColor:{profileName:A[0],namedColor:A[1]}}},Ki=["altGlyph","circle","ellipse","path","polygon","polyline","rect","text","textPath","tref","tspan"],Vi=["fill","stroke"],kt=(n,t)=>{t(n),n.children.length>0&&Array.from(n.children).forEach(e=>kt(e,t))},Wi=(n,t)=>{try{return n.matches(t)}catch{return n.classList.contains(t.substring(1))}},Ie=(n,t=!1)=>{!t&&n.setAttribute("preserveAspectRatio","none");const e=[];kt(n,A=>{var i,s,o;if(A.tagName==="script"){A.remove();return}if(A.tagName==="style"){try{(i=zn.parse(A.innerHTML).stylesheet)==null||i.rules.forEach(c=>{e.push(c)}),A.remove()}catch(r){console.error(r)}return}const a=(o=(s=A.attributes.getNamedItem("style"))==null?void 0:s.value)==null?void 0:o.trim();if(a){const r=[];a.split(";").forEach(l=>{const g=l.trim();if(g){const[d,B]=g.split(":"),h=d.toLowerCase();Vi.indexOf(h)>-1?A.setAttribute(h,B.trim()):r.push(g)}}),r.length>0?A.setAttribute("style",r.join(";")):A.removeAttribute("style")}}),kt(n,A=>{e.forEach(a=>{var i;(i=a.selectors)==null||i.forEach(s=>{var o;Wi(A,s)&&((o=a.declarations)==null||o.forEach(r=>{r.property&&r.value&&A.setAttribute(r.property,r.value)}))})})})},Pa=n=>gt().parseFromString(n,"image/svg+xml").firstElementChild,Xi=(n,t,e)=>{n.setAttribute("height",`${e}px`),n.setAttribute("width",`${t}px`)},va=(n,t,e)=>{kt(n,A=>{const a=A.attributes.getNamedItem("fill");a&&a.value!=="none"&&A.classList.forEach(s=>{if(s.startsWith("spiff-fill")){const o=t[s.replace("spiff-fill-","")];if(o)A.setAttribute("fill",e?pe(o):o.browserValue);else{const r=t[s];r&&A.setAttribute("fill",e?pe(r):r.browserValue)}}});const i=A.attributes.getNamedItem("stroke");i&&i.value!=="none"&&A.classList.forEach(s=>{if(s.startsWith("spiff-stroke")){const o=t[s.replace("spiff-stroke-","")];if(o)A.setAttribute("stroke",e?pe(o):o.browserValue);else{const r=t[s];r&&A.setAttribute("fill",e?pe(r):r.browserValue)}}})})},Na=n=>Kt().serializeToString(n),cA=(n,t,e,A,a)=>{const i=Pa(n);if(!i)throw new Error("Failed to read SVG.");return Xi(i,t,e),va(i,A,a),Na(i)},ka=(n,t,e)=>{const A=Pa(n);if(!A)throw new Error("Failed to read SVG.");return va(A,t,e),Na(A)},qi=n=>{const t=/<svg.*<\/svg>/s,e=n.match(t)||[],A=(e==null?void 0:e.length)>0?e[0]:"";return gt().parseFromString(A,"image/svg+xml")},ct=async n=>{const e=qi(n).firstElementChild;if(!e)throw new Error("Failed to read SVG.");Ie(e);const A={};kt(e,s=>{Ki.includes(s.tagName)&&!s.attributes.getNamedItem("fill")&&s.setAttribute("fill","black");const o=s.attributes.getNamedItem("fill");if(o&&o.value!=="none"&&!o.value.startsWith("url(")){const c=rA(o.value),l=c.browserValue.replace(/\W/g,""),g=`spiff-fill-${l}`;s.setAttribute("fill",c.browserValue),s.classList.add(g),A[l]=c}const r=s.attributes.getNamedItem("stroke");if(r&&r.value!=="none"&&!r.value.startsWith("url(")){const c=rA(r.value),l=c.browserValue.replace(/\W/g,""),g=`spiff-stroke-${l}`;s.classList.add(g),s.setAttribute("stroke",c.browserValue),A[l]=c}});const i=Kt().serializeToString(e);return{colors:A,svg:i}},b=()=>{const n=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()},Zi=({backgroundColor:n,outlineColor:t,borderRadius:e,configuration:A,elements:a,height:i,maxHeight:s,maxWidth:o,outlineArea:r,position:c,preserveAspectRatio:l,viewBox:g,width:d})=>{var I;const B=e||0,h=2*((r==null?void 0:r.scale)||1),C=g||{x:0,y:0,width:d,height:i},u=`${C.x} ${C.y} ${C.width} ${C.height}`,E=b(),m=A.purpose===Ft.FreeDesign&&x.jsx("defs",{children:x.jsx("clipPath",{id:"viewboxClip",children:x.jsx("rect",{width:C.width,height:C.height,rx:B})})}),f=(I=A.colorProfiles)==null?void 0:I.map((D,y)=>x.jsx("color-profile",{name:D.name,xlinkHref:D.key,children:" "},y)),p=a.map(D=>({...D,_renderingConfiguration:A,mask:r?`url(#viewmask-${E})`:void 0})),Q=CA(p);return x.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",version:"1.1",preserveAspectRatio:l,width:d,height:i,style:{gridColumn:1,gridRow:1,maxWidth:o,maxHeight:s,position:c},viewBox:u,children:[f,m,!!n&&x.jsx("rect",{id:"layout-background",width:C.width,height:C.height,fill:n,rx:B}),x.jsx("g",{id:"element-group",clipPath:A.purpose===Ft.FreeDesign?"url(#viewboxClip)":void 0,children:Q.map(D=>La(D)).filter(D=>!!D)}),r&&x.jsx("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:"none",stroke:r.hidden?"none":t||"#aaaaaa",strokeWidth:h/2,strokeDasharray:`${h*2} ${h}`}),r&&x.jsxs("mask",{id:`viewmask-${E}`,children:[x.jsx("rect",{x:C.x,y:C.y,width:C.width,height:C.height,fill:"black"}),x.jsx("rect",{x:r.x,y:r.y,width:r.width,height:r.height,fill:"white"})]})]})},$i=(n,t,e,A,a)=>{const i=ht(a),s=e/2,o=A/2,r=n+s,c=t+o,l=Math.sin(i),g=Math.cos(i),d=s,B=s,h=-o,C=o,u=d*g-h*l,E=B*g-C*l,m=d*l+h*g,f=B*l+C*g,p=Math.max(Math.abs(u),Math.abs(E)),Q=Math.max(Math.abs(m),Math.abs(f));return{minX:r-p,maxX:r+p,minY:c-Q,maxY:c+Q}},_i=(n,t,e)=>{const A=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),a=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((a*a+A*A-i*i)/(2*a*A))*(180/Math.PI)},ht=n=>n*(Math.PI/180),ts=(n,t,e)=>Math.abs(n-t)<e,es=(n,t,e)=>{const A=Math.sin(ht(e)),a=Math.cos(ht(e));return{x:(n.x-t.x)*a-(n.y-t.y)*A+t.x,y:(n.x-t.x)*A+(n.y-t.y)*a+t.y}},As=(n,t)=>({x:(n.x+t.x)/2,y:(n.y+t.y)/2}),as=(n,t,e,A)=>({x:n.x+(t==null?void 0:t.x)*e,y:n.y+(t==null?void 0:t.y)*A}),ns=(n,t,e,A)=>({x:n.x+((t==null?void 0:t.x)+(t==null?void 0:t.width))*e,y:n.y+(t==null?void 0:t.y)*A}),is=(n,t,e,A)=>({x:n.x+((t==null?void 0:t.x)+(t==null?void 0:t.width))*e,y:n.y+((t==null?void 0:t.y)+(t==null?void 0:t.height))*A}),Ht=n=>{switch(n){case X.North:return X.East;case X.East:return X.South;case X.South:return X.West;case X.West:return X.North;case X.Northwest:return X.Northeast;case X.Northeast:return X.Southeast;case X.Southeast:return X.Southwest;case X.Southwest:return X.Northwest}},ss=(n,t)=>t>45&&t<=135?Ht(n):t>135&&t<=225?Ht(Ht(n)):t>225&&t<=315?Ht(Ht(Ht(n))):n,os=(n,t={x:0,y:0},e={x:1,y:1})=>{const A=ht(n.rotation),a={x:t.x+n.x*e.x,y:t.x+n.y*e.y},i={x:n.x+n.width,y:n.y},s={x:t.x+(n.x+n.width)*e.x,y:t.y+(n.height+n.y)*e.y},o={x:t.x+n.x*e.x,y:t.y+(n.height+n.y)*e.y},r={x:(o.x+s.x)/2,y:o.y-n.height*e.y/2};return{a:ae(a,r,A),b:ae(i,r,A),c:ae(s,r,A),d:ae(o,r,A),center:r}},ae=(n,t,e)=>{const A=Math.sin(e),a=Math.cos(e);return{x:(n.x-t.x)*a-(n.y-t.y)*A+t.x,y:(n.x-t.x)*A+(n.y-t.y)*a+t.y}},rs=.352778,cs=.035277,Ha=n=>{const t=n.rotation||0,e=ht(t),A=Math.cos(e),a=-Math.sin(e);return x.jsx("g",{mask:n.stepName||n.productOverlay?void 0:n.mask,children:x.jsx("g",{transform:`
786
- matrix(1, 0, 0, 1, ${n.x}, ${n.y})
787
- matrix(1, 0, 0, 1, ${n.width/2}, ${n.height/2})
788
- matrix(${A}, ${-a}, ${a}, ${A}, 0, 0)
789
- matrix(1, 0, 0, 1, ${-n.width/2}, ${-n.height/2})
790
- `,children:x.jsx("image",{xlinkHref:n.src,preserveAspectRatio:n.preserveAspectRatio,width:n.width,height:n.height})})})},ba=n=>{var r;const t=`spiff-group-clip-${n.id}`,e=n.rotation||0,A=ht(e),a=Math.cos(A),i=-Math.sin(A),s=CA(n.children),o=()=>x.jsx("clipPath",{id:t,preserveAspectRatio:"none",children:n.clipPath?x.jsx("path",{d:n.clipPath}):x.jsx("rect",{x:0,y:0,width:n.width,height:n.height})});return x.jsxs(x.Fragment,{children:[x.jsx("defs",{children:o()}),x.jsxs("g",{transform:`
791
- matrix(1, 0, 0, 1, ${n.x}, ${n.y})
792
- matrix(1, 0, 0, 1, ${n.width/2}, ${n.height/2})
793
- matrix(${a}, ${-i}, ${i}, ${a}, 0, 0)
794
- matrix(1, 0, 0, 1, ${-n.width/2}, ${-n.height/2})
795
- `,children:[(r=n._renderingConfiguration)!=null&&r.debug?x.jsx("rect",{stroke:"red",opacity:.3,fill:"none",x:0,y:0,width:n.width,height:n.height}):void 0,s.map(c=>La(c)).filter(c=>!!c).map(c=>x.jsx("g",{clipPath:`url(#${t})`,children:c}))]})]})},ls=n=>{const t=`spiff-frame-${n.id}`,e=`spiff-frame-threshold-${n.id}`,A=()=>{if(!n.pattern)return"";if(n.pattern.svg){const g=ka(n.pattern.svg,n.pattern.colors||{},!1);return je(g)}return n.pattern.src};if(!A())return x.jsx(x.Fragment,{});const a=()=>n.threshold?n.invertThreshold?"1 ".repeat(n.threshold)+"0 ".repeat(256-n.threshold):"0 ".repeat(n.threshold)+"1 ".repeat(256-n.threshold):"",i=()=>x.jsx(x.Fragment,{children:n.useThreshold&&x.jsx("defs",{children:x.jsxs("filter",{id:e,"color-interpolation-filters":"sRGB",children:[x.jsx("feColorMatrix",{type:"matrix",values:`
796
- ${n.thresholdSaturation} ${n.thresholdSaturation} ${n.thresholdSaturation} 0 0
797
- ${n.thresholdSaturation} ${n.thresholdSaturation} ${n.thresholdSaturation} 0 0
798
- ${n.thresholdSaturation} ${n.thresholdSaturation} ${n.thresholdSaturation} 0 0
799
- 0 0 0 1 0
800
- `,result:"greyscale"}),x.jsxs("feComponentTransfer",{in:"greyscale",children:[x.jsx("feFuncR",{type:"discrete",tableValues:a()}),x.jsx("feFuncG",{type:"discrete",tableValues:a()}),x.jsx("feFuncB",{type:"discrete",tableValues:a()})]})]})})}),s=n.rotation||0,o=ht(s),r=Math.cos(o),c=-Math.sin(o),l=()=>{var f,p,Q,I,D,y,M,P,k,Y;const g=((f=n.pattern)==null?void 0:f.x)||0,d=((p=n.pattern)==null?void 0:p.y)||0,B=((Q=n.pattern)==null?void 0:Q.width)||0,h=((I=n.pattern)==null?void 0:I.height)||0,C=((D=n.pattern)==null?void 0:D.scaleX)||1,u=((y=n.pattern)==null?void 0:y.scaleY)||1,E=((M=n.pattern)==null?void 0:M.rotation)||0;return[(P=n.pattern)!=null&&P.svg?{id:`${t}-contents`,type:H.Illustration,x:g,y:d,rotation:E,width:B*C,height:h*u,src:A(),svg:(k=n.pattern)==null?void 0:k.svg,colors:(Y=n.pattern)==null?void 0:Y.colors}:{id:`${t}-contents`,type:H.Image,x:g,y:d,rotation:E,width:B*C,height:h*u,src:A()}]};return x.jsxs(x.Fragment,{children:[i(),x.jsx("g",{opacity:n.opacity,mask:n.stepName?void 0:n.mask,filter:n.useThreshold?`url(#${e})`:void 0,children:x.jsx("g",{transform:`
801
- matrix(1, 0, 0, 1, ${n.x}, ${n.y})
802
- matrix(1, 0, 0, 1, ${n.width/2}, ${n.height/2})
803
- matrix(${r}, ${-c}, ${c}, ${r}, 0, 0)
804
- matrix(1, 0, 0, 1, ${-n.width/2}, ${-n.height/2})
805
- matrix(${n.scaleX}, 0, 0, ${n.scaleY}, 0, 0)
806
- `,children:x.jsx(ba,{id:t,x:0,y:0,rotation:0,width:n.width,height:n.height,clipPath:n.path,children:l()})})})]})},Ua=new Map;class gs{constructor(t){this.font=t,this.glyphsFromText=new Map,this.kerningValues=new Map,this.height=this.calculateApproximateHeight()}getFont(){return this.font}getGlyphs(t){const e=this.glyphsFromText.get(t);if(e)return e;const A=this.font.stringToGlyphs(t);return this.glyphsFromText.set(t,A),A}getApproximateHeight(){return this.height}getExactHeight(t){const e=this.font.stringToGlyphs(t);let A=0,a=0;return e.forEach(i=>{const s=i.getMetrics();A=Math.max(A,s.yMax),a=Math.min(a,s.yMin)}),A-a}getKerningValue(t,e){if(!t.name||!e.name)return;let A=this.kerningValues.get(t.name);A||(A=new Map,this.kerningValues.set(t.name,A));let a=A.get(e.name);return a||(a=this.font.getKerningValue(t,e),A.set(e.name,a)),a}calculateApproximateHeight(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e=this.font.stringToGlyphs(t);let A=0,a=0;return e.forEach(i=>{const s=i.getMetrics();A=Math.max(A,s.yMax),a=Math.min(a,s.yMin)}),A-a}}const ds=n=>n.substring(0,5).toLowerCase().trim()==="data:",lA=new Map,bt=async n=>{if(lA.has(n))return lA.get(n);const e=(async()=>{try{return ft(n).getFont()}catch{if(ds(n)){const A=ca(n),a=Ge.parse(A);return dA(n,a),a}else{const A=await me(n,!0),a=Ge.parse(A);return dA(n,a),await $n(a,n),a}}})();return lA.set(n,e),e},gA=n=>{const t=ca(n),e=Ge.parse(t);return dA(n,e),e},ft=n=>{const t=Ua.get(n);if(t)return t;throw new Error("Font metrics unavailable for font")},dA=(n,t)=>{const e=new gs(t);return Ua.set(n,e),e},De=(n,t,e,A)=>Math.max(ws(n.join(`
807
- `),e,A),t),Ra=(n,t,e,A,a,i)=>{const s=(i||hA)*a.getApproximateHeight(),o=t.split(`
808
- `);try{const r=o.flatMap(l=>Fe(l,n.width,A,a)),c=r.flatMap(l=>l.lines);return{lines:c,requiredHeight:r.flatMap(l=>l.lines).length*(A*s),fontSize:e,requiredWidth:De(c,n.width,A,a)}}catch{const c=t.split("");return{lines:c,requiredHeight:c.length*(A*s),fontSize:e,requiredWidth:De(c,n.width,A,a)}}},Fe=(n,t,e,A)=>{const a=Ct(n,e,A);if(a<=t)return{lines:[n],width:a};if(!(n.indexOf(" ")>-1)){if(n.length<=1)throw new Error(`Character ${n} is wider than region`);const l=Math.floor(n.length/2),g=Fe(n.slice(0,l),t,e,A),d=Fe(n.slice(l),t,e,A);return{lines:[...g.lines,...d.lines],width:Math.max(g.width,d.width)}}const s=n.split(" "),o=[];let r=-1/0,c=0;for(;c<s.length;){const l=s[c];if(Ct(l,e,A)>t){const g=Fe(l,t,e,A);o.push(...g.lines),r=Math.max(r,g.width),c++}else{const g=[l];r=Math.max(r,Ct(l,e,A));let d=c+1,B=!0;for(;d<s.length&&B;){const h=s[d],C=Ct(`${g.join(" ")} ${h}`,e,A);C<=t?(g.push(h),r=Math.max(r,C),d++):B=!1}o.push(g.join(" ")),c=d}}if(r<0)throw new Error(`No max width calculated for text: ${o}.`);return{lines:o,width:r}},Bs=(n,t,e,A,a,i)=>{const s=(i??hA)*t.getApproximateHeight(),o=1/e.unitsPerEm,r=Ga(n,o,t),c=n.length*s*o,l=A/r,g=a/c;return Math.min(g,l)},hs=(n,t,e,A)=>{var c;const a=ft(t.fontData.assetUrl),i=a.getFont(),s=t.fontSize/i.unitsPerEm;if(!e)return Ra(t,n,t.fontSize,s,a,A);let o;if(t.text?o=t.text.split(`
809
- `):o=((c=t.input)==null?void 0:c.split(`
810
- `))??[""],e.input===n&&t.width===e.width&&t.height===e.height&&t.lineHeight===e.lineHeight)return{lines:o,requiredHeight:t.height,requiredWidth:De(o,t.width,s,a),fontSize:t.fontSize};const r=t.width!==e.width!=(t.height!==e.height);return t.lineHeight===e.lineHeight&&!r&&e.input===n?{lines:o,requiredHeight:t.height,requiredWidth:De(o,t.width,s,a),fontSize:Bs(o,a,i,t.width,t.height,A)}:Ra(t,n,t.fontSize,s,a,A)},Cs=(n,t,e,A,a)=>{const s=ft(t.assetUrl).getFont();let o={...n};const r={...n},c=Ga(A,e/s.unitsPerEm,ft(t.assetUrl));return c&&c<o.width&&(r.width=c,a==="left"?(r.left+=Math.sin(o.rotation*Math.PI/360)*(o.width-c),r.top+=Math.sin(o.rotation*Math.PI/180)*(c-o.width)/2):a==="right"?r.left+=o.width-c:r.left+=(o.width-c)/2,A&&us(A,A).every(([l,g])=>l===g)&&(o=r)),o},BA=1,Ct=(n,t,e)=>{let A=0;const a=e.getGlyphs(n);return a.forEach((i,s)=>{if(i.advanceWidth&&(A+=i.advanceWidth),s<a.length-1){const o=e.getKerningValue(i,a[s+1]);A+=o||0}}),A*=t,A},ws=(n,t,e)=>{let A=0;const a=e.getGlyphs(n);return a.forEach((i,s)=>{if(i.advanceWidth&&(A=Math.max(A,i.advanceWidth)),s<a.length-1){const o=e.getKerningValue(i,a[s+1]);A=Math.max(A,o||0)}}),A*=t,A},Ga=(n,t,e)=>{let A=0;return n.forEach(a=>{A=Math.max(A,Ct(a,t,e))}),A},Ta={stripControlCharacters:!0,vertical:!1,uppercase:!1},ye=(n,t=Ta)=>{const e={...Ta,...t};let A=n||"";return e.stripControlCharacters&&(A=A.replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g,"")),e.uppercase&&(A=A.toUpperCase()),e.vertical&&(A=A.split("").join(`
811
- `)),A},us=(n,t)=>n.map((e,A)=>[e,t[A]]),Es=(n="center",t=!1)=>t?"center":n,Ja=n=>n==="left"?"start":n==="right"?"end":"middle",ne=(n,t,e)=>n.fontData?{...n,...(()=>{if(n.algorithm===Et.Traditional){const a=hs(t,n,e,n.lineHeight);return{text:a.lines.join(`
812
- `),height:a.requiredHeight,width:a.requiredWidth,fontSize:a.fontSize,input:t}}else return{text:t}})()}:n,hA=1.1,ms=n=>{var g;const e=(n.rotation||0)*Math.PI/180,A=Math.cos(e),a=-Math.sin(e),i=`text-path-${n.id}`,s=`text-fill-${n.id}`,o=n.x+(n.curved?0:n.width/2),r=n.y+(n.curved?0:n.height/2),c=(n.text||"").split(`
813
- `);if(n.curved&&!n.paths||!n.fontData)return null;const l=()=>{var d;return n.textFillImage?`url("#${s}")`:(d=n._renderingConfiguration)!=null&&d.spotColors&&n.fillSpotColorDefinition?`${n.fill} ${Ya(n.fillSpotColorDefinition)}`:n.fill};return x.jsxs(x.Fragment,{children:[x.jsxs("defs",{children:[n.textFillImage&&x.jsx("pattern",{id:s,patternUnits:"userSpaceOnUse",width:n.textFillImage.scale*n.textFillImage.width,height:n.textFillImage.scale*n.textFillImage.height,x:0,y:0,children:x.jsx("image",{href:n.textFillImage.src,xlinkHref:n.textFillImage.src,width:n.textFillImage.scale*n.textFillImage.width,height:n.textFillImage.scale*n.textFillImage.height})}),x.jsx("style",{type:"text/css",dangerouslySetInnerHTML:{__html:`
814
- @font-face {
815
- font-family: '${n.fontData.name}';
816
- src: url('${n.fontData.assetUrl}') format('truetype');
817
- }
818
- `}}),n.curved&&n.paths?x.jsx("path",{id:i,d:n.paths[0]}):void 0]}),(g=n._renderingConfiguration)!=null&&g.debug?x.jsx("rect",{stroke:"blue",fill:"none",x:n.x,y:n.y,width:n.width,height:n.height}):void 0,x.jsx("g",{mask:n.stepName?void 0:n.mask,children:x.jsx("g",{transform:`matrix(${A}, ${-a}, ${a}, ${A}, ${o}, ${r})`,children:x.jsx("text",{xmlSpace:"preserve",fontFamily:`'${n.fontData.name}'`,fontSize:n.fontSize,fontStyle:"normal",fontWeight:"normal",fill:l(),style:{whiteSpace:"pre",userSelect:"none"},children:n.curved?x.jsx(Qs,{text:n.text||"",curvedPathId:i,align:n.align}):c.map((d,B)=>x.jsx(fs,{align:n.vertical?"center":n.align,fontSize:n.fontSize,thisLineIdx:B,amountLines:c.length,text:d,textboxHeight:n.height,textboxWidth:n.width,lineHeight:n.lineHeight,vertical:n.vertical,verticalAlign:n.verticalAlign},B))})})})]})},fs=n=>{const t=()=>n.lineHeight!==void 0?n.lineHeight:hA,e=()=>n.align==="left"?-n.textboxWidth/2:n.align==="right"?n.textboxWidth/2:0,A=()=>{const a=n.fontSize*t(),i=n.textboxHeight/2;if(n.verticalAlign==="top")return-i+n.fontSize*3/4+n.thisLineIdx*a;if(n.verticalAlign==="bottom"){const o=n.amountLines-1-n.thisLineIdx;return i-n.fontSize/4-o*a}const s=(n.amountLines-1)/2;return(n.thisLineIdx-s)*a+n.fontSize/4};return x.jsx("tspan",{textAnchor:Ja(n.align),x:e(),y:`${A()}px`,children:n.text})},Qs=n=>{const t=`#${n.curvedPathId}`,e=()=>n.align==="left"?"0%":n.align==="right"?"100%":"50%";return x.jsx("textPath",{startOffset:e(),textAnchor:Ja(n.align),href:t,xlinkHref:t,children:n.text})},ps=n=>{var s,o;if(n.cachedObjectURL&&!((s=n._renderingConfiguration)!=null&&s.omitCachedFields))return x.jsx(Ha,{id:n.id,src:n.cachedObjectURL,x:n.x,y:n.y,width:n.width,height:n.height,rotation:n.rotation,preserveAspectRatio:"none",immutable:n.immutable,mask:n.stepName?void 0:n.mask});const t=n.rotation||0,e=ht(t),A=Math.cos(e),a=-Math.sin(e),i=`
819
- matrix(1, 0, 0, 1, ${n.x}, ${n.y})
820
- matrix(1, 0, 0, 1, ${n.width/2}, ${n.height/2})
821
- matrix(${A}, ${-a}, ${a}, ${A}, 0, 0)
822
- matrix(1, 0, 0, 1, ${-n.width/2}, ${-n.height/2})
823
- `;if(!n.svg)throw new Error(`Illustration element ${n.id} (stepName ${n.stepName}) lacked svg from src ${n.src} at render time.`);return x.jsx("g",{mask:n.stepName?void 0:n.mask,children:x.jsx("g",{transform:i,dangerouslySetInnerHTML:{__html:cA(n.svg,n.width,n.height,n.colors,(o=n._renderingConfiguration)==null?void 0:o.spotColors)}})})};class Oa{constructor(){this.id=b(),this.stateCallbacks=[],this.prevCommands=[],this.nextCommands=[]}registerStateCallback(t){this.stateCallbacks.push(t)}unregisterStateCallback(t){this.stateCallbacks.filter(e=>e!==t)}getState(){return this.state}runStateCallbacks(){this.stateCallbacks.forEach(t=>t())}apply(t,e){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.nextCommands=[],e||this.prevCommands.push(t)}undo(){if(!this.state)return;const t=this.prevCommands.pop();if(!t)return;const e=t.undo();t.varying?this.state={...this.state,variation:e}:this.state={...this.state,transaction:e},this.nextCommands.push(t),this.runStateCallbacks()}redo(){if(!this.state)return;const t=this.nextCommands.pop();t&&(this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.prevCommands.push(t))}flattenSequence(t,e){const a=this.prevCommands.filter(i=>i.sequenceId===t).pop();a&&(this.prevCommands=this.prevCommands.filter(i=>i.sequenceId!==t),a==null||a.overrideOldState(e),this.prevCommands.push(a))}getLayoutById(t){var s,o,r,c;if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const e=(o=(s=this.state.transaction)==null?void 0:s.layouts)==null?void 0:o[t],A=(c=(r=this.state.variation)==null?void 0:r.layouts)==null?void 0:c[t],a=(e==null?void 0:e.layout)||(A==null?void 0:A.layout);if(!a)throw new Error(`No layout: ${t}`);const i=[...(e==null?void 0:e.elements)||[],...(A==null?void 0:A.elements)||[]];return this.getLayoutDataWithState(a,i)}getAllLayouts(){var A,a;if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const t=[...Object.keys((A=this.state.transaction)==null?void 0:A.layouts),...Object.keys(((a=this.state.variation)==null?void 0:a.layouts)||{})];return[...new Set(t)].map(i=>this.getLayoutById(i))}getLayoutDataWithState(t,e){return{layoutState:{layout:t,elements:e},getComponentWithProps:A=>Me(t,e,A)}}initialize(t,e){if(e){this.state={transaction:e};return}let A={serializableWorkflow:{steps:[]},layouts:{}};t.forEach(a=>{A=new wA(a).apply(A)}),this.runStateCallbacks(),this.state={transaction:A}}commandReducer(t,e){if(e.varying){const A={layouts:{},serializableWorkflow:{steps:[]},...t.variation};return{...t,variation:e.apply(A)}}else{const A=t.transaction||{layouts:{},serializableWorkflow:{steps:[]}};return{...t,transaction:e.apply(A)}}}}const La=n=>n.type===H.Image?x.jsx(Ha,{...n},n.id):n.type===H.Frame?x.jsx(ls,{...n},n.id):n.type===H.Illustration?x.jsx(ps,{...n},n.id):n.type===H.Textbox?x.jsx(ms,{...n},n.id):n.type===H.Group?x.jsx(ba,{...n},n.id):null,Me=(n,t,e)=>{const A=e.renderingConfiguration,a=A!=null&&A.removeExcludedElements?t.filter(i=>!i.excludeFromExport):t;return x.jsx(Zi,{preserveAspectRatio:void 0,elements:a,backgroundColor:n.transparentBackground?void 0:e.backgroundColor?e.backgroundColor:"white",width:e.width||n.width,height:e.height||n.height,viewBox:A!=null&&A.region?{x:A.region.left,y:A.region.top,width:A.region.width,height:A.region.height}:{x:0,y:0,width:n.width,height:n.height},configuration:A,outlineArea:e.outlineArea,maxHeight:e.maxHeight,maxWidth:e.maxWidth,position:e.position,borderRadius:e.borderRadius,outlineColor:e.outlineColor})};function CA(n){return n.sort((t,e)=>{const A=t.layer||0,a=e.layer||0;if(A<a)return-1;if(A>a)return 1;const i=t.layerIndex||0,s=e.layerIndex||0;return i<s?-1:i>s?1:0})}class j extends Error{constructor(){super("Element not found!"),Object.setPrototypeOf(this,j.prototype)}}const z=(n,t)=>$(n,t).elements.find(a=>a.id===n),$=(n,t)=>{const e=Object.values(t).find(A=>A.elements.some(a=>a.id===n));if(!e)throw new j;return e},At=(n,t)=>{const e=[...t.elements.filter(a=>a.id!==n.id),n],A=CA(e);return{layout:t.layout,elements:A,modificationID:b()}},Qt=async(n,t)=>{const e=[...Object.keys(n.layouts),...Object.keys((t==null?void 0:t.layouts)||{})],A=[...new Set(e)];for(let a=0;a<A.length;a++){const i=A[a],s=n.layouts[i],o=t==null?void 0:t.layouts[i],r=s||o;await Promise.all(r.elements.map(async c=>{var l,g,d;if(c.type==="illustration"){const B=c;if(B.src&&!B.svg){const h=await tt(B.src),C=await ct(h);B.svg=cA(C.svg,B.width,B.height,B.colors)}}else if(c.type==="frame"){const B=c;if((l=B.pattern)!=null&&l.colors&&((g=B.pattern)!=null&&g.src)){const h=await tt((d=B.pattern)==null?void 0:d.src),C=await ct(h);B.pattern.svg=C.svg}}isNaN(c.x)&&(c.x=0),isNaN(c.y)&&(c.y=0),isNaN(c.width)&&(c.width=0),isNaN(c.height)&&(c.height=0),isNaN(c.rotation)&&(c.rotation=0)}))}};class J{undo(){if(!this.oldState)throw new Error("Cannot undo.");return this.oldState}overrideOldState(t){this.oldState=t}}class za extends J{constructor(t){super(),this.serializableWorkflow=t}apply(t){return this.oldState=t,{...t,serializableWorkflow:this.serializableWorkflow}}}class Is extends J{constructor(t,e,A){super(),this.id=t,this.x=e,this.y=A}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,x:this.x,y:this.y},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Ds extends J{constructor(t,e){super(),this.id=t,this.angle=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,rotation:this.angle},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Fs extends J{constructor(t,e,A){super(),this.id=t,this.width=Math.abs(e),this.height=Math.abs(A)}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;let A={...e,width:this.width,height:this.height};if(e.type==="frame"){const s=A;s.scaleX=s.scaleX*this.width/e.width,s.scaleY=s.scaleY*this.height/e.height}else if(e.type==="textbox"){const s=A,o=(!s.algorithm||s.algorithm===Et.Autosize?s.text:s.input)??"";A=ne(s,o,e)}const a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class O extends J{constructor(t){super(),this.commands=t}apply(t){return this.oldState=t,this.commands.reduce((e,A)=>A.apply(e),t)}}class wA extends J{constructor(t){super(),this.layout=t}apply(t){return this.oldState=t,{...t,layouts:{...t.layouts,[this.layout.id]:{elements:[],layout:{...this.layout},modificationID:b()}}}}}class K extends J{constructor(t,e){super(),this.element=t,this.layout=e}apply(t){this.oldState=t,t.layouts[this.layout.id]||(t.layouts[this.layout.id]={layout:this.layout,elements:[],modificationID:""});const e=t.layouts[this.layout.id].elements;if(e.find(o=>o.id===this.element.id))throw new Error(`Failed to apply new ${this.element.type} element because ID ${this.element.id} already taken`);if(this.element.productOverlay||e.length===0){const o=[...e,this.element];return this.element.layerIndex===void 0&&(this.element.layerIndex=this.assignIndex(this.element,o)),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:o,modificationID:b()}}}}const a=e[e.length-1],i=a.productOverlay?a:null;i&&e.pop();let s;if(this.element.layerIndex!==null&&this.element.layerIndex!==void 0)s=[...e,this.element].sort((o,r)=>o.layerIndex!==void 0&&r.layerIndex!==void 0?o.layerIndex-r.layerIndex:0);else{const o=this.assignIndex(this.element,e);this.element.layerIndex=o!==void 0?o:0,s=[...e,this.element]}return i&&s.push(i),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:s,modificationID:b()}}}}assignIndex(t,e){var a;if(e.length===0)return 0;const A=(a=e.filter(i=>(i.layer||0)===(t.layer||0)).sort((i,s)=>(i.layerIndex||0)-(s.layerIndex||0))[e.length-1])==null?void 0:a.layerIndex;return A!==void 0?A+1:0}}class wt extends J{constructor(t){super(),this.id=t}apply(t){this.oldState=t;let e=!1;const A=Object.values(t.layouts).map(i=>(i.elements.filter(o=>o.id!==this.id).length!==i.elements.length&&(e=!0),{...i,elements:i.elements.filter(o=>o.id!==this.id),modificationID:b()}));e||console.log(`Failed to delete element ${this.id}`);const a={};return A.forEach(i=>{a[i.layout.id]=i}),{...t,layouts:a}}}class ja extends J{constructor(t,e,A){super(),this.id=t,this.color=e,this.textFillSpotColor=A}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,fill:this.color,fillSpotColorDefinition:this.textFillSpotColor,textFillImage:void 0},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class uA extends J{constructor(t,e){super(),this.id=t,this.imageFill=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,textFillImage:this.imageFill},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Ka extends J{constructor(t,e){super(),this.id=t,this.size=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,fontSize:this.size},a=$(e.id,Object.values(t.layouts)),i=(!e.algorithm||e.algorithm===Et.Autosize?e.text:e.input)??"",s=At(ne(A,i),a);return{...t,layouts:{...t.layouts,[a.layout.id]:s}}}}class EA extends J{constructor(t,e){super(),this.id=t,this.fontData=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,fontData:this.fontData},a=$(e.id,Object.values(t.layouts)),i=(!e.algorithm||e.algorithm===Et.Autosize?e.text:e.input)??"",s=At(ne(A,i),a);return{...t,layouts:{...t.layouts,[a.layout.id]:s}}}}class Va extends J{constructor(t,e){super(),this.id=t,this.align=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,align:this.align},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class ys extends J{constructor(t,e,A){super(),this.id=t,this.imageData=e,this.offsets=A}apply(t){this.oldState=t;const e=$(this.id,Object.values(t.layouts)),A=e.elements.findIndex(o=>o.id===this.id),a=e.elements[A].pattern,i=[...e.elements];i.splice(A,1,{...e.elements[A],pattern:{...a,src:this.imageData.src,x:this.offsets.x,y:this.offsets.y,width:this.imageData.width,height:this.imageData.height,scaleX:this.offsets.zoom,scaleY:this.offsets.zoom,svg:this.imageData.svg,colors:this.imageData.colors}});const s={...e,elements:i,modificationID:b()};return{...t,layouts:{...t.layouts,[e.layout.id]:s}}}}class Ms extends J{constructor(t,e,A,a,i){super(),this.id=t,this.useThreshold=e,this.invertThreshold=A,this.threshold=a,this.thresholdSaturation=i}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,useThreshold:this.useThreshold,invertThreshold:this.invertThreshold,threshold:this.threshold,thresholdSaturation:this.thresholdSaturation},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Ss extends J{constructor(t,e){super(),this.id=t,this.src=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,src:this.src},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Wa extends J{constructor(t,e){super(),this.id=t,this.text=e}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A=$(e.id,Object.values(t.layouts)),a=At(ne(e,this.text,e),A);return{...t,layouts:{...t.layouts,[A.layout.id]:a}}}}class mA extends J{constructor(t,e,A){super(),this.id=t,this.className=e,this.fill=A}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A=e.colors||{},a=A[this.className];A[this.className]={browserValue:this.fill,spotColor:a==null?void 0:a.spotColor};const i={...e,colors:A},s=$(e.id,Object.values(t.layouts)),o=At(i,s);return{...t,layouts:{...t.layouts,[s.layout.id]:o}}}}class xs extends J{constructor(t,e,A){super(),this.id=t,this.svgBody=e,this.objectURL=A}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A={...e,svg:this.svgBody,cachedObjectURL:this.objectURL},a=$(e.id,Object.values(t.layouts)),i=At(A,a);return{...t,layouts:{...t.layouts,[a.layout.id]:i}}}}class Ys extends J{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!z(this.id,Object.values(t.layouts)).id)throw new j;const A=Object.values(t.layouts).find(s=>s.elements.find(o=>o.id===this.id));if(!A)throw new Error("Layout missing from state!");const a=A.elements.findIndex(s=>s.id===this.id);A.elements.push(A.elements.splice(a,1)[0]);const i=[...A.elements];return i.forEach((s,o)=>s.layerIndex=o),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:b()}}}}}class Ps extends J{constructor(t){super(),this.id=t}apply(t){this.oldState=t;const e=z(this.id,Object.values(t.layouts));if(!e.id)throw new j;const A=Object.values(t.layouts).find(o=>o.elements.find(r=>r.id===this.id));if(!A)throw new Error("Layout missing from state!");const a=A.elements.findIndex(o=>o.id===this.id);A.elements.splice(a,1),A.elements.unshift(e);const i=[...A.elements],s=i.splice(a,1)[0];return i.splice(a,0,s),i.forEach((o,r)=>o.layerIndex=r),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:b()}}}}}class vs extends J{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!z(this.id,Object.values(t.layouts)).id)throw new j;const A=Object.values(t.layouts).find(r=>r.elements.find(c=>c.id===this.id));if(!A)throw new Error("Layout missing from state!");const a=A.elements.findIndex(r=>r.id===this.id),i=a+1,s=[...A.elements],o=s.splice(a,1)[0];return s.splice(i,0,o),s.forEach((r,c)=>r.layerIndex=c),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:s,modificationID:b()}}}}}class Ns extends J{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!z(this.id,Object.values(t.layouts)).id)throw new j;const A=Object.values(t.layouts).find(r=>r.elements.find(c=>c.id===this.id));if(!A)throw new Error("Layout missing from state!");const a=A.elements.findIndex(r=>r.id===this.id),i=a-1,s=[...A.elements],o=s.splice(a,1)[0];return s.splice(i,0,o),s.forEach((r,c)=>r.layerIndex=c),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:s,modificationID:b()}}}}}function Xa(n,t,e,A){const a=e.width*n.zoom,i=e.height*n.zoom;if(A){const o=n,r=Math.max(t.width/e.width,t.height/e.height);o.zoom=Math.max(r,n.zoom);const c=e.width*o.zoom,l=e.height*o.zoom;return o.x=Se(n.x,t.width-c,0),o.y=Se(n.y,t.height-l,0),o}const s=n;return s.x=Se(s.x,-a,t.width),s.y=Se(s.y,-i,t.height),s}function Se(n,t,e){return Math.min(Math.max(n,t),e)}class qa{constructor(t,e){this.minZoomScale=[.03],this.maxZoomScale=[20],this._debouncedUpdateFrameOffsets=zA(this.updateFrameOffsets,200),this.targetElements=[],this.onFrameDataChangeListeners=[],this.onZoomChangeListeners=[],this.forceImageCover=t,this.initialZoom=e,this.thresholdSettings={useThreshold:!1,invertThreshold:!1,threshold:128,thresholdSaturation:.5}}connectWorkflowManager(t,e){e&&t.addStepSpecificStorageCallback(async A=>{if(A){const a=A;if(a.currentFrameSources){let i=!1;for(let s=0;s<a.currentFrameSources.length;s++){const o=a.currentFrameSources[s],r=await te(o),c=this.frameData?this.frameData[s]:void 0;jA(r,c)||(this.frameData||(this.frameData=new Array(a.currentFrameSources.length)),this.frameData[s]=r,i=!0)}i&&(this.onFrameDataChangeListeners.forEach(s=>s(this.frameData)),this.frameData&&this.imageData&&(this.recalculateOffsets(this.imageData),this.updateOffsets(this.offsets),this.recalculateZoomLimits(this.imageData,this.frameData)))}}},e),this.workflowManager=t,this.stepName=e}setTargetElements(t){this.targetElements=t}getFrameData(){return this.frameData}setFrameData(t){if(!t){this.frameData=void 0;return}t.forEach((e,A)=>{const a=vt.get(e);a&&(this.frameData||(this.frameData=new Array(t.length)),this.frameData[A]=a)})}getImageData(){return this.imageData}getImageSrc(){if(this.imageData){if(this.imageData.svg){const t=ka(this.imageData.svg,this.imageData.colors||{},!1);return je(t)}return this.imageData.src}}getOffsets(){return this.offsets}setOffsets(t){this.offsets=t}setZoom(t,e,A,a){if(this.imageData&&this.offsets&&this.frameData){(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length));const i=this.frameData.map((s,o)=>{const r=(e[o]-this.offsets[o].x)/this.offsets[o].zoom,c=(A[o]-this.offsets[o].y)/this.offsets[o].zoom,l=e[o]-r*t[o],g=A[o]-c*t[o];return{x:l,y:g,zoom:this.imageData.width*t[o]/this.imageData.width}});this.updateOffsets(i,a),this.onZoomChangeListeners.forEach(s=>s(t))}}setPatternData(t,e=!0){this.imageData=t,t&&this.frameData&&((e||!this.offsets)&&this.recalculateOffsets(t),this.updateOffsets(this.offsets,void 0,!0)),this.imageData&&this.frameData&&this.recalculateZoomLimits(this.imageData,this.frameData)}updateOffsets(t,e,A){const a=this.imageData;if(!a||!this.frameData)return;if(this.frameData.length!==t.length)throw new L("Frame data and offsets are not the same length. This is a bug. Please report it.");if(!this.offsets.some((s,o)=>!(t[o].x===s.x&&t[o].y===s.y&&t[o].zoom===s.zoom))&&!A){e&&e();return}(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((s,o)=>{this.offsets[o]=Xa(t[o],s,this.imageData,this.forceImageCover)}),this._debouncedUpdateFrameOffsets(this.offsets,a,this.frameData,this.thresholdSettings,e)}getThresholdSettings(){return this.thresholdSettings}setThresholdSettings(t){this.thresholdSettings=t,this.imageData&&this.frameData&&this._debouncedUpdateFrameOffsets(this.offsets,this.imageData,this.frameData,t)}onFrameDataChanged(t){t(this.frameData),this.onFrameDataChangeListeners.push(t)}onZoom(t){this.onZoomChangeListeners.push(t)}updateFrameOffsets(t,e,A,a,i){if(!A||A.length===0||A.some(o=>!o))throw new L("Frame data not set. This is a bug");if(!this.workflowManager)throw new L("No workflow manager set, cannot update offsets.");const s=this.workflowManager.getCommandDispatcher();this.targetElements.forEach((o,r)=>{s(new O([new ys(o,e,t[r]),new Ms(o,a.useThreshold,a.invertThreshold,a.threshold,a.thresholdSaturation)]))}),this.stepName&&this.workflowManager.updateStorage(this.stepName,{frameOffsetsList:t}),i&&i()}recalculateZoomLimits(t,e){(this.minZoomScale.length!==e.length||this.maxZoomScale.length!==e.length)&&(this.minZoomScale=new Array(e.length),this.maxZoomScale=new Array(e.length)),e.forEach((A,a)=>{const i=Math.max(A.width/t.width,A.height/t.height);this.forceImageCover?(this.minZoomScale[a]=i,this.maxZoomScale[a]=i*2.5):(this.minZoomScale[a]=i/10,this.maxZoomScale[a]=i*2.5)})}recalculateOffsets(t){this.frameData&&((!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((e,A)=>{this.offsets[A]=nA(t,e,this.initialZoom&&!this.forceImageCover?{scale:this.initialZoom}:void 0,this.forceImageCover)}),this._debouncedUpdateFrameOffsets(this.offsets,t,this.frameData,this.thresholdSettings))}}const ie=(n,t)=>{const e=n.layoutState.elements.filter(a=>a.layer===t),A=Math.max(...e.map(a=>a.layerIndex).filter(a=>a!==void 0));return Math.max(A,0)+1},Za=async n=>new Promise(t=>{tt(n).then(e=>{t(e)}).catch(e=>console.error(e))}),fA=new Map,se=async n=>{if(fA.has(n))return fA.get(n);const t=async a=>new Promise((i,s)=>{try{if(!(!!URL&&!!URL.createObjectURL))throw new Error("Environment incapable of generating ObjectURL");a.toBlob(r=>{if(!r)throw a.width===0||a.height===0?new Error(`Canvas dimensions are invalid (${a.width},${a.height})`):a.width*a.height>=268435456?new Error(`Canvas dimensions exceed device limit (${a.width},${a.height})`):new Error("Couldn't generate object URL for Illustration, the blob was undefined!");i(URL.createObjectURL(r))})}catch(o){s(o)}}),A=(async()=>{const s=gt().parseFromString(n,"image/svg+xml").firstElementChild;if(!s)throw new Error("Failed to read SVG");const r=new XMLSerializer().serializeToString(s),c=dt(),l=c.getContext("2d"),g=await Re.Pith.from(l,r,{anonymousCrossOrigin:!0,ignoreDimensions:!1,createCanvas:dt,createImage:Wt,DOMParser:Ze(),fetch:rt}),d=s.getAttribute("width"),B=s.getAttribute("height"),h=2048;if(B&&d){const C=parseFloat(B),E=parseFloat(d)/C;E>1?g.resize(h,h/E):g.resize(h*E,h)}else g.resize(h,h);return await g.render(),await t(c)})();return fA.set(n,A),A},oe=async(n,t,e,A)=>{const a=n.layoutState.layout.useEditableArea&&n.layoutState.layout.editableArea||{width:n.layoutState.layout.width,height:n.layoutState.layout.height,x:0,y:0},i=a.width<a.height?a.width:a.height,s=n.layoutState.layout.useEditableArea?i/1.3:i/2,o={top:a.y+a.height/2-s/2,left:a.x+a.width/2-s/2,width:s,height:s,rotation:0,panelId:n.layoutState.layout.panelId};if(e&&t===H.Illustration){const r=await ct(await Za(e)),d=gt().parseFromString(r.svg,"image/svg+xml").firstElementChild.getAttribute("viewBox");if(!d)throw new Error("SVG missing viewBox.");const B=o.height,h=d.split(" "),C=parseFloat(h[2])||1,u=parseFloat(h[3])||1,E=C/u;o.height=o.width/E,o.top+=(B-o.height)/2}if(e&&t===H.Image){const r=o.height,c=await me(e),l=await Xt(c),g=l.width/l.height;o.height=o.width/g,o.top+=(r-o.height)/2}if(e&&t===H.Textbox&&(A!=null&&A.text)&&(A!=null&&A.fontScale)){await bt(e);const r=ft(e),c=Ct(A.text,A==null?void 0:A.fontScale,r);o.width=Math.min(c,a.width*.85),o.left=a.x+a.width/2-o.width/2}return o};class ks{static async getFrame(t,e){const A=await Da(e.region,e.src),a=await te(A),i=e.region||await oe(t,H.Frame);return{id:b(),x:i.left,y:i.top,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||ie(t,i.layer||0),rotation:i.rotation,scaleX:i.width/a.width,scaleY:i.height/a.height,path:a.path,dataWidth:a.width,dataHeight:a.height,type:H.Frame,disablePlaceholder:e.configuration.disablePlaceholder,focalBlur:e.configuration.focalBlur,focalBlurStrength:e.configuration.focalBlurStrength,focalBlurRadius:e.configuration.focalBlurRadius,forceImageCover:e.configuration.forceImageCover,pattern:void 0,immutable:i.immutable}}static async getImage(t,e){const A=e.region||await oe(t,H.Image,e.src);return{id:b(),src:e.src,type:H.Image,y:A.top,x:A.left,rotation:A.rotation,width:A.width,height:A.height,layer:A.layer||0,layerIndex:A.layerIndex||ie(t,A.layer||0),immutable:A.immutable,preserveAspectRatio:"none"}}static async getTextbox(t,e){var h;const{configuration:A,fontSrc:a,designInputStep:i}=e,s=await bt(a),o={assetUrl:a,name:s.names.fullName.en},r=(i==null?void 0:i.text)||A.defaultText||"",c=A.replaceableText?A.replaceableText.replace("{{}}",r):r,l=ye(c,{vertical:A.vertical,uppercase:A.uppercase}),g=e.region||await oe(t,H.Textbox,a,{text:l,fontScale:A.size?A.size/s.unitsPerEm:void 0}),d=ne({id:b(),type:H.Textbox,x:g.left,y:g.top,width:g.width,height:g.height,align:Es(A.textAlign,A.vertical),curved:A.curved,fill:(i==null?void 0:i.color)||A.colour||"#000000",fontData:o,layer:g.layer||0,layerIndex:g.layerIndex||ie(t,g.layer||0),paths:A.paths,rotation:g.rotation,vertical:A.vertical,verticalAlign:A.verticalAlign||"middle",algorithm:Et.Traditional,fontSize:A.size||Math.max(Math.round(g.height*.025),1),text:l,input:r},l),B=Cs({...g,height:d.height},o,d.fontSize,((h=d==null?void 0:d.text)==null?void 0:h.split(`
824
- `))||[],d.align);return{...d,x:B.left,y:B.top+(g.height-B.height)/2,width:B.width,height:B.height}}static async getShape(t,e){const A=`
825
- <svg
826
- xmlns="http://www.w3.org/2000/svg"
827
- xmlnsXlink="http://www.w3.org/1999/xlink"
828
- xmlSpace="preserve"
829
- preserveAspectRatio="none"
830
- version="1.1"
831
- width="1"
832
- height="1"
833
- viewBox="0 0 1 1"
834
- >
835
- <rect
836
- x="0"
837
- y="0"
838
- width="1"
839
- height="1"
840
- class="spiff-fill-shape"
841
- fill="${e.color}"
842
- />
843
- </svg>
844
- `,a={};a["spiff-fill-shape"]={browserValue:e.color};const i=e.region||await oe(t,H.Illustration),s=b();return{stepRegion:e.region,colors:a,id:s,svg:A,type:H.Illustration,y:i.top,x:i.left,rotation:i.rotation,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||ie(t,i.layer||0),immutable:i.immutable}}static async getIllustration(t,e){const A=e.region||await oe(t,H.Illustration,e.src),a=await ct(await Za(e.src)),i=await se(a.svg),s=b();return{cachedObjectURL:i,stepRegion:e.region,colors:a.colors,id:s,src:e.src,svg:a.svg,type:H.Illustration,y:A.top,x:A.left,rotation:A.rotation,width:A.width,height:A.height,layer:A.layer||0,layerIndex:A.layerIndex||ie(t,A.layer||0),immutable:A.immutable}}}class $a{constructor(t,e,A){this.processRegion=async a=>{var r,c,l,g;const i=this.layouts.find(d=>d.panelId===a.panelId);if(!i)throw new q(a);let s="";if(this.configuration.type===S.ProductOverlay){let d="";if((r=this.product)!=null&&r.overlayImageUrl&&(d=this.product.overlayImageUrl),s=d,!d)throw new zt(this.configuration,"Couldn't find an asset for product overlay step")}const o=this.evaluateAssetType();if(o===H.Image){const d=this.configuration.type===S.SilentIllustration?(c=this.configuration.data.asset)==null?void 0:c.fileLink:(l=this.product)==null?void 0:l.overlayImageUrl;if(!d)throw new Error("Undefined raster silent step source");const B={stepName:this.configuration.stepName,id:b(),src:d,type:o,y:a.top,x:a.left,width:a.width,height:a.height,layer:a.layer,layerIndex:a.layerIndex,immutable:a.immutable,productOverlay:this.configuration.type===S.ProductOverlay?!0:void 0,rotation:a.rotation,excludeFromExport:this.configuration.data.excludeFromPrint,preserveAspectRatio:"none"};return{regionElement:{id:B.id,region:a},command:new K(B,i)}}else{const d=this.configuration.type===S.SilentIllustration?(g=this.configuration.data.asset)==null?void 0:g.fileLink:s,h=await ct(await(async()=>new Promise((u,E)=>{if(!d){E("Undefined vector silent step source");return}tt(d,!0).then(m=>{u(m)}).catch(m=>console.error(m))}))()),C={stepName:this.configuration.stepName,id:b(),cachedObjectURL:await se(h.svg),src:d,svg:h.svg,colors:h.colors,type:o,y:a.top,x:a.left,width:a.width,height:a.height,layer:a.layer,layerIndex:a.layerIndex,rotation:a.rotation,immutable:a.immutable,productOverlay:this.configuration.type===S.ProductOverlay?!0:void 0,excludeFromExport:this.configuration.data.excludeFromPrint};return{regionElement:{id:C.id,region:a},command:new K(C,i)}}},this.configuration=t,this.layouts=e,this.product=A||void 0}async trigger(){if(!this.configuration.data.regions)throw new zt(this.configuration,"Missing regions.");if(this.configuration.type===S.SilentIllustration){const t=this.configuration.data.regions.map(this.processRegion);return Promise.all(t)}else return this.configuration.type===S.ProductOverlay?Promise.all(this.configuration.data.regions.map(t=>{if(!this.layouts.find(A=>t.panelId===A.panelId))throw new q(t);return this.processRegion(t)})):Promise.reject("Unknown silent step. This is a bug")}evaluateAssetType(){var e,A,a;const t=this.configuration.type===S.ProductOverlay&&((e=this.product)!=null&&e.overlayImageUrl)?this.product.overlayImageUrl.toLowerCase():(a=(A=this.configuration.data.asset)==null?void 0:A.fileLink)==null?void 0:a.toLowerCase().split("?")[0];return t!=null&&t.startsWith("data:image/png")||t!=null&&t.endsWith(".jpeg")||t!=null&&t.endsWith(".jpg")||t!=null&&t.endsWith(".png")?H.Image:(t!=null&&t.endsWith(".svg")||t!=null&&t.startsWith("image/svg+xml"),H.Illustration)}}const _a=async n=>{const t=`${it.getServicesApiUrl()}/shortener`;try{return(await(await rt(t,{method:"POST",body:JSON.stringify({longUrl:n}),headers:{"Content-Type":"application/json"}})).json()).shortUrl}catch(e){throw console.error(e),new we("Failed to shorten URL, see console.")}};class tn{async poll(){try{if(await this.predicate()){this.onSuccess(),this.pollingId>-1&&window.clearInterval(this.pollingId);return}}catch{}this.attempts+=1,this.attempts<this.maxAttempts?this.pollingId=window.setTimeout(this.poll.bind(this),this.interval):this.onFailure()}constructor(t,e,A,a=3e3,i=10){this.onSuccess=e,this.onFailure=A,this.predicate=t,this.attempts=0,this.pollingId=-1,this.interval=a,this.maxAttempts=i,this.poll()}}class Hs{async init(t,e,A){return A&&await this.reload(t,e,A),null}async reload(t,e,A){const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),r=Object.values(A.layouts).map(c=>c.elements).flat().filter(c=>c.stepName===t.stepName).map(c=>({id:c.id,region:c.stepRegion}));await e.setSelectionsAndElements(t.stepName,[],r,async()=>{var g,d;const c=(g=a==null?void 0:a.storage)==null?void 0:g.videoShortUrl,l=(d=a==null?void 0:a.storage)==null?void 0:d.videoUrl;e.updateStorage(t.stepName,{videoShortUrl:c,videoUrl:l})})}async regenerateQRCode(t,e,A,a){const i=async()=>{var C,u;const B=(await _e([e]))[0],h=(u=(C=B==null?void 0:B.versions)==null?void 0:C.find(E=>E.name==="mpeg4"))==null?void 0:u.link;return{asset:B,link:h}},s=await new Promise((B,h)=>{new tn(async()=>!!(await i()).link,async()=>{const C=await i();if(!C.link||!C.link)throw new yt(C.asset);B({rel:"mpeg4",href:C.link})},()=>{h("Poller timed out with 40 attempts @ 3 second interval")},3e3,40)});t.forEach(B=>A.getCommandDispatcher()(new wt(B.id)));const o=a.data.baseUrl.slice(0,4)==="http"?"":"https://",r=new URL(o+a.data.baseUrl);r.searchParams.append("video",btoa(JSON.stringify([s]))),r.pathname=r.pathname+(r.pathname.slice(-1)==="/"?"":"/");const c=r.toString();if(c.length>=2e3)throw new we("Cannot create QR code, URL too long.");const l=await _a(c);if(!a.data||!a.data.regions)throw new zt(a,"Missing regions.");const g=await this.regionElements(a),d=await this.command(l,g,A,a.stepName);return d&&(d.command&&A.getCommandDispatcher()(d.command),d.followup&&await d.followup()),await A.setSelectionsAndElements(a.stepName,[],g,async()=>{A.updateStorage(a.stepName,{videoShortUrl:l,videoUrl:s.href})}),l}async regionElements(t){const e=A=>({id:b(),region:A});return t.data.regions.map(e)}async command(t,e,A,a){const i=A.getLayouts(),o=`data:image/svg+xml;base64,${btoa(await KA.toString(t,{type:"svg"}))}`,r=e.map(c=>{const l=c.region,g=i.find(d=>d.panelId===(l==null?void 0:l.panelId));if(!g&&l)throw new q(l);if(g&&!l)throw new Error("Region not found");if(!g||!l)throw new Error("Neither a region or layout found!");return new K({stepRegion:l,stepName:a,id:c.id,src:o,type:H.Image,y:l.top,x:l.left,width:l.width,height:l.height,rotation:0},g)});return{command:new O(r),followup:async()=>{}}}}const QA=new Hs;class bs{constructor(){this.frameSourceSvg=async(t,e)=>{if(!t)return aA(e);const A=t.asset;if(!A)throw new lt(t);const a=A.fileLink;if(a)return tt(a,!0);throw new yt(A)}}async init(t,e,A){if(A)return await this.reload(t,e,A),null;t.mandatory&&e.setMandatoryFulfilled(t.stepName,!1),e.markStepsAsInitialised([t.stepName]);let a;const i=e.getWorkflowExperience().getBundle();if(i&&t.globalPropertyAspectConfigurations){const s=i.getGlobalPropertyStateManager(),o=t.globalPropertyAspectConfigurations[0],r=s.getAspectStorage(o.aspectName);r&&r.originalAssetKey&&(a=(await T.getLocalOrFromServer(r.originalAssetKey)).fileLink)}if(t.option&&t.option.variants&&t.option.variants.length>0){const s=t.option,o=et.getDefaultVariant(s);return o?this.selectVariantCommand(t,o,[],e,void 0,a||t.data.placeholderImageUrl):null}return this.selectVariantCommand(t,void 0,[],e,void 0,a||t.data.placeholderImageUrl)}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),r=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName).map(l=>({id:l.id,region:l.stepRegion}));if(!t.option||(t.option.variants||[]).length===0){const l=t.data.regions.map(g=>aA(g));e.updateStorage(t.stepName,{currentFrameSources:l})}if(a){const l=async()=>{var h,C,u,E,m;const g=(h=a.storage)==null?void 0:h.colors,d=(C=a.storage)==null?void 0:C.framePatternSrc,B=(u=a.storage)==null?void 0:u.frameOffsetsList;if(e.updateMetadata(t.stepName,{frameOffsetsList:B,framePatternSrc:d}),d){const f=(E=e.getStepSpecificServices(t.stepName))==null?void 0:E.frameService;if(!f)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(d,f,!0,g),e.updateMetadata(t.stepName,{image:d}),e.updateStorage(t.stepName,{framePatternSrc:d}),this.validateColorCount(t,e)}if(B!=null&&B.some(f=>f.zoom)){const f=(m=e.getStepSpecificServices(t.stepName))==null?void 0:m.frameService;if(!f)throw new Error("Frame service unavailable, cannot load pattern!");f.updateOffsets(B)}e.setMandatoryFulfilled(t.stepName,!0)};if(a.selectedVariants&&a.selectedVariants.length>0){const g=a.selectedVariants[0].id;if(t.option&&g){const d=(c=t.option.variants)==null?void 0:c.find(B=>B.id===g);d&&await e.setSelectionsAndElements(t.stepName,[d],r,async()=>{const B=await Promise.all(t.data.regions.map(h=>this.frameSourceSvg(d,h)));e.updateStorage(t.stepName,{currentFrameSources:B}),await l()})}}else await e.setSelectionsAndElements(t.stepName,[],r,l)}}async availableColors(t,e){var a;const A=t.data.colorOption;return((a=A==null?void 0:A.variants)==null?void 0:a.map(i=>({fill:i.color,stroke:i.color,variant:i,pmsValue:i.name})))??[]}selectImage(t,e,A,a=!0){var r;const i=this.patternSource(e),s=(r=A.getStepStorage(t.stepName))==null?void 0:r.framePatternSrc;if(s&&s===i)return Promise.resolve();A.setEditedStatus(t.stepName,!0);const o=e.fileLink||"";return o.endsWith(".pdf")||o.endsWith(".eps")||o.endsWith(".ai")?new Promise(c=>{A.addPoller(new tn(async()=>{var B;const g=(B=(await T.getFromServer(e.key||"")).versions)==null?void 0:B.find(h=>h.name==="svg");return g?(await rt(g.link)).status===200:!1},()=>{T.getLocalOrFromServer(e.key||"").then(l=>{this.loadPatternFromAsset(l,t,A,a).then(c)})},()=>{throw new we("Failed to resolve transcoded PDF")}))}):this.loadPatternFromAsset(e,t,A,a)}async selectVariant(t,e,A,a,i){const s=await this.selectVariantCommand(t,e,A,a,i);s&&(s.command&&a.getCommandDispatcher()(s.command),s.followup&&await s.followup())}getCreateElementCommand(t,e,A,a){return new K({id:t,type:H.Frame,x:e.left,y:e.top,width:e.width,height:e.height,layer:e.layer,layerIndex:e.layerIndex,rotation:e.rotation,scaleX:e.width/a.frameData.width,scaleY:e.height/a.frameData.height,path:a.frameData.path,dataWidth:a.frameData.width,dataHeight:a.frameData.height,stepRegion:e,stepName:a.stepName,disablePlaceholder:a.disablePlaceholder,pattern:a.pattern,immutable:e.immutable},A)}async loadPatternFromString(t,e,A=!0,a=void 0,i){if(t.endsWith("svg")){const s=await Fa(t),o=s.width,r=s.height,c=await tt(t);if(i){const d=c.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);if(d&&d.length>0)throw new Error("Vector files may not include images or gradients when a color limit is specified.")}const l=await ct(c),g={src:t,width:o,height:r,aspect:o/r,svg:l.svg,colors:a??l.colors};Bt.set(t,g),e.setPatternData(g,A)}else{const s=await me(t,!0),o=await Xt(s),r={src:t,width:o.width,height:o.height,aspect:o.width/o.height,svg:void 0,colors:void 0};Bt.set(t,r),e.setPatternData(r,A)}}changeColors(t,e,A){var s,o;const a=(s=e.getStepSpecificServices(t.stepName))==null?void 0:s.frameService;if(!a||!((o=a.getImageData())!=null&&o.svg)){console.warn("changeColors was called without an SVG being assigned to a frame step");return}const i=this.calculateColorMetadata(a,t,A);e.updateMetadata(t.stepName,{colors:i.metadataColors}),e.updateStorage(t.stepName,{colors:i.storageColors}),a.setPatternData({...a.getImageData(),colors:i.newColors},!1),this.validateColorCount(t,e)}getUniqueColorCount(t,e){var s,o;const A=(s=e.getStepSpecificServices(t.stepName))==null?void 0:s.frameService;if(!A)return 0;const a=((o=A.getImageData())==null?void 0:o.colors)??{},i=[];for(const r in a){const c=a[r];if(c.pmsValue){const l=c.pmsValue.trim().toLocaleLowerCase();i.includes(l)||i.push(l)}else if(c.browserValue){const l=Sa(c.browserValue);i.includes(l)||i.push(l)}}return i.length}calculateColorMetadata(t,e,A){var r,c;if(!((r=t.getImageData())!=null&&r.svg))return{newColors:void 0,metadataColors:void 0,storageColors:void 0};const a={...t.getImageData().colors??{}},i={};Object.entries(a).forEach(([l,g])=>{const d={browserValue:g.browserValue};i[l]=d});for(const[l,g]of A.entries())a[l]={browserValue:g.browserValue,pmsValue:g.pmsValue},i[l]=g;let s=Array.from(Object.values(a)).map(l=>l.browserValue);const o=e.data.colorOption;return o&&((c=o.variants)==null||c.forEach(l=>{s=s.map(g=>{var d;return g.toLowerCase()===((d=l.color)==null?void 0:d.toLowerCase())?l.name:g})})),{newColors:a,metadataColors:s,storageColors:i}}validateColorCount(t,e){const A=t.data.colorPickerEnabled?t.data.maxColors??0:0;e.setStepError(t.stepName,"colors",A>0&&this.getUniqueColorCount(t,e)>A?"workflow.steps.frame.tooManyColors":void 0)}async selectVariantCommand(t,e,A,a,i,s){var B;const o=(B=a.getStepSpecificServices(t.stepName))==null?void 0:B.frameService;if(!o)throw new Error("Frame service unavailable, cannot load pattern!");const r=await Promise.all(t.data.regions.map(h=>this.frameSourceSvg(e,h)));i&&i(!0);const c=t.data.initialZoomLevel,l=await Promise.all(t.data.regions.map(async(h,C)=>{const u=await te(r[C]),E=o.getImageData(),m=A.map(y=>new wt(y.id)),f=E?nA(E,u,c&&!t.data.forceImageCover?{scale:c}:void 0,t.data.forceImageCover):void 0,p=E?{id:b(),src:E.src,x:(f==null?void 0:f.x)||0,y:(f==null?void 0:f.y)||0,width:E.width,height:E.height,scaleX:(f==null?void 0:f.zoom)||1,scaleY:(f==null?void 0:f.zoom)||1,rotation:0}:void 0,Q=b(),D=a.getLayouts().find(y=>y.panelId===h.panelId);if(!D)throw new q(h);return{command:this.getCreateElementCommand(Q,h,D,{frameData:u,pattern:p,disablePlaceholder:t.data.disablePlaceholder,stepName:t.stepName}),regionEl:{id:Q,region:h},removeExistingCommands:m}})),g=l.map(h=>h.command),d=l.map(h=>h.removeExistingCommands).flat();return{command:new O([...g,...d]),followup:async()=>{i&&i(!1),await a.setSelectionsAndElements(t.stepName,e?[e]:[],[...l.map(h=>h.regionEl)],async()=>{var h;if(a.updateStorage(t.stepName,{currentFrameSources:r}),s){const C=(h=a.getStepSpecificServices(t.stepName))==null?void 0:h.frameService;if(!C)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(s,C,!0)}})}}}patternSource(t){var a;const e=(a=t.versions)==null?void 0:a.find(i=>i.name==="svg");if(e)return e.link;const A=t.fileLink;if(A)return A;throw new yt(t)}async loadPatternFromAsset(t,e,A,a){var c,l;const i=this.patternSource(t),s=A.markUpdatePending(),o=(c=A.getStepSpecificServices(e.stepName))==null?void 0:c.frameService;if(!o)throw A.markUpdateCompleted(s),new Error("Frame service unavailable, cannot load pattern!");try{await this.loadPatternFromString(i,o,a,void 0,e.data.colorPickerEnabled&&!!e.data.maxColors&&e.data.maxColors>0)}catch(g){throw A.markUpdateCompleted(s),g}const r=this.calculateColorMetadata(o,e,new Map(Object.entries(((l=o.getImageData())==null?void 0:l.colors)??{})));A.updateMetadata(e.stepName,{image:i,colors:r.metadataColors}),A.updateStorage(e.stepName,{framePatternSrc:i,colors:r.storageColors}),A.markUpdateCompleted(s),A.setMandatoryFulfilled(e.stepName,!0),A.setInformationResults(A.getInformationResults().filter(g=>g.stepID===e.stepName)),this.validateColorCount(e,A)}}const ut=new bs;class Us{async getIllustrationBody(t){return new Promise(e=>{tt(t,!0).then(A=>{e(A)}).catch(A=>console.error(A))})}getCreateElementCommand(t,e,A,a){return new K({stepRegion:e,stepName:a.stepName,colors:a.svg.colors,id:t,src:a.src,svg:a.svg.svg,cachedObjectURL:a.objectURL,type:H.Illustration,y:e.top,x:e.left,rotation:e.rotation,width:e.width,height:e.height,layer:e.layer,layerIndex:e.layerIndex,immutable:e.immutable},A)}getColors(t,e){const A=e.getRegionElements(t.stepName)||[];if(A.length===0)return[];try{return z(A[0].id,e.getAllLayoutData()).colors}catch{return[]}}async init(t,e,A){const a=t.option;if(!a)return null;if(A)return this.reload(t,e,A);{const i=et.getDefaultVariant(a);if(i)return await this.selectVariantCommand(t,i,[],()=>{},e)}return null}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName),r=t.option;if(a!=null&&a.selectedVariants){const l=a.selectedVariants[0].id;if(r&&l){const g=(c=r.variants)==null?void 0:c.find(d=>d.id===l);if(g){const d=o.map(B=>({id:B.id,region:B.stepRegion}));await e.setSelectionsAndElements(t.stepName,[g],d,async()=>{var B;e.updateMetadata(t.stepName,{colors:(B=a.storage)==null?void 0:B.colors}),e.setMandatoryFulfilled(t.stepName,!0)})}}else throw new Error("Required illustration variant no longer available")}return null}async availableColors(t,e){var a;const A=t.data.colorOption;return A?A?(a=A.variants)==null?void 0:a.map(i=>({fill:i.color,stroke:i.color,variant:i})):[]:[]}async changeColorsCommand(t,e,A,a,i){var l;const s={};for(const[g,d]of i.entries())s[g]={browserValue:d,spotColor:(l=s[g])==null?void 0:l.spotColor};const o=cA(t,e,A,s),r=await se(o),c=[];for(const g of a){for(const[d,B]of i.entries())c.push(new mA(g,d,B));c.push(new xs(g,o,r))}return new O(c)}async changeColors(t,e,A,a,i){var B,h;if(e.length===0)return;const s=z(e[0].id,a().map(C=>C.layoutState)),o={...s.colors},r={};Object.entries(o).forEach(([C,u])=>{const E={browserValue:u.browserValue},m=u.spotColor;m&&(E.spotColor={profileName:m.profileName,namedColor:m.namedColor}),r[C]=E});for(const[C,u]of i.entries())o[C]={browserValue:u,spotColor:(B=o[C])==null?void 0:B.spotColor},r[C]={browserValue:u};let c=Array.from(Object.values(o)).map(C=>C.browserValue);const l=t.data.colorOption;l&&((h=l.variants)==null||h.forEach(C=>{c=c.map(u=>{var E;return u.toLowerCase()===((E=C.color)==null?void 0:E.toLowerCase())?C.name:u})})),A.updateMetadata(t.stepName,{colors:c});const g=new Map;if(Object.entries(o).forEach(([C,u])=>{g.set(C,u.browserValue)}),!s.svg)throw new Error("Colors changed before SVG loaded. This should never happen!");const d=await this.changeColorsCommand(s.svg,s.width,s.height,e.map(C=>C.id),g);A.updateStorage(t.stepName,{colors:r}),A.getCommandDispatcher()(d)}async selectVariant(t,e,A,a,i){const s=await this.selectVariantCommand(t,e,A,a,i);s&&(s.command&&i.getCommandDispatcher()(s.command),s.followup&&await s.followup())}async selectVariantCommand(t,e,A,a,i){var E;if(!t.data||!t.data.regions)throw new zt(t,"Missing regions.");a(!0);const s=A.map(m=>new wt(m.id));t.mandatory&&i.setMandatoryFulfilled(t.stepName,!1);const o=e.asset;if(!o)throw new lt(e);const r=o.fileLink;if(!r)throw new yt(o);const c=await ct(await this.getIllustrationBody(r)),l=await se(c.svg),g=m=>{const f=i.getLayouts().find(Q=>Q.panelId===m.panelId);if(!f)throw new q(m);const p=b();return{regionElement:{id:p,region:m},command:this.getCreateElementCommand(p,m,f,{stepName:t.stepName,src:r,objectURL:l,svg:c})}},d=t.data.regions.map(g),h=[...d.map(m=>m.command),...s];let C=Array.from(Object.values(c.colors)).map(m=>m.browserValue);const u=t.data.colorOption;return u&&((E=u.variants)==null||E.forEach(m=>{C=C.map(f=>{var p;return f.toLowerCase()===((p=m.color)==null?void 0:p.toLowerCase())?m.name:f})})),i.updateMetadata(t.stepName,{colors:C}),{command:new O(h),followup:async()=>{await i.setSelectionsAndElements(t.stepName,[e],d.map(p=>p.regionElement),async()=>{i.setMandatoryFulfilled(t.stepName,!0),a(!1)});const m=await this.availableColors(t,i)||[],f=Object.keys(c.colors);if(t.data.colorPickerEnabled&&m.length===1&&f.length===1){const p=m[0],Q=f[0];await this.changeColors(t,d.map(I=>I.regionElement),i,()=>i.getCommandContext().getAllLayouts(),new Map([[Q,p.variant.color]]))}else t.data.colorPickerEnabled&&await this.changeColors(t,d.map(p=>p.regionElement),i,()=>i.getCommandContext().getAllLayouts(),new Map)}}}}const re=new Us;class Rs{async init(t,e,A){const a=t.option;if(!a)throw new Lt(t);if(A)await this.reload(t,e,A);else{const i=et.getDefaultVariant(a);if(i)return await this.selectVariantLambda(t,i,e,()=>{})}return null}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName),r=t.option;if(!r)throw new Lt(t);if(a!=null&&a.selectedVariants){const l=a.selectedVariants[0].id;if(l){const g=(c=r.variants)==null?void 0:c.find(d=>d.id===l);if(g){const d=g.material,B=o.map(h=>({id:h.id,region:h.stepRegion}));await e.setSelectionsAndElements(t.stepName,[g],B,async()=>{const h=e.getModelContainer();if(h){const C=t.data.targetMaterials.map(u=>h.applyMaterialVariant(u,r.id||"",d||{}));Promise.all(C).then(()=>e.setMandatoryFulfilled(t.stepName,!0))}})}}}}async selectVariant(t,e,A,a){const i=await this.selectVariantLambda(t,e,A,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantLambda(t,e,A,a){const i=A.getModelContainer();a(!0);const s=e.material;if(!s)throw a(!1),new lt(e);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(t.stepName,[e],[],async()=>{try{i&&t.data.targetMaterials.forEach(o=>{t.option&&i.applyMaterialVariant(o,t.option.id||"",s)}),A.setMandatoryFulfilled(t.stepName,!0)}finally{a(!1)}})}}}}const pA=new Rs;class Gs{async init(t,e,A){const a=t.option;if(!a)throw new Lt(t);if(A)await this.reload(t,e,A);else{const i=et.getDefaultVariant(a);if(i)return await this.selectVariantLambda(t,i,e,()=>{})}return null}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName),r=t.option;if(a!=null&&a.selectedVariants){const l=a.selectedVariants[0].id;if(r&&l){const g=(c=r.variants)==null?void 0:c.find(d=>d.id===l);if(g){const d=o.map(B=>({id:B.id,region:B.stepRegion}));await e.setSelectionsAndElements(t.stepName,[g],d,async()=>{var h;const B=e.getModelContainer();if(B&&t.option){const C=(h=g.asset)==null?void 0:h.fileLink;if(!C)throw new lt(g);await B.applyModelVariant(t.stepName||"",{model:C,contextService:e.getLayoutPreviewService()},t.data.replaceProductModel||!1),e.setMandatoryFulfilled(t.stepName,!0)}})}}}}async selectVariant(t,e,A,a){const i=await this.selectVariantLambda(t,e,A,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantLambda(t,e,A,a){var s;a(!0);const i=(s=e.asset)==null?void 0:s.fileLink;if(!i)throw new lt(e);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(t.stepName,[e],[],async()=>{try{const o=A.getModelContainer();o&&await o.applyModelVariant(t.stepName,{model:i,contextService:A.getLayoutPreviewService()},t.data.replaceProductModel||!1),A.setMandatoryFulfilled(t.stepName,!0)}finally{a(!1)}})}}}}const IA=new Gs;class Ts{async init(t,e,A){if(A)await this.reload(t,e,A);else return e.updateMetadata(t.stepName,{text:""}),this.changeTextCommand(t,"",e,"",()=>{});return null}async reload(t,e,A){const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),r=Object.values(A.layouts).map(c=>c.elements).flat().filter(c=>c.stepName===t.stepName).map(c=>({id:c.id,region:c.stepRegion}));await e.setSelectionsAndElements(t.stepName,[],r,async()=>{var c,l;e.updateStorage(t.stepName,{text:(c=a==null?void 0:a.storage)==null?void 0:c.text}),e.setMandatoryFulfilled(t.stepName,((l=a==null?void 0:a.storage)==null?void 0:l.text)!=="")})}async changeText(t,e,A,a,i){const s=await this.changeTextCommand(t,e,A,a,i);s&&(s.command&&A.getCommandDispatcher()(s.command),s.followup&&await s.followup())}async changeTextCommand(t,e,A,a,i){var l;const s=A.getRegionElements(t.stepName),o=(l=A.getStepSpecificServices(t.stepName))==null?void 0:l.module;if(!o)return console.error("Missing module."),null;const r=A.getProfanities();if(!this.validateInput(t,e,r,i))return A.setMandatoryFulfilled(t.stepName,!1),console.error(a),null;if(A.setMandatoryFulfilled(t.stepName,e!==""),!t.data||!t.data.regions||t.data.regions.length<=0)return console.error("Missing configuration."),null;A.updateStorage(t.stepName,{text:e}),A.updateMetadata(t.stepName,{text:e});const c=(g,d,B)=>{const h=B||b(),u=A.getLayouts().find(m=>m.panelId===d.panelId);if(!u)return console.error(`Can not find layout for region: ${d.panelId}`),null;const E=[];return B&&E.push(new wt(h)),E.push(new K({stepRegion:d,stepName:t.stepName,colors:{},id:h,svg:g,type:H.Illustration,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable},u)),{id:h,region:d,command:new O(E)}};if(s.length>0){const d=s.map(B=>{if(!B.region)return null;const h=o.svgPrint(e,B.region);return c(h,B.region,B.id)}).filter(B=>!!B).filter(B=>!!B).map(B=>B&&B.command);return{command:new O(d),followup:async()=>{}}}else{const g=t.data.regions.map(B=>c(o.svgPrint(e,B),B)),d=g.filter(B=>!!B).map(B=>B&&B.command);return{command:new O(d),followup:async()=>{const B=g.filter(h=>h).map(h=>h&&{id:h.id,region:h.region});await A.setSelectionsAndElements(t.stepName,[],B)}}}}validateInput(t,e,A,a){if(t.data&&t.data.maxLength){const s=t.data.maxLength;if(e.length>s)return a("Too many characters."),!1}if(!/^$|^[a-zA-Z0-9 ]+$/.test(e))return a("Unsupported characters."),!1;const i=Te.split(e.toLowerCase());for(const s of i)for(const o in A){const r=A[o].toLowerCase().replace(/\s/g,"");if(s===r)return a("Blocked profanity."),!1}return a(""),!0}}const DA=new Ts;class Js{async init(t,e,A){const a=t.option;if(!a)return null;if(A)await this.reload(t,e,A);else if(a.defaultVariant)return e.markStepsAsInitialised([t.stepName]),this.selectVariantCommand(t,a.defaultVariant,e,()=>{});return e.markStepsAsInitialised([t.stepName]),null}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName),r=t.option;if(a!=null&&a.selectedVariants){const l=a.selectedVariants[0].id;if(r&&l){const g=(c=r.variants)==null?void 0:c.find(d=>d.id===l);if(g){const d=o.map(B=>({id:B.id,region:B.stepRegion}));await e.setSelectionsAndElements(t.stepName,[g],d,async()=>{e.setMandatoryFulfilled(t.stepName,!0)})}}}}async selectVariant(t,e,A,a){const i=await this.selectVariantCommand(t,e,A,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantCommand(t,e,A,a){const i=e.asset;if(!i)throw new lt(e);const s=i==null?void 0:i.fileLink;if(!s)return console.error("No URL for picture!"),null;a(!0),t.mandatory&&A.setMandatoryFulfilled(t.stepName,!1);const r=A.getRegionElements(t.stepName).map(g=>new wt(g.id)),c=g=>{const B=A.getLayouts().find(C=>C.panelId===g.panelId);if(!B)throw new q(g);const h=b();return{regionElement:{id:h,region:g},command:new K({stepName:t.stepName,stepRegion:g,id:h,src:s,type:H.Image,y:g.top,x:g.left,rotation:g.rotation,width:g.width,height:g.height,layer:g.layer,layerIndex:g.layerIndex,immutable:g.immutable,preserveAspectRatio:"none"},B)}},l=t.data.regions.map(c);return{command:new O([...r,...l.map(g=>g.command)]),followup:async()=>{await A.setSelectionsAndElements(t.stepName,[e],l.map(g=>g.regionElement),async()=>{A.setMandatoryFulfilled(t.stepName,!0),a(!1)})}}}}const FA=new Js;class Os{async init(t,e,A){const a=t.option;if(!a)return null;if(A)await this.reload(t,e,A);else{const i=a.variants;if(et.getDefaultVariant(a)){const o=i==null?void 0:i.find(r=>{var c;return r.id===((c=a.defaultVariant)==null?void 0:c.id)});return this.selectVariantLambda(t,(o==null?void 0:o.id)||"",e)}}return null}async reload(t,e,A){var s;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),i=t.option;if(a!=null&&a.selectedVariants){const o=a.selectedVariants[0].id;if(i&&o){const r=(s=i.variants)==null?void 0:s.find(c=>c.id===o);r&&await e.setSelectionsAndElements(t.stepName,[r],[])}}}async selectVariant(t,e,A){await A.getInitializationPromise();const a=await this.selectVariantLambda(t,e,A);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(t,e,A){const a=t.option;if(!a)return null;const i=a.variants;if(!i)return null;const s=i.length>1?i.find(o=>o.id===e):i[0];if(!s)throw new Error("Failed to find selected variant in step variants, this should never happen!");return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(t.stepName,[s],[],async()=>{A.setMandatoryFulfilled(t.stepName,!0)})}}}}const yA=new Os;class Ls{constructor(){this.shapeFillId="spiff-fill-shape"}async availableColours(t){var A;const e=t.option;return e?((A=e.variants)==null?void 0:A.map(a=>({fill:a.color,stroke:a.color,variant:a})))||[]:[]}setCustomColor(t,e,A){const a=A.getLayouts(),s=(A.getRegionElements(e.stepName)||[]).map(o=>{const r=o.region;if(!a.find(l=>l.panelId===(r==null?void 0:r.panelId)))throw new q(r);return new mA(o.id,this.shapeFillId,t)}).filter(o=>!!o);A.getCommandDispatcher()(new O(s)),A.updateStorage(e.stepName,{colour:t})}async init(t,e,A){const a=t.option;if(!a)throw new Lt(t);if(A)await this.reload(t,e,A);else{const i=et.getDefaultVariant(a);return i?this.selectVariantCommand(t,{fill:i.color,stroke:i.color,variant:i},[],e):null}return null}async selectVariant(t,e,A,a){const i=await this.selectVariantCommand(t,e,A,a);i&&(i.command&&a.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async reload(t,e,A){var c;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(l=>l.elements).flat().filter(l=>l.stepName===t.stepName),r=t.option;if(a!=null&&a.selectedVariants){const l=a.selectedVariants[0].id;if(r&&l){const g=(c=r.variants)==null?void 0:c.find(d=>d.id===l);if(g){const d=o.map(B=>({id:B.id,region:B.stepRegion}));await e.setSelectionsAndElements(t.stepName,[g],d,async()=>{var B;e.updateStorage(t.stepName,{colour:((B=a==null?void 0:a.storage)==null?void 0:B.colour)||""}),e.setMandatoryFulfilled(t.stepName,!0)})}}}}async selectVariantCommand(t,e,A,a){var r;const i=a.getLayouts(),s=(r=a.getStepStorage(t.stepName))==null?void 0:r.colour,o=()=>{var c,l;if(((c=e.variant)==null?void 0:c.color)==="#custom")return s||"#FFFFFF";if((l=e.variant)!=null&&l.color)return e.variant.color;throw new Error("Failed to resolve color for shape step.")};if(A.length>0){const c=g=>{const d=g.region;if(!i.find(C=>C.panelId===(d==null?void 0:d.panelId)))throw new q(d);const h=o();return new mA(g.id,this.shapeFillId,h)},l=A.map(c).filter(g=>!!g);return{command:new O(l),followup:async()=>{await a.setSelectionsAndElements(t.stepName,e.variant?[e.variant]:[],A),a.updateStorage(t.stepName,{colour:o()})}}}else{const c=B=>{const h=i.find(f=>f.panelId===B.panelId);if(!h)throw new q(B);const C=o(),u=`
845
- <svg
846
- xmlns="http://www.w3.org/2000/svg"
847
- xmlnsXlink="http://www.w3.org/1999/xlink"
848
- xmlSpace="preserve"
849
- preserveAspectRatio="none"
850
- version="1.1"
851
- width="1"
852
- height="1"
853
- viewBox="0 0 1 1"
854
- >
855
- <rect
856
- x="0"
857
- y="0"
858
- width="1"
859
- height="1"
860
- class="${this.shapeFillId}"
861
- fill="${C}"
862
- />
863
- </svg>
864
- `,E={};E[this.shapeFillId]={browserValue:C};const m=b();return{id:m,region:B,command:new K({stepRegion:B,stepName:t.stepName,colors:E,id:m,svg:u,type:H.Illustration,y:B.top,x:B.left,rotation:B.rotation,width:B.width,height:B.height,layer:B.layer,layerIndex:B.layerIndex,immutable:B.immutable,excludeFromExport:t.data.excludeFromPrint},h)}},l=t.data.regions.map(c),g=l.filter(B=>!!B).map(B=>B==null?void 0:B.command),d=l.filter(B=>!!B).map(B=>({id:B.id,region:B.region}));return{command:new O(g),followup:async()=>{await a.setSelectionsAndElements(t.stepName,e.variant?[e.variant]:[],d,async()=>{a.updateStorage(t.stepName,{colour:o()})})}}}}}const Ut=new Ls;class zs{constructor(){this.latestToast=null,this.toastType=null,this.toastCallbacks=[]}addToastCallback(t){t({toastMessage:this.latestToast,toastType:this.toastType}),this.toastCallbacks.push(t)}removeToastCallback(t){this.toastCallbacks=this.toastCallbacks.filter(e=>e!==t)}setLatestToast(t,e){this.latestToast=t,this.toastType=e,this.onToastChange()}onToastChange(){this.toastCallbacks.forEach(t=>t({toastMessage:this.latestToast,toastType:this.toastType}))}}const en=new zs,MA=(n,t,e,A,a)=>{if(t.some(l=>l==null))throw new Error(`Failed to autosize lines: ${t.join(", ")}`);let i=t.map(l=>l.split(`
865
- `)).flat(),s=i.length,o=i.map(l=>Ct(l,A,a));const r=a.getApproximateHeight()*A;let c=!0;for(;c;){if(r+(s-1)*e>n.height)return[null,null];const g=Math.max(...o);if(g<=n.width)return[i,g];const d=o.reduce((u,E,m,f)=>E>f[u]?m:u,0),B=i[d];let h=!1,C=B.length;for(;!h&&C>-1;){C=B.lastIndexOf(" ",C-1);const u=[B.slice(0,C),B.slice(C+1)],E=u.map(f=>Ct(f,A,a));E[0]<=n.width&&(i=[...i.slice(0,d),...u,...i.slice(d+1)],o=[...o.slice(0,d),...E,...o.slice(d+1)],s+=1,h=!0)}h||(c=!1)}return[null,null]},ce=(n,t,e,A,a)=>{let i,s;const o=ft(t.assetUrl),r=o.getFont();if(a.size){const d=n/r.unitsPerEm;return[i,s]=MA(e,A,n,d,o),[a.size,i,s]}const c=6;let l=c-BA;if(A.length>0){let d=A,B=0;for(;(!a.maxSize||l<=a.maxSize)&&d;)l+=BA,B=l/r.unitsPerEm,[d,s]=MA(e,A,l,B,o)}l>c&&(l-=BA),a.minSize&&l<a.minSize&&(l=a.minSize);const g=l/r.unitsPerEm;return[i,s]=MA(e,A,l,g,o),[l,i,s]},SA=30;class xe extends Error{constructor(t){super(t),Object.setPrototypeOf(this,new.target.prototype),this.name=xe.name}}const js=["‘","’","“","”",`
866
- `];class Ye extends Error{constructor(t){super(t),Object.setPrototypeOf(this,new.target.prototype),this.name=Ye.name}}class Ks{constructor(){this.cachedColors=new Map,this.filterUnsupportedCharacters=(t,e)=>{let A=t.replace(/(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,"");const a=[],i=e?ft(e.assetUrl):void 0;if(i){const s=A.split("").filter(r=>!js.includes(r)).join(""),o=s.split("").map(r=>i.getFont().charToGlyph(r));for(let r=0;r<o.length;r++)o[r].name===".notdef"&&a.push(String.fromCharCode(s.charCodeAt(r)))}for(let s=0;s<a.length;s++)A=A.replaceAll(a[s],"");return A},this.textAlign=t=>t.vertical?"center":t.textAlign||"center",this.getErrorsForText=(t,e,A)=>{let a;e.data&&e.data.maxLength&&t.length>e.data.maxLength&&(a||(a={}),a.hitCharacterLimit=!0);const i=A.getProfanities(),s=Te.split(t.toLowerCase());for(const r of s)for(const c in i){const l=i[c].toLowerCase().replace(/\s/g,"");if(r===l){a||(a={}),a.blockedProfanity=!0;break}}return!e.data.allowNewlines&&(t.includes(`
867
- `)||t.includes("\r"))&&(a||(a={}),a.illegalMultipleLines=!0),a}}async init(t,e,A){var i,s,o;const a=t.option;if(!a)return null;if(A)await this.reload(t,e,A);else{const r=this.getDefaultImageFillVariant(t.data),c=(i=r==null?void 0:r.asset)==null?void 0:i.fileLink,l=c?await iA(c):void 0,g=l?{src:l.src,height:l.height,width:l.width,scale:t.data.imageFillScale||1}:void 0;e.updateStorage(t.stepName,{text:t.data.defaultText||"",inputText:t.data.defaultText||"",color:((s=await this.getDefaultColorVariant(t.data))==null?void 0:s.color)||await this.getDefaultColor(t.data),fillImage:g}),e.updateMetadata(t.stepName,{text:t.data.defaultText||"",color:((o=await this.getDefaultColorVariant(t.data))==null?void 0:o.name)||await this.getDefaultColor(t.data),fillImage:r==null?void 0:r.name});const d=et.getDefaultVariant(a);if(d)return this.selectVariantCommand(t,d,{},[],e,()=>{},()=>{},g)}return null}findLayoutElements(t,e){return t.getRegionElements(e.stepName).map(i=>z(i.id,t.getAllLayoutData()))}availableFillColors(t){var a;const e=this.cachedColors.get(t.stepName);if(e)return e;const A=t.data.colorOption;if(A){const i=((a=A.variants)==null?void 0:a.map(s=>({fill:s.color,stroke:s.color,variant:s})))||[];return this.cachedColors.set(t.stepName,i),i}return[]}changeAlignment(t,e,A,a){if(!t.data||!t.data.regions)return;const i=a.getCommandDispatcher();for(const s of A){const o=new Va(s.id,e);i(o)}}async changeFillColor(t,e,A,a){var r;if(!t.data||!t.data.regions)return;const i=a.getCommandDispatcher();e.variant?a.updateMetadata(t.stepName,{color:e.variant.name}):a.updateMetadata(t.stepName,{color:e.fill});const s=t.data.colorOption,o=s?this.createTextFillSpotColor(s,e.variant):void 0;s?a.updateStorage(t.stepName,{color:e.fill,colorProfileAssetKey:(r=s.colorProfile)==null?void 0:r.key}):a.updateStorage(t.stepName,{color:e.fill});for(const c of A){if(!e.fill)throw new Error("Fill not set on new color selection!");const l=new ja(c.id,e.fill,o);i(l)}}async availableFillImages(t){var A,a;const e=t.data.imageFillOption;if(e){const i=((a=(A=e.variants)==null?void 0:A.map(s=>{var o;return(o=s.asset)==null?void 0:o.fileLink}))==null?void 0:a.filter(s=>!!s))||[];return Promise.all(i.map(async s=>{const o=await iA(s);return{src:s,width:o.width,height:o.height,scale:t.data.imageFillScale||1}}))}return Promise.resolve([])}async changeFillImage(t,e,A,a){var o,r;if(!t.data||!t.data.regions)return;const i=a.getCommandDispatcher(),s=(r=(o=t.option)==null?void 0:o.variants)==null?void 0:r.find(c=>{var l;return((l=c.asset)==null?void 0:l.fileLink)===e.src});a.updateMetadata(t.stepName,{fillImage:s==null?void 0:s.name}),a.updateStorage(t.stepName,{fillImage:e});for(const c of A){const l=new uA(c.id,e);i(l)}}getProcessedInput(t,e,A){const a=A?t:this.injectReplaceableText(t,e);return ye(a,{vertical:e.vertical,uppercase:e.uppercase})}updateInputText(t,e,A,a){const i=a.getStepStorage(A.stepName),s=this.getProcessedInput(t,A.data,!!i.customiseAllText),o={command:void 0,helperData:{},errorData:this.getErrorsForText(t,A,a)};if(o.errorData)return o;o.helperData.charactersRemaining=A.data.maxLength-s.length;const r=[],c=new Map,l=new Map;for(const g of e){if(!g.fontData)throw new L("Failed to resolve font data for text.");const[d,B]=ce(g.fontSize,g.fontData,{left:g.x,top:g.y,width:g.width,height:g.height,rotation:g.rotation,panelId:""},[s],{size:A.data.size,minSize:A.data.minSize,maxSize:A.data.maxSize});c.set(g.id,d),l.set(g.id,B);const h=A.data.curved?s:(B||[]).join(`
868
- `);r.push(this.generateTextChangeCommandsForRegion(d,A.data,g.id,h))}return!A.data.curved&&e.length>0&&!Array.from(l.values()).every(d=>d)?(o.errorData||(o.errorData={}),o.errorData.doesNotFit=!0,o):(a.updateStorage(A.stepName,{text:t}),a.updateMetadata(A.stepName,{text:s}),(i.defaultCleared||!A.data.deleteDefaultOnFocus)&&a.setMandatoryFulfilled(A.stepName,!0),o.command=new O(r),o)}async selectVariant(t,e,A,a,i){const s=await this.selectVariantCommand(t,e,A.getStepStorage(t.stepName)||{},A.getRegionElements(t.stepName),A,a,i);s&&(s.command&&A.getCommandDispatcher()(s.command),s.followup&&await s.followup())}createTextFillSpotColor(t,e){const A=t.colorProfile;if(A){const a=(A.name||"").replace(/\s/g,"-"),i=a.lastIndexOf("/"),o=a.slice(i+1).slice(0,-4);if(!e.namedColor)throw new Error("variant named color not set!");return{profileName:o,namedColor:e.namedColor}}}async reload(t,e,A){var c,l,g;const a=e.getSerializedStep(t.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(d=>d.elements).flat().filter(d=>d.stepName===t.stepName),r=t.option;if(a!=null&&a.selectedVariants){const d=a.selectedVariants[0].id;if(r&&d){const B=(c=r.variants)==null?void 0:c.find(h=>h.id===d);if(B){const h=await this.fontDataFromVariant(B),C=o.map(f=>({id:f.id,region:f.stepRegion})),u=(l=a.storage)==null?void 0:l.color,E=(g=a.storage)==null?void 0:g.text;await e.setSelectionsAndElements(t.stepName,[B],C,async()=>{e.updateMetadata(t.stepName,{color:u,text:E}),e.updateStorage(t.stepName,{text:E,inputText:E});const f=o.map(Q=>new EA(Q.id,h)),p=new O(f);e.getCommandDispatcher()(p)});const{command:m}=_.updateInputText(E||"",o,t,e);m&&e.getCommandDispatcher()(m)}}}}async getDefaultColorVariant(t){const e=t.colorOption;if(e)return et.getDefaultVariant(e)}async getDefaultColor(t){const e=t.colorOption;if(!e)return;const A=et.getDefaultVariant(e);return A==null?void 0:A.color}getDefaultImageFillVariant(t){const e=t.imageFillOption;if(e)return et.getDefaultVariant(e)}async fontDataFromVariant(t){const e=t.asset;if(!e)throw new lt(t);const A=e.fileLink;if(!A)throw new yt(e);const a=await bt(A);return{assetUrl:A,name:a.names.fullName.en}}async selectVariantCommand(t,e,A,a,i,s,o,r){var g;const c=i.markUpdatePending(),l=await this.fontDataFromVariant(e);if(a.length>0){const d=a.map(C=>new EA(C.id,l));if(r){const C=a.map(u=>new uA(u.id,r));d.push(...C)}const B=await this.changeInputTextWithRegion(t,t.data.size||SA,l,A.text||"",A,i,!!A.customiseAllText,s,o);return B&&d.push(B),{command:new O(d),followup:async()=>{i.markUpdateCompleted(c),await i.setSelectionsAndElements(t.stepName,[e],a)}}}else{const d=await this.createTextboxRegions(t.stepName,e,t.data,l,A,i),B=await this.changeInputTextWithRegion(t,t.data.size||SA,l,((g=d[0])==null?void 0:g.newElement.input)||A.text||t.data.defaultText||"",A,i,!!A.customiseAllText,s,o),h=d.flatMap(u=>u.commands);if(r){const u=d.map(E=>new uA(E.regionElement.id,r));h.push(...u)}return B&&h.push(B),{command:new O(h),followup:async()=>{i.markUpdateCompleted(c)}}}}injectReplaceableText(t,e){return e.replaceableText?e.replaceableText.replace("{{}}",t):t}async createTextboxRegions(t,e,A,a,i,s){if(!A||!A.regions)throw new Error("Step data not supplied");const o=i.text||A.defaultText||"",r=this.getProcessedInput(o,A,!1),c=async g=>{var C;const B=s.getLayouts().find(u=>u.panelId===g.panelId),h=b();try{if(!B)throw new Ye("Failed to find layout for region: "+g.panelId);const u=A.colorOption;let E;if(u&&u.variants){const Y=u.variants.find(V=>{var G;return V.id===((G=u.defaultVariant)==null?void 0:G.id)})||u.variants[0];E=this.createTextFillSpotColor(u,Y),s.updateStorage(t,{colorProfileAssetKey:(C=u.colorProfile)==null?void 0:C.key})}const m=await this.getDefaultColor(A),f=m||"#000000",p={stepRegion:g,stepName:t,align:this.textAlign(A),fill:i.color?i.color:f,fontSize:A.size||SA,fontData:a,id:h,layer:g.layer,layerIndex:g.layerIndex,rotation:g.rotation,text:r,input:o,type:H.Textbox,vertical:A.vertical,x:g.left,y:g.top,height:g.height,width:g.width,immutable:g.immutable,verticalAlign:A.verticalAlign||"middle",curved:A.curved,paths:A.paths,fillSpotColorDefinition:E},Q=[],I=new Map,D=new Map;if(!p.fontData)throw new L("Failed to resolve font data for text.");const[y,M]=ce(p.fontSize,p.fontData,{left:p.x,top:p.y,width:p.width,height:p.height,rotation:p.rotation,panelId:""},[r],{size:A.size,minSize:A.minSize,maxSize:A.maxSize});I.set(p.id,y),D.set(p.id,M);const P=A.curved||A.vertical?r:(M||[]).join(`
869
- `);Q.push(this.generateTextChangeCommandsForRegion(y,A,p.id,P));const k=new K(p,B);return{regionElement:{id:h,region:g},commands:[k,...Q],newElement:p,fontData:a}}catch(u){throw console.log(u),new xe("Error adding font to region")}},l=await Promise.all(A.regions.map(c)).catch(g=>{throw g instanceof xe?(en.setLatestToast("Failed to load font.",le.Error),g):g instanceof Ye?g:new Error(g)});return await s.setSelectionsAndElements(t,[e],l.map(g=>g.regionElement),async()=>{s.updateMetadata(t,{text:o}),s.updateStorage(t,{text:o})}),l}generateTextChangeCommandsForRegion(t,e,A,a){const i=[],s=new Wa(A,a);if(i.push(s),!e.size){const r=new Ka(A,t);i.push(r)}return new O(i)}async changeInputTextWithRegion(t,e,A,a,i,s,o,r,c,l){const g=(a||"").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g,""),d=this.getProcessedInput(g,t.data,o),B=s.getRegionElements(t.stepName),h=new Map,C=new Map;for(const p of B)if(p.region){const[Q,I]=ce(e,A,p.region,[d],{size:t.data.size,minSize:t.data.minSize,maxSize:t.data.maxSize});h.set(p.id,Q),C.set(p.id,I)}const E=(()=>{if(t.data&&t.data.maxLength&&d.length>t.data.maxLength)return l&&l(!0),{info:"0"};const p=s.getProfanities(),Q=Te.split(d.toLowerCase());for(const I of Q)for(const D in p){const y=p[D].toLowerCase().replace(/\s/g,"");if(I===y)return r(!0),{error:"Blocked profanity."}}return!t.data.vertical&&!t.data.allowNewlines&&(d.includes(`
870
- `)||d.includes("\r"))?(r(!0),{error:"Cannot span multiple lines."}):!t.data.curved&&!Array.from(C.values()).every(D=>D)?(r(!0),{error:"Does not fit."}):(r(!1),{info:(t.data.maxLength-d.length).toString()})})();if(E.error){c(E.error);return}if(c(`${E.info} characters remaining`||""),l)return;s.updateStorage(t.stepName,{text:g}),s.updateMetadata(t.stepName,{text:this.injectReplaceableText(g,t.data)}),(i.defaultCleared||!t.data.deleteDefaultOnFocus)&&s.setMandatoryFulfilled(t.stepName,!0);const m=[];for(const p of B){const Q=t.data.curved?d:(C.get(p.id)||[]).join(`
871
- `);m.push(this.generateTextChangeCommandsForRegion(h.get(p.id)||1,t.data,p.id,Q))}return new O(m)}}const _=new Ks;class xA{}const Vs="data:application/font-woff;base64,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",Ws=`<?xml version="1.0" encoding="iso-8859-1"?>
872
- <!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
873
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
874
- width="289.691px" height="204.059px" viewBox="0 0 289.691 204.059" enable-background="new 0 0 289.691 204.059"
875
- xml:space="preserve">
876
- <g id="Layer_3">
877
- <g>
878
- <g>
879
- <defs>
880
- <path id="SVGID_1_" d="M132.799,0L132.799,0c-2.85,0-5.611,0.376-8.204,1.119c-6.512,1.865-14.407,8.455-17.575,17.447
881
- c-5.374,1.759-16.263,6.039-18.474,16.876c-12.301,4.695-59.215,23.718-76.41,46.864c-1.783,2.067-14.076,17.86-11.873,42.198
882
- c2.083,23.017,14.66,39.637,20.03,46.733c0.496,0.655,0.925,1.223,1.271,1.697c3.272,4.502,16.448,20.198,29.967,27.96
883
- c0.985,0.565,2.526,1.337,3.598,1.671c9.286,2.898,13.053,0.684,13.053,0.684l-5.734-6.704
884
- c-0.113-0.047-1.555-2.104-2.024-3.528c-0.401-1.1-0.683-3.708,1.941-8.822c1.92-3.74,8.466-11.905,30.74-24.556
885
- c19.286-10.953,45.665-22.672,78.404-34.831c0.384-0.138,43.36-15.521,71.448-17.843l0.084-0.007l0.084-0.01
886
- c0.056-0.006,5.722-0.659,11.761-0.659c7.122,0,10.06,0.898,11.094,1.355l0.378,9.638c0,0,5.87-4.852,7.88-7.117
887
- c2.01-2.264,12.031-11.822,14.79-47.407c0.084-0.941,1.244-14.374,0.202-25.831c-0.428-4.706-2.167-9.042-5.03-12.54
888
- c-4.914-6.004-15.065-13.686-35.521-16.2c-0.84-0.118-8.692-1.176-21.503-1.176c-14.431,0-29.204,1.305-43.952,3.882
889
- c-1.858-1.395-4.78-2.782-9.053-2.782c-0.427,0-0.861,0.014-1.303,0.043c-1.604-2.318-4.231-4.531-8.237-5.259
890
- c-0.396-0.076-1.797-0.315-3.752-0.315c-0.897,0-1.798,0.051-2.676,0.152h-0.001c-0.244,0.007-1.149-0.008-2.428-0.517
891
- c-0.623-0.317-2.157-1.062-3.567-1.46c-0.945-0.267-2.142-0.54-3.842-0.54c-1.387,0-2.951,0.186-4.78,0.569l-0.214,0.045
892
- l-0.073,0.023c-0.141,0.032-0.727,0.154-1.455,0.154c-0.378,0-0.727-0.033-1.036-0.098C139.516,0.637,136.489,0,132.799,0z"/>
893
- </defs>
894
- <clipPath id="SVGID_2_">
895
- <use xlink:href="#SVGID_1_" overflow="visible"/>
896
- </clipPath>
897
-
898
- <radialGradient id="SVGID_3_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(196.7466 -33.1074 59.2188 355.3871 -12531.9229 -75128.1562)" gradientUnits="userSpaceOnUse">
899
- <stop offset="0" style="stop-color:#31006F"/>
900
- <stop offset="0.7044" style="stop-color:#31006F"/>
901
- <stop offset="0.9025" style="stop-color:#8663A8"/>
902
- <stop offset="0.9837" style="stop-color:#380874"/>
903
- </radialGradient>
904
- <path clip-path="url(#SVGID_2_)" fill="url(#SVGID_3_)" d="M289.231,36.928c0-15.893-21.025-34.603-52.712-35.045
905
- c-15.771-0.22-99.017-1.969-102.404-3.731C132.43-2.669,102,8.514,99.071,14.978c-1.352,2.989-12.46,12.774-12.087,16.225
906
- C43.908,47.213,14.509,73.752,3.19,93.894c-4.256,7.574-5.912,24.772,1.863,48.426c7.171,21.815,39.719,65.369,55.762,70.653
907
- c34.873-19.08-3.701-15.168,25.189-33.173c37.467-23.352,96.365-43.82,128.896-51.007c51.454-11.366,72.09-9.938,70.905-8.055
908
- C293.781,108.06,291.07,57.024,289.231,36.928z"/>
909
- </g>
910
- <path fill="#F4F5F5" d="M273.502,102.985c0,0-0.484,7.046-0.92,8.889l-0.856,0.768l-1.487,1.343c0,0,0.746-3.28,0.676-7.538
911
- L273.502,102.985z"/>
912
- <g>
913
- <defs>
914
- <path id="SVGID_4_" d="M273.495,103.048l-0.914,8.826l-6.223,5.407l-0.378-9.638c-3.51-1.84-20.124-1.91-40.523,1.965
915
- c-20.398,3.875-55.726,13.5-108.591,37.875c-52.865,24.375-56.042,40.035-56.3,41.165c-0.258,1.129-0.609,2.871-0.246,4.106
916
- c0.363,1.234,1.566,3.062,1.566,3.062c0.622,0.875,6.294,7.434,6.294,7.434c-0.243,0.139-0.713,0.296-0.713,0.296
917
- c-3.776-1.363-10.024-5.048-12.507-6.55c-0.105-0.059-0.211-0.109-0.316-0.168c-0.213-0.126-0.425-0.267-0.634-0.411
918
- l-0.127-0.079l-0.016-0.022c-4.346-3.133-7.493-10.523,1.153-21.838c7.623-9.975,16.641-15.494,27.199-21.737
919
- c35.97-21.271,88.653-41.928,128.445-51.065c20.468-4.7,37.871-6.713,47.404-5.994
920
- C270.766,96.641,274.312,100.216,273.495,103.048z M103.152,50.182c-0.754,0.298-4.411,1.78-5.162,2.081
921
- c-46.711,18.73-75.543,39.262-85.429,55.22c-4.89,7.894-6.183,14.713-7.333,23.376c-0.528,3.979-0.264,9.917,0.182,13.905
922
- c0.098,0.872,0.196,1.558,0.285,1.837c-6.447-20.414-0.184-36.278,3.696-43.319c10.903-19.787,49.756-42.606,92.09-58.743
923
- C101.625,47.168,102.123,48.443,103.152,50.182z M289.642,46.027c0,0-1.68-8.208-8.18-16.932
924
- C281.44,29.064,260.598,16,235.788,15.96c-15.584-0.025-35.217,2.462-56.404,6.836c0.858,0.69,2.004,2.132,1.76,4.812
925
- c21.139-4.514,40.632-7.022,56.269-6.997c16.325,0.026,32.385,3.661,38.959,8.397c2.862,2.062,6.187,5.337,8.039,8.968
926
- c0.562,1.011,3.167,5.866,5.214,12.307C289.626,50.282,289.762,47.693,289.642,46.027z"/>
927
- </defs>
928
- <clipPath id="SVGID_5_">
929
- <use xlink:href="#SVGID_4_" overflow="visible"/>
930
- </clipPath>
931
- <rect x="282.522" y="30.129" clip-path="url(#SVGID_5_)" fill="#95979A" width="7.146" height="21.322"/>
932
-
933
- <radialGradient id="SVGID_6_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(270.0389 19.3946 -19.0497 267.9429 3989.5959 -56677.875)" gradientUnits="userSpaceOnUse">
934
- <stop offset="0" style="stop-color:#000000"/>
935
- <stop offset="0.0996" style="stop-color:#242425"/>
936
- <stop offset="0.2741" style="stop-color:#4E4F51"/>
937
- <stop offset="0.5029" style="stop-color:#757779"/>
938
- <stop offset="0.7746" style="stop-color:#A6A8AB"/>
939
- <stop offset="0.8165" style="stop-color:#E2E3E4"/>
940
- <stop offset="0.8338" style="stop-color:#ECEDED"/>
941
- <stop offset="0.8581" style="stop-color:#F2F2F3"/>
942
- <stop offset="0.9255" style="stop-color:#F3F4F4"/>
943
- <stop offset="0.9497" style="stop-color:#85878A"/>
944
- <stop offset="0.9601" style="stop-color:#77787B"/>
945
- <stop offset="0.9911" style="stop-color:#C8CACC"/>
946
- </radialGradient>
947
- <path clip-path="url(#SVGID_5_)" fill="url(#SVGID_6_)" d="M274.97,104.208c-1.015,1.477-1.895,7.095-2.389,7.667
948
- c0.266-0.396-6.223,5.407-6.223,5.407S53.633,196.961,60.248,199.321c-1.672-0.501-3.655-1.4-5.602-2.491
949
- c-4.713-2.786-8.78-10.369,0.376-22.35c7.623-9.975,16.641-15.494,27.199-21.736c35.97-21.271,88.653-41.929,128.445-51.066
950
- c20.468-4.7,37.871-6.713,47.404-5.994C271.591,96.703,276.421,101.309,274.97,104.208z M101.481,44.54
951
- c-42.334,16.137-81.187,38.956-92.09,58.743c-3.88,7.042-10.143,22.905-3.696,43.319c-0.089-0.279-0.188-0.965-0.285-1.837
952
- c-0.446-3.989-0.711-9.927-0.182-13.905c1.15-8.662,2.444-15.482,7.333-23.376c9.886-15.959,38.718-36.49,85.429-55.219
953
- c0.752-0.301,4.408-1.784,5.162-2.081C102.123,48.443,101.625,47.168,101.481,44.54z M235.789,15.959
954
- c-15.583-0.025-35.217,2.462-56.404,6.835c0.858,0.69,2.004,2.132,1.76,4.812c21.139-4.514,40.632-7.022,56.269-6.997
955
- c16.325,0.026,32.385,3.661,38.959,8.397c2.862,2.062,7.305,5.886,8.059,9.237c-0.04-1.016-0.352-2.27-0.408-2.911
956
- C283.11,25.107,267.1,16.009,235.789,15.959z"/>
957
- </g>
958
- <path fill="#DCDDDE" d="M60.273,199.427l7.908,3.825l-5.24-6.101C62.941,197.152,58.272,198.786,60.273,199.427"/>
959
-
960
- <radialGradient id="SVGID_7_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(270.0424 19.3949 -19.05 267.9464 3989.6995 -56678.5859)" gradientUnits="userSpaceOnUse">
961
- <stop offset="0" style="stop-color:#000000"/>
962
- <stop offset="0.0996" style="stop-color:#242425"/>
963
- <stop offset="0.2741" style="stop-color:#4E4F51"/>
964
- <stop offset="0.5029" style="stop-color:#757779"/>
965
- <stop offset="0.7746" style="stop-color:#A6A8AB"/>
966
- <stop offset="0.8338" style="stop-color:#ECEDED"/>
967
- <stop offset="0.8581" style="stop-color:#F2F2F3"/>
968
- <stop offset="0.9255" style="stop-color:#F3F4F4"/>
969
- <stop offset="0.9601" style="stop-color:#77787B"/>
970
- <stop offset="0.9911" style="stop-color:#C8CACC"/>
971
- </radialGradient>
972
- <path fill="url(#SVGID_7_)" d="M273.283,103.591c-1.014,1.477-1.926,2.342-2.419,2.914c1.213-1.808-4.269-10.909-55.135-0.044
973
- c-20.898,4.464-58.364,17.017-91.77,32.224c-14.657,6.627-44.582,21.095-57.613,32.959c-12.456,11.341-14.277,24.658-5.817,27.676
974
- c-1.672-0.501-3.937-1.4-5.884-2.491c-4.713-2.786-8.78-10.369,0.376-22.35c7.623-9.975,16.641-15.494,27.199-21.737
975
- c35.97-21.271,88.653-41.928,128.445-51.065c20.468-4.7,37.871-6.713,47.404-5.994
976
- C271.591,96.703,274.735,100.692,273.283,103.591z M101.481,44.54c-42.334,16.137-81.187,38.956-92.09,58.743
977
- c-3.88,7.042-10.143,22.905-3.696,43.319c-0.089-0.279-0.188-0.965-0.285-1.837c-0.446-3.989-0.711-9.927-0.182-13.905
978
- c1.15-8.662,2.444-15.482,7.333-23.376c9.886-15.959,38.718-36.49,85.429-55.219c0.752-0.301,4.408-1.784,5.162-2.081
979
- C102.123,48.443,101.625,47.168,101.481,44.54z M235.789,15.959c-15.583-0.025-35.217,2.462-56.404,6.835
980
- c0.858,0.69,2.004,2.132,1.76,4.812c21.139-4.514,40.632-7.022,56.269-6.997c16.325,0.026,32.385,3.661,38.959,8.397
981
- c2.862,2.062,6.771,6.064,8.179,9.197c-0.546-1.213-0.441-2.314-0.498-2.954C283.141,25.023,267.1,16.009,235.789,15.959z"/>
982
- </g>
983
- </g>
984
- <g id="Layer_2">
985
- <g opacity="0.7">
986
- <defs>
987
-
988
- <rect id="SVGID_8_" x="112.559" y="3.607" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.6225 182.4761)" opacity="0.7" width="60.856" height="83.188"/>
989
- </defs>
990
- <clipPath id="SVGID_9_">
991
- <use xlink:href="#SVGID_8_" overflow="visible"/>
992
- </clipPath>
993
- <g clip-path="url(#SVGID_9_)">
994
- <g>
995
- <defs>
996
-
997
- <rect id="SVGID_10_" x="112.559" y="3.607" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.6225 182.4761)" width="60.856" height="83.188"/>
998
- </defs>
999
- <clipPath id="SVGID_11_">
1000
- <use xlink:href="#SVGID_10_" overflow="visible"/>
1001
- </clipPath>
1002
- <g transform="matrix(1 0 7.450581e-09 1 -7.629395e-06 0)" clip-path="url(#SVGID_11_)">
1003
-
1004
- <image overflow="visible" enable-background="new " width="636" height="465" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnwAAAHRCAYAAADwh2T7AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
1005
- GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAyOdJREFUeNrsvQmYJddVJnhuRLwt
1006
- X26VSlWpnC4ttiTLwrIMwiC7PcYG3MYbiw0NxgZ6eub7hvVjuoH5mOlvtp6mu5mmm8GAaRpk424w
1007
- tpFNgxdZNjZehCRbaClbaLNcUqmcVapSKisrt5dviYiJGxXnvT/OuxEvsyqztjz/p9B7GW+tFxH3
1008
- /vc/5/yHSKFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKh
1009
- UCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQ
1010
- KBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAo
1011
- FAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgU
1012
- CoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQK
1013
- hUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqF
1014
- QqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVC
1015
- oVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKh
1016
- UCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQ
1017
- KBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUik0gjmNj
1018
- t628ZmJi0ktuvEaj4We77OvtPj/bvGzfdnw/n7dOp+u1Ox0vDENvs9/bPqfX6xl4ncfvF0WRr2eA
1019
- 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
- 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
- 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
- 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
- 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
- V/vs9trXvs77d7/5W94/PPIoh129hPjlFLiEPDLJs+FkLyF9IxW6W255pZJChUKhUCgUCot3vvNd
1025
- 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
- 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
- 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
- h2tra73ksSghklFC2Cj5O31R8jfdfPMrbIiZDh58iOC9KCF3JghSYdB0Om2TvBd/XpR8Z0q+LyXf
1029
- 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
- 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
- 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
- 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
- 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
- 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
- K97yykr8wrkXxIIMmUceeRiVM48GipclczbXrprts/cb2d9cqcsVt0zK/Oy94ozYdTKS52X3rQTX
1036
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- bMPCyfsy4cNQ7TgQvRkgfkz4eKsJwuWq0rUEz6ppq9nGSt8q7O/n1GWvR3I2IQhfXRA+Gdrl99rI
1056
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 2rxy440v8x555GHsFhHAfMMkDytnOYyJz+cccwz1IsGLaBBa7cE+tGWpCFI1npG8Pdl9JH5TNPDj
1064
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- GxclfAqFQqFQpDl7ViFh/P19X00Jnw2HZdYXOJG7VD4XySvaX5SrRg7SJ8O8LrLmUvok0bvQ43qj
1118
- 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
- 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
- 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
- 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
- f9+SPN+fprW1VSogVLKIwx+xUQHhKzI+lqpeUV4Y9oq92Emei/Dxv6cifmtsx8bhTQ61co5bhwZt
1123
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- sW5K7JK/G71et5mQwJmE7O2jQV/VBmwyvMtdGXwa7rSAnnFYaOBtUpAwZ7ld6Bj1/V05kEWG1dKS
1140
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 0tJSrAdboVAoFBckZmZmvOXlFer1urR//3568Yuvo+mE0MVRRBsbG3TDS19K73znO+kfvfpWmj96
1149
- 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
- kL1mtm8qI3yXZbdM+FgB5Ly9yez1dcpbslSB+BFpaHcnCdaFwjNkIQYrfRy2ZZWOiVybBjl6K8m2
1151
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 4OcGVG7rEtBwgYZariicQzAQPLnxeRVRPl+Uz8+QhqvW2b4lPR8TwhfZ/Nher+tdc82L4qeeOmQW
1187
- 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
- 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
- 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
- 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
- o5fddJP+QLsQBw5caZO7zeHDT6eGyMlckRK8zEIlhVV/rUqwBbd+S/ZSdc9ariRksWJz+SgfnrIk
1192
- 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
- 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
- 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
- 8a655hrz9NNPeb1ez0vInTc1NWX722Ztz7peGIYeue0i+ttp36+0RZoND/vJFiTnIYZHMUdvHMje
1196
- VEb2+JbbljEhZN877FVbcxA3JG/8PDRXZlWxSfmwMt6XxRjoBVhxkD2sGq6QKnuKzRM+Pm8YsjUg
1197
- dt5g26GIBgbNvLCxZDCq1+txstCKkmvQWjDH4+NNm6drCZ8yvpIDoFBclLjpppd7X//619L7c3Nz
1198
- 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
- x9OJI4rcll5WVYDzDKtdOVyKSh73o53ONkvCZmig8HFRRQVeL5PSpcIX0nAOH4dgmaxW4f14Q7Nk
1200
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 2tbrddrY2KBnnz1GTz75Der1Qjrtodej5NSohmHor66uVqy61+v1asnCoOb7Qe3UqaUqnB9cETsG
1234
- m903UXLe1GgQpkUFDnPoSJxfMozLHTMm4H4TCGFRzp6rAKlskyqefB9X3p7ZBuKmhE9xNnBVnGMR
1235
- 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
- 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
- aLcXb9j2Y7bAxYa9k5W067cINjkOFSlskVAKJHGpwvFmJW8MCFUdiJ3sVcthIc9xDoZiomnD/Y3s
1238
- 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
- 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
- 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
- mU/e8Rn6b3/5sbRaFtztkaAVkYvNGB974v2k3yLarMj+snxecIi1Se48INllAnP3eALiMG5HnFuB
1242
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- M/Snf/Yh+h//2c9Q1n+SBAF2+SRiVTUSPEm0GpQPuVcdhMsV0t2gfOV0TxxPT5DKhjiPpM2KNEIu
1274
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- xITZ2GiZY8eOoUqBpsk8YaKVBpIx9MErU/DG4fmoADYob60iW2+xEoQVkq6QmIuAyX1xAdkLxQDh
1300
- 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
- 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
- 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
- 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
- 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
- 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
- 3rqO24h2MI/v7+9/0Dx08Gt015e/RB/+0Af7IYfrr38Jzc5eTvfee3fp621IdhsUKgzhYoge/RHH
1307
- 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
- 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
- 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
- TVH3g7iAAMrnxFSevxeROx8EtyLTz23Bd97y7f3vby1RrrhifzIordATTzyebpBfN2plvB2EryLI
1311
- PfrrTQDRm4D9svUdqrYB5UO4SLjiEQofEjqiQfGDVFsrlA/PE+VteiJyG2rvFNGKR5yfCoViNPHj
1312
- 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
- 3e6kf9dqNRvGNYcPP51OdlbhS0iit7i46CVkz2QTO0/GaL3BE/aEIHQc4ht3EL6q4z1k1W0gCCD2
1314
- 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
- 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
- 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
- eV9YYdug4j67XCBANJynt9nzU4Z1XWpeCAOGXSmuJZvV9teT7VSyLSXbs8m2kGwns78Xk20l+5tX
1318
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- whcD4ZPmyl1YmPI4vEaDMK4r5Ub6psYrK8vp59g5dHb28nhh4bnYkr0f+ZF30F/+5Uf1rFLCd+7g
1355
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 8/Pz6XfzPK83O3t5tLa2asWTtl52qvCdM1iy1+32Rg1IuCIiGvZpG9XrtgEKEYbeaoIYom0GKjVl
1385
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- x9YVRpVkD6/B6gjCN6qKfx0IX0uofmjUXkT4AirPIexRea/vjlD0QhruDJSOa3v37osmJydtZw3b
1401
- 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
- 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
- mkD4sJ8xHzepGnpn8Pujc75sNYe/ayhW/5E4V2UuYZWGcz+3MoboGLO7CZ/L8LeIeHmOa8/fhvMr
1404
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- gFxWgWQiyU0J38LCc9azlk6cOJ4+8LM/9wv0i7/4C+bbbnypWV9f17FHFb7txdLSKW9qajJ2+exd
1415
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- OT7GCsVOk0Lpt4etxVD1x845vPUo39oMc5rb2XXI40pVXJdEwznPrs/HxeU6ED5s0cienjgeSRcC
1475
- uRBz5T+jsoeVt9IOxebQxXv37rP9ZKPFxeeZ6NmcOnP99S+hO++8o/SHl8UcEt/1Xd9t89D1DFWo
1476
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- ByD4BlutOP+bCsMo7WjK5uTKkaY22tW2APrI0+Wxp13hrSXHzfLZm4T2ydLu8CL2WiaCJ0fHm5T3
1492
- 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
- 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
- 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
- wV1PyVGav7y8LIKhTqNdnmK/wsLhzuwynx6joeXHsUxUaGGoR2uVabLH3l58R/GECF9Io3YBWuhd
1496
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- dhZa8IU0TBvblLtr+gmZHV4Jv0Gwy9/nQd4HRI71Xhsbt2g4kUJKP6ROT29LrtKwnk/fbrcfsdl+
1515
- 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
- 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
- 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
- 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
- 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
- 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
- 8Nm0YlH3aIXco7cOEhEVD/uWlI1OuejTnjnat/NuiUb99PRnVlNi2QppmUyiu2m1qLaCzzNir0jw
1522
- +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
- 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
- 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
- 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
- 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
- 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
- u99MDz30bfSZz/we1jZw24AdmxIKyQbESzYmpWTDkYqSZOMxk2xwZPaqGCvfkZ0/kZ0/TUMzZi1S
1529
- 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
- 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
- EW+6qUu2H5vZdkNSu9poeWDMfu7cfdHy8jfYEiVIhFgkwu/JJz9MTz/9qUkp00nOB0i5AjDlj+W2
1532
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 8SndgPIF4yXK266IrYrU5i1kn5mMpltUpws0rO2bMVE7sbXxKD+LOC4Qdq71e5IYLNoh4zcEdiPo
1541
- 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
- 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
- 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
- 1c0udkKJTdnqtG3NiGY99sxTUcRojIijKQQfAAdJGLqMjbWZec8IvtBE9/TBkE/uhiaXv2RRlE8L
1545
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 2SciMErEX0SIrgEAwXeABI9Oj+gOXVf6dpqC//gQvGf7/uMJf6fr6jy1w5mh0bnDRd24cru2tJGI
1553
- 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
- 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
- 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
- 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
- AwCC75biinDpQmfbkOGyObAbcS36JqVHp3ltey10xs2bLRXcpsVvaK7XKVyJ3M0qwedqzqhRvg7S
1558
- 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
- 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
- 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
- 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
- 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
- Q4+iGxc1BWC/fv9W5E17QBbv4LEjx+NLk4aeWd1WAkrSpDK2TGr5Wpn42qLxEb519dvUtbES4YvM
1564
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- dXty4CVRPO15p0VhWx102RFruvmpp66zJvGukgk7y7fnEHzSbZtovIi99qJGo8Ej0lLRlxAkhMkJ
1574
- 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
- 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
- LzQHLK5tQKC2AdJtq+1XpF6Pr9tQpxsqwtdS4sseZJaUoIsdB2Y2km4/n9CxXdNzfAO17WMRGrOv
1577
- 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
- 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
- 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
- NBrdROylf8eRPtqu1eOz6ecaBH2O7MW1Wo1+4Zd+Jf47P/0TWAMBgOC7pTsAGiPsXBEBm5bRi+3K
1581
- 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
- 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
- 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
- 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
- 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
- appo6I2pX4c9aPTUfW1UPTYitciQOc5m4tK2+CNSDRmD00TsYS0EAILvwAo/vVHTsyut+70II51y
1587
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- HRcv0kMPPkD33nM3fgEAHKKj39uakydP+Xx0m2zsvJWVq6kwSc7XkvPVZENbZhN5Go4Am88W9plj
1606
- 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
- JSPopF5PC1afRrsYp63ZQxRwfwRZ0edrDyiiHXxHN2II7t2E96e7cUMl7iRlK6PLZHyZnOfrVynf
1608
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Gqv1w3OIHl+t0671IJpy/bqRA1drEqyjfNp2RdK1fF6aNdYpP9O2PT+/EM7NNXqXL18OuEs2+d2n
1625
- fnVsc8LbAYfg1WKXu/0H75frhH2/FAVBP/387rnn3vD111+Ps8upIKzX63G5XOH78HOEu9y+QbAB
1626
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Rr/3e5+O2Vn+y1/+Em94vbW1tUFaiDf8HOlL9mmcbhFLFplF6UrnUraTsIXbvtop1ShfuB3QaONE
1635
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- PnasyfNv0/s9+dRH6Hve+z568okP0fn7vhVrJQAAgm+veWN11ZudnSVjzTLgnnu+Nf7mN7/Bg8Il
1645
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 8pCdZ5Xys3pLjscsSqVC8AGvQAiKGHR51km0S8+Y3VJCSG6386Fd3eSu7tmiMgVrmmzP61rDiEYj
1655
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 2d9yZK9BwzpUWapK4ElN67gGJDsJJFIis0v5NK+O4OmmjBbl6/V0CjdQzzH4fDhy/93f8z760R/5
1664
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- owVfrASe7gTW9jHWfFlO7Yi1QTcui71HHnkbj0mLH3jgwfill9oxj8yNIoywBQBA8IEb3/GK0HNF
1674
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- D+blSqSPp1d84xuXEOEDAAAIvttV8EXU7/cpG9Cud8YWW9dnrVZgIgt2IvaI8mlcG9WTyJ6O6rWy
1712
- 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
- +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
- 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
- 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
- 8yzm1rP1gs9v0HA8mkT3xINvnfJRv61sXeSodZcjfNnz+svLy+nz8jg1fDUAAADBd1uxPeWJKBF6
1717
- Mkg+Xbiej4obL2K10560FE06iMYIQfj43R5C0NbsuXz2dEq37bhupDtXBCRHqpvN7Y7c+fkFiDwA
1718
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- TVK6smzRMJ0rTRppdC8IQv7b6PTp02G/H4StVitt2gjDMA6CAKlcAACA4AOFH2rJ99rttiu16pnL
1732
- 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
- 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
- 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
- 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
- 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
- BOH8/EJ06dLrEX7BAABw9EAH5z7wUz/zs+np2toa0egYrL7a6epUnN5Rr2WLFNq/kS1yWQbey85c
1738
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- OkrsSdetTNKQlL/Yr6QRwGaz2Wm323322zt58mSfxV6yTkXJusgHE7BfAQAACD6wF3zpuS/Sd1z8
1752
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- f0Xt3DvktmhxWaPsZ1TMCr8+jY/w6aheiQ6W6TIZ4apFtngnrlPeT7FPow0qWuyVjOArO8Rl4Hhe
1761
- +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
- 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
- HNpcOV3K5QrV6/VBDSWP++PnPXfuvpgbiQAAAEDwgZuhJhIm3KVGea87EXldGqZGbRpQi8Qu5e1b
1764
- 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
- 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
- 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
- 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
- jWYpXQAAABB84AAKPtdYLm3jYe1A5LL9G3+PRZ835jXHNGpjIlEzET01JV4rNEyF+modtVHJvRR8
1769
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- vB18vtZPL6LRNG5LiTvplpUmDpfgIyqebuKZ9+qRex6xFXPymQXq89Trw0DwNZvNKBF7xPV77//e
1777
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- EV5WmEqKVTc/VLPXXc+un6W8T1+Vhmlf8SosG8Gnn1M3achnIpE9ed4Ojdbmyei06+q2LcrbtWjv
1800
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- MLSCTK+j8vp72WURZzKHV0RlhfJefJRdN07wSWRRxF6gBKCIv566X67jORHc4fHjx+NWqxW2Wpts
1814
- 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
- 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
- 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
- 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
- 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
- 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
- uXLF4+hSEAQ6lSmLdK9KGlRStzV1X4mQEeUbOHyHcBu32MihFm9EeWsWEVrahqVF+dFmfbOkgq1c
1821
- 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
- cb0+G21tbYkwpOT5IeoAAAAceBDhO0RwOvfFF1+gjY11ygRIOoFDibV4h8teYCdrxAX3KUrnjvMA
1823
- TGvlfN+PecpIosEkTRx2u91E+Hbt4/jmVM67Jo+ky8MPv7XHqVg1pi5aXFxkI+WIm2Sef/6rbHId
1824
- N5t3DlK2tVpNd00DAAAAEHxg71hdXWUvPkoESDp3VYk9a3xc5MW3X/N0PSX2vDEib9pF08uCbfq5
1825
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 9+65517a2NggbmIwgq9I+B2UGr5xfnyutHD62sIwyr1mjnKy2OUUa1ZL508Qd9EYYcoRvJgFZRRF
1833
- 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
- c9XgFfnvTWrWyETuZi4qyUKPmyh4pJkRsuEEoWtvSy8njxVlFiyxSh1P/uH4Pq2vb2ClBAAAAMEH
1835
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- rj9h0ald3bSRPi7bsiwvLw+6dQEAAAAAwQdujdjTos+KP+7G7dCwM7djLuvInm3eSGv4mIvf+Z34
1855
- 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
- 5TUaDd8fzXO65tP62eKp83opq9vtrF39OJ5a5PqQ3JE9FnQcvWurxw3V9YNlfn6hW6vVWPgNIn3J
1857
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 5je/GSsAAAAAAMF39CmVSrnLtVpt0J27snJVC7iiLtxxDRq7FX6M7ca1qVx92Xrx8ZIKvUT0RdG2
1865
- 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
- 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
- J8Lk/aTp4XPn7otfeulr8Ve++gI99OD9aNwAAAAAdgm6dA8pHAwrSOkWjTizdXdyWjLX24MAfV8R
1868
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
1908
- IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 10.4696)">
1909
- </image>
1910
- </g>
1911
- </g>
1912
- </g>
1913
- </g>
1914
- <g>
1915
- <path fill="#ED1C24" d="M174.957,30.203c-0.284-0.646-1.032-1.349-2.281-1.388c-0.213-0.007-0.435,0.007-0.667,0.04
1916
- c-0.904,0.135-1.788,0.676-2.397,1.515c-0.402-0.719-1.081-1.196-1.905-1.321c-0.113-0.015-0.225-0.023-0.335-0.027
1917
- c-0.035-0.001-0.07-0.002-0.105-0.002c0.172-0.292,0.28-0.589,0.333-0.87c0.131-0.693-0.072-1.291-0.545-1.601
1918
- c-0.191-0.125-0.416-0.196-0.65-0.203c-0.414-0.013-0.742,0.159-1.09,0.342c-0.158,0.083-0.322,0.169-0.491,0.236
1919
- c-0.302,0.121-0.62,0.221-0.948,0.31c-0.029-0.454-0.146-0.885-0.436-1.223c-0.197-0.229-0.553-0.506-1.131-0.524
1920
- c-0.063-0.002-0.128-0.001-0.194,0.004c-0.966,0.063-1.745,0.958-2.372,2.727c-0.002-0.19-0.031-0.381-0.09-0.567
1921
- c-0.244-0.763-0.938-1.273-1.766-1.299c-0.319-0.01-0.649,0.055-0.953,0.188c-1.049,0.458-1.616,1.61-1.291,2.623
1922
- c0.025,0.077,0.057,0.15,0.091,0.222c-1.238,0.182-2.105,1.065-2.674,1.944c-0.238-0.137-0.515-0.227-0.835-0.237
1923
- c-0.169-0.005-0.339,0.014-0.506,0.058c-0.744,0.195-1.028,0.664-1.142,1.25c-0.255-0.728-0.738-1.205-1.626-1.278
1924
- c-0.04-0.003-0.08-0.006-0.119-0.007c-0.921-0.029-2.08,0.433-2.367,2.796c-0.036,0.299-0.063,0.607-0.082,0.909
1925
- c-0.185-0.607-0.511-1.198-1.091-1.689c-0.646-0.547-1.254-0.676-1.651-0.689c-0.637-0.02-1.129,0.236-1.377,0.481
1926
- c-0.597,0.589-0.39,1.317-0.29,1.724c0.101,0.407,0.175,0.841,0.148,1.094c-0.193-0.645-0.454-1.168-0.971-1.624
1927
- c-0.483-0.427-1.119-0.664-1.84-0.686c-0.187-0.006-0.378,0.003-0.569,0.027c-1.897,0.236-3.379,1.794-4.103,4.067
1928
- c-0.137-0.23-0.291-0.438-0.46-0.621c-0.752-0.814-1.642-1.242-2.643-1.273c-0.282-0.009-0.576,0.014-0.874,0.068l-0.035,0.007
1929
- c-0.416,0.089-1.162,0.321-1.482,0.869c-0.247,0.423-0.376,1.01,0.169,1.614c-0.218-0.108-0.428-0.184-0.624-0.236
1930
- c-0.283-0.076-0.568-0.119-0.846-0.128c-0.847-0.026-1.578,0.258-1.956,0.761c-0.202,0.269-0.366,0.639-0.279,1.093
1931
- c-0.423-0.205-0.899-0.324-1.389-0.34c-0.248-0.008-0.501,0.011-0.752,0.055c-1.608,0.242-2.789,1.427-3.544,3.038
1932
- c-0.073-0.026-0.149-0.046-0.227-0.059l-0.102-0.013l-0.051-0.002c-0.585-0.018-0.94,0.353-1.176,0.599
1933
- c-0.035,0.036-0.07,0.073-0.108,0.111c-0.072-0.797-0.11-1.449-0.109-2.219c0.002-1.13,0.277-1.776,0.46-2.081l0.108-0.037
1934
- c0.742-0.252,1.458-0.494,2.075-0.713c1.449-0.513,2.455-0.881,3.21-1.315c1.468-0.844,2.565-2.057,2.934-3.245
1935
- c0.274-0.882,0.244-1.625-0.086-2.15c-0.22-0.35-0.557-0.574-0.947-0.631l-0.09-0.012l-0.063-0.002
1936
- c-0.458-0.014-0.795,0.195-1.15,0.417c-0.257,0.16-0.576,0.359-1.07,0.584c-1.027,0.468-2.291,0.943-4.226,1.588
1937
- c-2.061,0.687-4.653,1.655-6.419,3.049c-1.906,1.505-2.48,3.077-2.625,4.121c-0.222,1.504,0.493,1.941,0.939,2.068
1938
- c0.108,0.03,0.218,0.048,0.329,0.051c0.725,0.023,1.146-0.487,1.453-0.86l0.116-0.139c0.058-0.068,0.217-0.242,0.521-0.483
1939
- c-0.311,1.478-0.287,3.07-0.178,4.325c-0.914,0.725-1.319,1.77-1.384,2.545c-0.083,1.003,0.31,1.736,1.028,1.915l0.123,0.029
1940
- l0.115,0.004c0.321,0.01,0.567-0.108,0.757-0.244c0.609,4.554,0.717,8.077,0.29,9.801l-0.016,0.064
1941
- c-0.387,1.52,0.233,2.055,0.822,2.236l0.046,0.014l0.047,0.01c0.123,0.026,0.251,0.042,0.379,0.046
1942
- c1.267,0.04,2.568-0.992,3.313-2.627c0.805-1.768,0.616-5.234,0.038-9.882c0.532,3.639,2.059,5.666,4.39,5.738
1943
- c0.124,0.004,0.251,0.001,0.368-0.009c0.849-0.062,1.602-0.463,2.178-1.159c0.355-0.43,0.617-0.941,0.809-1.457
1944
- c0.11,0.087,0.225,0.168,0.344,0.243c0.554,0.365,1.192,0.568,1.845,0.588c1.091,0.034,2.317-0.442,2.439-1.389
1945
- c0.013-0.096,0.022-0.263-0.018-0.454c1.075-0.184,2.154-1.507,2.94-3.632c0.244-0.61,0.524-1.38,0.754-2.37
1946
- c0.905,1.882,2.357,2.659,3.709,2.702c0.195,0.006,0.395-0.002,0.594-0.025c1.006-0.116,1.957-0.705,2.679-1.659
1947
- c0.437-0.578,0.776-1.268,1.008-2.029c0.451,0.709,1.149,1.203,2.224,1.267l0.046,0.002c1.327,0.023,2.306-0.963,2.955-2.236
1948
- c0.959,1.074,1.995,1.336,2.721,1.359c0.829,0.026,1.462-0.254,1.695-0.376c0.59-0.307,0.946-0.813,0.963-1.342
1949
- c1.498-0.553,1.303-2.42,1.236-3.064c-0.027-0.256-0.048-0.613-0.06-1.022c0.391,3.088,2.039,3.501,2.788,3.524l0,0
1950
- c0.15,0.005,0.304-0.004,0.458-0.026c1.034-0.145,1.704-0.783,1.915-1.46c0.426,0.451,0.991,0.741,1.74,0.764
1951
- c0.067,0.002,0.133,0.002,0.199-0.001c0.842-0.031,1.792-0.53,2.195-1.222c0.463,0.425,1.031,0.713,1.71,0.813
1952
- c0.143,0.021,0.287,0.034,0.429,0.039c1.101,0.034,1.976-0.421,2.642-1.037c0.006,0.012,0.012,0.024,0.018,0.035
1953
- c0.269,0.491,0.752,0.65,0.988,0.699c0.12,0.028,0.256,0.044,0.408,0.049c1.154,0.036,2.81-0.562,3.673-2.358
1954
- c0.97-1.986,0.067-3.915-0.472-5.068c-0.1-0.213-0.194-0.414-0.246-0.554c-0.098-0.265-0.126-0.473-0.126-0.618
1955
- c0.146,0.07,0.336,0.137,0.569,0.144l0,0c0.134,0.004,0.268-0.012,0.4-0.05c0.389-0.113,0.702-0.386,0.881-0.77
1956
- C175.21,31.395,175.199,30.754,174.957,30.203z"/>
1957
- <g opacity="0.5">
1958
- <g>
1959
- <g>
1960
- <defs>
1961
-
1962
- <rect id="SVGID_12_" x="122.62" y="13.483" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.8799 180.6859)" width="38.995" height="61.358"/>
1963
- </defs>
1964
- <clipPath id="SVGID_13_">
1965
- <use xlink:href="#SVGID_12_" overflow="visible"/>
1966
- </clipPath>
1967
- <path clip-path="url(#SVGID_13_)" fill="#595959" d="M157.669,27.744c0.539-0.235,1.102-0.034,1.257,0.45
1968
- c0.155,0.484-0.156,1.067-0.695,1.302s-1.102,0.034-1.257-0.45C156.819,28.563,157.13,27.98,157.669,27.744z M119.826,43.655
1969
- c-0.307-0.039-0.601,0.927-2.176,1.357c-0.184-1.752-0.28-2.686-0.278-3.95c0.003-1.842,0.643-2.734,0.871-2.994
1970
- c0.889-0.302,1.761-0.595,2.492-0.854c1.426-0.504,2.373-0.855,3.031-1.233c1.285-0.739,2.168-1.752,2.44-2.628
1971
- c0.263-0.848,0.108-1.352-0.159-1.391c-0.268-0.04-0.628,0.384-1.766,0.903c-1.137,0.518-2.508,1.022-4.332,1.63
1972
- c-1.822,0.608-4.417,1.551-6.091,2.872c-1.67,1.319-2.117,2.651-2.225,3.43c-0.095,0.645,0.021,0.83,0.164,0.871
1973
- c0.261,0.074,0.47-0.245,0.779-0.608c0.34-0.4,1.422-1.42,3.907-2.374c-2.038,1.607-1.804,5.732-1.598,7.467
1974
- c-1.159,0.567-1.417,1.691-1.45,2.084c-0.032,0.393,0.058,0.739,0.21,0.777c0.161,0.04,0.533-0.636,1.571-0.962
1975
- c0.69,4.555,1.107,9.428,0.505,11.861c-0.075,0.302-0.256,0.905,0.074,1.007c0.727,0.155,1.8-0.473,2.483-1.972
1976
- c0.704-1.547,0.439-5.103-0.081-9.294c-0.117-0.94-0.224-1.812-0.321-2.628c1.211-0.291,1.874-1.491,2.028-1.952
1977
- C120.088,44.523,120.118,43.702,119.826,43.655z M130.074,51.611c-0.265-0.039-0.868-0.51-1.296-1.466
1978
- c-0.428-0.956-0.667-2.03-0.996-4.399c-0.33-2.376-0.494-2.793-1.161-2.785c-1.585,0.11-1.332,3.047-1.225,4.474
1979
- c-0.121,2.203-0.473,3.913-1.194,3.923c-0.693,0.009-1.276-0.779-1.295-4.642c0.132-5.085,2.759-4.477,3.032-4.377
1980
- c0.26,0.095,0.382,0.213,0.49,0.129c0.164-0.13-0.002-0.695-0.34-1.104s-1.109-0.875-2.144-0.688
1981
- c-2.001,0.292-3.796,3.05-3.633,7.367c0.164,4.356,1.895,6.263,3.668,6.12c2.348-0.172,2.497-4.137,2.494-4.163
1982
- c0.1,0.365,0.627,1.421,1.498,1.957c1.252,0.833,2.599,0.21,2.629-0.029C130.633,51.688,130.339,51.65,130.074,51.611z
1983
- M131.157,36.977c-0.397,0.085-0.709,0.243-0.775,0.358c-0.29,0.497,0.606,0.526,1.43,1.498
1984
- c0.597,0.704,1.088,1.814,1.094,4.28c0.007,2.777-0.854,4.389-0.854,4.389s-0.213-3.202-0.935-5.373
1985
- c-0.606-1.823-1.491-2.673-2.404-2.919c-0.85-0.228-1.487,0.01-1.658,0.238s-0.076,0.389,0.168,0.665
1986
- c0.244,0.276,1.377,1.501,2.216,4.524c0.789,2.842,0.893,3.765,1.024,4.472s0.258,1.386,0.905,1.443
1987
- c0.46,0.04,1.424-0.8,2.219-2.96c0.423-1.054,0.808-2.278,1.011-3.944c0.381-3.08-0.149-4.973-0.91-5.796
1988
- C133.158,37.278,132.392,36.753,131.157,36.977z M139.529,47.213c1.948-0.224,3.569-3.052,2.982-6.673
1989
- c-0.106-0.653-0.375-1.867-0.943-2.583c-0.426-0.538-0.973-0.891-1.403-0.615c-0.26,0.236-0.128,0.378,0.164,1.215
1990
- c0.292,0.836,0.412,1.987,0.38,3.117c-0.039,1.394-0.291,2.961-1.279,2.961c-1.021,0-1.49-1.887-1.492-3.975
1991
- c-0.002-2.093,0.829-4.31,2.061-4.3c0.628,0.012,0.855,0.441,1.052,0.375c0.272-0.091,0.413-0.952-0.313-1.592
1992
- c-0.413-0.365-1.001-0.466-1.56-0.397c-2.419,0.301-3.811,3.434-3.624,6.951C135.752,45.425,137.38,47.46,139.529,47.213z
1993
- M145.628,44.787c1.515,0.026,2.403-2.327,2.68-3.779c0.203,0.594,0.482,1.172,0.864,1.664c1.306,1.69,2.804,1.247,3.31,0.984
1994
- c0.268-0.139,0.403-0.329,0.379-0.45c-0.014-0.073-0.086-0.121-0.221-0.12c-0.761-0.005-1.35-0.307-1.926-1.249
1995
- c-0.545-0.911-0.744-3.102-0.662-6.233c0.076-2.898-0.336-3.145-0.888-3.191c-0.947-0.078-1.215,0.941-1.324,1.842
1996
- c-0.15,1.235-0.122,2.681-0.105,3.1c0.01,0.243,0.023,0.688,0.077,1.236c-0.174,1.228-0.597,3.492-1.341,3.448
1997
- c-0.899-0.054-0.589-3.584-0.614-4.841c-0.02-1.043-0.045-2.252-0.962-3.028c-0.822-0.696-1.46-0.372-1.57-0.263
1998
- c-0.175,0.173-0.065,0.431,0.043,0.857c0.12,0.474,0.2,2.01,0.238,4.057C143.646,40.891,143.24,44.643,145.628,44.787z
1999
- M157.653,33.034c-1.42-0.098-1.575,2.98-1.534,4.971c0.052,2.5,0.824,3.789,2.097,3.61c0.758-0.106,1.073-0.619,1.056-0.869
2000
- c-0.025-0.362-0.44-0.311-0.717-1.207c-0.34-1.504-0.41-2.85-0.249-4.672C158.452,33.225,158.059,33.062,157.653,33.034z
2001
- M159.146,31.495c0.26,0.093,0.283-0.215,1.269-0.659c0.037-0.016,0.075-0.029,0.111-0.043
2002
- c-0.167,0.823-0.362,2.163-0.43,4.646c-0.122,4.802,1.093,5.506,2.084,5.469c0.708-0.026,1.348-0.566,1.35-0.83
2003
- c0.003-0.321-0.308-0.301-0.523-0.704c-0.487-0.802-0.629-2.096-0.625-4.917c0.044-1.726,0.21-3.044,0.374-4.116
2004
- c0.462-0.075,1.018-0.172,1.714-0.317c2.379-0.495,2.569-2.178,2.294-2.358c-0.195-0.128-0.631,0.233-1.238,0.475
2005
- c-0.829,0.331-1.742,0.524-2.532,0.685c0.024-0.163,0.046-0.321,0.064-0.473c0.165-1.38-0.145-1.597-0.572-1.57
2006
- c-0.738,0.048-1.35,1.713-1.615,2.592c-0.501,0.186-0.913,0.419-1.261,0.725C159.065,30.582,158.878,31.4,159.146,31.495z
2007
- M169.767,37.669c-0.163,0.581-1.266,3.171-3.484,2.843c-2.028-0.3-2.627-3.201-2.293-5.576
2008
- c0.252-1.79,1.569-4.898,3.883-4.603c1.266,0.193,1.987,1.876,0.644,4.281c-0.739,1.323-1.79,2.002-2.322,2.279
2009
- c0.213,0.858,0.64,1.375,1.301,1.421c0.713,0.049,1.354-0.274,1.843-0.843c0.154-0.18,0.277-0.33,0.393-0.312
2010
- C169.872,37.181,169.841,37.405,169.767,37.669z M166.053,35.928c0.386-0.343,1.023-1.013,1.459-2.014
2011
- c0.637-1.461,0.445-2.312,0.018-2.358c-0.569-0.061-1.407,1.512-1.485,3.318C166.029,35.25,166.031,35.602,166.053,35.928z
2012
- M174.271,30.85c-0.17-0.386-0.72-0.87-1.799-0.714c-1.189,0.178-2.432,1.418-2.263,3.34c0.164,1.861,0.986,2.894,1.051,4.055
2013
- c0.06,1.08-0.326,1.672-0.87,2.138c-0.257,0.219-0.283,0.328-0.229,0.428c0.054,0.099,0.193,0.148,0.274,0.163
2014
- c0.317,0.085,2.019,0.054,2.875-1.728c0.914-1.871-0.402-3.806-0.759-4.771c-0.391-1.049-0.161-1.942,0.416-2.143
2015
- c0.642-0.224,0.869,0.281,1.138,0.203C174.391,31.739,174.445,31.245,174.271,30.85z M153.379,42.311
2016
- c0.913-0.181,0.801-1.27,0.726-1.99c-0.097-0.932-0.125-3.023,0.072-4.446c0.223-1.611,0.891-3.178,2.191-3.604
2017
- c1.146-0.376,1.619,0.165,1.894-0.117c0.232-0.238-0.183-1.484-1.721-1.509c-1.773-0.029-2.703,2.153-2.97,2.93
2018
- c0,0-0.437-1.385-1.277-1.166c-0.465,0.122-0.385,0.411-0.432,2.009c-0.047,1.596-0.18,3.627,0.031,5.384
2019
- C152.104,41.557,152.467,42.492,153.379,42.311z"/>
2020
- </g>
2021
- </g>
2022
- </g>
2023
- <path fill="#FFF200" d="M157.366,27.533c0.539-0.235,1.102-0.034,1.257,0.45c0.155,0.484-0.156,1.067-0.695,1.302
2024
- c-0.539,0.236-1.102,0.034-1.257-0.45C156.515,28.351,156.827,27.768,157.366,27.533z M119.523,43.443
2025
- c-0.307-0.039-0.601,0.927-2.176,1.357c-0.184-1.752-0.28-2.686-0.278-3.95c0.003-1.842,0.643-2.734,0.871-2.994
2026
- c0.889-0.302,1.761-0.595,2.492-0.854c1.426-0.504,2.373-0.854,3.031-1.233c1.285-0.739,2.168-1.752,2.44-2.628
2027
- c0.263-0.848,0.108-1.352-0.159-1.391c-0.268-0.04-0.628,0.384-1.766,0.902c-1.137,0.518-2.508,1.022-4.332,1.63
2028
- c-1.822,0.608-4.417,1.551-6.091,2.872c-1.67,1.319-2.117,2.651-2.225,3.43c-0.095,0.645,0.021,0.83,0.164,0.871
2029
- c0.261,0.074,0.47-0.245,0.779-0.608c0.34-0.4,1.422-1.42,3.907-2.374c-2.038,1.607-1.804,5.732-1.598,7.467
2030
- c-1.159,0.567-1.417,1.691-1.45,2.084c-0.032,0.393,0.058,0.739,0.21,0.777c0.161,0.04,0.533-0.636,1.571-0.962
2031
- c0.69,4.555,1.107,9.428,0.505,11.861c-0.075,0.302-0.256,0.905,0.074,1.007c0.727,0.155,1.8-0.473,2.483-1.972
2032
- c0.704-1.547,0.439-5.103-0.081-9.294c-0.117-0.94-0.224-1.812-0.321-2.628c1.211-0.291,1.874-1.491,2.028-1.952
2033
- C119.785,44.311,119.815,43.491,119.523,43.443z M129.771,51.4c-0.265-0.039-0.868-0.51-1.296-1.466
2034
- c-0.428-0.956-0.666-2.03-0.996-4.399c-0.33-2.376-0.494-2.793-1.161-2.785c-1.585,0.11-1.332,3.047-1.225,4.474
2035
- c-0.121,2.203-0.473,3.913-1.194,3.923c-0.693,0.009-1.276-0.779-1.295-4.642c0.132-5.085,2.759-4.477,3.032-4.377
2036
- c0.26,0.094,0.382,0.213,0.49,0.129c0.164-0.13-0.002-0.695-0.34-1.104s-1.109-0.875-2.144-0.688
2037
- c-2.001,0.292-3.796,3.05-3.633,7.367c0.164,4.356,1.895,6.263,3.668,6.12c2.348-0.172,2.497-4.137,2.494-4.163
2038
- c0.1,0.365,0.627,1.421,1.498,1.957c1.252,0.833,2.599,0.21,2.629-0.029C130.33,51.477,130.036,51.439,129.771,51.4z
2039
- M130.853,36.765c-0.397,0.085-0.709,0.243-0.775,0.358c-0.29,0.497,0.606,0.526,1.43,1.498c0.597,0.704,1.088,1.814,1.094,4.28
2040
- c0.007,2.777-0.854,4.389-0.854,4.389s-0.213-3.202-0.935-5.373c-0.606-1.823-1.491-2.673-2.404-2.919
2041
- c-0.85-0.228-1.487,0.01-1.658,0.238s-0.076,0.389,0.168,0.665c0.244,0.276,1.377,1.501,2.216,4.524
2042
- c0.789,2.842,0.893,3.765,1.024,4.472c0.131,0.706,0.258,1.386,0.905,1.443c0.46,0.04,1.424-0.8,2.219-2.96
2043
- c0.423-1.054,0.808-2.278,1.011-3.944c0.381-3.08-0.149-4.973-0.91-5.796C132.854,37.066,132.088,36.542,130.853,36.765z
2044
- M139.225,47.001c1.948-0.224,3.569-3.052,2.982-6.673c-0.106-0.653-0.375-1.867-0.943-2.583
2045
- c-0.426-0.538-0.973-0.891-1.403-0.615c-0.26,0.236-0.128,0.378,0.164,1.215c0.292,0.836,0.412,1.987,0.38,3.117
2046
- c-0.039,1.394-0.291,2.961-1.279,2.961c-1.021,0-1.49-1.887-1.492-3.975c-0.002-2.093,0.829-4.31,2.061-4.3
2047
- c0.628,0.012,0.855,0.441,1.052,0.375c0.272-0.091,0.412-0.951-0.313-1.592c-0.413-0.365-1.001-0.466-1.56-0.397
2048
- c-2.419,0.301-3.811,3.434-3.624,6.951C135.449,45.214,137.077,47.248,139.225,47.001z M145.325,44.575
2049
- c1.515,0.026,2.403-2.327,2.68-3.779c0.203,0.594,0.482,1.172,0.864,1.664c1.306,1.69,2.804,1.247,3.31,0.984
2050
- c0.268-0.139,0.403-0.329,0.379-0.451c-0.014-0.073-0.086-0.121-0.221-0.12c-0.761-0.005-1.35-0.307-1.926-1.249
2051
- c-0.545-0.911-0.744-3.102-0.662-6.232c0.076-2.898-0.336-3.145-0.888-3.191c-0.947-0.078-1.215,0.941-1.324,1.842
2052
- c-0.15,1.235-0.122,2.68-0.105,3.1c0.01,0.243,0.023,0.688,0.077,1.236c-0.174,1.228-0.597,3.492-1.341,3.448
2053
- c-0.899-0.053-0.589-3.584-0.614-4.841c-0.02-1.043-0.045-2.252-0.962-3.028c-0.822-0.696-1.46-0.372-1.57-0.263
2054
- c-0.175,0.173-0.065,0.431,0.043,0.857c0.12,0.474,0.2,2.01,0.238,4.057C143.342,40.679,142.937,44.431,145.325,44.575z
2055
- M157.349,32.822c-1.42-0.098-1.575,2.98-1.534,4.971c0.052,2.5,0.824,3.789,2.097,3.61c0.757-0.106,1.073-0.619,1.056-0.869
2056
- c-0.025-0.362-0.44-0.311-0.717-1.207c-0.34-1.504-0.41-2.85-0.249-4.672C158.149,33.014,157.756,32.85,157.349,32.822z
2057
- M158.843,31.284c0.26,0.093,0.283-0.215,1.269-0.659c0.037-0.016,0.074-0.029,0.111-0.043c-0.167,0.823-0.362,2.163-0.43,4.646
2058
- c-0.122,4.802,1.093,5.506,2.084,5.469c0.708-0.026,1.348-0.566,1.35-0.83c0.003-0.321-0.308-0.301-0.523-0.704
2059
- c-0.487-0.802-0.629-2.096-0.625-4.917c0.044-1.726,0.21-3.044,0.374-4.116c0.462-0.075,1.018-0.172,1.715-0.317
2060
- c2.379-0.495,2.569-2.178,2.294-2.358c-0.195-0.128-0.631,0.233-1.238,0.475c-0.829,0.331-1.742,0.524-2.532,0.685
2061
- c0.024-0.163,0.046-0.321,0.064-0.473c0.165-1.38-0.145-1.597-0.572-1.57c-0.738,0.048-1.35,1.713-1.615,2.592
2062
- c-0.501,0.186-0.914,0.419-1.261,0.725C158.762,30.371,158.575,31.188,158.843,31.284z M169.464,37.457
2063
- c-0.163,0.581-1.266,3.171-3.484,2.843c-2.028-0.3-2.627-3.201-2.293-5.576c0.252-1.79,1.569-4.898,3.883-4.603
2064
- c1.266,0.193,1.987,1.876,0.644,4.281c-0.739,1.323-1.79,2.002-2.322,2.279c0.213,0.858,0.64,1.375,1.301,1.421
2065
- c0.713,0.049,1.354-0.274,1.843-0.843c0.154-0.18,0.277-0.33,0.393-0.312C169.569,36.97,169.538,37.194,169.464,37.457z
2066
- M165.75,35.716c0.386-0.343,1.023-1.013,1.459-2.014c0.637-1.461,0.445-2.312,0.018-2.358c-0.569-0.061-1.407,1.512-1.485,3.318
2067
- C165.725,35.038,165.728,35.391,165.75,35.716z M173.968,30.638c-0.17-0.386-0.72-0.87-1.799-0.714
2068
- c-1.189,0.178-2.432,1.418-2.263,3.34c0.164,1.861,0.986,2.894,1.051,4.055c0.06,1.08-0.326,1.672-0.87,2.138
2069
- c-0.257,0.219-0.283,0.328-0.228,0.428c0.054,0.099,0.193,0.148,0.274,0.163c0.317,0.085,2.019,0.054,2.875-1.728
2070
- c0.914-1.871-0.402-3.805-0.759-4.77c-0.391-1.049-0.161-1.943,0.416-2.143c0.642-0.224,0.869,0.281,1.138,0.203
2071
- C174.087,31.527,174.141,31.033,173.968,30.638z M153.075,42.099c0.913-0.181,0.801-1.27,0.726-1.99
2072
- c-0.097-0.932-0.125-3.023,0.072-4.446c0.223-1.611,0.891-3.178,2.191-3.604c1.146-0.376,1.619,0.165,1.894-0.117
2073
- c0.232-0.238-0.183-1.484-1.721-1.509c-1.773-0.029-2.703,2.153-2.97,2.93c0,0-0.437-1.385-1.277-1.166
2074
- c-0.465,0.122-0.385,0.411-0.432,2.009c-0.047,1.596-0.18,3.627,0.031,5.384C151.801,41.345,152.163,42.28,153.075,42.099z"/>
2075
- </g>
2076
-
2077
- <linearGradient id="cadbury_logo_2_" gradientUnits="userSpaceOnUse" x1="151.1472" y1="251.8356" x2="178.1811" y2="232.0889" gradientTransform="matrix(0.99 0.1407 0.1407 -0.99 -56.0405 236.3141)">
2078
- <stop offset="0" style="stop-color:#986E3A"/>
2079
- <stop offset="0.511" style="stop-color:#D6B37C"/>
2080
- <stop offset="1" style="stop-color:#9A673B"/>
2081
- </linearGradient>
2082
- <path id="cadbury_logo_1_" fill="url(#cadbury_logo_2_)" d="M160.872,15.197c0.086-0.372,0.157-0.937-0.174-1.216
2083
- c-0.116-0.072-0.243-0.08-0.381-0.036c-0.196,0.076-0.326,0.259-0.39,0.459c-0.353,0.937-0.622,1.924-1.184,2.793
2084
- c-0.168,0.259-0.395,0.583-0.658,0.576c-0.065-0.004-0.117-0.039-0.155-0.17c-0.175-0.763,0.2-1.636,0.454-2.383
2085
- c0.091-0.22,0.15-0.53,0.046-0.738c-0.059-0.109-0.167-0.174-0.284-0.184c-0.334-0.017-0.534,0.258-0.7,0.522
2086
- c-0.606,1.125-1.099,2.418-1.915,3.445c-0.122,0.126-0.242,0.298-0.432,0.28c-0.082-0.012-0.148-0.077-0.178-0.183
2087
- c-0.106-0.462,0.035-1.152,0.243-1.692c0.152-0.393,0.327-0.638,0.402-1.033c0.03-0.212-0.035-0.402-0.231-0.509
2088
- c-0.105-0.045-0.209-0.066-0.358,0.006c-0.282,0.153-0.53,0.382-0.862,0.444c0.066-0.236,0.151-0.459,0.136-0.708
2089
- c-0.02-0.211-0.089-0.449-0.284-0.531c-0.189-0.069-0.423-0.018-0.597,0.134c-0.499,0.5-0.529,1.315-0.303,1.961
2090
- c-0.157,0.821-0.547,1.604-0.992,2.3c-0.166,0.224-0.328,0.479-0.608,0.514c-0.188,0.001-0.279-0.133-0.327-0.364
2091
- c0.275-0.536,0.607-1.127,0.758-1.694c0.119-0.441,0.282-1.121,0.01-1.539c-0.058-0.102-0.194-0.172-0.338-0.161
2092
- c-0.27,0.011-0.47,0.209-0.628,0.407c-0.595,0.865-0.739,1.875-0.754,2.904c-0.107,0.328-0.283,0.666-0.545,0.914
2093
- c-0.124,0.123-0.334,0.24-0.5,0.161c-0.094-0.062-0.15-0.161-0.169-0.275c-0.096-0.637,0.147-1.258,0.35-1.852
2094
- c0.362-1.059,0.739-1.311,0.551-1.759c-0.073-0.165-0.239-0.27-0.407-0.277c-0.219-0.021-0.469,0.105-0.604,0.312
2095
- c-0.295,0.49-0.602,1.004-1.025,1.409c-0.249,0.222-0.459,0.429-0.829,0.589c-0.023-0.205-0.069-0.415-0.131-0.603
2096
- c-0.197-0.605-0.578-1.196-1.284-1.15c-0.245,0.015-0.485,0.143-0.651,0.244c0.09-0.875,0.321-1.735,0.74-2.5
2097
- c0.255-0.467,0.664-0.939,0.713-1.334c0.026-0.212-0.065-0.419-0.243-0.524c-0.186-0.096-0.374-0.096-0.583,0.004
2098
- c-0.423,0.242-0.674,0.708-0.888,1.135c-0.402,0.443-1.005,0.643-1.614,0.777c-0.808,0.21-1.324-0.023-1.864-0.518
2099
- c-0.147-0.116-0.328-0.243-0.541-0.226c-0.222-0.002-0.444,0.199-0.531,0.354c-0.114,0.182-0.118,0.435-0.006,0.61
2100
- c0.457,0.663,1.038,1.173,1.296,2.062c0.059,0.206,0.106,0.411,0.107,0.626c-1.579,0.918-2.489,2.841-2.42,4.606
2101
- c-0.157,0.514-0.311,1.399-0.913,1.365c-0.304-0.063-0.729-1.071,0.118-4.043c0.044-0.447,0.176-0.92-0.058-1.35
2102
- c-0.134-0.242-0.449-0.288-0.698-0.28c-1.978,0.201-3.175,2.511-4.069,4.116c-1.125,1.8-2.473,2.883-3.843,3.561
2103
- c-3.361,1.665-7.159,1.041-7.425-2.664c-0.255-3.531,1.91-7.598,6.584-9.522c3.61-1.485,5.994-0.295,5.953,1.836
2104
- c-0.02,1.037-0.719,4.227-5.229,5.846c-0.775,0.278-2.187,0.391-2.762-0.277c-0.902-1.064-0.583-2.368-0.007-3.289
2105
- c1.005-1.489,2.717-2.402,4.498-2.85c0.146-0.029,0.267-0.096,0.342-0.259c0.044-0.111,0.042-0.214-0.014-0.355
2106
- c-0.096-0.19-0.278-0.234-0.459-0.215c-1.623,0.229-3.108,0.916-4.264,1.891c-1.366,1.243-2.38,2.854-2.253,4.68
2107
- c0.092,1.191,0.898,2.265,2.078,2.571c1.308,0.292,3.093-0.317,4.279-0.927c2.478-1.401,4.552-3.835,4.883-6.584
2108
- c0.121-1.23-0.477-2.475-1.557-3.129c-1.735-0.995-5.294-0.958-8.865,1.322c-1.286,0.823-3.225,2.255-4.59,4.855
2109
- c-1.364,2.601-1.449,6.171,0.654,8.159c1.531,1.447,4.03,1.905,6.552,1.207c1.826-0.506,3.653-1.959,5.125-3.85
2110
- c-0.081,1.148,0.661,1.663,1.375,1.677c1.581,0.02,2.267-1.975,2.267-1.975c0.19,0.575,0.264,0.837,0.872,0.994
2111
- c1.026,0.261,1.476-0.572,1.657-1.215c0.175,0.408,0.636,0.79,1.117,0.739c0.759-0.073,1.291-0.769,1.577-1.373
2112
- c1.009-2.136,1.002-4.585,0.396-6.807c0.431-0.025,0.712-0.134,1.084-0.257c0.21-0.068,0.373-0.122,0.579-0.205
2113
- c-0.345,1.389-0.567,2.831-0.558,4.315c0.044,0.98,0.096,2.118,0.788,2.783c0.298,0.306,0.729,0.407,1.152,0.268
2114
- c0.539-0.158,0.988-0.897,1.171-1.439c0.132-0.331,0.325-1.121,0.373-1.659c0.214-0.151,0.435-0.286,0.641-0.451
2115
- c0.085-0.069,0.13-0.101,0.212-0.169c-0.101,0.607-0.207,1.302-0.064,1.912c0.091,0.424,0.355,0.799,0.773,0.9
2116
- c0.688,0.142,1.395-0.759,1.801-1.273c0.137,0.243,0.307,0.499,0.589,0.593c0.332,0.109,0.784-0.029,1.067-0.36
2117
- c0.826-0.967,1.176-2.288,1.596-3.486l0.045-0.125c0.215-0.056,0.397-0.136,0.595-0.257c-0.181,0.503-0.33,1.025-0.396,1.563
2118
- c-0.089,0.655,0.013,1.49,0.571,1.83c0.286,0.15,0.666-0.028,0.87-0.193c0.658-0.565,1.088-1.383,1.492-2.119l0.031-0.05
2119
- c-0.014,0.404,0.055,0.946,0.254,1.288c0.114,0.201,0.361,0.368,0.583,0.35c0.677-0.078,1.008-0.707,1.391-1.23
2120
- c0.066-0.09,0.136-0.209,0.177-0.266c-0.169,0.857-0.485,1.799-0.675,2.663c-0.049,0.22-0.204,0.705-0.125,0.998
2121
- c0.089,0.332,0.34,0.563,0.83,0.614c0.091,0.008,0.139-0.037,0.148-0.106c-0.116-0.546,0.002-0.992,0.22-1.791
2122
- C160.065,18.438,160.489,16.803,160.872,15.197z M137.211,19.107c-0.455,1.511-1.221,3.579-1.733,4.151
2123
- c-0.694,0.776-1.06-0.081-0.88-0.598c0.272-1.31,0.914-3.001,1.948-3.999c0.137-0.115,0.473-0.4,0.664-0.182
2124
- C137.279,18.616,137.261,18.942,137.211,19.107z M141.501,20.641c-0.125,0.378-0.278,0.806-0.557,1.127
2125
- c-0.081,0.099-0.235,0.216-0.368,0.117c-0.328-0.263-0.291-0.978-0.222-1.421c0.131-0.847,0.558-1.744,1.347-2.201l0.043-0.022
2126
- C141.852,19.053,141.705,19.865,141.501,20.641z M145.322,20.76c-0.086,0.025-0.165,0.006-0.233-0.034
2127
- c-0.314-0.245-0.397-0.973-0.422-1.517c-0.02-0.431,0.041-1.236,0.425-1.577c0.242-0.179,0.531-0.126,0.629,0.136
2128
- c0.209,0.505,0.213,1.379,0.116,1.958C145.779,20.072,145.676,20.676,145.322,20.76z"/>
2129
- </g>
2130
- </svg>
2131
-
2132
- `,U=n=>Zn("http://www.w3.org/2000/svg",n),YA=(n,t)=>{const e=U("rect");return e.setAttribute("height",`${n}`),e.setAttribute("width",`${t}`),e},Xs=()=>{const n=U("svg");return n.setAttribute("xmlns","http://www.w3.org/2000/svg"),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n.setAttribute("version","1.1"),n},qs=n=>{const t=U("use");return t.setAttribute("xlink:href",n),t.setAttribute("href",n),t};function An(n){const t=Xs(),e=/viewBox="0 0 (.+?) (.+?)"/.exec(n)||["0","0"],A=parseFloat(e[1]),a=parseFloat(e[2]);return t.setAttribute("height",`${a}`),t.setAttribute("width",`${A}`),[t,a,A]}const Zs=(n,t,e)=>{const A=U("g");n.appendChild(A),A.setAttribute("id",e),A.innerHTML=t};function an(n,t,e){const A=b();Zs(t,e,`bgdef-${A}`),n.appendChild(qs(`#bgdef-${A}`))}const nn=(n,t,e,A)=>{const a=Ee("filter");a.setAttribute("id",A),a.setAttribute("height","200%"),a.setAttribute("width","200%"),a.setAttribute("x","-50%"),a.setAttribute("y","-50%");const i=Ee("feOffset");a.appendChild(i),i.setAttribute("result","offOut"),i.setAttribute("in","SourceAlpha"),i.setAttribute("dx",`${n}`),i.setAttribute("dy",`${t}`);const s=Ee("feGaussianBlur");a.appendChild(s),s.setAttribute("result","blurOut"),s.setAttribute("in","offOut"),s.setAttribute("stdDeviation",`${e}`);const o=Ee("feBlend");return a.appendChild(o),o.setAttribute("in","SourceGraphic"),o.setAttribute("in2","blurOut"),o.setAttribute("mode","normal"),a},sn=n=>{let t=n;return t=t.replace(/feoffset/gi,"feOffset"),t=t.replace(/fegaussianblur/gi,"feGaussianBlur"),t=t.replace(/feblend/gi,"feBlend"),t=t.replace(/lineargradient/gi,"linearGradient"),t=t.replace(/stddeviation/gi,"stdDeviation"),t};function PA(n,t,e,A,a,i){const s=a||1,o=i||1,r={x:t[0],y:t[1],width:t[2]-t[0],height:t[3]-t[1]};if(r.width<=0)return;const c=$s(r.height,r.width,e*s,A*o),l=(A-c*r.width)/2-c*r.x,g=(e-c*r.height)/2-c*r.y;n.setAttribute("transform",`translate(${l} ${g}) scale(${c} ${c})`)}function $s(n,t,e,A){const a=e/n,i=A/t;return a>1&&i>1?Math.min(a,i):a>1&&i<1?i:a<1&&i>1?a:Math.min(a,i)}const on={m:["x","y"],z:[],l:["x","y"],h:["x"],v:["y"],c:["x1","y1","x2","y2","x","y"],s:["x2","y2","x","y"],q:["x1","y1","x","y"],t:["x","y"],a:["rx","ry","xRotation","largeArc","sweep","x","y"]};class vA{constructor(t){const e=Array.from(t.querySelectorAll("path"));this.paths=e.map(A=>{const a=A.getAttribute("d")||"",i=this.parsePath(a);return{pathElement:A,pathData:i}})}transform(t){for(const e of this.paths)e.pathData=this.runTransformer(e.pathData,t);this.update()}encodePath(t){let e="";const a=i=>{const s=[],o=i.relative?i.type:i.type.toUpperCase();let r=e!==o;const c=on[i.type];r&&(s.push(o),e=o);for(const l of c){const g=i[l];let d;switch(typeof g){case"boolean":d=g|0;break;case"number":d=(g*100|0)/100;break;default:throw new Mt("Failed to encode path.")}r||s.push(" "),s.push(d),r=!1}return s.join("")};return t.map(a).join("")}parsePath(t){const e=/([mzlhvcsqta])([^mzlhvcsqta]*)/gi,A=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi,a=[];let i;for(e.lastIndex=0;i=e.exec(t);){const s=i[1].toLowerCase(),o=(i[2].match(A)||[]).map(parseFloat),r=s===i[1],c=on[s];if(o.length<c.length)throw new Mt(`Path type "${s}" given ${o.length} arguments, expected ${c.length}.`);if(c.length>0){if(o.length%c.length!==0)throw new Mt(`Path type "${s}" given ${o.length} arguments, not divisible by ${c.length}`);for(let l=0;l<o.length/c.length;l++){const g={type:s,relative:r};for(let d=0;d<c.length;d++)g[c[d]]=o[l*c.length+d];a.push(g)}}else a.push({type:s,relative:r})}return a}runTransformer(t,e){const A=[["x1","y1"],["x2","y2"],["x","y"]],a=i=>{for(let s=0;s<A.length;s++){const[o,r]=A[s];if(o in i&&r in i){const c=[i[o],i[r]],l=e(c);if(l.length<2)throw new Mt("Transformer must return at least 2 points.");i[o]=l[0],i[r]=l[1]}}return i};return this.transformPath(t,a)}transformPath(t,e){const A=[];for(let a=0;a<t.length;a++){const i=JSON.parse(JSON.stringify(t[a])),s=e(i);Array.isArray(s)?A.push(...s):s&&A.push(s)}return A}update(){for(const{pathElement:t,pathData:e}of this.paths){const A=this.encodePath(e);t.setAttribute("d",A)}}}class _s extends xA{constructor(){super(...arguments),this.moduleName="Favourites"}svgPreview(t){return this.svg(t)}svgPrint(t){return this.svg(t)}svg(t){const e=gA(Vs),a=t!==""?(s=>s.charAt(0).toUpperCase()+s.substr(1).toLowerCase())(t):"",i=e.getPath(a,0,72,72);return this.brandSvg(i,Ws)}brandSvg(t,e){const A=t.toSVG(2),a=t.getBoundingBox(),i=a.x2-a.x1,s=t.toPathData(3),o=()=>{const Q=U("g"),I=U("defs");Q.appendChild(I),I.appendChild(nn(3,7,4,"shadow"));const D=U("g");Q.appendChild(D),D.setAttribute("filter","url(#shadow)"),D.innerHTML=A;const y=U("g");Q.appendChild(y),y.setAttribute("fill","red"),y.setAttribute("stroke","red"),y.setAttribute("stroke-width","9"),y.innerHTML=A;const M=U("g");Q.appendChild(M),M.setAttribute("fill","#9d2621"),M.setAttribute("transform","translate(1,1)"),M.innerHTML=A;const P=U("g");return Q.appendChild(P),P.setAttribute("fill","yellow"),P.innerHTML=A,new vA(Q).transform(([Y,V])=>[Y,V+(i/2-Y)**2/(i*2.9)]),Q},[r,c,l]=An(e);if(!r)return"";const g=U("defs");r.appendChild(g),an(r,g,e);const d=c*.23,B=l*.94,h=l*.04,C=c*.53,u=U("g");r.appendChild(u),u.setAttribute("transform",`translate(${h} ${C}) rotate(-21)`);const E=YA(d,B);E.setAttribute("opacity","0"),u.appendChild(E);const m=U("g");u.appendChild(m);const f=o();m.appendChild(f);const p=Je(s);return PA(m,p,d,B),sn(r.outerHTML)}}const to="data:application/octet-stream;base64,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ZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";class eo extends xA{constructor(t,e){super(),this.moduleName="Maltesers",this.shortLength=5,this.indicator=A=>A?1:0,this.backgroundSvg=t,this.backgroundShortSvg=e}svgPreview(t){return this.svg(t)}svgPrint(t){return this.svg(t)}svg(t){const e=gA(to),a=t!==""?(r=>r.charAt(0).toUpperCase()+r.substr(1).toLowerCase())(t):"",i=e.getPath(a,0,72,72),s=t.length<this.shortLength,o=s?this.backgroundShortSvg:this.backgroundSvg;return this.brandSvg(i,o,s)}brandSvg(t,e,A){const a=t.toSVG(2),i=t.getBoundingBox(),s=i.y2-i.y1,o=i.x2-i.x1,r=t.toPathData(3),c=()=>{const D=U("g"),y=U("g");D.appendChild(y),y.setAttribute("stroke","#5C1A0D"),y.setAttribute("stroke-width","4"),y.setAttribute("transform","translate(1,1)"),y.innerHTML=a;const M=U("g");D.appendChild(M),M.setAttribute("fill","#FFE386"),M.setAttribute("transform","translate(1,1)"),M.innerHTML=a;const P=U("g");D.appendChild(P),P.setAttribute("fill","white"),P.innerHTML=a;const k=new vA(D);return k.transform(([Y,V])=>[Y,V+((o-Y)*V)**2/(o*5e4)]),k.transform(([Y,V])=>[Y,V+(o/3-Y)**2/o*this.indicator(Y<o/3)]),k.transform(([Y,V])=>[Y-(s-V)*(o-Y)/800,V]),D},[l,g,d]=An(e);if(!l)return"";const B=U("defs");l.appendChild(B),an(l,B,e);let h,C,u,E;A?(h=g*.25*(1+.1),C=d/2*(1+.1),u=d*.22,E=g*.32):(h=g*.22*(1+.1),C=d*.8,u=d*.067,E=g*.33);const m=U("g");l.appendChild(m),m.setAttribute("transform",`translate(${u} ${E}) rotate(-10)`);const f=YA(h,C);f.setAttribute("opacity","0"),m.appendChild(f);const p=U("g");m.appendChild(p);const Q=c();p.appendChild(Q);const I=Je(r);return PA(p,I,h,C),l.outerHTML}}const Ao="data:application/octet-stream;base64,AAEAAAAPAIAAAwBwRkZUTYdHeHoAAElcAAAAHEdERUYAJwBUAAAe2AAAAB5HUE9TkNtcVAAAHygAACoyR1NVQrj/uP4AAB74AAAAME9TLzJoWmUcAAABeAAAAGBjbWFwtkIacAAAAxAAAAJWZ2FzcP//AAMAAB7QAAAACGdseWY27KOUAAAGCAAAFcRoZWFkFPal0gAAAPwAAAA2aGhlYQU0Ar0AAAE0AAAAJGhtdHiADw6qAAAB2AAAAThsb2Nh5CzfJAAABWgAAACebWF4cACVAEwAAAFYAAAAIG5hbWXeIPPyAAAbzAAAAiJwb3N0ABeZTwAAHfAAAADdAAEAAAABAAAZ9vREXw889QALA+gAAAAA2ZexNAAAAADZl7E0ADL/yQJ2ArwAAAAIAAIAAAAAAAAAAQAAArz/wwAAAqsAAAAAAnYAAQAAAAAAAAAAAAAAAAAAAE4AAQAAAE4ASQAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAAEAbsBkAAFAAACigK7AAAAjAKKArsAAAHfADEBAgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAABYWFhYAEAACgCtArz/wwAAAqkANgAAAAMAAAAAAmQCZAAAACAAAgIPADIAAAAAAU0AAAAAAAAAAAAAALQAAAD3ADUCfQA1AcoANQKrADUCDQA1AX4ANQHYADUBNQA1AcgANQHUADUB8AA1AeEANQHpADUBqQA1AdAANQHpADUCqgA1Af8ANQGaADUB3wA1AbgANQFtADUBbQA1AekANQG8ADUA1QA1AYcANQHBADUBUAA1AhsANQHBADUB4QA1AZYANQH0ADUBxQA1AcUAMgGJADUBwwA1Ad0ANQJ1ADUB9wA1AcoANQF6ADUB3AA1Af8ANQGaADUB3wA1AbgANQFtADUBbQA1AekANQG8ADUA1QA1AYcANQHBADUBUAA1AhsANQHBADUB4QA1AZYANQH0ADUBxQA1AcUAMgGJADUBwwA1Ad0ANQJ1ADUB9wA1AcoANQF6ADUAtAAAAAAAAAAAAAMAAAADAAAAHAABAAAAAAFQAAMAAQAAABwABAE0AAAALgAgAAQADgAAAAoADQAhACYAKgA5AFoAXgB6AKAArQDFAM8A1gDdAOUA7wD2AP0A/wF4//8AAAAAAAoADQAgACMAKgAwAEAAXgBhAKAArQDAAMcA0QDYAOAA5wDxAPgA/wF4//8AAf/5//f/5f/k/+H/3P/W/9P/0f+s/6AAAAAAAAAAAAAAAAAAAAAA/0v+twABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAIAAwADoARABOAF4AaAAAAAAAAAAXABcAFwAXABcAFwAZABsAGwAbABsAHwAfAB8AHwAkACUAJQAlACUAJQAlACsAKwArACsALwAyADIAMgAyADIAMgA0ADYANgA2ADYAOgA6ADoAOgA/AEAAQABAAEAAQABAAEYARgBGAEYASgAAAQYAAAEAAAAAAAAAAQIDAAAEAAAAAAAAAAAAAAAAAAAAAQAABQYABwgJCgAAAAsAAAAAAAwNDg8QERITFBUAAAAAAAAWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAAAAAxAAAyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKSwAAAAAAFxcZGyQlKzIyMjIyMjQ2NjY2Ojo6Oj9AQEBAQEZGRkYAAAAAAAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABMFxclAAAAAAAAAAAAAEovAAAAAAAAAAAAAAAXGxcbGx8fHx8lJQAlKysrAAAAAAAAAAAAAAAAAAAAACgAKAAoACgAKAAoADwAbgC0AQgBbgGQAcYB1AIGAkYCYAKSAtAC4gMoA2ADyAPgBBoEUAR4BI4EogTWBOoE9gUiBToFSAViBXoFqgXWBjAGWgaaBqwG2AbqBwYHIAc2B0wHXgd2B7AH5ggOCCQIOAhsCIAIjAi4CNAI3gj4CRAJQAlsCcYJ8AowCkIKbgqACpwKtgrMCuIK4griAAAABQAyAAAB3QK8AAMABgAJAAwADwAAEyERIRsCCwEREwMhAxMRMgGr/lUcubrGtMG5AXKttQK8/UQCqP7LATX+tgEs/acBGP7MAUn+0QJdAAACADUABQDCAmoAAwAHAAATESMRExUjNcGLi4sCaf5mAZr+KY2NAAAAAgA1AAACSAJkABsAHwAAJQcjNyMHIzcjNzM3IzczNzMHMzczBzMHIwczByc3IwcBthdrFkoXbBdeDl8KYA9fFWwVShVtFWoPagpqDscJSgqqqqqqqmxHbJqamppsR2xsR0cAAAEANf/JAZUCqgAwAAABFR4BByM0LgEjIgYVFBYXHgMVFA4BBxUjNS4BNTMUFjMyNjU0LgInJjU0Njc1ARwwPAF3CBQOExcsPCEwFgkZNyhnPkGDGRQTGBElHBprRzQCqkQNV0INGBIdFB8hGw4tMCkUJkU7EENDCmk8GiUgFBIeGA4LKXpKVxBEAAAABQA1/+8CdgJrAAwAGAAcACkAOAAAEzQ2MzIeARUUBiMiJjcVFBYzMjY1NCYiBiUDIxMDNTQ+ATMyFhQGIyImNxUUHgEzMjY1NC4BIyIGNk02JD0jTTc2TVEeFBUeHiodAWjhVeEtIz0kN01ONjZOUQ4YDRUeDhcOFR4B1j5XKEUoPldXPgEXISEYGCEhcf2dAmP+JgEoRChXfFdWPwEPGhAiGBAbDyIAAwA1AAAB2AJnACQAOQBIAAAlFwcnDgEjIiY1ND4CNyY1NDYzMhYVFA4IBxc3MyciBhUUHgQXPgU1NCYjAxY+ATcnDgUVFBYBmT8qQgdUMk1cDyETFDVTNzdPAwUJBw0HDgUMATUabPULGQQFCgUKAQENBAsEBBYNAQ8bEQRRAQ4ECwUEIbFNZEERMGJKHzMqEhFDQD9ZVjsLFxITDRAJDgULAUFBtRgSBw4LDwcOAQEQBg8LDwcPGf58AQsOB2IBDQUOCg8IGyQAAAAAAQA1ATwBSQJtABEAABMHNxcHFwcnFyM3Byc3JzcXJ+YXVSVnZyhTGE0WUShnZyVWGAJselJLJSVOVXp7Vk4nI0tReQACADUAAAGjAmQAFwAmAAA3NTQ+AzMyHgMdARQOAiMiLgI3FRQeATMyPQE0IyIOAjYZJzIvFxQtMicaIjc9Hh09OiR8CBsXOTkSGAsF4KQxTzEhDQwhMFAypDtaMhkYMlvjrBUkH1isVxEeGgABADUAAAEAAmEABQAAMxEjNTMRhE7KAd6D/Z8AAQA1AAMBkwJmACEAADc1Njc+AzU0JiMiByM+Ajc+AzMyFhUUBgcGBzMVOi5WFxkaCx0XMQJ2AQINDQ4qLCIQTlkjLkAargN3L1kYHCcoFyIhXhsgNxccJxIHbU04WDRHHYEAAAEANQAAAZ8CZAAtAAATNjc2MzIWFRQOAwcWFRQGIyImJyYnMxYXMjY1NC4DKwE1MzI1NCYjIgdDAjktP0RVCw0VCwlca0otVRYVBn4KLhobCg8UDQcsFT0RESQCAaxgMCdfQRcoGBcIBiVpTWwrKCRENgElHRAYCwcCbzsVHjMAAgA1//8BuwJjAAoADQAAITUjNRMzETMVIxUnMzUBDdfadDY20WJrcgGF/oN6a+XAAAAAAAEANf//AawCYwAgAAABFSMHNjMyHgIVFA4CIyIuASczFjMyNjU0JiMiBycTAX+uCxsnKUIlExYrSy8zUS8HfRYjGygkHy4SZSoCYoBSEic+QyEkSkIqL00xJi8hHy80HwFTAAACADUAAAG0AmIAFgAoAAABMhYVFAYjIiYnJjU0PwEzBw4BBzAyNgMyPgE1NC4EIyIGFRQeAQEaO19vTy9QGCksepBYAw4CCA0kEx8TBAgLDxQLHSUVHQGvbF9kgConOV1LVdqUBRYFAv7XFCYXChMSEAwHLyEaJxIAAAAAAQA1//8BdAJjAAYAABMhFQMjEyM2AT6sibS9AmJ3/hUB3wAAAwA1AAABmwJkABkAJAAuAAATNTQ2MhYVFA4BBxYVFA4BIi4BNTQ3LgMXFRQWMjY1NCYiBjcVFBYyNjQmIgZCVqBWFBAMPC1RaFEtPAkLEgpwHjAdHTAeCRskGxskGwG/AUJhYkIeMxINJGU5WjMzWjllJAkNHSbhARgqKhkaKirTARcfHy8fHwAAAAACADUAAAG0AmQAFgAkAAA/AT4BNyYOASMiJjU0NjMyFhcWFRQPARM1NC4BIyIGFRQWMzI2fVgDDQQBCA0EO15uTy9QGCoteSsVHhAcKCUfHiUBlAQWBgEBAWxfZIAqJzldTFXaAYkBGiYSLiIgMi4AAgA1/8wCdQJtADgASAAAAQcGBwYzMjY1NCYjIgYHBh4DFxY3FQYnLgQ3ND4CMzIWFRQGIyInBicuATU0NjMyFhc3BzY1NC4CJyYGHQEUFjc2AfscBAIBFhYmbFVhdgcBBhwtVThNX01cQGlGMBUBLExzQniZWjs3FB07NT1PQBwoBwgqCQIHEg0gKCAUIQG2ux0NGVo8Wm2Laxg2RTcpBAUfWxsCASlBVlsvQHpfOqF8XZBBNwEBWkRIcyAWKMkaIgcQGBEBAz8rAyYjAQIAAAIANQAAAcgCZQAHAAoAADcHIxMzEyMvAge8GG6bYJdvGhknK3JyAmT9nHJz1tYAAAMANQABAWQCaAAPABoAJQAANxEzMhcWFRQHFhUUBw4BIwMzMjc2NTQnJisBFxUzMjc2NTQnJiM2lEAiJC9DJhszNx0mEgkQEAgUJQExFAsVFAoWAgJlKShQUygka1cuIhMBfAYLIB4LBuNwCA4mIgwGAAAAAQA1AAABqQJnACUAACUzDgEjIi4CNTQ+AjMyHgMXIy4DIyIOARUUFjMyPgIBSWAQX0cxSiwWFStLMSM7KB4QA2AFDhQfER4pEi8qFCEUCulrfjNXbD47alk0HzJAPR0SISATNEwsSWcXJxkAAgA1AAABgwJlAA8AGAAAMxEzMh4DFxYVFA4CIwMRMzI1NCcmIzZ/EhcsICYOJBUtTzUiKF4TFzMCZAEMFi4hT29BbFcwAdr+r6dDLjkAAAABADUAAAE3AmUACwAAEyEVIxUzFSMVMxUhNgEBlpGSlv8AAmR4cHmKeQAAAAEANQAAATcCZQAJAAAzESEVIxUzFSMRNgEBmJOTAmR5b3r+/gAAAAABADUAAAG3AmYAIQAAARUmBw4CFRQeAjMyNzY3IzUzFgcGIyIuATU0NjMyFhcBQBQ3FygbEBkgESEWGQVr0wUTMH89WCpiX0haEAGbAUgCASNPOC1FKhUaHDlpZkOyVYlXiaZvWwAAAAEANQAAAYYCZQALAAAzIxEzFTM1MxEjNSOcZmaDZ2eDAmTm5v2c9QABADUAAACgAmUAAwAAMxEzETZpAmT9nAABADUAAAFRAmUAGgAAAREUBwYHBiMiLgMnJjUzFBYVFjMyNzY1EQFQDQ8fJi4IESsgIAUCcQEEGxUHBAJk/pZkLCscIwIRHkEsFxcCDAQzGxAhAZEAAAAAAQA1//8BiwJmAAoAABcRMxETMwMTIwMRNmdzbISTfnABAmb+7AEU/s/+zAEJ/vYAAQA1AAABGgJlAAUAADMRMxEzFTZpewJk/iaKAAEANQAAAeUCZQAMAAAzIxEzGwEzESMTAyMDlmCLTEuMYARZRVgCZP52AYr9nAHK/jYBygABADUAAAGMAmUACQAAGwEDMxEjAxMjEZ2NAWNikwJjAmT+lAFs/ZwBaf6XAmQAAAACADUAAAGsAmUADAAfAAATNDYzMhYVFA4BIyImNxQWMzI+BDU0LgIjIg4BNmRWUWs0VDRWZGgqKg8aEQ0IAwgSIhceJw4BLKGXmJpfjUaelUtjDxohKCcUHzo1IDVKAAACADUAAAFgAmYAEAAbAAATMzIeARcWFRQGBw4BKwEVIxMVMzI3NjU0JyYjNoEjMRoMLhcSFjEtKGRkJRoNGBkOHAJlCxMPO2cvWRkdGMAB3ZMJEi8uEQoAAwA1//8BvwJmABsALgA8AAAlFwYiLgInDgIjIi4BNTQ+ATMyFhUUBx4CAyIOBAc2MzIXFhc2NTQuAQMeAzsBMjcmJyYjIgG9AQINGRgcChMsFBM+VycmWD1Uah0GDQzAERwSDQcCARgVKCIbHQkbLGgGFRUTBgYWDhEOGSAPenkBAggSDRMTAlaGU1GIXK5/ZUkIBwEBZxIgHScLCBEoHzQeLTJOKP7/HCgQCQwiFSMAAAAAAgA1//8BjwJmAA0AGgAAJRcjJxUjETMXFhcWFRQnNjU0LgInKwEVMzIBDYF+cGpqOi4UW4QYCxARBQY1Lhb7++vqAmQBBQosgohEFyoVHg4IAZkAAQAyAAABjwJnACsAADczFBY3NjU0JicuAycmPgEzMhYXIy4DIyIGFRQWFx4BFRQOAiMiJjZ2JBIyJjwRICobAQE0TSs5WQp0AQMJEg0RHCdBQTEUJkQsXFbFKx8BBDgWIB4JFyg7ITlVKFRbCwwTCh0UFSIkJEc2JUE3IGkAAAABADUAAAFTAmUABwAAMxEjNSEVIxGLVQEdVQHseHj+FAAAAAABADUAAAGNAmUAGgAAEzMRFBceATI2NzY1ETMRFA4BBwYjIiYnLgE1NmsIBR8qHgUIagcQDjBUIk0ZGQwCZP6WLhsSGBYQFzUBa/6WM0MvFEEcJCZISwAAAQA1AAABpwJlAAYAADMDMxsBMwO2gGdQUWmAAmT+UwGt/ZwAAQA1AAACQAJkAAwAADMDMxsBMxsBMwMjCwGfaWk4PFA8OGhrWz4+AmP+cwGN/nEBj/2dAYz+dAABADUAAAHBAmUACwAAMxMDMxc3MwMTIycHNop6c0NCcnmJc1VRAUYBHq6u/t/+vdnZAAAAAQA1AAABlAJlAAkAADczAzMXNzMDFSOsAXdvQUFtd3HrAXn29v6H6wAAAAABADUAAAFDAmYACQAAAQMzFSE1EyM1IQFDiIj+85OTAQ0B5v6kimcBdYkAAAEANQFFAaYCagAGAAAbATMTIycHNnx3fYE4NwFFAST+3LOzAAIANQAAAcgCZQAHAAoAADcHIxMzEyMvAge8GG6bYJdvGhknK3JyAmT9nHJz1tYAAAMANQABAWQCaAAPABoAJQAANxEzMhcWFRQHFhUUBw4BIwMzMjc2NTQnJisBFxUzMjc2NTQnJiM2lEAiJC9DJhszNx0mEgkQEAgUJQExFAsVFAoWAgJlKShQUygka1cuIhMBfAYLIB4LBuNwCA4mIgwGAAAAAQA1AAABqQJnACUAACUzDgEjIi4CNTQ+AjMyHgMXIy4DIyIOARUUFjMyPgIBSWAQX0cxSiwWFStLMSM7KB4QA2AFDhQfER4pEi8qFCEUCulrfjNXbD47alk0HzJAPR0SISATNEwsSWcXJxkAAgA1AAABgwJlAA8AGAAAMxEzMh4DFxYVFA4CIwMRMzI1NCcmIzZ/EhcsICYOJBUtTzUiKF4TFzMCZAEMFi4hT29BbFcwAdr+r6dDLjkAAAABADUAAAE3AmUACwAAEyEVIxUzFSMVMxUhNgEBlpGSlv8AAmR4cHmKeQAAAAEANQAAATcCZQAJAAAzESEVIxUzFSMRNgEBmJOTAmR5b3r+/gAAAAABADUAAAG3AmYAIQAAARUmBw4CFRQeAjMyNzY3IzUzFgcGIyIuATU0NjMyFhcBQBQ3FygbEBkgESEWGQVr0wUTMH89WCpiX0haEAGbAUgCASNPOC1FKhUaHDlpZkOyVYlXiaZvWwAAAAEANQAAAYYCZQALAAAzIxEzFTM1MxEjNSOcZmaDZ2eDAmTm5v2c9QABADUAAACgAmUAAwAAMxEzETZpAmT9nAABADUAAAFRAmUAGgAAAREUBwYHBiMiLgMnJjUzFBYVFjMyNzY1EQFQDQ8fJi4IESsgIAUCcQEEGxUHBAJk/pZkLCscIwIRHkEsFxcCDAQzGxAhAZEAAAAAAQA1//8BiwJmAAoAABcRMxETMwMTIwMRNmdzbISTfnABAmb+7AEU/s/+zAEJ/vYAAQA1AAABGgJlAAUAADMRMxEzFTZpewJk/iaKAAEANQAAAeUCZQAMAAAzIxEzGwEzESMTAyMDlmCLTEuMYARZRVgCZP52AYr9nAHK/jYBygABADUAAAGMAmUACQAAGwEDMxEjAxMjEZ2NAWNikwJjAmT+lAFs/ZwBaf6XAmQAAAACADUAAAGsAmUADAAfAAATNDYzMhYVFA4BIyImNxQWMzI+BDU0LgIjIg4BNmRWUWs0VDRWZGgqKg8aEQ0IAwgSIhceJw4BLKGXmJpfjUaelUtjDxohKCcUHzo1IDVKAAACADUAAAFgAmYAEAAbAAATMzIeARcWFRQGBw4BKwEVIxMVMzI3NjU0JyYjNoEjMRoMLhcSFjEtKGRkJRoNGBkOHAJlCxMPO2cvWRkdGMAB3ZMJEi8uEQoAAwA1//8BvwJmABsALgA8AAAlFwYiLgInDgIjIi4BNTQ+ATMyFhUUBx4CAyIOBAc2MzIXFhc2NTQuAQMeAzsBMjcmJyYjIgG9AQINGRgcChMsFBM+VycmWD1Uah0GDQzAERwSDQcCARgVKCIbHQkbLGgGFRUTBgYWDhEOGSAPenkBAggSDRMTAlaGU1GIXK5/ZUkIBwEBZxIgHScLCBEoHzQeLTJOKP7/HCgQCQwiFSMAAAAAAgA1//8BjwJmAA0AGgAAJRcjJxUjETMXFhcWFRQnNjU0LgInKwEVMzIBDYF+cGpqOi4UW4QYCxARBQY1Lhb7++vqAmQBBQosgohEFyoVHg4IAZkAAQAyAAABjwJnACsAADczFBY3NjU0JicuAycmPgEzMhYXIy4DIyIGFRQWFx4BFRQOAiMiJjZ2JBIyJjwRICobAQE0TSs5WQp0AQMJEg0RHCdBQTEUJkQsXFbFKx8BBDgWIB4JFyg7ITlVKFRbCwwTCh0UFSIkJEc2JUE3IGkAAAABADUAAAFTAmUABwAAMxEjNSEVIxGLVQEdVQHseHj+FAAAAAABADUAAAGNAmUAGgAAEzMRFBceATI2NzY1ETMRFA4BBwYjIiYnLgE1NmsIBR8qHgUIagcQDjBUIk0ZGQwCZP6WLhsSGBYQFzUBa/6WM0MvFEEcJCZISwAAAQA1AAABpwJlAAYAADMDMxsBMwO2gGdQUWmAAmT+UwGt/ZwAAQA1AAACQAJkAAwAADMDMxsBMxsBMwMjCwGfaWk4PFA8OGhrWz4+AmP+cwGN/nEBj/2dAYz+dAABADUAAAHBAmUACwAAMxMDMxc3MwMTIycHNop6c0NCcnmJc1VRAUYBHq6u/t/+vdnZAAAAAQA1AAABlAJlAAkAADczAzMXNzMDFSOsAXdvQUFtd3HrAXn29v6H6wAAAAABADUAAAFDAmYACQAAAQMzFSE1EyM1IQFDiIj+85OTAQ0B5v6kimcBdYkAAAAAEADGAAEAAAAAAAEACAASAAEAAAAAAAIABwArAAEAAAAAAAMAFQBfAAEAAAAAAAQACACHAAEAAAAAAAUAIgDWAAEAAAAAAAYADwEZAAEAAAAAABAACAE7AAEAAAAAABEABwFUAAMAAQQJAAEAEAAAAAMAAQQJAAIADgAbAAMAAQQJAAMAKgAzAAMAAQQJAAQAEAB1AAMAAQQJAAUARACQAAMAAQQJAAYAHgD5AAMAAQQJABAAEAEpAAMAAQQJABEADgFEAFYAZQBnAGUAbQBpAHQAZQAAVmVnZW1pdGUAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAADEALgAwADAAMgA7AFYAZQBnAGUAbQBpAHQAZQBSAGUAZwB1AGwAYQByAAAxLjAwMjtWZWdlbWl0ZVJlZ3VsYXIAAFYAZQBnAGUAbQBpAHQAZQAAVmVnZW1pdGUAAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADIAOwBGAG8AbgB0AHMAZQBsAGYAIABNAGEAawBlAHIAIAAzAC4AMwAuADAAAFZlcnNpb24gMS4wMDI7Rm9udHNlbGYgTWFrZXIgMy4zLjAAAFYAZQBnAGUAbQBpAHQAZQBSAGUAZwB1AGwAYQByAABWZWdlbWl0ZVJlZ3VsYXIAAFYAZQBnAGUAbQBpAHQAZQAAVmVnZW1pdGUAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAAAAAgAAAAAAAP+DADIAAAAAAAAAAAAAAAAAAAAAAAAAAABOAAAAAQACAQIBAwADAAQABgAHAAgACQANABMAFAAVABYAFwAYABkAGgAbABwAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0AQQBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0ArAEECWNvbnRyb2xMRgljb250cm9sQ1IKc29mdGh5cGhlbgAAAAAAAAH//wACAAEAAAAMAAAAFgAAAAIAAQABAE0AAQAEAAAAAgAAAAAAAQAAAAoALAAuAAJERkxUAA5sYXRuABgABAAAAAD//wAAAAQAAAAA//8AAAAAAAAAAQAAAAoAMAA+AAJERkxUAA5sYXRuABoABAAAAAD//wABAAAABAAAAAD//wABAAAAAWtlcm4ACAAAAAEAAAABAAQAAgAAAAEACAABKd4ABAAAAEYAlgEwAd4CjAM2A+AEegUsBWYGDAa+B3AIHgjQCYIKNAriC4gMAgx0DOYNZA3mDlQOyg88D54QEBCGEQARchHsEmIS1BOWFAwUghTwFWIV1BaiFxQXkhgEGMYZdBomGtQbfhwYHL4dYB3+HpgfPh/oIJYhPCHmIpQjRiPsJJolSCXuJpQnQifoKJIpRAAmAAn/8QAK//sADP/7AA3/+wAO//sAD//7ABD/+wAR//sAEv/7ABP/+wAU//sAFf/xABb/8QAZ//sAHf/2AB7/+wAf//sAIP/xACH/+wAi//sAI//7ACT/+wAl//EAJv/2ACf/8QAo//sAKf/2ACr/+wAr//sALP/sAC3/7AAu/+IAL//dADD/9gAx/+wAMv/7ADP/+wA0//YAKwAG//EACP/nAAn/4gAK/9MAC//iAAz/9gAN/+IADv/sAA//4gAQ/9gAEf/iABL/1QAT//EAFP/nABX/8QAW/9gAMf/TADL/pgAz//MANP/nADX/8QA2//EAN//7ADj/7gA5//YAOv/7ADv/2AA8//EAPf/2AD7/9gA///EAQP/sAEH/+wBC/+wAQ//xAET/7ABF/+wARv/2AEf/3QBI/90ASf/EAEr/zgBL//YAKwAG//YAB//2AAn/3QAL/+wADP/sAA3/8QAO//YAD//sABD/8QAR/+wAEv/iABP/5wAU/+wAFf/dABb/7AAX/78AMf/YADL/sAAz/+IANP/iADX/8QA2/+cAN//xADj/3QA5/+wAOv/2ADv/4gA8//EAPf/xAD7/8QA///YAQP/YAEH/9gBC/+cAQ//sAET/7ABF/+wARv/xAEf/zgBI/9MASf/OAEr/zgBL/+wAKgAG//YAB//iAAj/4gAK/+IADP/dAA3/ugAO/+IAD//iABD/5wAR/+IAEv/dABP/yQAU/90AFf+mABb/0wAx/5gAMv/YADP/4gA0/9MANf/xADb/7AA3/+wAOP/iADn/7AA6//EAO//dADz/5wA9/+wAPv/sAD//5wBA/9gAQf/sAEL/zgBD/+wARP/YAEX/tQBG/90AR/+hAEj/oQBJ/8QASv+DAEv/7AAqAAb/8QAH/90ACP/YAAn/oQAL/8kADP/iAA3/sAAO/+cAD//YABD/4gAR/90AEv/bABP/4gAU/+IAFf/TABb/5wAg/+QAMf/nADL/3AAz//QANP/rADX/9AA2//IAN//4ADj/8AA5//QAOv/1ADv/7AA8/+oAPf/7AD7/9wA///IAQP/tAEH/+wBC/+IAQ//2AET/4wBF/7YARv/vAEf/pgBK/6MAS//yACYAB//TAAj/8QAK/84ADP/dAA3/9gAO//EAD//dABD/pgAR/8kAEv+6ABP/7AAU/90AFf/OADH/xAAy/5IAM//sADT/3QA1/+cANv/xADf/9gA4/90AO/9WADz/5wA9//EAPv/sAD//5wBA/84AQf/dAEL/0wBD/+cARP/nAEX/5wBG/+cAR//dAEj/2ABJ/7oASv/JAEv/4gAsAAb/+wAH//sACP/xAAn/zgAK/+cAC//dAAz/9gAN/9gADv/tAA//7AAQ/+kAEf/rABL/3QAT/90AFP/hABX/3QAW/90AMf/nADL/vwAz/+cANP/nADX/8QA2//EAN//sADj/5wA5//YAOv/2ADv/4gA8//EAPf/2AD7/+wA///sAQP/2AEH/+wBC/+wAQ//7AET/7ABF/9MARv/7AEf/yQBI/84ASf+wAEr/xABL/+cADgAG//sACf/xAAv/7AAN//sADv/7AA8AAAAR//EAEv/0ABP/9gAU//EAFf/xABb/7AAx//YAQP/2ACkABv/7AAf/9gAI//sACf/iAAr/5wAL/+wADP/vAA3/3QAO//sAD//qABD/8QAR/+wAEv/nABP/8QAU/+cAFf/iABb/7AAx/+cAMv/vADP//AA0/+cANf/7ADb//gA4//EAOf/8ADr//AA7/+kAPP/6AD3//QA+//4AP//7AEL/6gBD//0ARP/2AEX/7ABG//EAR//YAEj/4gBJ/+wASv/LAEv//AAsAAb/+wAH//EACP/2AAn/0wAK/+IAC//JAAz/5wAN/90ADv/iAA//7AAQ/+cAEf/sABL/3QAT/9MAFP/iABX/zgAW/+cAMf/YADL/xAAz/+wANP/dADX/6AA2//EAN//xADj/4wA5//EAOv/2ADv/7AA8/+wAPf/sAD7/9gA//+wAQP/iAEH/8QBC/90AQ//nAET/5wBF/8QARv/mAEf/xABI/8kASf+1AEr/rQBL/+IALAAG//sAB//7AAj/9gAJ/9MACv/2AAv/ugAM/+kADf/dAA7/9gAP/+wAEP/2ABH/8AAS//EAE//2ABT/5wAV/9gAFv/sADH/vwAy/9UAM//eADT/3wA1//EANv/xADf/9gA4/+IAOf/xADr/9gA7/+wAPP/xAD3/9gA+//EAP//2AED/2ABB//EAQv/nAEP/9gBE/+cARf/TAEb/8QBH/9gASP/YAEn/xgBK/78AS//xACsABv/7AAf/9gAI/+wACf/TAAr/5wAL/90ADP/lAA3/zgAO/90AD//dABD/7AAR/+IAEv/iABP/2AAU/+IAFf/JABb/5wAx/90AMv/EADP/6wA0/+EANf/wADb/8AA4/9wAOf/dADr/7AA7/9gAPP/sAD3/5wA+/+wAP//iAED/0wBB/+IAQv/YAEP/4gBE/84ARf/JAEb/4gBH/8kASP/OAEn/vwBK/8kAS//TACwABv/7AAf/3wAI/+cACf+wAAr/4wAL/8kADP/dAA3/xwAO/+cAD//dABD/7AAR/+cAEv/iABP/yQAU/9cAFf+/ABb/4gAa/+kAMf/YADL/uwAz/+EANP/dADb/6wA3//MAOP/lADn/8QA6//IAO//eADz/5wA9/+4APv/zAD//8ABA/+IAQf/2AEL/6gBD//YARP/kAEX/zABG/+8AR/+0AEj/uwBJ/64ASv+vAEv/5QAsAAb/+wAH/90ACP/nAAn/4gAK/9MAC//nAAz/3QAN//YADv/eAA//3QAQ/7AAEf/OABL/sAAT//sAFP/dABX/0wAW/9MAMf/iADL/iAAz//YANP/OADX/9gA2//EAN//xADj/0wA5//YAOv/zADv/gAA8//EAPf/7AD7/+wA///YAQP/OAEH/7gBC/84AQ//2AET/2ABF//sARv/2AEf/5wBI/+cASf/TAEr/4gBL/+wALAAG//sAB//2AAj/8QAJ/9gACv/nAAv/3QAM/+IADf/dAA7/4gAP/+IAEP/nABH/5wAS/9gAE//YABT/3QAV/84AFv/sADH/5wAy/78AM//nADT/2AA1/+cANv/nADf/7AA4/90AOf/sADr/7AA7/+cAPP/sAD3/8QA+/+wAP//xAED/4gBB//EAQv/dAEP/5wBE/+IARf/YAEb/5wBH/78ASP/HAEn/sABK/7UAS//dACsABv/xAAf/8QAI/+IACf/dAAr/0wAL/+IADP/iAA3/3QAO/+cAD//dABD/zgAR/9MAEv/EABP/0wAU/84AFv/dADH/4gAy/6EAM//jADT/3QA1/+wANv/sADf/5wA4/90AOf/nADr/8QA7/78APP/xAD3/9gA+/+wAP//nAED/3QBB/+cAQv/nAEP/5wBE/+IARf/OAEb/3QBH/8QASP/JAEn/lwBK/7oAS//YACkABv/sAAf/0wAI/90ACf/OAAr/3QAM/90ADf/EAA7/5wAP/9gAEP/YABH/3QAS/9MAE//YABT/4gAV/90AMf/sADL/wAAz/+8ANP/kADX/6wA2//AAN//2ADj/5AA5//EAOv/uADv/1gA8//QAPf/2AD7/8QA///AAQP/dAEH/7ABD/+gARP/YAEX/1QBG/+wAR/+3AEj/wwBJ/7UASv+wAEv/5gAeAAf/zgAi/+4AI//5ACT/7wAy/9AAM//pADT/sQA1/+sANv/nADf/5gA4/7oAOf/vADr/9wA7/9AAPP/sAD3/6wA+/+YAP//sAED/uwBB/+kAQv+7AEP/5ABE/9QARf+6AEb/0ABH/34ASP+SAEn/zQBK/5sAS//nABwAF//RACT//wAy/9EAM//uADT/5wA1/+8ANv/3ADf/7gA4/+gAOf/3ADr/+wA7/9oAPP/vAD3/9wA+/+4AP//vAED/4QBB//cAQv/nAEP/7wBE/+4ARf/QAEb/9wBH/8EASP/MAEn/wwBK/7sAS//nABwAF//QABv/+QAy/8EAM//zADT/6wA1//sANv/zADf/+wA4/+8AOf/zADr//gA7/+EAPP/vAD3/9wA+//kAP//3AED/4gBB//kAQv/jAEP/8wBE/+YARf/VAEb/+QBH/84ASP/JAEn/twBK/8EAS//rAB8ABv/7ABL/3wAX/8kAJf/5ACv/7wAy/7oAM//zADT/6wA1/+8ANv/uADf/8wA4/+oAOf/vADr/7wA7/9QAPP/5AD3//gA+//EAP//vAED/4wBB//MAQv/mAEP/7gBE/+cARf/XAEb/6wBH/8kASP/JAEn/twBK/7cAS//nACAABv/7ACQAAgAl/+8AJ//5AC3//gAv//4AMv/oADP//QA0/+sANf/7ADb/+gA3//sAOP/jADn/9wA6//oAO//kADz//wA9//0APv/+AD8AAABA/+gAQf/7AEL/6ABD//sARP/sAEX/8QBG//sAR//qAEj/6wBJ/+cASv/qAEv/+QAbAAb/+wAl/+8AMv+5ADP/+wA0/+8ANf/7ADb/+wA3//0AOP/vADn/+wA6AAAAO/+7ADz//gA9//4APv/7AED/7ABB//4AQv/nAEP/+QBE//kARf/7AEb/+QBH//MASP/rAEn/4gBK/+8AS//7AB0ABv/2ABf/zgAl/+8AMv+3ADP/9wA0/+sANf/3ADb/8QA3//kAOP/uADn/8wA6//sAO//YADz/8wA9/+4APv/3AD//8wBA/+MAQf/3AEL/6QBD/+8ARP/nAEX/1ABG/+8AR//JAEj/zABJ/6YASv/JAEv/3AAcAAb/+wAX//MAJf/7ADL/6wAz//4ANP/uADX/+wA2//4AN//+ADj/8wA5//0AOv/+ADv/7gA8//4APf/+AD7/+wA///4AQP/uAEL/9wBD//4ARP/+AEX/+QBG//4AR//uAEj/9wBJ/+4ASv/zAEv//gAYAAb/+wAx//YAMv/rADP//wA0//MANf//ADYAAQA3//8AOP/zADv/6AA8//4APf/+AD4AAQBA/+4AQf//AEL/8wBD//4ARP/4AEX//QBH/+wASP/3AEn/7ABK//EASwABABwABv/2ABf/4QAy/8oAM//9ADT/+QA1//4ANv/7ADf//gA4//MAOf/+ADr//wA7/+EAPP/7AD3//gA+//4AP//+AED/7wBB//4AQv/zAEP//gBE//sARf/7AEb//gBH/+8ASP/5AEn/2gBK//oAS//+AB0ABv/nABf/5wAx/7AAMv/hADP/7gA0/7QANf/rADb/5wA3/+4AOP+sADn/6wA6//kAO/+3ADz/6gA9/+8APv/nAD//5wBA/6wAQf/uAEL/rgBD/+cARP+8AEX/3ABG/9oAR//cAEj/0QBJ/9oASv/RAEv/7wAeAAb/9gAX//cAI//9ADH/vwAy/+4AM//5ADT/2gA1//4ANv/3ADf/+wA4/9oAOf/3ADr/+wA7/+cAPP/7AD3/+QA+//cAP//5AED/1ABB//sAQv/cAEP/9wBE/+8ARf/JAEb/6wBH/8QASP++AEn/5wBK/8EAS//+ABwAF//7ADH/7AAy/+QAM//+ADT/7gA1//4ANgAAADf//QA4//cAOf/7ADr//gA7/+4APP/+AD3//gA+//0AP//7AED/7wBB//4AQv/uAEP//gBE//cARf/7AEb/+QBH/+gASP/vAEn/6wBK/+gAS//+AB4ABv/7ABf/8wAa//4AHf/3ACX/9wAq//4AMf/2ADL/5AAz//0ANP/zADX/+wA2//4AN//+ADj/+QA7/+4APf/+AD7/+wA///4AQP/2AEH/+gBC/+4AQ//7AET/+QBF//sARv/+AEf/8wBI/+8ASf/zAEr/6wBL//4AHQAG//EAJP/3ADH/7AAy/7sAM//sADT/4wA1/+8ANv/vADf/9wA4/+QAOf/qADr/9wA7/98APP/vAD3/9wA+/+sAP//uAED/4wBB/+4AQv/mAEP/7wBE/+IARf/VAEb/7gBH/8MASP/GAEn/uwBK/7oAS//fABwABv/sACT//gAy/54AM//rADT/6gA1//EANv/rADf/9wA4/+MAOf/oADr/9wA7/64APP/sAD3/8QA+/+wAP//sAED/4QBB//MAQv/oAEP/5ABE/9gARf/kAEb/7gBH/9EASP/QAEn/uwBK/8QAS//zADAAF//3ABj//wAZ/+kAGv//ABv//QAc//4AHf/pAB7/+wAf//8AIP/iACH//gAi//8AI//+ACT//wAl/+IAJ//uACj//gAp/+cAKv/hACv/+QAs/8MALf/QAC7/5AAv/8wAMP//ADL/4QAz//4ANP/jADX/9wA3//kAOP/fADn/9wA7/+IAPP/5AD3/+gA+//EAP//6AED/2gBB/+8AQv/aAET/7wBF/9cARv/qAEf/xgBI/7sASf/qAEr/tABL//sAHQAG/+cAF//oACT/+gAy/+IAM//xADT/zAA1/+8ANv/sADf/+gA4/8wAOf/3ADr/8wA7/8kAPP/uAD3/7wA+/+wAP//rAED/yQBB//cAQv/MAEP/+ABE/9QARf/KAEb/2gBH/8EASP/EAEn/4gBK/7cAS//vAB0ABv/xABv/+QAl/+4AMv+8ADP/7wA0/9wANf/zADb/6AA3//cAOP/hADn/5gA6//MAO//aADz/6QA9//MAPv/pAD//6wBA/+MAQf/3AEL/2gBD/+kARP/rAEX/1ABG/+kAR//JAEj/zABJ/7QASv+7AEv/5wAbAAb/9gAy/6YAM//9ADT/0wA1//oANv/+ADf//QA4/9UAOf/3ADr//wA7/7kAPP/6AD3//gA+//sAP//7AED/0ABB//oAQv/XAEP/+QBE/+IARf/zAEb/9wBH/+8ASP/vAEn/6gBK/+cAS//6ABwABv/7ACQAAgAy/9UAM//7ADT/7wA1//cANv/9ADf//wA4/+4AOf/7ADr//wA7/+sAPP/+AD3//gA+//0AP//6AED/7gBB//sAQv/sAEP/+wBE/+8ARf/7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ABX/3QAx//YAMv+5ADP/+AA0/+MANf/3ADb/+AA3//kAOP/iADn/+gA6//0AO//OADz//QA9//4APv/5AD///ABA/+YAQv/jAEP/9wBE/+YARf/vAEb//gBH/+cASP/vAEn/0QBK/+YAS//9ACgAB//2AAj/4gAJ/90ACv/sAAv/4gAM/+gADf/iAA7/9QAP/+gAEP/dABH/4AAS/+YAE//OABT/4gAV/90AJP/7ADH/9gAy/8EAM//vADT/3wA2//QAN//4ADj/4wA5/+kAOv/6ADv/0QA8/+YAPf/zAD7/6QA///EAQP/qAEL/3ABD/+gARP/fAEb/+ABH/7sASP+7AEn/rwBK/68AS//jACcACP/xAAn/7AAK//gADP/2AA7/9wAP//YAEP/xABH/5wAS/+cAE//xABT/7AAV/+UAMf/2ADL/6AAz//kANP/qADX/+wA2//oAN//7ADj/6wA5//cAOv//ADv/4wA8//sAPf/+AD7/+wA///oAQP/sAEH/+gBC/+MAQ//5AET/7wBF/+oARv/7AEf/4wBI/+wASf/jAEr/6gBL//4AJgAH//sACP/7AAn/5wAK//oADP/2AA7/9gAP//YAEP/xABH/8QAS//IAE//xABT/5wAV//EAMv/nADP/+wA0//EANf/9ADb//gA3//4AOP/uADn/+wA6//4AO//oAD0AAAA+//sAP//+AED/7wBB//4AQv/qAEP//wBE//EARf/3AEb/+wBH/+YASP/3AEn/2gBK/+QAS//7ACkAB//2AAj/9gAJ/90ACv/yAAz/8QAO//EAD//wABD/6gAR/+wAEv/mABP/9AAU/+wAFf/rABf/zgAx//YAMv/OADP/7wA0/+oANf/5ADb//gA3//0AOP/oADn/+QA6//0AO//YADz//gA9//8APv/6AD//+QBA/+4AQf/5AEL/4wBD//gARP/qAEX/+QBG//oAR//pAEj/6QBJ/9UASv/rAEv/+gAqAAf/sgAI/8kACf+wAAr/ugAL/7UADP+1AA3/3QAO/+QAD/+6ABD/sgAR/7UAEv+xABP/4gAU/6sAFf+mADH/lwAy/9oAM//jADT/qwA1/+IANv/iADf/4wA4/5oAOf/XADr/7gA7/7QAPP/kAD3/6wA+/+4AP//mAED/rQBB/+8AQv+qAEP/6gBE/74ARf/XAEb/2gBH/9AASP/SAEn/1QBK/80AS//qACsAB//nAAj/8QAJ/6YACv/sAAv/nAAM/90ADf+6AA7/9gAP/+IAEP/sABH/3QAS/9oAE//sABT/3QAV/8QAJP/+ADH/pgAy/+sAM//vADT/ygA1//0ANv/zADf/+wA4/9MAOf/vADr/+wA7/9gAPP/3AD3/9wA+//EAP//7AED/1QBB//cAQv/PAEP/8wBE/+YARf+7AEb/5wBH/7UASP/JAEn/2gBK/6UAS//zACkAB//2AAn/7AAK//kAC//sAAz/9gAO//oAD//2ABD/7AAR/+cAEv/vABP/9gAU//EAFf/sABcAAQAx/+YAMv/pADP/+QA0/+oANf/zADb/+wA3//oAOP/nADn/9wA6//4AO//uADz/+QA9//oAPv/7AD//+QBA/+8AQf/3AEL/6QBD//oARP/sAEX/8wBG//gAR//pAEj/6QBJ/+MASv/nAEv//QAqAAf/9gAI//sACf/sAAr/9wAL/+wADP/7AA7/+gAP//EAEP/2ABH/7AAS//EAE//2ABT/9gAV/+QAFwABADH/8QAy/+kAM//3ADT/6QA1//kANv/5ADf/+QA4/+8AOf/6ADr//gA7/+8APP/7AD3/+gA+//oAP//4AED/7wBB//sAQv/rAEP//QBE/+8ARf/3AEb/+gBH/+4ASP/rAEn/4QBK/+wAS//5ACsAB//xAAj/4gAJ/9gACv/sAAv/2AAM//YADf/iAA7/8QAP/90AEP/iABH/0wAS/+IAE//JABT/4gAV/94AJP/7ADH/3QAy/7QAM//pADT/4QA1/+wANv/vADf/6gA4/+IAOf/qADr/+gA7/9oAPP/pAD3/6wA+/+wAP//pAED/4QBB/+sAQv/cAEP/6wBE/+IARf/JAEb/7gBH/7wASP/BAEn/pgBK/7UAS//kACwAB//iAAj/5wAJ/+IACv/OAAv/2AAM/+cADf/nAA7/8AAP/90AEP+6ABH/xAAS/9cAE//XABT/2AAV/9gAG//3ACT/+wAx/+IAMv+gADP/6QA0/+MANf/mADb/7wA3/+sAOP/aADn/6AA6//YAO/+xADz/6wA9/+4APv/oAD//7wBA/9oAQf/oAEL/1wBD/+MARP/aAEX/2ABG/+cAR//PAEj/yQBJ/7kASv/BAEv/6AApAAf/8QAI/+wACf/OAAr/6gAL/84ADP/nAA3/2AAO//YAD//fABD/4gAR/9gAEv/lABP/5wAU/+IAFf/YADH/4gAy/+cAM//3ADT/2gA1//gANv/5ADf/+wA4/9wAOf/3ADr//gA7/+MAPP/3AD3//QA+//cAP//3AED/1QBC/9UAQ//9AET/6QBF/+EARv/pAEf/ugBI/8QASf/aAEr/wgBL//sAKwAH/8kACP/YAAn/xAAK/9MAC/+/AAz/yQAN/9gADv/nAA//xAAQ/7oAEf+1ABL/wQAT/9gAFP+6ABX/vwAk//sAMf+/ADL/2gAz/+gANP/KADX/6QA2/+kAN//oADj/xgA5/+QAOv/nADv/uQA8/+wAPf/uAD7/6QA//+cAQP/GAEH/7ABC/8kAQ//mAET/2ABF/84ARv/VAEf/wQBI/7wASf/GAEr/tABL/+8AKwAH//EACP/2AAn/yQAK/+oAC//TAAz/3QAN/+cADv/sAA//4gAQ/+IAEf/YABL/3wAT/90AFP/dABX/2AAk//sAMf/nADL/xgAz//MANP/iADX/7wA2/+4AN//3ADj/4wA5/+kAOv/vADv/1wA8/+4APf/zAD7/6gA//+0AQP/kAEH/9wBC/98AQ//qAET/5wBF/9AARv/vAEf/yQBI/9AASf/PAEr/xABL/+8AKQAH/+cACP/sAAn/5wAK/+kAC//dAAz/2AAO/+wAD//XABD/qwAR/8kAEv/AABP/9gAU/9MAFf/OADH/2AAy/7AAM//5ADT/2gA1//0ANv/6ADf//gA4/98AOf/3ADr//QA7/8YAPP/7AD3//gA+//gAP//4AED/1QBB//0AQv/VAEP/+ABE/+MARf/zAEb/+QBH/+4ASP/zAEn/4gBK/+cAS//zACkACP/2AAn/5wAK//QAC//sAAz/+wAN//4ADv/2AA//5QAQ/+wAEf/nABL/8wAT//EAFP/nABX/3QAx/+QAMv/KADP/+QA0/+wANf/6ADb/+gA3//sAOP/vADn/+gA6AAAAO//hADz//wA9//0APv/5AD///gBA/+wAQf/7AEL/7ABD//sARP/vAEX/9wBG//sAR//zAEj/6gBJ/+EASv/jAEv/+wArAAf/zgAI/84ACf/YAAr/ygAL/9gADP/JAA3/+wAO/9kAD//JABD/ogAR/7oAEv+5ABP/5wAU/8QAFf+9ACT/+wAx/7oAMv+FADP/+wA0/7sANf/qADb/6wA3/+wAOP++ADn/5gA6/+8AO/+iADz/6AA9/+oAPv/sAD//7wBA/8MAQf/mAEL/uwBD/+YARP/KAEX/6QBG/+8AR//jAEj/3wBJ/9MASv/hAEv/6wApAAf/zgAI/84ACf/TAAv/2AAM/84ADv/eAA//xAAQ/7AAEf/TABL/sQAT/+wAFP/FABX/yQAk//sAMf/JADL/lQAz//MANP/BADX/+QA2//MAN//3ADj/xgA5//sAOv/3ADv/pQA8/+8APf/+AD7/7gA//+oAQP/DAEH/7gBC/8QAQ//vAET/0ABF/+4ARv/uAEf/6QBI/+QASf/aAEr/5gBL//cAKgAH/8QACP/OAAn/pgAL/7oADP+rAA3/3QAO/+cAD/+5ABD/twAR/8QAEv+zABP/0wAU/7AAFf+cACT/+wAx/6EAMv/aADP/4wA0/7cANf/4ADb/4wA3//0AOP+3ADn/7gA6/+8AO/+7ADz/7gA9//EAPv/jAD//6ABA/7oAQf/zAEL/uQBD/+sARP/OAEX/3wBG/+EAR//aAEj/2ABJ/9gASv/MAEv/7gAsAAf/yQAI/84ACf/JAAr/wgAL/8kADP/JAA3//gAO/8kAD/+6ABD/jQAR/7oAEv+gABP/4gAU/7UAFf+6AB7/8QAk//sAMf+1ADL/lwAz/+8ANP+7ADX/5gA2/+4AN//uADj/uQA5/+gAOv/3ADv/hAA8/+8APf/sAD7/7AA//+oAQP+6AEH/7ABC/7kAQ//pAET/ygBF/+8ARv/vAEf/6ABI/+kASf/fAEr/5ABL//EAJgAH//YACf/iAAr/7AAL/+cADP/iAA3//wAO//UAD//nABD/7AAR/+IAEv/gABP/7AAU/90AFf/TADH/4gAy/+sAM//+ADT/6AA1//4ANgAEADf//wA4/9wAOf/6ADv/5gA8//8APf//AD///QBA/+MAQf//AEMAAABE/+8ARf/4AEb/+wBH//cASP/rAEn/6QBK/+kAS//9AAIAAQAGAEsAAAAAAAAAAQAAAADUGBYRAAAAANmXsTQAAAAA2ZexNA==";class ao extends xA{constructor(){super(...arguments),this.moduleName="Vegemite"}svgPreview(t,e){return this.svgElement(t,e)}svgPrint(t,e){return this.svgElement(t,e)}svgElement(t,e){const A=gA(Ao),i=t!==""?(f=>f.charAt(0).toUpperCase()+f.substr(1).toLowerCase())(t):"",s=A.getPath(i,0,72,72),o=s.toSVG(2),r=s.getBoundingBox(),c=r.x2-r.x1,l=s.toPathData(3),g=()=>{const f=U("g");f.classList.add("module-text-group");const p=U("defs");f.appendChild(p),p.appendChild(nn(0,2,2,"shadow"));const Q=U("path");Q.setAttribute("d",l),Q.setAttribute("stroke","black"),Q.setAttribute("stroke-width","3"),p.appendChild(Q);const I=U("g");I.classList.add("module-layer0"),f.appendChild(I),I.setAttribute("filter","url(#shadow)"),I.innerHTML=Q.outerHTML;const D=U("g");D.classList.add("module-layer1"),f.appendChild(D),D.setAttribute("stroke-width","3"),D.setAttribute("stroke","rgb(45,41,38)"),D.setAttribute("fill","rgb(45,41,38)"),D.setAttribute("transform","translate(0.5,0)"),D.innerHTML=o;const y=U("g");y.classList.add("module-layer2"),f.appendChild(y),y.setAttribute("fill","rgb(255,209,0)"),y.setAttribute("transform","translate(1,-0.1)"),y.innerHTML=o;const M=U("g");return M.classList.add("module-layer3"),f.appendChild(M),M.setAttribute("fill","white"),M.innerHTML=o,new vA(f).transform(([k,Y])=>[k,Y+(c/2-k)**2/(c*6)]),f},d=U("g");d.classList.add("module-root");const B=U("defs");d.appendChild(B);const h=U("g");h.classList.add("module-bounds"),d.appendChild(h);const C=YA(e.height,e.width);C.setAttribute("opacity","0"),h.appendChild(C);const u=U("g");u.classList.add("module-text-enclosure"),d.appendChild(u);const E=g();u.appendChild(E);const m=Je(l);return PA(u,m,e.height,e.width,.35,.65),sn(d.outerHTML)}}async function rn(n){if(n==="Favourites")return new _s;if(n==="Maltesers"){const t=tt("https://assets.spiff.com.au/public/modules/img/MaltesersBackground.svg"),e=tt("https://assets.spiff.com.au/public/modules/img/MaltesersBackgroundShort.svg"),A=await Promise.all([t,e]);return new eo(A[0],A[1])}if(n==="Vegemite")return new ao;throw new L(`Failed to resolve Module, Module ${n} not found`)}var le=(n=>(n.Error="Error",n.Warning="Warning",n.Info="Info",n))(le||{});const no=1e3;class cn extends tA{constructor(t){super(),this.createdAt=new Date,this.update=t}async execute(){await this.update(),await new Promise(t=>{window.setTimeout(()=>{t()},no)})}}class io{constructor(t,e,A,a,i,s,o,r,c,l,g,d,B,h=!1,C,u=!1,E=!1,m=!1){this.workflowStatePromiseQueue=new eA(1),this.initialized=!1,this.readOnly=!1,this.isReloadedTransaction=!1,this.singleVariantsRenderable=!1,this.stepTags={},this.renderLayouts=()=>{var Q;if(!this.previewService)return;const f=this.getCommandContext().getAllLayouts(),p=(Q=this.getLayoutPreviewService())==null?void 0:Q.getAll();if(p)for(const[,I]of p)I.render(f)},this.experience=t,this.client=e,this.updateTransaction=o,this.commandContext=s,this.reloadedState=B,this.transaction=r,this.readOnly=h,this.singleVariantsRenderable=E,this.confirmedDesign=!1,this.editedSteps={},this.informationResults=[],this.mandatorySteps={},this.pendingUpdates=[],this.selectionCost=0,this.workflow=A,this.stepSpecificServices={},this.profanityFilter=a,this.pollers=[],this.allScenes=[],this.layouts=i,this.product=c,this.previewService=g,this.modelContainer=C,this.stepElements={},this.stepInitialised={},this.stepMetadata={},this.stepSelections={},this.storage={},this.validationErrors={steps:new Map},this.confirmCallbacks=[],this.editedCallbacks=[],this.elementsCallbacks=[],this.informationResultCallbacks=[],this.initCallbacks=[],this.mandatoryCallbacks=[],this.makingAdjustmentsCallback=[],this.metadataCallbacks=[],this.selectionCallbacks=[],this.stepSpecificStorageCallbacks={},this.storageCallbacks=[],this.validationCallbacks=[],this.currentAdjustingStepId="",this.renderableContextService=d,this.isReloadedTransaction=u,this.stepTags=l,m&&(this.workflowStatePromiseQueue.enabled=!1),this.initializationPromise=this.initializeDefaultWorkflowState(A),this.initializationPromise.then(()=>{this.initialized=!0}),this.initializationPromise.catch(f=>{throw console.error(f),this.initialized=!1,new Error("Workflow initialization failed due to an error. See console.")}),this.initializationPromise.finally(()=>this.getCommandContext().registerStateCallback(()=>{this.updateStateWithServer(),this.renderLayouts()}))}async initializeDefaultWorkflowState(t){const e=()=>{var l,g;const o=this.workflow.finalizeStepConfig;if(!o)return;const r=o.lookAtAnimation,c=o.modelAnimation;r&&((l=this.previewService)==null||l.executeCameraAnimation(r)),c&&((g=this.modelContainer)==null||g.executeAnimation(c))};this.reloadedState&&this.reloadedState.serializableWorkflow.steps.forEach(o=>{this.storage[o.stepName]=o.storage||{}}),this.allScenes=await bi(t);const a=Pt(this.allScenes,this.stepSelections).map(o=>o.silentSteps).flat(),{stepElements:i,commands:s}=await this.stepElementsForIntroducedSilentSteps(a,!!this.reloadedState);this.commandContext.apply(new O(s),!0),this.stepElements={...this.stepElements,...i},await this.ensureStepsAreLoaded(),!this.isReloadedTransaction&&this.updateStateWithServer(),this.renderLayouts(),this.reloadedState&&e()}getWorkflowExperience(){return this.experience}getClient(){return this.client}setWorkflowStateSyncEnabled(t){this.workflowStatePromiseQueue.enabled=t}getProduct(){return this.product}getInitializationPromise(){return this.initializationPromise}isInitialized(){return this.initialized}addConfirmCallback(t){t(this.confirmedDesign),this.confirmCallbacks.push(t)}addEditedCallback(t){t(this.editedSteps),this.editedCallbacks.push(t)}addElementsCallback(t){t(this.stepElements),this.elementsCallbacks.push(t)}addInformationResultCallback(t){t(this.informationResults),this.informationResultCallbacks.push(t)}addInitCallback(t){t(this.stepInitialised),this.initCallbacks.push(t)}addMandatoryCallback(t){t(this.mandatorySteps),this.mandatoryCallbacks.push(t)}addMetadataCallback(t){t(this.stepMetadata),this.metadataCallbacks.push(t)}async addSelectionCallback(t){t({selectionCost:this.selectionCost,selections:this.stepSelections,traversableScenes:await this.traversableScenes()}),this.selectionCallbacks.push(t)}addStepSpecificStorageCallback(t,e){Object.keys(this.storage).includes(e)||(this.storage[e]={}),t(this.storage[e]),Object.keys(this.stepSpecificStorageCallbacks).includes(e)||(this.stepSpecificStorageCallbacks[e]=[]),this.stepSpecificStorageCallbacks[e].push(t)}addStorageCallback(t){t(this.storage),this.storageCallbacks.push(t)}addMakingAdjustmentsCallback(t){t(this.currentAdjustingStepId),this.makingAdjustmentsCallback.push(t)}addPoller(t){this.pollers.push(t)}addValidationCallback(t){this.validationCallbacks.push(t),t(this.validationErrors)}getLayouts(){return this.layouts}getAllLayoutData(){return this.commandContext.getAllLayouts().map(t=>t.layoutState)}getLayoutPreviewService(){return this.renderableContextService}getInformationResults(){return this.informationResults}getPreviewService(){return this.previewService}getProfanities(){return this.profanityFilter}getCommandContext(){return this.commandContext}getRegionElements(t){return this.stepElements[t]||[]}getStepSpecificServices(t){return this.stepSpecificServices[t]}getTransaction(){return this.transaction}getTransactionCustomer(){return this.ownerCustomer}setTransactionCustomer(t){this.ownerCustomer=t}setTransactionCustomerDetails(t){this.ownerCustomer={...this.ownerCustomer,emailAddress:t.email}}getModelContainer(){return this.modelContainer}setModelContainer(t){(!t||this.previewService&&this.previewService.getAllModels().includes(t))&&(this.modelContainer=t,t&&t.metadata&&t.metadata instanceof Map&&this.modelContainer.metadata.set("workflowManager",this))}setTransaction(t){this.transaction=t}getWorkflow(){return this.workflow}getCommandDispatcher(){return t=>this.commandContext.apply(t,!this.initialized)}getWorkflowSelections(){const t={};return this.workflow.steps.forEach(e=>{const A=this.stepSelections[e.stepName];A&&A.selectedVariants&&A.selectedVariants.length>0&&(t[e.stepName]={selections:A.selectedVariants})}),t}getStepSelections(){return this.stepSelections}markStepsAsInitialised(t){const e={...this.stepInitialised};t.forEach(A=>{e[A]=!0}),this.stepInitialised=e,this.onInitChange()}getUpdatesPending(){return this.pendingUpdates.length>0}markUpdateCompleted(t){this.pendingUpdates=this.pendingUpdates.filter(e=>e!==t)}markUpdatePending(){const t=b();return this.pendingUpdates=[...this.pendingUpdates,t],t}setEditedStatus(t,e){this.editedSteps={...this.editedSteps,[t]:e},this.onEditedChange()}setInformationResults(t){this.informationResults=[...t],this.onInformationResultChange()}setCurrentAdjustingStepId(t){this.currentAdjustingStepId=t,this.onMakingAdjustmentsChange()}setMandatoryFulfilled(t,e){this.mandatorySteps[t]!==e&&(this.mandatorySteps={...this.mandatorySteps,[t]:e},this.setInformationResults([]),this.onMandatoryChange())}setStepError(t,e,A){let a=!1;if(!this.validationErrors.steps.has(t)&&A)a=!0,this.validationErrors.steps.set(t,new Map([[e,A]]));else if(this.validationErrors.steps.has(t)){const i=this.validationErrors.steps.get(t);A&&A!==i.get(e)?(a=!0,i.set(e,A)):A||(a=!0,i.delete(e),i.size===0&&this.validationErrors.steps.delete(t))}a&&this.onValidationChange()}getStepErrors(t){return this.validationErrors.steps.get(t)}getValidationErrors(){return this.validationErrors}toggleDesignConfirmed(){this.confirmedDesign=!this.confirmedDesign,this.onConfirmChange()}toggleMakingAdjustmentsCallback(t){t(this.mandatorySteps),this.mandatoryCallbacks.push(t)}async injectIntoPreviewService(t,e){if(this.modelContainer)throw new Error("You must eject from the preview service before injecting again.");if(this.previewService=t,!this.getProduct().modelUrl||!this.previewService)return;const A=t.loadModel({model:this.getProduct().modelUrl,contextService:this.getLayoutPreviewService()},{refocusCamera:e});this.setModelContainer(A),Pt(this.allScenes,this.stepSelections).filter(s=>s).map(s=>s.renderableSteps).flat().filter(s=>s.type===S.Model||s.type===S.Material).forEach(s=>{var c,l,g;if(!((c=s.option)!=null&&c.id)){console.error(`Failed to read option id from step: ${s.stepName}`);return}const o=((l=this.stepSelections[s.stepName])==null?void 0:l.selectedVariants)||[];if(o.length===0)return;const r=o[0];if(s.type===S.Model){if(!this.modelContainer)throw new L("We should always have a model container when injecting a preview!");const d=(g=r.asset)==null?void 0:g.fileLink;if(!d){console.error(`Failed to read model url from variant: ${r.id} for step: ${s.stepName}`);return}const B=s.data;this.modelContainer.applyModelVariant(s.stepName,{model:d,contextService:this.getLayoutPreviewService()},B.replaceProductModel||!1)}else{const d=r.material;if(!d){console.error(`Failed to read material from variant: ${r.id} for step: ${s.stepName}`);return}s.data.targetMaterials.forEach(h=>{if(!this.modelContainer)throw new L("We should always have a model container when injecting a preview!");this.modelContainer.applyMaterialVariant(h,s.option.id,d)})}}),await A.getInitializationPromise(),this.renderLayouts()}ejectFromPreviewService(){if(this.modelContainer){if(!this.modelContainer.dispose)throw new Error("This feature is not supported in the current preview service.");this.modelContainer.dispose(),this.modelContainer=void 0}this.previewService=void 0}updateStorage(t,e){const A={...this.storage,[t]:{...this.storage[t],...e}};if(!jA(A,this.storage)){this.storage=A;const a=new za(this.constructSerializableWorkflow());this.commandContext.apply(a,!0),this.onStepSpecificStorageChange(t),this.onStorageChange()}}constructSerializableWorkflow(){const t=[];return this.allScenes.forEach(e=>{e.renderableSteps.forEach(A=>{var i,s;const a={stepName:A.stepName};a.storage=this.storage[A.stepName],a.selectedVariants=(s=(i=this.stepSelections[A.stepName])==null?void 0:i.selectedVariants)==null?void 0:s.map(o=>({id:o.id,priceModifier:o.priceModifier})),t.push(a)})}),{steps:t}}updateStateWithServer(){if(this.readOnly)return;const t=this.serialize();this.workflowStatePromiseQueue.enqueue(new cn(async()=>{await new Promise(e=>{setTimeout(()=>{e()},1)}),await this.updateTransaction({variables:{id:this.transaction.id,workflowState:t.transaction}})}))}async updateStateWithServerImmediate(){if(this.readOnly)return;const t=this.serialize();return new cn(async()=>{await this.updateTransaction({variables:{id:this.transaction.id,workflowState:t.transaction}})}).execute()}serialize(){const t=this.getCommandContext().getState();if(!t)throw new L("Attempted to serialize state before it was initialized.");return{transaction:JSON.stringify(this.dehydrateState(Dt(t.transaction)))}}dehydrateState(t){var e;for(const A of Object.values(t.layouts).map(a=>a.elements).flat())A.type==="illustration"&&(delete A.cachedObjectURL,A.src&&delete A.svg),A.type==="frame"&&((e=A.pattern)==null||delete e.svg);return t}async outstandingRequestsPromise(){return this.workflowStatePromiseQueue.finalize()}updateMetadata(t,e){this.stepMetadata={...this.stepMetadata,[t]:{...this.stepMetadata[t],...e}},this.onMetadataChange()}removeElements(t){const e=(A,a)=>Object.keys(A).reduce((i,s)=>{const o=[...A[s]||[]];return a.forEach(r=>{const c=o.findIndex(l=>l.id===r.id);c>-1&&o.splice(c,1)}),i[s]=o,i},{});this.stepElements=e(this.stepElements,t)}getInvalidCanvasRegions(){return this.workflow.steps.reduce((t,e)=>(mt(e,this.stepSelections)||this.stepElements[e.stepName]&&this.stepElements[e.stepName].forEach(A=>t.push(A)),t),[])}getInvalidModelVariants(){return this.workflow.steps.reduce((t,e)=>(e.type===S.Model&&!mt(e,this.stepSelections)&&t.push(e.stepName),t),[])}async stepElementsForIntroducedSilentSteps(t,e){const A=this.product;if(!A)return Promise.resolve({stepElements:{},commands:[]});const a=async(c,l,g)=>{if(c.type===S.SilentIllustration){const d=await new $a(c,l).trigger();return{step:c,results:d}}else if(c.type===S.ProductOverlay){const d=await new $a(c,l,g).trigger();return{step:c,results:d}}return Promise.reject("Unknown silent step. This is a bug")},i=t.filter(c=>!this.stepInitialised[c.stepName]),s={stepElements:{},commands:[]},o=[];for(const c of i)this.markStepsAsInitialised([c.stepName]),e||o.push(a(c,this.layouts,A));const r=await Promise.all(o);for(const c of r)s.stepElements[c.step.stepName]=c.results.map(l=>l.regionElement),s.commands=[...s.commands,...c.results.map(l=>l.command)];return s}getStepStorage(t){return this.storage[t]}getMetadata(t){return this.stepMetadata[t]}getWorkflowMetadata(){return this.stepMetadata}getStepTags(t){return this.stepTags[t]||[]}getSerializedStep(t,e){return e.find(A=>A.stepName===t)}async updateTransactionShareActions(){const t=await this.client.getShareActionsForTransaction(this.transaction.id);this.transaction.transactionShareActions=t}async updateTransactionStakeholders(){var e;const t=await N.getShadowGraphqlClient().query({query:Hi,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:this.transaction.id}});!((e=t==null?void 0:t.data)!=null&&e.transactions)||t.data.transactions.length!==1?(this.transaction.currentStakeholder=void 0,this.transaction.stakeholders=void 0):(this.transaction.stakeholders=t.data.transactions[0].stakeholders,this.transaction.currentStakeholder=t.data.transactions[0].currentStakeholder)}async reset(){this.commandContext.getAllLayouts().forEach(e=>e.layoutState.elements.forEach(A=>{this.getCommandDispatcher()(new wt(A.id))})),this.stepElements={},this.stepInitialised={},this.stepMetadata={},this.stepSelections={},this.storage={},await this.ensureStepsAreLoaded()}async setSelectionsAndElements(t,e,A,a){var Q;const i=this.stepSelections;this.stepSelections={...this.stepSelections,[t]:{selectedVariants:e}},this.selectionCost=Object.values(this.stepSelections).reduce((I,D)=>I+D.selectedVariants.map(y=>y.priceModifier||0).reduce((y,M)=>y+M,0),0),this.workflow.steps.forEach(I=>{mt(I,this.stepSelections)||(this.stepInitialised[I.stepName]=!1,delete this.stepMetadata[I.stepName],delete this.stepSelections[I.stepName],delete this.storage[I.stepName])});const s=this.allScenes,o=Pt(s,i),r=Pt(s,this.stepSelections),c=o.map(I=>I.silentSteps).flat(),g=r.map(I=>I.silentSteps).flat().filter(I=>!c.some(D=>D.stepName===I.stepName));c.forEach(I=>{mt(I,this.stepSelections)||(this.stepInitialised[I.stepName]=!1)});const d=this.getInvalidCanvasRegions(),{stepElements:B,commands:h}=await this.stepElementsForIntroducedSilentSteps(g,!1);this.stepElements={...this.stepElements,...B,[t]:A},this.removeElements(d);const C=this.workflow.steps.find(I=>I.stepName===t);if((C==null?void 0:C.type)===S.Frame){const I=this.getStepSpecificServices(t);(Q=I==null?void 0:I.frameService)==null||Q.setTargetElements(A.map(D=>D.id))}const u=d.map(I=>new wt(I.id)),E=new za(this.constructSerializableWorkflow()),m=[...h,...u,E];m.length>0&&this.commandContext.apply(new O(m),!0),await this.ensureStepsAreLoaded(),this.onElementsChange();const f=this.getInvalidModelVariants(),p=this.modelContainer;if(p){const I=f.map(D=>p.applyModelVariant(D,{contextService:this.getLayoutPreviewService()},!1));await Promise.all(I)}await this.onSelectionChange(),a&&await a()}async ensureStepsAreLoaded(){const e=Pt(this.allScenes,this.stepSelections).map(r=>r.renderableSteps),A=[],a=e.flat();for(const r of a)if(!this.stepInitialised[r.stepName])switch(this.stepInitialised[r.stepName]=!0,r.type){case S.DigitalContent:A.push(QA.init(r,this,this.reloadedState));break;case S.Frame:{const c=r.data,l=new qa(c.forceImageCover,c.initialZoomLevel);l.connectWorkflowManager(this,r.stepName),this.stepSpecificServices[r.stepName]={frameService:l},A.push(ut.init(r,this,this.reloadedState))}break;case S.Illustration:A.push(re.init(r,this,this.reloadedState));break;case S.Material:A.push(pA.init(r,this,this.reloadedState));break;case S.Model:A.push(IA.init(r,this,this.reloadedState));break;case S.Module:this.stepSpecificServices[r.stepName]={module:await rn(r.data.module)},A.push(DA.init(r,this,this.reloadedState));break;case S.Picture:A.push(FA.init(r,this,this.reloadedState));break;case S.Question:A.push(yA.init(r,this,this.reloadedState));break;case S.Shape:A.push(Ut.init(r,this,this.reloadedState));break;case S.Text:A.push(_.init(r,this,this.reloadedState));break}const i=(await Promise.allSettled(A)).map(r=>{if(r.status==="rejected")throw new Error(`Step initialization failed: ${r.reason}`);return r.value}),s=i.filter(r=>!!r&&!!r.command).map(r=>r.command),o=i.filter(r=>!!r&&!!r.followup).map(r=>r.followup);s&&s.length>0&&this.commandContext.apply(new O(s),!0);for(const r of o)await r();o.length>0&&await this.ensureStepsAreLoaded(),this.onInitChange()}onConfirmChange(){this.confirmCallbacks.forEach(t=>t(this.confirmedDesign))}onEditedChange(){this.editedCallbacks.forEach(t=>t(this.editedSteps))}onElementsChange(){this.elementsCallbacks.forEach(t=>t(this.stepElements))}onInformationResultChange(){this.informationResultCallbacks.forEach(t=>t(this.informationResults))}onInitChange(){this.initCallbacks.forEach(t=>t(this.stepInitialised))}onMakingAdjustmentsChange(){this.makingAdjustmentsCallback.forEach(t=>{t(this.currentAdjustingStepId)})}onMandatoryChange(){this.mandatoryCallbacks.forEach(t=>t(this.mandatorySteps))}onMetadataChange(){this.metadataCallbacks.forEach(t=>{t(this.stepMetadata)})}async onSelectionChange(){const t=await this.traversableScenes();for(const e of this.selectionCallbacks)e({selectionCost:this.selectionCost,selections:this.stepSelections,traversableScenes:t})}onStepSpecificStorageChange(t){Object.keys(this.stepSpecificStorageCallbacks).includes(t)||(this.stepSpecificStorageCallbacks[t]=[]),this.stepSpecificStorageCallbacks[t].forEach(e=>e(this.storage[t]))}onStorageChange(){this.storageCallbacks.forEach(t=>t(this.storage))}onValidationChange(){this.validationCallbacks.forEach(t=>t(this.validationErrors))}traversableScenes(){return Gi(this.allScenes,this.stepSelections,this.singleVariantsRenderable)}}class ot{constructor(t){this.variantData=t}getType(){var t;return(t=this.variantData.asset)==null?void 0:t.type}getId(){return this.variantData.id}getName(){return this.variantData.name}getPriceFormatted(t,e){return this.variantData.priceModifier.toLocaleString(t||"en-US",{style:"currency",currency:"USD",...e})}getPrice(){return this.variantData.priceModifier}getAsset(){var t,e,A;return(A=(e=(t=this.variantData.asset)==null?void 0:t.versions)==null?void 0:e.find(a=>a.name==="cdn"))==null?void 0:A.link}getAssetResource(){return this.variantData.asset}getThumbnail(){var A,a,i,s;const t=(i=(a=(A=this.variantData.thumbnail)==null?void 0:A.versions)==null?void 0:a.find(o=>o.name==="thumbnail"))==null?void 0:i.link,e=(s=this.variantData.thumbnail)==null?void 0:s.fileLink;return t||e}getColor(){return this.variantData.color}isDefault(){return!!this.variantData.default}getResource(){return this.variantData}isEnabled(){return this.variantData.enabled}}const ln=class LA{constructor(t,e,A){this.manager=t,this.step=e,this.tags=A}setUpdateState(t){LA.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`,t)}getUpdateState(){return!!LA.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`)}getCurrentVariant(){const e=this.manager.getWorkflowSelections()[this.step.stepName],A=e==null?void 0:e.selections[0];if(A)return new ot(A)}getAvailableVariants(){var e,A;return(((A=(e=this.step.option)==null?void 0:e.variants)==null?void 0:A.filter(a=>a.enabled))||[]).map(a=>new ot(a))}getAllVariants(){var e;return(((e=this.step.option)==null?void 0:e.variants)||[]).map(A=>new ot(A))}getId(){return this.step.stepName}getName(){return this.step.stepTitle}getHelpText(){return this.step.helpText}getType(){return this.step.type}getRaw(){return this.step}getTags(){return this.tags}hasTag(t){return this.tags.includes(t)||!1}getMandatory(){return this.step.mandatory||!1}getOverrideGlobalPropertyConfiguration(t){var A;return(((A=this.manager.getStepStorage(this.step.stepName))==null?void 0:A.overrideGlobalConfigurations)??{})[t.toString()]??!1}setOverrideGlobalPropertyConfiguration(t,e){var a;const A=((a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.overrideGlobalConfigurations)??{};this.manager.updateStorage(this.step.stepName,{overrideGlobalConfigurations:{...A,[t.toString()]:e}})}getGlobalPropertyAspects(t){var e;return((e=this.step.globalPropertyAspectConfigurations)==null?void 0:e.filter(A=>A.globalPropertyConfigurationId===t&&A.aspectName).map(A=>A.aspectName))??[]}executeAnimations(){const t=this.manager.getPreviewService(),e=this.manager.getModelContainer(),A=this.step.data.modelAnimation,a=this.step.data.lookAtAnimation;t?a&&t.executeCameraAnimation(a):console.warn("No preview service available, cannot execute camera animations."),e?A&&e.executeAnimation(A):console.warn("No model container available, cannot execute model animations.")}};ln.updateState=new Map;let at=ln;class gn extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(t){if(!this.getUpdateState()&&this.getCurrentVariant()!==t)return re.selectVariant(this.step,t.getResource(),this.manager.getRegionElements(this.step.stepName)||[],e=>this.setUpdateState(e),this.manager)}getColors(){const t=this.manager.getRegionElements(this.step.stepName)||[];if(t.length!==0)try{return z(t[0].id,this.manager.getAllLayoutData()).colors}catch(e){console.error(e)}}setColor(t,e){const A=new Map;return A.set(t,e),re.changeColors(this.step,this.manager.getRegionElements(this.step.stepName),this.manager,()=>this.manager.getCommandContext().getAllLayouts(),A)}async getColorOption(){return this.step.data.colorOption}getAvailableColors(){return this.step.data.colorPickerEnabled?re.availableColors(this.step,this.manager):Promise.resolve([])}isColorPickerEnabled(){return this.step.data.colorPickerEnabled??!1}}class dn extends at{constructor(t,e,A){super(t,e,A)}selectVariant(t){return pA.selectVariant(this.step,t.getResource(),this.manager,e=>this.setUpdateState(e))}}class Bn extends at{constructor(t,e,A){super(t,e,A)}selectVariant(t){return IA.selectVariant(this.step,t.getResource(),this.manager,e=>this.setUpdateState(e))}}class hn extends at{constructor(t,e,A){super(t,e,A)}selectVariant(t){return FA.selectVariant(this.step,t.getResource(),this.manager,e=>this.setUpdateState(e))}}class Cn extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(t){if(!t.getId())throw new Error("Unable to select variant with a null ID");await yA.selectVariant(this.step,t.getId(),this.manager)}getDisplayType(){var t;return this.step.data.displayType||((t=this.step.option)==null?void 0:t.displayType)}}class wn extends at{constructor(t,e,A){super(t,e,A)}selectVariant(t){const e=t.getResource();return Ut.selectVariant(this.step,{fill:e.color,stroke:e.color,variant:e},this.manager.getRegionElements(this.step.stepName)||[],this.manager)}setColor(t){return Ut.selectVariant(this.step,t,this.manager.getRegionElements(this.step.stepName)||[],this.manager)}getColors(){return Ut.availableColours(this.step)}setCustomColor(t){var e,A;return((e=this.getCurrentVariant())==null?void 0:e.getColor())!=="#custom"&&console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A=this.getCurrentVariant())==null?void 0:A.getColor()}`),Ut.setCustomColor(t,this.step,this.manager)}getCustomColor(){var e,A,a;((e=this.getCurrentVariant())==null?void 0:e.getColor())!=="#custom"&&console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A=this.getCurrentVariant())==null?void 0:A.getColor()}`);const t=(a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.colour;if(!t)throw new Error(`Color not available on step ${this.step.stepName}. Set a default on the workflow to fix this.`);return t}}class un extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(t){_.selectVariant(this.step,t.getResource(),this.manager,e=>{if(e)this.manager.setInformationResults([...this.manager.getInformationResults(),{message:"An issue has occurred with text",messageType:le.Error,stepID:this.step.stepName}]);else{const A=this.manager.getInformationResults().filter(a=>a.stepID!==this.step.stepName);this.manager.setInformationResults(A)}},()=>{})}getAvailableFillColors(){return this.step.data.colorPickerEnabled?_.availableFillColors(this.step):[]}async setFillColor(t){const e=this.manager.getRegionElements(this.step.stepName);await _.changeFillColor(this.step,t,e,this.manager)}getFillColor(){var t;return((t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.color)||"#000000"}getAvailableFillImages(){return _.availableFillImages(this.step)}async setFillImage(t){const e=this.manager.getRegionElements(this.step.stepName);await _.changeFillImage(this.step,t,e,this.manager)}getFillImage(){var t;return(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.fillImage}getAlignment(){const t=_.findLayoutElements(this.manager,this.step);return t==null?void 0:t[0].align}setAlignment(t){const e=this.manager.getRegionElements(this.step.stepName);_.changeAlignment(this.step,t,e,this.manager)}setFullTextCustomization(t){var s;const e=((s=this.manager.getStepStorage(this.step.stepName))==null?void 0:s.inputText)||"",A=this.step.data.replaceableText!==void 0?this.step.data.replaceableText.replace("{{}}",e):e,a=t?A:this.step.data.defaultText;return this.manager.updateStorage(this.step.stepName,{customiseAllText:t,text:a,defaultCleared:!1}),this.setText(a)}setText(t){var g;const e={input:t,helperData:{}},A=_.findLayoutElements(this.manager,this.step),a=_.filterUnsupportedCharacters(t,(g=A[0])==null?void 0:g.fontData);!!this.step.data&&!!this.step.data.maxLength&&a.length>this.step.data.maxLength||(e.input=a);const s=A.length<=0,o=s?{inputText:a,text:a}:{inputText:a};if(this.manager.updateStorage(this.step.stepName,o),this.manager.updateMetadata(this.step.stepName,{text:a}),s)return e;const{command:r,errorData:c,helperData:l}=_.updateInputText(a,A,this.step,this.manager);return r&&this.manager.getCommandDispatcher()(r),e.helperData=l,e.errorData=c,e}getText(){var A;const t=this.step.data.defaultText,e=this.manager.getStepStorage(this.step.stepName);return t&&!(e!=null&&e.defaultCleared)?t:((A=this.manager.getStepStorage(this.step.stepName))==null?void 0:A.text)||""}isReplaceable(){return this.step.data.userCanReplaceText}newLinesSupported(){return this.step.data.allowNewlines||!1}clearDefaultTextIfNecessary(){const t=this.manager.getStepStorage(this.step.stepName);if(!(t!=null&&t.defaultCleared)&&this.step.data.deleteDefaultOnFocus){const e=this.setText("");this.manager.updateStorage(this.step.stepName,{defaultCleared:!0,inputText:""});const A=_.findLayoutElements(this.manager,this.step);return _.updateInputText("",A,this.step,this.manager),e}}hasColorPicker(){return this.step.data.colorPickerEnabled}getRegions(){return this.step.data.regions}getCharacterLimit(){return this.step.data.maxLength}getCharactersRemaining(){const t=this.step.data.maxLength;if(t===void 0)return;const e=this.getText();return t-e.length}setCustomColor(t){throw new Error("Custom color support is not yet available on text. Check back soon.")}getCustomColor(){throw new Error("Custom color support is not yet available on text. Check back soon.")}}class En extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(){}getContent(){return this.step.data.content}}class mn extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(){}getPreviewURL(){var t;return((t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.videoUrl)||""}async selectVideo(t){return QA.regenerateQRCode(this.manager.getRegionElements(this.step.stepName),t.key,this.manager,this.step)}}class fn extends at{constructor(t,e,A){super(t,e,A)}async selectVariant(){console.info("Text Modules don't support variants.")}getCharactersRemaining(){const t=this.step.data.maxLength;if(t===void 0)return;const e=this.getText();return t-e.length}getCharacterLimit(){return this.step.data.maxLength}getText(){var t;return((t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.text)||""}setText(t){DA.changeText(this.step,t,this.manager,"",e=>{if(e)this.manager.setInformationResults([...this.manager.getInformationResults(),{message:e,messageType:le.Error,stepID:this.step.stepName}]);else{const A=this.manager.getInformationResults().filter(a=>a.stepID!==this.step.stepName);this.manager.setInformationResults(A)}})}}class Pe{static get(t,e){switch(e.type){case S.DigitalContent:return new mn(t,e,t.getStepTags(e.stepName));case S.Information:return new En(t,e,t.getStepTags(e.stepName));case S.Question:return new Cn(t,e,t.getStepTags(e.stepName));case S.Text:return new un(t,e,t.getStepTags(e.stepName));case S.Illustration:return new gn(t,e,t.getStepTags(e.stepName));case S.Picture:return new hn(t,e,t.getStepTags(e.stepName));case S.Shape:return new wn(t,e,t.getStepTags(e.stepName));case S.Material:return new dn(t,e,t.getStepTags(e.stepName));case S.Model:return new Bn(t,e,t.getStepTags(e.stepName));case S.Frame:return new Rn(t,e,t.getStepTags(e.stepName));case S.Module:return new fn(t,e,t.getStepTags(e.stepName));default:throw new L(`Step type ${e.type} not yet supported in Core SDK`)}}}const Qn=F.gql`
2133
- fragment CreateDesignTransaction on Transaction {
2134
- id
2135
- designName
2136
- externalCartProductId
2137
- externalCartProductVariantId
2138
- externalDesignProductId
2139
- externalDesignProductVariantId
2140
- lastSyncedAt
2141
- quantity
2142
- previewImageLink
2143
- priceModifierTotal
2144
- workflowViewerLink
2145
- workflowViewerReadOnlyLink
2146
- integrationProduct {
2147
- id
2148
- additionalExternalProductId
2149
- additionalExternalVariantId
2150
- }
2151
- designExternalVariants {
2152
- id
2153
- externalProductId
2154
- externalProductVariantId
2155
- }
2156
- }
2157
- `,so=F.gql`
2158
- ${Qn}
2159
- mutation CreateDesign(
2160
- $name: String!
2161
- $layouts: [LayoutInput]!
2162
- $workflowId: String!
2163
- $transactionId: String!
2164
- $previewImage: String
2165
- $useThreeDimPreview: Boolean
2166
- $metadata: [MetadataInput]
2167
- $selectedVariants: [SelectedVariantInput]
2168
- ) {
2169
- designCreate(
2170
- name: $name
2171
- layouts: $layouts
2172
- workflowId: $workflowId
2173
- transactionId: $transactionId
2174
- previewImage: $previewImage
2175
- useThreeDimPreview: $useThreeDimPreview
2176
- metadata: $metadata
2177
- selectedVariants: $selectedVariants
2178
- ) {
2179
- id
2180
- sku
2181
- transaction {
2182
- ...CreateDesignTransaction
2183
- }
2184
- processExecution {
2185
- id
2186
- }
2187
- }
2188
- }
2189
- `,oo=F.gql`
2190
- ${Qn}
2191
- mutation CreateDesigns($inputs: [DesignCreateInput]!) {
2192
- designCreateMany(inputs: $inputs) {
2193
- id
2194
- sku
2195
- transaction {
2196
- ...CreateDesignTransaction
2197
- }
2198
- processExecution {
2199
- id
2200
- }
2201
- }
2202
- }
2203
- `;function ve(n){const t=JSON.parse(atob(n.split(".")[1])).exp;return Math.floor(new Date().getTime()/1e3)>=t}const ro=async n=>{var s,o;const e=((s=Object.entries(localStorage).find(([r,c])=>r.startsWith("CognitoIdentityServiceProvider")&&r.endsWith("idToken")))==null?void 0:s[0])||"",A=localStorage.getItem(e),a={};return A&&!ve(A)&&(a.Authorization=`Bearer ${A}`),(o=(await N.getShadowGraphqlClient().mutate({mutation:so,errorPolicy:"all",fetchPolicy:"no-cache",variables:{name:n.name,layouts:n.layouts,workflowId:n.workflowId,transactionId:n.transactionId,previewImage:n.previewImage,useThreeDimPreview:n.useThreeDimPreview,metadata:n.metadata,selectedVariants:n.selectedVariants},context:{headers:a}})).data)==null?void 0:o.designCreate},co=async n=>{var s,o;const e=((s=Object.entries(localStorage).find(([r,c])=>r.startsWith("CognitoIdentityServiceProvider")&&r.endsWith("idToken")))==null?void 0:s[0])||"",A=localStorage.getItem(e),a={};return A&&!ve(A)&&(a.Authorization=`Bearer ${A}`),(o=(await N.getShadowGraphqlClient().mutate({mutation:oo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{inputs:n.map(r=>({name:r.name,layouts:r.layouts,workflowId:r.workflowId,transactionId:r.transactionId,previewImage:r.previewImage,useThreeDimPreview:r.useThreeDimPreview,metadata:r.metadata,selectedVariants:r.selectedVariants}))},context:{headers:a}})).data)==null?void 0:o.designCreateMany},NA=(n,t,e)=>{const A=i=>{const s={};if(i.type==="Frame"){const o=n[i.stepName],r=i.data;if(!o||!o.image||r.hideImageInCart&&e)return s;s[`${i.stepTitle} image`]=o.image}if(i.type==="Illustration"){const o=n[i.stepName],r=i.data;if(!o||r.hideColorsInCart&&e||!o.colors)return s;if(o.colors.length>0){const c=o.colors.join(", ").toUpperCase();s[`${i.stepTitle} colors`]=c}}if(i.type==="Module"){const o=n[i.stepName],r=i.data;if(!o||o.text===void 0||o.text===null||r.hideTextInCart&&e)return s;s[`${i.stepTitle} text`]=o.text}if(i.type==="Text"){const o=n[i.stepName];if(!o)return s;const r=i.data;(!r.hideTextInCart||!e&&o.text!==void 0&&o.text!==null)&&(s[`${i.stepTitle} text`]=o.text),o.color&&(!r.hideColorInCart||!e)&&(s[`${i.stepTitle} color`]=o.color)}return s},a={};return t.steps.forEach(i=>{Object.assign(a,A(i))}),a},lo=(n,t,e,A)=>{const a={};let i={};e?i=NA(e,t,!1):A&&(i=A);const o=t.steps.map(r=>r.stepTitle).filter((r,c,l)=>l.indexOf(r)==c);for(const r of o){if(Object.keys(n).includes(r)){const c=n[r],l=t.steps.find(g=>g.stepTitle===r);a[`${l==null?void 0:l.stepTitle} selection`]={value:c[0].name,priceModifier:c[0].priceModifier}}for(const c of Object.keys(i))[`${r} color`,`${r} colors`,`${r} text`,`${r} image`].includes(c)&&(a[c]={value:i[c],priceModifier:0})}return a},pn=(n,t,e,A,a,i,s,o)=>{var h,C;const r=t.basePrice||0,c=n.priceModifierTotal||0,l=lo(A,e,void 0,i),d=(v.getMap("transactionOwnerIds")||new Map).get(n.id),B={additionalExternalProductId:(h=n.integrationProduct)==null?void 0:h.additionalExternalProductId,additionalExternalVariantId:(C=n.integrationProduct)==null?void 0:C.additionalExternalVariantId,baseCost:r,designExternalVariants:n.designExternalVariants,designProductId:n.externalDesignProductId,designProductVariantId:n.externalDesignProductVariantId,event:"onComplete",exportedData:l,externalCartProductId:n.externalCartProductId,externalCartProductVariantId:n.externalCartProductVariantId,lineItemImageUrl:s||"",optionsCost:c,processExecutionId:o,quantity:n.quantity,transactionId:n.id,transactionOwnerId:d,weight:t.weight,workflowViewerLink:n.workflowViewerLink||"",workflowViewerReadOnlyLink:n.workflowViewerReadOnlyLink||""};return i&&(B.metadata=i),A&&(B.selectedVariants=A),a&&(B.sku=a),B},In=async(n,t,e,A,a,i,s,o,r,c)=>{var y;await(async()=>{var G;if(c!==void 0)return c;await n.outstandingRequestsPromise();const P=(v.getMap("transactionOwnerIds")||new Map).get(a.id),Y=await N.getShadowGraphqlClient().query({query:pa,variables:{ids:[a.id]},fetchPolicy:"no-cache",errorPolicy:"all",context:{transactionOwnerId:P}}),V=(G=Y.data)==null?void 0:G.transactions[0].workflowState;return Y.errors?(Y.errors.forEach(nt=>{Y.errors&&console.log("Server Error:",nt.message)}),null):V??null})()||(console.warn("State mismatch detected. Uploading known state explicitly"),console.warn("State Object:",JSON.stringify(A())),await n.updateStateWithServerImmediate(A),console.log("Server state is undefined @ Workflow completion"));const d=n.getPreviewService(),B=(y=t==null?void 0:t.finalizeStepConfig)==null?void 0:y.lookAtAnimation,h=d&&t.showModelOnFinishStep&&!!B,C=r&&NA(r,t,!0),u=r&&NA(r,t,!1),E=async M=>{const P={};let k=0;if(Object.keys(i).length>0)for(const Y of Object.keys(i)){const V=i[Y],G=t.steps.find(nt=>nt.stepName===Y);for(let nt=0;nt<V.selections.length;++nt){const W=V.selections[nt];if(G&&(!M||G.option&&(G.option.variants||[]).length>1&&!G.data.hideSelectionInCart&&!G.data.hideSelectionsInCart)){const pt=G.stepTitle;P[pt]?P[pt].push({id:W.id||"",name:W.name,priceModifier:W.priceModifier}):P[pt]=[{id:W.id||"",name:W.name,priceModifier:W.priceModifier}]}k+=W.priceModifier}}return[P,k]},[m]=await E(!0),f=Object.fromEntries(Object.keys(m).map(M=>[M,m[M].map(P=>P.id)])),[p]=await E(!1),Q=Object.fromEntries(Object.keys(p).map(M=>[M,p[M].map(P=>P.id)]));let I=await o(h,a.id);if(I){const M=await(await rt(I)).blob();I=(await T.uploadAsset({name:`${a.id}-preview-image.png`,blob:M},Tt.Image,!0,!1)).fileLink}return{designDetails:(()=>{const M={name:s,layouts:e.map(P=>({index:P.index,panelId:P.panelId})),workflowId:t.id,transactionId:a.id,useThreeDimPreview:!!h,previewImage:I};if(u){const P=[];for(const[k,Y]of Object.entries(u))P.push({key:k,value:Y});M.metadata=P}if(f){const P=[];for(const[k,Y]of Object.entries(Q))P.push({key:k,ids:Y});M.selectedVariants=P}return M})(),cartSelectionsWithPrices:m,cartMetadata:C}},Dn=async(n,t,e,A,a,i,s,o,r,c,l)=>{var E,m;r("workflow.steps.finish.finalize.buildingLayouts");const{designDetails:g,cartSelectionsWithPrices:d,cartMetadata:B}=await In(n,t,e,A,i,s,o,c,l);r("workflow.steps.finish.finalize.creatingDesign");const h=await ro(g),C=(E=h==null?void 0:h.transaction)==null?void 0:E.previewImageLink;if(!(h!=null&&h.transaction))throw new Error("Failed to create design");r("workflow.steps.finish.finalize.updatingTransaction");const u=h.transaction;return pn(u,a,t,d,h==null?void 0:h.sku,B,C,(m=h==null?void 0:h.processExecution)==null?void 0:m.id)},go=async(n,t,e)=>{t("workflow.steps.finish.finalize.buildingLayouts"),await Promise.all(n.map(async o=>{await o.workflowManager.outstandingRequestsPromise()}));const a=await(async()=>{var c;const r=await N.getShadowGraphqlClient().query({query:pa,variables:{ids:n.map(l=>l.transaction.id)},fetchPolicy:"no-cache",errorPolicy:"all"});return r.errors?(r.errors.forEach(l=>{r.errors&&console.log("Server Error:",l.message)}),null):(c=r.data)!=null&&c.transactions?r.data.transactions.map(l=>l.workflowState??null):null})(),i=await Promise.all(n.map(async(o,r)=>await In(o.workflowManager,o.workflow,o.layouts,o.getReducerState,o.transaction,o.workflowSelections,o.designName,e??(()=>Promise.resolve(void 0)),o.workflowMetadata,a?a[r]:void 0)));t("workflow.steps.finish.finalize.creatingDesign");const s=await co(i.map(o=>o.designDetails));if(!s)throw new Error("Failed to create designs");return t("workflow.steps.finish.finalize.updatingTransaction"),s.map((o,r)=>{var d;const c=n[r],l=i[r],g=o.transaction;return pn(g,c.product,c.workflow,l.cartSelectionsWithPrices,o.sku,l.cartMetadata,void 0,(d=o.processExecution)==null?void 0:d.id)})};class Bo{constructor(){this.localPersistenceKey="designTransactions",this.storageMethod="Local",this.designSavedListeners=[]}attachSaveListener(t){this.designSavedListeners.push(t)}detachSaveListener(t){this.designSavedListeners=this.designSavedListeners.filter(e=>e!==t)}async getSavedDesigns(){if(this.storageMethod==="Local"){const t=v.get(this.localPersistenceKey);return t?JSON.parse(t):[]}throw new L("Unexpected storage method requested")}async getSavedDesignByTransaction(t){return(await this.getSavedDesigns()).find(A=>A.transactionId===t)}async addDesign(t){const A=(await this.getSavedDesigns()).filter(a=>a.transactionId!==t.transactionId);A.unshift(t),await this.setDesigns(A),this.designSavedListeners.forEach(a=>a(t))}async renameDesign(t,e){const A=await this.getSavedDesigns(),a=A.find(i=>i.transactionId===t);if(!a)throw new Error(`No saved design for transaction ${t}.`);a.title=e,await this.setDesigns(A)}async removeDesign(t){const e=await this.getSavedDesigns();await this.setDesigns(e.filter(A=>A.transactionId!==t))}async setDesigns(t){if(this.storageMethod==="Local"){v.set(this.localPersistenceKey,JSON.stringify(t));return}throw new L("Unexpected storage method requested")}}const Ne=new Bo,ho=F.gql`
2204
- mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
2205
- transactionAddStakeholder(id: $id, details: $details, type: $type) {
2206
- id
2207
- stakeholders {
2208
- id
2209
- type
2210
- customer {
2211
- id
2212
- emailAddress
2213
- }
2214
- }
2215
- }
2216
- }
2217
- `;var Fn=(n=>(n.QuantityChanged="QuantityChanged",n.PriceBreakChanged="PriceBreakChanged",n))(Fn||{});class ge{constructor(t,e){var a;if(this.cachedStepHandles=new Map,this.currentPriceBreak=1,this.renderableScenes=[],this.renderableSceneCallbacks=[],this.eventCallbacks=new Map,this.debouncedSavedDesignUpdate=zA(async()=>{await Ne.getSavedDesignByTransaction(this.getWorkflowManager().getTransaction().id)&&this.save()},2500),this.getCanvasObjectURLAsync=async i=>new Promise((s,o)=>{try{i.toBlob(r=>{if(r){const c=URL.createObjectURL(r);s(c)}})}catch(r){o(r)}}),!e.workflow)throw new Error("No Workflow ID provided.");this.client=t;const A=e.layouts;this.commandContext=new Oa,this.commandContext.initialize(A,e.reloadedState),this.isReadOnly=e.transaction.isOrdered||!!e.readOnly,this.workflowManager=new io(this,t,e.workflow,((a=e.product.profanities)==null?void 0:a.map(i=>i.word))||[],A,this.commandContext,i=>{try{this.debouncedSavedDesignUpdate()}catch{console.error("Failed to update saved design details.")}return e.stateMutationFunc(i)},e.transaction,e.product,e.stepTags||{},e.previewService,e.renderableContextService,e.reloadedState,e.readOnly,e.modelContainer,e.isReloadedTransaction,e.singleVariantsRenderable,e.delayWorkflowStateSync),this.workflowManager.addSelectionCallback(i=>{const s=i.traversableScenes.map(o=>{const r=o.renderableSteps.map(c=>c.stepName);return{id:o.name,title:o.title,renderableSteps:r,workflowScene:o}});this.renderableScenes=s,this.renderableSceneCallbacks.forEach(o=>o(s))}),this.currentPriceBreak=this.priceBreakToBeApplied()}getBundle(){return this.bundle}setBundle(t){this.bundle=t}getClient(){return this.client}getIsReadOnly(){return this.isReadOnly}getCommandContext(){return this.commandContext}getWorkflowManager(){return this.workflowManager}async createPreviewImage(t,e){var m,f;const A=this.workflowManager.getWorkflow(),a=(m=A==null?void 0:A.finalizeStepConfig)==null?void 0:m.lookAtAnimation;if(t){if(!a)throw new Error("Failed to generate cart preview image!");return await((f=this.workflowManager.getPreviewService())==null?void 0:f.renderSceneScreenshot(e??512,a))||""}let i=2048;e&&e<=2048&&(i=e);const s=dt(i,i),o=this.commandContext.getAllLayouts(),r=A.defaultPreviewPanelIndex||0,c=A.panels[r],l=o.find(p=>{var Q;return((Q=p.layoutState)==null?void 0:Q.layout.panelId)===(c==null?void 0:c.name)})||o[0],g=l.layoutState.layout.previewRegion?{x:l.layoutState.layout.previewRegion.left,y:l.layoutState.layout.previewRegion.top,width:l.layoutState.layout.previewRegion.width,height:l.layoutState.layout.previewRegion.height}:{x:0,y:0,width:l.layoutState.layout.width,height:l.layoutState.layout.height},d=this.commandContext.getLayoutById(l.layoutState.layout.id),B=s.getContext("2d");if(!B)throw new we("Failed to obtain 2D context for preview image creation");const h=Me(d.layoutState.layout,d.layoutState.elements,{renderingConfiguration:{purpose:Ft.Print,region:{left:g.x,top:g.y,width:g.width,height:g.height}}}),C=oa(h);await(await Re.Pith.from(B,C,{anonymousCrossOrigin:!0,ignoreDimensions:!1,createCanvas:dt,createImage:Wt,DOMParser:Ze(),fetch})).render();const E=await this.getCanvasObjectURLAsync(s);return s.toDataURL(E)}getStepById(t){const e=this.getWorkflowManager().getWorkflow().steps.find(i=>i.stepName===t);if(!e||!this.stepHasHandle(e))return;const A=this.cachedStepHandles.get(e.stepName);if(A)return A;const a=Pe.get(this.getWorkflowManager(),e);return this.cachedStepHandles.set(e.stepName,a),a}getSteps(){return this.getScenes().flatMap(t=>this.getStepsByScene(t))}getStepsConditionallyActive(){return this.getScenes().flatMap(t=>this.getStepsByScene(t).filter(e=>mt(e.getRaw(),this.getWorkflowManager().getStepSelections())))}getScenes(){return this.getWorkflowManager().getWorkflow().stepGroups.map(e=>({id:e.id,name:e.name,stepIds:e.stepNames}))}getSelectionPriceSubunits(t){const e=this.getWorkflowManager().getWorkflowSelections();let A=0;return Object.values(e).forEach(a=>{A+=a.selections.reduce((i,s)=>i+(s.priceModifier||0),0)}),this.getPriceSubUnitsAfterPriceBreaks(A,t)}getBasePriceSubunits(t,e){const A=this.getPriceSubUnitsAfterPriceBreaks(this.getWorkflowManager().getProduct().basePrice||0,e);if(t){const a=this.getAdditionalProductPriceSubunits(e)||0;return A+a}return A}getAdditionalProductPriceSubunits(t){var A;const e=this.getWorkflowManager().getTransaction().integrationProduct;if((A=e==null?void 0:e.additionalIntegrationProduct)!=null&&A.product){const a=e.additionalIntegrationProduct.product.basePrice||0;return this.getPriceSubUnitsAfterPriceBreaks(a,t)}}getTotalPriceSubunits(t){return this.getBasePriceSubunits(!1,t)+this.getSelectionPriceSubunits(t)}getPriceSubUnitsAfterPriceBreaks(t,e){const A=e?1:this.priceBreakToBeApplied(),a=t*A;return Math.ceil(a)}priceBreakToBeApplied(){const t=(this.getWorkflowManager().getProduct().priceBreaks||[]).sort((a,i)=>-(a.minQty-i.minQty)),A=[...this.getMatchingExperiencesFromBundle(),this].reduce((a,i)=>a+i.getQuantity(),0);for(const a of t)if(a.minQty<=A)return a.percentage;return 1}checkForPriceBreakChanges(){const t=this.priceBreakToBeApplied();this.currentPriceBreak!==t&&(this.updatePriceBreak(t),this.getMatchingExperiencesFromBundle().forEach(e=>e.updatePriceBreak(t)))}getMatchingExperiencesFromBundle(){var t;return(((t=this.bundle)==null?void 0:t.getWorkflowExperiences())||[]).filter(e=>e.getWorkflowManager().getTransaction().id!==this.getWorkflowManager().getTransaction().id&&e.getWorkflowManager().getProduct().id===this.getWorkflowManager().getProduct().id)}updatePriceBreak(t){this.currentPriceBreak=t,this.callEvent("PriceBreakChanged")}async copySelectionsViaGlobalConfiguration(t,e,A){const a=await t.getGlobalProperties(),i=A==null?void 0:A.map(c=>c.getId()),s=this.getSteps().filter(c=>i===void 0||i.includes(c.getId())),o=e.getSteps(),r=c=>a.find(l=>l.getRawProperty().name===c.aspectName);s.forEach(c=>{const l=new Set,g=c.getRaw().globalPropertyAspectConfigurations;g!==void 0&&(g.forEach(d=>l.add(JSON.stringify(d))),o.forEach(d=>{const B=d.getRaw().globalPropertyAspectConfigurations;B!==void 0&&B.forEach(h=>{const C=r(h),u=l.has(JSON.stringify(h));if(u&&(C==null?void 0:C.getType())==="Option"){const E=d.getCurrentVariant();if(!E)return;c.selectVariant(E),l.delete(JSON.stringify(h))}else if(u&&(C==null?void 0:C.getType())==="Text"){const E=d.getText();c.setText(E),l.delete(JSON.stringify(h))}})}))})}getStepByName(t){const e=this.getWorkflowManager().getWorkflow().steps.find(A=>A.stepTitle===t);if(!(!e||!this.stepHasHandle(e)))return Pe.get(this.getWorkflowManager(),e)}getStepsByType(t){return this.getWorkflowManager().getWorkflow().steps.filter(e=>e.type===t).map(e=>Pe.get(this.getWorkflowManager(),e))}getStepsByScene(t){if(!this.getWorkflowManager().getWorkflow().stepGroups.find(A=>A.name===t.name))throw new Error("Given scene is not present on workflow! Be careful when persisting scenes that you only use them with the relevant workflow.");return t.stepIds.map(A=>this.getWorkflowManager().getWorkflow().steps.find(a=>a.stepName===A)).filter(A=>this.stepHasHandle(A)).map(A=>Pe.get(this.getWorkflowManager(),A))}async attachCustomerDetails(t){return this.assignCustomerDetails({emailAddress:t.email})}async assignCustomerDetails(t){var s,o,r;const A=(v.getMap("transactionOwnerIds")||new Map).get(this.getWorkflowManager().getTransaction().id),i=(r=(o=(s=(await N.getShadowGraphqlClient().mutate({mutation:ho,variables:{id:this.getWorkflowManager().getTransaction().id,details:t,type:"Owner"},context:{transactionOwnerId:A}})).data)==null?void 0:s.transactionAddStakeholder)==null?void 0:o.stakeholders)==null?void 0:r.find(c=>{var l;return((l=c.customer)==null?void 0:l.emailAddress)===t.emailAddress});if(i!=null&&i.customer){this.getWorkflowManager().setTransactionCustomer(i.customer);const c=v.getMap("transactionCustomerIds")||new Map;c.set(this.getWorkflowManager().getTransaction().id,i.customer.id),v.setMap("transactionCustomerIds",c)}}attachRenderableSceneListener(t){this.renderableSceneCallbacks.push(t),t(this.renderableScenes)}detachRenderableSceneListener(t){this.renderableSceneCallbacks=this.renderableSceneCallbacks.filter(e=>e!==t)}async save(t){if(!this.getCommandContext().getState())throw new L("State undefined!");const a={title:await(async()=>{var r;if(t)return t;const i=this.getWorkflowManager().getTransaction().id,o=(r=(await Ne.getSavedDesigns()).find(c=>c.transactionId===i))==null?void 0:r.title;return o||"My design"})(),thumbnail:await this.createPreviewImage(!1,256),transactionId:this.getWorkflowManager().getTransaction().id,productId:this.getWorkflowManager().getProduct().id,integrationProductId:this.getWorkflowManager().getTransaction().integrationProduct.id,workflowName:this.getWorkflowManager().getWorkflow().name,workflowId:this.getWorkflowManager().getWorkflow().id,lastEdited:new Date};return await Ne.addDesign(a),a}async copy(){var o;const t=Dt(this.getCommandContext().getState());if(!t)throw new L("Internal state is undefined! Cannot copy experience!");const e=JSON.stringify(t.transaction),A=this.getWorkflowManager().getWorkflow(),a=new bn({}),i=(o=this.getWorkflowManager().getTransaction().integrationProduct)==null?void 0:o.id;if(!i)throw new L("Integration product id is undefined!");return await a.initFromIntegrationProduct(i),await a.getWorkflowExperience(A.id,e,void 0)}async onDesignFinished(t,e=!0){return Dn(this.workflowManager,this.workflowManager.getWorkflow(),this.workflowManager.getLayouts(),()=>this.commandContext.getState(),this.workflowManager.getProduct(),this.workflowManager.getTransaction(),this.workflowManager.getWorkflowSelections(),this.workflowManager.getWorkflow().name,t||(()=>{}),A=>e?this.createPreviewImage(A,1024):Promise.resolve(void 0),this.workflowManager.getWorkflowMetadata())}stepHasHandle(t){return t.type!==S.SilentIllustration&&t.type!==S.ProductOverlay}getExportedData(){var a;const t=new Map,e=this.getWorkflowManager().getWorkflowMetadata(),A=this.getWorkflowManager().getWorkflowSelections();return Object.keys(e).forEach(i=>{const s=this.workflowManager.getWorkflow().steps.find(r=>r.stepName===i);if(!s)return;t.has(s.stepTitle)||t.set(s.stepTitle,{});const o=e[i];Object.keys(o).forEach(r=>{t.get(s.stepTitle)[r]=o[r]})}),(a=Object.keys(A))==null||a.forEach(i=>{const s=this.workflowManager.getWorkflow().steps.find(o=>o.stepName===i);s&&(t.has(s.stepTitle)||t.set(s.stepTitle,{}),t.get(s.stepTitle).selection=A[i].selections[0].name)}),t}getQuantity(){return this.getWorkflowManager().getTransaction().quantity||1}async setQuantity(t){if(t<1)throw new RangeError("WorkflowExperience quantity must be greater than zero.");if(this.isReadOnly)throw new Error("Cannot update quantity on a read-only WorkflowExperience");this.getWorkflowManager().getTransaction().quantity=t,this.callEvent("QuantityChanged"),this.checkForPriceBreakChanges();const e=v.getMap("transactionOwnerIds")||new Map,A=this.getWorkflowManager().getTransaction(),a=e.get(A.id)||void 0;await N.getShadowGraphqlClient().mutate({mutation:Pi,variables:{id:A.id,quantity:t},context:{transactionOwnerId:a}})}addEventListener(t,e){const A=this.eventCallbacks.get(t)||[];A.push(e),this.eventCallbacks.set(t,A)}removeEventListener(t,e){const A=this.eventCallbacks.get(t)||[];this.eventCallbacks.set(t,A.filter(a=>a!==e))}callEvent(t){(this.eventCallbacks.get(t)||[]).forEach(e=>e(this))}}const Co=["altGlyph","circle","ellipse","path","polygon","polyline","rect","text","textPath","tref","tspan"],wo=async(n,t,e)=>{const A=t.data,a=e.data.baseUrl,i=A.assetUrl.replace("localhost","localstack"),s=a.slice(0,4)==="http"?"":"https://",o=new URL(s+a);o.searchParams.append("video",ra(JSON.stringify([{href:i}]))),o.pathname=o.pathname+(o.pathname.slice(-1)==="/"?"":"/");const r=o.toString(),l=`data:image/svg+xml;base64,${ra(await KA.toString(r,{type:"svg"}))}`,g=B=>{const h=n.find(u=>u.panelId===B.panelId);if(!h)throw new q(B);const C=b();return new K({id:C,src:l,type:H.Image,y:B.top,x:B.left,width:B.width,height:B.height,rotation:0},h)},d=e.data.regions;try{return d.map(g)}catch(B){return console.error(B),[]}},uo=async(n,t,e,A)=>{const a=e.data,i=a.assetUrl,s=await iA(i);try{const o=Ti(a,A.option);o&&(t[A.stepName]={selectedVariants:[o]});const r=async c=>{var C;const l=await Da(c,(C=o==null?void 0:o.asset)==null?void 0:C.fileLink),g=await te(l),d=b(),B=n.find(u=>u.panelId===c.panelId);if(!B)throw new q(c);const h=nA(s,g,{scale:a.scale,left:a.x,top:a.y},A.data.forceImageCover);return[new K({id:d,path:g.path,type:H.Frame,forceImageCover:A.data.forceImageCover,x:c.left,y:c.top,width:c.width,height:c.height,layer:c.layer,layerIndex:c.layerIndex,rotation:c.rotation,scaleX:c.width/g.width,scaleY:c.height/g.height,pattern:{id:`${d}-pattern`,src:s.src,x:h.x,y:h.y,width:s.width,height:s.height,rotation:0,scaleX:h.zoom,scaleY:h.zoom,svg:s.svg,colors:s.colors}},B)]};return(await Promise.all(A.data.regions.map(c=>r(c)))).flat()}catch(o){return console.error(o),[]}},Eo=async(n,t,e,A)=>{var Q,I;const a=e.data,i=A.option;if(!i)return console.error(`No option for step ${A.stepName}.`),[];const s=((Q=i.variants)==null?void 0:Q.find(D=>D.id===a.illustrationVariantId))||_t(i);if(!s)return console.error(`No variant with ID: ${a.illustrationVariantId}`),[];if(!s.asset)return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`),[];t[A.stepName]={selectedVariants:[s]};const o=(I=s.asset)==null?void 0:I.fileLink;if(!o)return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`),[];const r=await tt(o,!0),c=/<svg.*?<\/svg>/s,l=r.match(c)||[],g=(l==null?void 0:l.length)>0?l[0]:"",h=gt().parseFromString(g,"image/svg+xml").firstElementChild;if(!h)return console.error("Failed to read SVG."),[];Ie(h);const C={};kt(h,D=>{Co.includes(D.tagName)&&!D.attributes.getNamedItem("fill")&&D.setAttribute("fill","#000000");const y=D.attributes.getNamedItem("fill");if(y&&y.value!=="none"){const P=y.value,Y=`spiff-fill-${P.replace(/\W/g,"")}`;D.classList.add(Y),C[Y]={browserValue:P}}const M=D.attributes.getNamedItem("stroke");if(M&&M.value!=="none"){const P=M.value,Y=`spiff-stroke-${P.replace(/\W/g,"")}`;D.classList.add(Y),C[Y]={browserValue:P}}});const E=Kt().serializeToString(h),m=a.colors;if(m){for(const[D,y]of Object.entries(C))for(const M of Object.keys(m))if(y.browserValue===M){C[D]={browserValue:m[M]};break}}const f=D=>{const y=n.find(P=>P.panelId===D.panelId);if(!y)throw new q(D);const M=b();return new K({colors:C,id:M,svg:E,type:H.Illustration,y:D.top,x:D.left,rotation:D.rotation,width:D.width,height:D.height,layer:D.layer,layerIndex:D.layerIndex,immutable:D.immutable},y)},p=A.data.regions;try{return p.map(f)}catch(D){return console.error(D),[]}},mo=async(n,t,e)=>{const A=await rn(e.data.module),a=t.data,i=(o,r)=>{const c=n.find(g=>g.panelId===r.panelId);if(!c)throw new q(r);const l=b();return new K({colors:{},id:l,svg:o,type:H.Illustration,y:r.top,x:r.left,rotation:r.rotation,width:r.width,height:r.height,layer:r.layer,layerIndex:r.layerIndex},c)},s=e.data.regions;try{return s.map(o=>i(A.svgPrint(a.text,o),o))}catch(o){return console.error(o),[]}},fo=async(n,t,e,A)=>{var l,g;const a=e.data,i=A.option;if(!i)return console.error(`No option for step ${A.stepName}.`),[];const s=((l=i.variants)==null?void 0:l.find(d=>d.id===a.pictureVariantId))||_t(i);if(!s)return console.error(`No variant with ID: ${a.pictureVariantId}`),[];if(!s.asset)return console.error(`No asset for variant with ID: ${a.pictureVariantId}`),[];t[A.stepName]={selectedVariants:[s]};const o=(g=s.asset)==null?void 0:g.fileLink;if(!o)return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`),[];const r=d=>{const B=n.find(C=>C.panelId===d.panelId);if(!B)throw new q(d);const h=b();return new K({id:h,src:o,type:H.Image,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable,preserveAspectRatio:"none"},B)},c=A.data.regions;try{return c.map(r)}catch(d){return console.error(d),[]}},Qo=async(n,t,e,A)=>{var c;const a=e.data,i=A.option;if(!i)return console.error(`No option for step ${A.stepName}.`),[];const s=((c=i.variants)==null?void 0:c.find(l=>l.id===a.colorVariantId))||_t(i);if(!s)return console.error(`No variant with ID: ${a.colorVariantId}`),[];t[A.stepName]={selectedVariants:[s]};const o=l=>{const g=n.find(u=>u.panelId===l.panelId);if(!g)throw new q(l);const d=`
2218
- <svg
2219
- xmlns="http://www.w3.org/2000/svg"
2220
- xmlnsXlink="http://www.w3.org/1999/xlink"
2221
- xmlSpace="preserve"
2222
- preserveAspectRatio="none"
2223
- version="1.1"
2224
- width="1"
2225
- height="1"
2226
- viewBox="0 0 1 1"
2227
- >
2228
- <rect
2229
- x="0"
2230
- y="0"
2231
- width="1"
2232
- height="1"
2233
- class="spiff-fill-shape"
2234
- fill="${s==null?void 0:s.color}"
2235
- />
2236
- </svg>
2237
- `,h={"spiff-fill-shape":{browserValue:s.color||"#000000"}},C=b();return new K({colors:h,id:C,svg:d,type:H.Illustration,y:l.top,x:l.left,rotation:l.rotation,width:l.width,height:l.height,layer:l.layer,layerIndex:l.layerIndex,immutable:l.immutable},g)},r=A.data.regions;try{return r.map(o)}catch(l){return console.error(l),[]}},po=async(n,t,e)=>{const A=[],i=(()=>{var c,l;return t.type===S.ProductOverlay?e||((c=t.data.asset)==null?void 0:c.fileLink)||"":((l=t.data.asset)==null?void 0:l.fileLink)||""})(),o=(()=>i.endsWith(".jpeg")||i.endsWith(".jpg")||i.endsWith(".png")?H.Image:(i.endsWith(".svg"),H.Illustration))(),r=t.data.regions;if(o==="image")try{r.forEach(c=>{const l=n.find(d=>d.panelId===c.panelId);if(!l)throw new q(c);const g={id:b(),src:i,type:o,y:c.top,x:c.left,width:c.width,height:c.height,layer:c.layer,layerIndex:c.layerIndex,productOverlay:t.type===S.ProductOverlay?!0:void 0,scaleX:1,scaleY:1,rotation:c.rotation,excludeFromExport:t.data.excludeFromPrint,preserveAspectRatio:"none"};A.push(new K(g,l))})}catch(c){console.error(c)}else{const c=await tt(i,!0),l=g=>{const d=/<svg.*?<\/svg>/s,B=g.match(d)||[],h=(B==null?void 0:B.length)>0?B[0]:"",E=gt().parseFromString(h,"image/svg+xml").firstElementChild;if(!E)throw new Mt("Failed to read SVG.");return Ie(E),Kt().serializeToString(E)};r.forEach(g=>{const d=n.find(h=>h.panelId===g.panelId);if(!d)throw new q(g);const B={id:b(),src:i,asset_key:i,svg:l(c),colors:{},type:o,y:g.top,x:g.left,width:g.width,height:g.height,layer:g.layer,layerIndex:g.layerIndex,scaleX:1,scaleY:1,rotation:g.rotation,productOverlay:t.type===S.ProductOverlay?!0:void 0,excludeFromExport:t.data.excludeFromPrint};A.push(new K(B,d))})}return A},Io=async(n,t,e,A)=>{const a=[],i=e.data,s=30,o=u=>u.vertical?"center":u.textAlign||"center",r=()=>{var f;const u=A.option;if(!u)return;const E=((f=u.variants)==null?void 0:f.find(p=>p.id===i.fontVariantId))||_t(u);if(!E||!E.asset)return;t[A.stepName]={selectedVariants:[E]};const m=E.asset.fileLink;if(m)return m},l=await(async()=>{const u=r();if(!u)return;const E=await bt(u);return{assetUrl:u,name:E.names.fullName.en}})(),g=(A.data.replaceableText?A.data.replaceableText.replace("{{}}",i.text):i.text)||"",d=ye(g,{vertical:A.data.vertical,uppercase:A.data.uppercase}),B=async u=>{const E=u.colorOption;if(!E)return;const m=et.getDefaultVariant(E);return m==null?void 0:m.color},h=i.color||await B(A.data),C=A.data.regions;for(const u of C){const E=n.find(f=>f.panelId===u.panelId);if(!E)continue;const m={stepName:e.name,id:b(),align:o(A.data),curved:A.data.curved,fill:i.color||h||"#000000",fontData:l,fontSize:A.data.size||s,height:u.height,layer:u.layer,layerIndex:u.layerIndex,paths:A.data.paths,rotation:u.rotation,text:d,type:H.Textbox,vertical:A.data.vertical,verticalAlign:A.data.verticalAlign||"middle",width:u.width,x:u.left,y:u.top};if(l){const[f,p]=ce(A.data.size||s,l,u,[ye(d,{vertical:A.data.vertical,uppercase:A.data.uppercase})],{size:A.data.size,minSize:A.data.minSize,maxSize:A.data.maxSize});a.push(new K({...m,fontSize:f,text:m.curved?m.text:(p||[]).join(`
2238
- `)},E))}else a.push(new K(m,E))}return a},Do=(n,t)=>n.conditions?n.conditions.every(e=>{const A=t[e.targetStepName];if(A&&A.selectedVariants){const a=A.selectedVariants;return e.requiredVariantSelections.some(i=>a.find(s=>s.id===i)!==void 0)}return!1}):!0,yn=async(n,t,e,A)=>{const a=[],i={};for(const s of n){const o=t.steps.find(r=>r.stepName===s.name);if(o)switch(o.type){case S.DigitalContent:a.push(...await wo(e,s,o));break;case S.Frame:case S.Photo:a.push(...await uo(e,i,s,o));break;case S.Illustration:a.push(...await Eo(e,i,s,o));break;case S.Module:a.push(...await mo(e,s,o));break;case S.Picture:a.push(...await fo(e,i,s,o));break;case S.Shape:a.push(...await Qo(e,i,s,o));break;case S.Text:a.push(...await Io(e,i,s,o));break}}for(const s of t.steps)s.type!==S.SilentIllustration&&s.type!==S.ProductOverlay||Do(s,i)&&a.push(...await po(e,s,A));return a};class ke{constructor(t){this.handleCompleteRender=null;const e=new Map;t.forEach(A=>e.set(A.id,new yo(A.id,A.name,this,{width:A.width,height:A.height}))),this.layouts=e}setCompleteRenderCallback(t){this.handleCompleteRender=t,t(Array.from(this.layouts.values()))}onCompleteRender(){this.handleCompleteRender&&this.handleCompleteRender(Array.from(this.layouts.values()))}getAll(){return this.layouts}}const Fo=(()=>new Promise((n,t)=>{try{const A=dt().getContext("webgl2");n(!!A)}catch{n(!1)}}))();class yo{constructor(t,e,A,a){this.hasSetStaticContext=!1,this.interactiveDirty=!1,this.staticCtxDirty=!1,this.lastRequestedRenderArguments=void 0,this.lastCompletedStaticRender=void 0,this.renderQueue=new eA(2),this.id=t,this.name=e,this.service=A,this.panelSize=a}getID(){return this.id}getName(){return this.name}getPanelSize(){return this.panelSize}getStaticContext(){return this.textureCtx}setStaticContext(t){this.textureCtx=t,this.lastRequestedRenderArguments&&this.render(this.lastRequestedRenderArguments)}getStaticContextDirty(){return this.staticCtxDirty}setStaticContextDirty(t){this.staticCtxDirty=t}getInteractiveCanvasDirty(){return this.interactiveDirty}setInteractiveCanvasDirty(t){this.interactiveDirty=t}markLastCompletedStaticRender(){this.lastCompletedStaticRender=Date.now(),this.service.onCompleteRender()}getLastCompletedStaticRender(){return this.lastCompletedStaticRender}async render(t){const e=Dt(t);this.lastRequestedRenderArguments=e;const A=this.getStaticContext();if(!A){this.markLastCompletedStaticRender(),this.setStaticContextDirty(!1);return}this.renderQueue.enqueue(new Mo(this.getID(),A,await Fo,()=>{this.markLastCompletedStaticRender(),this.setStaticContextDirty(!0)},e))}}class Mo extends tA{constructor(t,e,A,a,i){super(),this.layoutId=t,this.ctx=e,this.nonPOTSupport=A,this.onRender=a,this.layouts=i}getDynamicTextureResolution(){return this.getIsMobile()||!this.offscreenRenderingSupported()?{width:1024,height:1024}:{width:2048,height:2048}}getIsMobile(){return window.innerWidth<=480}offscreenRenderingSupported(){return navigator.userAgent.includes("SamsungBrowser")?!1:!!window.Worker&&!!window.OffscreenCanvas}resizeFit(t,e=4096){const A=e/t.width,a=e/t.height,i=Math.min(A,a);return i>1?t:{width:t.width*i,height:t.height*i}}async execute(){const t=this.layouts.find(B=>B.layoutState.layout.id===this.layoutId);if(!t)return;const e=t.layoutState.elements||[],A=t.layoutState.layout.width,a=t.layoutState.layout.height,i=A===1||a===1?{width:1,height:1}:this.getDynamicTextureResolution(),s=i.width,o=i.height;let r,c;if(this.nonPOTSupport){const B=s/o;A/a<B?(r=s,c=a*(s/A)):(r=A*(o/a),c=o);const C=this.resizeFit({width:r,height:c});r=C.width,c=C.height}else r=i.width,c=i.height;const l=Me(t.layoutState.layout,e,{renderingConfiguration:{purpose:Ft.ThreeD}}),g=oa(l),d=await Re.Pith.from(this.ctx,g,{anonymousCrossOrigin:!0,ignoreDimensions:!this.nonPOTSupport,ignoreAnimation:!0,ignoreClear:!0,ignoreMouse:!0,enableRedraw:!1,createCanvas:dt,createImage:Wt,DOMParser:Ze(),fetch});d.resize(r,c),await d.render(),this.onRender()}}const So=(n,t)=>{const e=[];return n.forEach(A=>{const a=t.steps.find(i=>i.stepName===A.stepName);(a==null?void 0:a.type)===S.Text&&A.stepAspectType==="Text"&&e.push({name:a.stepName,data:{text:A.value}})}),e},xo=async(n,t,e,A)=>{let a={serializableWorkflow:{steps:[]},layouts:{}};a=new O(e.map(r=>new wA(r))).apply(a);const s=await yn(n,t,e,A);return new O(s).apply(a)},Yo=F.gql`
2239
- ${Yt}
2240
- fragment ProductFields on Product {
2241
- id
2242
- basePrice
2243
- enabled
2244
- imageUrl
2245
- integrationProducts {
2246
- id
2247
- externalProductId
2248
- externalVariantId
2249
- additionalExternalProductId
2250
- additionalExternalVariantId
2251
- additionalIntegrationProduct {
2252
- ...AdditionalIntegrationProductFields
2253
- }
2254
- integration {
2255
- id
2256
- enabled
2257
- externalIntegrationId
2258
- type
2259
- isCurrent
2260
- }
2261
- }
2262
- modelUrl
2263
- name
2264
- description
2265
- overlayImageUrl
2266
- preloadImageUrl
2267
- sku
2268
- skuCode
2269
- workflows {
2270
- id
2271
- index
2272
- friendlyName
2273
- isPresent
2274
- workflowName
2275
- imageUrl
2276
- }
2277
- productTags {
2278
- id
2279
- name
2280
- }
2281
- }
2282
- `,Mn=F.gql`
2283
- ${Yo}
2284
- fragment ProductCollectionProductFields on ProductCollectionProduct {
2285
- id
2286
- productId
2287
- workflowId
2288
- product {
2289
- ...ProductFields
2290
- }
2291
- }
2292
- `,He=n=>F.gql`
2293
- ${n?Mn:""}
2294
- fragment ProductCollectionFields on ProductCollection {
2295
- id
2296
- name
2297
- description
2298
- image {
2299
- key
2300
- name
2301
- fileLink
2302
- }
2303
- globalPropertyConfiguration {
2304
- id
2305
- aspects {
2306
- name
2307
- type
2308
- title
2309
- description
2310
- entityId
2311
- conditions {
2312
- targetAspectName
2313
- action
2314
- requiredVariantSelections
2315
- }
2316
- }
2317
- }
2318
- ${n?"productCollectionProducts { ...ProductCollectionProductFields }":""}
2319
- transformCollection {
2320
- id
2321
- name
2322
- transforms {
2323
- id
2324
- name
2325
- position {
2326
- x
2327
- y
2328
- z
2329
- }
2330
- rotation {
2331
- x
2332
- y
2333
- z
2334
- }
2335
- scale {
2336
- x
2337
- y
2338
- z
2339
- }
2340
- }
2341
- }
2342
- }
2343
- `,Po=n=>F.gql`
2344
- ${He(n)}
2345
- query GetBundle($id: String!) {
2346
- bundles(ids: [$id]) {
2347
- id
2348
- bundleStateData
2349
- metadata {
2350
- key
2351
- value
2352
- }
2353
- name
2354
- partner {
2355
- id
2356
- }
2357
- productCollection {
2358
- ...ProductCollectionFields
2359
- }
2360
- transactions {
2361
- id
2362
- }
2363
- }
2364
- }
2365
- `,vo=F.gql`
2366
- query GetBundleStakeholders($id: String!) {
2367
- bundles(ids: [$id]) {
2368
- id
2369
- bundleStakeholders {
2370
- id
2371
- customer {
2372
- id
2373
- emailAddress
2374
- firstName
2375
- lastName
2376
- phoneNumber
2377
- partner {
2378
- id
2379
- }
2380
- }
2381
- type
2382
- }
2383
- }
2384
- }
2385
- `,No=F.gql`
2386
- query GetBundlesForCustomer($id: String!) {
2387
- customers(ids: [$id]) {
2388
- bundleStakeholders {
2389
- id
2390
- type
2391
- bundle {
2392
- id
2393
- name
2394
- createdAt
2395
- metadata {
2396
- key
2397
- value
2398
- }
2399
- partner {
2400
- id
2401
- }
2402
- }
2403
- }
2404
- }
2405
- }
2406
- `,ko=F.gql`
2407
- ${Mn}
2408
- query GetProductCollectionProducts($id: String!, $productIds: [String!]) {
2409
- productCollections(ids: [$id], productIds: $productIds) {
2410
- id
2411
- productCollectionProducts {
2412
- ...ProductCollectionProductFields
2413
- }
2414
- }
2415
- }
2416
- `,Ho=n=>F.gql`
2417
- ${He(n)}
2418
- mutation CreateBundle(
2419
- $collectionId: String
2420
- $initialMetadata: [MetadataInput!]
2421
- $marketplaceThemeInstallId: String
2422
- $marketplaceThemeInstallConfigurationId: String
2423
- ) {
2424
- bundleCreate(
2425
- collectionId: $collectionId
2426
- metadata: $initialMetadata
2427
- marketplaceThemeInstallId: $marketplaceThemeInstallId
2428
- marketplaceThemeInstallConfigurationId: $marketplaceThemeInstallConfigurationId
2429
- ) {
2430
- id
2431
- bundleOwnerId
2432
- metadata {
2433
- key
2434
- value
2435
- }
2436
- name
2437
- partner {
2438
- id
2439
- }
2440
- productCollection {
2441
- ...ProductCollectionFields
2442
- }
2443
- }
2444
- }
2445
- `,bo=n=>F.gql`
2446
- ${He(n)}
2447
- mutation DuplicateBundle(
2448
- $id: String!
2449
- $template: Boolean
2450
- $marketplaceThemeInstallId: String
2451
- $marketplaceThemeInstallConfigurationId: String
2452
- $duplicateTransactions: Boolean
2453
- ) {
2454
- bundleDuplicate(
2455
- id: $id
2456
- template: $template
2457
- marketplaceThemeInstallId: $marketplaceThemeInstallId
2458
- marketplaceThemeInstallConfigurationId: $marketplaceThemeInstallConfigurationId
2459
- duplicateTransactions: $duplicateTransactions
2460
- ) {
2461
- id
2462
- bundleOwnerId
2463
- metadata {
2464
- key
2465
- value
2466
- }
2467
- name
2468
- partner {
2469
- id
2470
- }
2471
- productCollection {
2472
- ...ProductCollectionFields
2473
- }
2474
- }
2475
- }
2476
- `,Uo=F.gql`
2477
- mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
2478
- bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2479
- id
2480
- }
2481
- }
2482
- `,Ro=F.gql`
2483
- mutation BundleAddTransaction($id: String!, $transactionId: String!) {
2484
- bundleAddTransaction(id: $id, transactionId: $transactionId) {
2485
- id
2486
- }
2487
- }
2488
- `,Go=F.gql`
2489
- mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
2490
- bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
2491
- id
2492
- }
2493
- }
2494
- `,To=F.gql`
2495
- mutation BundleRemoveTransaction(
2496
- $id: String!
2497
- $transactionId: String!
2498
- $name: String
2499
- $metadata: [MetadataInput!]
2500
- $bundleStateData: String
2501
- ) {
2502
- bundleRemoveTransaction(id: $id, transactionId: $transactionId) {
2503
- id
2504
- }
2505
- bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2506
- id
2507
- }
2508
- }
2509
- `,Jo=F.gql`
2510
- mutation BundleRemoveTransactions(
2511
- $id: String!
2512
- $transactionIds: [String!]!
2513
- $name: String
2514
- $metadata: [MetadataInput!]
2515
- $bundleStateData: String
2516
- ) {
2517
- bundleRemoveTransactions(id: $id, transactionIds: $transactionIds) {
2518
- id
2519
- }
2520
- bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2521
- id
2522
- }
2523
- }
2524
- `,Oo=F.gql`
2525
- mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
2526
- bundleAddStakeholder(id: $id, details: $details, type: $type) {
2527
- id
2528
- bundleStakeholders {
2529
- id
2530
- customer {
2531
- id
2532
- emailAddress
2533
- firstName
2534
- lastName
2535
- phoneNumber
2536
- partner {
2537
- id
2538
- }
2539
- }
2540
- type
2541
- }
2542
- }
2543
- }
2544
- `,Lo=F.gql`
2545
- mutation BundleAddStakeholder($id: String!, $emailAddress: String!) {
2546
- bundleRemoveStakeholder(id: $id, emailAddress: $emailAddress) {
2547
- id
2548
- }
2549
- }
2550
- `,zo=F.gql`
2551
- mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
2552
- bundleUpdateStakeholders(id: $id, input: $input) {
2553
- id
2554
- bundleStakeholders {
2555
- id
2556
- customer {
2557
- id
2558
- emailAddress
2559
- firstName
2560
- lastName
2561
- phoneNumber
2562
- partner {
2563
- id
2564
- }
2565
- }
2566
- type
2567
- }
2568
- }
2569
- }
2570
- `,jo=F.gql`
2571
- mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
2572
- bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
2573
- id
2574
- }
2575
- }
2576
- `,Ko=n=>F.gql`
2577
- ${He(n)}
2578
- mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
2579
- bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
2580
- id
2581
- productCollection {
2582
- ...ProductCollectionFields
2583
- }
2584
- }
2585
- }
2586
- `,Vo=n=>F.gql`
2587
- query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
2588
- customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
2589
- items {
2590
- id
2591
- name
2592
- template
2593
- templateStatus
2594
- productCollection {
2595
- id
2596
- name
2597
- description
2598
- image {
2599
- key
2600
- name
2601
- fileLink
2602
- }
2603
- }
2604
- ${n?"metadata { key, value }":""}
2605
- }
2606
- total
2607
- }
2608
- }
2609
- `;class Wo{constructor(t){this.handleCache={},this.bundle=t}async getHandle(t){if(this.handleCache[t.name])return this.handleCache[t.name];const e=await this.createHandle(t);return this.handleCache[t.name]=e,e}async getHandles(){var e;if(!((e=this.bundle.getProductCollection())!=null&&e.getResource().globalPropertyConfiguration))return[];const t=this.bundle.getProductCollection().getResource().globalPropertyConfiguration;return Promise.all(t.aspects.map(A=>this.getHandle(A)))}applyConditionsFromState(t,e){return e?t.filter(A=>this.aspectConditionsSatisfied(A.getRawProperty(),e)):t}aspectConditionsSatisfied(t,e){return!t.conditions||t.conditions.length===0?!0:t.conditions.some(A=>{const a=e.aspects.find(i=>i.name===A.targetAspectName);return a?A.requiredVariantSelections.some(i=>i===a.value):!1})}async createHandle(t){switch(t.type){case st.FileUpload:return new Sn(this.bundle,t);case st.ColorOption:return new HA(this.bundle,t,t.entityId?await et.getOption(t.entityId):void 0);case st.Option:{const e=t.entityId?await et.getOption(t.entityId):void 0;return(e==null?void 0:e.type)==="Color"?new HA(this.bundle,t,e):new kA(this.bundle,t,e)}case st.Text:return new xn(this.bundle,t);default:throw new Error("Unhandled Global Property Aspect Type")}}}class be{constructor(t,e){this.bundle=t,this.property=e}getName(){return this.property.name}getTitle(){return this.property.title}getDescription(){return this.property.description}getType(){return this.property.type}getRawProperty(){return this.property}getSharedSteps(t){return(t??this.bundle.getWorkflowExperiences()).flatMap(a=>a.getStepsConditionallyActive().filter(i=>{var s;return i.getOverrideGlobalPropertyConfiguration(this.property.type)?!1:(s=i.getRaw().globalPropertyAspectConfigurations)==null?void 0:s.some(o=>{var r,c;return o.globalPropertyConfigurationId===((c=(r=this.bundle.getProductCollection())==null?void 0:r.getResource().globalPropertyConfiguration)==null?void 0:c.id)&&o.aspectName===this.property.name})}))}getStateValue(){return this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name)}}class Sn extends be{constructor(t,e){super(t,e)}async selectImage(t){const e=this.bundle.getGlobalPropertyStateManager();await Promise.all([e.setAspect(this.property.name,t.key,{...e.getAspectStorage(this.property.name)||{},originalAssetKey:t.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}),this.applyImageSelection(t)])}async canUseBackgroundRemover(){return this.bundle.getClient().canUseAddon(he.BackgroundRemover)}async removeBackgroundFromImage(t=!0){if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const e=await this.getOriginalImage();if(!e)throw new Error("You must supply an image selection before attempting to remove the background.");const A=this.bundle.getGlobalPropertyStateManager(),a=await T.removeBackgroundFromAsset(e),s={...A.getAspectStorage(this.property.name),backgroundRemovedAssetKey:a.key,useOriginalAsset:!t},r=[t?A.setAspect(this.property.name,a.key,s):A.setAspectStorage(this.property.name,s)];return t&&r.push(this.applyImageSelection(a,void 0,!1,!1)),await Promise.all(r),this.updateSharedStepStorage(s),a}hasImage(){return!!this.getStateValue()}async getImage(){const t=this.getStateValue();if(t)return T.getLocalOrFromServer(t)}async getOriginalImage(){const t=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);if(t!=null&&t.originalAssetKey)return T.getLocalOrFromServer(t.originalAssetKey)}async getBackgroundRemovedImage(){const t=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);if(t!=null&&t.backgroundRemovedAssetKey)return T.getLocalOrFromServer(t.backgroundRemovedAssetKey)}getUseOriginalImage(){var t;return((t=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name))==null?void 0:t.useOriginalAsset)??!1}async setUseOriginalImage(t){const e=await this.getOriginalImage();if(!e)throw new Error("You must select an image before calling setUseOriginalImage");const A=this.bundle.getGlobalPropertyStateManager(),a=A.getAspectStorage(this.property.name);if((a==null?void 0:a.useOriginalAsset)===t)return;const i={...a,useOriginalAsset:t},s=t?a==null?void 0:a.originalAssetKey:a==null?void 0:a.backgroundRemovedAssetKey,o=[A.setAspect(this.property.name,s||"",i)];if(t)o.push(this.applyImageSelection(e,void 0,!1,!1));else{const r=async()=>{const c=await this.getBackgroundRemovedImage();if(!c)throw new Error("You must call removeBackgroundFromImage before attempting to use that version of the image.");this.applyImageSelection(c,void 0,!1,!1)};o.push(r())}this.updateSharedStepStorage(i)}async applyGlobalState(t){const e=this.getStateValue();if(!e)return;const A=await T.getLocalOrFromServer(e);if(!A)return;const a=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);await this.applyImageSelection(A,t,!1,!0),a?this.updateSharedStepStorage({...a}):(this.updateSharedStepStorage({originalAssetKey:e}),await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name,{originalAssetKey:e}))}async applyImageSelection(t,e,A=!0,a=!0){const s=this.getSharedSteps(e).map(o=>{const r=o;if(r.getFrameService())return r.selectImage(t,A,a)});await Promise.all(s)}updateSharedStepStorage(t){this.bundle.getWorkflowExperiences().forEach(A=>A.getSteps().forEach(a=>{var s;if(a.getOverrideGlobalPropertyConfiguration(this.property.type))return;((s=a.getRaw().globalPropertyAspectConfigurations)==null?void 0:s.some(o=>{var r,c;return o.globalPropertyConfigurationId===((c=(r=this.bundle.getProductCollection())==null?void 0:r.getResource().globalPropertyConfiguration)==null?void 0:c.id)&&o.aspectName===this.property.name}))&&A.getWorkflowManager().updateStorage(a.getId(),{framePatternData:t})}))}}class xn extends be{constructor(t,e){super(t,e)}getText(){const t=this.getStateValue();return t||""}async setText(t){await Promise.all([this.bundle.getGlobalPropertyStateManager().setAspect(this.property.name,t),this.applyTextSelection(t)])}async applyGlobalState(t){const e=this.getStateValue();if(!e)return Promise.resolve();await this.applyTextSelection(e,t)}async applyTextSelection(t,e){const a=this.getSharedSteps(e).map(i=>{i.setText(t)});await Promise.all(a)}}class kA extends be{constructor(t,e,A){super(t,e),this.optionResource=A}getCurrentVariant(){var e,A;if(!this.optionResource)return;const t=this.getStateValue();if(t){const a=(A=this.optionResource.variants)==null?void 0:A.find(i=>i.id===t);return a?new ot(a):void 0}else{const a=(e=this.optionResource.variants)==null?void 0:e.find(i=>{var s,o;return i.id===((o=(s=this.optionResource)==null?void 0:s.defaultVariant)==null?void 0:o.id)});return a?new ot(a):void 0}}getAvailableVariants(){var e,A;return(((A=(e=this.optionResource)==null?void 0:e.variants)==null?void 0:A.filter(a=>a.enabled))||[]).map(a=>new ot(a))}getAllVariants(){var e;return(((e=this.optionResource)==null?void 0:e.variants)||[]).map(A=>new ot(A))}async selectVariant(t){await Promise.all([this.bundle.getGlobalPropertyStateManager().setAspect(this.property.name,t.getId()),this.applyVariantSelection(t)])}async applyGlobalState(t){var a,i;const e=this.getStateValue();if(!e)return Promise.resolve();const A=(i=(a=this.optionResource)==null?void 0:a.variants)==null?void 0:i.find(s=>s.id===e);return A?this.applyVariantSelection(new ot(A),t):Promise.resolve()}async applyVariantSelection(t,e){const a=this.getSharedSteps(e).map(i=>i.selectVariant(t));await Promise.all(a)}}class HA extends kA{constructor(t,e,A){super(t,e,A)}async selectVariant(t){await Promise.all([this.bundle.getGlobalPropertyStateManager().setAspect(this.property.name,t.getId()),this.applyColorVariant(t)])}async applyGlobalState(t){var i,s,o;const e=this.getStateValue();if(!e)return Promise.resolve();const A=(s=(i=this.optionResource)==null?void 0:i.variants)==null?void 0:s.find(r=>r.id===e);if(!A)return Promise.resolve();await this.applyColorVariant(new ot(A),t);const a=(o=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name))==null?void 0:o.customColor;a&&this.setCustomColor(a)}async applyColorVariant(t,e){const a=this.getSharedSteps(e).map(i=>{switch(i.getType()){case S.Shape:return i.selectVariant(t);case S.Text:return i.setFillColor({fill:t.getColor(),stroke:t.getColor(),variant:t.getResource()})}});await Promise.all(a)}setCustomColor(t){this.getSharedSteps().forEach(A=>A.setCustomColor(t)),this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name,{customColor:t})}getCustomColor(){var t,e;return((t=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name))==null?void 0:t.customColor)||((e=this.getCurrentVariant())==null?void 0:e.getColor())||"#ffffff"}}const bA=F.gql`
2610
- fragment GlobalPropertyStateAspectFields on GlobalPropertyStateAspect {
2611
- name
2612
- value
2613
- type
2614
- storage {
2615
- ... on GlobalPropertyStateColorOptionStorage {
2616
- customColor
2617
- }
2618
- ... on GlobalPropertyStateFileUploadStorage {
2619
- originalAssetKey
2620
- backgroundRemovedAssetKey
2621
- useOriginalAsset
2622
- }
2623
- }
2624
- }
2625
- `,Xo=F.gql`
2626
- ${bA}
2627
- mutation CreateGlobalPropertyState($bundleId: String!) {
2628
- globalPropertyStateCreate(bundleId: $bundleId) {
2629
- id
2630
- aspects {
2631
- ...GlobalPropertyStateAspectFields
2632
- }
2633
- }
2634
- }
2635
- `,qo=F.gql`
2636
- ${bA}
2637
- mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
2638
- globalPropertyStateUpdate(id: $id, aspects: $aspects) {
2639
- id
2640
- aspects {
2641
- ...GlobalPropertyStateAspectFields
2642
- }
2643
- }
2644
- }
2645
- `,Zo=F.gql`
2646
- ${bA}
2647
- query GetGlobalPropertyState($bundleId: String!) {
2648
- globalPropertyState(bundleId: $bundleId) {
2649
- id
2650
- aspects {
2651
- ...GlobalPropertyStateAspectFields
2652
- }
2653
- }
2654
- }
2655
- `;class $o{constructor(t,e,A,a,i){this.bundleId=t,this.bundleOwnerId=e,this.configuration=A,this.bundleOptions=i,this.initPromise=this.getOrCreateGlobalPropertyState().then(s=>{this.globalPropertyState=s}),this.onGlobalPropertyStateChange=a}setBundleOptions(t){this.bundleOptions=t}getBundleOptions(){return this.bundleOptions}setConfiguration(t){this.configuration=t}getInitializationPromise(){return this.initPromise}getGlobalPropertyState(){return this.globalPropertyState}async setGlobalPropertyState(t){this.globalPropertyState||await this.initPromise;const e=Dt(this.globalPropertyState);this.globalPropertyState={...t,id:e.id},await this.updateGlobalPropertyState(),await this.onGlobalPropertyStateChange(e,this.globalPropertyState)}getAspect(t){if(!this.globalPropertyState)throw new Error("Global property state not initialized");const e=this.globalPropertyState.aspects.find(A=>A.name===t);if(e)return e.value}getAspectStorage(t){var e;if(!this.globalPropertyState)throw new Error("Global property state not initialized");return(e=this.globalPropertyState.aspects.find(A=>A.name===t))==null?void 0:e.storage}async setAspect(t,e,A){if(!this.globalPropertyState)throw new Error("Global property state not initialized");if(!this.configuration)throw new Error("Global property configuration not linked to the state manager.");const a=this.configuration.aspects.find(o=>o.name===t);if(!a)throw new Error(`Failed to find configuration aspect with name: ${t}`);const i=Dt(this.globalPropertyState),s=this.globalPropertyState.aspects.find(o=>o.name===t);s?(s.value=e,s.type=a.type,A!==void 0&&(s.storage=A!==null?A:void 0)):this.globalPropertyState.aspects.push({name:t,value:e,type:a.type,storage:A!==null?A:void 0}),await this.updateGlobalPropertyState(),await this.onGlobalPropertyStateChange(i,this.globalPropertyState)}async setAspectStorage(t,e){if(!this.globalPropertyState)throw new Error("Global property state not initialized");if(!this.configuration)throw new Error("Global property configuration not linked to the state manager.");const A=this.configuration.aspects.find(s=>s.name===t);if(!A)throw new Error(`Failed to find configuration aspect with name: ${t}`);const a=Dt(this.globalPropertyState),i=this.globalPropertyState.aspects.find(s=>s.name===t);i?(i.storage=e!==null?e:void 0,i.type=A.type):this.globalPropertyState.aspects.push({name:t,value:"",type:A.type,storage:e!==null?e:void 0}),await this.updateGlobalPropertyState(),await this.onGlobalPropertyStateChange(a,this.globalPropertyState)}async updateGlobalPropertyState(){var e,A;if(!this.globalPropertyState)throw new Error("Global property state not initialized");const t=await N.getShadowGraphqlClient().mutate({mutation:qo,variables:{id:this.globalPropertyState.id,aspects:this.globalPropertyState.aspects.map(a=>{let i=a.type&&a.storage?{}:void 0;if(i)switch(a.type){case st.FileUpload:{i.fileUpload=a.storage;break}case st.Option:{i.option=a.storage;break}case st.ColorOption:{i=a.storage;break}}return{name:a.name,value:a.value,type:a.type,storage:i}})},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(e=this.bundleOptions)==null?void 0:e.additionalHeaders}}});if((A=t.data)!=null&&A.globalPropertyStateUpdate)this.globalPropertyState=t.data.globalPropertyStateUpdate;else throw new Error("Unable to update global property state")}async getOrCreateGlobalPropertyState(){var A,a,i;const t=await N.getShadowGraphqlClient().query({query:Zo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{bundleId:this.bundleId},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(A=this.bundleOptions)==null?void 0:A.additionalHeaders}}});if(t.data.globalPropertyState&&t.data.globalPropertyState.id)return t.data.globalPropertyState;const e=await N.getShadowGraphqlClient().mutate({mutation:Xo,variables:{bundleId:this.bundleId},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(a=this.bundleOptions)==null?void 0:a.additionalHeaders}}});if((i=e.data)!=null&&i.globalPropertyStateCreate&&e.data.globalPropertyStateCreate.id)return e.data.globalPropertyStateCreate;throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`)}}class _o{constructor(t){this.setState(t)}setState(t){t&&(this.state=JSON.parse(t))}applyStateToWorkflowExperience(t){var s;if(!this.state||!((s=t==null?void 0:t.getWorkflowManager())!=null&&s.getModelContainer()))return;const e=this.state.transactions.find(o=>o.transactionId===t.getWorkflowManager().getTransaction().id);if(!e)return;const A=this.getTransformToApply(e);if(!A)return;const a=this.flipTransform(A,t.getWorkflowManager().getPreviewService()),i=t.getWorkflowManager().getModelContainer();i.position=a.position,i.rotation=a.rotation,i.scale=a.scale}getTransformToApply(t){return t.activeTransform&&t.transforms?t.transforms[t.activeTransform]:t.transform}updateWorkflowExperienceTransform(t,e,A){const a=t.getWorkflowManager().getTransaction().id;this.state?this.state.transactions||(this.state.transactions=[]):this.state={transactions:[]};const i=this.state.transactions.find(s=>s.transactionId===a);i?(i.transforms||(i.transforms={}),i.transforms[e]=A):this.state.transactions.push({transactionId:a,activeTransform:e,transforms:{[e]:A}})}activateWorkflowExperienceTransform(t,e){var r,c;if(!((r=t==null?void 0:t.getWorkflowManager())!=null&&r.getModelContainer())||!this.state)return;const A=t.getWorkflowManager().getTransaction().id,a=this.state.transactions.find(l=>l.transactionId===A),i=(c=a==null?void 0:a.transforms)==null?void 0:c[e];if(!i)return;const s=this.flipTransform(i,t.getWorkflowManager().getPreviewService()),o=t.getWorkflowManager().getModelContainer();o.position=s.position,o.rotation=s.rotation,o.scale=s.scale,a.activeTransform=e}removeStateForTransaction(t){if(!this.state||!this.state.transactions)return;const e=this.state.transactions.findIndex(A=>A.transactionId===t);e!==-1&&this.state.transactions.splice(e,1)}getSerializedState(){if(this.state)return JSON.stringify(this.state)}flipTransform(t,e){return e&&e.flipTransform?e.flipTransform(t.position,{x:t.rotation.x*Math.PI/180,y:t.rotation.y*Math.PI/180,z:t.rotation.z*Math.PI/180},t.scale):{position:t.position,rotation:{x:t.rotation.x*Math.PI/180,y:t.rotation.y*Math.PI/180,z:t.rotation.z*Math.PI/180},scale:t.scale}}}class Yn{constructor(t){this.fullFetched=!1,this.collection=t}getId(){return this.collection.id}getName(){return this.collection.name}getDescription(){return this.collection.description||""}getImage(){return this.collection.image}getProducts(){if(!this.collection.productCollectionProducts)throw new Error("Failed to find products on collection. Ensure you fetch them first!");return this.collection.productCollectionProducts.map(t=>new Ue(t))}async fetchProducts(t){if(this.fullFetched)return this.collection.productCollectionProducts.map(A=>new Ue(A));const e=await N.getShadowGraphqlClient().query({query:ko,variables:{id:this.getId(),productIds:t},errorPolicy:"all",fetchPolicy:"no-cache"});return t||(this.fullFetched=!0),this.collection.productCollectionProducts=e.data.productCollections[0].productCollectionProducts||[],this.collection.productCollectionProducts.map(A=>new Ue(A))}getTransformCollection(){if(this.collection.transformCollection)return new Pn(this.collection.transformCollection)}getResource(){return this.collection}}class Ue{constructor(t){this.product=t.product,this.productResource=t}getId(){return this.product.id}getName(){return this.product.name}getIntegrationByType(t,e){const a=(this.product.integrationProducts||[]).find(i=>{var c,l,g;const s=(c=i.integration)==null?void 0:c.type,o=((l=i.integration)==null?void 0:l.type)===t,r=e?((g=i.integration)==null?void 0:g.externalIntegrationId)===e:!0;return s&&o&&r});if(!a)throw new Error("Failed to find requested integration type on product. This is generally due to a configuration error");return a}getCurrentIntegration(){const e=(this.product.integrationProducts||[]).find(A=>{var a;return(a=A.integration)==null?void 0:a.isCurrent});if(!e)throw new Error(`Product: ${this.productResource.id} is not linked to this current integration. This is generally due to a configuration error.`);return e}getDefaultWorkflow(){const t=this.product.workflows;if(t===void 0)throw new R("Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available.");if(t.length===0)throw new R("Called getDefaultWorkflow() but no workflows on requested product. Ensure at least 1 workflow is assigned to this product.");const e=this.productResource.workflowId;if(e){const A=t.find(a=>a.workflowName===e);if(A)return new Rt(A)}if(t.length===1)return console.warn("Called getDefaultWorkflow() but no default was configured. There is only one workflow available so we will fall back to using this!"),new Rt(t[0]);throw new R("Called getDefaultWorkflow() but no default workflow is configured for the requested product. Multiple workflows exist so we can't assume!")}getAllWorkflows(){if((this.product.workflows||[]).length===0)throw new R("No workflows on configured product. Ensure at least 1 workflow is assigned to this product.");return this.product.workflows.sort((e,A)=>(e.index??0)-(A.index??0)).map(e=>new Rt(e))}getIntegrations(){return this.product.integrationProducts||[]}getResource(){return this.product}getBasePrice(t){var a,i,s,o;const e=this.product.basePrice||0;if(!t)return e;if(!t.integrationType&&!t.externalId&&!t.integrationId)throw new Error("You must provide at least one of the following fields on the includeAdditionalProduct object: integrationType, externalId, integrationId");let A;return t.integrationId?A=(a=this.product.integrationProducts)==null?void 0:a.find(r=>{var c;return((c=r.integration)==null?void 0:c.id)===t.integrationId}):t.externalId?A=(i=this.product.integrationProducts)==null?void 0:i.find(r=>{var c;return((c=r.integration)==null?void 0:c.externalIntegrationId)===t.externalId}):A=(s=this.product.integrationProducts)==null?void 0:s.find(r=>{var c;return((c=r.integration)==null?void 0:c.type)===t.integrationType}),(o=A==null?void 0:A.additionalIntegrationProduct)!=null&&o.product?e+(A.additionalIntegrationProduct.product.basePrice||0):e}}class Rt{constructor(t){this.workflow=t}getId(){return this.workflow.workflowName}getName(){return this.workflow.friendlyName}getThumbnail(){return this.workflow.imageUrl}}class Pn{constructor(t){this.collection=t}getId(){return this.collection.id}getName(){return this.collection.name}getTransforms(){return this.collection.transforms.map(t=>new vn(t))}}class vn{constructor(t){this.transform=t}getId(){return this.transform.id}getName(){return this.transform.name}get(){return{position:this.transform.position,rotation:this.transform.rotation,scale:this.transform.scale}}}class UA{constructor(t,e,A,a,i,s){var o,r,c;this.eventListeners=new Map,this.workflowExperiences=[],this.client=t,this.id=e.id,this.name=e.name||"",this.ownerId=i,this.metadata=new Map(((o=e.metadata)==null?void 0:o.map(l=>[l.key,l.value]))||[]),this.productCollection=e.productCollection,this.bundleStateManager=new _o(e.bundleStateData),this.globalPropertyStateManager=new $o(this.id,this.ownerId,(r=this.productCollection)==null?void 0:r.globalPropertyConfiguration,this.checkConditionalHandlesChanged.bind(this),s),this.globalPropertyHandleService=new Wo(this),this.setPreviewService(A),this.initializationPromise=Promise.all([this.loadExistingWorkflowExperiences(((c=e.transactions)==null?void 0:c.map(l=>l.id))||[],a),this.globalPropertyStateManager.getInitializationPromise()]),this.initializationPromise.catch(l=>{console.error(`Bundle initialization failed: ${l}`)})}setBundleOptions(t){this.globalPropertyStateManager.setBundleOptions(t)}getInitializationPromise(){return this.initializationPromise}addEventListener(t,e){this.eventListeners.set(t,[...this.eventListeners.get(t)||[],e])}removeEventListener(t,e){const A=this.eventListeners.get(t)||[],a=A.indexOf(e);a>-1&&A.splice(a,1)}getClient(){return this.client}getId(){return this.id}getName(){return this.name}setName(t){return this.name=t,this.updateBundle()}getMetadata(){return new Map(this.metadata)}setMetadata(t){return this.metadata=new Map(t),this.updateBundle()}setNameAndMetadata(t,e){return this.name=t,this.metadata=new Map(e),this.updateBundle()}hasGlobalProperties(){var t;return!!((t=this.productCollection)!=null&&t.globalPropertyConfiguration)}getGlobalPropertyConfiguration(){var t;return(t=this.productCollection)==null?void 0:t.globalPropertyConfiguration}async getGlobalProperties(){return this.globalPropertyHandleService.applyConditionsFromState(await this.globalPropertyHandleService.getHandles(),this.getGlobalPropertyStateManager().getGlobalPropertyState())}getGlobalPropertyStateManager(){return this.globalPropertyStateManager}async getGlobalPropertyTotalSubunits(){return(await this.globalPropertyHandleService.getHandles()).filter(A=>A.getType()===st.Option).map(A=>{var a;return((a=A.getCurrentVariant())==null?void 0:a.getPrice())||0}).reduce((A,a)=>A+a,0)}getTotalSubunits(){return this.workflowExperiences.map(t=>t.getTotalPriceSubunits()).reduce((t,e)=>t+e,0)}getProductCollection(){return this.productCollection?new Yn(this.productCollection):void 0}async addWorkflowExperience(t){t.setBundle(this),await this.appendWorkflowExperience(t),await this.injectExperienceIntoPreviewService(t),await t.getWorkflowManager().getInitializationPromise();const e=await this.getGlobalProperties();for(const A of e)await A.applyGlobalState([t])}async addWorkflowExperiences(t){const e=t.map(o=>o.getWorkflowManager().getTransaction().id),A=e.map(o=>this.workflowExperiences.find(r=>r.getWorkflowManager().getTransaction().id===o));if(A.some(o=>!!o))throw new Error("Unable to add transaction to bundle - Already Exists: "+A.filter(o=>!!o).map(o=>o==null?void 0:o.getWorkflowManager().getTransaction().id).join(", "));const a=v.getMap("transactionOwnerIds")||new Map,i=e.map(o=>a.get(o));await N.getShadowGraphqlClient().mutate({mutation:Go,variables:{id:this.id,transactionIds:e,transactionOwnerIds:i},context:{bundleOwnerId:this.ownerId}}).catch(o=>{console.error(o)}),this.workflowExperiences.push(...t);const s=async()=>{for(const r of t)r.setBundle(this),await this.injectExperienceIntoPreviewService(r);await Promise.all(t.map(r=>r.getWorkflowManager().getInitializationPromise()));const o=await this.getGlobalProperties();for(const r of o)await r.applyGlobalState(t)};await Promise.all([this.updateTransactionOrder(),s()]),this.workflowExperiences.forEach(o=>o.checkForPriceBreakChanges())}async appendWorkflowExperience(t,e=!0){const A=t.getWorkflowManager().getTransaction().id;if(this.workflowExperiences.find(o=>o.getWorkflowManager().getTransaction().id===A))throw new Error("Unable to add transaction to bundle - Already Exists!");const s=(v.getMap("transactionOwnerIds")||new Map).get(A);await N.getShadowGraphqlClient().mutate({mutation:Ro,variables:{id:this.id,transactionId:A},context:{bundleOwnerId:this.ownerId,transactionOwnerId:s}}),e&&(this.workflowExperiences.push(t),this.workflowExperiences.forEach(o=>o.checkForPriceBreakChanges()))}async removeWorkflowExperience(t){const e=this.workflowExperiences.indexOf(t);await this.removeTransaction(e,this.workflowExperiences[e].getWorkflowManager().getTransaction())}async removeWorkflowExperiences(t){await this.removeTransactions(t.map(e=>e.getWorkflowManager().getTransaction()))}async removeWorkflowExperienceByTransaction(t){const e=this.workflowExperiences.findIndex(A=>A.getWorkflowManager().getTransaction().id===t.id);await this.removeTransaction(e,t)}async removeWorkflowExperiencesByTransactions(t){await this.removeTransactions(t)}async removeTransaction(t,e,A=!0){if(t>-1){const a=this.workflowExperiences.find(i=>i.getWorkflowManager().getTransaction().id===e.id);a.setBundle(void 0),this.previewService&&a.getWorkflowManager().ejectFromPreviewService(),this.bundleStateManager.removeStateForTransaction(e.id),await N.getShadowGraphqlClient().mutate({mutation:To,variables:{id:this.id,transactionId:e.id,name:this.name,metadata:Array.from(this.metadata.entries()).map(([i,s])=>({key:i,value:s})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}}),A&&(this.workflowExperiences.splice(t,1),this.workflowExperiences.forEach(i=>i.checkForPriceBreakChanges()),a.checkForPriceBreakChanges(),await this.updateTransactionOrder())}else throw new Error("Unable to remove workflow experience from bundle - Not Found! - "+e.id)}async removeTransactions(t){const e=t.map(a=>this.workflowExperiences.findIndex(i=>i.getWorkflowManager().getTransaction().id===a.id));if(e.some(a=>a===-1))throw new Error("Unable to remove workflow experience from bundle - The following aren't included in the bundle: "+t.filter((a,i)=>e[i]===-1).map(a=>a.id).join(", "));const A=t.map(a=>this.workflowExperiences.splice(this.workflowExperiences.findIndex(i=>i.getWorkflowManager().getTransaction().id===a.id),1)[0]);A.forEach(a=>a.setBundle(void 0)),[...this.workflowExperiences,...A].forEach(a=>a.checkForPriceBreakChanges()),this.previewService&&A.forEach(a=>a.getWorkflowManager().ejectFromPreviewService()),t.forEach(a=>this.bundleStateManager.removeStateForTransaction(a.id)),await N.getShadowGraphqlClient().mutate({mutation:Jo,variables:{id:this.id,transactionIds:t.map(a=>a.id),name:this.name,metadata:Array.from(this.metadata.entries()).map(([a,i])=>({key:a,value:i})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}}),await this.updateTransactionOrder()}async insertWorkflowExperience(t,e){await this.appendWorkflowExperience(t,!1),this.workflowExperiences.splice(e,0,t),await Promise.all([this.updateTransactionOrder(),(async()=>{await this.injectExperienceIntoPreviewService(t);const A=await this.getGlobalProperties();await Promise.all(A.map(a=>a.applyGlobalState([t])))})()])}async replaceWorkflowExperience(t,e){if(t<0||t>=this.workflowExperiences.length)throw new Error("Unable to replace workflow experience in bundle - Index out of range!");const A=this.workflowExperiences[t];if(A.getWorkflowManager().getTransaction().id===e.getWorkflowManager().getTransaction().id)throw new Error("Unable to replace workflow experience in bundle - Same transaction!");await Promise.all([this.removeTransaction(t,A.getWorkflowManager().getTransaction(),!1),this.appendWorkflowExperience(e,!1)]),this.workflowExperiences[t]=e,await Promise.all([this.updateTransactionOrder(),(async()=>{await this.injectExperienceIntoPreviewService(e);const a=await this.getGlobalProperties();await Promise.all(a.map(i=>i.applyGlobalState([e])))})()])}async swapWorkflowExperiences(t,e){if(t<0||t>=this.workflowExperiences.length||e<0||e>=this.workflowExperiences.length)throw new Error("Unable to swap workflow experiences in bundle - Index out of range!");if(t===e)return;const A=this.workflowExperiences[t];this.workflowExperiences[t]=this.workflowExperiences[e],this.workflowExperiences[e]=A,await this.updateTransactionOrder()}getWorkflowExperiences(){return[...this.workflowExperiences]}async sortWorkflowExperiences(t){this.workflowExperiences=this.workflowExperiences.sort(t),await this.updateTransactionOrder()}getWorkflowExperienceCount(){return this.workflowExperiences.length}async addStakeholder(t,e){var i;const A=await N.getShadowGraphqlClient().mutate({mutation:Oo,variables:{id:this.id,details:t,type:e||Jt.Owner},context:{bundleOwnerId:this.ownerId}});if(!((i=A.data)!=null&&i.bundleAddStakeholder))throw new Error("Bundle not found!");const a=A.data.bundleAddStakeholder.bundleStakeholders||[];this.storeStakeholderCustomers(a)}async removeStakeholder(t){var A;if(!((A=(await N.getShadowGraphqlClient().mutate({mutation:Lo,variables:{id:this.id,emailAddress:t},context:{bundleOwnerId:this.ownerId}})).data)!=null&&A.bundleRemoveStakeholder))throw new Error("Bundle not found!")}async updateStakeholders(t){var a;const e=await N.getShadowGraphqlClient().mutate({mutation:zo,variables:{id:this.id,input:t},context:{bundleOwnerId:this.ownerId}});if(!((a=e.data)!=null&&a.bundleUpdateStakeholders))throw new Error("Bundle not found!");const A=e.data.bundleUpdateStakeholders.bundleStakeholders||[];this.storeStakeholderCustomers(A)}async getAllStakeholders(){const t=await N.getShadowGraphqlClient().query({query:vo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:this.id},context:{bundleOwnerId:this.ownerId}});if(!t.data.bundles||t.data.bundles.length===0)throw new Error("Bundle not found!");const e=t.data.bundles[0].bundleStakeholders||[];return this.storeStakeholderCustomers(e),e}storeStakeholderCustomers(t){t.forEach(e=>{e.customer&&this.client.storeCustomer(e.customer)})}async finish(t,e){const A=await go(this.workflowExperiences.map(a=>({workflowManager:a.getWorkflowManager(),workflow:a.getWorkflowManager().getWorkflow(),layouts:a.getWorkflowManager().getLayouts(),getReducerState:()=>a.getCommandContext().getState(),product:a.getWorkflowManager().getProduct(),transaction:a.getWorkflowManager().getTransaction(),workflowSelections:a.getWorkflowManager().getWorkflowSelections(),designName:a.getWorkflowManager().getWorkflow().name,workflowMetadata:a.getWorkflowManager().getWorkflowMetadata()})),t??(()=>{}),e?(a,i)=>{const s=this.workflowExperiences.find(o=>o.getWorkflowManager().getTransaction().id===i);return s?e(s):(console.warn("SpiffCommerce - Bundle create design - Unable to find experience for transaction: "+i),Promise.resolve(void 0))}:void 0);return{bundleId:this.id,items:A,bundleOwnerId:this.ownerId}}getPreviewService(){return this.previewService}async setPreviewService(t){if(this.workflowExperiences&&this.workflowExperiences.length>0&&(this.workflowExperiences.forEach(e=>e.getWorkflowManager().ejectFromPreviewService()),t))for(const e of this.workflowExperiences)await this.injectExperienceIntoPreviewService(e);t&&t.registerModelLoadEventListener&&t.registerModelLoadEventListener(this.onModelLoadEvent.bind(this)),this.previewService&&this.previewService!==t&&this.previewService.unregisterModelLoadEventListener&&this.previewService.unregisterModelLoadEventListener(this.onModelLoadEvent.bind(this)),this.previewService=t}updateWorkflowExperienceTransform(t,e,A){return this.bundleStateManager.updateWorkflowExperienceTransform(t,e,A),this.updateBundle()}activateWorkflowExperienceTransform(t,e){return this.bundleStateManager.activateWorkflowExperienceTransform(t,e),this.updateBundle()}async assignProductCollection(t){var A,a;const e=await N.getShadowGraphqlClient().mutate({mutation:Ko(((A=this.globalPropertyStateManager.getBundleOptions())==null?void 0:A.eagerFetchProducts)??!1),variables:{id:this.id,productCollectionId:t??""},context:{bundleOwnerId:this.ownerId}});(a=e.data)!=null&&a.bundleAssignProductCollection.productCollection&&(this.productCollection=e.data.bundleAssignProductCollection.productCollection,this.globalPropertyStateManager.setConfiguration(e.data.bundleAssignProductCollection.productCollection.globalPropertyConfiguration))}onModelLoadEvent(t){t.eventType==="unload"||!t.modelContainer||(t.modelContainer.registerMaterialSelectedCallback(()=>this.onModelSelectedEvent(t.modelContainer,!0)),t.modelContainer.registerMaterialDeselectedCallback(()=>this.onModelSelectedEvent(t.modelContainer,!1)))}onModelSelectedEvent(t,e){if(t&&t.metadata&&t.metadata instanceof Map&&t.metadata.has("workflowManager")){const a=t.metadata.get("workflowManager").getTransaction(),i=this.workflowExperiences.find(s=>s.getWorkflowManager().getTransaction().id===a.id);i&&this.fireEvent(e?"workflow-experience-hover-enter":"workflow-experience-hover-exit",{workflowExperience:i})}}async injectExperienceIntoPreviewService(t){if(this.previewService){const e=t.getWorkflowManager().injectIntoPreviewService(this.previewService);try{this.bundleStateManager.applyStateToWorkflowExperience(t)}catch(A){console.error(`Unable to apply state to workflow experience: ${A}`)}await e}}async loadExistingWorkflowExperiences(t,e){if(t.length===0)return;const A=await this.client.getWorkflowExperiences(t.map(a=>({type:"transaction",transactionId:a})),e);if(A.forEach(a=>a.setBundle(this)),A.forEach(a=>a.checkForPriceBreakChanges()),this.workflowExperiences=A,this.previewService)for(const a of A)await this.injectExperienceIntoPreviewService(a)}async updateBundle(){var e;if(!((e=(await N.getShadowGraphqlClient().mutate({mutation:Uo,variables:{id:this.id,name:this.name,metadata:Array.from(this.metadata.entries()).map(([A,a])=>({key:A,value:a})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}})).data)!=null&&e.bundleUpdate))throw new Error("Bundle not found!")}async updateTransactionOrder(){await N.getShadowGraphqlClient().mutate({mutation:jo,variables:{id:this.id,transactionIds:this.workflowExperiences.map(t=>t.getWorkflowManager().getTransaction().id)},context:{bundleOwnerId:this.ownerId}})}async checkConditionalHandlesChanged(t,e){const A=await this.globalPropertyHandleService.getHandles(),a=this.globalPropertyHandleService.applyConditionsFromState(A,t),i=this.globalPropertyHandleService.applyConditionsFromState(A,e);if((()=>{if(a.length!==i.length)return!0;for(let o=0;o<a.length;o++)if(a[o].getName()!==i[o].getName())return!0;return!1})()){this.fireEvent("conditional-global-properties-changed",{globalProperties:i});const o=i.filter(r=>!a.includes(r));await Promise.all(o.map(r=>r.applyGlobalState()))}}fireEvent(t,e){(this.eventListeners.get(t)||[]).forEach(a=>a({bundle:this,event:t,data:e}))}}const tr=F.gql`
2656
- mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
2657
- processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
2658
- id
2659
- }
2660
- }
2661
- `;class Nn{async execute(t,e,A){var g,d,B;const i=(d=(g=(await N.getShadowGraphqlClient().mutate({mutation:tr,variables:{processFlowId:t,inputs:[...e.map(h=>h.getValueForTransmission())]}})).data)==null?void 0:g.processExecutionCreate)==null?void 0:d.id;if(!i)throw new Error("Failed to create process execution.");function s(h){return new Promise(C=>{setTimeout(C,h)})}let o=!1,r=0,c,l;for(;!o;){c=await N.getShadowGraphqlClient().query({query:F.gql`
2662
- query getProcessFlowExecution($ids: [String]!) {
2663
- processExecutions(ids: $ids) {
2664
- id
2665
- completedAt
2666
- failedAt
2667
- nodes {
2668
- id
2669
- type
2670
- artifacts
2671
- }
2672
- }
2673
- }
2674
- `,variables:{ids:[i]}});const h=(B=c.data)==null?void 0:B.processExecutions[0];if(!c||!h)throw new Error("Failed to retrieve server response for execution.");if(h.failedAt)throw new Error("Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub.");if(h.completedAt){o=!0,l=new kn(h);break}r+=1;const C=A!=null&&A.repeats?A==null?void 0:A.repeats:5;if(r>=C)throw new Error("Maximum wait time exceeded for execution result.");await s(A!=null&&A.sleepTime?Math.max(A.sleepTime,500):2e3)}if(!l)throw new Error("Failed to retrieve server response for execution.");return Promise.resolve(l)}}class kn{constructor(t){this.execution=t}getRaw(){return this.execution}getNodes(){return this.execution.nodes.map(t=>new de(t))}getNodesByType(t){return this.execution.nodes.filter(e=>e.type===t).map(e=>new de(e))}getInputs(){return this.execution.nodes.filter(t=>t.type==="StartTerminal").map(t=>new de(t))}getOutputs(){return this.execution.nodes.filter(t=>t.type==="EndTerminal").map(t=>new de(t))}getCompletedAt(){if(this.execution.completedAt)return new Date(this.execution.completedAt)}getFailedAt(){if(this.execution.failedAt)return new Date(this.execution.failedAt)}}class de{constructor(t){this.node=t}getId(){return this.node.id}getType(){return this.node.type}getArtifacts(){return new Map(Object.entries(JSON.parse(this.node.artifacts).value))}getArtifactByName(t){return this.getArtifacts().get(t)}}class RA{constructor(t){this.value=t}getRaw(){return this.value}getValueForTransmission(){const t=this.value;return t.startsWith("[")?JSON.stringify(JSON.parse(t)):t}}var Hn=(n=>(n.Transaction="Transaction",n.Bundle="Bundle",n.Product="Product",n.Variant="Variant",n.Option="Option",n.LineItem="LineItem",n.Asset="Asset",n))(Hn||{});class er extends RA{constructor(t){super(`"${t}"`)}}class GA extends RA{constructor(t,e){if(e!=="Asset"&&!GA.validUUID(t))throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");super(`{"isSpiffObject": true, "id": "${t}", "type": "${e}"}`)}static validUUID(t){return t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)}}class Ar extends RA{constructor(t){super(`[${t.map(e=>e.getRaw()).join(",")}]`)}}class TA{constructor(t){this.integrationProduct=t}getId(){return this.integrationProduct.id}getResource(){return this.integrationProduct}getBasePrice(){var A;if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const t=this.integrationProduct.product.basePrice||0,e=(A=this.integrationProduct)==null?void 0:A.additionalIntegrationProduct;if(!e)return t;if(e&&!e.product)throw new Error("An additional integration product was found, but it does not have a product");return t+(e.product.basePrice||0)}getDefaultWorkflow(){if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const t=this.integrationProduct.product.workflows||[];if(t.length===0)throw new Error("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");return new Rt(t[0])}getAllWorkflows(){if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const t=this.integrationProduct.product.workflows||[];if(t.length===0)throw new Error("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");return t.sort((e,A)=>(e.index??0)-(A.index??0)).map(e=>new Rt(e))}}const ar=F.gql`
2675
- query GetCustomer($emailAddress: String!) {
2676
- customer(emailAddress: $emailAddress) {
2677
- id
2678
- emailAddress
2679
- partner {
2680
- id
2681
- }
2682
- }
2683
- }
2684
- `,nr=F.gql`
2685
- mutation CustomerCreate($details: CustomerDetailsInput!) {
2686
- customerCreate(details: $details) {
2687
- id
2688
- emailAddress
2689
- partner {
2690
- id
2691
- }
2692
- }
2693
- }
2694
- `,ir=F.gql`
2695
- mutation CustomerAuthenticate($loginToken: String!) {
2696
- customerAuthenticate(loginToken: $loginToken) {
2697
- id
2698
- emailAddress
2699
- stakeholders {
2700
- id
2701
- type
2702
- transaction {
2703
- id
2704
- }
2705
- }
2706
- bundleStakeholders {
2707
- id
2708
- type
2709
- bundle {
2710
- id
2711
- transactions {
2712
- id
2713
- }
2714
- }
2715
- }
2716
- partner {
2717
- id
2718
- }
2719
- }
2720
- }
2721
- `,sr=F.gql`
2722
- mutation CustomerGenerateVerificationCode($emailAddress: String!) {
2723
- customerGenerateVerificationCode(emailAddress: $emailAddress)
2724
- }
2725
- `,or=F.gql`
2726
- mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
2727
- customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
2728
- id
2729
- emailAddress
2730
- loginToken
2731
- partner {
2732
- id
2733
- }
2734
- stakeholders {
2735
- id
2736
- type
2737
- transaction {
2738
- id
2739
- }
2740
- }
2741
- bundleStakeholders {
2742
- id
2743
- type
2744
- bundle {
2745
- id
2746
- transactions {
2747
- id
2748
- }
2749
- }
2750
- }
2751
- }
2752
- }
2753
- `,rr=F.gql`
2754
- query CustomerMetafields($id: String!) {
2755
- metafields(entityId: $id) {
2756
- id
2757
- createdAt
2758
- updatedAt
2759
- entityId
2760
- value
2761
- metafieldConfiguration {
2762
- id
2763
- createdAt
2764
- updatedAt
2765
- entityType
2766
- metafieldType
2767
- name
2768
- }
2769
- }
2770
- }
2771
- `,cr=F.gql`
2772
- fragment RegionFields on Region {
2773
- width
2774
- top
2775
- left
2776
- height
2777
- layer
2778
- layerIndex
2779
- rotation
2780
- panelId
2781
- immutable
2782
- adjustmentBoundary {
2783
- width
2784
- x
2785
- y
2786
- height
2787
- }
2788
- }
2789
- `,lr=F.gql`
2790
- fragment LookAtAnimationFields on LookAtAnimation {
2791
- latDeg
2792
- lonDeg
2793
- radius
2794
- target {
2795
- x
2796
- y
2797
- z
2798
- }
2799
- }
2800
- `,gr=F.gql`
2801
- fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
2802
- antiAliasing {
2803
- samples
2804
- fxaaEnabled
2805
- }
2806
- bloom {
2807
- enabled
2808
- kernel
2809
- scale
2810
- threshold
2811
- weight
2812
- }
2813
- chromaticAberration {
2814
- enabled
2815
- aberrationAmount
2816
- direction {
2817
- x
2818
- y
2819
- }
2820
- radialIntensity
2821
- }
2822
- colorCurves {
2823
- enabled
2824
- globalDensity
2825
- globalExposure
2826
- globalHue
2827
- globalSaturation
2828
- highlightsDensity
2829
- highlightsExposure
2830
- highlightsHue
2831
- highlightsSaturation
2832
- midtonesDensity
2833
- midtonesExposure
2834
- midtonesHue
2835
- midtonesSaturation
2836
- shadowsDensity
2837
- shadowsExposure
2838
- shadowsHue
2839
- shadowsSaturation
2840
- }
2841
- depthOfField {
2842
- enabled
2843
- blurLevel
2844
- focusDistance
2845
- focalLength
2846
- fStop
2847
- lensSize
2848
- }
2849
- grain {
2850
- enabled
2851
- animated
2852
- intensity
2853
- }
2854
- misc {
2855
- contrast
2856
- exposure
2857
- toneMappingEnabled
2858
- toneMappingType
2859
- }
2860
- sharpen {
2861
- enabled
2862
- colorAmount
2863
- edgeAmount
2864
- }
2865
- vignette {
2866
- enabled
2867
- blendMode
2868
- cameraFov
2869
- center {
2870
- x
2871
- y
2872
- }
2873
- colorRgba {
2874
- r
2875
- g
2876
- b
2877
- a
2878
- }
2879
- colorHex
2880
- stretch
2881
- weight
2882
- }
2883
- }
2884
- `,dr=F.gql`
2885
- fragment ModelAnimationFields on ModelAnimation {
2886
- from
2887
- to
2888
- loop
2889
- name
2890
- }
2891
- `,Br=n=>F.gql`
2892
- ${qt(n)}
2893
- ${$e}
2894
- ${ua}
2895
- ${cr}
2896
- ${lr}
2897
- ${gr}
2898
- ${dr}
2899
- query GetWorkflows($ids: [String!]!) {
2900
- workflows(ids: $ids) {
2901
- partner {
2902
- termsMarkdown
2903
- }
2904
- allowProofDownload
2905
- defaultPreviewPanelIndex
2906
- finalizeStepConfig {
2907
- termsMarkdown
2908
- lookAtAnimation {
2909
- ...LookAtAnimationFields
2910
- }
2911
- modelAnimation {
2912
- ...ModelAnimationFields
2913
- }
2914
- }
2915
- globalPreviewConfig {
2916
- autoRotation
2917
- backgroundColor
2918
- backgroundImage
2919
- clearColor
2920
- disableActionBar
2921
- disableAutomaticOrientation
2922
- emissiveGlowIntensity
2923
- enableAR
2924
- environmentFile
2925
- environmentIntensity
2926
- environmentRotationY
2927
- idleTimeBeforeRotation
2928
- lowerAlphaLimitDeg
2929
- lowerBetaLimitDeg
2930
- maxZoomOverride
2931
- minZoomOverride
2932
- noPan
2933
- upperAlphaLimitDeg
2934
- upperBetaLimitDeg
2935
- renderingPipelineConfiguration {
2936
- ...RenderingPipelineConfigurationFields
2937
- }
2938
- }
2939
- id
2940
- introduction
2941
- name
2942
- overrideTheme {
2943
- id
2944
- configuration
2945
- name
2946
- primaryColor
2947
- secondaryColor
2948
- textColor
2949
- themeLayout {
2950
- id
2951
- name
2952
- }
2953
- fontAsset {
2954
- ...AssetFields
2955
- }
2956
- }
2957
- panels {
2958
- editableArea {
2959
- height
2960
- width
2961
- x
2962
- y
2963
- }
2964
- height
2965
- width
2966
- index
2967
- name
2968
- useEditableArea
2969
- transparentBackground
2970
- previewRegion {
2971
- ...RegionFields
2972
- }
2973
- }
2974
- previewAsset {
2975
- ...AssetFields
2976
- }
2977
- showModelOnFinishStep
2978
- showPlusInVariantPrices
2979
- showPricing
2980
- skuCode
2981
- stepGroups {
2982
- name
2983
- stepNames
2984
- }
2985
- steps {
2986
- stepName
2987
- type
2988
- tags
2989
- globalPropertyAspectConfigurations {
2990
- aspectName
2991
- globalPropertyConfigurationId
2992
- }
2993
- option {
2994
- ...OptionFields
2995
- }
2996
- stepTitle
2997
- helpText
2998
- mandatory
2999
- silent
3000
- conditions {
3001
- requiredVariantSelections
3002
- targetStepName
3003
- action
3004
- }
3005
- data {
3006
- __typename
3007
- ... on InformationStepData {
3008
- content
3009
- lookAtAnimation {
3010
- ...LookAtAnimationFields
3011
- }
3012
- modelAnimation {
3013
- ...ModelAnimationFields
3014
- }
3015
- }
3016
- ... on DigitalContentStepData {
3017
- advancedEditorAnimation {
3018
- x
3019
- y
3020
- zoom
3021
- layoutName
3022
- }
3023
- baseUrl
3024
- lookAtAnimation {
3025
- ...LookAtAnimationFields
3026
- }
3027
- modelAnimation {
3028
- ...ModelAnimationFields
3029
- }
3030
- regions {
3031
- ...RegionFields
3032
- }
3033
- }
3034
- ... on FrameStepData {
3035
- advancedEditorAnimation {
3036
- x
3037
- y
3038
- zoom
3039
- layoutName
3040
- }
3041
- colorOption {
3042
- ...OptionFields
3043
- }
3044
- colorPickerEnabled
3045
- initialZoomLevel
3046
- disablePlaceholder
3047
- displayImageOnFinishStep
3048
- displaySelectionOnFinishStep
3049
- forceImageCover
3050
- hideImageInCart
3051
- hideSelectionInCart
3052
- lookAtAnimation {
3053
- ...LookAtAnimationFields
3054
- }
3055
- maxColors
3056
- modelAnimation {
3057
- ...ModelAnimationFields
3058
- }
3059
- overlayImageKey
3060
- overlayImageUrl
3061
- placeholderImageKey
3062
- placeholderImageUrl
3063
- regions {
3064
- ...RegionFields
3065
- }
3066
- whitelistedExtensions
3067
- }
3068
- ... on IllustrationStepData {
3069
- advancedEditorAnimation {
3070
- x
3071
- y
3072
- zoom
3073
- layoutName
3074
- }
3075
- colorOption {
3076
- ...OptionFields
3077
- }
3078
- colorPickerEnabled
3079
- displayColorsOnFinishStep
3080
- displaySelectionOnFinishStep
3081
- hideColorsInCart
3082
- hideSelectionInCart
3083
- lookAtAnimation {
3084
- ...LookAtAnimationFields
3085
- }
3086
- modelAnimation {
3087
- ...ModelAnimationFields
3088
- }
3089
- regions {
3090
- ...RegionFields
3091
- }
3092
- }
3093
- ... on MaterialStepData {
3094
- advancedEditorAnimation {
3095
- x
3096
- y
3097
- zoom
3098
- layoutName
3099
- }
3100
- displaySelectionOnFinishStep
3101
- hideSelectionInCart
3102
- lookAtAnimation {
3103
- ...LookAtAnimationFields
3104
- }
3105
- modelAnimation {
3106
- ...ModelAnimationFields
3107
- }
3108
- targetMaterials
3109
- }
3110
- ... on ModelStepData {
3111
- advancedEditorAnimation {
3112
- x
3113
- y
3114
- zoom
3115
- layoutName
3116
- }
3117
- displaySelectionOnFinishStep
3118
- hideSelectionInCart
3119
- lookAtAnimation {
3120
- ...LookAtAnimationFields
3121
- }
3122
- modelAnimation {
3123
- ...ModelAnimationFields
3124
- }
3125
- replaceProductModel
3126
- }
3127
- ... on ModuleStepData {
3128
- advancedEditorAnimation {
3129
- x
3130
- y
3131
- zoom
3132
- layoutName
3133
- }
3134
- displayTextOnFinishStep
3135
- hideTextInCart
3136
- lookAtAnimation {
3137
- ...LookAtAnimationFields
3138
- }
3139
- maxLength
3140
- modelAnimation {
3141
- ...ModelAnimationFields
3142
- }
3143
- module
3144
- regions {
3145
- ...RegionFields
3146
- }
3147
- }
3148
- ... on PictureStepData {
3149
- advancedEditorAnimation {
3150
- x
3151
- y
3152
- zoom
3153
- layoutName
3154
- }
3155
- displaySelectionOnFinishStep
3156
- hideSelectionInCart
3157
- lookAtAnimation {
3158
- ...LookAtAnimationFields
3159
- }
3160
- modelAnimation {
3161
- ...ModelAnimationFields
3162
- }
3163
- regions {
3164
- ...RegionFields
3165
- }
3166
- }
3167
- ... on ProductOverlayStepData {
3168
- regions {
3169
- ...RegionFields
3170
- }
3171
- overlayType
3172
- }
3173
- ... on QuestionStepData {
3174
- advancedEditorAnimation {
3175
- x
3176
- y
3177
- zoom
3178
- layoutName
3179
- }
3180
- allowMultipleSelections
3181
- displaySelectionsOnFinishStep
3182
- displayType
3183
- hideSelectionsInCart
3184
- lookAtAnimation {
3185
- ...LookAtAnimationFields
3186
- }
3187
- modelAnimation {
3188
- ...ModelAnimationFields
3189
- }
3190
- }
3191
- ... on ShapeStepData {
3192
- advancedEditorAnimation {
3193
- x
3194
- y
3195
- zoom
3196
- layoutName
3197
- }
3198
- displaySelectionOnFinishStep
3199
- excludeFromPrint
3200
- hideSelectionInCart
3201
- lookAtAnimation {
3202
- ...LookAtAnimationFields
3203
- }
3204
- modelAnimation {
3205
- ...ModelAnimationFields
3206
- }
3207
- regions {
3208
- ...RegionFields
3209
- }
3210
- }
3211
- ... on SilentIllustrationStepData {
3212
- advancedEditorAnimation {
3213
- x
3214
- y
3215
- zoom
3216
- layoutName
3217
- }
3218
- asset {
3219
- ...AssetFields
3220
- }
3221
- excludeFromPrint
3222
- lookAtAnimation {
3223
- ...LookAtAnimationFields
3224
- }
3225
- modelAnimation {
3226
- ...ModelAnimationFields
3227
- }
3228
- regions {
3229
- ...RegionFields
3230
- }
3231
- }
3232
- ... on TextStepData {
3233
- advancedEditorAnimation {
3234
- x
3235
- y
3236
- zoom
3237
- layoutName
3238
- }
3239
- allowNewlines
3240
- colorOption {
3241
- ...OptionFields
3242
- }
3243
- colorPickerEnabled
3244
- curved
3245
- defaultText
3246
- deleteDefaultOnFocus
3247
- displayColorOnFinishStep
3248
- displayImageFillOnFinishStep
3249
- displaySelectionOnFinishStep
3250
- displayTextOnFinishStep
3251
- hideColorInCart
3252
- hideImageFillInCart
3253
- hideSelectionInCart
3254
- hideTextInCart
3255
- imageFillOption {
3256
- ...OptionFields
3257
- }
3258
- imageFillScale
3259
- lookAtAnimation {
3260
- ...LookAtAnimationFields
3261
- }
3262
- maxLength
3263
- maxSize
3264
- minSize
3265
- modelAnimation {
3266
- ...ModelAnimationFields
3267
- }
3268
- paths
3269
- regions {
3270
- ...RegionFields
3271
- }
3272
- replaceableText
3273
- size
3274
- textAlign
3275
- uppercase
3276
- userCanReplaceText
3277
- vertical
3278
- verticalAlign
3279
- }
3280
- }
3281
- }
3282
- }
3283
- }
3284
- `,hr=F.gql`
3285
- query GetTransactionForPartner($id: String!) {
3286
- transactions(ids: [$id]) {
3287
- id
3288
- bundle {
3289
- id
3290
- }
3291
- customLogoLink
3292
- isOrdered
3293
- product {
3294
- id
3295
- partner {
3296
- id
3297
- }
3298
- }
3299
- }
3300
- }
3301
- `,Cr=F.gql`
3302
- ${qt(!1)}
3303
- query GetWorkflowForTheme($id: String!) {
3304
- workflow(id: $id) {
3305
- id
3306
- overrideTheme {
3307
- id
3308
- configuration
3309
- name
3310
- primaryColor
3311
- secondaryColor
3312
- textColor
3313
- themeLayout {
3314
- id
3315
- name
3316
- }
3317
- fontAsset {
3318
- ...AssetFields
3319
- }
3320
- }
3321
- }
3322
- }
3323
- `,wr=F.gql`
3324
- fragment TagFields on Tag {
3325
- id
3326
- name
3327
- }
3328
- `,ur=F.gql`
3329
- ${wr}
3330
- query GetManyTags($entityIds: [String!]!) {
3331
- tagsMany(entityIds: $entityIds) {
3332
- ...TagFields
3333
- }
3334
- }
3335
- `,Gt=async n=>{var t;for(const e in n.layouts){const A=n.layouts[e].elements.filter(i=>i.type===H.Illustration);for(let i=0;i<A.length;++i){const s=A[i];s.src&&s.svg&&(s.cachedObjectURL=await se(s.svg))}const a=n.layouts[e].elements.filter(i=>i.type===H.Textbox);for(let i=0;i<a.length;++i){const s=a[i];(t=s.fontData)!=null&&t.assetUrl&&await bt(s.fontData.assetUrl)}}},Er=async(n,t)=>{var a;const e=await N.getShadowGraphqlClient().query({query:Br(((a=t==null?void 0:t.assets)==null?void 0:a.metadata)||!1),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:n}});if(e.error)throw e.error;if(e.errors)throw e.errors.forEach(i=>console.error(i)),new Error("Unable to read workflows. Consult GraphQL errors.");const A=e.data.workflows;if(A===void 0||A.length!==n.length)throw new Error(`Unable to read workflows: ${e.errors??"Length mismatch in response"}`);return A.forEach(i=>{i.steps.forEach(s=>{var o,r,c;delete s.data.__typename,(o=s.option)!=null&&o.id&&((r=s.option.defaultVariant)!=null&&r.asset&&T.cacheAsset(s.option.defaultVariant.asset),s.option.colorProfile&&T.cacheAsset(s.option.colorProfile),(c=s.option.variants)==null||c.forEach(l=>{l.asset&&T.cacheAsset(l.asset),l.thumbnail&&T.cacheAsset(l.thumbnail),l.material&&T.cacheMaterial(l.material)}),xt.set({id:s.option.id},Promise.resolve(s.option)))}),i.finalizeStepConfig||(i.finalizeStepConfig={}),i.finalizeStepConfig.termsMarkdown=i.partner.termsMarkdown}),A},mr=async(n,t)=>{const A=(await t).find(a=>a.id===n);if(!A)throw new Error(`Workflow not found: ${n}`);return A},JA=async(n,t)=>{const e=n.map(o=>xt.get({id:o,options:t})),A=n.filter((o,r)=>e[r]===void 0);if(A.length===0)return Promise.all(e);const a=Er(A,t),i=A.map(o=>xt.set({id:o,options:t},mr(o,a))),s=e.filter(o=>o!==void 0);return await Promise.all(s.concat(i))},Be=async(n,t)=>(await JA([n],t))[0],fr=n=>n.sort((t,e)=>t.index-e.index).map(t=>({id:b(),panelId:t.name,name:t.name,index:t.index,createdAt:new Date,updatedAt:new Date,transparentBackground:t.transparentBackground,height:t.height,width:t.width,previewRegion:t.previewRegion,useEditableArea:t.useEditableArea,editableArea:t.editableArea})),OA=(n,t)=>{const e=n.workflowState,A=e?JSON.parse(e):void 0;return A?Object.values(A.layouts).map(a=>a.layout):fr(t.panels)};class bn{constructor(t){this.activeIntegration=void 0,this.updateTransactionState=async e=>{try{return N.getShadowGraphqlClient().mutate({...e,mutation:xi})}catch(A){throw console.error(A),new R("Critical - Unable to synchronize workflow state with server.")}},this.initialized=!1,this.options=t,this.options.applicationKey&&ai(this.options.applicationKey),console.debug("------------------------"),console.debug("Spiff Commerce Core SDK"),console.debug("Version: 24.0.2"),console.debug(`Application Key Provided: ${!!this.options.applicationKey}`),console.debug("------------------------")}configureUrls(t,e,A){it.setHubUrl(t),it.setServerUrl(e),it.setServicesApiUrl(A),this.options.applicationKey&&this.getIntegration()}configure(t){it.setHubUrl(t.hubUrl),it.setServerUrl(t.serverUrl),it.setServicesApiUrl(t.servicesApiUrl),this.marketplaceThemeInstallId=t.marketplaceThemeInstallId,this.marketplaceThemeInstallConfigurationId=t.marketplaceThemeInstallConfigurationId,t.bearerAuthenticationToken&&Ba(t.bearerAuthenticationToken),this.options.applicationKey&&this.getIntegration()}getAssetManager(){return T}getCurrencyCode(){if(this.currencyCode===void 0)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!ni())throw new Error("Application key required to use Flow Service.");return new Nn}async getIntegration(){if(this.activeIntegration)return this.activeIntegration;if(!this.options.applicationKey)throw new Error("Cannot get current Integration without specifying an Application Key.");const t=async()=>(await N.getShadowGraphqlClient().query({query:yi,errorPolicy:"all",fetchPolicy:"no-cache"})).data.currentIntegration;return this.activeIntegration=t(),this.activeIntegration}async canUseAddon(t){var e;try{return((e=(await this.getIntegration()).partner.activeAddons)==null?void 0:e.includes(t))??!1}catch(A){return console.error(A),!1}}async authenticateBundleFromLocalStorage(t){var a,i;const e=v.getMap("bundleOwnerIds");if(e!=null&&e.has(t))return Promise.resolve({success:!0,stakeholderType:Jt.Owner});const A=v.getMap("bundlePartnerIds")||new Map;if(A.has(t)){const s=A.get(t),r=(v.getMap("partnerCustomerIds")||new Map).get(s);if(r&&await this.authenticateCustomerId(r)){const l=(i=(a=this.customer)==null?void 0:a.bundleStakeholders)==null?void 0:i.find(g=>{var d;return((d=g.bundle)==null?void 0:d.id)===t});if(l)return Promise.resolve({success:!0,stakeholderType:l.type})}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(t){var l,g,d,B,h,C;const e=N.getShadowGraphqlClient(),A=await e.query({query:hr,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t}});if(!A.data.transactions||A.data.transactions.length===0)throw new Error(`Transaction not found: ${t}`);const a=A.data.transactions[0];if(!((g=(l=a.product)==null?void 0:l.partner)==null?void 0:g.id))throw new Error(`Unable to read transaction: ${t}`);if(a.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const s=v.getMap("transactionOwnerIds");if(s!=null&&s.has(t))return Promise.resolve({success:!0,stakeholderType:Jt.Owner});const o=v.getMap("transactionCustomerIds");if(o!=null&&o.has(t)){const u=o.get(t);if(u&&await this.authenticateCustomerId(u)){const m=((B=(d=this.customer)==null?void 0:d.bundleStakeholders)==null?void 0:B.find(f=>{var p,Q;return(Q=(p=f.bundle)==null?void 0:p.transactions)==null?void 0:Q.some(I=>I.id===t)}))||((C=(h=this.customer)==null?void 0:h.stakeholders)==null?void 0:C.find(f=>{var p;return((p=f.transaction)==null?void 0:p.id)===t}));if(m)return Promise.resolve({success:!0,stakeholderType:m.type})}}const c=(await e.query({query:Cr,errorPolicy:"all",variables:{id:a.workflowId}})).data.workflow;if(!c)throw new Error(`Unable to read workflow: ${a.workflowId}`);return Promise.resolve({success:!1,theme:c.overrideTheme,customLogoLink:a.customLogoLink})}clearCustomer(){this.customer=void 0}clearCustomerForTransaction(t){const e=v.getMap("transactionCustomerIds");e!=null&&e.has(t)&&(e.delete(t),v.setMap("transactionCustomerIds",e))}getStakeholderTypeForTransaction(t){var A,a;const e=(a=(A=this.customer)==null?void 0:A.stakeholders)==null?void 0:a.find(i=>{var s;return((s=i.transaction)==null?void 0:s.id)===t});if(e)return e.type}async getOrCreateCustomer(t){var s;this.customer=void 0;const e=N.getShadowGraphqlClient(),a=(await e.query({query:ar,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t}})).data.customer;if(!a.id){const r=(s=(await e.mutate({mutation:nr,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:t}}})).data)==null?void 0:s.customerCreate;if(!r)throw new Error("Unable to create customer.");return this.storeCustomer(r),this.customer=r,{customer:r,isAuthenticated:!1}}this.storeCustomer(a);const i=await this.authenticateCustomerId(a.id);return{customer:this.customer||a,isAuthenticated:i}}getCustomer(){return this.customer}async authenticateCustomerId(t){var o;const e=N.getShadowGraphqlClient(),A=v.getMap("customerTokens");if(!(A!=null&&A.has(t)))return!1;const a=A.get(t);if(!a)return!1;const s=(o=(await e.mutate({mutation:ir,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:a}})).data)==null?void 0:o.customerAuthenticate;return s?(this.storeCustomer(s),ga(a),this.customer=s,!0):!1}async generateVerificationCode(t){await N.getShadowGraphqlClient().mutate({mutation:sr,variables:{emailAddress:t}})}async verifyCode(t,e){var i,s;const a=(i=(await N.getShadowGraphqlClient().mutate({mutation:or,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t,verificationCode:e}})).data)==null?void 0:i.customerVerifyCode;if(a!=null&&a.loginToken){if(!((s=a.partner)!=null&&s.id))throw new Error(`Unable to find customer: ${t}`);const o=v.getMap("customerTokens")||new Map;return o.set(a.id,a.loginToken),v.setMap("customerTokens",o),this.storeCustomer(a),ga(a.loginToken),this.customer={...a,loginToken:void 0},!0}return!1}async getCustomerMetafields(){var e;if(!((e=this.customer)!=null&&e.id))throw new Error("Customer must be logged in before calling this function.");return(await N.getShadowGraphqlClient().query({query:rr,fetchPolicy:"no-cache",variables:{id:this.customer.id}})).data.metafields}async getNewBundle(t,e,A){var c,l,g,d,B;const i=(g=(await N.getShadowGraphqlClient().mutate({mutation:Ho(((l=(c=A==null?void 0:A.graphql)==null?void 0:c.productCollection)==null?void 0:l.eagerFetchProducts)||!1),variables:{collectionId:t,initialMetadata:e?Object.entries(e).map((h,C)=>({key:h[0],value:h[1]})):void 0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},fetchPolicy:"no-cache"})).data)==null?void 0:g.bundleCreate;if(!(i!=null&&i.id))throw new Error("Unable to create bundle");const s=v.getMap("bundlePartnerIds")||new Map;s.set(i.id,i.partner.id),v.setMap("bundlePartnerIds",s);const o=v.getMap("bundleOwnerIds")||new Map;o.set(i.id,i.bundleOwnerId),v.setMap("bundleOwnerIds",o);const r=new UA(this,i,void 0,void 0,i.bundleOwnerId,{eagerFetchProducts:(B=(d=A==null?void 0:A.graphql)==null?void 0:d.productCollection)==null?void 0:B.eagerFetchProducts});return await r.getInitializationPromise(),r}async getExistingBundle(t,e,A,a){var u,E,m,f,p,Q,I,D,y,M,P;const i=v.getMap("bundleOwnerIds"),s=i==null?void 0:i.get(t),r=((u=Object.entries(localStorage).find(([k,Y])=>k.startsWith("CognitoIdentityServiceProvider")&&k.endsWith("idToken")))==null?void 0:u[0])||"",c=localStorage.getItem(r),l={};c&&!ve(c)&&(l.Authorization=`Bearer ${c}`);const g={bundleOwnerId:s,...l,...(E=a==null?void 0:a.graphql)==null?void 0:E.additionalHeaders},d=await N.getShadowGraphqlClient().query({query:Po(((f=(m=a==null?void 0:a.graphql)==null?void 0:m.productCollection)==null?void 0:f.eagerFetchProducts)||!1),variables:{id:t},fetchPolicy:"no-cache",context:{headers:g}});if(!((p=d.data)!=null&&p.bundles)||((Q=d.data)==null?void 0:Q.bundles.length)===0||!((I=d.data)!=null&&I.bundles[0]))throw new Error(`Unable to find bundle: ${t}`);const B=(D=d.data)==null?void 0:D.bundles[0],h=v.getMap("bundlePartnerIds")||new Map;h.set(B.id,B.partner.id),v.setMap("bundlePartnerIds",h);const C=new UA(this,B,e,A,s,{additionalHeaders:(y=a==null?void 0:a.graphql)==null?void 0:y.additionalHeaders,eagerFetchProducts:(P=(M=a==null?void 0:a.graphql)==null?void 0:M.productCollection)==null?void 0:P.eagerFetchProducts});return await C.getInitializationPromise(),C}async duplicateBundle(t,e,A,a){var u,E,m,f,p,Q,I,D;const i=(u=v.getMap("bundleOwnerIds"))==null?void 0:u.get(t),o=((E=Object.entries(localStorage).find(([y,M])=>y.startsWith("CognitoIdentityServiceProvider")&&y.endsWith("idToken")))==null?void 0:E[0])||"",r=localStorage.getItem(o),c={};r&&!ve(r)&&(c.Authorization=`Bearer ${r}`);const l={bundleOwnerId:i,...c,...(m=a==null?void 0:a.graphql)==null?void 0:m.additionalHeaders},d=(Q=(await N.getShadowGraphqlClient().mutate({mutation:bo(((p=(f=a==null?void 0:a.graphql)==null?void 0:f.productCollection)==null?void 0:p.eagerFetchProducts)||!1),variables:{id:t,template:e,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId,duplicateTransactions:A},context:{headers:l},fetchPolicy:"no-cache"})).data)==null?void 0:Q.bundleDuplicate;if(!(d!=null&&d.id))throw new Error("Unable to duplicate bundle");const B=v.getMap("bundlePartnerIds")||new Map;B.set(d.id,d.partner.id),v.setMap("bundlePartnerIds",B);const h=v.getMap("bundleOwnerIds")||new Map;h.set(d.id,d.bundleOwnerId),v.setMap("bundleOwnerIds",h);const C=new UA(this,d,void 0,void 0,d.bundleOwnerId,{eagerFetchProducts:(D=(I=a==null?void 0:a.graphql)==null?void 0:I.productCollection)==null?void 0:D.eagerFetchProducts});return await C.getInitializationPromise(),C}async getBundlesForCustomer(t){var i;if(!((i=this.customer)!=null&&i.id))throw new Error("Customer not authenticated.");const{includeMetadata:e,...A}=t;return(await N.getShadowGraphqlClient().query({query:Vo(e??!1),variables:{...A,id:this.customer.id},fetchPolicy:"no-cache"})).data.customerBundlesFeed}async getBundleStakeholders(){var i;if(!this.customer)throw new Error("Customer not authenticated.");const t=await N.getShadowGraphqlClient().query({query:No,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!((i=t.data)!=null&&i.customers)||t.data.customers.length===0)throw new Error("Unable to find customer.");const A=t.data.customers[0].bundleStakeholders||[],a=v.getMap("bundlePartnerIds")||new Map;return A.forEach(s=>{var o,r;(o=s.bundle)!=null&&o.id&&((r=s.bundle.partner)!=null&&r.id)&&a.set(s.bundle.id,s.bundle.partner.id)}),v.setMap("bundlePartnerIds",a),A}async getStepTags(t){const e=N.getShadowGraphqlClient();let A={};const a=t.steps.map(s=>`${t.id}_${s.stepName}`),i=await e.query({query:ur,fetchPolicy:"no-cache",variables:{entityIds:a}});for(const[s,o]of t.steps.entries()){const r=i.data.tagsMany[s];A={...A,[o.stepName]:r.map(c=>c.name)}}return A}async getWorkflowExperience(t,e,A,a){var d,B,h,C,u;if(!a)return await this.getWorkflowExperienceDeprecated(t,e,A);const i=async()=>{var m,f,p;const E=N.getShadowGraphqlClient();if(a.type==="transaction"){const{transactionId:Q,readOnly:I}=a,D=await E.query({query:Qe,variables:{ids:[Q]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!((m=D.data)!=null&&m.transactions)||D.data.transactions.length===0)throw new R("Existing transaction not found.");const y=(f=D.data)==null?void 0:f.transactions[0];if(!y.workflowId)throw new R("Existing transaction has no workflow ID.");const M=await Be(y.workflowId);if(!y.product)throw new R("Failed to load transaction, product not available.");!this.activeIntegration&&((p=y.integrationProduct)!=null&&p.integration)&&(this.activeIntegration=Promise.resolve(y.integrationProduct.integration));const P=await this.getStepTags(M);return{transaction:y,workflow:M,stepTags:P,readOnly:I}}if(a.type==="integration"||a.type==="external"){const Q=async()=>{const P=a.type==="integration"?{integrationProductId:a.integrationProductId}:{externalIntegrationId:a.externalIntegrationId,externalProductId:a.externalProductId},k=await E.mutate({mutation:ma,variables:{...P,workflowId:a.workflowId,designName:a.designName,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!k.data||!k.data.transactionCreate)throw new R("Failed to create transaction!");const Y=k.data.transactionCreate;if(!Y.product)throw new R("Failed to create transaction, product not available.");return Y},I=Be(a.workflowId,a==null?void 0:a.graphql),[D,y]=await Promise.all([Q(),I]),M=await this.getStepTags(y);return{transaction:D,workflow:y,stepTags:M}}throw new R("No workflow ID provided.")},{transaction:s,workflow:o,stepTags:r,readOnly:c}=await i();this.currencyCode=(d=s.product.partner)==null?void 0:d.currencyCode;const l={product:s.product,transaction:s,stepTags:r,layouts:[],singleVariantsRenderable:(B=a==null?void 0:a.workflowConfiguration)==null?void 0:B.singleVariantsRenderable,stateMutationFunc:c?async()=>{throw new L("State mutation is forbidden in read only mode!")}:async E=>{const f=(v.getMap("transactionOwnerIds")||new Map).get(s.id)||void 0;return this.updateTransactionState({...E,context:{transactionOwnerId:f}})},readOnly:c,workflow:o};if(a.type==="transaction"&&s.workflowState){const E=JSON.parse(s.workflowState);l.layouts=Object.values(E.layouts).map(m=>m.layout),await Qt(E),await Gt(E),l.reloadedState=E}else if(!c&&a.workflowState){const E=JSON.parse(a.workflowState);l.layouts=Object.values(E.layouts).map(m=>m.layout),await Qt(E),await Gt(E),l.reloadedState=E}else l.layouts=OA(l.transaction,l.workflow);if(l.renderableContextService=new ke(l.layouts),a.previewService?(l.previewService=a.previewService,(h=l.product)!=null&&h.modelUrl&&(l.modelContainer=l.previewService.loadModel({model:l.product.modelUrl,contextService:l.renderableContextService}))):(l.previewService=A&&A(o),(C=l.product)!=null&&C.modelUrl&&(l.modelContainer=(u=l.previewService)==null?void 0:u.loadModel({model:l.product.modelUrl,contextService:l.renderableContextService}))),a.type!=="transaction"){const E=v.getMap("transactionOwnerIds")||new Map;E.set(s.id,s.transactionOwnerId),v.setMap("transactionOwnerIds",E)}else l.isReloadedTransaction=!0;this.initialized=!0,this.experienceOptions=l;const g=new ge(this,l);return await g.getWorkflowManager().getInitializationPromise(),a.type!=="transaction"&&this.customer&&await g.attachCustomerDetails({email:this.customer.emailAddress}),g}async getWorkflowExperiences(t,e){if(t.length===0)throw new R("No options provided!");const A=N.getShadowGraphqlClient(),a=async Q=>{var M,P,k;if(Q.length===0)return[];const I=Q.map(Y=>Y.option.transactionId),D=await A.query({query:Qe,variables:{ids:I},errorPolicy:"all",fetchPolicy:"no-cache"}),y=D.data.transactions;if(y.length!==Q.length){const Y=((P=(M=D.errors)==null?void 0:M[0])==null?void 0:P.message)||"Unknown error";throw new R(`Not all transactions were found: ${Y}`)}return!this.activeIntegration&&((k=y[0].integrationProduct)!=null&&k.integration)&&(this.activeIntegration=Promise.resolve(y[0].integrationProduct.integration)),y.map((Y,V)=>{var G;return{transaction:Y,workflowId:Y.workflowId,readOnly:((G=Q.find(nt=>nt.option.transactionId===Y.id))==null?void 0:G.option.readOnly)??!1,index:Q[V].index}})},i=async Q=>{var y,M,P;if(Q.length===0)return[];const I=await A.mutate({mutation:Mi,variables:{inputs:Q.map(k=>({integrationProductId:k.option.type==="integration"?k.option.integrationProductId:void 0,externalIntegrationId:k.option.type==="external"?k.option.externalIntegrationId:void 0,externalProductId:k.option.type==="external"?k.option.externalProductId:void 0,workflowId:k.option.workflowId,designName:k.option.designName,claim:!0})),marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache"}),D=(y=I.data)==null?void 0:y.transactionCreateMany;if(!D||D.length===0){const k=((P=(M=I.errors)==null?void 0:M[0])==null?void 0:P.message)||"Unknown error";throw new R(`Failed to create transactions: ${k}`)}return D.map((k,Y)=>({transaction:k,workflowId:k.workflowId,readOnly:!1,index:Q[Y].index}))},s=t.map((Q,I)=>({option:Q,index:I})),o=s.filter(Q=>Q.option.type==="transaction"),r=s.filter(Q=>Q.option.type==="integration"||Q.option.type==="external"),c=VA(o,10),l=VA(r,10),g=(await Promise.all([...c.map(a),...l.map(i)])).flat(),d=[...new Set(g.map(Q=>Q.workflowId))],B=await JA(d,e),h=new Map(B.map(Q=>[Q.id,Q])),C=v.getMap("transactionOwnerIds")||new Map,u=g.map(async Q=>{var nt;const{transaction:I,workflowId:D,readOnly:y,index:M}=Q,P=h.get(D),k=await this.getStepTags(P),Y=t[M];!C.get(I.id)&&I.transactionOwnerId&&C.set(I.id,I.transactionOwnerId);const V=C.get(I.id)||void 0,G={product:I.product,transaction:I,stepTags:k,layouts:[],singleVariantsRenderable:(nt=Y==null?void 0:Y.workflowConfiguration)==null?void 0:nt.singleVariantsRenderable,stateMutationFunc:y?async()=>{throw new L("State mutation is forbidden in read only mode!")}:async W=>this.updateTransactionState({...W,context:{transactionOwnerId:V}}),readOnly:y,workflow:P,isReloadedTransaction:Y.type==="transaction"};if(Y.type==="transaction"&&I.workflowState){const W=JSON.parse(I.workflowState);G.layouts=Object.values(W.layouts||{}).map(pt=>pt.layout),await Qt(W),await Gt(W),G.reloadedState=W}else if(!y&&Y.workflowState){const W=JSON.parse(Y.workflowState);G.layouts=Object.values(W.layouts||{}).map(pt=>pt.layout),await Qt(W),await Gt(W),G.reloadedState=W}else G.layouts=OA(G.transaction,G.workflow);return G.renderableContextService=new ke(G.layouts),G.delayWorkflowStateSync=!0,this.initialized=!0,this.experienceOptions=G,{experienceOptions:G,index:M,options:Y}}),E=await Promise.all(u);v.setMap("transactionOwnerIds",C);const f=E.sort((Q,I)=>Q.index-I.index).map(async Q=>{const{experienceOptions:I,options:D}=Q,y=new ge(this,I);return await y.getWorkflowManager().getInitializationPromise(),D.type!=="transaction"&&this.customer&&await y.attachCustomerDetails({email:this.customer.emailAddress}),y}),p=await Promise.all(f);return p.forEach(Q=>Q.getWorkflowManager().setWorkflowStateSyncEnabled(!0)),p}async initFromIntegrationProduct(t){var s;if(t==="")throw new R("No integration product ID provided.");const A=await N.getShadowGraphqlClient().mutate({mutation:ma,variables:{integrationProductId:t,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data||!A.data.transactionCreate)throw new R("Failed to create transaction!");const a=A.data.transactionCreate;if(!a.product)throw new R("Failed to create transaction, product not available.");this.currencyCode=(s=a.product.partner)==null?void 0:s.currencyCode;const i=v.getMap("transactionOwnerIds")||new Map;i.set(a.id,a.transactionOwnerId),v.setMap("transactionOwnerIds",i),this.experienceOptions={product:a.product,transaction:a,layouts:[],stateMutationFunc:async o=>this.updateTransactionState({...o,context:{transactionOwnerId:a.transactionOwnerId}})},this.initialized=!0}async initFromTransaction(t,e=!1){var o,r,c,l;if(t==="")throw new R("No transaction ID provided.");const A=N.getShadowGraphqlClient(),a=async()=>{var B,h;const d=(B=(await A.query({query:Qe,variables:{ids:[t]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:B.transactions[0];if(!d)throw new R("Failed to read transaction.");if(!d.product)throw new R("Failed to load transaction, product not available.");this.currencyCode=(h=d.product.partner)==null?void 0:h.currencyCode,this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async()=>{throw new L("State mutation is forbidden in read only mode!")},readOnly:e},this.initialized=!0};if(e)return await a();const i=v.getMap("transactionOwnerIds")||new Map,s=i.get(t);if(s){const d=(o=(await A.query({query:Qe,variables:{ids:[t]},errorPolicy:"all"})).data)==null?void 0:o.transactions[0];if(!d)throw new R("Failed to read transaction.");if(!d.product)throw new R("Failed to load transaction, product not available.");this.currencyCode=(r=d.product.partner)==null?void 0:r.currencyCode,this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async B=>this.updateTransactionState({...B,context:{transactionOwnerId:s}}),readOnly:e},this.initialized=!0;return}try{const d=(c=(await A.mutate({mutation:Si,variables:{id:t},errorPolicy:"all"})).data)==null?void 0:c.transactionClaim;if(!d)throw new R("Failed to read transaction.");if(!d.product)throw new R("Failed to load transaction, product not available.");this.currencyCode=(l=d.product.partner)==null?void 0:l.currencyCode,d.transactionOwnerId&&(i.set(d.id,d.transactionOwnerId),v.setMap("transactionOwnerIds",i)),this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async B=>this.updateTransactionState({...B,context:{transactionOwnerId:d.transactionOwnerId}}),readOnly:e},this.initialized=!0}catch{throw new R("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(t,e,A){var a,i,s,o;if(!this.initialized||!this.experienceOptions)throw new R("Cannot launch experience: Not initialized.");if(this.experienceOptions.transaction.workflowId){const r=await Be(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=r,this.experienceOptions.transaction.workflowState){const l=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(l.layouts).map(g=>g.layout),await Qt(l),await Gt(l),this.experienceOptions.reloadedState=l}this.experienceOptions.previewService=A&&A(r),this.experienceOptions.renderableContextService=new ke(this.experienceOptions.layouts),(a=this.experienceOptions.product)!=null&&a.modelUrl&&(this.experienceOptions.modelContainer=(i=this.experienceOptions.previewService)==null?void 0:i.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const c=new ge(this,this.experienceOptions);return await c.getWorkflowManager().getInitializationPromise(),c}if(t){const c=(v.getMap("transactionOwnerIds")||new Map).get(this.experienceOptions.transaction.id),l=N.getShadowGraphqlClient().mutate({mutation:Yi,variables:{workflowId:t,id:this.experienceOptions.transaction.id},context:{transactionOwnerId:c}}),g=Be(t);if(await Promise.all([l,g]),this.experienceOptions.workflow=await g,e){const B=JSON.parse(e);this.experienceOptions.layouts=Object.values(B.layouts).map(h=>h.layout),await Qt(B),await Gt(B),this.experienceOptions.reloadedState=B}else this.experienceOptions.layouts=OA(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await g),this.experienceOptions.renderableContextService=new ke(this.experienceOptions.layouts),(s=this.experienceOptions.product)!=null&&s.modelUrl&&(this.experienceOptions.modelContainer=(o=this.experienceOptions.previewService)==null?void 0:o.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const d=new ge(this,this.experienceOptions);return await d.getWorkflowManager().getInitializationPromise(),d}throw new R("No workflow ID provided.")}getPreviewService(){var t;return(t=this.experienceOptions)==null?void 0:t.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new R("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new R("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}storeCustomer(t){const e=v.getMap("partnerCustomerIds")||new Map;e.set(t.partner.id,t.id),v.setMap("partnerCustomerIds",e)}async getIntegrationProductById(t){var i,s;const a=(i=(await N.getShadowGraphqlClient().query({query:Ni,variables:{ids:[t]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:i.integrationProducts;if(!a||a.length===0||!((s=a[0])!=null&&s.id))throw new Error("Integration product not found.");return new TA(a[0])}async getIntegrationProductFromExternalIds(t,e){var s;const i=(s=(await N.getShadowGraphqlClient().query({query:ki,variables:{externalProductId:e,externalIntegrationId:t},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:s.integrationProductFromExternalIds;if(!(i!=null&&i.id))throw new Error("Integration product not found.");return new TA(i)}async getIntegrationProduct(t){return t.type==="integration"?this.getIntegrationProductById(t.integrationProductId):this.getIntegrationProductFromExternalIds(t.externalIntegrationId,t.externalProductId)}async getShareActionsForTransaction(t){const A=(v.getMap("transactionOwnerIds")||new Map).get(t)||void 0,a=await N.getShadowGraphqlClient().query({query:vi,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t},context:{transactionOwnerId:A}});if(!a.data.transactions||a.data.transactions.length!==1)throw new Error(`Failed to fetch share actions for transaction: ${t}`);return a.data.transactions[0].transactionShareActions}}class Qr{getClient(){return this.client??{}}getWorkflowExperience(){return{}}setClient(t){this.client=t}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}async reset(){}updateStateWithServer(t){}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(t){}addPoller(t){}addConfirmCallback(t){}addEditedCallback(t){}addElementsCallback(t){}addInformationResultCallback(t){}addInitCallback(t){}addMakingAdjustmentsCallback(t){}addMandatoryCallback(t){}addMetadataCallback(t){}addSelectionCallback(t){}addStepSpecificStorageCallback(t,e){}addStorageCallback(t){}getCommandDispatcher(){return t=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(t){return[]}getSerializedStep(t,e){}getStepSpecificServices(t){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(t){}markUpdateCompleted(t){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}getStepSelections(){return{}}setCurrentAdjustingStepId(t){}setEditedStatus(t,e){}setInformationResults(t){}setMandatoryFulfilled(t,e){}async setSelectionsAndElements(t,e,A){}toggleDesignConfirmed(){}updateMetadata(t,e){}async updateStorage(t,e){}injectIntoPreviewService(t){return Promise.resolve()}ejectFromPreviewService(){}setWorkflowStateSyncEnabled(t){}async updateTransactionShareActions(){}addValidationCallback(t){}setStepError(t,e,A){}getStepErrors(t){}getValidationErrors(){return{steps:new Map}}async updateTransactionStakeholders(){}getStepTags(t){return[]}}var Un=(n=>(n.SelectFrame="SelectFrame",n.SelectImage="SelectImage",n.Position="Position",n))(Un||{});class Rn extends at{constructor(t,e,A){var a;super(t,e,A),this.frameService=(a=this.manager.getStepSpecificServices(this.getId()))==null?void 0:a.frameService}selectVariant(t){const e=this.manager.getRegionElements(this.step.stepName);return ut.selectVariant(this.step,t.getResource(),e,this.manager,A=>this.setUpdateState(A))}onFrameDataChanged(t){this.frameService&&this.frameService.onFrameDataChanged(e=>{e&&t(e)})}async selectImage(t,e=!0,A=!0){var a;if(await ut.selectImage(this.step,t,this.manager,A),e){const i=((a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.framePatternData)||{};this.manager.updateStorage(this.step.stepName,{framePatternData:{...i,originalAssetKey:t.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}})}}async canUseBackgroundRemover(){return this.manager.getClient().canUseAddon(he.BackgroundRemover)}async canRemoveBackground(){var t,e,A,a;return await this.canUseBackgroundRemover()&&this.hasOriginalImageSelection()&&!!((e=(t=this.frameService)==null?void 0:t.getImageData())!=null&&e.src)&&!((a=(A=this.frameService)==null?void 0:A.getImageData())!=null&&a.svg)}async removeBackgroundFromImageSelection(t=!0){var i;if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const e=await this.getOriginalImageSelection();if(!e)throw new Error("You must supply an image selection before attempting to remove the background.");const A=await T.removeBackgroundFromAsset(e);t&&await ut.selectImage(this.step,A,this.manager,!1);const a=((i=this.manager.getStepStorage(this.step.stepName))==null?void 0:i.framePatternData)||{};return this.manager.updateStorage(this.step.stepName,{framePatternData:{...a,backgroundRemovedAssetKey:A.key,useOriginalAsset:!t}}),A}changeColors(t){ut.changeColors(this.step,this.manager,t)}getImageData(){if(this.frameService)return this.frameService.getImageData()}async getColorOption(){return this.step.data.colorOption}getAvailableColors(){return this.step.data.colorPickerEnabled?ut.availableColors(this.step,this.manager):Promise.resolve([])}isColorPickerEnabled(){return this.step.data.colorPickerEnabled??!1}async getOriginalImageColors(){const t=this.getImageData();return t!=null&&t.svg?(await ct(t.svg)).colors:void 0}getMaxAllowedColors(){return this.step.data.maxColors}getUniqueColorCount(){return ut.getUniqueColorCount(this.step,this.manager)}getCurrentFrameStep(t,e,A,a){return a&&a.length>1&&t===void 0?"SelectFrame":e||A||this.getImageData()?"Position":"SelectImage"}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}getWhitelistedExtensions(){return[...this.step.data.whitelistedExtensions,...this.step.data.whitelistedExtensions.includes(".jpg")?[".jpeg"]:[]]}async getOriginalImageSelection(){var e,A;const t=(A=(e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.framePatternData)==null?void 0:A.originalAssetKey;if(t)return T.getLocalOrFromServer(t)}async getBackgroundRemovedImageSelection(){var e,A;const t=(A=(e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.framePatternData)==null?void 0:A.backgroundRemovedAssetKey;if(t)return T.getLocalOrFromServer(t)}hasOriginalImageSelection(){var t,e;return!!((e=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)!=null&&e.originalAssetKey)}hasBackgroundRemovedImageSelection(){var t,e;return!!((e=(t=this.getFrameStepStorage())==null?void 0:t.framePatternData)!=null&&e.backgroundRemovedAssetKey)}getUseOriginalImageSelection(){var t,e;return((e=(t=this.getFrameStepStorage())==null?void 0:t.framePatternData)==null?void 0:e.useOriginalAsset)??!1}async setUseOriginalImageSelection(t){var a;const e=((a=this.getFrameStepStorage())==null?void 0:a.framePatternData)||{};if(e.useOriginalAsset===t)return;const A=await this.getOriginalImageSelection();if(!A)throw new Error("You must provide an image selection before calling setUseOriginalImageSelection");if(t)await this.selectImage(A,!1,!1);else{const i=await this.getBackgroundRemovedImageSelection();if(!i)throw new Error("You must call removeBackgroundFromImageSelection before attempting to apply the image.");await this.selectImage(i,!1,!1)}this.manager.updateStorage(this.step.stepName,{framePatternData:{...e,useOriginalAsset:t}})}getFrameStepStorage(){return this.manager.getStepStorage(this.step.stepName)}}w.AddonHandle=he,w.ArrayInput=Ar,w.AspectType=st,w.AssetNotFoundError=lt,w.AssetType=Tt,w.BringForwardCommand=vs,w.BringToBackCommand=Ps,w.BringToFrontCommand=Ys,w.CanvasCommand=J,w.CollectionProduct=Ue,w.ColorOptionGlobalPropertyHandle=HA,w.CommandContext=Oa,w.ConversionDataType=_A,w.ConversionLocation=$A,w.CreateElementCommand=K,w.CreateLayoutCommand=wA,w.DeleteElementCommand=wt,w.DigitalContentStepHandle=mn,w.FileUploadGlobalPropertyHandle=Sn,w.FlowExecutionNodeResult=de,w.FlowExecutionResult=kn,w.FlowService=Nn,w.FontAlignmentCommand=Va,w.FontColorCommand=ja,w.FontSizeCommand=Ka,w.FontSourceCommand=EA,w.FrameService=qa,w.FrameStep=Un,w.FrameStepHandle=Rn,w.GlobalPropertyHandle=be,w.GroupCommand=O,w.IllustrationStepHandle=gn,w.InformationMessageType=le,w.InformationStepHandle=En,w.IntegrationProduct=TA,w.IntegrationType=qA,w.LayoutElementFactory=ks,w.LayoutElementType=H,w.LayoutNotFoundError=q,w.LayoutRenderingPurpose=Ft,w.MaterialStepHandle=dn,w.MisconfigurationError=zt,w.MockWorkflowManager=Qr,w.ModelStepHandle=Bn,w.ModuleStepHandle=fn,w.MoveCommand=Is,w.ObjectInput=GA,w.ObjectInputType=Hn,w.OptionGlobalPropertyHandle=kA,w.OptionNotFoundError=Lt,w.ParseError=Mt,w.PictureStepHandle=hn,w.ProductCameraRig=ZA,w.ProductCollection=Yn,w.ProductWorkflow=Rt,w.PromiseCache=xt,w.PromiseQueue=eA,w.QuestionStepHandle=Cn,w.QueueablePromise=tA,w.ResizeCommand=Fs,w.ResourceNotFoundError=yt,w.RotateCommand=Ds,w.ScaleAxis=X,w.SendBackwardsCommand=Ns,w.ShapeStepHandle=wn,w.SpiffCommerceClient=bn,w.StakeholderType=Jt,w.StepAspectType=WA,w.StepHandle=at,w.StepType=S,w.TextAlgorithm=Et,w.TextChangeCommand=Wa,w.TextGlobalPropertyHandle=xn,w.TextInput=er,w.TextStepHandle=un,w.TransactionShareActionType=XA,w.Transform=vn,w.TransformCollection=Pn,w.UnhandledBehaviorError=L,w.UnitOfMeasurement=ta,w.UpdateImageSourceCommand=Ss,w.Variant=ot,w.WorkflowExperienceEventType=Fn,w.WorkflowExperienceImpl=ge,w.assetService=T,w.browserColorToHex=Sa,w.cmPerPixel=cs,w.createDesign=Dn,w.currentDirection=ss,w.dataUrlFromExternalUrl=_n,w.designService=Ne,w.determineCorrectFontSizeAndLines=ce,w.digitalContentStepService=QA,w.fetchAsString=tt,w.findAngle=_i,w.findElement=z,w.findPmsColors=ji,w.frameDataCache=vt,w.frameStepService=ut,w.generate=b,w.generateCommands=yn,w.generateSVGWithUnknownColors=ct,w.generateStateFromDesignInputSteps=xo,w.getAttributesFromArrayBuffer=Xt,w.getAxisAlignedBoundingBox=$i,w.getBoundedOffsets=Xa,w.getElementVertices=os,w.getFrameData=te,w.getNEPoint=ns,w.getNWPoint=as,w.getPointOfRotation=As,w.getSEPoint=is,w.getSvgElement=Me,w.getTrueCoordinates=es,w.getWorkflow=Be,w.getWorkflows=JA,w.graphQlManager=N,w.illustrationStepService=re,w.isCloseToValue=ts,w.loadFont=bt,w.matchHexToPms=Oi,w.materialStepService=pA,w.mmPerPixel=rs,w.modelStepService=IA,w.moduleStepService=DA,w.optionService=et,w.patternImageDataCache=Bt,w.persistenceService=v,w.pictureStepService=FA,w.pmsToRgb=Ji,w.questionStepService=yA,w.registerFetchImplementation=Xn,w.registerWindowImplementation=Wn,w.rehydrateSerializedLayout=Qt,w.rgbToPms=Ma,w.rotateAroundPoint=ae,w.sanitizeSvgTree=Ie,w.setBearerAuthenticationToken=Ba,w.setCanvasModule=Xe,w.shapeStepService=Ut,w.shortenUrl=_a,w.spiffCoreConfiguration=it,w.stepAspectValuesToDesignInputSteps=So,w.svgColorValueToDefinition=rA,w.svgStringDimensions=sA,w.svgToDataUrl=je,w.textStepService=_,w.toast=en,w.xmlSerializer=Kt,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});