').parent().attr({\n id: modeId + '_' + id,\n title: id\n });\n // Store for later use\n return iconBtn[0];\n });\n }\n\n /**\n * @param {string|\"basic\"} catId\n * @returns {void}\n */\n function loadLibrary (catId) {\n const lib = library[catId];\n\n if (!lib) {\n $('#shape_buttons').html(strings.loading);\n $.getJSON(svgEditor.curConfig.extIconsPath + 'shapelib/' + catId + '.json', function (result) {\n curLib = library[catId] = {\n data: result.data,\n size: result.size,\n fill: result.fill\n };\n makeButtons(catId, result);\n loadIcons();\n });\n return;\n }\n curLib = lib;\n if (!lib.buttons.length) { makeButtons(catId, lib); }\n loadIcons();\n }\n const buttons = [{\n id: 'tool_shapelib',\n icon: svgEditor.curConfig.extIconsPath + 'shapes.png',\n type: 'mode_flyout', // _flyout\n position: 6,\n events: {\n click () {\n canv.setMode(modeId);\n }\n }\n }];\n\n return {\n svgicons: svgEditor.curConfig.extIconsPath + 'ext-shapes.xml',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n }),\n callback () {\n $('').appendTo('head');\n }\n fcRules.text(!on ? '' : ' #tool_topath { display: none !important; }');\n $('#star_panel').toggle(on);\n }\n\n /*\n function toggleSourceButtons(on){\n $('#star_save, #star_cancel').toggle(on);\n }\n */\n\n /**\n *\n * @param {string} attr\n * @param {string|Float} val\n * @returns {void}\n */\n function setAttr (attr, val) {\n svgCanvas.changeSelectedAttribute(attr, val);\n svgCanvas.call('changed', selElems);\n }\n\n /*\n function cot(n){\n return 1 / Math.tan(n);\n }\n\n function sec(n){\n return 1 / Math.cos(n);\n }\n */\n const buttons = [{\n id: 'tool_star',\n icon: svgEditor.curConfig.extIconsPath + 'star.png',\n type: 'mode',\n position: 12,\n events: {\n click () {\n showPanel(true);\n svgCanvas.setMode('star');\n }\n }\n }];\n const contextTools = [{\n type: 'input',\n panel: 'star_panel',\n id: 'starNumPoints',\n size: 3,\n defval: 5,\n events: {\n change () {\n setAttr('point', this.value);\n }\n }\n }, {\n type: 'input',\n panel: 'star_panel',\n id: 'starRadiusMulitplier',\n size: 3,\n defval: 2.5\n }, {\n type: 'input',\n panel: 'star_panel',\n id: 'radialShift',\n size: 3,\n defval: 0,\n events: {\n change () {\n setAttr('radialshift', this.value);\n }\n }\n }];\n\n return {\n name: strings.name,\n svgicons: svgEditor.curConfig.extIconsPath + 'star-icons.svg',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n }),\n context_tools: strings.contextTools.map((contextTool, i) => {\n return Object.assign(contextTools[i], contextTool);\n }),\n callback () {\n $('#star_panel').hide();\n // const endChanges = function(){};\n },\n mouseDown (opts) {\n const rgb = svgCanvas.getColor('fill');\n // const ccRgbEl = rgb.substring(1, rgb.length);\n const sRgb = svgCanvas.getColor('stroke');\n // const ccSRgbEl = sRgb.substring(1, rgb.length);\n const sWidth = svgCanvas.getStrokeWidth();\n\n if (svgCanvas.getMode() === 'star') {\n started = true;\n\n newFO = svgCanvas.addSVGElementFromJson({\n element: 'polygon',\n attr: {\n cx: opts.start_x,\n cy: opts.start_y,\n id: svgCanvas.getNextId(),\n shape: 'star',\n point: document.getElementById('starNumPoints').value,\n r: 0,\n radialshift: document.getElementById('radialShift').value,\n r2: 0,\n orient: 'point',\n fill: rgb,\n strokecolor: sRgb,\n strokeWidth: sWidth\n }\n });\n return {\n started: true\n };\n }\n return undefined;\n },\n mouseMove (opts) {\n if (!started) {\n return undefined;\n }\n if (svgCanvas.getMode() === 'star') {\n const c = $(newFO).attr(['cx', 'cy', 'point', 'orient', 'fill', 'strokecolor', 'strokeWidth', 'radialshift']);\n\n let x = opts.mouse_x;\n let y = opts.mouse_y;\n const {cx, cy, fill, strokecolor, strokeWidth, radialshift, point, orient} = c,\n circumradius = (Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy))) / 1.5,\n inradius = circumradius / document.getElementById('starRadiusMulitplier').value;\n newFO.setAttribute('r', circumradius);\n newFO.setAttribute('r2', inradius);\n\n let polyPoints = '';\n for (let s = 0; point >= s; s++) {\n let angle = 2.0 * Math.PI * (s / point);\n if (orient === 'point') {\n angle -= (Math.PI / 2);\n } else if (orient === 'edge') {\n angle = (angle + (Math.PI / point)) - (Math.PI / 2);\n }\n\n x = (circumradius * Math.cos(angle)) + cx;\n y = (circumradius * Math.sin(angle)) + cy;\n\n polyPoints += x + ',' + y + ' ';\n\n if (!isNaN(inradius)) {\n angle = (2.0 * Math.PI * (s / point)) + (Math.PI / point);\n if (orient === 'point') {\n angle -= (Math.PI / 2);\n } else if (orient === 'edge') {\n angle = (angle + (Math.PI / point)) - (Math.PI / 2);\n }\n angle += radialshift;\n\n x = (inradius * Math.cos(angle)) + cx;\n y = (inradius * Math.sin(angle)) + cy;\n\n polyPoints += x + ',' + y + ' ';\n }\n }\n newFO.setAttribute('points', polyPoints);\n newFO.setAttribute('fill', fill);\n newFO.setAttribute('stroke', strokecolor);\n newFO.setAttribute('stroke-width', strokeWidth);\n /* const shape = */ newFO.getAttribute('shape');\n\n return {\n started: true\n };\n }\n return undefined;\n },\n mouseUp () {\n if (svgCanvas.getMode() === 'star') {\n const attrs = $(newFO).attr(['r']);\n // svgCanvas.addToSelection([newFO], true);\n return {\n keep: (attrs.r !== '0'),\n element: newFO\n };\n }\n return undefined;\n },\n selectedChanged (opts) {\n // Use this to update the current selected elements\n selElems = opts.elems;\n\n let i = selElems.length;\n while (i--) {\n const elem = selElems[i];\n if (elem && elem.getAttribute('shape') === 'star') {\n if (opts.selectedElement && !opts.multiselected) {\n // $('#starRadiusMulitplier').val(elem.getAttribute('r2'));\n $('#starNumPoints').val(elem.getAttribute('point'));\n $('#radialShift').val(elem.getAttribute('radialshift'));\n showPanel(true);\n } else {\n showPanel(false);\n }\n } else {\n showPanel(false);\n }\n }\n },\n elementChanged (opts) {\n // const elem = opts.elems[0];\n }\n };\n }\n};\n"],"names":["name","init","S","showPanel","setAttr","attr","val","svgCanvas","changeSelectedAttribute","call","selElems","on","fcRules","$","length","appendTo","text","toggle","svgEditor","canvas","importLocale","strings","buttons","id","icon","curConfig","extIconsPath","type","position","events","click","setMode","contextTools","panel","size","defval","change","value","svgicons","map","button","i","Object","assign","context_tools","contextTool","callback","hide","mouseDown","opts","rgb","getColor","sRgb","sWidth","getStrokeWidth","getMode","started","newFO","addSVGElementFromJson","element","cx","start_x","cy","start_y","getNextId","shape","point","document","getElementById","r","radialshift","r2","orient","fill","strokecolor","strokeWidth","undefined","mouseMove","c","x","mouse_x","y","mouse_y","circumradius","Math","sqrt","inradius","setAttribute","polyPoints","s","angle","PI","cos","sin","isNaN","getAttribute","mouseUp","attrs","keep","selectedChanged","elems","elem","selectedElement","multiselected","elementChanged"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gBAAe;;ACUf,cAAe;AACbA,EAAAA,IAAI,EAAE,MADO;AAEPC,EAAAA,IAFO,gBAEDC,CAFC,EAEE;AAAA;;AAAA;AAAA,oFAsBJC,SAtBI,EA2CJC,OA3CI;AAAA;AAAA;AAAA;AAAA;AA2CJA,cAAAA,OA3CI,qBA2CKC,IA3CL,EA2CWC,GA3CX,EA2CgB;AAC3BC,gBAAAA,SAAS,CAACC,uBAAV,CAAkCH,IAAlC,EAAwCC,GAAxC;AACAC,gBAAAA,SAAS,CAACE,IAAV,CAAe,SAAf,EAA0BC,QAA1B;AACD,eA9CY;;AAsBJP,cAAAA,SAtBI,uBAsBOQ,EAtBP,EAsBW;AACtB,oBAAIC,OAAO,GAAGC,CAAC,CAAC,WAAD,CAAf;;AACA,oBAAI,CAACD,OAAO,CAACE,MAAb,EAAqB;AACnBF,kBAAAA,OAAO,GAAGC,CAAC,CAAC,+BAAD,CAAD,CAAmCE,QAAnC,CAA4C,MAA5C,CAAV;AACD;;AACDH,gBAAAA,OAAO,CAACI,IAAR,CAAa,CAACL,EAAD,GAAM,EAAN,GAAW,6CAAxB;AACAE,gBAAAA,CAAC,CAAC,aAAD,CAAD,CAAiBI,MAAjB,CAAwBN,EAAxB;AACD,eA7BY;;AACPO,cAAAA,SADO,GACK,KADL;AAEPX,cAAAA,SAFO,GAEKW,SAAS,CAACC,MAFf;AAINN,cAAAA,CAJM,GAIaX,CAJb,CAINW,CAJM,EAIHO,YAJG,GAIalB,CAJb,CAIHkB,YAJG;;AAAA;AAAA,qBAeSA,YAAY,EAfrB;;AAAA;AAePC,cAAAA,OAfO;;AAgDb;;;;;;;;AASMC,cAAAA,OAzDO,GAyDG,CAAC;AACfC,gBAAAA,EAAE,EAAE,WADW;AAEfC,gBAAAA,IAAI,EAAEN,SAAS,CAACO,SAAV,CAAoBC,YAApB,GAAmC,UAF1B;AAGfC,gBAAAA,IAAI,EAAE,MAHS;AAIfC,gBAAAA,QAAQ,EAAE,EAJK;AAKfC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KADM,mBACG;AACP3B,oBAAAA,SAAS,CAAC,IAAD,CAAT;AACAI,oBAAAA,SAAS,CAACwB,OAAV,CAAkB,MAAlB;AACD;AAJK;AALO,eAAD,CAzDH;AAqEPC,cAAAA,YArEO,GAqEQ,CAAC;AACpBL,gBAAAA,IAAI,EAAE,OADc;AAEpBM,gBAAAA,KAAK,EAAE,YAFa;AAGpBV,gBAAAA,EAAE,EAAE,eAHgB;AAIpBW,gBAAAA,IAAI,EAAE,CAJc;AAKpBC,gBAAAA,MAAM,EAAE,CALY;AAMpBN,gBAAAA,MAAM,EAAE;AACNO,kBAAAA,MADM,oBACI;AACRhC,oBAAAA,OAAO,CAAC,OAAD,EAAU,KAAKiC,KAAf,CAAP;AACD;AAHK;AANY,eAAD,EAWlB;AACDV,gBAAAA,IAAI,EAAE,OADL;AAEDM,gBAAAA,KAAK,EAAE,YAFN;AAGDV,gBAAAA,EAAE,EAAE,sBAHH;AAIDW,gBAAAA,IAAI,EAAE,CAJL;AAKDC,gBAAAA,MAAM,EAAE;AALP,eAXkB,EAiBlB;AACDR,gBAAAA,IAAI,EAAE,OADL;AAEDM,gBAAAA,KAAK,EAAE,YAFN;AAGDV,gBAAAA,EAAE,EAAE,aAHH;AAIDW,gBAAAA,IAAI,EAAE,CAJL;AAKDC,gBAAAA,MAAM,EAAE,CALP;AAMDN,gBAAAA,MAAM,EAAE;AACNO,kBAAAA,MADM,oBACI;AACRhC,oBAAAA,OAAO,CAAC,aAAD,EAAgB,KAAKiC,KAArB,CAAP;AACD;AAHK;AANP,eAjBkB,CArER;AAAA,+CAmGN;AACLrC,gBAAAA,IAAI,EAAEqB,OAAO,CAACrB,IADT;AAELsC,gBAAAA,QAAQ,EAAEpB,SAAS,CAACO,SAAV,CAAoBC,YAApB,GAAmC,gBAFxC;AAGLJ,gBAAAA,OAAO,EAAED,OAAO,CAACC,OAAR,CAAgBiB,GAAhB,CAAoB,UAACC,MAAD,EAASC,CAAT,EAAe;AAC1C,yBAAOC,MAAM,CAACC,MAAP,CAAcrB,OAAO,CAACmB,CAAD,CAArB,EAA0BD,MAA1B,CAAP;AACD,iBAFQ,CAHJ;AAMLI,gBAAAA,aAAa,EAAEvB,OAAO,CAACW,YAAR,CAAqBO,GAArB,CAAyB,UAACM,WAAD,EAAcJ,CAAd,EAAoB;AAC1D,yBAAOC,MAAM,CAACC,MAAP,CAAcX,YAAY,CAACS,CAAD,CAA1B,EAA+BI,WAA/B,CAAP;AACD,iBAFc,CANV;AASLC,gBAAAA,QATK,sBASO;AACVjC,kBAAAA,CAAC,CAAC,aAAD,CAAD,CAAiBkC,IAAjB,GADU;AAGX,iBAZI;AAaLC,gBAAAA,SAbK,qBAaMC,IAbN,EAaY;AACf,sBAAMC,GAAG,GAAG3C,SAAS,CAAC4C,QAAV,CAAmB,MAAnB,CAAZ,CADe;;AAGf,sBAAMC,IAAI,GAAG7C,SAAS,CAAC4C,QAAV,CAAmB,QAAnB,CAAb,CAHe;;AAKf,sBAAME,MAAM,GAAG9C,SAAS,CAAC+C,cAAV,EAAf;;AAEA,sBAAI/C,SAAS,CAACgD,OAAV,OAAwB,MAA5B,EAAoC;AAClCC,oBAAAA,OAAO,GAAG,IAAV;AAEAC,oBAAAA,KAAK,GAAGlD,SAAS,CAACmD,qBAAV,CAAgC;AACtCC,sBAAAA,OAAO,EAAE,SAD6B;AAEtCtD,sBAAAA,IAAI,EAAE;AACJuD,wBAAAA,EAAE,EAAEX,IAAI,CAACY,OADL;AAEJC,wBAAAA,EAAE,EAAEb,IAAI,CAACc,OAFL;AAGJxC,wBAAAA,EAAE,EAAEhB,SAAS,CAACyD,SAAV,EAHA;AAIJC,wBAAAA,KAAK,EAAE,MAJH;AAKJC,wBAAAA,KAAK,EAAEC,QAAQ,CAACC,cAAT,CAAwB,eAAxB,EAAyC/B,KAL5C;AAMJgC,wBAAAA,CAAC,EAAE,CANC;AAOJC,wBAAAA,WAAW,EAAEH,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuC/B,KAPhD;AAQJkC,wBAAAA,EAAE,EAAE,CARA;AASJC,wBAAAA,MAAM,EAAE,OATJ;AAUJC,wBAAAA,IAAI,EAAEvB,GAVF;AAWJwB,wBAAAA,WAAW,EAAEtB,IAXT;AAYJuB,wBAAAA,WAAW,EAAEtB;AAZT;AAFgC,qBAAhC,CAAR;AAiBA,2BAAO;AACLG,sBAAAA,OAAO,EAAE;AADJ,qBAAP;AAGD;;AACD,yBAAOoB,SAAP;AACD,iBA7CI;AA8CLC,gBAAAA,SA9CK,qBA8CM5B,IA9CN,EA8CY;AACf,sBAAI,CAACO,OAAL,EAAc;AACZ,2BAAOoB,SAAP;AACD;;AACD,sBAAIrE,SAAS,CAACgD,OAAV,OAAwB,MAA5B,EAAoC;AAClC,wBAAMuB,CAAC,GAAGjE,CAAC,CAAC4C,KAAD,CAAD,CAASpD,IAAT,CAAc,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsB,QAAtB,EAAgC,MAAhC,EAAwC,aAAxC,EAAuD,aAAvD,EAAsE,aAAtE,CAAd,CAAV;AAEA,wBAAI0E,CAAC,GAAG9B,IAAI,CAAC+B,OAAb;AACA,wBAAIC,CAAC,GAAGhC,IAAI,CAACiC,OAAb;AAJkC,wBAK3BtB,EAL2B,GAK2CkB,CAL3C,CAK3BlB,EAL2B;AAAA,wBAKvBE,EALuB,GAK2CgB,CAL3C,CAKvBhB,EALuB;AAAA,wBAKnBW,IALmB,GAK2CK,CAL3C,CAKnBL,IALmB;AAAA,wBAKbC,WALa,GAK2CI,CAL3C,CAKbJ,WALa;AAAA,wBAKAC,WALA,GAK2CG,CAL3C,CAKAH,WALA;AAAA,wBAKaL,WALb,GAK2CQ,CAL3C,CAKaR,WALb;AAAA,wBAK0BJ,KAL1B,GAK2CY,CAL3C,CAK0BZ,KAL1B;AAAA,wBAKiCM,MALjC,GAK2CM,CAL3C,CAKiCN,MALjC;AAAA,wBAMhCW,YANgC,GAMhBC,IAAI,CAACC,IAAL,CAAU,CAACN,CAAC,GAAGnB,EAAL,KAAYmB,CAAC,GAAGnB,EAAhB,IAAsB,CAACqB,CAAC,GAAGnB,EAAL,KAAYmB,CAAC,GAAGnB,EAAhB,CAAhC,CAAD,GAAyD,GANxC;AAAA,wBAOhCwB,QAPgC,GAOrBH,YAAY,GAAGhB,QAAQ,CAACC,cAAT,CAAwB,sBAAxB,EAAgD/B,KAP1C;AAQlCoB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,GAAnB,EAAwBJ,YAAxB;AACA1B,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,IAAnB,EAAyBD,QAAzB;AAEA,wBAAIE,UAAU,GAAG,EAAjB;;AACA,yBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBvB,KAAK,IAAIuB,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;AAC/B,0BAAIC,KAAK,GAAG,MAAMN,IAAI,CAACO,EAAX,IAAiBF,CAAC,GAAGvB,KAArB,CAAZ;;AACA,0BAAIM,MAAM,KAAK,OAAf,EAAwB;AACtBkB,wBAAAA,KAAK,IAAKN,IAAI,CAACO,EAAL,GAAU,CAApB;AACD,uBAFD,MAEO,IAAInB,MAAM,KAAK,MAAf,EAAuB;AAC5BkB,wBAAAA,KAAK,GAAIA,KAAK,GAAIN,IAAI,CAACO,EAAL,GAAUzB,KAApB,GAA+BkB,IAAI,CAACO,EAAL,GAAU,CAAjD;AACD;;AAEDZ,sBAAAA,CAAC,GAAII,YAAY,GAAGC,IAAI,CAACQ,GAAL,CAASF,KAAT,CAAhB,GAAmC9B,EAAvC;AACAqB,sBAAAA,CAAC,GAAIE,YAAY,GAAGC,IAAI,CAACS,GAAL,CAASH,KAAT,CAAhB,GAAmC5B,EAAvC;AAEA0B,sBAAAA,UAAU,IAAIT,CAAC,GAAG,GAAJ,GAAUE,CAAV,GAAc,GAA5B;;AAEA,0BAAI,CAACa,KAAK,CAACR,QAAD,CAAV,EAAsB;AACpBI,wBAAAA,KAAK,GAAI,MAAMN,IAAI,CAACO,EAAX,IAAiBF,CAAC,GAAGvB,KAArB,CAAD,GAAiCkB,IAAI,CAACO,EAAL,GAAUzB,KAAnD;;AACA,4BAAIM,MAAM,KAAK,OAAf,EAAwB;AACtBkB,0BAAAA,KAAK,IAAKN,IAAI,CAACO,EAAL,GAAU,CAApB;AACD,yBAFD,MAEO,IAAInB,MAAM,KAAK,MAAf,EAAuB;AAC5BkB,0BAAAA,KAAK,GAAIA,KAAK,GAAIN,IAAI,CAACO,EAAL,GAAUzB,KAApB,GAA+BkB,IAAI,CAACO,EAAL,GAAU,CAAjD;AACD;;AACDD,wBAAAA,KAAK,IAAIpB,WAAT;AAEAS,wBAAAA,CAAC,GAAIO,QAAQ,GAAGF,IAAI,CAACQ,GAAL,CAASF,KAAT,CAAZ,GAA+B9B,EAAnC;AACAqB,wBAAAA,CAAC,GAAIK,QAAQ,GAAGF,IAAI,CAACS,GAAL,CAASH,KAAT,CAAZ,GAA+B5B,EAAnC;AAEA0B,wBAAAA,UAAU,IAAIT,CAAC,GAAG,GAAJ,GAAUE,CAAV,GAAc,GAA5B;AACD;AACF;;AACDxB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,QAAnB,EAA6BC,UAA7B;AACA/B,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,MAAnB,EAA2Bd,IAA3B;AACAhB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,QAAnB,EAA6Bb,WAA7B;AACAjB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,cAAnB,EAAmCZ,WAAnC;AACA;;AAAoBlB,oBAAAA,KAAK,CAACsC,YAAN,CAAmB,OAAnB;AAEpB,2BAAO;AACLvC,sBAAAA,OAAO,EAAE;AADJ,qBAAP;AAGD;;AACD,yBAAOoB,SAAP;AACD,iBArGI;AAsGLoB,gBAAAA,OAtGK,qBAsGM;AACT,sBAAIzF,SAAS,CAACgD,OAAV,OAAwB,MAA5B,EAAoC;AAClC,wBAAM0C,KAAK,GAAGpF,CAAC,CAAC4C,KAAD,CAAD,CAASpD,IAAT,CAAc,CAAC,GAAD,CAAd,CAAd,CADkC;;AAGlC,2BAAO;AACL6F,sBAAAA,IAAI,EAAGD,KAAK,CAAC5B,CAAN,KAAY,GADd;AAELV,sBAAAA,OAAO,EAAEF;AAFJ,qBAAP;AAID;;AACD,yBAAOmB,SAAP;AACD,iBAhHI;AAiHLuB,gBAAAA,eAjHK,2BAiHYlD,IAjHZ,EAiHkB;AACrB;AACAvC,kBAAAA,QAAQ,GAAGuC,IAAI,CAACmD,KAAhB;AAEA,sBAAI3D,CAAC,GAAG/B,QAAQ,CAACI,MAAjB;;AACA,yBAAO2B,CAAC,EAAR,EAAY;AACV,wBAAM4D,IAAI,GAAG3F,QAAQ,CAAC+B,CAAD,CAArB;;AACA,wBAAI4D,IAAI,IAAIA,IAAI,CAACN,YAAL,CAAkB,OAAlB,MAA+B,MAA3C,EAAmD;AACjD,0BAAI9C,IAAI,CAACqD,eAAL,IAAwB,CAACrD,IAAI,CAACsD,aAAlC,EAAiD;AAC/C;AACA1F,wBAAAA,CAAC,CAAC,gBAAD,CAAD,CAAoBP,GAApB,CAAwB+F,IAAI,CAACN,YAAL,CAAkB,OAAlB,CAAxB;AACAlF,wBAAAA,CAAC,CAAC,cAAD,CAAD,CAAkBP,GAAlB,CAAsB+F,IAAI,CAACN,YAAL,CAAkB,aAAlB,CAAtB;AACA5F,wBAAAA,SAAS,CAAC,IAAD,CAAT;AACD,uBALD,MAKO;AACLA,wBAAAA,SAAS,CAAC,KAAD,CAAT;AACD;AACF,qBATD,MASO;AACLA,sBAAAA,SAAS,CAAC,KAAD,CAAT;AACD;AACF;AACF,iBArII;AAsILqG,gBAAAA,cAtIK,0BAsIWvD,IAtIX,EAsIiB;AAErB;AAxII,eAnGM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6Od;AA/OY,CAAf;;;;"}
\ No newline at end of file
+{"version":3,"file":"ext-star.js","sources":["../../../src/editor/extensions/ext-star.js"],"sourcesContent":["/**\n * @file ext-star.js\n *\n *\n * @copyright 2010 CloudCanvas, Inc. All rights reserved\n *\n */\n\nexport default {\n name: 'star',\n async init (S) {\n const svgEditor = this;\n const svgCanvas = svgEditor.canvas;\n\n const {$, importLocale} = S; // {svgcontent},\n let\n selElems,\n // editingitex = false,\n // svgdoc = S.svgroot.parentNode.ownerDocument,\n started,\n newFO;\n // edg = 0,\n // newFOG, newFOGParent, newDef, newImageName, newMaskID,\n // undoCommand = 'Not image',\n // modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH;\n const strings = await importLocale();\n\n /**\n *\n * @param {boolean} on\n * @returns {void}\n */\n function showPanel (on) {\n let fcRules = $('#fc_rules');\n if (!fcRules.length) {\n fcRules = $('').appendTo('head');\n }\n fcRules.text(!on ? '' : ' #tool_topath { display: none !important; }');\n $('#star_panel').toggle(on);\n }\n\n /*\n function toggleSourceButtons(on){\n $('#star_save, #star_cancel').toggle(on);\n }\n */\n\n /**\n *\n * @param {string} attr\n * @param {string|Float} val\n * @returns {void}\n */\n function setAttr (attr, val) {\n svgCanvas.changeSelectedAttribute(attr, val);\n svgCanvas.call('changed', selElems);\n }\n\n /*\n function cot(n){\n return 1 / Math.tan(n);\n }\n\n function sec(n){\n return 1 / Math.cos(n);\n }\n */\n const buttons = [{\n id: 'tool_star',\n icon: 'star.png',\n type: 'mode',\n position: 12,\n events: {\n click () {\n showPanel(true);\n svgCanvas.setMode('star');\n }\n }\n }];\n const contextTools = [{\n type: 'input',\n panel: 'star_panel',\n id: 'starNumPoints',\n size: 3,\n defval: 5,\n events: {\n change () {\n setAttr('point', this.value);\n }\n }\n }, {\n type: 'input',\n panel: 'star_panel',\n id: 'starRadiusMulitplier',\n size: 3,\n defval: 2.5\n }, {\n type: 'input',\n panel: 'star_panel',\n id: 'radialShift',\n size: 3,\n defval: 0,\n events: {\n change () {\n setAttr('radialshift', this.value);\n }\n }\n }];\n\n return {\n name: strings.name,\n svgicons: 'star-icons.svg',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n }),\n context_tools: strings.contextTools.map((contextTool, i) => {\n return Object.assign(contextTools[i], contextTool);\n }),\n callback () {\n $('#star_panel').hide();\n // const endChanges = function(){};\n },\n mouseDown (opts) {\n const rgb = svgCanvas.getColor('fill');\n // const ccRgbEl = rgb.substring(1, rgb.length);\n const sRgb = svgCanvas.getColor('stroke');\n // const ccSRgbEl = sRgb.substring(1, rgb.length);\n const sWidth = svgCanvas.getStrokeWidth();\n\n if (svgCanvas.getMode() === 'star') {\n started = true;\n\n newFO = svgCanvas.addSVGElementFromJson({\n element: 'polygon',\n attr: {\n cx: opts.start_x,\n cy: opts.start_y,\n id: svgCanvas.getNextId(),\n shape: 'star',\n point: document.getElementById('starNumPoints').value,\n r: 0,\n radialshift: document.getElementById('radialShift').value,\n r2: 0,\n orient: 'point',\n fill: rgb,\n strokecolor: sRgb,\n strokeWidth: sWidth\n }\n });\n return {\n started: true\n };\n }\n return undefined;\n },\n mouseMove (opts) {\n if (!started) {\n return undefined;\n }\n if (svgCanvas.getMode() === 'star') {\n const c = $(newFO).attr(['cx', 'cy', 'point', 'orient', 'fill', 'strokecolor', 'strokeWidth', 'radialshift']);\n\n let x = opts.mouse_x;\n let y = opts.mouse_y;\n const {cx, cy, fill, strokecolor, strokeWidth, radialshift, point, orient} = c,\n circumradius = (Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy))) / 1.5,\n inradius = circumradius / document.getElementById('starRadiusMulitplier').value;\n newFO.setAttribute('r', circumradius);\n newFO.setAttribute('r2', inradius);\n\n let polyPoints = '';\n for (let s = 0; point >= s; s++) {\n let angle = 2.0 * Math.PI * (s / point);\n if (orient === 'point') {\n angle -= (Math.PI / 2);\n } else if (orient === 'edge') {\n angle = (angle + (Math.PI / point)) - (Math.PI / 2);\n }\n\n x = (circumradius * Math.cos(angle)) + cx;\n y = (circumradius * Math.sin(angle)) + cy;\n\n polyPoints += x + ',' + y + ' ';\n\n if (!isNaN(inradius)) {\n angle = (2.0 * Math.PI * (s / point)) + (Math.PI / point);\n if (orient === 'point') {\n angle -= (Math.PI / 2);\n } else if (orient === 'edge') {\n angle = (angle + (Math.PI / point)) - (Math.PI / 2);\n }\n angle += radialshift;\n\n x = (inradius * Math.cos(angle)) + cx;\n y = (inradius * Math.sin(angle)) + cy;\n\n polyPoints += x + ',' + y + ' ';\n }\n }\n newFO.setAttribute('points', polyPoints);\n newFO.setAttribute('fill', fill);\n newFO.setAttribute('stroke', strokecolor);\n newFO.setAttribute('stroke-width', strokeWidth);\n /* const shape = */ newFO.getAttribute('shape');\n\n return {\n started: true\n };\n }\n return undefined;\n },\n mouseUp () {\n if (svgCanvas.getMode() === 'star') {\n const attrs = $(newFO).attr(['r']);\n // svgCanvas.addToSelection([newFO], true);\n return {\n keep: (attrs.r !== '0'),\n element: newFO\n };\n }\n return undefined;\n },\n selectedChanged (opts) {\n // Use this to update the current selected elements\n selElems = opts.elems;\n\n let i = selElems.length;\n while (i--) {\n const elem = selElems[i];\n if (elem && elem.getAttribute('shape') === 'star') {\n if (opts.selectedElement && !opts.multiselected) {\n // $('#starRadiusMulitplier').val(elem.getAttribute('r2'));\n $('#starNumPoints').val(elem.getAttribute('point'));\n $('#radialShift').val(elem.getAttribute('radialshift'));\n showPanel(true);\n } else {\n showPanel(false);\n }\n } else {\n showPanel(false);\n }\n }\n },\n elementChanged (opts) {\n // const elem = opts.elems[0];\n }\n };\n }\n};\n"],"names":["name","init","S","showPanel","setAttr","attr","val","svgCanvas","changeSelectedAttribute","call","selElems","on","fcRules","$","length","appendTo","text","toggle","svgEditor","canvas","importLocale","strings","buttons","id","icon","type","position","events","click","setMode","contextTools","panel","size","defval","change","value","svgicons","map","button","i","Object","assign","context_tools","contextTool","callback","hide","mouseDown","opts","rgb","getColor","sRgb","sWidth","getStrokeWidth","getMode","started","newFO","addSVGElementFromJson","element","cx","start_x","cy","start_y","getNextId","shape","point","document","getElementById","r","radialshift","r2","orient","fill","strokecolor","strokeWidth","undefined","mouseMove","c","x","mouse_x","y","mouse_y","circumradius","Math","sqrt","inradius","setAttribute","polyPoints","s","angle","PI","cos","sin","isNaN","getAttribute","mouseUp","attrs","keep","selectedChanged","elems","elem","selectedElement","multiselected","elementChanged"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAQA,cAAe;AACbA,EAAAA,IAAI,EAAE,MADO;AAEPC,EAAAA,IAFO,gBAEDC,CAFC,EAEE;AAAA;;AAAA;AAAA,oFAsBJC,SAtBI,EA2CJC,OA3CI;AAAA;AAAA;AAAA;AAAA;AA2CJA,cAAAA,OA3CI,qBA2CKC,IA3CL,EA2CWC,GA3CX,EA2CgB;AAC3BC,gBAAAA,SAAS,CAACC,uBAAV,CAAkCH,IAAlC,EAAwCC,GAAxC;AACAC,gBAAAA,SAAS,CAACE,IAAV,CAAe,SAAf,EAA0BC,QAA1B;AACD,eA9CY;;AAsBJP,cAAAA,SAtBI,uBAsBOQ,EAtBP,EAsBW;AACtB,oBAAIC,OAAO,GAAGC,CAAC,CAAC,WAAD,CAAf;;AACA,oBAAI,CAACD,OAAO,CAACE,MAAb,EAAqB;AACnBF,kBAAAA,OAAO,GAAGC,CAAC,CAAC,+BAAD,CAAD,CAAmCE,QAAnC,CAA4C,MAA5C,CAAV;AACD;;AACDH,gBAAAA,OAAO,CAACI,IAAR,CAAa,CAACL,EAAD,GAAM,EAAN,GAAW,6CAAxB;AACAE,gBAAAA,CAAC,CAAC,aAAD,CAAD,CAAiBI,MAAjB,CAAwBN,EAAxB;AACD,eA7BY;;AACPO,cAAAA,SADO,GACK,KADL;AAEPX,cAAAA,SAFO,GAEKW,SAAS,CAACC,MAFf;AAINN,cAAAA,CAJM,GAIaX,CAJb,CAINW,CAJM,EAIHO,YAJG,GAIalB,CAJb,CAIHkB,YAJG;;AAAA;AAAA,qBAeSA,YAAY,EAfrB;;AAAA;AAePC,cAAAA,OAfO;;AAgDb;;;;;;;;AASMC,cAAAA,OAzDO,GAyDG,CAAC;AACfC,gBAAAA,EAAE,EAAE,WADW;AAEfC,gBAAAA,IAAI,EAAE,UAFS;AAGfC,gBAAAA,IAAI,EAAE,MAHS;AAIfC,gBAAAA,QAAQ,EAAE,EAJK;AAKfC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KADM,mBACG;AACPzB,oBAAAA,SAAS,CAAC,IAAD,CAAT;AACAI,oBAAAA,SAAS,CAACsB,OAAV,CAAkB,MAAlB;AACD;AAJK;AALO,eAAD,CAzDH;AAqEPC,cAAAA,YArEO,GAqEQ,CAAC;AACpBL,gBAAAA,IAAI,EAAE,OADc;AAEpBM,gBAAAA,KAAK,EAAE,YAFa;AAGpBR,gBAAAA,EAAE,EAAE,eAHgB;AAIpBS,gBAAAA,IAAI,EAAE,CAJc;AAKpBC,gBAAAA,MAAM,EAAE,CALY;AAMpBN,gBAAAA,MAAM,EAAE;AACNO,kBAAAA,MADM,oBACI;AACR9B,oBAAAA,OAAO,CAAC,OAAD,EAAU,KAAK+B,KAAf,CAAP;AACD;AAHK;AANY,eAAD,EAWlB;AACDV,gBAAAA,IAAI,EAAE,OADL;AAEDM,gBAAAA,KAAK,EAAE,YAFN;AAGDR,gBAAAA,EAAE,EAAE,sBAHH;AAIDS,gBAAAA,IAAI,EAAE,CAJL;AAKDC,gBAAAA,MAAM,EAAE;AALP,eAXkB,EAiBlB;AACDR,gBAAAA,IAAI,EAAE,OADL;AAEDM,gBAAAA,KAAK,EAAE,YAFN;AAGDR,gBAAAA,EAAE,EAAE,aAHH;AAIDS,gBAAAA,IAAI,EAAE,CAJL;AAKDC,gBAAAA,MAAM,EAAE,CALP;AAMDN,gBAAAA,MAAM,EAAE;AACNO,kBAAAA,MADM,oBACI;AACR9B,oBAAAA,OAAO,CAAC,aAAD,EAAgB,KAAK+B,KAArB,CAAP;AACD;AAHK;AANP,eAjBkB,CArER;AAAA,+CAmGN;AACLnC,gBAAAA,IAAI,EAAEqB,OAAO,CAACrB,IADT;AAELoC,gBAAAA,QAAQ,EAAE,gBAFL;AAGLd,gBAAAA,OAAO,EAAED,OAAO,CAACC,OAAR,CAAgBe,GAAhB,CAAoB,UAACC,MAAD,EAASC,CAAT,EAAe;AAC1C,yBAAOC,MAAM,CAACC,MAAP,CAAcnB,OAAO,CAACiB,CAAD,CAArB,EAA0BD,MAA1B,CAAP;AACD,iBAFQ,CAHJ;AAMLI,gBAAAA,aAAa,EAAErB,OAAO,CAACS,YAAR,CAAqBO,GAArB,CAAyB,UAACM,WAAD,EAAcJ,CAAd,EAAoB;AAC1D,yBAAOC,MAAM,CAACC,MAAP,CAAcX,YAAY,CAACS,CAAD,CAA1B,EAA+BI,WAA/B,CAAP;AACD,iBAFc,CANV;AASLC,gBAAAA,QATK,sBASO;AACV/B,kBAAAA,CAAC,CAAC,aAAD,CAAD,CAAiBgC,IAAjB,GADU;AAGX,iBAZI;AAaLC,gBAAAA,SAbK,qBAaMC,IAbN,EAaY;AACf,sBAAMC,GAAG,GAAGzC,SAAS,CAAC0C,QAAV,CAAmB,MAAnB,CAAZ,CADe;;AAGf,sBAAMC,IAAI,GAAG3C,SAAS,CAAC0C,QAAV,CAAmB,QAAnB,CAAb,CAHe;;AAKf,sBAAME,MAAM,GAAG5C,SAAS,CAAC6C,cAAV,EAAf;;AAEA,sBAAI7C,SAAS,CAAC8C,OAAV,OAAwB,MAA5B,EAAoC;AAClCC,oBAAAA,OAAO,GAAG,IAAV;AAEAC,oBAAAA,KAAK,GAAGhD,SAAS,CAACiD,qBAAV,CAAgC;AACtCC,sBAAAA,OAAO,EAAE,SAD6B;AAEtCpD,sBAAAA,IAAI,EAAE;AACJqD,wBAAAA,EAAE,EAAEX,IAAI,CAACY,OADL;AAEJC,wBAAAA,EAAE,EAAEb,IAAI,CAACc,OAFL;AAGJtC,wBAAAA,EAAE,EAAEhB,SAAS,CAACuD,SAAV,EAHA;AAIJC,wBAAAA,KAAK,EAAE,MAJH;AAKJC,wBAAAA,KAAK,EAAEC,QAAQ,CAACC,cAAT,CAAwB,eAAxB,EAAyC/B,KAL5C;AAMJgC,wBAAAA,CAAC,EAAE,CANC;AAOJC,wBAAAA,WAAW,EAAEH,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuC/B,KAPhD;AAQJkC,wBAAAA,EAAE,EAAE,CARA;AASJC,wBAAAA,MAAM,EAAE,OATJ;AAUJC,wBAAAA,IAAI,EAAEvB,GAVF;AAWJwB,wBAAAA,WAAW,EAAEtB,IAXT;AAYJuB,wBAAAA,WAAW,EAAEtB;AAZT;AAFgC,qBAAhC,CAAR;AAiBA,2BAAO;AACLG,sBAAAA,OAAO,EAAE;AADJ,qBAAP;AAGD;;AACD,yBAAOoB,SAAP;AACD,iBA7CI;AA8CLC,gBAAAA,SA9CK,qBA8CM5B,IA9CN,EA8CY;AACf,sBAAI,CAACO,OAAL,EAAc;AACZ,2BAAOoB,SAAP;AACD;;AACD,sBAAInE,SAAS,CAAC8C,OAAV,OAAwB,MAA5B,EAAoC;AAClC,wBAAMuB,CAAC,GAAG/D,CAAC,CAAC0C,KAAD,CAAD,CAASlD,IAAT,CAAc,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsB,QAAtB,EAAgC,MAAhC,EAAwC,aAAxC,EAAuD,aAAvD,EAAsE,aAAtE,CAAd,CAAV;AAEA,wBAAIwE,CAAC,GAAG9B,IAAI,CAAC+B,OAAb;AACA,wBAAIC,CAAC,GAAGhC,IAAI,CAACiC,OAAb;AAJkC,wBAK3BtB,EAL2B,GAK2CkB,CAL3C,CAK3BlB,EAL2B;AAAA,wBAKvBE,EALuB,GAK2CgB,CAL3C,CAKvBhB,EALuB;AAAA,wBAKnBW,IALmB,GAK2CK,CAL3C,CAKnBL,IALmB;AAAA,wBAKbC,WALa,GAK2CI,CAL3C,CAKbJ,WALa;AAAA,wBAKAC,WALA,GAK2CG,CAL3C,CAKAH,WALA;AAAA,wBAKaL,WALb,GAK2CQ,CAL3C,CAKaR,WALb;AAAA,wBAK0BJ,KAL1B,GAK2CY,CAL3C,CAK0BZ,KAL1B;AAAA,wBAKiCM,MALjC,GAK2CM,CAL3C,CAKiCN,MALjC;AAAA,wBAMhCW,YANgC,GAMhBC,IAAI,CAACC,IAAL,CAAU,CAACN,CAAC,GAAGnB,EAAL,KAAYmB,CAAC,GAAGnB,EAAhB,IAAsB,CAACqB,CAAC,GAAGnB,EAAL,KAAYmB,CAAC,GAAGnB,EAAhB,CAAhC,CAAD,GAAyD,GANxC;AAAA,wBAOhCwB,QAPgC,GAOrBH,YAAY,GAAGhB,QAAQ,CAACC,cAAT,CAAwB,sBAAxB,EAAgD/B,KAP1C;AAQlCoB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,GAAnB,EAAwBJ,YAAxB;AACA1B,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,IAAnB,EAAyBD,QAAzB;AAEA,wBAAIE,UAAU,GAAG,EAAjB;;AACA,yBAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBvB,KAAK,IAAIuB,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;AAC/B,0BAAIC,KAAK,GAAG,MAAMN,IAAI,CAACO,EAAX,IAAiBF,CAAC,GAAGvB,KAArB,CAAZ;;AACA,0BAAIM,MAAM,KAAK,OAAf,EAAwB;AACtBkB,wBAAAA,KAAK,IAAKN,IAAI,CAACO,EAAL,GAAU,CAApB;AACD,uBAFD,MAEO,IAAInB,MAAM,KAAK,MAAf,EAAuB;AAC5BkB,wBAAAA,KAAK,GAAIA,KAAK,GAAIN,IAAI,CAACO,EAAL,GAAUzB,KAApB,GAA+BkB,IAAI,CAACO,EAAL,GAAU,CAAjD;AACD;;AAEDZ,sBAAAA,CAAC,GAAII,YAAY,GAAGC,IAAI,CAACQ,GAAL,CAASF,KAAT,CAAhB,GAAmC9B,EAAvC;AACAqB,sBAAAA,CAAC,GAAIE,YAAY,GAAGC,IAAI,CAACS,GAAL,CAASH,KAAT,CAAhB,GAAmC5B,EAAvC;AAEA0B,sBAAAA,UAAU,IAAIT,CAAC,GAAG,GAAJ,GAAUE,CAAV,GAAc,GAA5B;;AAEA,0BAAI,CAACa,KAAK,CAACR,QAAD,CAAV,EAAsB;AACpBI,wBAAAA,KAAK,GAAI,MAAMN,IAAI,CAACO,EAAX,IAAiBF,CAAC,GAAGvB,KAArB,CAAD,GAAiCkB,IAAI,CAACO,EAAL,GAAUzB,KAAnD;;AACA,4BAAIM,MAAM,KAAK,OAAf,EAAwB;AACtBkB,0BAAAA,KAAK,IAAKN,IAAI,CAACO,EAAL,GAAU,CAApB;AACD,yBAFD,MAEO,IAAInB,MAAM,KAAK,MAAf,EAAuB;AAC5BkB,0BAAAA,KAAK,GAAIA,KAAK,GAAIN,IAAI,CAACO,EAAL,GAAUzB,KAApB,GAA+BkB,IAAI,CAACO,EAAL,GAAU,CAAjD;AACD;;AACDD,wBAAAA,KAAK,IAAIpB,WAAT;AAEAS,wBAAAA,CAAC,GAAIO,QAAQ,GAAGF,IAAI,CAACQ,GAAL,CAASF,KAAT,CAAZ,GAA+B9B,EAAnC;AACAqB,wBAAAA,CAAC,GAAIK,QAAQ,GAAGF,IAAI,CAACS,GAAL,CAASH,KAAT,CAAZ,GAA+B5B,EAAnC;AAEA0B,wBAAAA,UAAU,IAAIT,CAAC,GAAG,GAAJ,GAAUE,CAAV,GAAc,GAA5B;AACD;AACF;;AACDxB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,QAAnB,EAA6BC,UAA7B;AACA/B,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,MAAnB,EAA2Bd,IAA3B;AACAhB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,QAAnB,EAA6Bb,WAA7B;AACAjB,oBAAAA,KAAK,CAAC8B,YAAN,CAAmB,cAAnB,EAAmCZ,WAAnC;AACA;;AAAoBlB,oBAAAA,KAAK,CAACsC,YAAN,CAAmB,OAAnB;AAEpB,2BAAO;AACLvC,sBAAAA,OAAO,EAAE;AADJ,qBAAP;AAGD;;AACD,yBAAOoB,SAAP;AACD,iBArGI;AAsGLoB,gBAAAA,OAtGK,qBAsGM;AACT,sBAAIvF,SAAS,CAAC8C,OAAV,OAAwB,MAA5B,EAAoC;AAClC,wBAAM0C,KAAK,GAAGlF,CAAC,CAAC0C,KAAD,CAAD,CAASlD,IAAT,CAAc,CAAC,GAAD,CAAd,CAAd,CADkC;;AAGlC,2BAAO;AACL2F,sBAAAA,IAAI,EAAGD,KAAK,CAAC5B,CAAN,KAAY,GADd;AAELV,sBAAAA,OAAO,EAAEF;AAFJ,qBAAP;AAID;;AACD,yBAAOmB,SAAP;AACD,iBAhHI;AAiHLuB,gBAAAA,eAjHK,2BAiHYlD,IAjHZ,EAiHkB;AACrB;AACArC,kBAAAA,QAAQ,GAAGqC,IAAI,CAACmD,KAAhB;AAEA,sBAAI3D,CAAC,GAAG7B,QAAQ,CAACI,MAAjB;;AACA,yBAAOyB,CAAC,EAAR,EAAY;AACV,wBAAM4D,IAAI,GAAGzF,QAAQ,CAAC6B,CAAD,CAArB;;AACA,wBAAI4D,IAAI,IAAIA,IAAI,CAACN,YAAL,CAAkB,OAAlB,MAA+B,MAA3C,EAAmD;AACjD,0BAAI9C,IAAI,CAACqD,eAAL,IAAwB,CAACrD,IAAI,CAACsD,aAAlC,EAAiD;AAC/C;AACAxF,wBAAAA,CAAC,CAAC,gBAAD,CAAD,CAAoBP,GAApB,CAAwB6F,IAAI,CAACN,YAAL,CAAkB,OAAlB,CAAxB;AACAhF,wBAAAA,CAAC,CAAC,cAAD,CAAD,CAAkBP,GAAlB,CAAsB6F,IAAI,CAACN,YAAL,CAAkB,aAAlB,CAAtB;AACA1F,wBAAAA,SAAS,CAAC,IAAD,CAAT;AACD,uBALD,MAKO;AACLA,wBAAAA,SAAS,CAAC,KAAD,CAAT;AACD;AACF,qBATD,MASO;AACLA,sBAAAA,SAAS,CAAC,KAAD,CAAT;AACD;AACF;AACF,iBArII;AAsILmG,gBAAAA,cAtIK,0BAsIWvD,IAtIX,EAsIiB;AAErB;AAxII,eAnGM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6Od;AA/OY,CAAf;;;;"}
\ No newline at end of file
diff --git a/dist/editor/extensions/ext-webappfind.js b/dist/editor/extensions/ext-webappfind.js
index cbb1e871..86e6a935 100644
--- a/dist/editor/extensions/ext-webappfind.js
+++ b/dist/editor/extensions/ext-webappfind.js
@@ -1741,7 +1741,7 @@ var extWebappfind = {
buttons = [{
id: 'webappfind_save',
//
- icon: svgEditor.curConfig.extIconsPath + 'webappfind.png',
+ icon: 'webappfind.png',
type: 'app_menu',
position: 4,
// Before 0-based index position 4 (after the regular "Save Image (S)")
@@ -1766,7 +1766,7 @@ var extWebappfind = {
}];
return _context.abrupt("return", {
name: strings.name,
- svgicons: svgEditor.curConfig.extIconsPath + 'webappfind-icon.svg',
+ svgicons: 'webappfind-icon.svg',
buttons: strings.buttons.map(function (button, i) {
return Object.assign(buttons[i], button);
})
diff --git a/dist/editor/extensions/ext-webappfind.js.map b/dist/editor/extensions/ext-webappfind.js.map
index 37365158..c2339b9f 100644
--- a/dist/editor/extensions/ext-webappfind.js.map
+++ b/dist/editor/extensions/ext-webappfind.js.map
@@ -1 +1 @@
-{"version":3,"file":"ext-webappfind.js","sources":["../../../src/editor/extensions/ext-webappfind.js"],"sourcesContent":["/**\n* Depends on Firefox add-on and executables from\n* {@link https://github.com/brettz9/webappfind}.\n* @author Brett Zamir\n* @license MIT\n* @todo See WebAppFind Readme for SVG-related todos\n*/\n\nexport default {\n name: 'webappfind',\n async init ({importLocale, $}) {\n const strings = await importLocale();\n const svgEditor = this;\n const saveMessage = 'save',\n readMessage = 'read',\n excludedMessages = [readMessage, saveMessage];\n\n let pathID;\n this.canvas.bind(\n 'message',\n /**\n * @param {external:Window} win\n * @param {PlainObject} info\n * @param {module:svgcanvas.SvgCanvas#event:message} info.data\n * @param {string} info.origin\n * @listens module:svgcanvas.SvgCanvas#event:message\n * @throws {Error} Unexpected event type\n * @returns {void}\n */\n (win, {data, origin}) => { // eslint-disable-line no-shadow\n // console.log('data, origin', data, origin);\n let type, content;\n try {\n ({type, pathID, content} = data.webappfind); // May throw if data is not an object\n if (origin !== location.origin || // We are only interested in a message sent as though within this URL by our browser add-on\n excludedMessages.includes(type) // Avoid our post below (other messages might be possible in the future which may also need to be excluded if your subsequent code makes assumptions on the type of message this is)\n ) {\n return;\n }\n } catch (err) {\n return;\n }\n\n switch (type) {\n case 'view':\n // Populate the contents\n svgEditor.loadFromString(content);\n\n /* if ($('#tool_save_file')) {\n $('#tool_save_file').disabled = false;\n } */\n break;\n case 'save-end':\n $.alert(`save complete for pathID ${pathID}!`);\n break;\n default:\n throw new Error('Unexpected WebAppFind event type');\n }\n }\n );\n\n /*\n window.postMessage({\n webappfind: {\n type: readMessage\n }\n }, window.location.origin === 'null'\n // Avoid \"null\" string error for `file:` protocol (even though\n // file protocol not currently supported by Firefox)\n ? '*'\n : window.location.origin\n );\n */\n const buttons = [{\n id: 'webappfind_save', //\n icon: svgEditor.curConfig.extIconsPath + 'webappfind.png',\n type: 'app_menu',\n position: 4, // Before 0-based index position 4 (after the regular \"Save Image (S)\")\n events: {\n click () {\n if (!pathID) { // Not ready yet as haven't received first payload\n return;\n }\n window.postMessage(\n {\n webappfind: {\n type: saveMessage,\n pathID,\n content: svgEditor.canvas.getSvgString()\n }\n }, window.location.origin === 'null'\n // Avoid \"null\" string error for `file:` protocol (even\n // though file protocol not currently supported by add-on)\n ? '*'\n : window.location.origin\n );\n }\n }\n }];\n\n return {\n name: strings.name,\n svgicons: svgEditor.curConfig.extIconsPath + 'webappfind-icon.svg',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n })\n };\n }\n};\n"],"names":["name","init","importLocale","$","strings","svgEditor","saveMessage","readMessage","excludedMessages","canvas","bind","win","data","origin","type","content","webappfind","pathID","location","includes","err","loadFromString","alert","Error","buttons","id","icon","curConfig","extIconsPath","position","events","click","window","postMessage","getSvgString","svgicons","map","button","i","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAQA,oBAAe;AACbA,EAAAA,IAAI,EAAE,YADO;AAEPC,EAAAA,IAFO,sBAEkB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAlBC,cAAAA,YAAkB,QAAlBA,YAAkB,EAAJC,CAAI,QAAJA,CAAI;AAAA;AAAA,qBACPD,YAAY,EADL;;AAAA;AACvBE,cAAAA,OADuB;AAEvBC,cAAAA,SAFuB,GAEX,KAFW;AAGvBC,cAAAA,WAHuB,GAGT,MAHS,EAI3BC,WAJ2B,GAIb,MAJa,EAK3BC,gBAL2B,GAKR,CAACD,WAAD,EAAcD,WAAd,CALQ;;AAQ7B,cAAA,KAAI,CAACG,MAAL,CAAYC,IAAZ,CACE,SADF;AAEE;;;;;;;;;AASA,wBAACC,GAAD,SAAyB;AAAA,oBAAlBC,IAAkB,SAAlBA,IAAkB;AAAA,oBAAZC,MAAY,SAAZA,MAAY;AAAE;AACzB;AACA,oBAAIC,IAAJ,EAAUC,OAAV;;AACA,oBAAI;AAAA,yCACyBH,IAAI,CAACI,UAD9B;AACAF,kBAAAA,IADA,oBACAA,IADA;AACMG,kBAAAA,MADN,oBACMA,MADN;AACcF,kBAAAA,OADd,oBACcA,OADd;;AAC2C;AAC7C,sBAAIF,MAAM,KAAKK,QAAQ,CAACL,MAApB;AACAL,kBAAAA,gBAAgB,CAACW,QAAjB,CAA0BL,IAA1B,CADJ;AAAA,oBAEE;AACA;AACD;AACF,iBAPD,CAOE,OAAOM,GAAP,EAAY;AACZ;AACD;;AAED,wBAAQN,IAAR;AACA,uBAAK,MAAL;AACE;AACAT,oBAAAA,SAAS,CAACgB,cAAV,CAAyBN,OAAzB;AAEA;;;;AAGA;;AACF,uBAAK,UAAL;AACEZ,oBAAAA,CAAC,CAACmB,KAAF,oCAAoCL,MAApC;AACA;;AACF;AACE,0BAAM,IAAIM,KAAJ,CAAU,kCAAV,CAAN;AAbF;AAeD,eAxCH;AA2CA;;;;;;;;;;;;;;AAYMC,cAAAA,OA/DuB,GA+Db,CAAC;AACfC,gBAAAA,EAAE,EAAE,iBADW;AACQ;AACvBC,gBAAAA,IAAI,EAAErB,SAAS,CAACsB,SAAV,CAAoBC,YAApB,GAAmC,gBAF1B;AAGfd,gBAAAA,IAAI,EAAE,UAHS;AAIfe,gBAAAA,QAAQ,EAAE,CAJK;AAIF;AACbC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KADM,mBACG;AACP,wBAAI,CAACd,MAAL,EAAa;AAAE;AACb;AACD;;AACDe,oBAAAA,MAAM,CAACC,WAAP,CACE;AACEjB,sBAAAA,UAAU,EAAE;AACVF,wBAAAA,IAAI,EAAER,WADI;AAEVW,wBAAAA,MAAM,EAANA,MAFU;AAGVF,wBAAAA,OAAO,EAAEV,SAAS,CAACI,MAAV,CAAiByB,YAAjB;AAHC;AADd,qBADF,EAOKF,MAAM,CAACd,QAAP,CAAgBL,MAAhB,KAA2B,MAA3B;AAED;AAFC,sBAGC,GAHD,GAICmB,MAAM,CAACd,QAAP,CAAgBL,MAXtB;AAaD;AAlBK;AALO,eAAD,CA/Da;AAAA,+CA0FtB;AACLb,gBAAAA,IAAI,EAAEI,OAAO,CAACJ,IADT;AAELmC,gBAAAA,QAAQ,EAAE9B,SAAS,CAACsB,SAAV,CAAoBC,YAApB,GAAmC,qBAFxC;AAGLJ,gBAAAA,OAAO,EAAEpB,OAAO,CAACoB,OAAR,CAAgBY,GAAhB,CAAoB,UAACC,MAAD,EAASC,CAAT,EAAe;AAC1C,yBAAOC,MAAM,CAACC,MAAP,CAAchB,OAAO,CAACc,CAAD,CAArB,EAA0BD,MAA1B,CAAP;AACD,iBAFQ;AAHJ,eA1FsB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiG9B;AAnGY,CAAf;;;;"}
\ No newline at end of file
+{"version":3,"file":"ext-webappfind.js","sources":["../../../src/editor/extensions/ext-webappfind.js"],"sourcesContent":["/**\n* Depends on Firefox add-on and executables from\n* {@link https://github.com/brettz9/webappfind}.\n* @author Brett Zamir\n* @license MIT\n* @todo See WebAppFind Readme for SVG-related todos\n*/\n\nexport default {\n name: 'webappfind',\n async init ({importLocale, $}) {\n const strings = await importLocale();\n const svgEditor = this;\n const saveMessage = 'save',\n readMessage = 'read',\n excludedMessages = [readMessage, saveMessage];\n\n let pathID;\n this.canvas.bind(\n 'message',\n /**\n * @param {external:Window} win\n * @param {PlainObject} info\n * @param {module:svgcanvas.SvgCanvas#event:message} info.data\n * @param {string} info.origin\n * @listens module:svgcanvas.SvgCanvas#event:message\n * @throws {Error} Unexpected event type\n * @returns {void}\n */\n (win, {data, origin}) => { // eslint-disable-line no-shadow\n // console.log('data, origin', data, origin);\n let type, content;\n try {\n ({type, pathID, content} = data.webappfind); // May throw if data is not an object\n if (origin !== location.origin || // We are only interested in a message sent as though within this URL by our browser add-on\n excludedMessages.includes(type) // Avoid our post below (other messages might be possible in the future which may also need to be excluded if your subsequent code makes assumptions on the type of message this is)\n ) {\n return;\n }\n } catch (err) {\n return;\n }\n\n switch (type) {\n case 'view':\n // Populate the contents\n svgEditor.loadFromString(content);\n\n /* if ($('#tool_save_file')) {\n $('#tool_save_file').disabled = false;\n } */\n break;\n case 'save-end':\n $.alert(`save complete for pathID ${pathID}!`);\n break;\n default:\n throw new Error('Unexpected WebAppFind event type');\n }\n }\n );\n\n /*\n window.postMessage({\n webappfind: {\n type: readMessage\n }\n }, window.location.origin === 'null'\n // Avoid \"null\" string error for `file:` protocol (even though\n // file protocol not currently supported by Firefox)\n ? '*'\n : window.location.origin\n );\n */\n const buttons = [{\n id: 'webappfind_save', //\n icon: 'webappfind.png',\n type: 'app_menu',\n position: 4, // Before 0-based index position 4 (after the regular \"Save Image (S)\")\n events: {\n click () {\n if (!pathID) { // Not ready yet as haven't received first payload\n return;\n }\n window.postMessage(\n {\n webappfind: {\n type: saveMessage,\n pathID,\n content: svgEditor.canvas.getSvgString()\n }\n }, window.location.origin === 'null'\n // Avoid \"null\" string error for `file:` protocol (even\n // though file protocol not currently supported by add-on)\n ? '*'\n : window.location.origin\n );\n }\n }\n }];\n\n return {\n name: strings.name,\n svgicons: 'webappfind-icon.svg',\n buttons: strings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n })\n };\n }\n};\n"],"names":["name","init","importLocale","$","strings","svgEditor","saveMessage","readMessage","excludedMessages","canvas","bind","win","data","origin","type","content","webappfind","pathID","location","includes","err","loadFromString","alert","Error","buttons","id","icon","position","events","click","window","postMessage","getSvgString","svgicons","map","button","i","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAQA,oBAAe;AACbA,EAAAA,IAAI,EAAE,YADO;AAEPC,EAAAA,IAFO,sBAEkB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAlBC,cAAAA,YAAkB,QAAlBA,YAAkB,EAAJC,CAAI,QAAJA,CAAI;AAAA;AAAA,qBACPD,YAAY,EADL;;AAAA;AACvBE,cAAAA,OADuB;AAEvBC,cAAAA,SAFuB,GAEX,KAFW;AAGvBC,cAAAA,WAHuB,GAGT,MAHS,EAI3BC,WAJ2B,GAIb,MAJa,EAK3BC,gBAL2B,GAKR,CAACD,WAAD,EAAcD,WAAd,CALQ;;AAQ7B,cAAA,KAAI,CAACG,MAAL,CAAYC,IAAZ,CACE,SADF;AAEE;;;;;;;;;AASA,wBAACC,GAAD,SAAyB;AAAA,oBAAlBC,IAAkB,SAAlBA,IAAkB;AAAA,oBAAZC,MAAY,SAAZA,MAAY;AAAE;AACzB;AACA,oBAAIC,IAAJ,EAAUC,OAAV;;AACA,oBAAI;AAAA,yCACyBH,IAAI,CAACI,UAD9B;AACAF,kBAAAA,IADA,oBACAA,IADA;AACMG,kBAAAA,MADN,oBACMA,MADN;AACcF,kBAAAA,OADd,oBACcA,OADd;;AAC2C;AAC7C,sBAAIF,MAAM,KAAKK,QAAQ,CAACL,MAApB;AACAL,kBAAAA,gBAAgB,CAACW,QAAjB,CAA0BL,IAA1B,CADJ;AAAA,oBAEE;AACA;AACD;AACF,iBAPD,CAOE,OAAOM,GAAP,EAAY;AACZ;AACD;;AAED,wBAAQN,IAAR;AACA,uBAAK,MAAL;AACE;AACAT,oBAAAA,SAAS,CAACgB,cAAV,CAAyBN,OAAzB;AAEA;;;;AAGA;;AACF,uBAAK,UAAL;AACEZ,oBAAAA,CAAC,CAACmB,KAAF,oCAAoCL,MAApC;AACA;;AACF;AACE,0BAAM,IAAIM,KAAJ,CAAU,kCAAV,CAAN;AAbF;AAeD,eAxCH;AA2CA;;;;;;;;;;;;;;AAYMC,cAAAA,OA/DuB,GA+Db,CAAC;AACfC,gBAAAA,EAAE,EAAE,iBADW;AACQ;AACvBC,gBAAAA,IAAI,EAAE,gBAFS;AAGfZ,gBAAAA,IAAI,EAAE,UAHS;AAIfa,gBAAAA,QAAQ,EAAE,CAJK;AAIF;AACbC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KADM,mBACG;AACP,wBAAI,CAACZ,MAAL,EAAa;AAAE;AACb;AACD;;AACDa,oBAAAA,MAAM,CAACC,WAAP,CACE;AACEf,sBAAAA,UAAU,EAAE;AACVF,wBAAAA,IAAI,EAAER,WADI;AAEVW,wBAAAA,MAAM,EAANA,MAFU;AAGVF,wBAAAA,OAAO,EAAEV,SAAS,CAACI,MAAV,CAAiBuB,YAAjB;AAHC;AADd,qBADF,EAOKF,MAAM,CAACZ,QAAP,CAAgBL,MAAhB,KAA2B,MAA3B;AAED;AAFC,sBAGC,GAHD,GAICiB,MAAM,CAACZ,QAAP,CAAgBL,MAXtB;AAaD;AAlBK;AALO,eAAD,CA/Da;AAAA,+CA0FtB;AACLb,gBAAAA,IAAI,EAAEI,OAAO,CAACJ,IADT;AAELiC,gBAAAA,QAAQ,EAAE,qBAFL;AAGLT,gBAAAA,OAAO,EAAEpB,OAAO,CAACoB,OAAR,CAAgBU,GAAhB,CAAoB,UAACC,MAAD,EAASC,CAAT,EAAe;AAC1C,yBAAOC,MAAM,CAACC,MAAP,CAAcd,OAAO,CAACY,CAAD,CAArB,EAA0BD,MAA1B,CAAP;AACD,iBAFQ;AAHJ,eA1FsB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiG9B;AAnGY,CAAf;;;;"}
\ No newline at end of file
diff --git a/src/editor/extensions/closepath_icons.svg b/dist/editor/images/closepath_icons.svg
similarity index 100%
rename from src/editor/extensions/closepath_icons.svg
rename to dist/editor/images/closepath_icons.svg
diff --git a/dist/editor/extensions/ext-imagelib.xml b/dist/editor/images/ext-imagelib.xml
similarity index 100%
rename from dist/editor/extensions/ext-imagelib.xml
rename to dist/editor/images/ext-imagelib.xml
diff --git a/dist/editor/extensions/ext-panning.xml b/dist/editor/images/ext-panning.xml
similarity index 100%
rename from dist/editor/extensions/ext-panning.xml
rename to dist/editor/images/ext-panning.xml
diff --git a/dist/editor/extensions/ext-shapes.xml b/dist/editor/images/ext-shapes.xml
similarity index 100%
rename from dist/editor/extensions/ext-shapes.xml
rename to dist/editor/images/ext-shapes.xml
diff --git a/dist/editor/extensions/eyedropper-icon.xml b/dist/editor/images/eyedropper-icon.xml
similarity index 100%
rename from dist/editor/extensions/eyedropper-icon.xml
rename to dist/editor/images/eyedropper-icon.xml
diff --git a/src/editor/extensions/eyedropper.png b/dist/editor/images/eyedropper.png
similarity index 100%
rename from src/editor/extensions/eyedropper.png
rename to dist/editor/images/eyedropper.png
diff --git a/src/editor/extensions/foreignobject-edit.png b/dist/editor/images/foreignobject-edit.png
similarity index 100%
rename from src/editor/extensions/foreignobject-edit.png
rename to dist/editor/images/foreignobject-edit.png
diff --git a/dist/editor/extensions/foreignobject-icons.xml b/dist/editor/images/foreignobject-icons.xml
similarity index 100%
rename from dist/editor/extensions/foreignobject-icons.xml
rename to dist/editor/images/foreignobject-icons.xml
diff --git a/src/editor/extensions/foreignobject-tool.png b/dist/editor/images/foreignobject-tool.png
similarity index 100%
rename from src/editor/extensions/foreignobject-tool.png
rename to dist/editor/images/foreignobject-tool.png
diff --git a/dist/editor/extensions/grid-icon.xml b/dist/editor/images/grid-icon.xml
similarity index 100%
rename from dist/editor/extensions/grid-icon.xml
rename to dist/editor/images/grid-icon.xml
diff --git a/src/editor/extensions/grid.png b/dist/editor/images/grid.png
similarity index 100%
rename from src/editor/extensions/grid.png
rename to dist/editor/images/grid.png
diff --git a/src/editor/extensions/helloworld-icon.xml b/dist/editor/images/helloworld-icon.xml
similarity index 100%
rename from src/editor/extensions/helloworld-icon.xml
rename to dist/editor/images/helloworld-icon.xml
diff --git a/src/editor/extensions/helloworld.png b/dist/editor/images/helloworld.png
similarity index 100%
rename from src/editor/extensions/helloworld.png
rename to dist/editor/images/helloworld.png
diff --git a/src/editor/extensions/imagelib.png b/dist/editor/images/imagelib.png
similarity index 100%
rename from src/editor/extensions/imagelib.png
rename to dist/editor/images/imagelib.png
diff --git a/src/editor/extensions/markers-box.png b/dist/editor/images/markers-box.png
similarity index 100%
rename from src/editor/extensions/markers-box.png
rename to dist/editor/images/markers-box.png
diff --git a/src/editor/extensions/markers-box_o.png b/dist/editor/images/markers-box_o.png
similarity index 100%
rename from src/editor/extensions/markers-box_o.png
rename to dist/editor/images/markers-box_o.png
diff --git a/src/editor/extensions/markers-forwardslash.png b/dist/editor/images/markers-forwardslash.png
similarity index 100%
rename from src/editor/extensions/markers-forwardslash.png
rename to dist/editor/images/markers-forwardslash.png
diff --git a/dist/editor/extensions/markers-icons.xml b/dist/editor/images/markers-icons.xml
similarity index 100%
rename from dist/editor/extensions/markers-icons.xml
rename to dist/editor/images/markers-icons.xml
diff --git a/src/editor/extensions/markers-leftarrow.png b/dist/editor/images/markers-leftarrow.png
similarity index 100%
rename from src/editor/extensions/markers-leftarrow.png
rename to dist/editor/images/markers-leftarrow.png
diff --git a/src/editor/extensions/markers-leftarrow_o.png b/dist/editor/images/markers-leftarrow_o.png
similarity index 100%
rename from src/editor/extensions/markers-leftarrow_o.png
rename to dist/editor/images/markers-leftarrow_o.png
diff --git a/src/editor/extensions/markers-mcircle.png b/dist/editor/images/markers-mcircle.png
similarity index 100%
rename from src/editor/extensions/markers-mcircle.png
rename to dist/editor/images/markers-mcircle.png
diff --git a/src/editor/extensions/markers-mcircle_o.png b/dist/editor/images/markers-mcircle_o.png
similarity index 100%
rename from src/editor/extensions/markers-mcircle_o.png
rename to dist/editor/images/markers-mcircle_o.png
diff --git a/src/editor/extensions/markers-mkr_markers_dimension.png b/dist/editor/images/markers-mkr_markers_dimension.png
similarity index 100%
rename from src/editor/extensions/markers-mkr_markers_dimension.png
rename to dist/editor/images/markers-mkr_markers_dimension.png
diff --git a/src/editor/extensions/markers-mkr_markers_label.png b/dist/editor/images/markers-mkr_markers_label.png
similarity index 100%
rename from src/editor/extensions/markers-mkr_markers_label.png
rename to dist/editor/images/markers-mkr_markers_label.png
diff --git a/src/editor/extensions/markers-mkr_markers_off.png b/dist/editor/images/markers-mkr_markers_off.png
similarity index 100%
rename from src/editor/extensions/markers-mkr_markers_off.png
rename to dist/editor/images/markers-mkr_markers_off.png
diff --git a/src/editor/extensions/markers-nomarker.png b/dist/editor/images/markers-nomarker.png
similarity index 100%
rename from src/editor/extensions/markers-nomarker.png
rename to dist/editor/images/markers-nomarker.png
diff --git a/src/editor/extensions/markers-reverseslash.png b/dist/editor/images/markers-reverseslash.png
similarity index 100%
rename from src/editor/extensions/markers-reverseslash.png
rename to dist/editor/images/markers-reverseslash.png
diff --git a/src/editor/extensions/markers-rightarrow.png b/dist/editor/images/markers-rightarrow.png
similarity index 100%
rename from src/editor/extensions/markers-rightarrow.png
rename to dist/editor/images/markers-rightarrow.png
diff --git a/src/editor/extensions/markers-rightarrow_o.png b/dist/editor/images/markers-rightarrow_o.png
similarity index 100%
rename from src/editor/extensions/markers-rightarrow_o.png
rename to dist/editor/images/markers-rightarrow_o.png
diff --git a/src/editor/extensions/markers-star.png b/dist/editor/images/markers-star.png
similarity index 100%
rename from src/editor/extensions/markers-star.png
rename to dist/editor/images/markers-star.png
diff --git a/src/editor/extensions/markers-star_o.png b/dist/editor/images/markers-star_o.png
similarity index 100%
rename from src/editor/extensions/markers-star_o.png
rename to dist/editor/images/markers-star_o.png
diff --git a/src/editor/extensions/markers-textmarker.png b/dist/editor/images/markers-textmarker.png
similarity index 100%
rename from src/editor/extensions/markers-textmarker.png
rename to dist/editor/images/markers-textmarker.png
diff --git a/src/editor/extensions/markers-triangle.png b/dist/editor/images/markers-triangle.png
similarity index 100%
rename from src/editor/extensions/markers-triangle.png
rename to dist/editor/images/markers-triangle.png
diff --git a/src/editor/extensions/markers-triangle_o.png b/dist/editor/images/markers-triangle_o.png
similarity index 100%
rename from src/editor/extensions/markers-triangle_o.png
rename to dist/editor/images/markers-triangle_o.png
diff --git a/src/editor/extensions/markers-verticalslash.png b/dist/editor/images/markers-verticalslash.png
similarity index 100%
rename from src/editor/extensions/markers-verticalslash.png
rename to dist/editor/images/markers-verticalslash.png
diff --git a/src/editor/extensions/markers-xmark.png b/dist/editor/images/markers-xmark.png
similarity index 100%
rename from src/editor/extensions/markers-xmark.png
rename to dist/editor/images/markers-xmark.png
diff --git a/src/editor/extensions/mathjax-icons.xml b/dist/editor/images/mathjax-icons.xml
similarity index 100%
rename from src/editor/extensions/mathjax-icons.xml
rename to dist/editor/images/mathjax-icons.xml
diff --git a/src/editor/extensions/mathjax.png b/dist/editor/images/mathjax.png
similarity index 100%
rename from src/editor/extensions/mathjax.png
rename to dist/editor/images/mathjax.png
diff --git a/src/editor/extensions/panning.png b/dist/editor/images/panning.png
similarity index 100%
rename from src/editor/extensions/panning.png
rename to dist/editor/images/panning.png
diff --git a/src/editor/extensions/placemark-icons.xml b/dist/editor/images/placemark-icons.xml
similarity index 100%
rename from src/editor/extensions/placemark-icons.xml
rename to dist/editor/images/placemark-icons.xml
diff --git a/src/editor/extensions/placemark.png b/dist/editor/images/placemark.png
similarity index 100%
rename from src/editor/extensions/placemark.png
rename to dist/editor/images/placemark.png
diff --git a/dist/editor/extensions/polygon-icons.svg b/dist/editor/images/polygon-icons.svg
similarity index 100%
rename from dist/editor/extensions/polygon-icons.svg
rename to dist/editor/images/polygon-icons.svg
diff --git a/dist/editor/images/polygon.png b/dist/editor/images/polygon.png
index 609b3e55..5bb96ce9 100644
Binary files a/dist/editor/images/polygon.png and b/dist/editor/images/polygon.png differ
diff --git a/src/editor/extensions/shapes.png b/dist/editor/images/shapes.png
similarity index 100%
rename from src/editor/extensions/shapes.png
rename to dist/editor/images/shapes.png
diff --git a/dist/editor/extensions/star-icons.svg b/dist/editor/images/star-icons.svg
similarity index 100%
rename from dist/editor/extensions/star-icons.svg
rename to dist/editor/images/star-icons.svg
diff --git a/src/editor/extensions/star.png b/dist/editor/images/star.png
similarity index 100%
rename from src/editor/extensions/star.png
rename to dist/editor/images/star.png
diff --git a/src/editor/extensions/webappfind-icon.svg b/dist/editor/images/webappfind-icon.svg
similarity index 100%
rename from src/editor/extensions/webappfind-icon.svg
rename to dist/editor/images/webappfind-icon.svg
diff --git a/src/editor/extensions/webappfind.png b/dist/editor/images/webappfind.png
similarity index 100%
rename from src/editor/extensions/webappfind.png
rename to dist/editor/images/webappfind.png
diff --git a/dist/editor/index.js b/dist/editor/index.js
index 684002bc..068e427e 100644
--- a/dist/editor/index.js
+++ b/dist/editor/index.js
@@ -63958,6 +63958,186 @@ var jPicker = function jPicker($) {
return $;
};
+function __variableDynamicImportRuntime0__(path) {
+ switch (path) {
+ case './locale/lang.af.js':
+ return Promise.resolve().then(function () { return lang_af$1; });
+
+ case './locale/lang.ar.js':
+ return Promise.resolve().then(function () { return lang_ar$1; });
+
+ case './locale/lang.az.js':
+ return Promise.resolve().then(function () { return lang_az$1; });
+
+ case './locale/lang.be.js':
+ return Promise.resolve().then(function () { return lang_be$1; });
+
+ case './locale/lang.bg.js':
+ return Promise.resolve().then(function () { return lang_bg$1; });
+
+ case './locale/lang.ca.js':
+ return Promise.resolve().then(function () { return lang_ca$1; });
+
+ case './locale/lang.cs.js':
+ return Promise.resolve().then(function () { return lang_cs$1; });
+
+ case './locale/lang.cy.js':
+ return Promise.resolve().then(function () { return lang_cy$1; });
+
+ case './locale/lang.da.js':
+ return Promise.resolve().then(function () { return lang_da$1; });
+
+ case './locale/lang.de.js':
+ return Promise.resolve().then(function () { return lang_de$1; });
+
+ case './locale/lang.el.js':
+ return Promise.resolve().then(function () { return lang_el$1; });
+
+ case './locale/lang.en.js':
+ return Promise.resolve().then(function () { return lang_en$1; });
+
+ case './locale/lang.es.js':
+ return Promise.resolve().then(function () { return lang_es$1; });
+
+ case './locale/lang.et.js':
+ return Promise.resolve().then(function () { return lang_et$1; });
+
+ case './locale/lang.fa.js':
+ return Promise.resolve().then(function () { return lang_fa$1; });
+
+ case './locale/lang.fi.js':
+ return Promise.resolve().then(function () { return lang_fi$1; });
+
+ case './locale/lang.fr.js':
+ return Promise.resolve().then(function () { return lang_fr$1; });
+
+ case './locale/lang.fy.js':
+ return Promise.resolve().then(function () { return lang_fy$1; });
+
+ case './locale/lang.ga.js':
+ return Promise.resolve().then(function () { return lang_ga$1; });
+
+ case './locale/lang.gl.js':
+ return Promise.resolve().then(function () { return lang_gl$1; });
+
+ case './locale/lang.he.js':
+ return Promise.resolve().then(function () { return lang_he$1; });
+
+ case './locale/lang.hi.js':
+ return Promise.resolve().then(function () { return lang_hi$1; });
+
+ case './locale/lang.hr.js':
+ return Promise.resolve().then(function () { return lang_hr$1; });
+
+ case './locale/lang.hu.js':
+ return Promise.resolve().then(function () { return lang_hu$1; });
+
+ case './locale/lang.hy.js':
+ return Promise.resolve().then(function () { return lang_hy$1; });
+
+ case './locale/lang.id.js':
+ return Promise.resolve().then(function () { return lang_id$1; });
+
+ case './locale/lang.is.js':
+ return Promise.resolve().then(function () { return lang_is$1; });
+
+ case './locale/lang.it.js':
+ return Promise.resolve().then(function () { return lang_it$1; });
+
+ case './locale/lang.ja.js':
+ return Promise.resolve().then(function () { return lang_ja$1; });
+
+ case './locale/lang.ko.js':
+ return Promise.resolve().then(function () { return lang_ko$1; });
+
+ case './locale/lang.lt.js':
+ return Promise.resolve().then(function () { return lang_lt$1; });
+
+ case './locale/lang.lv.js':
+ return Promise.resolve().then(function () { return lang_lv$1; });
+
+ case './locale/lang.mk.js':
+ return Promise.resolve().then(function () { return lang_mk$1; });
+
+ case './locale/lang.ms.js':
+ return Promise.resolve().then(function () { return lang_ms$1; });
+
+ case './locale/lang.mt.js':
+ return Promise.resolve().then(function () { return lang_mt$1; });
+
+ case './locale/lang.nl.js':
+ return Promise.resolve().then(function () { return lang_nl$1; });
+
+ case './locale/lang.no.js':
+ return Promise.resolve().then(function () { return lang_no$1; });
+
+ case './locale/lang.pl.js':
+ return Promise.resolve().then(function () { return lang_pl$1; });
+
+ case './locale/lang.pt-BR.js':
+ return Promise.resolve().then(function () { return lang_ptBR$1; });
+
+ case './locale/lang.pt-PT.js':
+ return Promise.resolve().then(function () { return lang_ptPT$1; });
+
+ case './locale/lang.ro.js':
+ return Promise.resolve().then(function () { return lang_ro$1; });
+
+ case './locale/lang.ru.js':
+ return Promise.resolve().then(function () { return lang_ru$1; });
+
+ case './locale/lang.sk.js':
+ return Promise.resolve().then(function () { return lang_sk$1; });
+
+ case './locale/lang.sl.js':
+ return Promise.resolve().then(function () { return lang_sl$1; });
+
+ case './locale/lang.sq.js':
+ return Promise.resolve().then(function () { return lang_sq$1; });
+
+ case './locale/lang.sr.js':
+ return Promise.resolve().then(function () { return lang_sr$1; });
+
+ case './locale/lang.sv.js':
+ return Promise.resolve().then(function () { return lang_sv$1; });
+
+ case './locale/lang.sw.js':
+ return Promise.resolve().then(function () { return lang_sw$1; });
+
+ case './locale/lang.test.js':
+ return Promise.resolve().then(function () { return lang_test$1; });
+
+ case './locale/lang.th.js':
+ return Promise.resolve().then(function () { return lang_th$1; });
+
+ case './locale/lang.tl.js':
+ return Promise.resolve().then(function () { return lang_tl$1; });
+
+ case './locale/lang.tr.js':
+ return Promise.resolve().then(function () { return lang_tr$1; });
+
+ case './locale/lang.uk.js':
+ return Promise.resolve().then(function () { return lang_uk$1; });
+
+ case './locale/lang.vi.js':
+ return Promise.resolve().then(function () { return lang_vi$1; });
+
+ case './locale/lang.yi.js':
+ return Promise.resolve().then(function () { return lang_yi$1; });
+
+ case './locale/lang.zh-CN.js':
+ return Promise.resolve().then(function () { return lang_zhCN$1; });
+
+ case './locale/lang.zh-HK.js':
+ return Promise.resolve().then(function () { return lang_zhHK$1; });
+
+ case './locale/lang.zh-TW.js':
+ return Promise.resolve().then(function () { return lang_zhTW$1; });
+
+ default:
+ return Promise.reject(new Error("Unknown variable dynamic import: " + path));
+ }
+}
/* globals jQuery */
/**
@@ -63986,6 +64166,8 @@ var jPicker = function jPicker($) {
/**
* @typedef {PlainObject
} module:locale.LocaleSelectorValue
*/
+
+
var $$c = jQuery;
var langParam;
/**
@@ -64346,7 +64528,6 @@ var readLang = /*#__PURE__*/function () {
* @function module:locale.putLocale
* @param {string} givenParam
* @param {string[]} goodLangs
- * @param {{langPath: string}} conf
* @fires module:svgcanvas.SvgCanvas#event:ext_addLangData
* @fires module:svgcanvas.SvgCanvas#event:ext_langReady
* @fires module:svgcanvas.SvgCanvas#event:ext_langChanged
@@ -64354,8 +64535,8 @@ var readLang = /*#__PURE__*/function () {
*/
var putLocale = /*#__PURE__*/function () {
- var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(givenParam, goodLangs, conf) {
- var url, module;
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(givenParam, goodLangs) {
+ var module;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
@@ -64375,18 +64556,17 @@ var putLocale = /*#__PURE__*/function () {
if (!goodLangs.includes(langParam) && langParam !== 'test') {
langParam = 'en';
- }
+ } // eslint-disable-next-line node/no-unsupported-features/es-syntax
- url = "".concat(conf.langPath, "lang.").concat(langParam, ".js"); // eslint-disable-next-line node/no-unsupported-features/es-syntax
- _context2.next = 6;
- return import(url);
+ _context2.next = 5;
+ return __variableDynamicImportRuntime0__("./locale/lang.".concat(langParam, ".js"));
- case 6:
+ case 5:
module = _context2.sent;
return _context2.abrupt("return", readLang(module["default"]));
- case 8:
+ case 7:
case "end":
return _context2.stop();
}
@@ -64394,7 +64574,7 @@ var putLocale = /*#__PURE__*/function () {
}, _callee2);
}));
- return function putLocale(_x2, _x3, _x4) {
+ return function putLocale(_x2, _x3) {
return _ref8.apply(this, arguments);
};
}();
@@ -64509,10 +64689,7 @@ defaultExtensions = ['ext-connector.js', 'ext-eyedropper.js', 'ext-grid.js', 'ex
* @property {string} [canvasName="default"] Used to namespace storage provided via `ext-storage.js`; you can use this if you wish to have multiple independent instances of SVG Edit on the same domain
* @property {boolean} [no_save_warning=false] If `true`, prevents the warning dialog box from appearing when closing/reloading the page. Mostly useful for testing.
* @property {string} [imgPath="images/"] The path where the SVG icons are located, with trailing slash. Note that as of version 2.7, this is not configurable by URL for security reasons.
-* @property {string} [langPath="locale/"] The path where the language files are located, with trailing slash. Default will be changed to `../dist/locale/` if this is a modular load. Note that as of version 2.7, this is not configurable by URL for security reasons.
* @property {string} [extPath="extensions/"] The path used for extension files, with trailing slash. Default will be changed to `../dist/extensions/` if this is a modular load. Note that as of version 2.7, this is not configurable by URL for security reasons.
-* @property {string} [extIconsPath="extensions/"] The path used for extension icons, with trailing slash.
-* @property {string} [jGraduatePath="jgraduate/images/"] The path where jGraduate images are located. Note that as of version 2.7, this is not configurable by URL for security reasons.
* @property {boolean} [preventAllURLConfig=false] Set to `true` to override the ability for URLs to set non-content configuration (including extension config). Must be set early, i.e., in `svgedit-config-iife.js`; extension loading is too late!
* @property {boolean} [preventURLContentLoading=false] Set to `true` to override the ability for URLs to set URL-based SVG content. Must be set early, i.e., in `svgedit-config-iife.js`; extension loading is too late!
* @property {boolean} [lockExtensions=false] Set to `true` to override the ability for URLs to set their own extensions; disallowed in URL setting. There is no need for this when `preventAllURLConfig` is used. Must be set early, i.e., in `svgedit-config-iife.js`; extension loading is too late!
@@ -64591,13 +64768,9 @@ defaultConfig = {
no_save_warning: false,
// PATH CONFIGURATION
// The following path configuration items are disallowed in the URL (as should any future path configurations)
- langPath: './locale/',
- // Default will be changed if this is a non-modular load
extPath: './extensions/',
// Default will be changed if this is a non-modular load
imgPath: './images/',
- jGraduatePath: './images/',
- extIconsPath: './extensions/',
// DOCUMENT PROPERTIES
// Change the following to a preference (already in the Document Properties dialog)?
dimensions: [640, 480],
@@ -65211,7 +65384,7 @@ editor.init = function () {
// ways with other script resources
- ['langPath', 'extPath', 'imgPath', 'jGraduatePath', 'extIconsPath'].forEach(function (pathConfig) {
+ ['extPath', 'imgPath'].forEach(function (pathConfig) {
if (urldata[pathConfig]) {
delete urldata[pathConfig];
}
@@ -65301,7 +65474,7 @@ editor.init = function () {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
- return editor.putLocale(editor.pref('lang'), goodLangs, curConfig);
+ return editor.putLocale(editor.pref('lang'), goodLangs);
case 2:
_yield$editor$putLoca = _context4.sent;
@@ -68026,7 +68199,7 @@ editor.init = function () {
return _context6.abrupt("return", new Promise(function (resolve, reject) {
// eslint-disable-line promise/avoid-new
- $$d.svgIcons(svgicons, {
+ $$d.svgIcons("".concat(curConfig.imgPath).concat(svgicons), {
w: 24,
h: 24,
id_match: false,
@@ -69708,7 +69881,7 @@ editor.init = function () {
}
_context12.next = 6;
- return editor.putLocale(lang, goodLangs, curConfig);
+ return editor.putLocale(lang, goodLangs);
case 6:
_yield$editor$putLoca2 = _context12.sent;
@@ -69946,13 +70119,14 @@ editor.init = function () {
left: pos.left - 140,
bottom: 40
}).jGraduate({
+ images: {
+ clientPath: './jgraduate/images/'
+ },
paint: paint,
window: {
pickerTitle: title
},
- images: {
- clientPath: curConfig.jGraduatePath
- },
+ // images: {clientPath: curConfig.imgPath},
newstop: 'inverse'
}, function (p) {
paint = new $$d.jGraduate.Paint(p);
@@ -72253,9 +72427,7 @@ editor.setConfig({// canvasName: 'default',
// no_save_warning: false,
// PATH CONFIGURATION
// imgPath: 'images/',
- // langPath: './locale/',
// extPath: 'extensions/',
- // jGraduatePath: 'jgraduate/images/',
/*
Uncomment the following to allow at least same domain (embedded) access,
@@ -93831,4 +94003,12994 @@ var index_es = /*#__PURE__*/Object.freeze({
vectorsAngle: vectorsAngle,
vectorsRatio: vectorsRatio
});
+
+var lang_af = {
+ lang: 'af',
+ dir: 'ltr',
+ common: {
+ ok: 'Spaar',
+ cancel: 'Annuleer',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klik om te verander vul kleur, verskuiwing klik om 'n beroerte kleur verander',
+ zoom_level: 'Change zoom vlak',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Verandering vul kleur',
+ stroke_color: 'Verandering beroerte kleur',
+ stroke_style: 'Verandering beroerte dash styl',
+ stroke_width: 'Verandering beroerte breedte',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Verandering rotasie-hoek',
+ blur: 'Change gaussian blur value',
+ opacity: 'Verander geselekteerde item opaciteit',
+ circle_cx: 'Verandering sirkel se cx koördineer',
+ circle_cy: 'Verandering sirkel se cy koördineer',
+ circle_r: 'Verandering sirkel se radius',
+ ellipse_cx: 'Verandering ellips se cx koördineer',
+ ellipse_cy: 'Verander ellips se cy koördineer',
+ ellipse_rx: 'Verandering ellips se x radius',
+ ellipse_ry: 'Verander ellips se j radius',
+ line_x1: 'Verandering lyn se vertrek x koördinaat',
+ line_x2: 'Verandering lyn se eindig x koördinaat',
+ line_y1: 'Verandering lyn se vertrek y koördinaat',
+ line_y2: 'Verandering lyn se eindig y koördinaat',
+ rect_height: 'Verandering reghoek hoogte',
+ rect_width: 'Verandering reghoek breedte',
+ corner_radius: 'Verandering Rechthoek Corner Radius',
+ image_width: 'Verander prent breedte',
+ image_height: 'Verandering prent hoogte',
+ image_url: 'URL verander',
+ node_x: 'Change node\'s x coordinate',
+ node_y: 'Change node\'s y coordinate',
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Verander teks inhoud',
+ font_family: 'Lettertipe verander Familie',
+ font_size: 'Verandering Lettertipe Grootte',
+ bold: 'Vetgedrukte teks',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Verander agtergrondkleur / opaciteit',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Pas na inhoud',
+ fit_to_all: 'Passing tot al inhoud',
+ fit_to_canvas: 'Passing tot doek',
+ fit_to_layer_content: 'Passing tot laag inhoud',
+ fit_to_sel: 'Passing tot seleksie',
+ align_relative_to: 'Align in verhouding tot ...',
+ relativeTo: 'relatief tot:',
+ page: 'bladsy',
+ largest_object: 'grootste voorwerp',
+ selected_objects: 'verkose voorwerpe',
+ smallest_object: 'kleinste voorwerp',
+ new_doc: 'Nuwe Beeld',
+ open_doc: 'Open Beeld',
+ export_img: 'Export',
+ save_doc: 'Slaan Beeld',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Rig Middel',
+ align_left: 'Links Regterkant',
+ align_middle: 'Align Midde',
+ align_right: 'Lijn regs uit',
+ align_top: 'Align Top',
+ mode_select: 'Select Gereedschap',
+ mode_fhpath: 'Potlood tool',
+ mode_line: 'Lyn Gereedskap',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-hand Rectangle',
+ mode_ellipse: 'Ellips',
+ mode_circle: 'Sirkel',
+ mode_fhellipse: 'Gratis-Hand Ellips',
+ mode_path: 'Poli Gereedskap',
+ mode_text: 'Text Gereedskap',
+ mode_image: 'Image Gereedskap',
+ mode_zoom: 'Klik op die Gereedskap',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Boontoe',
+ redo: 'Oordoen',
+ tool_source: 'Wysig Bron',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Groep Elemente',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elemente',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Skuif na Bottom',
+ move_top: 'Skuif na bo',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Spaar',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Verwyder Laag',
+ move_down: 'Beweeg afbreek Down',
+ "new": 'Nuwe Layer',
+ rename: 'Rename Layer',
+ move_up: 'Beweeg afbreek Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Doek Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Kies gedefinieerde:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_af$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_af
+});
+
+var lang_ar = {
+ lang: 'ar',
+ dir: 'rtl',
+ common: {
+ ok: 'حفظ',
+ cancel: 'إلغاء',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'انقر لتغيير لون التعبئة ، تحولا مزدوجا فوق لتغيير لون السكتة الدماغية',
+ zoom_level: 'تغيير مستوى التكبير',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'تغير لون التعبئة',
+ stroke_color: 'تغير لون السكتة الدماغية',
+ stroke_style: 'تغيير نمط السكتة الدماغية اندفاعة',
+ stroke_width: 'تغيير عرض السكتة الدماغية',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'تغيير زاوية الدوران',
+ blur: 'Change gaussian blur value',
+ opacity: 'تغيير مختارة غموض البند',
+ circle_cx: 'دائرة التغيير لتنسيق cx',
+ circle_cy: "Change circle's cy coordinate",
+ circle_r: 'التغيير في دائرة نصف قطرها',
+ ellipse_cx: 'تغيير شكل البيضاوي cx تنسيق',
+ ellipse_cy: 'تغيير شكل البيضاوي قبرصي تنسيق',
+ ellipse_rx: 'تغيير شكل البيضاوي خ نصف قطرها',
+ ellipse_ry: 'تغيير القطع الناقص في دائرة نصف قطرها ذ',
+ line_x1: 'تغيير الخط لبدء تنسيق خ',
+ line_x2: 'تغيير الخط لانهاء خ تنسيق',
+ line_y1: 'تغيير الخط لبدء تنسيق ذ',
+ line_y2: 'تغيير الخط لإنهاء تنسيق ذ',
+ rect_height: 'تغيير المستطيل الارتفاع',
+ rect_width: 'تغيير عرض المستطيل',
+ corner_radius: 'تغيير مستطيل ركن الشعاع',
+ image_width: 'تغيير صورة العرض',
+ image_height: 'تغيير ارتفاع الصورة',
+ image_url: 'تغيير العنوان',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'تغيير محتويات النص',
+ font_family: 'تغيير الخط الأسرة',
+ font_size: 'تغيير حجم الخط',
+ bold: 'نص جريء',
+ italic: 'مائل نص'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'تغير لون الخلفية / غموض',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'لائقا للمحتوى',
+ fit_to_all: 'يصلح لجميع المحتويات',
+ fit_to_canvas: 'يصلح لوحة زيتية على قماش',
+ fit_to_layer_content: 'يصلح لطبقة المحتوى',
+ fit_to_sel: 'يصلح لاختيار',
+ align_relative_to: 'محاذاة النسبي ل ...',
+ relativeTo: 'بالنسبة إلى:',
+ page: 'الصفحة',
+ largest_object: 'أكبر كائن',
+ selected_objects: 'انتخب الأجسام',
+ smallest_object: 'أصغر كائن',
+ new_doc: 'صورة جديدة',
+ open_doc: 'فتح الصورة',
+ export_img: 'Export',
+ save_doc: 'حفظ صورة',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'محاذاة القاع',
+ align_center: 'مركز محاذاة',
+ align_left: 'محاذاة إلى اليسار',
+ align_middle: 'محاذاة الأوسط',
+ align_right: 'محاذاة إلى اليمين',
+ align_top: 'محاذاة الأعلى',
+ mode_select: 'اختر أداة',
+ mode_fhpath: 'أداة قلم رصاص',
+ mode_line: 'خط أداة',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'القطع الناقص',
+ mode_circle: 'دائرة',
+ mode_fhellipse: 'اليد الحرة البيضوي',
+ mode_path: 'بولي أداة',
+ mode_text: 'النص أداة',
+ mode_image: 'الصورة أداة',
+ mode_zoom: 'أداة تكبير',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'التراجع',
+ redo: 'إعادته',
+ tool_source: 'عدل المصدر',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'مجموعة عناصر',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'فك تجميع عناصر',
+ docprops: 'خصائص المستند',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'الانتقال إلى أسفل',
+ move_top: 'الانتقال إلى أعلى',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'حفظ',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'حذف طبقة',
+ move_down: 'تحرك لأسفل طبقة',
+ "new": 'طبقة جديدة',
+ rename: 'تسمية الطبقة',
+ move_up: 'تحرك لأعلى طبقة',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'حدد سلفا:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ar$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ar
+});
+
+var lang_az = {
+ lang: 'az',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click to change fill color, shift-click to change stroke color',
+ zoom_level: 'Change zoom level',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change fill color',
+ stroke_color: 'Change stroke color',
+ stroke_style: 'Change stroke dash style',
+ stroke_width: 'Change stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change rotation angle',
+ blur: 'Change gaussian blur value',
+ opacity: 'Change selected item opacity',
+ circle_cx: "Change circle's cx coordinate",
+ circle_cy: "Change circle's cy coordinate",
+ circle_r: "Change circle's radius",
+ ellipse_cx: "Change ellipse's cx coordinate",
+ ellipse_cy: "Change ellipse's cy coordinate",
+ ellipse_rx: "Change ellipse's x radius",
+ ellipse_ry: "Change ellipse's y radius",
+ line_x1: "Change line's starting x coordinate",
+ line_x2: "Change line's ending x coordinate",
+ line_y1: "Change line's starting y coordinate",
+ line_y2: "Change line's ending y coordinate",
+ rect_height: 'Change rectangle height',
+ rect_width: 'Change rectangle width',
+ corner_radius: 'Change Rectangle Corner Radius',
+ image_width: 'Change image width',
+ image_height: 'Change image height',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Change text contents',
+ font_family: 'Change Font Family',
+ font_size: 'Change Font Size',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color/opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit to all content',
+ fit_to_canvas: 'Fit to canvas',
+ fit_to_layer_content: 'Fit to layer content',
+ fit_to_sel: 'Fit to selection',
+ align_relative_to: 'Align relative to ...',
+ relativeTo: 'relative to:',
+ page: 'page',
+ largest_object: 'largest object',
+ selected_objects: 'selected objects',
+ smallest_object: 'smallest object',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Align Middle',
+ align_right: 'Align Right',
+ align_top: 'Align Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Apply Changes',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_az$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_az
+});
+
+var lang_be = {
+ lang: 'be',
+ dir: 'ltr',
+ common: {
+ ok: 'Захаваць',
+ cancel: 'Адмена',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Націсніце для змены колеру залівання, Shift-Click змяніць обводка',
+ zoom_level: 'Змяненне маштабу',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Змяненне колеру залівання',
+ stroke_color: 'Змяненне колеру інсульт',
+ stroke_style: 'Змяненне стылю інсульт працяжнік',
+ stroke_width: 'Змены шырыня штрых',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Змены вугла павароту',
+ blur: 'Change gaussian blur value',
+ opacity: 'Старонка абранага пункта непразрыстасці',
+ circle_cx: 'CX змене круга каардынаты',
+ circle_cy: 'Змены гуртка CY каардынаты',
+ circle_r: 'Старонка круга's радыус',
+ ellipse_cx: 'Змены эліпса CX каардынаты',
+ ellipse_cy: 'Змены эліпса CY каардынаты',
+ ellipse_rx: 'Х змяненні эліпса радыюсам',
+ ellipse_ry: 'Змены у эліпса радыюсам',
+ line_x1: 'Змены лінія пачынае каардынаты х',
+ line_x2: 'Змяненне за перыяд, скончыўся лінія каардынаты х',
+ line_y1: 'Змены лінія пачынае Y каардынаты',
+ line_y2: 'Змяненне за перыяд, скончыўся лінія Y каардынаты',
+ rect_height: 'Змены прастакутнік вышынёй',
+ rect_width: 'Змяненне шырыні прамавугольніка',
+ corner_radius: 'Змены прастакутнік Corner Radius',
+ image_width: 'Змены шырыня выявы',
+ image_height: 'Змена вышыні выявы',
+ image_url: 'Змяніць URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Змяненне зместу тэксту',
+ font_family: 'Змены Сямейства шрыфтоў',
+ font_size: 'Змяніць памер шрыфта',
+ bold: 'Тоўсты тэкст',
+ italic: 'Нахілены тэкст'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Змяненне колеру фону / непразрыстасць',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Па памеры ўтрымання',
+ fit_to_all: 'Па памеру ўсе змесціва',
+ fit_to_canvas: 'Памер палатна',
+ fit_to_layer_content: 'По размеру слой ўтрымання',
+ fit_to_sel: 'Выбар памеру',
+ align_relative_to: 'Выраўнаваць па дачыненні да ...',
+ relativeTo: 'па параўнанні з:',
+ page: 'старонка',
+ largest_object: 'найбуйнейшы аб'ект',
+ selected_objects: 'выбранымі аб'ектамі',
+ smallest_object: 'маленькі аб'ект',
+ new_doc: 'Новае выява',
+ open_doc: 'Адкрыць выява',
+ export_img: 'Export',
+ save_doc: 'Захаваць малюнак',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Лінаваць па ніжнім краю',
+ align_center: 'Лінаваць па цэнтру',
+ align_left: 'Па левым краю',
+ align_middle: 'Выраўнаваць Блізкага',
+ align_right: 'Па правым краю',
+ align_top: 'Лінаваць па верхнім краю',
+ mode_select: 'Выберыце інструмент',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Свабоднай рукі Прастакутнік',
+ mode_ellipse: 'Эліпс',
+ mode_circle: 'Круг',
+ mode_fhellipse: 'Свабоднай рукі Эліпс',
+ mode_path: 'Poly Tool',
+ mode_text: 'Тэкст Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Адмяніць',
+ redo: 'Паўтор',
+ tool_source: 'Змяніць зыходны',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Група элементаў',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Элементы Разгруппировать',
+ docprops: 'Уласцівасці дакумента',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Перамясціць уніз',
+ move_top: 'Перамясціць угару',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Захаваць',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Выдаліць слой',
+ move_down: 'Перамясціць слой на',
+ "new": 'Новы слой',
+ rename: 'Перайменаваць Слой',
+ move_up: 'Перамяшчэнне слоя да',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Выберыце прадвызначэньні:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_be$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_be
+});
+
+var lang_bg = {
+ lang: 'bg',
+ dir: 'ltr',
+ common: {
+ ok: 'Спасявам',
+ cancel: 'Отказ',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Кликнете, за да промени попълнете цвят, на смени, кликнете да променят цвета си удар',
+ zoom_level: 'Промяна на ниво на мащабиране',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Промяна попълнете цвят',
+ stroke_color: 'Промяна на инсулт цвят',
+ stroke_style: 'Промяна на стила удар тире',
+ stroke_width: 'Промяна на ширината инсулт',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Промяна ъгъл на завъртане',
+ blur: 'Change gaussian blur value',
+ opacity: 'Промяна на избрания елемент непрозрачност',
+ circle_cx: 'CX Промяна кръг на координатната',
+ circle_cy: 'Промяна кръг's CY координира',
+ circle_r: 'Промяна кръг радиус',
+ ellipse_cx: 'Промяна на елипса's CX координира',
+ ellipse_cy: 'Промяна на елипса's CY координира',
+ ellipse_rx: 'Промяна на елипса's X радиус',
+ ellipse_ry: 'Промяна на елипса's Y радиус',
+ line_x1: 'Промяна на линия, започваща х координира',
+ line_x2: 'Промяна на линията приключва х координира',
+ line_y1: 'Промяна линия, започваща Y координира',
+ line_y2: 'Промяна на линията приключва Y координира',
+ rect_height: 'Промяна на правоъгълник височина',
+ rect_width: 'Промяна на правоъгълник ширина',
+ corner_radius: 'Промяна на правоъгълник Corner Radius',
+ image_width: 'Промяна на изображението ширина',
+ image_height: 'Промяна на изображението височина',
+ image_url: 'Промяна на URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Промяна на текст съдържание',
+ font_family: 'Промяна на шрифта Семейство',
+ font_size: 'Промени размера на буквите',
+ bold: 'Получер текст',
+ italic: 'Курсив текст'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Промяна на цвета на фона / непрозрачност',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit към съдържание',
+ fit_to_all: 'Побери цялото съдържание',
+ fit_to_canvas: 'Fit на платно',
+ fit_to_layer_content: 'Fit да слой съдържание',
+ fit_to_sel: 'Fit за подбор',
+ align_relative_to: 'Привеждане в сравнение с ...',
+ relativeTo: 'в сравнение с:',
+ page: 'страница',
+ largest_object: 'най-големият обект',
+ selected_objects: 'избраните обекти',
+ smallest_object: 'най-малката обект',
+ new_doc: 'Ню Имидж',
+ open_doc: 'Отворете изображението',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Привеждане Отдолу',
+ align_center: 'Подравняване в средата',
+ align_left: 'Подравняване вляво',
+ align_middle: 'Привеждане в Близкия',
+ align_right: 'Подравняване надясно',
+ align_top: 'Привеждане Топ',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Свободен Употребявани правоъгълник',
+ mode_ellipse: 'Елипса',
+ mode_circle: 'Кръгът',
+ mode_fhellipse: 'Свободен Употребявани Елипса',
+ mode_path: 'Поли Tool',
+ mode_text: 'Текст Оръдие',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Отмени',
+ redo: 'Възстановяване',
+ tool_source: 'Редактиране Източник',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Група Елементи',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Разгрупирай Елементи',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Премести надолу',
+ move_top: 'Премести в началото',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Спасявам',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Изтриване на слой',
+ move_down: 'Move слой надолу',
+ "new": 'Нов слой',
+ rename: 'Преименуване Layer',
+ move_up: 'Move Up Layer',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Изберете предварително:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_bg$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_bg
+});
+
+var lang_ca = {
+ lang: 'ca',
+ dir: 'ltr',
+ common: {
+ ok: 'Salvar',
+ cancel: 'Cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Feu clic per canviar el color de farciment, shift-clic per canviar el color del traç',
+ zoom_level: 'Canviar el nivell de zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Canviar el color de farciment',
+ stroke_color: 'Canviar el color del traç',
+ stroke_style: 'Canviar estil de traç guió',
+ stroke_width: 'Canviar l'amplada del traç',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Canviar l'angle de rotació',
+ blur: 'Change gaussian blur value',
+ opacity: 'Canviar la opacitat tema seleccionat',
+ circle_cx: 'CX cercle Canvi de coordenades',
+ circle_cy: 'Cercle Canvi CY coordinar',
+ circle_r: 'Ràdio de cercle Canvi',
+ ellipse_cx: 'Canviar lipse CX coordinar',
+ ellipse_cy: 'Lipse Canvi CY coordinar',
+ ellipse_rx: 'Ràdio x lipse Canvi',
+ ellipse_ry: 'Ràdio i lipse Canvi',
+ line_x1: 'Canviar la línia de partida de la coordenada x',
+ line_x2: 'Canviar la línia d'hores de coordenada x',
+ line_y1: 'Canviar la línia de partida i de coordinar',
+ line_y2: 'Canviar la línia d'hores de coordenada',
+ rect_height: 'Rectangle d'alçada Canvi',
+ rect_width: 'Ample rectangle Canvi',
+ corner_radius: 'Canviar Rectangle Corner Radius',
+ image_width: 'Amplada de la imatge Canvi',
+ image_height: 'Canviar l'altura de la imatge',
+ image_url: 'Canviar URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Contingut del text',
+ font_family: 'Canviar la font Família',
+ font_size: 'Change Font Size',
+ bold: 'Text en negreta',
+ italic: 'Text en cursiva'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Color de fons / opacitat',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Ajustar al contingut',
+ fit_to_all: 'Ajustar a tot el contingut',
+ fit_to_canvas: 'Ajustar a la lona',
+ fit_to_layer_content: 'Ajustar al contingut de la capa d'',
+ fit_to_sel: 'Ajustar a la selecció',
+ align_relative_to: 'Alinear pel que fa a ...',
+ relativeTo: 'en relació amb:',
+ page: 'Pàgina',
+ largest_object: 'objecte més gran',
+ selected_objects: 'objectes escollits',
+ smallest_object: 'objecte més petit',
+ new_doc: 'Nova imatge',
+ open_doc: 'Obrir imatge',
+ export_img: 'Export',
+ save_doc: 'Guardar imatge',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Alinear baix',
+ align_center: 'Alinear al centre',
+ align_left: 'Alinear a l'esquerra',
+ align_middle: 'Alinear Medi',
+ align_right: 'Alinear a la dreta',
+ align_top: 'Alinear a dalt',
+ mode_select: 'Eina de selecció',
+ mode_fhpath: 'Eina Llapis',
+ mode_line: 'L'eina',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Lipse',
+ mode_circle: 'Cercle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Eina de text',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Desfés',
+ redo: 'Refer',
+ tool_source: 'Font Edita',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elements de Grup de',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Desagrupar elements',
+ docprops: 'Propietats del document',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Mou al final',
+ move_top: 'Mou al principi',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Salvar',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Eliminar capa',
+ move_down: 'Mou la capa de Down',
+ "new": 'Nova capa',
+ rename: 'Canvieu el nom de la capa',
+ move_up: 'Mou la capa Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Seleccioneu predefinides:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ca$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ca
+});
+
+var lang_cs = {
+ lang: 'cs',
+ dir: 'ltr',
+ common: {
+ ok: 'Uložit',
+ cancel: 'Storno',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'šipka dolů',
+ key_up: 'šipka nahoru',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Běží na'
+ },
+ ui: {
+ toggle_stroke_tools: 'Zobrazit/schovat více možností',
+ palette_info: 'Kliknutím změníte barvu výplně, kliknutím současně s klávesou shift změníte barvu čáry',
+ zoom_level: 'Změna přiblížení',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Změnit ID elementu',
+ fill_color: 'Změnit barvu výplně',
+ stroke_color: 'Změnit barvu čáry',
+ stroke_style: 'Změnit styl čáry',
+ stroke_width: 'Změnit šířku čáry',
+ pos_x: 'Změnit souřadnici X',
+ pos_y: 'Změnit souřadnici Y',
+ linecap_butt: 'Konec úsečky: přesný',
+ linecap_round: 'Konec úsečky: zaoblený',
+ linecap_square: 'Konec úsečky: s čtvercovým přesahem',
+ linejoin_bevel: 'Styl napojení úseček: zkosené',
+ linejoin_miter: 'Styl napojení úseček: ostré',
+ linejoin_round: 'Styl napojení úseček: oblé',
+ angle: 'Změnit úhel natočení',
+ blur: 'Změnit rozostření',
+ opacity: 'Změnit průhlednost objektů',
+ circle_cx: 'Změnit souřadnici X středu kružnice',
+ circle_cy: 'Změnit souřadnici Y středu kružnice',
+ circle_r: 'Změnit poloměr kružnice',
+ ellipse_cx: 'Změnit souřadnici X středu elipsy',
+ ellipse_cy: 'Změnit souřadnici Y středu elipsy',
+ ellipse_rx: 'Změnit poloměr X elipsy',
+ ellipse_ry: 'Změnit poloměr Y elipsy',
+ line_x1: 'Změnit počáteční souřadnici X úsečky',
+ line_x2: 'Změnit koncovou souřadnici X úsečky',
+ line_y1: 'Změnit počáteční souřadnici Y úsečky',
+ line_y2: 'Změnit koncovou souřadnici X úsečky',
+ rect_height: 'Změnit výšku obdélníku',
+ rect_width: 'Změnit šířku obdélníku',
+ corner_radius: 'Změnit zaoblení obdélníku',
+ image_width: 'Změnit šířku dokumentu',
+ image_height: 'Změnit výšku dokumentu',
+ image_url: 'Změnit adresu URL',
+ node_x: 'Změnit souřadnici X uzlu',
+ node_y: 'Změnit souřadnici Y uzlu',
+ seg_type: 'Změnit typ segmentu',
+ straight_segments: 'úsečka',
+ curve_segments: 'křivka',
+ text_contents: 'Změnit text',
+ font_family: 'Změnit font',
+ font_size: 'Změnit velikost písma',
+ bold: 'Tučně',
+ italic: 'Kurzíva'
+ },
+ tools: {
+ main_menu: 'Hlavní menu',
+ bkgnd_color_opac: 'Změnit barvu a průhlednost pozadí',
+ connector_no_arrow: 'Bez šipky',
+ fitToContent: 'přizpůsobit obsahu',
+ fit_to_all: 'Přizpůsobit veškerému obsahu',
+ fit_to_canvas: 'Přizpůsobit stránce',
+ fit_to_layer_content: 'Přizpůsobit obsahu vrstvy',
+ fit_to_sel: 'Přizpůsobit výběru',
+ align_relative_to: 'Zarovnat relativně',
+ relativeTo: 'relatativně k:',
+ page: 'stránce',
+ largest_object: 'největšímu objektu',
+ selected_objects: 'zvoleným objektům',
+ smallest_object: 'nejmenšímu objektu',
+ new_doc: 'Nový dokument',
+ open_doc: 'Otevřít dokument',
+ export_img: 'Export',
+ save_doc: 'Uložit dokument',
+ import_doc: 'Importovat SVG',
+ align_to_page: 'Zarovnat element na stránku',
+ align_bottom: 'Zarovnat dolů',
+ align_center: 'Zarovnat nastřed',
+ align_left: 'Zarovnat doleva',
+ align_middle: 'Zarovnat nastřed',
+ align_right: 'Zarovnat doprava',
+ align_top: 'Zarovnat nahoru',
+ mode_select: 'Výběr a transformace objektů',
+ mode_fhpath: 'Kresba od ruky',
+ mode_line: 'Úsečka',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Obdélník volnou rukou',
+ mode_ellipse: 'Elipsa',
+ mode_circle: 'Kružnice',
+ mode_fhellipse: 'Elipsa volnou rukou',
+ mode_path: 'Křivka',
+ mode_text: 'Text',
+ mode_image: 'Obrázek',
+ mode_zoom: 'Přiblížení',
+ no_embed: 'POZOR: Obrázek nelze uložit s dokumentem. Bude zobrazován z adresáře, kde se nyní nachází.',
+ undo: 'Zpět',
+ redo: 'Znovu',
+ tool_source: 'Upravovat SVG kód',
+ wireframe_mode: 'Zobrazit jen kostru',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Seskupit objekty',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Objekt na křivku',
+ reorient_path: 'Změna orientace křivky',
+ ungroup: 'Zrušit seskupení',
+ docprops: 'Vlastnosti dokumentu',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Vrstvu úplně dospodu',
+ move_top: 'Vrstvu úplně nahoru',
+ node_clone: 'Vložit nový uzel',
+ node_delete: 'Ostranit uzel',
+ node_link: 'Provázat ovládací body uzlu',
+ add_subpath: 'Přidat další součást křivky',
+ openclose_path: 'Otevřít/zavřít součást křivky',
+ source_save: 'Uložit',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Vrstva',
+ layers: 'Layers',
+ del: 'Odstranit vrstvu',
+ move_down: 'Přesunout vrstvu níž',
+ "new": 'Přidat vrstvu',
+ rename: 'Přejmenovat vrstvu',
+ move_up: 'Přesunout vrstvu výš',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Přesunout objekty do:',
+ move_selected: 'Přesunout objekty do jiné vrstvy'
+ },
+ config: {
+ image_props: 'Vlastnosti dokumentu',
+ doc_title: 'Název',
+ doc_dims: 'Vlastní velikost',
+ included_images: 'Vložené obrázky',
+ image_opt_embed: 'Vkládat do dokumentu',
+ image_opt_ref: 'Jen odkazem',
+ editor_prefs: 'Nastavení editoru',
+ icon_size: 'Velikost ikon',
+ language: 'Jazyk',
+ background: 'Obrázek v pozadí editoru',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Pozor: obrázek v pozadí nebude uložen jako součást dokumentu.',
+ icon_large: 'velké',
+ icon_medium: 'střední',
+ icon_small: 'malé',
+ icon_xlarge: 'největší',
+ select_predefined: 'vybrat předdefinovaný:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Nevhodná hodnota',
+ noContentToFitTo: 'Vyberte oblast pro přizpůsobení',
+ dupeLayerName: 'Taková vrstva už bohužel existuje',
+ enterUniqueLayerName: 'Zadejte prosím jedinečné jméno pro vrstvu',
+ enterNewLayerName: 'Zadejte prosím jméno pro novou vrstvu',
+ layerHasThatName: 'Vrstva už se tak jmenuje',
+ QmoveElemsToLayer: "Opravdu chcete přesunout vybrané objekty do vrstvy '%s'?",
+ QwantToClear: 'Opravdu chcete smazat současný dokument?\nHistorie změn bude také smazána.',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'Chyba v parsování zdrojového kódu SVG.\nChcete se vrátit k původnímu?',
+ QignoreSourceChanges: 'Opravdu chcete stornovat změny provedené v SVG kódu?',
+ featNotSupported: 'Tato vlastnost ještě není k dispozici',
+ enterNewImgURL: 'Vložte adresu URL, na které se nachází vkládaný obrázek',
+ defsFailOnSave: 'POZOR: Kvůli nedokonalosti Vašeho prohlížeče se mohou některé části dokumentu špatně vykreslovat (mohou chybět barevné přechody nebo některé objekty). Po uložení dokumentu by se ale vše mělo zobrazovat správně.',
+ loadingImage: 'Nahrávám obrázek ...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Mohou se vyskytnout následující problémy: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_cs$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_cs
+});
+
+var lang_cy = {
+ lang: 'cy',
+ dir: 'ltr',
+ common: {
+ ok: 'Cadw',
+ cancel: 'Canslo',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Cliciwch yma i lenwi newid lliw, sifft-cliciwch i newid lliw strôc',
+ zoom_level: 'Newid lefel chwyddo',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Newid lliw llenwi',
+ stroke_color: 'Newid lliw strôc',
+ stroke_style: 'Newid arddull strôc diferyn',
+ stroke_width: 'Lled strôc Newid',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Ongl cylchdro Newid',
+ blur: 'Change gaussian blur value',
+ opacity: 'Newid dewis Didreiddiad eitem',
+ circle_cx: 'CX Newid cylch yn cydlynu',
+ circle_cy: 'Newid cylch's cy gydgysylltu',
+ circle_r: 'Newid radiws cylch yn',
+ ellipse_cx: 'Newid Ellipse yn CX gydgysylltu',
+ ellipse_cy: 'Newid Ellipse yn cydlynu cy',
+ ellipse_rx: 'Radiws Newid Ellipse's x',
+ ellipse_ry: 'Radiws Newid Ellipse yn y',
+ line_x1: 'Newid llinell yn cychwyn x gydgysylltu',
+ line_x2: 'Newid llinell yn diweddu x gydgysylltu',
+ line_y1: 'Newid llinell ar y cychwyn yn cydlynu',
+ line_y2: 'Newid llinell yn dod i ben y gydgysylltu',
+ rect_height: 'Uchder petryal Newid',
+ rect_width: 'Lled petryal Newid',
+ corner_radius: 'Newid Hirsgwâr Corner Radiws',
+ image_width: 'Lled delwedd Newid',
+ image_height: 'Uchder delwedd Newid',
+ image_url: 'Newid URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Cynnwys testun Newid',
+ font_family: 'Newid Font Teulu',
+ font_size: 'Newid Maint Ffont',
+ bold: 'Testun Bras',
+ italic: 'Italig Testun'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Newid lliw cefndir / Didreiddiad',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Ffit i Cynnwys',
+ fit_to_all: 'Yn addas i bawb content',
+ fit_to_canvas: 'Ffit i ofyn',
+ fit_to_layer_content: 'Ffit cynnwys haen i',
+ fit_to_sel: 'Yn addas at ddewis',
+ align_relative_to: 'Alinio perthynas i ...',
+ relativeTo: 'cymharol i:',
+ page: 'tudalen',
+ largest_object: 'gwrthrych mwyaf',
+ selected_objects: 'gwrthrychau etholedig',
+ smallest_object: 'lleiaf gwrthrych',
+ new_doc: 'Newydd Delwedd',
+ open_doc: 'Delwedd Agored',
+ export_img: 'Export',
+ save_doc: 'Cadw Delwedd',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Alinio Gwaelod',
+ align_center: 'Alinio Center',
+ align_left: 'Alinio Chwith',
+ align_middle: 'Alinio Canol',
+ align_right: 'Alinio Hawl',
+ align_top: 'Alinio Top',
+ mode_select: 'Dewiswch Offer',
+ mode_fhpath: 'Teclyn pensil',
+ mode_line: 'Llinell Offer',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Hand rhad ac am ddim Hirsgwâr',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Cylch',
+ mode_fhellipse: 'Rhad ac am ddim Hand Ellipse',
+ mode_path: 'Offer poly',
+ mode_text: 'Testun Offer',
+ mode_image: 'Offer Delwedd',
+ mode_zoom: 'Offer Chwyddo',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Dadwneud',
+ redo: 'Ail-wneud',
+ tool_source: 'Golygu Ffynhonnell',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elfennau Grŵp',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Elfennau Ungroup',
+ docprops: 'Document Eiddo',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Symud i'r Gwaelod',
+ move_top: 'Symud i'r Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Cadw',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Dileu Haen',
+ move_down: 'Symud Haen i Lawr',
+ "new": 'Haen Newydd',
+ rename: 'Ail-enwi Haen',
+ move_up: 'Symud Haen Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Rhagosodol Dewis:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_cy$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_cy
+});
+
+var lang_da = {
+ lang: 'da',
+ dir: 'ltr',
+ common: {
+ ok: 'Gemme',
+ cancel: 'Annuller',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klik for at ændre fyldfarve, shift-klik for at ændre stregfarve',
+ zoom_level: 'Skift zoomniveau',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Skift fyldfarve',
+ stroke_color: 'Skift stregfarve',
+ stroke_style: 'Skift slagtilfælde Dash stil',
+ stroke_width: 'Skift slagtilfælde bredde',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Skift rotationsvinkel',
+ blur: 'Change gaussian blur value',
+ opacity: 'Skift valgte element opacitet',
+ circle_cx: 'Skift cirklens cx koordinere',
+ circle_cy: 'Skift cirklens cy koordinere',
+ circle_r: 'Skift cirklens radius',
+ ellipse_cx: 'Skift ellipse's cx koordinere',
+ ellipse_cy: 'Skift ellipse's cy koordinere',
+ ellipse_rx: 'Skift ellipse's x radius',
+ ellipse_ry: 'Skift ellipse's y radius',
+ line_x1: 'Skift linie's start x-koordinat',
+ line_x2: 'Skift Line's slutter x-koordinat',
+ line_y1: 'Skift linjens start y-koordinat',
+ line_y2: 'Skift Line's slutter y-koordinat',
+ rect_height: 'Skift rektangel højde',
+ rect_width: 'Skift rektanglets bredde',
+ corner_radius: 'Skift Rektangel Corner Radius',
+ image_width: 'Skift billede bredde',
+ image_height: 'Skift billede højde',
+ image_url: 'Skift webadresse',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Skift tekst indhold',
+ font_family: 'Skift Font Family',
+ font_size: 'Skift skriftstørrelse',
+ bold: 'Fed tekst',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Skift baggrundsfarve / uigennemsigtighed',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Tilpas til indhold',
+ fit_to_all: 'Passer til alt indhold',
+ fit_to_canvas: 'Tilpas til lærred',
+ fit_to_layer_content: 'Tilpas til lag indhold',
+ fit_to_sel: 'Tilpas til udvælgelse',
+ align_relative_to: 'Juster i forhold til ...',
+ relativeTo: 'i forhold til:',
+ page: 'side',
+ largest_object: 'største objekt',
+ selected_objects: 'valgte objekter',
+ smallest_object: 'mindste objekt',
+ new_doc: 'Nyt billede',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Gem billede',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Juster Bottom',
+ align_center: 'Centrer',
+ align_left: 'Venstrejusteret',
+ align_middle: 'Juster Mellemøsten',
+ align_right: 'Højrejusteret',
+ align_top: 'Juster Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rektangel',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Cirkel',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Tekstværktøj',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Fortryd',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Gruppe Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Opdel Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Flyt til bund',
+ move_top: 'Flyt til toppen',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Gemme',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Slet Layer',
+ move_down: 'Flyt lag ned',
+ "new": 'New Layer',
+ rename: 'Omdøb Layer',
+ move_up: 'Flyt Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Vælg foruddefinerede:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_da$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_da
+});
+
+var lang_de = {
+ lang: 'de',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Abbrechen',
+ key_backspace: 'Rücktaste',
+ key_del: 'Löschen',
+ key_down: 'nach unten',
+ key_up: 'nach oben',
+ more_opts: 'Mehr Optionen',
+ url: 'URL',
+ width: 'Breite',
+ height: 'Höhe'
+ },
+ misc: {
+ powered_by: 'powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Zeige/Verberge weitere Linien-Werkzeuge',
+ palette_info: 'Klick zum Ändern der Füllfarbe, Shift-Klick zum Ändern der Linienfarbe',
+ zoom_level: 'vergrößern',
+ panel_drag: 'Nach links/rechts ziehen, um die Größe vom Seitenpanel zu ändern',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Element identifizieren',
+ fill_color: 'Füllfarbe ändern',
+ stroke_color: 'Linienfarbe ändern',
+ stroke_style: 'Linienstil ändern',
+ stroke_width: 'Linienbreite ändern',
+ pos_x: 'Ändere die X-Koordinate',
+ pos_y: 'Ändere die Y-Koordinate',
+ linecap_butt: 'Form der Linienendung: Stumpf',
+ linecap_round: 'Form der Linienendung: Rund',
+ linecap_square: 'Form der Linienendung: Rechteckig',
+ linejoin_bevel: 'Zusammentreffen von zwei Linien: abgeschrägte Kante',
+ linejoin_miter: 'Zusammentreffen von zwei Linien: Gehrung',
+ linejoin_round: 'Zusammentreffen von zwei Linien: Rund',
+ angle: 'Drehwinkel ändern',
+ blur: 'Ändere Wert des Gaußschen Weichzeichners',
+ opacity: 'Opazität des ausgewählten Objekts ändern',
+ circle_cx: 'Kreiszentrum (cx) ändern',
+ circle_cy: 'Kreiszentrum (cy) ändern',
+ circle_r: 'Kreisradius (r) ändern',
+ ellipse_cx: 'Ellipsenzentrum (cx) ändern',
+ ellipse_cy: 'Ellipsenzentrum (cy) ändern',
+ ellipse_rx: 'Ellipsenradius (x) ändern',
+ ellipse_ry: 'Ellipsenradius (y) ändern',
+ line_x1: 'X-Koordinate des Linienanfangs ändern',
+ line_x2: 'X-Koordinate des Linienendes ändern',
+ line_y1: 'Y-Koordinate des Linienanfangs ändern',
+ line_y2: 'Y-Koordinate des Linienendes ändern',
+ rect_height: 'Höhe des Rechtecks ändern',
+ rect_width: 'Breite des Rechtecks ändern',
+ corner_radius: 'Eckenradius des Rechtecks ändern',
+ image_width: 'Bildbreite ändern',
+ image_height: 'Bildhöhe ändern',
+ image_url: 'URL ändern',
+ node_x: 'Ändere die X-Koordinate des Knoten',
+ node_y: 'Ändere die Y-Koordinate des Knoten',
+ seg_type: 'Ändere den Typ des Segments',
+ straight_segments: 'Gerade',
+ curve_segments: 'Kurve',
+ text_contents: 'Textinhalt erstellen und bearbeiten',
+ font_family: 'Schriftart wählen',
+ font_size: 'Schriftgröße einstellen',
+ bold: 'Fetter Text',
+ italic: 'Kursiver Text'
+ },
+ tools: {
+ main_menu: 'Hauptmenü',
+ bkgnd_color_opac: 'Hintergrundfarbe ändern / Opazität',
+ connector_no_arrow: 'Kein Pfeil',
+ fitToContent: 'An den Inhalt anpassen',
+ fit_to_all: 'An gesamten Inhalt anpassen',
+ fit_to_canvas: 'An die Zeichenfläche anpassen',
+ fit_to_layer_content: 'An Inhalt der Ebene anpassen',
+ fit_to_sel: 'An die Auswahl anpassen',
+ align_relative_to: 'Relativ zu einem anderem Objekt ausrichten …',
+ relativeTo: 'im Vergleich zu:',
+ page: 'Seite',
+ largest_object: 'größtes Objekt',
+ selected_objects: 'gewählte Objekte',
+ smallest_object: 'kleinstes Objekt',
+ new_doc: 'Neues Bild',
+ open_doc: 'Bild öffnen',
+ export_img: 'Export',
+ save_doc: 'Bild speichern',
+ import_doc: 'Importiere SVG',
+ align_to_page: 'Element an Seite ausrichten',
+ align_bottom: 'Unten ausrichten',
+ align_center: 'Zentriert ausrichten',
+ align_left: 'Linksbündig ausrichten',
+ align_middle: 'In der Mitte ausrichten',
+ align_right: 'Rechtsbündig ausrichten',
+ align_top: 'Oben ausrichten',
+ mode_select: 'Objekte auswählen und verändern',
+ mode_fhpath: 'Freihandlinien zeichnen',
+ mode_line: 'Linien zeichnen',
+ mode_rect: 'Rechteck-Werkzeug',
+ mode_square: 'Quadrat-Werkzeug',
+ mode_fhrect: 'Freihand-Rechteck',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Kreis',
+ mode_fhellipse: 'Freihand-Ellipse',
+ mode_path: 'Pfad zeichnen',
+ mode_text: 'Text erstellen und bearbeiten',
+ mode_image: 'Bild einfügen',
+ mode_zoom: 'Zoomfaktor vergrößern oder verringern',
+ no_embed: 'Hinweis: Dieses Bild kann nicht eingebettet werden. Eine Anzeige hängt von diesem Pfad ab.',
+ undo: 'Rückgängig',
+ redo: 'Wiederherstellen',
+ tool_source: 'Quellcode bearbeiten',
+ wireframe_mode: 'Drahtmodell-Modus',
+ clone: 'Element(e) klonen',
+ del: 'Element(e) löschen',
+ group_elements: 'Element(e) gruppieren',
+ make_link: 'Link erstellen',
+ set_link_url: 'Link setzen (leer lassen zum Entfernen)',
+ to_path: 'Gewähltes Objekt in einen Pfad konvertieren',
+ reorient_path: 'Neuausrichtung des Pfades',
+ ungroup: 'Gruppierung aufheben',
+ docprops: 'Dokument-Eigenschaften',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Die gewählten Objekte nach ganz unten verschieben',
+ move_top: 'Die gewählten Objekte nach ganz oben verschieben',
+ node_clone: 'Klone den Knoten',
+ node_delete: 'Lösche den Knoten',
+ node_link: 'Gekoppelte oder separate Kontrollpunkte für die Bearbeitung des Pfades',
+ add_subpath: 'Teilpfad hinzufügen',
+ openclose_path: 'Öffne/Verbinde Unterpfad',
+ source_save: 'Änderungen akzeptieren',
+ cut: 'Ausschneiden',
+ copy: 'Kopieren',
+ paste: 'Einfügen',
+ paste_in_place: 'Bei Originalposition einfügen',
+ "delete": 'Löschen',
+ group: 'Gruppieren',
+ move_front: 'Nach ganz oben verschieben',
+ move_up: 'Hochschieben',
+ move_down: 'Herunterschieben',
+ move_back: 'Nach ganz unten verschieben'
+ },
+ layers: {
+ layer: 'Ebene',
+ layers: 'Ebenen',
+ del: 'Ebene löschen',
+ move_down: 'Ebene nach unten verschieben',
+ "new": 'Neue Ebene',
+ rename: 'Ebene umbenennen',
+ move_up: 'Ebene nach oben verschieben',
+ dupe: 'Ebene duplizieren',
+ merge_down: 'Nach unten zusammenführen',
+ merge_all: 'Alle zusammenführen',
+ move_elems_to: 'Verschiebe ausgewählte Objekte:',
+ move_selected: 'Verschiebe ausgewählte Objekte auf eine andere Ebene'
+ },
+ config: {
+ image_props: 'Bildeigenschaften',
+ doc_title: 'Titel',
+ doc_dims: 'Dimension der Zeichenfläche',
+ included_images: 'Eingefügte Bilder',
+ image_opt_embed: 'Daten einbetten (lokale Dateien)',
+ image_opt_ref: 'Benutze die Dateireferenz',
+ editor_prefs: 'Editor-Einstellungen',
+ icon_size: 'Symbol-Abmessungen',
+ language: 'Sprache',
+ background: 'Editor-Hintergrund',
+ editor_img_url: 'Bild-URL',
+ editor_bg_note: 'Anmerkung: Der Hintergrund wird mit dem Bild nicht gespeichert.',
+ icon_large: 'Groß',
+ icon_medium: 'Mittel',
+ icon_small: 'Klein',
+ icon_xlarge: 'Sehr Groß',
+ select_predefined: 'Auswahl einer vordefinierten:',
+ units_and_rulers: 'Einheiten und Lineale',
+ show_rulers: 'Zeige Lineale',
+ base_unit: 'Basiseinheit:',
+ grid: 'Gitternetz',
+ snapping_onoff: 'Einrasten an/aus',
+ snapping_stepsize: 'Einrastabstand:',
+ grid_color: 'Gitterfarbe'
+ },
+ notification: {
+ invalidAttrValGiven: 'Fehlerhafter Wert',
+ noContentToFitTo: 'Kein Inhalt anzupassen',
+ dupeLayerName: 'Eine Ebene hat bereits diesen Namen',
+ enterUniqueLayerName: 'Verwenden Sie einen eindeutigen Namen für die Ebene',
+ enterNewLayerName: 'Geben Sie bitte einen neuen Namen für die Ebene ein',
+ layerHasThatName: 'Eine Ebene hat bereits diesen Namen',
+ QmoveElemsToLayer: "Verschiebe ausgewählte Objekte in die Ebene '%s'?",
+ QwantToClear: 'Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig-Funktion zurückgesetzt!',
+ QwantToOpen: 'Möchten Sie eine neue Datei öffnen?\nDadurch wird auch die Rückgängig-Funktion zurückgesetzt!',
+ QerrorsRevertToSource: 'Es gibt Parser-Fehler in der SVG-Quelle.\nDie Original-SVG wiederherstellen?',
+ QignoreSourceChanges: 'Sollen die Änderungen an der SVG-Quelle ignoriert werden?',
+ featNotSupported: 'Diese Eigenschaft wird nicht unterstützt',
+ enterNewImgURL: 'Geben Sie die URL für das neue Bild an',
+ defsFailOnSave: 'Hinweis: Aufgrund eines Fehlers in Ihrem Browser kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt, sobald es gespeichert wird.',
+ loadingImage: 'Bild wird geladen, bitte warten ...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Beachten Sie außerdem die folgenden Probleme: ',
+ unsavedChanges: 'Es sind nicht-gespeicherte Änderungen vorhanden.',
+ enterNewLinkURL: 'Geben Sie die neue URL ein',
+ errorLoadingSVG: 'Fehler: Kann SVG-Daten nicht laden',
+ URLLoadFail: 'Kann von dieser URL nicht laden',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_de$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_de
+});
+
+var lang_el = {
+ lang: 'el',
+ dir: 'ltr',
+ common: {
+ ok: 'Αποθηκεύω',
+ cancel: 'Άκυρο',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Κάντε κλικ για να συμπληρώσετε την αλλαγή χρώματος, στροφή κλικ για να αλλάξετε το χρώμα εγκεφαλικό',
+ zoom_level: 'Αλλαγή επίπεδο μεγέθυνσης',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Αλλαγή συμπληρώστε χρώμα',
+ stroke_color: 'Αλλαγή χρώματος εγκεφαλικό',
+ stroke_style: 'Αλλαγή στυλ παύλα εγκεφαλικό',
+ stroke_width: 'Αλλαγή πλάτος γραμμής',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Αλλαγή γωνία περιστροφής',
+ blur: 'Change gaussian blur value',
+ opacity: 'Αλλαγή αδιαφάνεια επιλεγμένο σημείο',
+ circle_cx: 'Cx Αλλαγή κύκλου συντονίζουν',
+ circle_cy: 'Αλλαγή κύκλου cy συντονίζουν',
+ circle_r: 'Αλλαγή ακτίνα κύκλου',
+ ellipse_cx: 'Αλλαγή ellipse του CX συντονίζουν',
+ ellipse_cy: 'Αλλαγή ellipse του cy συντονίζουν',
+ ellipse_rx: 'X ακτίνα Αλλαγή ellipse του',
+ ellipse_ry: 'Y ακτίνα Αλλαγή ellipse του',
+ line_x1: 'Αλλαγή γραμμής εκκίνησης x συντονίζουν',
+ line_x2: 'Αλλαγή γραμμής λήγει x συντονίζουν',
+ line_y1: 'Αλλαγή γραμμής εκκίνησης y συντονίζουν',
+ line_y2: 'Αλλαγή γραμμής λήγει y συντονίζουν',
+ rect_height: 'Αλλαγή ύψος ορθογωνίου',
+ rect_width: 'Αλλαγή πλάτους ορθογώνιο',
+ corner_radius: 'Αλλαγή ορθογώνιο Corner Radius',
+ image_width: 'Αλλαγή πλάτος εικόνας',
+ image_height: 'Αλλαγή ύψος εικόνας',
+ image_url: 'Αλλαγή URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Αλλαγή περιεχόμενο κειμένου',
+ font_family: 'Αλλαγή γραμματοσειράς Οικογένεια',
+ font_size: 'Αλλαγή μεγέθους γραμματοσειράς',
+ bold: 'Bold Text',
+ italic: 'Πλάγιους'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Αλλαγή χρώματος φόντου / αδιαφάνεια',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Ταιριάζει σε όλο το περιεχόμενο',
+ fit_to_canvas: 'Προσαρμογή στο μουσαμά',
+ fit_to_layer_content: 'Προσαρμογή στο περιεχόμενο στρώμα',
+ fit_to_sel: 'Fit to επιλογή',
+ align_relative_to: 'Στοίχιση σε σχέση με ...',
+ relativeTo: 'σε σχέση με:',
+ page: 'σελίδα',
+ largest_object: 'μεγαλύτερο αντικείμενο',
+ selected_objects: 'εκλέγεται αντικείμενα',
+ smallest_object: 'μικρότερο αντικείμενο',
+ new_doc: 'Νέα εικόνα',
+ open_doc: 'Άνοιγμα εικόνας',
+ export_img: 'Export',
+ save_doc: 'Αποθήκευση εικόνας',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Στοίχισηκάτω',
+ align_center: 'Στοίχισηστοκέντρο',
+ align_left: 'Στοίχισηαριστερά',
+ align_middle: 'Ευθυγράμμιση Μέση',
+ align_right: 'Στοίχισηδεξιά',
+ align_top: 'Στοίχισηπάνω',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Εργαλείομολυβιού',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Δωρεάν-Hand ορθογώνιο',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Κύκλος',
+ mode_fhellipse: 'Δωρεάν-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Κείμενο Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Αναίρεση',
+ redo: 'Redo',
+ tool_source: 'Επεξεργασία Πηγή',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Ομάδα Στοιχεία',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Κατάργηση ομαδοποίησης Στοιχεία',
+ docprops: 'Ιδιότητες εγγράφου',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Μετακίνηση προς τα κάτω',
+ move_top: 'Μετακίνηση στην αρχή',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Αποθηκεύω',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Διαγραφήστρώματος',
+ move_down: 'Μετακίνηση Layer Down',
+ "new": 'Νέο Layer',
+ rename: 'Μετονομασία Layer',
+ move_up: 'Μετακίνηση Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Επιλογή προκαθορισμένων:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_el$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_el
+});
+
+var lang_en = {
+ lang: 'en',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Cancel',
+ key_backspace: 'Backspace',
+ key_del: 'Del',
+ key_down: 'Down',
+ key_up: 'Up',
+ more_opts: 'More options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click to change fill color, shift-click to change stroke color',
+ zoom_level: 'Change zoom level',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change fill color',
+ stroke_color: 'Change stroke color',
+ stroke_style: 'Change stroke dash style',
+ stroke_width: 'Change stroke width by 1, shift-click to change by 0.1',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change rotation angle',
+ blur: 'Change gaussian blur value',
+ opacity: 'Change selected item opacity',
+ circle_cx: "Change circle's cx coordinate",
+ circle_cy: "Change circle's cy coordinate",
+ circle_r: "Change circle's radius",
+ ellipse_cx: "Change ellipse's cx coordinate",
+ ellipse_cy: "Change ellipse's cy coordinate",
+ ellipse_rx: "Change ellipse's x radius",
+ ellipse_ry: "Change ellipse's y radius",
+ line_x1: "Change line's starting x coordinate",
+ line_x2: "Change line's ending x coordinate",
+ line_y1: "Change line's starting y coordinate",
+ line_y2: "Change line's ending y coordinate",
+ rect_height: 'Change rectangle height',
+ rect_width: 'Change rectangle width',
+ corner_radius: 'Change Rectangle Corner Radius',
+ image_width: 'Change image width',
+ image_height: 'Change image height',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Change text contents',
+ font_family: 'Change Font Family',
+ font_size: 'Change Font Size',
+ bold: 'Bold Text [B]',
+ italic: 'Italic Text [I]'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color/opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit to all content',
+ fit_to_canvas: 'Fit to canvas',
+ fit_to_layer_content: 'Fit to layer content',
+ fit_to_sel: 'Fit to selection',
+ align_relative_to: 'Align relative to ...',
+ relativeTo: 'relative to:',
+ page: 'page',
+ largest_object: 'largest object',
+ selected_objects: 'selected objects',
+ smallest_object: 'smallest object',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Align Middle',
+ align_right: 'Align Right',
+ align_top: 'Align Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool [Ctrl+Up/Down]',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo [Z]',
+ redo: 'Redo [Y]',
+ tool_source: 'Edit Source [U]',
+ wireframe_mode: 'Wireframe Mode [F]',
+ clone: 'Duplicate Element(s) [D]',
+ del: 'Delete Element(s) [Delete/Backspace]',
+ group_elements: 'Group Elements [G]',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties [D]',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Send to Back',
+ move_top: 'Bring to Front',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Apply Changes',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer...',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title:',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size:',
+ language: 'Language:',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL:',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color:'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: 'Move selected elements to layer \'%s\'?',
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_en$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_en
+});
+
+var lang_es = {
+ lang: 'es',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Cancelar',
+ key_backspace: 'retroceso',
+ key_del: 'suprimir',
+ key_down: 'abajo',
+ key_up: 'arriba',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Mostrar/ocultar herramientas de trazo adicionales',
+ palette_info: 'Haga clic para cambiar el color de relleno. Pulse Mayús y haga clic para cambiar el color del contorno.',
+ zoom_level: 'Cambiar el nivel de zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Cambiar el color de relleno',
+ stroke_color: 'Cambiar el color del contorno',
+ stroke_style: 'Cambiar el estilo del trazo del contorno',
+ stroke_width: 'Cambiar el grosor del contorno',
+ pos_x: 'Cambiar la posición horizontal X',
+ pos_y: 'Cambiar la posición vertical Y',
+ linecap_butt: 'Final de la línea: en el nodo',
+ linecap_round: 'Final de la línea: redondeada',
+ linecap_square: 'Final de la línea: cuadrada',
+ linejoin_bevel: 'Unión: biselada',
+ linejoin_miter: 'Unión: recta',
+ linejoin_round: 'Unión: redondeada',
+ angle: 'Cambiar ángulo de rotación',
+ blur: 'Ajustar desenfoque gausiano',
+ opacity: 'Cambiar la opacidad del objeto seleccionado',
+ circle_cx: 'Cambiar la posición horizonral CX del círculo',
+ circle_cy: 'Cambiar la posición vertical CY del círculo',
+ circle_r: 'Cambiar el radio del círculo',
+ ellipse_cx: 'Cambiar la posición horizontal CX de la elipse',
+ ellipse_cy: 'Cambiar la posición vertical CY de la elipse',
+ ellipse_rx: 'Cambiar el radio horizontal X de la elipse',
+ ellipse_ry: 'Cambiar el radio vertical Y de la elipse',
+ line_x1: 'Cambiar la posición horizontal X del comienzo de la línea',
+ line_x2: 'Cambiar la posición horizontal X del final de la línea',
+ line_y1: 'Cambiar la posición vertical Y del comienzo de la línea',
+ line_y2: 'Cambiar la posición vertical Y del final de la línea',
+ rect_height: 'Cambiar la altura del rectángulo',
+ rect_width: 'Cambiar el ancho rectángulo',
+ corner_radius: 'Cambiar el radio de las esquinas del rectángulo',
+ image_width: 'Cambiar el ancho de la imagen',
+ image_height: 'Cambiar la altura de la imagen',
+ image_url: 'Modificar URL',
+ node_x: 'Cambiar la posición horizontal X del nodo',
+ node_y: 'Cambiar la posición vertical Y del nodo',
+ seg_type: 'Cambiar el tipo de segmento',
+ straight_segments: 'Recta',
+ curve_segments: 'Curva',
+ text_contents: 'Modificar el texto',
+ font_family: 'Tipo de fuente',
+ font_size: 'Tamaño de la fuente',
+ bold: 'Texto en negrita',
+ italic: 'Texto en cursiva'
+ },
+ tools: {
+ main_menu: 'Menú principal',
+ bkgnd_color_opac: 'Cambiar color de fondo / opacidad',
+ connector_no_arrow: 'Sin flecha',
+ fitToContent: 'Ajustar al contenido',
+ fit_to_all: 'Ajustar a todo el contenido',
+ fit_to_canvas: 'Ajustar al lienzo',
+ fit_to_layer_content: 'Ajustar al contenido de la capa',
+ fit_to_sel: 'Ajustar a la selección',
+ align_relative_to: 'Alinear con respecto a ...',
+ relativeTo: 'en relación con:',
+ page: 'Página',
+ largest_object: 'El objeto más grande',
+ selected_objects: 'Objetos seleccionados',
+ smallest_object: 'El objeto más pequeño',
+ new_doc: 'Nueva imagen',
+ open_doc: 'Abrir imagen',
+ export_img: 'Export',
+ save_doc: 'Guardar imagen',
+ import_doc: 'Importar un archivo SVG',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Alinear parte inferior',
+ align_center: 'Centrar verticalmente',
+ align_left: 'Alinear lado izquierdo',
+ align_middle: 'Centrar horizontalmente',
+ align_right: 'Alinear lado derecho',
+ align_top: 'Alinear parte superior',
+ mode_select: 'Herramienta de selección',
+ mode_fhpath: 'Herramienta de lápiz',
+ mode_line: 'Trazado de líneas',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Rectángulo a mano alzada',
+ mode_ellipse: 'Elipse',
+ mode_circle: 'Círculo',
+ mode_fhellipse: 'Elipse a mano alzada',
+ mode_path: 'Herramienta de trazado',
+ mode_text: 'Insertar texto',
+ mode_image: 'Insertar imagen',
+ mode_zoom: 'Zoom',
+ no_embed: 'NOTA: La imagen no puede ser integrada. El contenido mostrado dependerá de la imagen ubicada en esta ruta. ',
+ undo: 'Deshacer',
+ redo: 'Rehacer',
+ tool_source: 'Editar código fuente',
+ wireframe_mode: 'Modo marco de alambre',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Agrupar objetos',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convertir a trazado',
+ reorient_path: 'Reorientar el trazado',
+ ungroup: 'Desagrupar objetos',
+ docprops: 'Propiedades del documento',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Mover abajo',
+ move_top: 'Mover arriba',
+ node_clone: 'Clonar nodo',
+ node_delete: 'Suprimir nodo',
+ node_link: 'Enlazar puntos de control',
+ add_subpath: 'Añadir subtrazado',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Aplicar cambios',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Capa',
+ layers: 'Layers',
+ del: 'Suprimir capa',
+ move_down: 'Mover la capa hacia abajo',
+ "new": 'Nueva capa',
+ rename: 'Renombrar capa',
+ move_up: 'Mover la capa hacia arriba',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Desplazar objetos a:',
+ move_selected: 'Mover los objetos seleccionados a otra capa'
+ },
+ config: {
+ image_props: 'Propiedades de la Imagen',
+ doc_title: 'Título',
+ doc_dims: 'Tamaño del lienzo',
+ included_images: 'Imágenes integradas',
+ image_opt_embed: 'Integrar imágenes en forma de datos (archivos locales)',
+ image_opt_ref: 'Usar la referencia del archivo',
+ editor_prefs: 'Preferencias del Editor',
+ icon_size: 'Tamaño de los iconos',
+ language: 'Idioma',
+ background: 'Fondo del editor',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Nota: El fondo no se guardará junto con la imagen.',
+ icon_large: 'Grande',
+ icon_medium: 'Mediano',
+ icon_small: 'Pequeño',
+ icon_xlarge: 'Muy grande',
+ select_predefined: 'Seleccionar predefinido:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Valor no válido',
+ noContentToFitTo: 'No existe un contenido al que ajustarse.',
+ dupeLayerName: '¡Ya existe una capa con este nombre!',
+ enterUniqueLayerName: 'Introduzca otro nombre distinto para la capa.',
+ enterNewLayerName: 'Introduzca el nuevo nombre de la capa.',
+ layerHasThatName: 'El nombre introducido es el nombre actual de la capa.',
+ QmoveElemsToLayer: "¿Desplazar los elementos seleccionados a la capa '%s'?",
+ QwantToClear: '¿Desea borrar el dibujo?\n¡El historial de acciones también se borrará!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'Existen errores sintácticos en su código fuente SVG.\n¿Desea volver al código fuente SVG original?',
+ QignoreSourceChanges: '¿Desea ignorar los cambios realizados sobre el código fuente SVG?',
+ featNotSupported: 'Función no compatible.',
+ enterNewImgURL: 'Introduzca la nueva URL de la imagen.',
+ defsFailOnSave: 'NOTA: Debido a un fallo de su navegador, es posible que la imagen aparezca de forma incorrecta (ciertas gradaciones o elementos podría perderse). La imagen aparecerá en su forma correcta una vez guardada.',
+ loadingImage: 'Cargando imagen. Espere, por favor.',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Existen además los problemas siguientes:',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_es$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_es
+});
+
+var lang_et = {
+ lang: 'et',
+ dir: 'ltr',
+ common: {
+ ok: 'Salvestama',
+ cancel: 'Tühista',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click muuta täitke värvi, Shift-nuppu, et muuta insult värvi',
+ zoom_level: 'Muuda suumi taset',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Muuda täitke värvi',
+ stroke_color: 'Muuda insult värvi',
+ stroke_style: 'Muuda insult kriips stiil',
+ stroke_width: 'Muuda insult laius',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Muuda Pöördenurk',
+ blur: 'Change gaussian blur value',
+ opacity: 'Muuda valitud elemendi läbipaistmatus',
+ circle_cx: 'Muuda ringi's cx kooskõlastada',
+ circle_cy: 'Muuda ringi's cy kooskõlastada',
+ circle_r: 'Muuda ring on raadiusega',
+ ellipse_cx: 'Muuda ellips's cx kooskõlastada',
+ ellipse_cy: 'Muuda ellips's cy kooskõlastada',
+ ellipse_rx: 'Muuda ellips's x raadius',
+ ellipse_ry: 'Muuda ellips's y raadius',
+ line_x1: 'Muuda rööbastee algab x-koordinaadi',
+ line_x2: 'Muuda Line lõpeb x-koordinaadi',
+ line_y1: 'Muuda rööbastee algab y-koordinaadi',
+ line_y2: 'Muuda Line lõppenud y-koordinaadi',
+ rect_height: 'Muuda ristküliku kõrgus',
+ rect_width: 'Muuda ristküliku laius',
+ corner_radius: 'Muuda ristkülik Nurgakabe Raadius',
+ image_width: 'Muuda pilt laius',
+ image_height: 'Muuda pilt kõrgus',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Muuda teksti sisu',
+ font_family: 'Muutke Kirjasinperhe',
+ font_size: 'Change font size',
+ bold: 'Rasvane kiri',
+ italic: 'Kursiiv'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Muuda tausta värvi / läbipaistmatus',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Sobita kogu sisu',
+ fit_to_canvas: 'Sobita lõuend',
+ fit_to_layer_content: 'Sobita kiht sisu',
+ fit_to_sel: 'Fit valiku',
+ align_relative_to: 'Viia võrreldes ...',
+ relativeTo: 'võrreldes:',
+ page: 'lehekülg',
+ largest_object: 'suurim objekt',
+ selected_objects: 'valitud objektide',
+ smallest_object: 'väikseim objekt',
+ new_doc: 'Uus pilt',
+ open_doc: 'Pildi avamine',
+ export_img: 'Export',
+ save_doc: 'Salvesta pilt',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Viia Bottom',
+ align_center: 'Keskele joondamine',
+ align_left: 'Vasakjoondus',
+ align_middle: 'Viia Lähis -',
+ align_right: 'Paremjoondus',
+ align_top: 'Viia Üles',
+ mode_select: 'Vali Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Online-Hand Ristkülik',
+ mode_ellipse: 'Ellips',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Online-Hand Ellips',
+ mode_path: 'Path Tool',
+ mode_text: 'Tekst Tool',
+ mode_image: 'Pilt Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Muuda Allikas',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Rühma elemendid',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Lõhu Elements',
+ docprops: 'Dokumendi omadused',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Liiguta alla',
+ move_top: 'Liiguta üles',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Salvestama',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Kustuta Kiht',
+ move_down: 'Liiguta kiht alla',
+ "new": 'Uus kiht',
+ rename: 'Nimeta kiht',
+ move_up: 'Liiguta kiht üles',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Valige eelmääratletud:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_et$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_et
+});
+
+var lang_fa = {
+ lang: 'fa',
+ dir: 'rtl',
+ common: {
+ ok: 'تأیید',
+ cancel: 'لغو',
+ key_backspace: 'پس بر ',
+ key_del: 'حذف ',
+ key_down: 'پایین ',
+ key_up: 'بالا ',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'برای تغییر رنگ، کلیک کنید. برای تغییر رنگ لبه، کلید تبدیل (shift) را فشرده و کلیک کنید',
+ zoom_level: 'تغییر بزرگ نمایی',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'تغییر رنگ',
+ stroke_color: 'تغییر رنگ لبه',
+ stroke_style: 'تغییر نقطه چین لبه',
+ stroke_width: 'تغییر عرض لبه',
+ pos_x: 'تغییر مختصات X',
+ pos_y: 'تغییر مختصات Y',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'تغییر زاویه چرخش',
+ blur: 'Change gaussian blur value',
+ opacity: 'تغییر تاری عنصر انتخاب شده',
+ circle_cx: 'تغییر مختصات cx دایره',
+ circle_cy: 'تغییر مختصات cy دایره',
+ circle_r: 'تغییر شعاع دایره',
+ ellipse_cx: 'تغییر مختصات cx بیضی',
+ ellipse_cy: 'تغییر مختصات cy بیضی',
+ ellipse_rx: 'تغییر شعاع rx بیضی',
+ ellipse_ry: 'تغییر شعاع ry بیضی',
+ line_x1: 'تغییر مختصات x آغاز خط',
+ line_x2: 'تغییر مختصات x پایان خط',
+ line_y1: 'تغییر مختصات y آغاز خط',
+ line_y2: 'تغییر مختصات y پایان خط',
+ rect_height: 'تغییر ارتفاع مستطیل',
+ rect_width: 'تغییر عرض مستطیل',
+ corner_radius: 'شعاع گوشه:',
+ image_width: 'تغییر عرض تصویر',
+ image_height: 'تغییر ارتفاع تصویر',
+ image_url: 'تغییر نشانی وب (url)',
+ node_x: 'تغییر مختصات x نقطه',
+ node_y: 'تغییر مختصات y نقطه',
+ seg_type: 'تغییر نوع قطعه (segment)',
+ straight_segments: 'مستقیم',
+ curve_segments: 'منحنی',
+ text_contents: 'تغییر محتویات متن',
+ font_family: 'تغییر خانواده قلم',
+ font_size: 'تغییر اندازه قلم',
+ bold: 'متن توپر ',
+ italic: 'متن کج '
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'تغییر رنگ پس زمینه / تاری',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'هم اندازه شدن با محتوا',
+ fit_to_all: 'هم اندازه شدن با همه محتویات',
+ fit_to_canvas: 'هم اندازه شدن با صفحه مجازی (بوم)',
+ fit_to_layer_content: 'هم اندازه شدن با محتوای لایه',
+ fit_to_sel: 'هم اندازه شدن با اشیاء انتخاب شده',
+ align_relative_to: 'تراز نسبت به ...',
+ relativeTo: 'نسبت به:',
+ page: 'صفحه',
+ largest_object: 'بزرگترین شئ',
+ selected_objects: 'اشیاء انتخاب شده',
+ smallest_object: 'کوچکترین شئ',
+ new_doc: 'تصویر جدید ',
+ open_doc: 'باز کردن تصویر ',
+ export_img: 'Export',
+ save_doc: 'ذخیره تصویر ',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'تراز پایین',
+ align_center: 'وسط چین',
+ align_left: 'چپ چین',
+ align_middle: 'تراز میانه',
+ align_right: 'راست چین',
+ align_top: 'تراز بالا',
+ mode_select: 'ابزار انتخاب ',
+ mode_fhpath: 'ابزار مداد ',
+ mode_line: 'ابزار خط ',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'مستطیل با قابلیت تغییر پویا',
+ mode_ellipse: 'بیضی',
+ mode_circle: 'دایره',
+ mode_fhellipse: 'بیضی با قابلیت تغییر پویا',
+ mode_path: 'ابزار مسیر ',
+ mode_text: 'ابزار متن ',
+ mode_image: 'ابزار تصویر ',
+ mode_zoom: 'ابزار بزرگ نمایی ',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'واگرد ',
+ redo: 'ازنو ',
+ tool_source: 'ویرایش منبع ',
+ wireframe_mode: 'حالت نمایش لبه ها ',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'قرار دادن عناصر در گروه ',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'تبدیل به مسیر',
+ reorient_path: 'جهت دهی مجدد مسیر',
+ ungroup: 'خارج کردن عناصر از گروه ',
+ docprops: 'مشخصات سند ',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'انتقال به پایین ترین ',
+ move_top: 'انتقال به بالاترین ',
+ node_clone: 'ایجاد کپی از نقطه',
+ node_delete: 'حذف نقطه',
+ node_link: 'پیوند دادن نقاط کنترل',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'اعمال تغییرات',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'حذف',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'لایه',
+ layers: 'Layers',
+ del: 'حذف لایه',
+ move_down: 'انتقال لایه به پایین',
+ "new": 'لایه جدید',
+ rename: 'تغییر نام لایه',
+ move_up: 'انتقال لایه به بالا',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'انتقال عناصر به:',
+ move_selected: 'انتقال عناصر انتخاب شده به یک لایه متفاوت'
+ },
+ config: {
+ image_props: 'مشخصات تصویر',
+ doc_title: 'عنوان',
+ doc_dims: 'ابعاد صفحه مجازی (بوم)',
+ included_images: 'تصاویر گنجانده شده',
+ image_opt_embed: 'داده های جای داده شده (پرونده های محلی)',
+ image_opt_ref: 'استفاده از ارجاع به پرونده',
+ editor_prefs: 'تنظیمات ویراستار',
+ icon_size: 'اندازه شمایل',
+ language: 'زبان',
+ background: 'پس زمینه ویراستار',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'توجه: پس زمینه همراه تصویر ذخیره نخواهد شد.',
+ icon_large: 'بزرگ',
+ icon_medium: 'متوسط',
+ icon_small: 'کوچک',
+ icon_xlarge: 'خیلی بزرگ',
+ select_predefined: 'از پیش تعریف شده را انتخاب کنید:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'مقدار داده شده نامعتبر است',
+ noContentToFitTo: 'محتوایی برای هم اندازه شدن وجود ندارد',
+ dupeLayerName: 'لایه ای با آن نام وجود دارد!',
+ enterUniqueLayerName: 'لطفا یک نام لایه یکتا انتخاب کنید',
+ enterNewLayerName: 'لطفا نام لایه جدید را وارد کنید',
+ layerHasThatName: 'لایه از قبل آن نام را دارد',
+ QmoveElemsToLayer: "عناصر انتخاب شده به لایه '%s' منتقل شوند؟",
+ QwantToClear: 'آیا مطمئن هستید که می خواهید نقاشی را پاک کنید؟\nاین عمل باعث حذف تاریخچه واگرد شما خواهد شد!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'در منبع SVG شما خطاهای تجزیه (parse) وجود داشت.\nبه منبع SVG اصلی بازگردانده شود؟',
+ QignoreSourceChanges: 'تغییرات اعمال شده در منبع SVG نادیده گرفته شوند؟',
+ featNotSupported: 'این ویژگی پشتیبانی نشده است',
+ enterNewImgURL: 'نشانی وب (url) تصویر جدید را وارد کنید',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_fa$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_fa
+});
+
+var lang_fi = {
+ lang: 'fi',
+ dir: 'ltr',
+ common: {
+ ok: 'Tallentaa',
+ cancel: 'Peruuta',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klikkaa muuttaa täyttöväri, Shift-click vaihtaa aivohalvauksen väriä',
+ zoom_level: 'Muuta suurennustaso',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Muuta täyttöväri',
+ stroke_color: 'Muuta aivohalvaus väri',
+ stroke_style: 'Muuta aivohalvaus Dash tyyli',
+ stroke_width: 'Muuta aivohalvaus leveys',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Muuta kiertokulma',
+ blur: 'Change gaussian blur value',
+ opacity: 'Muuta valitun kohteen läpinäkyvyys',
+ circle_cx: 'Muuta Circlen CX koordinoida',
+ circle_cy: 'Muuta Circlen CY koordinoida',
+ circle_r: 'Muuta ympyrän säde',
+ ellipse_cx: 'Muuta ellipsi's CX koordinoida',
+ ellipse_cy: 'Muuta ellipsi's CY koordinoida',
+ ellipse_rx: 'Muuta ellipsi's x säde',
+ ellipse_ry: 'Muuta ellipsi n y säde',
+ line_x1: 'Muuta Linen alkaa x-koordinaatti',
+ line_x2: 'Muuta Linen päättyy x koordinoida',
+ line_y1: 'Muuta Linen alkaa y-koordinaatti',
+ line_y2: 'Muuta Linen päättyy y koordinoida',
+ rect_height: 'Muuta suorakaiteen korkeus',
+ rect_width: 'Muuta suorakaiteen leveys',
+ corner_radius: 'Muuta suorakaide Corner Säde',
+ image_width: 'Muuta kuvan leveys',
+ image_height: 'Muuta kuvan korkeus',
+ image_url: 'Muuta URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Muuta tekstin sisältö',
+ font_family: 'Muuta Font Family',
+ font_size: 'Muuta fontin kokoa',
+ bold: 'Lihavoitu teksti',
+ italic: 'Kursivoitu'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Vaihda taustaväri / sameuden',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Sovita Content',
+ fit_to_all: 'Sovita kaikki content',
+ fit_to_canvas: 'Sovita kangas',
+ fit_to_layer_content: 'Sovita kerros sisältöön',
+ fit_to_sel: 'Sovita valinta',
+ align_relative_to: 'Kohdista suhteessa ...',
+ relativeTo: 'suhteessa:',
+ page: 'sivulta',
+ largest_object: 'Suurin kohde',
+ selected_objects: 'valittujen objektien',
+ smallest_object: 'pienin kohde',
+ new_doc: 'Uusi kuva',
+ open_doc: 'Avaa kuva',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Keskitä',
+ align_left: 'Tasaa vasemmalle',
+ align_middle: 'Kohdista Lähi',
+ align_right: 'Tasaa oikealle',
+ align_top: 'Kohdista Top',
+ mode_select: 'Valitse työkalu',
+ mode_fhpath: 'Kynätyökalu',
+ mode_line: 'Viivatyökalulla',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand suorakaide',
+ mode_ellipse: 'Soikion',
+ mode_circle: 'Ympyrään',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Työkalua',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Suurennustyökalu',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Kumoa',
+ redo: 'Tulppaamalla ilmakanavan',
+ tool_source: 'Muokkaa lähdekoodipaketti',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Tuoteryhmään Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Asiakirjan ominaisuudet',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Tallentaa',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Poista Layer',
+ move_down: 'Siirrä Layer alas',
+ "new": 'New Layer',
+ rename: 'Nimeä Layer',
+ move_up: 'Siirrä Layer',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Valitse ennalta:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: "Retrieving '%s' ...",
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_fi$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_fi
+});
+
+var lang_fr = {
+ lang: 'fr',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Annuler',
+ key_backspace: 'Retour Arr.',
+ key_del: 'Suppr.',
+ key_down: 'Bas',
+ key_up: 'Haut',
+ more_opts: "Plus d'options",
+ url: 'URL',
+ width: 'Largeur',
+ height: 'Hauteur'
+ },
+ misc: {
+ powered_by: 'Propulsé par'
+ },
+ ui: {
+ toggle_stroke_tools: "Montrer/cacher plus d'outils de contour",
+ palette_info: 'Cliquer pour changer la couleur de remplissage, Maj+clic pour changer la couleur de contour',
+ zoom_level: 'Changer le niveau de zoom',
+ panel_drag: 'Tirer vers la gauche/droite pour redimensionner le panneau',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: "Identifier l'élément",
+ fill_color: 'Changer la couleur de remplissage',
+ stroke_color: 'Changer la couleur du contour',
+ stroke_style: 'Changer le style du contour',
+ stroke_width: 'Changer la largeur du contour de 1, Maj+clic pour changer la largeur de 0,1',
+ pos_x: "Changer l'abscisse (coordonnée X)",
+ pos_y: "Changer l'ordonnée (coordonnée Y)",
+ linecap_butt: 'Terminaison : Sur le nœud',
+ linecap_round: 'Terminaison : Arrondie',
+ linecap_square: 'Terminaison : Carrée',
+ linejoin_bevel: 'Raccord : Biseauté',
+ linejoin_miter: 'Raccord : Droit',
+ linejoin_round: 'Raccord : Arrondi',
+ angle: "Changer l'angle de rotation",
+ blur: 'Changer la valeur du flou gaussien',
+ opacity: "Changer l'opacité de l'élément sélectionné",
+ circle_cx: 'Changer la position horizontale cx du cercle',
+ circle_cy: 'Changer la position verticale cy du cercle',
+ circle_r: 'Changer le rayon du cercle',
+ ellipse_cx: "Changer la position horizontale cx de l'ellipse",
+ ellipse_cy: "Changer la position verticale cy de l'ellipse",
+ ellipse_rx: "Changer le rayon horizontal x de l'ellipse",
+ ellipse_ry: "Changer le rayon vertical y de l'ellipse",
+ line_x1: 'Changer la position horizontale x de début de la ligne',
+ line_x2: 'Changer la position horizontale x de fin de la ligne',
+ line_y1: 'Changer la position verticale y de début de la ligne',
+ line_y2: 'Changer la position verticale y de fin de la ligne',
+ rect_height: 'Changer la hauteur du rectangle',
+ rect_width: 'Changer la largeur du rectangle',
+ corner_radius: 'Changer le rayon des coins du rectangle',
+ image_width: "Changer la largeur de l'image",
+ image_height: "Changer la hauteur de l'image",
+ image_url: "Modifier l'URL",
+ node_x: 'Changer la positon horizontale x du nœud',
+ node_y: 'Changer la position verticale y du nœud',
+ seg_type: 'Changer le type du segment',
+ straight_segments: 'Droit',
+ curve_segments: 'Courbe',
+ text_contents: 'Changer le contenu du texte',
+ font_family: 'Changer la famille de police',
+ font_size: 'Changer la taille de la police',
+ bold: 'Texte en gras',
+ italic: 'Texte en italique'
+ },
+ tools: {
+ main_menu: 'Menu principal',
+ bkgnd_color_opac: "Changer la couleur d'arrière-plan/l'opacité",
+ connector_no_arrow: 'Sans flèches',
+ fitToContent: 'Ajuster au contenu',
+ fit_to_all: "Ajuster à l'ensemble du contenu",
+ fit_to_canvas: 'Ajuster au canevas',
+ fit_to_layer_content: 'Ajuster au contenu du calque',
+ fit_to_sel: 'Ajuster à la sélection',
+ align_relative_to: 'Aligner par rapport à…',
+ relativeTo: 'par rapport à :',
+ page: 'page',
+ largest_object: 'objet le plus gros',
+ selected_objects: 'objets sélectionnés',
+ smallest_object: 'objet le plus petit',
+ new_doc: 'Nouvelle image',
+ open_doc: 'Ouvrir une image SVG',
+ export_img: 'Exporter',
+ save_doc: "Enregistrer l'image",
+ import_doc: 'Importer une image',
+ align_to_page: "Aligner l'élément à la page",
+ align_bottom: 'Aligner en bas',
+ align_center: 'Centrer verticalement',
+ align_left: 'Aligner à gauche',
+ align_middle: 'Centrer horizontalement',
+ align_right: 'Aligner à droite',
+ align_top: 'Aligner en haut',
+ mode_select: 'Outil de sélection',
+ mode_fhpath: 'Crayon à main levée',
+ mode_line: 'Tracer des lignes',
+ mode_rect: 'Outil rectangle',
+ mode_square: 'Outil carré',
+ mode_fhrect: 'Rectangle à main levée',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Cercle',
+ mode_fhellipse: 'Ellipse à main levée',
+ mode_path: 'Outil chemin',
+ mode_text: 'Outil texte',
+ mode_image: 'Outil image',
+ mode_zoom: 'Zoom',
+ no_embed: 'NOTE : Cette image ne peut pas être incorporée. Elle sera chargée à cette adresse',
+ undo: 'Annuler',
+ redo: 'Restaurer',
+ tool_source: 'Modifier la source',
+ wireframe_mode: 'Mode Fil de fer',
+ clone: 'Cloner élément(s)',
+ del: 'Supprimer élément(s)',
+ group_elements: 'Grouper les éléments',
+ make_link: 'Créer un hyperlien',
+ set_link_url: "Définir l'URL du lien (laisser vide pour supprimer)",
+ to_path: 'Convertir en chemin',
+ reorient_path: 'Réorienter le chemin',
+ ungroup: 'Dégrouper les éléments',
+ docprops: 'Propriétés du document',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Déplacer vers le bas',
+ move_top: 'Déplacer vers le haut',
+ node_clone: 'Cloner le nœud',
+ node_delete: 'Supprimer le nœud',
+ node_link: 'Rendre les points de contrôle solidaires',
+ add_subpath: 'Ajouter un tracé secondaire',
+ openclose_path: 'Ouvrir/fermer le sous-chemin',
+ source_save: 'Appliquer les modifications',
+ cut: 'Couper',
+ copy: 'Copier',
+ paste: 'Coller',
+ paste_in_place: 'Coller sur place',
+ "delete": 'Supprimer',
+ group: 'Grouper',
+ move_front: 'Placer au premier plan',
+ move_up: "Avancer d'un plan",
+ move_down: "Reculer d'un plan",
+ move_back: 'Placer au fond'
+ },
+ layers: {
+ layer: 'Calque',
+ layers: 'Calques',
+ del: 'Supprimer le calque',
+ move_down: 'Descendre le calque',
+ "new": 'Nouveau calque',
+ rename: 'Renommer le calque',
+ move_up: 'Monter le calque',
+ dupe: 'Dupliquer le calque',
+ merge_down: 'Fusionner vers le bas',
+ merge_all: 'Tout fusionner',
+ move_elems_to: 'Déplacer les éléments vers :',
+ move_selected: 'Déplacer les éléments sélectionnés vers un autre calque'
+ },
+ config: {
+ image_props: "Propriétés de l'image",
+ doc_title: 'Titre',
+ doc_dims: 'Dimensions du canevas',
+ included_images: 'Images insérées',
+ image_opt_embed: 'Incorporer les données des images (fichiers locaux)',
+ image_opt_ref: "Utiliser l'adresse des fichiers",
+ editor_prefs: "Préférences de l'éditeur",
+ icon_size: 'Taille des icônes',
+ language: 'Langue',
+ background: "Toile de fond de l'éditeur",
+ editor_img_url: 'Image URL',
+ editor_bg_note: "Note : La toile de fond ne sera pas sauvegardée avec l'image.",
+ icon_large: 'Grande',
+ icon_medium: 'Moyenne',
+ icon_small: 'Petite',
+ icon_xlarge: 'Super grande',
+ select_predefined: 'Sélectionner prédéfinis :',
+ units_and_rulers: 'Unités et règles',
+ show_rulers: 'Afficher les règles',
+ base_unit: 'Unité de mesure :',
+ grid: 'Grille',
+ snapping_onoff: 'Ancrer oui/non',
+ snapping_stepsize: "Pas d'ancrage :",
+ grid_color: 'Couleur de la grille'
+ },
+ notification: {
+ invalidAttrValGiven: 'Valeur fournie invalide',
+ noContentToFitTo: "Il n'y a pas de contenu auquel ajuster",
+ dupeLayerName: 'Un autre calque porte déjà ce nom !',
+ enterUniqueLayerName: 'Veuillez entrer un nom (unique) pour le calque',
+ enterNewLayerName: 'Veuillez entrer le nouveau nom du calque',
+ layerHasThatName: 'Le calque porte déjà ce nom',
+ QmoveElemsToLayer: 'Déplacer les éléments sélectionnés vers le calque « %s » ?',
+ QwantToClear: "Voulez-vous effacer le dessin ?\nL'historique de vos actions sera également effacé !",
+ QwantToOpen: "Voulez-vous ouvrir un nouveau document ?\nVous perdrez l'historique de vos modifications !",
+ QerrorsRevertToSource: 'Il y a des erreurs de syntaxe dans votre code source SVG.\nRestaurer le code source SVG antérieur aux modifications ?',
+ QignoreSourceChanges: 'Ignorer les modifications faites à la source SVG ?',
+ featNotSupported: 'Fonction non supportée',
+ enterNewImgURL: "Entrer la nouvelle URL de l'image",
+ defsFailOnSave: "NOTE : En raison d'un bogue dans votre navigateur, il se peut que cette image ne soit pas correctement affichée (dégradés ou éléments manquants). Le souci sera néanmoins réglé à la sauvegarde.",
+ loadingImage: "Chargement de l'image, veuillez patienter…",
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Notez également les problèmes suivants : ',
+ unsavedChanges: 'Il y a des changements non sauvegardés.',
+ enterNewLinkURL: "Entrez la nouvelle URL de l'hyperlien",
+ errorLoadingSVG: 'Erreur : Impossible de charger les données SVG',
+ URLLoadFail: "Impossible de charger l'URL",
+ retrieving: 'Récupération de « %s »…',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_fr$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_fr
+});
+
+var lang_fy = {
+ lang: 'fy',
+ dir: 'ltr',
+ common: {
+ ok: 'Ok',
+ cancel: 'Ôfbrekke',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'omleech',
+ key_up: 'omheech',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klik om de folkleur te feroarjen, shift-klik om de linekleur te feroarjen.',
+ zoom_level: 'Yn-/útzoome',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Folkleur oanpasse',
+ stroke_color: 'Linekleur oanpasse',
+ stroke_style: 'Linestijl oanpasse',
+ stroke_width: 'Linebreedte oanpasse',
+ pos_x: 'X-koördinaat oanpasse',
+ pos_y: 'Y-koördinaat oanpasse',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Draaie',
+ blur: 'Change gaussian blur value',
+ opacity: 'Trochsichtigens oanpasse',
+ circle_cx: "Feroarje it X-koördinaat fan it middelpunt fan'e sirkel.",
+ circle_cy: "Feroarje it Y-koördinaat fan it middelpunt fan'e sirkel.",
+ circle_r: 'Feroarje sirkelradius',
+ ellipse_cx: "Feroarje it X-koördinaat fan it middelpunt fan'e ellips.",
+ ellipse_cy: "Feroarje it Y-koördinaat fan it middelpunt fan'e ellips.",
+ ellipse_rx: 'Feroarje ellips X radius',
+ ellipse_ry: 'Feroarje ellips Y radius',
+ line_x1: "Feroarje start X koördinaat fan'e line",
+ line_x2: "Feroarje ein X koördinaat fan'e line",
+ line_y1: "Feroarje start Y koördinaat fan'e line",
+ line_y2: "Feroarje ein Y koördinaat fan'e line",
+ rect_height: 'Hichte rjochthoeke oanpasse',
+ rect_width: 'Breedte rjochthoeke oanpasse',
+ corner_radius: 'Hoekeradius oanpasse',
+ image_width: 'Breedte ôfbielding oanpasse',
+ image_height: 'Hichte ôfbielding oanpasse',
+ image_url: 'URL oanpasse',
+ node_x: 'X-koördinaat knooppunt oanpasse',
+ node_y: 'Y-koördinaat knooppunt oanpasse',
+ seg_type: 'Segmenttype oanpasse',
+ straight_segments: 'Rjocht',
+ curve_segments: 'Bûcht',
+ text_contents: 'Tekst oanpasse',
+ font_family: 'Lettertype oanpasse',
+ font_size: 'Lettergrutte oanpasse',
+ bold: 'Fet',
+ italic: 'Skean'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Eftergrûnkleur/trochsichtigens oanpasse',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Passe op ynhâld',
+ fit_to_all: 'Op alle ynhâld passe',
+ fit_to_canvas: 'Op kanvas passe',
+ fit_to_layer_content: 'Op laachynhâld passe',
+ fit_to_sel: 'Op seleksje passe',
+ align_relative_to: 'Útlijne relatyf oan...',
+ relativeTo: 'Relatief tsjinoer:',
+ page: 'Side',
+ largest_object: 'Grutste ûnderdiel',
+ selected_objects: 'Selektearre ûnderdielen',
+ smallest_object: 'Lytste ûnderdiel',
+ new_doc: 'Nije ôfbielding',
+ open_doc: 'Ôfbielding iepenje',
+ export_img: 'Export',
+ save_doc: 'Ôfbielding bewarje',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Ûnder útlijne',
+ align_center: 'Midden útlijne',
+ align_left: 'Lofts útlijne',
+ align_middle: 'Midden útlijne',
+ align_right: 'Rjochts útlijne',
+ align_top: 'Boppe útlijne',
+ mode_select: 'Selektearje',
+ mode_fhpath: 'Potlead',
+ mode_line: 'Line',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Frije rjochthoeke',
+ mode_ellipse: 'Ellips',
+ mode_circle: 'Sirkel',
+ mode_fhellipse: 'Frije ellips',
+ mode_path: 'Paad',
+ mode_text: 'Tekst',
+ mode_image: 'Ôfbielding',
+ mode_zoom: 'Zoom',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Ungedien meitjse',
+ redo: "Op 'e nij",
+ tool_source: 'Boarne oanpasse',
+ wireframe_mode: 'Triemodel',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Ûnderdielen groepearje',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Omsette nei paad',
+ reorient_path: 'Paad opnij orientearje',
+ ungroup: 'Groepering opheffe',
+ docprops: 'Dokuminteigenskippen',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Nei eftergrûn',
+ move_top: 'Nei foargrûn',
+ node_clone: 'Knooppunt duplisearje',
+ node_delete: 'Knooppunt fuortsmite',
+ node_link: 'Knooppunten keppelje',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Feroarings tapasse',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Laach',
+ layers: 'Layers',
+ del: 'Laach fuortsmite',
+ move_down: 'Laach omleech bringe',
+ "new": 'Nije laach',
+ rename: 'Laach omneame',
+ move_up: 'Laach omheech bringe',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Ûnderdielen ferplaate nei:',
+ move_selected: 'Selektearre ûnderdielen ferplaatse nei in oare laach'
+ },
+ config: {
+ image_props: 'Ôfbieldingseigenskippen',
+ doc_title: 'Titel',
+ doc_dims: 'Kanvasgrutte',
+ included_images: 'Ynslúten ôfbieldingen',
+ image_opt_embed: 'Ynformaasje tafoege (lokale triemen)',
+ image_opt_ref: 'Triemreferensje brûke',
+ editor_prefs: 'Eigenskippen bewurker',
+ icon_size: 'Ikoangrutte',
+ language: 'Taal',
+ background: 'Eftergrûn bewurker',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Let op: de eftergrûn wurd net mei de ôfbielding bewarre.',
+ icon_large: 'Grut',
+ icon_medium: 'Middel',
+ icon_small: 'Lyts',
+ icon_xlarge: 'Ekstra grut',
+ select_predefined: 'Selektearje:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Ferkearde waarde jûn',
+ noContentToFitTo: 'Gjin ynhâld om te passen',
+ dupeLayerName: 'Der is al in laach mei dy namme!',
+ enterUniqueLayerName: 'Type in unyke laachnamme',
+ enterNewLayerName: 'Type in nije laachnamme',
+ layerHasThatName: 'Laach hat dy namme al',
+ QmoveElemsToLayer: "Selektearre ûnderdielen ferplaatse nei '%s'?",
+ QwantToClear: 'Ôfbielding leechmeitsje? Dit sil ek de skiednis fuortsmite!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'Der wiene flaters yn de SVG-boarne.\nWeromgean nei foarige SVG-boarne?',
+ QignoreSourceChanges: 'Feroarings yn SVG-boarne negeare?',
+ featNotSupported: 'Funksje wurdt net ûndersteund',
+ enterNewImgURL: 'Jou de nije URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\'...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_fy$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_fy
+});
+
+var lang_ga = {
+ lang: 'ga',
+ dir: 'ltr',
+ common: {
+ ok: 'Sábháil',
+ cancel: 'Cealaigh',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Cliceáil chun athrú a líonadh dath, aistriú-cliceáil chun dath a athrú stróc',
+ zoom_level: 'Athraigh súmáil leibhéal',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Athraigh an dath a líonadh',
+ stroke_color: 'Dath stróc Athrú',
+ stroke_style: 'Athraigh an stíl Fleasc stróc',
+ stroke_width: 'Leithead stróc Athrú',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Uillinn rothlaithe Athrú',
+ blur: 'Change gaussian blur value',
+ opacity: 'Athraigh roghnaithe teimhneacht mír',
+ circle_cx: 'Athraigh an ciorcal a chomhordú CX',
+ circle_cy: 'Athraigh an ciorcal a chomhordú ga',
+ circle_r: 'Athraigh an ciorcal's ga',
+ ellipse_cx: 'Athraigh Éilips's CX a chomhordú',
+ ellipse_cy: 'Athraigh an Éilips a chomhordú ga',
+ ellipse_rx: 'Éilips Athraigh an gha x',
+ ellipse_ry: 'Éilips Athraigh an gha y',
+ line_x1: 'Athraigh an líne tosaigh a chomhordú x',
+ line_x2: 'Athraigh an líne deireadh x chomhordú',
+ line_y1: 'Athraigh an líne tosaigh a chomhordú y',
+ line_y2: 'Athrú ar líne deireadh y chomhordú',
+ rect_height: 'Airde dronuilleog Athrú',
+ rect_width: 'Leithead dronuilleog Athrú',
+ corner_radius: 'Athraigh Dronuilleog Cúinne na Ga',
+ image_width: 'Leithead íomhá Athrú',
+ image_height: 'Airde íomhá Athrú',
+ image_url: 'Athraigh an URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Inneachar Athraigh téacs',
+ font_family: 'Athraigh an Cló Teaghlaigh',
+ font_size: 'Athraigh Clómhéid',
+ bold: 'Trom Téacs',
+ italic: 'Iodálach Téacs'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Dath cúlra Athraigh / teimhneacht',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Laghdaigh do gach ábhar',
+ fit_to_canvas: 'Laghdaigh ar chanbhás',
+ fit_to_layer_content: 'Laghdaigh shraith ábhar a',
+ fit_to_sel: 'Laghdaigh a roghnú',
+ align_relative_to: 'Ailínigh i gcomparáid leis ...',
+ relativeTo: 'i gcomparáid leis:',
+ page: 'leathanach',
+ largest_object: 'réad is mó',
+ selected_objects: 'réada tofa',
+ smallest_object: 'lú réad',
+ new_doc: 'Íomhá Nua',
+ open_doc: 'Íomhá Oscailte',
+ export_img: 'Export',
+ save_doc: 'Sábháil Íomhá',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Cineál Bun',
+ align_center: 'Ailínigh sa Lár',
+ align_left: 'Ailínigh ar Chlé',
+ align_middle: 'Cineál Middle',
+ align_right: 'Ailínigh ar Dheis',
+ align_top: 'Cineál Barr',
+ mode_select: 'Roghnaigh Uirlis',
+ mode_fhpath: 'Phionsail Uirlis',
+ mode_line: 'Uirlis Líne',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Saor Hand Dronuilleog',
+ mode_ellipse: 'Éilips',
+ mode_circle: 'Ciorcal',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Téacs Uirlis',
+ mode_image: 'Íomhá Uirlis',
+ mode_zoom: 'Zúmáil Uirlis',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Cealaigh',
+ redo: 'Athdhéan',
+ tool_source: 'Cuir Foinse',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Eilimintí Grúpa',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Eilimintí Díghrúpáil',
+ docprops: 'Doiciméad Airíonna',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Téigh go Bun',
+ move_top: 'Téigh go Barr',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Sábháil',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Scrios Sraith',
+ move_down: 'Bog Sraith Síos',
+ "new": 'Sraith Nua',
+ rename: 'Athainmnigh Sraith',
+ move_up: 'Bog Sraith Suas',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Roghnaigh réamhshainithe:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ga$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ga
+});
+
+var lang_gl = {
+ lang: 'gl',
+ dir: 'ltr',
+ common: {
+ ok: 'Gardar',
+ cancel: 'Cancelar',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Preme aquí para cambiar a cor de recheo, Shift-clic para cambiar a cor do curso',
+ zoom_level: 'Cambiar o nivel de zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Cambia-la cor de recheo',
+ stroke_color: 'Cambiar a cor do curso',
+ stroke_style: 'Modifica o estilo do trazo do curso',
+ stroke_width: 'Cambiar o ancho do curso',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Cambiar o ángulo de xiro',
+ blur: 'Change gaussian blur value',
+ opacity: 'Cambia a opacidade elemento seleccionado',
+ circle_cx: 'Cx Cambiar círculo de coordenadas',
+ circle_cy: 'Círculo Cambio cy coordinar',
+ circle_r: 'Cambiar círculo de raio',
+ ellipse_cx: 'Cambiar elipse cx coordinar',
+ ellipse_cy: 'Elipse Cambio cy coordinar',
+ ellipse_rx: 'Raios X Change elipse',
+ ellipse_ry: 'Radio y Change elipse',
+ line_x1: 'Cambie a liña de partida coordenada x',
+ line_x2: 'Cambie a liña acaba coordenada x',
+ line_y1: 'Cambio na liña do recurso coordinada y',
+ line_y2: 'Salto de liña acaba coordinada y',
+ rect_height: 'Cambiar altura do rectángulo',
+ rect_width: 'Cambiar a largo rectángulo',
+ corner_radius: 'Cambiar Corner Rectangle Radius',
+ image_width: 'Cambiar o ancho da imaxe',
+ image_height: 'Cambiar altura da imaxe',
+ image_url: 'Cambiar URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Cambiar o contido de texto',
+ font_family: 'Cambiar fonte Familia',
+ font_size: 'Mudar tamaño de letra',
+ bold: 'Bold Text',
+ italic: 'Texto en cursiva'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Mudar a cor de fondo / Opacidade',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Axustar ó contido',
+ fit_to_all: 'Axustar a todo o contido',
+ fit_to_canvas: 'Axustar a pantalla',
+ fit_to_layer_content: 'Axustar o contido da capa de',
+ fit_to_sel: 'Axustar a selección',
+ align_relative_to: 'Aliñar en relación a ...',
+ relativeTo: 'en relación ao:',
+ page: 'Portada',
+ largest_object: 'maior obxecto',
+ selected_objects: 'obxectos elixidos',
+ smallest_object: 'menor obxecto',
+ new_doc: 'Nova Imaxe',
+ open_doc: 'Abrir Imaxe',
+ export_img: 'Export',
+ save_doc: 'Gardar Imaxe',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align bottom',
+ align_center: 'Centrar',
+ align_left: 'Aliñar á Esquerda',
+ align_middle: 'Aliñar Medio',
+ align_right: 'Aliñar á Dereita',
+ align_top: 'Align Top',
+ mode_select: 'Seleccionar a ferramenta',
+ mode_fhpath: 'Ferramenta Lapis',
+ mode_line: 'Ferramenta Liña',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Elipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Ferramenta de Texto',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Desfacer',
+ redo: 'Volver',
+ tool_source: 'Fonte Editar',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elementos do grupo',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Elementos Desagrupadas',
+ docprops: 'Propriedades do Documento',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move a Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Gardar',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move capa inferior',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Seleccione por defecto:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_gl$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_gl
+});
+
+var lang_he = {
+ lang: 'he',
+ dir: 'rtl',
+ common: {
+ ok: 'לשמור',
+ cancel: 'ביטול',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'לחץ כדי לשנות צבע מילוי, לחץ על Shift-לשנות צבע שבץ',
+ zoom_level: 'שינוי גודל תצוגה',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'שינוי צבע מילוי',
+ stroke_color: 'שינוי צבע שבץ',
+ stroke_style: 'דש שבץ שינוי סגנון',
+ stroke_width: 'שינוי רוחב שבץ',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'שינוי זווית הסיבוב',
+ blur: 'Change gaussian blur value',
+ opacity: 'שינוי הפריט הנבחר אטימות',
+ circle_cx: 'CX מעגל של שנה לתאם',
+ circle_cy: 'מעגל שנה של cy לתאם',
+ circle_r: 'מעגל שנה של רדיוס',
+ ellipse_cx: 'שינוי של אליפסה CX לתאם',
+ ellipse_cy: 'אליפסה שינוי של cy לתאם',
+ ellipse_rx: 'אליפסה שינוי של רדיוס x',
+ ellipse_ry: 'אליפסה שינוי של Y רדיוס',
+ line_x1: 'שינוי קו ההתחלה של x לתאם',
+ line_x2: 'שינוי קו הסיום של x לתאם',
+ line_y1: 'שינוי קו ההתחלה של Y לתאם',
+ line_y2: 'שינוי קו הסיום של Y לתאם',
+ rect_height: 'שינוי גובה המלבן',
+ rect_width: 'שינוי רוחב המלבן',
+ corner_radius: 'לשנות מלבן פינת רדיוס',
+ image_width: 'שינוי רוחב התמונה',
+ image_height: 'שינוי גובה התמונה',
+ image_url: 'שינוי כתובת',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'שינוי תוכן טקסט',
+ font_family: 'שינוי גופן משפחה',
+ font_size: 'שנה גודל גופן',
+ bold: 'טקסט מודגש',
+ italic: 'טקסט נטוי'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'שנה את צבע הרקע / אטימות',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'התאם תוכן',
+ fit_to_all: 'התאם התכנים',
+ fit_to_canvas: 'התאם בד',
+ fit_to_layer_content: 'מתאים לתוכן שכבת',
+ fit_to_sel: 'התאם הבחירה',
+ align_relative_to: 'יישור ביחס ...',
+ relativeTo: 'יחסית:',
+ page: 'דף',
+ largest_object: 'האובייקט הגדול',
+ selected_objects: 'elected objects',
+ smallest_object: 'הקטן אובייקט',
+ new_doc: 'תמונה חדשה',
+ open_doc: 'פתח תמונה',
+ export_img: 'Export',
+ save_doc: 'שמור תמונה',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'יישור תחתון',
+ align_center: 'ישור לאמצע',
+ align_left: 'יישור לשמאל',
+ align_middle: 'יישור התיכון',
+ align_right: 'יישור לימין',
+ align_top: 'יישור למעלה',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'כלי העיפרון',
+ mode_line: 'כלי הקו',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand מלבן',
+ mode_ellipse: 'אליפסה',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand אליפסה',
+ mode_path: 'Path Tool',
+ mode_text: 'כלי טקסט',
+ mode_image: 'כלי תמונה',
+ mode_zoom: 'זום כלי',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'בטל',
+ redo: 'בצע שוב',
+ tool_source: 'מקור ערוך',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'אלמנטים הקבוצה',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'אלמנטים פרק קבוצה',
+ docprops: 'מאפייני מסמך',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'הזז למטה',
+ move_top: 'עבור לראש הדף',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'לשמור',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'מחיקת שכבה',
+ move_down: 'הזז למטה שכבה',
+ "new": 'שכבהחדשה',
+ rename: 'שינוי שם שכבה',
+ move_up: 'העבר שכבה Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'בחר מוגדרים מראש:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_he$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_he
+});
+
+var lang_hi = {
+ lang: 'hi',
+ dir: 'ltr',
+ common: {
+ ok: 'बचाना',
+ cancel: 'रद्द करें',
+ key_backspace: 'बैकस्पेस',
+ key_del: 'हटायें',
+ key_down: 'नीचे',
+ key_up: 'ऊपर',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'रंग बदलने पर क्लिक करें, बदलाव भरने के क्लिक करने के लिए स्ट्रोक का रंग बदलने के लिए',
+ zoom_level: 'बदलें स्तर ज़ूम',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'बदलें का रंग भरना',
+ stroke_color: 'बदलें स्ट्रोक रंग',
+ stroke_style: 'बदलें स्ट्रोक डेश शैली',
+ stroke_width: 'बदलें स्ट्रोक चौड़ाई',
+ pos_x: 'X समकक्ष बदलें ',
+ pos_y: 'Y समकक्ष बदलें',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'बदलें रोटेशन कोण',
+ blur: 'Change gaussian blur value',
+ opacity: 'पारदर्शिता बदलें',
+ circle_cx: 'बदल रहा है चक्र cx समन्वय',
+ circle_cy: 'परिवर्तन चक्र cy समन्वय है',
+ circle_r: 'बदल रहा है चक्र त्रिज्या',
+ ellipse_cx: 'बदलें दीर्घवृत्त है cx समन्वय',
+ ellipse_cy: 'बदलें दीर्घवृत्त cy समन्वय है',
+ ellipse_rx: 'बदल रहा है दीर्घवृत्त x त्रिज्या',
+ ellipse_ry: 'बदल रहा है दीर्घवृत्त y त्रिज्या',
+ line_x1: 'बदल रहा है लाइन x समन्वय शुरू',
+ line_x2: 'बदल रहा है लाइन x समन्वय समाप्त',
+ line_y1: 'बदलें रेखा y शुरू हो रहा है समन्वय',
+ line_y2: 'बदलें रेखा y अंत है समन्वय',
+ rect_height: 'बदलें आयत ऊंचाई',
+ rect_width: 'बदलें आयत चौड़ाई',
+ corner_radius: 'बदलें आयत कॉर्नर त्रिज्या',
+ image_width: 'बदलें छवि चौड़ाई',
+ image_height: 'बदलें छवि ऊँचाई',
+ image_url: 'बदलें यूआरएल',
+ node_x: 'नोड का x समकक्ष बदलें',
+ node_y: 'नोड का y समकक्ष बदलें',
+ seg_type: 'वर्ग प्रकार बदलें',
+ straight_segments: 'सीधे वर्ग',
+ curve_segments: 'घुमाव',
+ text_contents: 'बदलें पाठ सामग्री',
+ font_family: 'बदलें फ़ॉन्ट परिवार',
+ font_size: 'फ़ॉन्ट का आकार बदलें',
+ bold: 'मोटा पाठ',
+ italic: 'इटैलिक पाठ'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'पृष्ठभूमि का रंग बदल / अस्पष्टता',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'सामग्री के लिए फिट',
+ fit_to_all: 'सभी सामग्री के लिए फिट',
+ fit_to_canvas: 'फिट कैनवास को',
+ fit_to_layer_content: 'फिट परत सामग्री के लिए',
+ fit_to_sel: 'चयन के लिए फिट',
+ align_relative_to: 'संरेखित करें रिश्तेदार को ...',
+ relativeTo: 'रिश्तेदार को:',
+ page: 'पृष्ठ',
+ largest_object: 'सबसे बड़ी वस्तु',
+ selected_objects: 'निर्वाचित वस्तुओं',
+ smallest_object: 'छोटी से छोटी वस्तु',
+ new_doc: 'नई छवि',
+ open_doc: 'छवि खोलें',
+ export_img: 'Export',
+ save_doc: 'सहेजें छवि',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'तलमेंपंक्तिबद्धकरें',
+ align_center: 'मध्य में समंजित करें',
+ align_left: ' पंक्तिबद्ध करें',
+ align_middle: 'मध्य संरेखित करें',
+ align_right: 'दायाँपंक्तिबद्धकरें',
+ align_top: 'शीर्षमेंपंक्तिबद्धकरें',
+ mode_select: 'उपकरण चुनें',
+ mode_fhpath: 'पेंसिल उपकरण',
+ mode_line: 'लाइन उपकरण',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'नि: शुल्क हाथ आयत',
+ mode_ellipse: 'दीर्घवृत्त',
+ mode_circle: 'वृत्त',
+ mode_fhellipse: 'नि: शुल्क हाथ दीर्घवृत्त',
+ mode_path: 'Path Tool',
+ mode_text: 'पाठ उपकरण',
+ mode_image: 'छवि उपकरण',
+ mode_zoom: 'ज़ूम उपकरण',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'पूर्ववत करें',
+ redo: 'फिर से करें',
+ tool_source: 'स्रोत में बदलाव करें',
+ wireframe_mode: 'रूपरेखा मोड',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'समूह तत्वों',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'पथ में बदलें',
+ reorient_path: 'पथ को नई दिशा दें',
+ ungroup: 'अंश को समूह से अलग करें',
+ docprops: 'दस्तावेज़ गुण',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'नीचे ले जाएँ',
+ move_top: 'ऊपर ले जाएँ',
+ node_clone: 'नोड क्लोन',
+ node_delete: 'नोड हटायें',
+ node_link: 'कड़ी नियंत्रण बिंदु',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'बचाना',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'परत',
+ layers: 'Layers',
+ del: 'परत हटाएँ',
+ move_down: 'परत नीचे ले जाएँ',
+ "new": 'नई परत',
+ rename: 'परत का नाम बदलें',
+ move_up: 'परत ऊपर ले जाएँ',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'अंश को ले जाएँ:',
+ move_selected: 'चयनित अंश को दूसरी परत पर ले जाएँ'
+ },
+ config: {
+ image_props: 'छवि के गुण',
+ doc_title: 'शीर्षक',
+ doc_dims: 'कैनवास आयाम',
+ included_images: 'शामिल छवियाँ',
+ image_opt_embed: 'एम्बेड डेटा (स्थानीय फ़ाइलें)',
+ image_opt_ref: 'फाइल के संदर्भ का प्रयोग',
+ editor_prefs: 'संपादक वरीयताएँ',
+ icon_size: 'चिह्न का आकार',
+ language: 'भाषा',
+ background: 'संपादक पृष्ठभूमि',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'नोट: पृष्ठभूमि छवि के साथ नहीं बचायी जाएगी',
+ icon_large: 'बड़ा',
+ icon_medium: 'मध्यम',
+ icon_small: 'छोटा',
+ icon_xlarge: 'बहुत बड़ा',
+ select_predefined: 'चुनें पूर्वनिर्धारित:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'अमान्य मूल्य',
+ noContentToFitTo: 'कोई सामग्री फिट करने के लिए उपलब्ध नहीं',
+ dupeLayerName: 'इस नाम कि परत पहले से मौजूद है !',
+ enterUniqueLayerName: 'कृपया परत का एक अद्वितीय नाम डालें',
+ enterNewLayerName: 'कृपया परत का एक नया नाम डालें',
+ layerHasThatName: 'परत का पहले से ही यही नाम है',
+ QmoveElemsToLayer: "चयनित अंश को परत '%s' पर ले जाएँ ?",
+ QwantToClear: 'क्या आप छवि साफ़ करना चाहते हैं?\nयह आपके उन्डू इतिहास को भी मिटा देगा!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'आपके एस.वी.जी. स्रोत में त्रुटियों थी.\nक्या आप मूल एस.वी.जी स्रोत पर वापिस जाना चाहते हैं?',
+ QignoreSourceChanges: 'एसवीजी स्रोत से लाये बदलावों को ध्यान न दें?',
+ featNotSupported: 'सुविधा असमर्थित है',
+ enterNewImgURL: 'नई छवि URL दर्ज करें',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_hi$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_hi
+});
+
+var lang_hr = {
+ lang: 'hr',
+ dir: 'ltr',
+ common: {
+ ok: 'Spremiti',
+ cancel: 'Odustani',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Kliknite promijeniti boju ispune, shift-click to promijeniti boju moždanog udara',
+ zoom_level: 'Promjena razine zumiranja',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Promjena boje ispune',
+ stroke_color: 'Promjena boje moždani udar',
+ stroke_style: 'Promijeni stroke crtica stil',
+ stroke_width: 'Promjena širine moždani udar',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Promijeni rotation angle',
+ blur: 'Change gaussian blur value',
+ opacity: 'Promjena odabrane stavke neprozirnost',
+ circle_cx: 'Promjena krug's CX koordinirati',
+ circle_cy: 'Cy Promijeni krug je koordinirati',
+ circle_r: 'Promjena krug je radijusa',
+ ellipse_cx: 'Promjena elipsa's CX koordinirati',
+ ellipse_cy: 'Cy Promijeni elipsa je koordinirati',
+ ellipse_rx: 'Promijeniti elipsa's x polumjer',
+ ellipse_ry: 'Promjena elipsa's y polumjer',
+ line_x1: 'Promijeni linija je početak x koordinatu',
+ line_x2: 'Promjena linije završetak x koordinatu',
+ line_y1: 'Promijeni linija je početak y koordinatu',
+ line_y2: 'Promjena linije završetak y koordinatu',
+ rect_height: 'Promijeni pravokutnik visine',
+ rect_width: 'Promijeni pravokutnik širine',
+ corner_radius: 'Promijeni Pravokutnik Corner Radius',
+ image_width: 'Promijeni sliku širine',
+ image_height: 'Promijeni sliku visina',
+ image_url: 'Promijeni URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Promjena sadržaja teksta',
+ font_family: 'Promjena fontova',
+ font_size: 'Change font size',
+ bold: 'Podebljani tekst',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Promijeni boju pozadine / neprozirnost',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Prilagodi na sve sadržaje',
+ fit_to_canvas: 'Prilagodi na platnu',
+ fit_to_layer_content: 'Prilagodi sloj sadržaj',
+ fit_to_sel: 'Prilagodi odabir',
+ align_relative_to: 'Poravnaj u odnosu na ...',
+ relativeTo: 'u odnosu na:',
+ page: 'stranica',
+ largest_object: 'najveći objekt',
+ selected_objects: 'izabrani objekti',
+ smallest_object: 'najmanji objekt',
+ new_doc: 'Nove slike',
+ open_doc: 'Otvori sliku',
+ export_img: 'Export',
+ save_doc: 'Spremanje slike',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Poravnaj dolje',
+ align_center: 'Centriraj',
+ align_left: 'Poravnaj lijevo',
+ align_middle: 'Poravnaj Srednji',
+ align_right: 'Poravnaj desno',
+ align_top: 'Poravnaj Top',
+ mode_select: 'Odaberite alat',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Pravokutnik',
+ mode_ellipse: 'Elipsa',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Tekst Alat',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Alat za zumiranje',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Poništi',
+ redo: 'Redo',
+ tool_source: 'Uredi Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Grupa Elementi',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Razgrupiranje Elementi',
+ docprops: 'Svojstva dokumenta',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Pomakni na vrh',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Spremiti',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Brisanje sloja',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Preimenuj Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefinirane:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_hr$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_hr
+});
+
+var lang_hu = {
+ lang: 'hu',
+ dir: 'ltr',
+ common: {
+ ok: 'Ment',
+ cancel: 'Szakítani',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Kattints ide a változások töltse szín, shift-click változtatni stroke color',
+ zoom_level: 'Change nagyítási',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change töltse color',
+ stroke_color: 'Change stroke color',
+ stroke_style: 'Change stroke kötőjel style',
+ stroke_width: 'Change stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Váltás forgás szög',
+ blur: 'Change gaussian blur value',
+ opacity: 'A kijelölt elem opacity',
+ circle_cx: 'Change kör CX koordináta',
+ circle_cy: 'Change kör cy koordináta',
+ circle_r: 'Change kör sugara',
+ ellipse_cx: 'Change ellipszis's CX koordináta',
+ ellipse_cy: 'Change ellipszis's cy koordináta',
+ ellipse_rx: 'Change ellipszis's x sugarú',
+ ellipse_ry: 'Change ellipszis's y sugara',
+ line_x1: 'A sor kezd x koordináta',
+ line_x2: 'A sor vége az x koordináta',
+ line_y1: 'A sor kezd y koordináta',
+ line_y2: 'A sor vége az y koordináta',
+ rect_height: 'Change téglalap magassága',
+ rect_width: 'Change téglalap szélessége',
+ corner_radius: 'Change téglalap sarok sugara',
+ image_width: 'Change kép szélessége',
+ image_height: 'Kép módosítása height',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'A szöveg tartalma',
+ font_family: 'Change Betűcsalád',
+ font_size: 'Change font size',
+ bold: 'Félkövér szöveg',
+ italic: 'Dőlt szöveg'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color / homályosság',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Illeszkednek az összes tartalom',
+ fit_to_canvas: 'Igazítás a vászonra',
+ fit_to_layer_content: 'Igazítás a réteg tartalma',
+ fit_to_sel: 'Igazítás a kiválasztási',
+ align_relative_to: 'Képest Igazítás ...',
+ relativeTo: 'relatív hogy:',
+ page: 'Page',
+ largest_object: 'legnagyobb objektum',
+ selected_objects: 'választott tárgyak',
+ smallest_object: 'legkisebb objektum',
+ new_doc: 'Új kép',
+ open_doc: 'Kép megnyitása',
+ export_img: 'Export',
+ save_doc: 'Kép mentése más',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Alulra igazítás',
+ align_center: 'Középre igazítás',
+ align_left: 'Balra igazítás',
+ align_middle: 'Közép-align',
+ align_right: 'Jobbra igazítás',
+ align_top: 'Align Top',
+ mode_select: 'Válassza ki az eszközt',
+ mode_fhpath: 'Ceruza eszköz',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand téglalap',
+ mode_ellipse: 'Ellipszisszelet',
+ mode_circle: 'Körbe',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Szöveg eszköz',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Visszavon',
+ redo: 'Megismétléséhez',
+ tool_source: 'Szerkesztés Forrás',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Csoport elemei',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Szétbont elemei',
+ docprops: 'Dokumentum tulajdonságai',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Mozgatás lefelé',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Ment',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Réteg törlése',
+ move_down: 'Mozgatása lefelé',
+ "new": 'Új réteg',
+ rename: 'Réteg átnevezése',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Válassza ki előre definiált:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_hu$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_hu
+});
+
+var lang_hy = {
+ lang: 'hy',
+ dir: 'ltr',
+ common: {
+ ok: 'Save',
+ cancel: 'Cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click to change fill color, shift-click to change stroke color',
+ zoom_level: 'Change zoom level',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change fill color',
+ stroke_color: 'Change stroke color',
+ stroke_style: 'Change stroke dash style',
+ stroke_width: 'Change stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change rotation angle',
+ blur: 'Change gaussian blur value',
+ opacity: 'Change selected item opacity',
+ circle_cx: "Change circle's cx coordinate",
+ circle_cy: "Change circle's cy coordinate",
+ circle_r: "Change circle's radius",
+ ellipse_cx: "Change ellipse's cx coordinate",
+ ellipse_cy: "Change ellipse's cy coordinate",
+ ellipse_rx: "Change ellipse's x radius",
+ ellipse_ry: "Change ellipse's y radius",
+ line_x1: "Change line's starting x coordinate",
+ line_x2: "Change line's ending x coordinate",
+ line_y1: "Change line's starting y coordinate",
+ line_y2: "Change line's ending y coordinate",
+ rect_height: 'Change rectangle height',
+ rect_width: 'Change rectangle width',
+ corner_radius: 'Change Rectangle Corner Radius',
+ image_width: 'Change image width',
+ image_height: 'Change image height',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Change text contents',
+ font_family: 'Change Font Family',
+ font_size: 'Change Font Size',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color/opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit to all content',
+ fit_to_canvas: 'Fit to canvas',
+ fit_to_layer_content: 'Fit to layer content',
+ fit_to_sel: 'Fit to selection',
+ align_relative_to: 'Align relative to ...',
+ relativeTo: 'relative to:',
+ page: 'page',
+ largest_object: 'largest object',
+ selected_objects: 'elected objects',
+ smallest_object: 'smallest object',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Align Middle',
+ align_right: 'Align Right',
+ align_top: 'Align Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Save',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_hy$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_hy
+});
+
+var lang_id = {
+ lang: 'id',
+ dir: 'ltr',
+ common: {
+ ok: 'Simpan',
+ cancel: 'Batal',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klik untuk mengubah warna mengisi, shift-klik untuk mengubah warna stroke',
+ zoom_level: 'Mengubah tingkat pembesaran',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Ubah warna mengisi',
+ stroke_color: 'Ubah warna stroke',
+ stroke_style: 'Ubah gaya dash stroke',
+ stroke_width: 'Ubah stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Ubah sudut rotasi',
+ blur: 'Change gaussian blur value',
+ opacity: 'Mengubah item yang dipilih keburaman',
+ circle_cx: 'Mengubah koordinat lingkaran cx',
+ circle_cy: 'Mengubah koordinat cy lingkaran',
+ circle_r: 'Ubah jari-jari lingkaran',
+ ellipse_cx: 'Ubah elips's cx koordinat',
+ ellipse_cy: 'Ubah elips's cy koordinat',
+ ellipse_rx: 'Ubah elips's x jari-jari',
+ ellipse_ry: 'Ubah elips's y jari-jari',
+ line_x1: 'Ubah baris mulai x koordinat',
+ line_x2: 'Ubah baris's Berakhir x koordinat',
+ line_y1: 'Ubah baris mulai y koordinat',
+ line_y2: 'Ubah baris di tiap akhir y koordinat',
+ rect_height: 'Perubahan tinggi persegi panjang',
+ rect_width: 'Ubah persegi panjang lebar',
+ corner_radius: 'Ubah Corner Rectangle Radius',
+ image_width: 'Ubah Lebar gambar',
+ image_height: 'Tinggi gambar Perubahan',
+ image_url: 'Ubah URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Ubah isi teks',
+ font_family: 'Ubah Font Keluarga',
+ font_size: 'Ubah Ukuran Font',
+ bold: 'Bold Teks',
+ italic: 'Italic Teks'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Mengubah warna latar belakang / keburaman',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Cocok untuk semua konten',
+ fit_to_canvas: 'Muat kanvas',
+ fit_to_layer_content: 'Muat konten lapisan',
+ fit_to_sel: 'Fit seleksi',
+ align_relative_to: 'Rata relatif ...',
+ relativeTo: 'relatif:',
+ page: 'Halaman',
+ largest_object: 'objek terbesar',
+ selected_objects: 'objek terpilih',
+ smallest_object: 'objek terkecil',
+ new_doc: 'Gambar Baru',
+ open_doc: 'Membuka Image',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Rata Bottom',
+ align_center: 'Rata Tengah',
+ align_left: 'Rata Kiri',
+ align_middle: 'Rata Tengah',
+ align_right: 'Rata Kanan',
+ align_top: 'Rata Top',
+ mode_select: 'Pilih Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Persegi Panjang',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Lingkaran',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Teks Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Kelompok Elemen',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elemen',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Pindah ke Bawah',
+ move_top: 'Pindahkan ke Atas',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Simpan',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Hapus Layer',
+ move_down: 'Pindahkan Layer Bawah',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Pindahkan Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Pilih standar:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_id$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_id
+});
+
+var lang_is = {
+ lang: 'is',
+ dir: 'ltr',
+ common: {
+ ok: 'Vista',
+ cancel: 'Hætta',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Smelltu hér til að breyta fylla lit, Shift-smelltu til að breyta högg lit',
+ zoom_level: 'Breyta Stækkunarstig',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Breyta fylla color',
+ stroke_color: 'Breyta heilablķđfall color',
+ stroke_style: 'Breyta heilablķđfall þjóta stíl',
+ stroke_width: 'Breyta heilablķđfall width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Breyting snúningur horn',
+ blur: 'Change gaussian blur value',
+ opacity: 'Breyta valin atriði opacity',
+ circle_cx: 'Cx Breyta hring er að samræma',
+ circle_cy: 'Breyta hring's cy samræma',
+ circle_r: 'Radíus Breyta hringsins er',
+ ellipse_cx: 'Breyta sporbaug's cx samræma',
+ ellipse_cy: 'Breyta sporbaug's cy samræma',
+ ellipse_rx: 'X radíus Breyta sporbaug's',
+ ellipse_ry: 'Y radíus Breyta sporbaug's',
+ line_x1: 'Breyta lína í byrjun x samræma',
+ line_x2: 'Breyta lína's Ending x samræma',
+ line_y1: 'Breyta lína í byrjun y samræma',
+ line_y2: 'Breyta lína er endir y samræma',
+ rect_height: 'Breyta rétthyrningur hæð',
+ rect_width: 'Skipta rétthyrningur width',
+ corner_radius: 'Breyta rétthyrningur Corner Radíus',
+ image_width: 'Breyta mynd width',
+ image_height: 'Breyta mynd hæð',
+ image_url: 'Breyta URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Breyta texta innihald',
+ font_family: 'Change Leturfjölskylda',
+ font_size: 'Breyta leturstærð',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Breyta bakgrunnslit / opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Laga til efni',
+ fit_to_canvas: 'Fit á striga',
+ fit_to_layer_content: 'Laga til lag efni',
+ fit_to_sel: 'Fit til val',
+ align_relative_to: 'Jafna miðað við ...',
+ relativeTo: 'hlutfallslegt til:',
+ page: 'síðu',
+ largest_object: 'stærsti hlutinn',
+ selected_objects: 'kjörinn hlutir',
+ smallest_object: 'lítill hluti',
+ new_doc: 'New Image',
+ open_doc: 'Opna mynd',
+ export_img: 'Export',
+ save_doc: 'Spara Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Jafna Bottom',
+ align_center: 'Jafna Center',
+ align_left: 'Vinstri jöfnun',
+ align_middle: 'Jafna Mið',
+ align_right: 'Hægri jöfnun',
+ align_top: 'Jöfnun Top',
+ mode_select: 'Veldu Tól',
+ mode_fhpath: 'Blýantur Tól',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand rétthyrningur',
+ mode_ellipse: 'Sporbaugur',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Sporbaugur',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Mynd Tól',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Hætta',
+ redo: 'Endurtaka',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Færa Bottom',
+ move_top: 'Fara efst á síðu',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Vista',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Eyða Lag',
+ move_down: 'Færa Layer Down',
+ "new": 'Lag',
+ rename: 'Endurnefna Lag',
+ move_up: 'Færa Lag Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Veldu predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_is$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_is
+});
+
+var lang_it = {
+ lang: 'it',
+ dir: 'ltr',
+ common: {
+ ok: 'Salva',
+ cancel: 'Annulla',
+ key_backspace: 'backspace',
+ key_del: 'Canc',
+ key_down: 'giù',
+ key_up: 'su',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Mostra/nascondi strumenti per il tratto',
+ palette_info: 'Fare clic per cambiare il colore di riempimento, shift-click per cambiare colore del tratto',
+ zoom_level: 'Cambia il livello di zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: "Identifica l'elemento",
+ fill_color: 'Cambia il colore di riempimento',
+ stroke_color: 'Cambia il colore del tratto',
+ stroke_style: 'Cambia lo stile del tratto',
+ stroke_width: 'Cambia la larghezza del tratto',
+ pos_x: 'Modifica la coordinata x',
+ pos_y: 'Modifica la coordinata y',
+ linecap_butt: 'Inizio linea: Punto',
+ linecap_round: 'Inizio linea: Tondo',
+ linecap_square: 'Inizio linea: Quadrato',
+ linejoin_bevel: 'Giunzione: smussata',
+ linejoin_miter: 'Giunzione: spezzata',
+ linejoin_round: 'Giunzione: arrotondata',
+ angle: "Cambia l'angolo di rotazione",
+ blur: "Cambia l'intensità della sfocatura",
+ opacity: "Cambia l'opacità dell'oggetto selezionato",
+ circle_cx: 'Cambia la coordinata Cx del cerchio',
+ circle_cy: 'Cambia la coordinata Cy del cerchio',
+ circle_r: 'Cambia il raggio del cerchio',
+ ellipse_cx: "Cambia la coordinata Cx dell'ellisse",
+ ellipse_cy: "Cambia la coordinata Cy dell'ellisse",
+ ellipse_rx: "Cambia l'asse x dell'ellisse",
+ ellipse_ry: "Cambia l'asse y dell'ellisse",
+ line_x1: 'Modifica la coordinata iniziale x della linea',
+ line_x2: 'Modifica la coordinata finale x della linea',
+ line_y1: 'Modifica la coordinata iniziale y della linea',
+ line_y2: 'Modifica la coordinata finale y della linea',
+ rect_height: "Cambia l'altezza rettangolo",
+ rect_width: 'Cambia la larghezza rettangolo',
+ corner_radius: "Cambia il raggio dell'angolo",
+ image_width: "Cambia la larghezza dell'immagine",
+ image_height: "Cambia l'altezza dell'immagine",
+ image_url: 'Cambia URL',
+ node_x: 'Modifica la coordinata x del nodo',
+ node_y: 'Modifica la coordinata y del nodo',
+ seg_type: 'Cambia il tipo di segmento',
+ straight_segments: 'Linea retta',
+ curve_segments: 'Curva',
+ text_contents: 'Cambia il contenuto del testo',
+ font_family: 'Cambia il tipo di Font',
+ font_size: 'Modifica dimensione carattere',
+ bold: 'Grassetto',
+ italic: 'Corsivo'
+ },
+ tools: {
+ main_menu: 'Menù principale',
+ bkgnd_color_opac: 'Cambia colore/opacità dello sfondo',
+ connector_no_arrow: 'No freccia',
+ fitToContent: 'Adatta al contenuto',
+ fit_to_all: 'Adatta a tutti i contenuti',
+ fit_to_canvas: "Adatta all'area di disegno",
+ fit_to_layer_content: 'Adatta al contenuto del livello',
+ fit_to_sel: 'Adatta alla selezione',
+ align_relative_to: 'Allineati a ...',
+ relativeTo: 'Rispetto a:',
+ page: 'Pagina',
+ largest_object: 'Oggetto più grande',
+ selected_objects: 'Oggetti selezionati',
+ smallest_object: 'Oggetto più piccolo',
+ new_doc: 'Nuova immagine',
+ open_doc: 'Apri immagine',
+ export_img: 'Export',
+ save_doc: 'Salva',
+ import_doc: 'Importa SVG',
+ align_to_page: 'Allinea elementi alla pagina',
+ align_bottom: 'Allinea in basso',
+ align_center: 'Allinea al centro',
+ align_left: 'Allinea a sinistra',
+ align_middle: 'Allinea al centro',
+ align_right: 'Allinea a destra',
+ align_top: 'Allinea in alto',
+ mode_select: 'Seleziona',
+ mode_fhpath: 'Matita',
+ mode_line: 'Linea',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Rettangolo a mano libera',
+ mode_ellipse: 'Ellisse',
+ mode_circle: 'Cerchio',
+ mode_fhellipse: 'Ellisse a mano libera',
+ mode_path: 'Spezzata',
+ mode_text: 'Testo',
+ mode_image: 'Immagine',
+ mode_zoom: 'Zoom',
+ no_embed: "NOTA: L'immagine non può essere incorporata: dipenderà dal percorso assoluto per essere vista",
+ undo: 'Annulla',
+ redo: 'Rifai',
+ tool_source: 'Modifica sorgente',
+ wireframe_mode: 'Contorno',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Raggruppa elementi',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Converti in tracciato',
+ reorient_path: 'Riallinea',
+ ungroup: 'Separa gli elementi',
+ docprops: 'Proprietà del documento',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Sposta in fondo',
+ move_top: 'Sposta in cima',
+ node_clone: 'Clona nodo',
+ node_delete: 'Elimina nodo',
+ node_link: 'Collegamento tra punti di controllo',
+ add_subpath: 'Aggiungi sotto-percorso',
+ openclose_path: 'Apri/chiudi spezzata',
+ source_save: 'Salva',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Livello',
+ layers: 'Layers',
+ del: 'Elimina il livello',
+ move_down: 'Sposta indietro il livello',
+ "new": 'Nuovo livello',
+ rename: 'Rinomina il livello',
+ move_up: 'Sposta avanti il livello',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Sposta verso:',
+ move_selected: 'Sposta gli elementi in un diverso livello'
+ },
+ config: {
+ image_props: 'Proprietà Immagine',
+ doc_title: 'Titolo',
+ doc_dims: "Dimensioni dell'area di disegno",
+ included_images: 'Immagini incluse',
+ image_opt_embed: 'Incorpora dati (file locali)',
+ image_opt_ref: "Usa l'identificativo di riferimento",
+ editor_prefs: 'Preferenze',
+ icon_size: 'Dimensione Icona',
+ language: 'Lingua',
+ background: "Sfondo dell'editor",
+ editor_img_url: 'Image URL',
+ editor_bg_note: "Nota: Lo sfondo non verrà salvato con l'immagine.",
+ icon_large: 'Grande',
+ icon_medium: 'Medio',
+ icon_small: 'Piccolo',
+ icon_xlarge: 'Molto grande',
+ select_predefined: 'Selezioni predefinite:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Valore assegnato non valido',
+ noContentToFitTo: "Non c'è contenuto cui adeguarsi",
+ dupeLayerName: "C'è già un livello con questo nome!",
+ enterUniqueLayerName: 'Assegna un diverso nome a ciascun livello, grazie!',
+ enterNewLayerName: 'Assegna un nome al livello',
+ layerHasThatName: 'Un livello ha già questo nome',
+ QmoveElemsToLayer: "Sposta gli elementi selezionali al livello '%s'?",
+ QwantToClear: 'Vuoi cancellare il disegno?\nVerrà eliminato anche lo storico delle modifiche!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'Ci sono errori nel codice sorgente SVG.\nRitorno al codice originale?',
+ QignoreSourceChanges: 'Ignoro i cambiamenti nel sorgente SVG?',
+ featNotSupported: 'Caratteristica non supportata',
+ enterNewImgURL: "Scrivi un nuovo URL per l'immagine",
+ defsFailOnSave: "NOTA: A causa dlle caratteristiche del tuo browser, l'immagine potrà apparire errata (senza elementi o gradazioni) finché non sarà salvata.",
+ loadingImage: "Sto caricando l'immagine. attendere prego...",
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Nota le seguenti particolarità: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_it$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_it
+});
+
+var lang_ja = {
+ lang: 'ja',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'キャンセル',
+ key_backspace: 'backspace',
+ key_del: '削除',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'クリックで塗りの色を選択、Shift+クリックで線の色を選択',
+ zoom_level: 'ズーム倍率の変更',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: '塗りの色を変更',
+ stroke_color: '線の色を変更',
+ stroke_style: '線種の変更',
+ stroke_width: '線幅の変更',
+ pos_x: 'X座標を変更',
+ pos_y: 'Y座標を変更',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: '回転角の変更',
+ blur: 'Change gaussian blur value',
+ opacity: '不透明度',
+ circle_cx: '円の中心を変更(X座標)',
+ circle_cy: '円の中心を変更(Y座標)',
+ circle_r: '変更円の半径',
+ ellipse_cx: '楕円の中心を変更(X座標)',
+ ellipse_cy: '楕円の中心を変更(Y座標)',
+ ellipse_rx: '楕円の半径を変更(X座標)',
+ ellipse_ry: '楕円の半径を変更(Y座標)',
+ line_x1: '開始X座標',
+ line_x2: '終了X座標',
+ line_y1: '開始Y座標',
+ line_y2: '終了Y座標',
+ rect_height: '長方形の高さを変更',
+ rect_width: '長方形の幅を変更',
+ corner_radius: '長方形の角の半径を変更',
+ image_width: '画像の幅を変更',
+ image_height: '画像の高さを変更',
+ image_url: 'URLを変更',
+ node_x: 'ノードのX座標を変更',
+ node_y: 'ノードのY座標を変更',
+ seg_type: '線分の種類を変更',
+ straight_segments: '直線',
+ curve_segments: 'カーブ',
+ text_contents: 'テキストの内容の変更',
+ font_family: 'フォントファミリーの変更',
+ font_size: '文字サイズの変更',
+ bold: '太字',
+ italic: 'イタリック体'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: '背景色/不透明度の変更',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'コンテンツに合わせる',
+ fit_to_all: 'すべてのコンテンツに合わせる',
+ fit_to_canvas: 'キャンバスに合わせる',
+ fit_to_layer_content: 'レイヤー上のコンテンツに合わせる',
+ fit_to_sel: '選択対象に合わせる',
+ align_relative_to: '揃える',
+ relativeTo: '相対:',
+ page: 'ページ',
+ largest_object: '最大のオブジェクト',
+ selected_objects: '選択オブジェクト',
+ smallest_object: '最小のオブジェクト',
+ new_doc: '新規イメージ',
+ open_doc: 'イメージを開く',
+ export_img: 'Export',
+ save_doc: '画像を保存',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: '下揃え',
+ align_center: '中央揃え',
+ align_left: '左揃え',
+ align_middle: '中央揃え',
+ align_right: '右揃え',
+ align_top: '上揃え',
+ mode_select: '選択ツール',
+ mode_fhpath: '鉛筆ツール',
+ mode_line: '直線ツール',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'フリーハンド長方形',
+ mode_ellipse: '楕円',
+ mode_circle: '円',
+ mode_fhellipse: 'フリーハンド楕円',
+ mode_path: 'パスツール',
+ mode_text: 'テキストツール',
+ mode_image: 'イメージツール',
+ mode_zoom: 'ズームツール',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: '元に戻す',
+ redo: 'やり直し',
+ tool_source: 'ソースの編集',
+ wireframe_mode: 'ワイヤーフレームで表示 [F]',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'グループ化',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'パスに変換',
+ reorient_path: '現在の角度を0度とする',
+ ungroup: 'グループ化を解除',
+ docprops: '文書のプロパティ',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: '奥に移動',
+ move_top: '手前に移動',
+ node_clone: 'ノードを複製',
+ node_delete: 'ノードを削除',
+ node_link: '制御点の接続',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: '適用',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'レイヤ',
+ layers: 'Layers',
+ del: 'レイヤの削除',
+ move_down: 'レイヤを下へ移動',
+ "new": '新規レイヤ',
+ rename: 'レイヤの名前を変更',
+ move_up: 'レイヤを上へ移動',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: '移動先レイヤ:',
+ move_selected: '選択対象を別のレイヤに移動'
+ },
+ config: {
+ image_props: 'イメージの設定',
+ doc_title: 'タイトル',
+ doc_dims: 'キャンバスの大きさ',
+ included_images: '挿入された画像の扱い',
+ image_opt_embed: 'SVGファイルに埋め込む',
+ image_opt_ref: '画像を参照する',
+ editor_prefs: 'エディタの設定',
+ icon_size: 'アイコンの大きさ',
+ language: '言語',
+ background: 'エディタの背景色',
+ editor_img_url: 'Image URL',
+ editor_bg_note: '※背景色はファイルに保存されません。',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'デフォルト',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: '無効な値が指定されています。',
+ noContentToFitTo: '合わせる対象のコンテンツがありません。',
+ dupeLayerName: '同名のレイヤーが既に存在します。',
+ enterUniqueLayerName: '新規レイヤの一意な名前を入力してください。',
+ enterNewLayerName: 'レイヤの新しい名前を入力してください。',
+ layerHasThatName: '既に同名が付いています。',
+ QmoveElemsToLayer: "選択した要素をレイヤー '%s' に移動しますか?",
+ QwantToClear: 'キャンバスをクリアしますか?\nアンドゥ履歴も消去されます。',
+ QwantToOpen: '新しいファイルを開きますか?\nアンドゥ履歴も消去されます。',
+ QerrorsRevertToSource: 'ソースにエラーがあります。\n元のソースに戻しますか?',
+ QignoreSourceChanges: 'ソースの変更を無視しますか?',
+ featNotSupported: '機能はサポートされていません。',
+ enterNewImgURL: '画像のURLを入力してください。',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ja$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ja
+});
+
+var lang_ko = {
+ lang: 'ko',
+ dir: 'ltr',
+ common: {
+ ok: '저장',
+ cancel: '취소',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: '색상을 클릭, 근무 시간 채우기 스트로크 색상을 변경하려면 변경하려면',
+ zoom_level: '변경 수준으로 확대',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: '채우기 색상 변경',
+ stroke_color: '뇌졸중으로 색상 변경',
+ stroke_style: '뇌졸중 변경 대시 스타일',
+ stroke_width: '뇌졸중 너비 변경',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: '회전 각도를 변경',
+ blur: 'Change gaussian blur value',
+ opacity: '변경 항목을 선택 불투명도',
+ circle_cx: '변경 동그라미 CX는 좌표',
+ circle_cy: '동그라미 싸이 변경 조정할 수있어',
+ circle_r: '변경 원의 반지름',
+ ellipse_cx: 'CX는 타원의 좌표 변경',
+ ellipse_cy: '싸이 타원 변경 조정할 수있어',
+ ellipse_rx: '변경 타원의 x 반지름',
+ ellipse_ry: '변경 타원의 y를 반경',
+ line_x1: '변경 라인의 X 좌표 시작',
+ line_x2: '변경 라인의 X 좌표 결말',
+ line_y1: '라인 변경 y를 시작 좌표',
+ line_y2: '라인 변경 y를 결말의 좌표',
+ rect_height: '사각형의 높이를 변경',
+ rect_width: '사각형의 너비 변경',
+ corner_radius: '변경 직사각형 코너 반경',
+ image_width: '이미지 변경 폭',
+ image_height: '이미지 높이 변경',
+ image_url: 'URL 변경',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: '텍스트 변경 내용',
+ font_family: '글꼴 변경 패밀리',
+ font_size: '글꼴 크기 변경',
+ bold: '굵은 텍스트',
+ italic: '기울임꼴 텍스트'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: '배경 색상 변경 / 투명도',
+ connector_no_arrow: 'No arrow',
+ fitToContent: '맞춤 콘텐츠',
+ fit_to_all: '맞춤 모든 콘텐츠에',
+ fit_to_canvas: '맞춤 캔버스',
+ fit_to_layer_content: '레이어에 맞게 콘텐츠',
+ fit_to_sel: '맞춤 선택',
+ align_relative_to: '정렬 상대적으로 ...',
+ relativeTo: '상대:',
+ page: '페이지',
+ largest_object: '큰 개체',
+ selected_objects: '당선 개체',
+ smallest_object: '작은 개체',
+ new_doc: '새 이미지',
+ open_doc: '오픈 이미지',
+ export_img: 'Export',
+ save_doc: '이미지 저장',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: '히프 정렬',
+ align_center: '정렬 센터',
+ align_left: '왼쪽 정렬',
+ align_middle: '중간 정렬',
+ align_right: '오른쪽 맞춤',
+ align_top: '정렬 탑',
+ mode_select: '선택 도구',
+ mode_fhpath: '연필 도구',
+ mode_line: '선 도구',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: '자유 핸드 직사각형',
+ mode_ellipse: '타원',
+ mode_circle: '동그라미',
+ mode_fhellipse: '자유 핸드 타원',
+ mode_path: 'Path Tool',
+ mode_text: '텍스트 도구',
+ mode_image: '이미지 도구',
+ mode_zoom: '줌 도구',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: '취소',
+ redo: '재실행',
+ tool_source: '수정 소스',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: '그룹 요소',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: '그룹 해제 요소',
+ docprops: '문서 속성',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: '아래로 이동',
+ move_top: '상단으로 이동',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: '저장',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: '레이어 삭제',
+ move_down: '레이어 아래로 이동',
+ "new": '새 레이어',
+ rename: '레이어 이름 바꾸기',
+ move_up: '레이어 위로 이동',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: '미리 정의된 선택:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ko$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ko
+});
+
+var lang_lt = {
+ lang: 'lt',
+ dir: 'ltr',
+ common: {
+ ok: 'Saugoti',
+ cancel: 'Atšaukti',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Spustelėkite norėdami keisti užpildo spalvą, perėjimo spustelėkite pakeisti insultas spalva',
+ zoom_level: 'Keisti mastelį',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Keisti užpildyti spalvos',
+ stroke_color: 'Keisti insultas spalva',
+ stroke_style: 'Keisti insultas brūkšnys stilius',
+ stroke_width: 'Keisti insultas plotis',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Keisti sukimosi kampas',
+ blur: 'Change gaussian blur value',
+ opacity: 'Pakeisti pasirinkto elemento neskaidrumo',
+ circle_cx: 'Keisti ratas's CX koordinuoti',
+ circle_cy: 'Keisti ratas's CY koordinuoti',
+ circle_r: 'Keisti savo apskritimo spindulys',
+ ellipse_cx: 'Keisti elipse's CX koordinuoti',
+ ellipse_cy: 'Keisti elipse's CY koordinuoti',
+ ellipse_rx: 'Keisti elipsė "X spindulys',
+ ellipse_ry: 'Keisti elipse Y spindulys',
+ line_x1: 'Keisti linijos nuo koordinačių x',
+ line_x2: 'Keisti linijos baigėsi x koordinuoti',
+ line_y1: 'Keisti linijos pradžios y koordinačių',
+ line_y2: 'Keisti linijos baigėsi y koordinačių',
+ rect_height: 'Keisti stačiakampio aukščio',
+ rect_width: 'Pakeisti stačiakampio plotis',
+ corner_radius: 'Keisti stačiakampis skyrelį Spindulys',
+ image_width: 'Keisti paveikslėlio plotis',
+ image_height: 'Keisti vaizdo aukštis',
+ image_url: 'Pakeisti URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Keisti teksto turinys',
+ font_family: 'Pakeistišriftą Šeima',
+ font_size: 'Change font size',
+ bold: 'Pusjuodis',
+ italic: 'Kursyvas'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Pakeisti fono spalvą / drumstumas',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Talpinti turinys',
+ fit_to_all: 'Talpinti All content',
+ fit_to_canvas: 'Talpinti drobė',
+ fit_to_layer_content: 'Talpinti sluoksnis turinio',
+ fit_to_sel: 'Talpinti atrankos',
+ align_relative_to: 'Derinti palyginti ...',
+ relativeTo: 'palyginti:',
+ page: 'puslapis',
+ largest_object: 'didžiausias objektas',
+ selected_objects: 'išrinktas objektai',
+ smallest_object: 'mažiausias objektą',
+ new_doc: 'New Image',
+ open_doc: 'Atidaryti atvaizdą',
+ export_img: 'Export',
+ save_doc: 'Išsaugoti nuotrauką',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Lygiuoti apačioje',
+ align_center: 'Lygiuoti',
+ align_left: 'Lygiuoti kairėje',
+ align_middle: 'Suderinti Vidurio',
+ align_right: 'Lygiuoti dešinėje',
+ align_top: 'Lygiuoti viršų',
+ mode_select: 'Įrankis',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free Hand stačiakampis',
+ mode_ellipse: 'Elipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free Hand Elipsė',
+ mode_path: 'Path Tool',
+ mode_text: 'Tekstas Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Įrankį',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Atšaukti',
+ redo: 'Atstatyti',
+ tool_source: 'Taisyti Šaltinis',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elementų grupės',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Išgrupuoti elementai',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Perkelti į apačią',
+ move_top: 'Perkelti į viršų',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Saugoti',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Ištrinti Layer',
+ move_down: 'Perkelti sluoksnį Žemyn',
+ "new": 'New Layer',
+ rename: 'Pervadinti sluoksnį',
+ move_up: 'Perkelti sluoksnį Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Pasirinkite iš anksto:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_lt$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_lt
+});
+
+var lang_lv = {
+ lang: 'lv',
+ dir: 'ltr',
+ common: {
+ ok: 'Glābt',
+ cancel: 'Atcelt',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Noklikšķiniet, lai mainītu aizpildījuma krāsu, shift-click to mainīt stroke krāsa',
+ zoom_level: 'Pārmaiņu mērogu',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change aizpildījuma krāsu',
+ stroke_color: 'Change stroke krāsa',
+ stroke_style: 'Maina stroke domuzīme stils',
+ stroke_width: 'Change stroke platums',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Mainīt griešanās leņķis',
+ blur: 'Change gaussian blur value',
+ opacity: 'Mainīt izvēlēto objektu necaurredzamība',
+ circle_cx: 'Maina aplis's CX koordinēt',
+ circle_cy: 'Pārmaiņu loks ir cy koordinēt',
+ circle_r: 'Pārmaiņu loks ir rādiuss',
+ ellipse_cx: 'Mainīt elipses's CX koordinēt',
+ ellipse_cy: 'Mainīt elipses's cy koordinēt',
+ ellipse_rx: 'Mainīt elipses's x rādiuss',
+ ellipse_ry: 'Mainīt elipses's y rādiuss',
+ line_x1: 'Mainīt līnijas sākas x koordinēt',
+ line_x2: 'Mainīt līnijas beigu x koordinēt',
+ line_y1: 'Mainīt līnijas sākas y koordinātu',
+ line_y2: 'Mainīt līnijas beigu y koordinātu',
+ rect_height: 'Change Taisnstūra augstums',
+ rect_width: 'Change taisnstūra platums',
+ corner_radius: 'Maina Taisnstūris Corner Rādiuss',
+ image_width: 'Mainīt attēla platumu',
+ image_height: 'Mainīt attēla augstums',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Mainītu teksta saturs',
+ font_family: 'Mainīt fonta Family',
+ font_size: 'Mainīt fonta izmēru',
+ bold: 'Bold Text',
+ italic: 'Kursīvs'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color / necaurredzamība',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit uz visu saturu',
+ fit_to_canvas: 'Ievietot audekls',
+ fit_to_layer_content: 'Ievietot slānis saturs',
+ fit_to_sel: 'Fit atlases',
+ align_relative_to: 'Līdzināt, salīdzinot ar ...',
+ relativeTo: 'salīdzinājumā ar:',
+ page: 'lapa',
+ largest_object: 'lielākais objekts',
+ selected_objects: 'ievēlēts objekti',
+ smallest_object: 'mazākais objekts',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Līdzināt Bottom',
+ align_center: 'Līdzināt uz centru',
+ align_left: 'Līdzināt pa kreisi',
+ align_middle: 'Līdzināt Middle',
+ align_right: 'Līdzināt pa labi',
+ align_top: 'Līdzināt Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Taisnstūris',
+ mode_ellipse: 'Elipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Atpogāt',
+ redo: 'Redo',
+ tool_source: 'Rediģēt Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Grupa Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Atgrupēt Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Pārvietot uz leju',
+ move_top: 'Pārvietot uz augšu',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Glābt',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Dzēst Layer',
+ move_down: 'Pārvietot slāni uz leju',
+ "new": 'New Layer',
+ rename: 'Pārdēvēt Layer',
+ move_up: 'Pārvietot slāni uz augšu',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Izvēlieties iepriekš:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_lv$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_lv
+});
+
+var lang_mk = {
+ lang: 'mk',
+ dir: 'ltr',
+ common: {
+ ok: 'Зачувува',
+ cancel: 'Откажи',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Кликни за да внесете промени бојата, промена клик да се промени бојата удар',
+ zoom_level: 'Промена зум ниво',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Измени пополнете боја',
+ stroke_color: 'Промена боја на мозочен удар',
+ stroke_style: 'Промена удар цртичка стил',
+ stroke_width: 'Промена удар Ширина',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change ротација агол',
+ blur: 'Change gaussian blur value',
+ opacity: 'Промена избрани ставка непроѕирноста',
+ circle_cx: 'Промена круг на cx координира',
+ circle_cy: 'Промена круг's cy координираат',
+ circle_r: 'Промена на круг со радиус',
+ ellipse_cx: 'Промена елипса's cx координираат',
+ ellipse_cy: 'Промена на елипса cy координира',
+ ellipse_rx: 'Промена на елипса x радиус',
+ ellipse_ry: 'Промена на елипса у радиус',
+ line_x1: 'Промена линија почетна x координира',
+ line_x2: 'Промена линија завршува x координира',
+ line_y1: 'Промена линија координираат почетна y',
+ line_y2: 'Промена линија завршува y координира',
+ rect_height: 'Промена правоаголник височина',
+ rect_width: 'Промена правоаголник Ширина',
+ corner_radius: 'Промена правоаголник Corner Radius',
+ image_width: 'Промена Ширина на сликата',
+ image_height: 'Промена на слика височина',
+ image_url: 'Промена URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Промена текст содржина',
+ font_family: 'Смени фонт Фамилија',
+ font_size: 'Изменифонт Големина',
+ bold: 'Задебелен текст',
+ italic: 'Italic текст'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Смени позадина / непроѕирноста',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Способен да Содржина',
+ fit_to_all: 'Способен да сите содржина',
+ fit_to_canvas: 'Побиране да платно',
+ fit_to_layer_content: 'Способен да слој содржина',
+ fit_to_sel: 'Способен да селекција',
+ align_relative_to: 'Порамни во поглед на ...',
+ relativeTo: 'во поглед на:',
+ page: 'страница',
+ largest_object: 'најголемиот објект',
+ selected_objects: 'избран објекти',
+ smallest_object: 'најмалата објект',
+ new_doc: 'Нови слики',
+ open_doc: 'Отвори слика',
+ export_img: 'Export',
+ save_doc: 'Зачувај слика',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Центрирано',
+ align_left: 'Порамни лево Порамни',
+ align_middle: 'Израмни Среден',
+ align_right: 'Порамни десно',
+ align_top: 'Израмни почетокот',
+ mode_select: 'Изберете ја алатката',
+ mode_fhpath: 'Алатка за молив',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Правоаголник слободна рака',
+ mode_ellipse: 'Елипса',
+ mode_circle: 'Круг',
+ mode_fhellipse: 'Free-Hand Елипса',
+ mode_path: 'Path Tool',
+ mode_text: 'Алатка за текст',
+ mode_image: 'Алатка за сликата',
+ mode_zoom: 'Алатка за зумирање',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Врати',
+ redo: 'Повтори',
+ tool_source: 'Уреди Извор',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Група на елементи',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Елементи',
+ docprops: 'Својства на документот',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to bottom',
+ move_top: 'Поместување на почетокот',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Зачувува',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Избриши Слој',
+ move_down: 'Премести слој долу',
+ "new": 'Нов слој',
+ rename: 'Преименувај слој',
+ move_up: 'Премести слој горе',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Изберете предефинирани:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_mk$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_mk
+});
+
+var lang_ms = {
+ lang: 'ms',
+ dir: 'ltr',
+ common: {
+ ok: 'Simpan',
+ cancel: 'Batal',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klik untuk menukar warna mengisi, shift-klik untuk menukar warna stroke',
+ zoom_level: 'Mengubah peringkat pembesaran',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Tukar Warna mengisi',
+ stroke_color: 'Tukar Warna stroke',
+ stroke_style: 'Tukar gaya dash stroke',
+ stroke_width: 'Tukar stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Namakan sudut putaran',
+ blur: 'Change gaussian blur value',
+ opacity: 'Mengubah item yang dipilih keburaman',
+ circle_cx: 'Mengubah koordinat bulatan cx',
+ circle_cy: 'Mengubah koordinat cy bulatan',
+ circle_r: 'Tukar jari-jari lingkaran',
+ ellipse_cx: 'Tukar elips's cx koordinat',
+ ellipse_cy: 'Tukar elips's cy koordinat',
+ ellipse_rx: 'Tukar elips's x jari-jari',
+ ellipse_ry: 'Tukar elips's y jari-jari',
+ line_x1: 'Ubah baris mulai x koordinat',
+ line_x2: 'Ubah baris's Berakhir x koordinat',
+ line_y1: 'Ubah baris mulai y koordinat',
+ line_y2: 'Ubah baris di tiap akhir y koordinat',
+ rect_height: 'Perubahan quality persegi panjang',
+ rect_width: 'Tukar persegi panjang lebar',
+ corner_radius: 'Tukar Corner Rectangle Radius',
+ image_width: 'Tukar Lebar imej',
+ image_height: 'Tinggi gambar Kaca',
+ image_url: 'Tukar URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Tukar isi teks',
+ font_family: 'Tukar Font Keluarga',
+ font_size: 'Ubah Saiz Font',
+ bold: 'Bold Teks',
+ italic: 'Italic Teks'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Mengubah warna latar belakang / keburaman',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Cocok untuk semua kandungan',
+ fit_to_canvas: 'Muat kanvas',
+ fit_to_layer_content: 'Muat kandungan lapisan',
+ fit_to_sel: 'Fit seleksi',
+ align_relative_to: 'Rata relatif ...',
+ relativeTo: 'relatif:',
+ page: 'Laman',
+ largest_object: 'objek terbesar',
+ selected_objects: 'objek terpilih',
+ smallest_object: 'objek terkecil',
+ new_doc: 'Imej Baru',
+ open_doc: 'Membuka Image',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Rata Bottom',
+ align_center: 'Rata Tengah',
+ align_left: 'Rata Kiri',
+ align_middle: 'Rata Tengah',
+ align_right: 'Rata Kanan',
+ align_top: 'Rata Popular',
+ mode_select: 'Pilih Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Persegi Panjang',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Lingkaran',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Teks Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Kelompok Elemen',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elemen',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Pindah ke Bawah',
+ move_top: 'Pindah ke Atas',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Simpan',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Padam Layer',
+ move_down: 'Pindah Layer Bawah',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Pindah Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Pilih standard:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ms$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ms
+});
+
+var lang_mt = {
+ lang: 'mt',
+ dir: 'ltr',
+ common: {
+ ok: 'Save',
+ cancel: 'Ikkanċella',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Ikklikkja biex timla l-bidla fil-kulur, ikklikkja-bidla għall-bidla color stroke',
+ zoom_level: 'Bidla zoom livell',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Bidla imla color',
+ stroke_color: 'Color stroke Bidla',
+ stroke_style: 'Bidla stroke dash stil',
+ stroke_width: 'Wisa 'puplesija Bidla',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Angolu ta 'rotazzjoni Bidla',
+ blur: 'Change gaussian blur value',
+ opacity: 'Bidla magħżula opaċità partita',
+ circle_cx: 'CX ċirku Tibdil jikkoordinaw',
+ circle_cy: 'Ċirku Tibdil cy jikkoordinaw',
+ circle_r: 'Raġġ ta 'ċirku tal-Bidla',
+ ellipse_cx: 'Bidla ellissi's CX jikkoordinaw',
+ ellipse_cy: 'Ellissi Tibdil cy jikkoordinaw',
+ ellipse_rx: 'Raġġ x ellissi Tibdil',
+ ellipse_ry: 'Raġġ y ellissi Tibdil',
+ line_x1: 'Bidla fil-linja tal-bidu tikkoordina x',
+ line_x2: 'Linja tal-Bidla li jispiċċa x jikkoordinaw',
+ line_y1: 'Bidla fil-linja tal-bidu y jikkoordinaw',
+ line_y2: 'Linja Tibdil jispiċċa y jikkoordinaw',
+ rect_height: 'Għoli rettangolu Bidla',
+ rect_width: 'Wisa 'rettangolu Bidla',
+ corner_radius: 'Bidla Rectangle Corner Radius',
+ image_width: 'Wisa image Bidla',
+ image_height: 'Għoli image Bidla',
+ image_url: 'Bidla URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Test kontenut Bidla',
+ font_family: 'Bidla Font Familja',
+ font_size: 'Change font size',
+ bold: 'Bold Test',
+ italic: 'Test korsiv'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Bidla fil-kulur fl-isfond / opaċità',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit għall-kontenut',
+ fit_to_all: 'Tajbin għall-kontenut',
+ fit_to_canvas: 'Xieraq li kanvas',
+ fit_to_layer_content: 'Fit-kontenut ta 'saff għal',
+ fit_to_sel: 'Fit-għażla',
+ align_relative_to: 'Jallinjaw relattiv għall - ...',
+ relativeTo: 'relattiv għall -:',
+ page: 'paġna',
+ largest_object: 'akbar oġġett',
+ selected_objects: 'oġġetti elett',
+ smallest_object: 'iżgħar oġġett',
+ new_doc: 'Image New',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Image Save',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Tallinja Bottom',
+ align_center: 'Tallinja Center',
+ align_left: 'Tallinja Left',
+ align_middle: 'Tallinja Nofsani',
+ align_right: 'Tallinja Dritt',
+ align_top: 'Tallinja Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Lapes Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free Hand-Rectangle',
+ mode_ellipse: 'Ellissi',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free Hand-ellissi',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Jneħħu',
+ redo: 'Jerġa 'jagħmel',
+ tool_source: 'Source Edit',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Grupp Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Dokument Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Save',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Ħassar Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Semmi mill-ġdid Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefiniti:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_mt$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_mt
+});
+
+var lang_nl = {
+ lang: 'nl',
+ dir: 'ltr',
+ common: {
+ ok: 'Ok',
+ cancel: 'Annuleren',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'omlaag',
+ key_up: 'omhoog',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Mogelijk gemaakt door'
+ },
+ ui: {
+ toggle_stroke_tools: 'Toon/verberg meer lijn gereedschap',
+ palette_info: 'Klik om de vul kleur te veranderen, shift-klik om de lijn kleur te veranderen',
+ zoom_level: 'In-/uitzoomen',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identificeer het element',
+ fill_color: 'Verander vul kleur',
+ stroke_color: 'Verander lijn kleur',
+ stroke_style: 'Verander lijn stijl',
+ stroke_width: 'Verander lijn breedte',
+ pos_x: 'Verander X coordinaat',
+ pos_y: 'Verander Y coordinaat',
+ linecap_butt: 'Lijneinde: Geen',
+ linecap_round: 'Lijneinde: Rond',
+ linecap_square: 'Lijneinde: Vierkant',
+ linejoin_bevel: 'Lijnverbinding: Afgestompt',
+ linejoin_miter: 'Lijnverbinding: Hoek',
+ linejoin_round: 'Lijnverbinding: Rond',
+ angle: 'Draai',
+ blur: 'Verander Gaussische vervaging waarde',
+ opacity: 'Verander opaciteit geselecteerde item',
+ circle_cx: 'Verander het X coordinaat van het cirkel middelpunt',
+ circle_cy: 'Verander het Y coordinaat van het cirkel middelpunt',
+ circle_r: 'Verander de cirkel radius',
+ ellipse_cx: 'Verander het X coordinaat van het ellips middelpunt',
+ ellipse_cy: 'Verander het Y coordinaat van het ellips middelpunt',
+ ellipse_rx: 'Verander ellips X radius',
+ ellipse_ry: 'Verander ellips Y radius',
+ line_x1: 'Verander start X coordinaat van de lijn',
+ line_x2: 'Verander eind X coordinaat van de lijn',
+ line_y1: 'Verander start Y coordinaat van de lijn',
+ line_y2: 'Verander eind Y coordinaat van de lijn',
+ rect_height: 'Verander hoogte rechthoek',
+ rect_width: 'Verander breedte rechthoek',
+ corner_radius: 'Verander hoekradius rechthoek',
+ image_width: 'Verander breedte afbeelding',
+ image_height: 'Verander hoogte afbeelding',
+ image_url: 'Verander URL',
+ node_x: 'Verander X coordinaat knooppunt',
+ node_y: 'Verander Y coordinaat knooppunt',
+ seg_type: 'Verander segment type',
+ straight_segments: 'Recht',
+ curve_segments: 'Gebogen',
+ text_contents: 'Wijzig tekst',
+ font_family: 'Verander lettertype',
+ font_size: 'Verander lettertype grootte',
+ bold: 'Vet',
+ italic: 'Cursief'
+ },
+ tools: {
+ main_menu: 'Hoofdmenu',
+ bkgnd_color_opac: 'Verander achtergrond kleur/doorzichtigheid',
+ connector_no_arrow: 'Geen pijl',
+ fitToContent: 'Pas om inhoud',
+ fit_to_all: 'Pas om alle inhoud',
+ fit_to_canvas: 'Pas om canvas',
+ fit_to_layer_content: 'Pas om laag inhoud',
+ fit_to_sel: 'Pas om selectie',
+ align_relative_to: 'Uitlijnen relatief ten opzichte van ...',
+ relativeTo: 'Relatief ten opzichte van:',
+ page: 'Pagina',
+ largest_object: 'Grootste object',
+ selected_objects: 'Geselecteerde objecten',
+ smallest_object: 'Kleinste object',
+ new_doc: 'Nieuwe afbeelding',
+ open_doc: 'Open afbeelding',
+ export_img: 'Export',
+ save_doc: 'Afbeelding opslaan',
+ import_doc: 'Importeer SVG',
+ align_to_page: 'Lijn element uit relatief ten opzichte van de pagina',
+ align_bottom: 'Onder uitlijnen',
+ align_center: 'Centreren',
+ align_left: 'Links uitlijnen',
+ align_middle: 'Midden uitlijnen',
+ align_right: 'Rechts uitlijnen',
+ align_top: 'Boven uitlijnen',
+ mode_select: 'Selecteer',
+ mode_fhpath: 'Potlood',
+ mode_line: 'Lijn',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Vrije stijl rechthoek',
+ mode_ellipse: 'Ellips',
+ mode_circle: 'Cirkel',
+ mode_fhellipse: 'Vrije stijl ellips',
+ mode_path: 'Pad',
+ mode_text: 'Tekst',
+ mode_image: 'Afbeelding',
+ mode_zoom: 'Zoom',
+ no_embed: 'Let op: Dit plaatje kan niet worden geintegreerd (embeded). Het hangt af van dit pad om te worden afgebeeld.',
+ undo: 'Ongedaan maken',
+ redo: 'Opnieuw doen',
+ tool_source: 'Bewerk bron',
+ wireframe_mode: 'Draadmodel',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Groepeer elementen',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Zet om naar pad',
+ reorient_path: 'Herorienteer pad',
+ ungroup: 'Groepering opheffen',
+ docprops: 'Documenteigenschappen',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Naar achtergrond',
+ move_top: 'Naar voorgrond',
+ node_clone: 'Kloon knooppunt',
+ node_delete: 'Delete knooppunt',
+ node_link: 'Koppel controle punten',
+ add_subpath: 'Subpad toevoegen',
+ openclose_path: 'Open/sluit subpad',
+ source_save: 'Veranderingen toepassen',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Laag',
+ layers: 'Layers',
+ del: 'Delete laag',
+ move_down: 'Beweeg laag omlaag',
+ "new": 'Nieuwe laag',
+ rename: 'Hernoem laag',
+ move_up: 'Beweeg laag omhoog',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Verplaats elementen naar:',
+ move_selected: 'Verplaats geselecteerde elementen naar andere laag'
+ },
+ config: {
+ image_props: 'Afbeeldingeigenschappen',
+ doc_title: 'Titel',
+ doc_dims: 'Canvas afmetingen',
+ included_images: 'Ingesloten afbeeldingen',
+ image_opt_embed: 'Toevoegen data (lokale bestanden)',
+ image_opt_ref: 'Gebruik bestand referentie',
+ editor_prefs: 'Editor eigenschappen',
+ icon_size: 'Icoon grootte',
+ language: 'Taal',
+ background: 'Editor achtergrond',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Let op: De achtergrond wordt niet opgeslagen met de afbeelding.',
+ icon_large: 'Groot',
+ icon_medium: 'Gemiddeld',
+ icon_small: 'Klein',
+ icon_xlarge: 'Extra groot',
+ select_predefined: 'Kies voorgedefinieerd:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Verkeerde waarde gegeven',
+ noContentToFitTo: 'Geen inhoud om omheen te passen',
+ dupeLayerName: 'Er is al een laag met die naam!',
+ enterUniqueLayerName: 'Geef een unieke laag naam',
+ enterNewLayerName: 'Geef een nieuwe laag naam',
+ layerHasThatName: 'Laag heeft al die naam',
+ QmoveElemsToLayer: "Verplaats geselecteerde elementen naar laag '%s'?",
+ QwantToClear: 'Wil je de afbeelding leeg maken?\nDit zal ook de ongedaan maak geschiedenis wissen!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'Er waren analyse fouten in je SVG bron.\nTeruggaan naar de originele SVG bron?',
+ QignoreSourceChanges: 'Veranderingen in de SVG bron negeren?',
+ featNotSupported: 'Functie wordt niet ondersteund',
+ enterNewImgURL: 'Geef de nieuwe afbeelding URL',
+ defsFailOnSave: 'Let op: Vanwege een fout in je browser, kan dit plaatje verkeerd verschijnen (missende hoeken en/of elementen). Het zal goed verschijnen zodra het plaatje echt wordt opgeslagen.',
+ loadingImage: 'Laden van het plaatje, even geduld aub...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Let op de volgende problemen: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_nl$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_nl
+});
+
+var lang_no = {
+ lang: 'no',
+ dir: 'ltr',
+ common: {
+ ok: 'Lagre',
+ cancel: 'Avbryt',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click å endre fyllfarge, shift-klikke for å endre slag farge',
+ zoom_level: 'Endre zoomnivå',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Endre fyllfarge',
+ stroke_color: 'Endre stroke color',
+ stroke_style: 'Endre stroke dash stil',
+ stroke_width: 'Endre stroke width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Endre rotasjonsvinkelen',
+ blur: 'Change gaussian blur value',
+ opacity: 'Endre valgte elementet opasitet',
+ circle_cx: 'Endre sirkelens CX koordinatsystem',
+ circle_cy: 'Endre sirkelens koordinere cy',
+ circle_r: 'Endre sirkelens radius',
+ ellipse_cx: 'Endre ellipse's CX koordinatsystem',
+ ellipse_cy: 'Endre ellipse's koordinere cy',
+ ellipse_rx: 'Endre ellipse's x radius',
+ ellipse_ry: 'Endre ellipse's y radius',
+ line_x1: 'Endre linje begynner x koordinat',
+ line_x2: 'Endre linje's ending x koordinat',
+ line_y1: 'Endre linje begynner y koordinat',
+ line_y2: 'Endre linje's ending y koordinat',
+ rect_height: 'Endre rektangel høyde',
+ rect_width: 'Endre rektangel bredde',
+ corner_radius: 'Endre rektangel Corner Radius',
+ image_width: 'Endre bilde bredde',
+ image_height: 'Endre bilde høyde',
+ image_url: 'Endre URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Endre tekst innholdet',
+ font_family: 'Change Font Family',
+ font_size: 'Endre skriftstørrelse',
+ bold: 'Fet tekst',
+ italic: 'Kursiv tekst'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Endre bakgrunnsfarge / opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Passer til alt innhold',
+ fit_to_canvas: 'Tilpass til lerret',
+ fit_to_layer_content: 'Fit to lag innhold',
+ fit_to_sel: 'Tilpass til valg',
+ align_relative_to: 'Juster i forhold til ...',
+ relativeTo: 'i forhold til:',
+ page: 'side',
+ largest_object: 'største objekt',
+ selected_objects: 'velges objekter',
+ smallest_object: 'minste objekt',
+ new_doc: 'New Image',
+ open_doc: 'Åpne Image',
+ export_img: 'Export',
+ save_doc: 'Lagre bilde',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Midtstill',
+ align_left: 'Venstrejuster',
+ align_middle: 'Rett Middle',
+ align_right: 'Høyrejuster',
+ align_top: 'Align Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Linjeverktøy',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand rektangel',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Angre',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Gruppe Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Dele opp Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Flytt til toppen',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Lagre',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Slett laget',
+ move_down: 'Flytt laget ned',
+ "new": 'Nytt lag',
+ rename: 'Rename Layer',
+ move_up: 'Flytt Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Velg forhåndsdefinerte:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_no$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_no
+});
+
+var lang_pl = {
+ lang: 'pl',
+ dir: 'ltr',
+ author: 'Aleksander Lurie',
+ common: {
+ ok: 'OK',
+ cancel: 'Anuluj',
+ key_backspace: 'usuń',
+ key_del: 'usuń',
+ key_down: 'w dół',
+ key_up: 'w górę',
+ more_opts: 'więcej opcji',
+ url: 'adres url',
+ width: 'Szerokość',
+ height: 'Wysokość'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Pokaż/ukryj więcej opcji obramowania',
+ palette_info: 'Kliknij aby zmienić kolor wypełnienia, przytrzymaj shift aby zmienić kolor obramowania',
+ zoom_level: 'Zmiana powiększenia',
+ panel_drag: 'Przeciągnij w lewo/prawo aby zmienić szerokość panelu',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identyfikator elementu',
+ fill_color: 'Zmień kolor wypełnienia',
+ stroke_color: 'Zmień kolor obramowania',
+ stroke_style: 'Zmień styl obramowania',
+ stroke_width: 'Zmień szerokość obramowania o 1, przytrzymaj shift aby zmienić szerokość o 0.1',
+ pos_x: 'Zmień współrzędną X',
+ pos_y: 'Zmień współrzędną Y',
+ linecap_butt: 'Zakończenie linii: grzbiet',
+ linecap_round: 'Zakończenie linii: zaokrąglone',
+ linecap_square: 'Zakończenie linii: kwadrat',
+ linejoin_bevel: 'Łączenie linii: ścięte',
+ linejoin_miter: 'Łączenie linii: ostre',
+ linejoin_round: 'Łączenie linii: zaokrąglone',
+ angle: 'Zmień kąt obrotu',
+ blur: 'Zmień wartość rozmycia gaussa',
+ opacity: 'Zmień przezroczystość zaznaczonego elementu',
+ circle_cx: 'Zmień współrzędną cx okręgu',
+ circle_cy: 'Zmień współrzędną cy okręgu',
+ circle_r: 'zmień promień okręgu',
+ ellipse_cx: 'Zmień współrzędną cx elipsy',
+ ellipse_cy: 'Zmień współrzędną cy elipsy',
+ ellipse_rx: 'Zmień promień x elipsy',
+ ellipse_ry: 'Zmień promień y elipsy',
+ line_x1: 'Zmień współrzędna x początku linii',
+ line_x2: 'Zmień współrzędną x końca linii',
+ line_y1: 'Zmień współrzędną y początku linii',
+ line_y2: 'Zmień współrzędną y końca linii',
+ rect_height: 'Zmień wysokość prostokąta',
+ rect_width: 'Zmień szerokość prostokąta',
+ corner_radius: 'Zmień promień zaokrąglenia narożników prostokąta',
+ image_width: 'Zmień wysokość obrazu',
+ image_height: 'Zmień szerokość obrazu',
+ image_url: 'Zmień adres URL',
+ node_x: 'Zmień współrzędną x węzła',
+ node_y: 'Zmień współrzędną y węzła',
+ seg_type: 'Zmień typ segmentu',
+ straight_segments: 'Prosty',
+ curve_segments: 'Zaokrąglony',
+ text_contents: 'Zmień text',
+ font_family: 'Zmień krój czcionki',
+ font_size: 'Zmień rozmiar czcionki',
+ bold: 'Pogrubienie textu',
+ italic: 'Kursywa'
+ },
+ tools: {
+ main_menu: 'Menu główne',
+ bkgnd_color_opac: 'Zmiana koloru/przezroczystości tła',
+ connector_no_arrow: 'Brak strzałek',
+ fitToContent: 'Dopasuj do zawartości',
+ fit_to_all: 'Dopasuj do całej zawartości',
+ fit_to_canvas: 'Dopasuj do widoku',
+ fit_to_layer_content: 'Dopasuj do zawartości warstwy',
+ fit_to_sel: 'Dopasuj do zaznaczenia',
+ align_relative_to: 'Wyrównaj relatywnie do ...',
+ relativeTo: 'relatywnie do:',
+ page: 'strona',
+ largest_object: 'największy obiekt',
+ selected_objects: 'zaznaczone obiekty',
+ smallest_object: 'najmniejszy obiekt',
+ new_doc: 'Nowy obraz',
+ open_doc: 'Otwórz obraz',
+ export_img: 'Eksportuj',
+ save_doc: 'Zapisz obraz',
+ import_doc: 'Importuj SVG',
+ align_to_page: 'Wyrównaj element do strony',
+ align_bottom: 'Wyrównaj do dołu',
+ align_center: 'Wyśrodkuj w poziomie',
+ align_left: 'Wyrównaj do lewej',
+ align_middle: 'Wyśrodkuj w pionie',
+ align_right: 'Wyrównaj do prawej',
+ align_top: 'Wyrównaj do góry',
+ mode_select: 'Zaznaczenie',
+ mode_fhpath: 'Ołówek',
+ mode_line: 'Linia',
+ mode_rect: 'Prostokąt',
+ mode_square: 'Kwadrat',
+ mode_fhrect: 'Dowolny prostokąt',
+ mode_ellipse: 'Elipsa',
+ mode_circle: 'Okrąg',
+ mode_fhellipse: 'Dowolna elipsa',
+ mode_path: 'Ścieżka',
+ mode_text: 'Tekst',
+ mode_image: 'Obraz',
+ mode_zoom: 'Powiększenie',
+ no_embed: 'Uwaga: Ten obraz nie może być osadzony. Być może podany adres na to nie pozwala',
+ undo: 'Wstecz',
+ redo: 'Dalej',
+ tool_source: 'Edytuj źródło',
+ wireframe_mode: 'Tryb szkieletowy',
+ clone: 'Klonuj element(y)',
+ del: 'Usuń warstwę',
+ group_elements: 'Grupuj elementy',
+ make_link: 'Utwórz łącze',
+ set_link_url: 'Ustal adres URL (pozostaw puste aby usunąć)',
+ to_path: 'Konwertuj do ścieżki',
+ reorient_path: 'Zresetuj obwiednię',
+ ungroup: 'Rozgrupuj elementy',
+ docprops: 'Właściwości dokumentu',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Przenieś pod spód',
+ move_top: 'Przenieś na wierzch',
+ node_clone: 'Klonuj węzeł',
+ node_delete: 'Usuń węzeł',
+ node_link: 'Podłącz punkty kontrolne',
+ add_subpath: 'Dodaj ścieżkę podrzędną',
+ openclose_path: 'Otwórz/zamknij ścieżkę podrzędną',
+ source_save: 'Zachowaj zmiany',
+ cut: 'Wytnij',
+ copy: 'Kopiuj',
+ paste: 'Wklej',
+ paste_in_place: 'Wklej w miejscu',
+ "delete": 'Usuń',
+ group: 'Grupuj',
+ move_front: 'Przenieś do przodu',
+ move_up: 'Przenieś warstwę w górę',
+ move_down: 'Przenieś warstwę w dół',
+ move_back: 'Przenieś do tyłu'
+ },
+ layers: {
+ layer: 'Warstwa',
+ layers: 'Warstwy',
+ del: 'Usuń warstwę',
+ move_down: 'Przenieś warstwę w dół',
+ "new": 'Nowa warstwa',
+ rename: 'Zmień nazwę warstwy',
+ move_up: 'Przenieś warstwę w górę',
+ dupe: 'Duplikuj warstwę',
+ merge_down: 'Scal w dół',
+ merge_all: 'Scal wszystko',
+ move_elems_to: 'Przenieś elementy do:',
+ move_selected: 'Przenieś zaznaczone elementy do innej warstwy'
+ },
+ config: {
+ image_props: 'Własciwości obrazu',
+ doc_title: 'Tytuł',
+ doc_dims: 'Wymiary pola roboczego',
+ included_images: 'Dołączone obrazy',
+ image_opt_embed: 'Dane osadzone (pliki lokalne)',
+ image_opt_ref: 'Użyj referencji do pliku',
+ editor_prefs: 'Ustawienia edytora',
+ icon_size: 'Rozmiar ikon',
+ language: 'Język',
+ background: 'Tło edytora',
+ editor_img_url: 'Adres URL obrazu',
+ editor_bg_note: 'Uwaga: Tło nie zostało zapisane z obrazem.',
+ icon_large: 'Duże',
+ icon_medium: 'Średnie',
+ icon_small: 'Małe',
+ icon_xlarge: 'Bardzo duże',
+ select_predefined: 'Wybierz predefiniowany:',
+ units_and_rulers: 'Jednostki/Linijki',
+ show_rulers: 'Pokaż linijki',
+ base_unit: 'Podstawowa jednostka:',
+ grid: 'Siatka',
+ snapping_onoff: 'Włącz/wyłącz przyciąganie',
+ snapping_stepsize: 'Przyciągaj co:',
+ grid_color: 'Kolor siatki'
+ },
+ notification: {
+ invalidAttrValGiven: 'Podano nieprawidłową wartość',
+ noContentToFitTo: 'Brak zawartości do dopasowania',
+ dupeLayerName: 'Istnieje już warstwa o takiej nazwie!',
+ enterUniqueLayerName: 'Podaj unikalną nazwę warstwy',
+ enterNewLayerName: 'Podaj nazwe nowej warstwy',
+ layerHasThatName: 'Warstwa już tak się nazywa',
+ QmoveElemsToLayer: 'Przenies zaznaczone elementy do warstwy \'%s\'?',
+ QwantToClear: 'Jesteś pewien, że chcesz wyczyścić pole robocze?\nHistoria projektu również zostanie skasowana',
+ QwantToOpen: 'Jesteś pewien, że chcesz otworzyć nowy plik?\nHistoria projektu również zostanie skasowana',
+ QerrorsRevertToSource: 'Błąd parsowania źródła Twojego pliku SVG.\nPrzywrócić orginalne źródło pliku SVG?',
+ QignoreSourceChanges: 'Zignorowac zmiany w źródle pliku SVG?',
+ featNotSupported: 'Funkcjonalność niedostępna',
+ enterNewImgURL: 'Podaj adres URL nowego obrazu',
+ defsFailOnSave: 'Uwaga: Ze względu na błąd w przeglądarce, ten obraz może się źle wyswietlać (brak gradientów lub elementów). Będzie jednak wyświetlał się poprawnie skoro został zapisany.',
+ loadingImage: 'Ładowanie obrazu, proszę czekać...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Zwróć uwagę na nastepujące kwestie: ',
+ unsavedChanges: 'Wykryto niezapisane zmiany.',
+ enterNewLinkURL: 'Wpisz nowy adres URL hiperłącza',
+ errorLoadingSVG: 'Błąd: Nie można załadować danych SVG',
+ URLLoadFail: 'Nie można załadować z adresu URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_pl$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_pl
+});
+
+var lang_ptBR = {
+ lang: 'pt-BR',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Cancelar',
+ key_backspace: 'Tecla backspace',
+ key_del: 'Tecla delete',
+ key_down: 'Seta para baixo',
+ key_up: 'Seta para cima',
+ more_opts: 'Mais opções',
+ url: 'URL',
+ width: 'Largura',
+ height: 'Altura'
+ },
+ misc: {
+ powered_by: 'Tecnologia'
+ },
+ ui: {
+ toggle_stroke_tools: 'Mais opções de traço',
+ palette_info: 'Click para mudar a cor de preenchimento, shift-click para mudar a cor do traço',
+ zoom_level: 'Mudar zoom',
+ panel_drag: 'Arraste para redimensionar o painel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identifica o elemento',
+ fill_color: 'Mudar a cor de preenchimento',
+ stroke_color: 'Mudar a cor do traço',
+ stroke_style: 'Mudar o estilo do traço',
+ stroke_width: 'Mudar a espessura do traço em 1, shift-click para mudar 0.1',
+ pos_x: 'Mudar a coordenada X',
+ pos_y: 'Mudar a coordenada Y',
+ linecap_butt: 'Estilo do fim do traço: Topo',
+ linecap_round: 'Estilo do fim do traço: Redondo',
+ linecap_square: 'Estilo do fim do traço: Quadrado',
+ linejoin_bevel: 'Estilo da Aresta: Chanfro',
+ linejoin_miter: 'Estilo da Aresta: Reto',
+ linejoin_round: 'Estilo da Aresta: Redondo',
+ angle: 'Mudar ângulo de rotação',
+ blur: 'Mudar valor de desfoque',
+ opacity: 'Mudar opacidade do item selecionado',
+ circle_cx: 'Mudar a coordenada cx do círculo',
+ circle_cy: 'Mudar a coordenada cy do círculo',
+ circle_r: 'Mudar o raio do círculo',
+ ellipse_cx: 'Mudar a coordenada cx da elípse',
+ ellipse_cy: 'Mudar a coordenada cy da elípse',
+ ellipse_rx: 'Mudar o raio x da elípse',
+ ellipse_ry: 'Mudar o raio y da elípse',
+ line_x1: 'Mudar a coordenada x do início da linha',
+ line_x2: 'Mudar a coordenada x do fim da linha',
+ line_y1: 'Mudar a coordenada y do início da linha',
+ line_y2: 'Mudar a coordenada y do fim da linha',
+ rect_height: 'Mudar a altura do retângulo',
+ rect_width: 'Mudar a largura do retângulo',
+ corner_radius: 'Mudar o raio da aresta do retângulo',
+ image_width: 'Mudar a largura da imagem',
+ image_height: 'Mudar a altura da imagem',
+ image_url: 'Mudar URL',
+ node_x: 'Mudar a coordenada x da aresta',
+ node_y: 'Mudar a coordenada y da aresta',
+ seg_type: 'Mudar o tipo de segmento',
+ straight_segments: 'Reto',
+ curve_segments: 'Curvo',
+ text_contents: 'Mudar conteúdo do texto',
+ font_family: 'Mudar o estilo da fonte',
+ font_size: 'Mudar o tamanho da fonte',
+ bold: 'Negrito',
+ italic: 'Italico'
+ },
+ tools: {
+ main_menu: 'Menu Principal',
+ bkgnd_color_opac: 'Mudar cor/opacidade do fundo',
+ connector_no_arrow: 'Sem flecha',
+ fitToContent: 'Ajustar ao conteúdo',
+ fit_to_all: 'Ajustar a todo conteúdo',
+ fit_to_canvas: 'Ajustar à tela',
+ fit_to_layer_content: 'Ajustar ao conteúdo da camada',
+ fit_to_sel: 'Ajustar à seleção',
+ align_relative_to: 'Alinhar em relação à ...',
+ relativeTo: 'Referência:',
+ page: 'página',
+ largest_object: 'maior objeto',
+ selected_objects: 'objetos selecionados',
+ smallest_object: 'menor objeto',
+ new_doc: 'Nova imagem',
+ open_doc: 'Abrir imagem',
+ export_img: 'Export',
+ save_doc: 'Salvar imagem',
+ import_doc: 'Importar SVG',
+ align_to_page: 'Alinhar elemento na página',
+ align_bottom: 'Alinhar no fundo',
+ align_center: 'Alinhar no centro',
+ align_left: 'Alinhar na esquerda',
+ align_middle: 'Alinhar no meio',
+ align_right: 'Alinhar na direita',
+ align_top: 'Alinhar no topo',
+ mode_select: 'Selecão',
+ mode_fhpath: 'Lápis',
+ mode_line: 'Linha',
+ mode_rect: 'Retângulo',
+ mode_square: 'Quadrado',
+ mode_fhrect: 'Retângulo a mão-livre',
+ mode_ellipse: 'Elípse',
+ mode_circle: 'Círculo',
+ mode_fhellipse: 'Elípse a mão-livre',
+ mode_path: 'Contorno',
+ mode_text: 'Texto',
+ mode_image: 'Imagem',
+ mode_zoom: 'Zoom',
+ no_embed: 'Atenção: Esta imagem não pode ser incorporada e dependerá de seu caminho para ser exibida',
+ undo: 'Desfazer',
+ redo: 'Refazer',
+ tool_source: 'Editar o código',
+ wireframe_mode: 'Modo linhas',
+ clone: 'Clonar Elemento(s)',
+ del: 'Deletar Elemento(s)',
+ group_elements: 'Agrupar Elementos',
+ make_link: 'Criar (hyper)link',
+ set_link_url: 'Alterar URL (em branco para remover)',
+ to_path: 'Converter para Contorno',
+ reorient_path: 'Reorientar contorno',
+ ungroup: 'Desagrupar Elementos',
+ docprops: 'Propriedades',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Mover para o fundo',
+ move_top: 'Mover para o topo',
+ node_clone: 'Clonar Aresta',
+ node_delete: 'Deletar Aresta',
+ node_link: 'Alinhar pontos de controle',
+ add_subpath: 'Adicionar contorno',
+ openclose_path: 'Abrir/Fechar contorno',
+ source_save: 'Salvar',
+ cut: 'Recortar',
+ copy: 'Copiar',
+ paste: 'Colar',
+ paste_in_place: 'Colar no mesmo local',
+ "delete": 'Deletar',
+ group: 'Agrupar',
+ move_front: 'Trazer para Frente',
+ move_up: 'Avançar',
+ move_down: 'Recuar',
+ move_back: 'Enviar para Trás'
+ },
+ layers: {
+ layer: 'Camada',
+ layers: 'Camadas',
+ del: 'Deletar Camada',
+ move_down: 'Enviar Camada para Trás',
+ "new": 'Nova Camada',
+ rename: 'Renomear Camada',
+ move_up: 'Trazer Camada para Frente',
+ dupe: 'Duplicar Camada',
+ merge_down: 'Achatar para baixo',
+ merge_all: 'Achatar todas',
+ move_elems_to: 'Mover elementos para:',
+ move_selected: 'Mover elementos selecionados para outra camada'
+ },
+ config: {
+ image_props: 'Propriedades',
+ doc_title: 'Título',
+ doc_dims: 'Dimensões',
+ included_images: 'Imagens',
+ image_opt_embed: 'Incorporadas (arquivos locais)',
+ image_opt_ref: 'Usar referência',
+ editor_prefs: 'Preferências',
+ icon_size: 'Tamanho dos ícones',
+ language: 'Idioma',
+ background: 'Fundo da página',
+ editor_img_url: 'URL da Imagem',
+ editor_bg_note: 'Atenção: Fundo da página não será salvo.',
+ icon_large: 'Grande',
+ icon_medium: 'Médio',
+ icon_small: 'Pequeno',
+ icon_xlarge: 'Extra Grande',
+ select_predefined: 'Modelos:',
+ units_and_rulers: 'Unidade & Réguas',
+ show_rulers: 'Mostrar réguas',
+ base_unit: 'Unidade base:',
+ grid: 'Grade',
+ snapping_onoff: 'Snap on/off',
+ snapping_stepsize: 'Intensidade do Snap:'
+ },
+ notification: {
+ invalidAttrValGiven: 'Valor inválido',
+ noContentToFitTo: 'Não há conteúdo',
+ dupeLayerName: 'Nome duplicado',
+ enterUniqueLayerName: 'Insira um nome único',
+ enterNewLayerName: 'Insira um novo nome',
+ layerHasThatName: 'A camada já pussui este nome',
+ QmoveElemsToLayer: 'Mover elementos selecionados para a camada: \'%s\'?',
+ QwantToClear: 'Deseja criar um novo arquivo?\nO histórico também será apagado!',
+ QwantToOpen: 'Deseja abrir um novo arquivo?\nO histórico também será apagado!',
+ QerrorsRevertToSource: 'Foram encontrados erros ná análise do código SVG.\nReverter para o código SVG original?',
+ QignoreSourceChanges: 'Ignorar as mudanças no código SVG?',
+ featNotSupported: 'Recurso não suportado',
+ enterNewImgURL: 'Insira nova URL da imagem',
+ defsFailOnSave: 'Atenção: Devido a um bug em seu navegador, esta imagem pode apresentar erros, porém será salva corretamente.',
+ loadingImage: 'Carregando imagem, por favor aguarde...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Atenção para as seguintes questões: ',
+ unsavedChanges: 'Existem alterações não salvas.',
+ enterNewLinkURL: 'Insira novo URL do hyperlink',
+ errorLoadingSVG: 'Erro: Impossível carregar dados SVG',
+ URLLoadFail: 'Impossível carregar deste URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ptBR$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ptBR
+});
+
+var lang_ptPT = {
+ lang: 'pt-PT',
+ dir: 'ltr',
+ common: {
+ ok: 'Salvar',
+ cancel: 'Cancelar',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Clique para mudar a cor de preenchimento, shift-clique para mudar a cor do curso',
+ zoom_level: 'Alterar o nível de zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Alterar a cor de preenchimento',
+ stroke_color: 'Mudar a cor do curso',
+ stroke_style: 'Alterar o estilo do traço do curso',
+ stroke_width: 'Alterar a largura do curso',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Alterar o ângulo de rotação',
+ blur: 'Change gaussian blur value',
+ opacity: 'Mude a opacidade item selecionado',
+ circle_cx: 'Cx Mudar círculo de coordenadas',
+ circle_cy: 'Círculo Mudança cy coordenar',
+ circle_r: 'Alterar círculo de raio',
+ ellipse_cx: 'Alterar elipse cx coordenar',
+ ellipse_cy: 'Elipse Mudança cy coordenar',
+ ellipse_rx: 'Raio X Change elipse',
+ ellipse_ry: 'Raio y Change elipse',
+ line_x1: 'Altere a linha de partida coordenada x',
+ line_x2: 'Altere a linha está terminando coordenada x',
+ line_y1: 'Mudança na linha de partida coordenada y',
+ line_y2: 'Mudança de linha está terminando coordenada y',
+ rect_height: 'Alterar altura do retângulo',
+ rect_width: 'Alterar a largura retângulo',
+ corner_radius: 'Alterar Corner Rectangle Radius',
+ image_width: 'Alterar a largura da imagem',
+ image_height: 'Alterar altura da imagem',
+ image_url: 'Alterar URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Alterar o conteúdo de texto',
+ font_family: 'Alterar fonte Família',
+ font_size: 'Alterar tamanho de letra',
+ bold: 'Bold Text',
+ italic: 'Texto em itálico'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Mudar a cor de fundo / opacidade',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Ajustar ao conteúdo',
+ fit_to_all: 'Ajustar a todo o conteúdo',
+ fit_to_canvas: 'Ajustar à tela',
+ fit_to_layer_content: 'Ajustar o conteúdo da camada de',
+ fit_to_sel: 'Ajustar à selecção',
+ align_relative_to: 'Alinhar em relação a ...',
+ relativeTo: 'em relação ao:',
+ page: 'Página',
+ largest_object: 'maior objeto',
+ selected_objects: 'objetos eleitos',
+ smallest_object: 'menor objeto',
+ new_doc: 'Nova Imagem',
+ open_doc: 'Abrir Imagem',
+ export_img: 'Export',
+ save_doc: 'Salvar Imagem',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Alinhar ao centro',
+ align_left: 'Alinhar à Esquerda',
+ align_middle: 'Alinhar Médio',
+ align_right: 'Alinhar à Direita',
+ align_top: 'Align Top',
+ mode_select: 'Selecione a ferramenta',
+ mode_fhpath: 'Ferramenta Lápis',
+ mode_line: 'Ferramenta Linha',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Elipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Ferramenta de Texto',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Desfazer',
+ redo: 'Refazer',
+ tool_source: 'Fonte Editar',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elementos do Grupo',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Elementos Desagrupar',
+ docprops: 'Propriedades do Documento',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Salvar',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move camada para baixo',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Selecione predefinidos:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ptPT$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ptPT
+});
+
+var lang_ro = {
+ lang: 'ro',
+ dir: 'ltr',
+ common: {
+ ok: 'Ok',
+ cancel: 'Anulaţi',
+ key_backspace: 'backspace',
+ key_del: 'ştergere',
+ key_down: 'jos',
+ key_up: 'sus',
+ more_opts: 'Mai multe opţiuni',
+ url: 'URL',
+ width: 'Lăţime',
+ height: 'Înălţime'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Arătaţi/ascundeţi mai multe unelte de contur',
+ palette_info: 'Faceţi clic pentru a schimba culoarea de umplere, Shift-clic pentru a schimba culoarea de contur',
+ zoom_level: 'Schimbarea nivelului de zoom',
+ panel_drag: 'Trageţi la stanga/dreapta pentru redimensionare panou lateral',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identificare element',
+ fill_color: 'Schimbarea culorii de umplere',
+ stroke_color: 'Schimbarea culorii de contur',
+ stroke_style: 'Schimbarea stilului de contur',
+ stroke_width: 'Schimbarea lăţimii conturului',
+ pos_x: 'Schimbă coordonata X',
+ pos_y: 'Schimbă coordonata Y',
+ linecap_butt: 'Capăt de linie: Butuc',
+ linecap_round: 'Capăt de linie: Rotund',
+ linecap_square: 'Capăt de linie: Pătrat',
+ linejoin_bevel: 'Articulaţia liniei: Teşită',
+ linejoin_miter: 'Articulaţia liniei: Unghi ascuţit',
+ linejoin_round: 'Articulaţia liniei: Rotundă',
+ angle: 'Schimbarea unghiul de rotaţie',
+ blur: 'Schimbarea valorii estomparii gaussiene',
+ opacity: 'Schimbarea gradului de opacitate',
+ circle_cx: 'Schimbarea coordonatei CX a cercului',
+ circle_cy: 'Schimbarea coordonatei CY a cercului',
+ circle_r: 'Schimbarea razei cercului',
+ ellipse_cx: 'Schimbarea coordonatei CX a elipsei',
+ ellipse_cy: 'Schimbarea coordonatei CY a elipsei',
+ ellipse_rx: 'Schimbarea razei elipsei X',
+ ellipse_ry: 'Schimbarea razei elipsei Y',
+ line_x1: 'Schimbarea coordonatei x a punctului de start',
+ line_x2: 'Schimbarea coordonatei x a punctului final',
+ line_y1: 'Schimbarea coordonatei y a punctului de start',
+ line_y2: 'Schimbare coordonatei y a punctului final',
+ rect_height: 'Schimbarea înălţimii dreptunghiului',
+ rect_width: 'Schimbarea lăţimii dreptunghiului',
+ corner_radius: 'Schimbarea razei colţului dreptunghiului',
+ image_width: 'Schimbarea lăţimii imaginii',
+ image_height: 'Schimbarea înălţimii imaginii',
+ image_url: 'Schimbaţi URL-ul',
+ node_x: 'Schimbă coordonata x a punctului',
+ node_y: 'Schimbă coordonata x a punctului',
+ seg_type: 'Schimbă tipul de segment',
+ straight_segments: 'Drept',
+ curve_segments: 'Curb',
+ text_contents: 'Schimbarea conţinutului textului',
+ font_family: 'Modificare familie de fonturi',
+ font_size: 'Schimbă dimensiunea fontului',
+ bold: 'Text Îngroşat',
+ italic: 'Text Înclinat'
+ },
+ tools: {
+ main_menu: 'Menu Principal',
+ bkgnd_color_opac: 'Schimbare culoare de fundal / opacitate',
+ connector_no_arrow: 'Fără săgeată',
+ fitToContent: 'Dimensionare la conţinut',
+ fit_to_all: 'Potrivire la tot conţinutul',
+ fit_to_canvas: 'Potrivire la Şevalet',
+ fit_to_layer_content: 'Potrivire la conţinutul stratului',
+ fit_to_sel: 'Potrivire la selecţie',
+ align_relative_to: 'Aliniere în raport cu ...',
+ relativeTo: 'în raport cu:',
+ page: 'pagină',
+ largest_object: 'cel mai mare obiect',
+ selected_objects: 'obiectele alese',
+ smallest_object: 'cel mai mic obiect',
+ new_doc: 'Imagine nouă',
+ open_doc: 'Imagine deschisă',
+ export_img: 'Export',
+ save_doc: 'Salvare imagine',
+ import_doc: 'Importare SVG',
+ align_to_page: 'Aliniere la pagină',
+ align_bottom: 'Aliniere jos',
+ align_center: 'Aliniere la centru',
+ align_left: 'Aliniere la stânga',
+ align_middle: 'Aliniere la mijloc',
+ align_right: 'Aliniere la dreapta',
+ align_top: 'Aliniere sus',
+ mode_select: 'Unealtă de Selectare',
+ mode_fhpath: 'Unealtă de Traiectorie',
+ mode_line: 'Unealtă de Linie',
+ mode_rect: 'Unealtă de Dreptunghi',
+ mode_square: 'Unealtă de Pătrat',
+ mode_fhrect: 'Dreptunghi cu mana liberă',
+ mode_ellipse: 'Elipsă',
+ mode_circle: 'Cerc',
+ mode_fhellipse: 'Elipsă cu mana liberă',
+ mode_path: 'Unealtă de Traiectorie',
+ mode_text: 'Unealtă de Text',
+ mode_image: 'Unealtă de Imagine',
+ mode_zoom: 'Unealtă de Zoom',
+ no_embed: 'NOTE: Aceasta imagine nu poate fi inglobată. Va depinde de aceasta traiectorie pentru a fi prezentată.',
+ undo: 'Anulare',
+ redo: 'Refacere',
+ tool_source: 'Editare Cod Sursă',
+ wireframe_mode: 'Mod Schelet',
+ clone: 'Clonează Elementul/ele',
+ del: 'Şterge Elementul/ele',
+ group_elements: 'Grupare Elemente',
+ make_link: 'Crează (hyper)link',
+ set_link_url: 'Setează link URL (lăsaţi liber pentru eliminare)',
+ to_path: 'Converteşte in Traiectorie',
+ reorient_path: 'Reorientează Traiectoria',
+ ungroup: 'Anulare Grupare Elemente',
+ docprops: 'Proprietăţile Documentului',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Mutare în jos',
+ move_top: 'Mutare în sus',
+ node_clone: 'Clonează Punct',
+ node_delete: 'Şterge Punct',
+ node_link: 'Uneşte Punctele de Control',
+ add_subpath: 'Adăugaţi sub-traiectorie',
+ openclose_path: 'Deschide/inchide sub-traiectorie',
+ source_save: 'Folosiţi Schimbările',
+ cut: 'Tăiere',
+ copy: 'Copiere',
+ paste: 'Reproducere',
+ paste_in_place: 'Reproducere pe loc',
+ "delete": 'Ştergere',
+ group: 'Group',
+ move_front: 'Pune in faţa',
+ move_up: 'Pune in spate',
+ move_down: 'Trimite in faţa',
+ move_back: 'Trimite in spate'
+ },
+ layers: {
+ layer: 'Strat',
+ layers: 'Straturi',
+ del: 'Ştergeţi Strat',
+ move_down: 'Mutare Strat în Jos',
+ "new": 'Strat Nou',
+ rename: 'Redenumiţi Stratul',
+ move_up: 'Mutare Strat în Sus',
+ dupe: 'Duplicaţi Stratul',
+ merge_down: 'Fuzionare in jos',
+ merge_all: 'Fuzionarea tuturor',
+ move_elems_to: 'Mută elemente la:',
+ move_selected: 'Mută elementele selectate pe un alt strat'
+ },
+ config: {
+ image_props: 'Proprietăţile Imaginii',
+ doc_title: 'Titlul',
+ doc_dims: 'Dimensiunile Şevaletului',
+ included_images: 'Imaginile Incluse',
+ image_opt_embed: 'Includeţi Datele (fişiere locale)',
+ image_opt_ref: 'Foloseşte referinţe la fişiere',
+ editor_prefs: 'Preferinţele Editorului',
+ icon_size: 'Dimensiunile Butoanelor',
+ language: 'Limba',
+ background: 'Fondul Editorului',
+ editor_img_url: 'URL-ul Imaginii',
+ editor_bg_note: 'Notă: Fondul nu va fi salvat cu imaginea.',
+ icon_large: 'Mari',
+ icon_medium: 'Medii',
+ icon_small: 'Mici',
+ icon_xlarge: 'Foarte Mari',
+ select_predefined: 'Selecţii predefinite:',
+ units_and_rulers: 'Unitati si Rigle',
+ show_rulers: 'Arată Riglele',
+ base_unit: 'Unitate de baza:',
+ grid: 'Caroiaj',
+ snapping_onoff: 'Fixare on/off',
+ snapping_stepsize: 'Dimensiunea pasului de fixare:'
+ },
+ notification: {
+ invalidAttrValGiven: 'Valoarea data nu este validă',
+ noContentToFitTo: 'Fara conţinut de referinţă',
+ dupeLayerName: 'Deja exista un strat numit asa!',
+ enterUniqueLayerName: 'Rog introduceţi un nume unic',
+ enterNewLayerName: 'Rog introduceţi un nume pentru strat',
+ layerHasThatName: 'Statul deja are acest nume',
+ QmoveElemsToLayer: "Mutaţi elementele selectate pe stratul '%s'?",
+ QwantToClear: 'Doriti să ştergeţi desenul?\nAceasta va sterge si posibilitatea de anulare!',
+ QwantToOpen: 'Doriti sa deschideţi un nou fişier?\nAceasta va şterge istoricul!',
+ QerrorsRevertToSource: 'Sunt erori de parsing in sursa SVG.\nRevenire la sursa SVG orginală?',
+ QignoreSourceChanges: 'Ignoraţi schimbarile la sursa SVG?',
+ featNotSupported: 'Funcţie neimplementată',
+ enterNewImgURL: 'Introduceţi noul URL pentru Imagine',
+ defsFailOnSave: 'NOTE: Din cauza unei erori in browserul dv., aceasta imagine poate apare gresit (fara gradiente sau elemente). Însă va apare corect dupa salvare.',
+ loadingImage: 'Imaginea se incarcă, va rugam asteptaţi...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'De asemenea remarcati urmatoarele probleme: ',
+ unsavedChanges: 'Sunt schimbări nesalvate.',
+ enterNewLinkURL: 'IntroduAliniere în raport cu ...sceţi noul URL',
+ errorLoadingSVG: 'Eroare: Nu se pot încărca datele SVG',
+ URLLoadFail: 'Nu se poate încărca de la URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_ro$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ro
+});
+
+var lang_ru = {
+ lang: 'ru',
+ dir: 'ltr',
+ common: {
+ ok: 'Сохранить',
+ cancel: 'Отменить',
+ key_backspace: 'Backspace',
+ key_del: 'Delete',
+ key_down: 'Вниз',
+ key_up: 'Вверх',
+ more_opts: 'Доп. Настройки',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Показать/скрыть инструменты обводки',
+ palette_info: 'Нажмите для изменения цвета заливки, Shift-Click изменить цвета обводки',
+ zoom_level: 'Изменить масштаб',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Качество:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Идентификатор элемента',
+ fill_color: 'Изменить цвет заливки',
+ stroke_color: 'Изменить цвет обводки',
+ stroke_style: 'Изменить стиль обводки',
+ stroke_width: 'Изменить толщину обводки',
+ pos_x: 'Изменить горизонтальный координат',
+ pos_y: 'Изменить вертикальный координат',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Изменить угол поворота',
+ blur: 'Изменяет значение размытия',
+ opacity: 'Изменить непрозрачность элемента',
+ circle_cx: 'Изменить горизонтальный координат (CX) окружности',
+ circle_cy: 'Изменить вертикальный координат (CY) окружности',
+ circle_r: 'Изменить радиус окружности',
+ ellipse_cx: 'Изменить горизонтальный координат (CX) эллипса',
+ ellipse_cy: 'Изменить вертикальный координат (CY) эллипса',
+ ellipse_rx: 'Изменить горизонтальный радиус эллипса',
+ ellipse_ry: 'Изменить вертикальный радиус эллипса',
+ line_x1: 'Изменить горизонтальный координат X начальной точки линии',
+ line_x2: 'Изменить горизонтальный координат X конечной точки линии',
+ line_y1: 'Изменить вертикальный координат Y начальной точки линии',
+ line_y2: 'Изменить вертикальный координат Y конечной точки линии',
+ rect_height: 'Изменениe высоту прямоугольника',
+ rect_width: 'Измененить ширину прямоугольника',
+ corner_radius: 'Радиус закругленности угла',
+ image_width: 'Изменить ширину изображения',
+ image_height: 'Изменить высоту изображения',
+ image_url: 'Изменить URL',
+ node_x: 'Изменить горизонтальную координату узла',
+ node_y: 'Изменить вертикальную координату узла',
+ seg_type: 'Изменить вид',
+ straight_segments: 'Отрезок',
+ curve_segments: 'Сплайн',
+ text_contents: 'Изменить содержание текста',
+ font_family: 'Изменить семейство шрифтов',
+ font_size: 'Изменить размер шрифта',
+ bold: 'Жирный',
+ italic: 'Курсив'
+ },
+ tools: {
+ main_menu: 'Главное меню',
+ bkgnd_color_opac: 'Изменить цвет фона или прозрачность',
+ connector_no_arrow: 'Нет стрелки',
+ fitToContent: 'Под размер содержимого',
+ fit_to_all: 'Под размер всех слоев',
+ fit_to_canvas: 'Под размер холста',
+ fit_to_layer_content: 'Под размер содержания слоя',
+ fit_to_sel: 'Под размер выделенного',
+ align_relative_to: 'Выровнять по отношению к ...',
+ relativeTo: 'По отношению к ',
+ page: 'страница',
+ largest_object: 'Наибольший объект',
+ selected_objects: 'Выделенные объекты',
+ smallest_object: 'Самый маленький объект',
+ new_doc: 'Создать изображение',
+ open_doc: 'Открыть изображение',
+ export_img: 'Экспорт',
+ save_doc: 'Сохранить изображение',
+ import_doc: 'Импорт изображения',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Выровнять по нижнему краю',
+ align_center: 'Центрировать по вертикальной оси',
+ align_left: 'По левому краю',
+ align_middle: 'Центрировать по горизонтальной оси',
+ align_right: 'По правому краю',
+ align_top: 'Выровнять по верхнему краю',
+ mode_select: 'Выделить',
+ mode_fhpath: 'Карандаш',
+ mode_line: 'Линия',
+ mode_rect: 'Прямоугольник',
+ mode_square: 'Квадрат',
+ mode_fhrect: 'Прямоугольник от руки',
+ mode_ellipse: 'Эллипс',
+ mode_circle: 'Окружность',
+ mode_fhellipse: 'Эллипс от руки',
+ mode_path: 'Контуры',
+ mode_text: 'Текст',
+ mode_image: 'Изображение',
+ mode_zoom: 'Лупа',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Отменить',
+ redo: 'Вернуть',
+ tool_source: 'Редактировать исходный код',
+ wireframe_mode: 'Каркас',
+ clone: 'Клонировать элемент(ы)',
+ del: 'Удалить элемент(ы)',
+ group_elements: 'Создать группу элементов',
+ make_link: 'Сделать ссылкой',
+ set_link_url: 'Ссылка(оставьте пустым для удаления)',
+ to_path: 'В контур',
+ reorient_path: 'Изменить ориентацию контура',
+ ungroup: 'Разгруппировать элементы',
+ docprops: 'Свойства документа',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Опустить',
+ move_top: 'Поднять',
+ node_clone: 'Создать копию узла',
+ node_delete: 'Удалить узел',
+ node_link: 'Связать узлы',
+ add_subpath: 'Добавить линию',
+ openclose_path: 'Разомкнуть/Замкнуть линию',
+ source_save: 'Сохранить',
+ cut: 'Вырезать',
+ copy: 'Копировать',
+ paste: 'Вставить',
+ paste_in_place: 'Вставить сюда',
+ Delete: 'Удалить',
+ group: 'Группировка',
+ move_front: 'На передний план',
+ move_up: 'Передвинуть вперед',
+ move_down: 'Передвинуть назад',
+ move_back: 'На задний план'
+ },
+ layers: {
+ layer: 'Слой',
+ layers: 'Слои',
+ del: 'Удалить слой',
+ move_down: 'Опустить слой',
+ "new": 'Создать слой',
+ rename: 'Переименовать Слой',
+ move_up: 'Поднять слой',
+ dupe: 'Копировать слой',
+ merge_down: 'Объединить с нижним',
+ merge_all: 'Объединить все',
+ move_elems_to: 'Переместить выделенные элементы:',
+ move_selected: 'Переместить выделенные элементы на другой слой'
+ },
+ config: {
+ image_props: 'Свойства изображения',
+ doc_title: 'Название',
+ doc_dims: 'Размеры холста',
+ included_images: 'Встроенные изображения',
+ image_opt_embed: 'Локальные файлы',
+ image_opt_ref: 'По ссылкам',
+ editor_prefs: 'Параметры',
+ icon_size: 'Размер значков',
+ language: 'Язык',
+ background: 'Фон',
+ editor_img_url: 'Изображение URL',
+ editor_bg_note: '(Фон не сохранится вместе с изображением.)',
+ icon_large: 'Большие',
+ icon_medium: 'Средние',
+ icon_small: 'Малые',
+ icon_xlarge: 'Огромные',
+ select_predefined: 'Выбирать предопределенный размер',
+ units_and_rulers: 'Единицы & Линейки',
+ show_rulers: 'Показывать линейки',
+ base_unit: 'Единицы:',
+ grid: 'Сетка',
+ snapping_onoff: 'Привязка вкл/выкл',
+ snapping_stepsize: 'Шаг привязки:',
+ grid_color: 'Цвет сетки'
+ },
+ notification: {
+ invalidAttrValGiven: 'Некорректное значение аргумента',
+ noContentToFitTo: 'Нет содержания, по которому выровнять.',
+ dupeLayerName: 'Слой с этим именем уже существует.',
+ enterUniqueLayerName: 'Пожалуйста, введите имя для слоя.',
+ enterNewLayerName: 'Пожалуйста, введите новое имя.',
+ layerHasThatName: 'Слой уже называется этим именем.',
+ QmoveElemsToLayer: "Переместить выделенные элементы на слой '%s'?",
+ QwantToClear: 'Вы хотите очистить?\nИстория действий будет забыта!',
+ QwantToOpen: 'Открыть новый файл?\nИстория действий будет забыта!',
+ QerrorsRevertToSource: 'Была проблема при парсинге вашего SVG исходного кода.\nЗаменить его предыдущим SVG кодом?',
+ QignoreSourceChanges: 'Забыть без сохранения?',
+ featNotSupported: 'Возможность не реализована',
+ enterNewImgURL: 'Введите новый URL изображения',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Загрузка изоражения, придется подождать...',
+ saveFromBrowser: "Выберите 'Сохранить как...' в вашем браузере (возможно через меню файл или в контекстном меню) чтобы сохранить как файл %s.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'Есть несохраненные изменения.',
+ enterNewLinkURL: 'Введите новую ссылку URL',
+ errorLoadingSVG: 'Ошибка: Не удалось загрузить SVG данные',
+ URLLoadFail: 'Не удалось загрузить по ссылке URL',
+ retrieving: 'Получение \'%s\' ...',
+ popupWindowBlocked: 'Всплывающее окно могло заблокироваться браузером',
+ exportNoBlur: 'Размытые элементы отображены как неразмытые',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Текст может показываться не так как должен'
+ }
+};
+
+var lang_ru$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_ru
+});
+
+var lang_sk = {
+ lang: 'sk',
+ dir: 'ltr',
+ common: {
+ ok: 'Uložiť',
+ cancel: 'Zrušiť',
+ key_backspace: 'Backspace',
+ key_del: 'Delete',
+ key_down: 'šípka dole',
+ key_up: 'šípka hore',
+ more_opts: 'Viac možností',
+ url: 'URL',
+ width: 'Šírka',
+ height: 'Výška'
+ },
+ misc: {
+ powered_by: 'Beží na'
+ },
+ ui: {
+ toggle_stroke_tools: 'Skryť/ukázať viac nástrojov pre krivku',
+ palette_info: 'Kliknutím zmeníte farbu výplne, so Shiftom zmeníte farbu obrysu',
+ zoom_level: 'Zmena priblíženia',
+ panel_drag: 'Potiahnutie vľavo/vpravo na zmenu veľkosti bočného panela',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Zmeniť ID elementu',
+ fill_color: 'Zmeniť farbu výplne',
+ stroke_color: 'Zmeniť farbu obrysu',
+ stroke_style: 'Zmeniť štýl obrysu',
+ stroke_width: 'Zmeniť hrúbku obrysu',
+ pos_x: 'Zmeniť súradnicu X',
+ pos_y: 'Zmeniť súradnicu Y',
+ linecap_butt: 'Koniec čiary: presný',
+ linecap_round: 'Koniec čiary: zaoblený',
+ linecap_square: 'Koniec čiary: so štvorcovým presahom',
+ linejoin_bevel: 'Napojenie čiar: skosené',
+ linejoin_miter: 'Napojenie čiar: ostré',
+ linejoin_round: 'Napojenie čiar: oblé',
+ angle: 'Zmeniť uhol natočenia',
+ blur: 'Zmeniť intenzitu rozmazania',
+ opacity: 'Zmeniť prehľadnosť vybraných položiek',
+ circle_cx: 'Zmeniť súradnicu X stredu kružnice',
+ circle_cy: 'Zmeniť súradnicu Y stredu kružnice',
+ circle_r: 'Zmeniť polomer kružnice',
+ ellipse_cx: 'Zmeniť súradnicu X stredu elipsy',
+ ellipse_cy: 'Zmeniť súradnicu Y stredu elipsy',
+ ellipse_rx: 'Zmeniť polomer X elipsy',
+ ellipse_ry: 'Zmeniť polomer Y elipsy',
+ line_x1: 'Zmeniť počiatočnú súradnicu X čiary',
+ line_x2: 'Zmeniť koncovú súradnicu X čiary',
+ line_y1: 'Zmeniť počiatočnú súradnicu Y čiary',
+ line_y2: 'Zmeniť koncovú súradnicu Y čiary',
+ rect_height: 'Zmena výšku obdĺžnika',
+ rect_width: 'Zmeniť šírku obdĺžnika',
+ corner_radius: 'Zmeniť zaoblenie rohov obdĺžnika',
+ image_width: 'Zmeniť šírku obrázka',
+ image_height: 'Zmeniť výšku obrázka',
+ image_url: 'Zmeniť URL',
+ node_x: 'Zmeniť uzlu súradnicu X',
+ node_y: 'Zmeniť uzlu súradnicu Y',
+ seg_type: 'Zmeniť typ segmentu',
+ straight_segments: 'Rovný',
+ curve_segments: 'Krivka',
+ text_contents: 'Zmeniť text',
+ font_family: 'Zmeniť font',
+ font_size: 'Zmeniť veľkosť písma',
+ bold: 'Tučné',
+ italic: 'Kurzíva'
+ },
+ tools: {
+ main_menu: 'Hlavné menu',
+ bkgnd_color_opac: 'Zmeniť farbu a priehľadnosť pozadia',
+ connector_no_arrow: 'Spojnica bez šípok',
+ fitToContent: 'Prispôsobiť obsahu',
+ fit_to_all: 'Prisposobiť celému obsahu',
+ fit_to_canvas: 'Prispôsobiť stránke',
+ fit_to_layer_content: 'Prispôsobiť obsahu vrstvy',
+ fit_to_sel: 'Prispôsobiť výberu',
+ align_relative_to: 'Zarovnať relatívne k ...',
+ relativeTo: 'vzhľadom k:',
+ page: 'stránke',
+ largest_object: 'najväčšiemu objektu',
+ selected_objects: 'zvoleným objektom',
+ smallest_object: 'najmenšiemu objektu',
+ new_doc: 'Nový obrázok',
+ open_doc: 'Otvoriť obrázok',
+ export_img: 'Export',
+ save_doc: 'Uložiť obrázok',
+ import_doc: 'Import Image',
+ align_to_page: 'Zarovnať element na stránku',
+ align_bottom: 'Zarovnať dole',
+ align_center: 'Zarovnať na stred',
+ align_left: 'Zarovnať doľava',
+ align_middle: 'Zarovnať na stred',
+ align_right: 'Zarovnať doprava',
+ align_top: 'Zarovnať hore',
+ mode_select: 'Výber',
+ mode_fhpath: 'Ceruzka',
+ mode_line: 'Čiara',
+ mode_rect: 'Obdĺžnik',
+ mode_square: 'Štvorec',
+ mode_fhrect: 'Obdĺžnik voľnou rukou',
+ mode_ellipse: 'Elipsa',
+ mode_circle: 'Kružnica',
+ mode_fhellipse: 'Elipsa voľnou rukou',
+ mode_path: 'Krivka',
+ mode_text: 'Text',
+ mode_image: 'Obrázok',
+ mode_zoom: 'Priblíženie',
+ no_embed: 'POZNÁMKA: Tento obrázok nemôže byť vložený. Jeho zobrazenie bude závisieť na jeho ceste',
+ undo: 'Späť',
+ redo: 'Opakovať',
+ tool_source: 'Upraviť SVG kód',
+ wireframe_mode: 'Drôtový model',
+ clone: 'Klonuj element(y)',
+ del: 'Zmaž element(y)',
+ group_elements: 'Zoskupiť elementy',
+ make_link: 'Naviaž odkaz (hyper)link',
+ set_link_url: 'Nastav odkaz URL (ak prázdny, odstráni sa)',
+ to_path: 'Previesť na krivku',
+ reorient_path: 'Zmeniť orientáciu krivky',
+ ungroup: 'Zrušiť skupinu',
+ docprops: 'Vlastnosti dokumentu',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Presunúť spodok',
+ move_top: 'Presunúť na vrch',
+ node_clone: 'Klonovať uzol',
+ node_delete: 'Zmazať uzol',
+ node_link: 'Prepojiť kontrolné body',
+ add_subpath: 'Pridať ďalšiu súčasť krivky',
+ openclose_path: 'Otvoriť/uzatvoriť súčasť krivky',
+ source_save: 'Uložiť',
+ cut: 'Vystrihnutie',
+ copy: 'Kópia',
+ paste: 'Vloženie',
+ paste_in_place: 'Vloženie na pôvodnom mieste',
+ "delete": 'Zmazanie',
+ group: 'Group',
+ move_front: 'Vysuň navrch',
+ move_up: 'Vysuň vpred',
+ move_down: 'Zasuň na spodok',
+ move_back: 'Zasuň dozadu'
+ },
+ layers: {
+ layer: 'Vrstva',
+ layers: 'Vrstvy',
+ del: 'Odstrániť vrstvu',
+ move_down: 'Presunúť vrstvu dole',
+ "new": 'Nová vrstva',
+ rename: 'Premenovať vrstvu',
+ move_up: 'Presunúť vrstvu hore',
+ dupe: 'Zduplikovať vrstvu',
+ merge_down: 'Zlúčiť s vrstvou dole',
+ merge_all: 'Zlúčiť všetko',
+ move_elems_to: 'Presunúť elementy do:',
+ move_selected: 'Presunúť vybrané elementy do inej vrstvy'
+ },
+ config: {
+ image_props: 'Vlastnosti obrázka',
+ doc_title: 'Titulok',
+ doc_dims: 'Rozmery plátna',
+ included_images: 'Vložené obrázky',
+ image_opt_embed: 'Vložiť data (lokálne súbory)',
+ image_opt_ref: 'Použiť referenciu na súbor',
+ editor_prefs: 'Vlastnosti editora',
+ icon_size: 'Veľkosť ikon',
+ language: 'Jazyk',
+ background: 'Zmeniť pozadie',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Poznámka: Pozadie nebude uložené spolu s obrázkom.',
+ icon_large: 'Veľká',
+ icon_medium: 'Stredná',
+ icon_small: 'Malá',
+ icon_xlarge: 'Extra veľká',
+ select_predefined: 'Vybrať preddefinovaný:',
+ units_and_rulers: 'Jednotky & Pravítka',
+ show_rulers: 'Ukáž pravítka',
+ base_unit: 'Základné jednotky:',
+ grid: 'Mriežka',
+ snapping_onoff: 'Priväzovanie (do mriežky) zap/vyp',
+ snapping_stepsize: 'Priväzovanie (do mriežky) veľkosť kroku:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Neplatná hodnota',
+ noContentToFitTo: 'Vyberte oblasť na prispôsobenie',
+ dupeLayerName: 'Vrstva s daným názvom už existuje!',
+ enterUniqueLayerName: 'Zadajte jedinečný názov vrstvy',
+ enterNewLayerName: 'Zadajte názov vrstvy',
+ layerHasThatName: 'Vrstva už má zadaný tento názov',
+ QmoveElemsToLayer: "Presunúť elementy do vrstvy '%s'?",
+ QwantToClear: 'Naozaj chcete vymazať kresbu?\n(História bude taktiež vymazaná!)!',
+ QwantToOpen: 'Chcete otvoriť nový súbor?\nTo však tiež vymaže Vašu UNDO knižnicu!',
+ QerrorsRevertToSource: 'Chyba pri načítaní SVG dokumentu.\nVrátiť povodný SVG dokument?',
+ QignoreSourceChanges: 'Ignorovať zmeny v SVG dokumente?',
+ featNotSupported: 'Vlastnosť nie je podporovaná',
+ enterNewImgURL: 'Zadajte nové URL obrázka',
+ defsFailOnSave: 'POZNÁMKA: Kvôli chybe v prehliadači sa tento obrázok môže zobraziť nesprávne (napr. chýbajúce prechody či elementy). Po uložení sa zobrazí správne.',
+ loadingImage: 'Nahrávam obrázok, prosím čakajte ...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Môžu sa vyskytnúť nasledujúce problémy: ',
+ unsavedChanges: 'Sú tu neuložené zmeny.',
+ enterNewLinkURL: 'Zadajte nové URL odkazu (hyperlink)',
+ errorLoadingSVG: 'Chyba: Nedajú sa načítať SVG data',
+ URLLoadFail: 'Nemožno čítať z URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sk$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sk
+});
+
+var lang_sl = {
+ lang: 'sl',
+ dir: 'ltr',
+ common: {
+ ok: 'V redu',
+ cancel: 'Prekliči',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'dol',
+ key_up: 'gor',
+ more_opts: 'Več možnosti',
+ url: 'URL',
+ width: 'širina',
+ height: 'višina'
+ },
+ misc: {
+ powered_by: 'Izdelano z'
+ },
+ ui: {
+ toggle_stroke_tools: 'Pokaži/skrij več orodij za oris',
+ palette_info: 'Kliknite, če želite spremeniti barvo polnila, kliknite+Shift, če želite spremeniti barvo orisa',
+ zoom_level: 'Povečava',
+ panel_drag: 'Povlecite levo/desno za ogled stranske vrstice',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'ID elementa',
+ fill_color: 'Spremeni barvo polnila',
+ stroke_color: 'Spremeni barvo orisa',
+ stroke_style: 'Spremeni slog orisa',
+ stroke_width: 'Spreminjanje širino orisa',
+ pos_x: 'Spremeni X koordinato',
+ pos_y: 'Spremeni Y koordinato',
+ linecap_butt: 'Začetek črte: odsekan',
+ linecap_round: 'Začetek črte: zaobljen',
+ linecap_square: 'Začetek črte: kvadraten',
+ linejoin_bevel: 'Ovinek črte: Odsekan',
+ linejoin_miter: 'Linejoin: V kot',
+ linejoin_round: 'Linejoin: Zaobljen',
+ angle: 'Spremeni kot zasuka',
+ blur: 'Spremeni zameglitev roba',
+ opacity: 'Spremeni prosojnost',
+ circle_cx: 'Spremeni CX koordinato',
+ circle_cy: 'Spremeni CY koordinato',
+ circle_r: 'Spremeni polmer kroga',
+ ellipse_cx: 'Spremeni CX koordinato',
+ ellipse_cy: 'Spremeni CY koordinato',
+ ellipse_rx: 'Spremeni X polmer',
+ ellipse_ry: 'Spremeni Y polmer',
+ line_x1: 'Spremeni začetno X koordinato',
+ line_x2: 'Spremeni končno X koordinato',
+ line_y1: 'Spremeni začetno Y koordinato',
+ line_y2: 'Spremeni končno Y koordinato',
+ rect_height: 'Spremeni višino pravokotnika',
+ rect_width: 'Spremeni širino pravokotnika',
+ corner_radius: 'Spremeni Pravokotnik Corner Radius',
+ image_width: 'Spremeni širino slike',
+ image_height: 'Spremeni višino slike',
+ image_url: 'Spremeni URL',
+ node_x: 'Spremeni X koordinato oglišča',
+ node_y: 'Spremeni Y koordinato oglišča',
+ seg_type: 'Spremeni vrsto odseka',
+ straight_segments: 'Raven odsek',
+ curve_segments: 'Ukrivljen odsek',
+ text_contents: 'Spremeni besedilo',
+ font_family: 'Spremeni tip pisave',
+ font_size: 'Spremeni velikost pisave',
+ bold: 'Krepko',
+ italic: 'Poševno'
+ },
+ tools: {
+ main_menu: 'Glavni meni',
+ bkgnd_color_opac: 'Spremeni barvo / prosojnost',
+ connector_no_arrow: 'Brez puščice',
+ fitToContent: 'Prilagodi vsebini',
+ fit_to_all: 'Prilagodi vsemu',
+ fit_to_canvas: 'Prilagodi sliki',
+ fit_to_layer_content: 'Prilagodi sloju',
+ fit_to_sel: 'Prilagodi izboru',
+ align_relative_to: 'Poravnaj glede na ...',
+ relativeTo: 'glede na:',
+ page: 'page',
+ largest_object: 'največji objekt',
+ selected_objects: 'izbrani objekt',
+ smallest_object: 'najmanjši objekt',
+ new_doc: 'Nova slika',
+ open_doc: 'Odpri sliko',
+ export_img: 'Izvozi v PNG',
+ save_doc: 'Shrani sliko',
+ import_doc: 'Uvozi SVG',
+ align_to_page: 'Poravnaj na stran',
+ align_bottom: 'Poravnaj na dno',
+ align_center: 'Poravnaj na sredino',
+ align_left: 'Poravnaj levo',
+ align_middle: 'Poravnaj na sredino',
+ align_right: 'Poravnaj desno',
+ align_top: 'Poravnaj na vrh',
+ mode_select: 'Izberi',
+ mode_fhpath: 'Svinčnik',
+ mode_line: 'Crta',
+ mode_rect: 'Pravokotnik',
+ mode_square: 'Kvadrat',
+ mode_fhrect: 'Prostoročni pravokotnik',
+ mode_ellipse: 'Elipsa',
+ mode_circle: 'Krog',
+ mode_fhellipse: 'Prostoročna elipsa',
+ mode_path: 'Pot',
+ mode_text: 'Besedilo',
+ mode_image: 'Slika',
+ mode_zoom: 'Povečava',
+ no_embed: 'OPOMBA: Ta slika ne more biti vključena. It will depend on this path to be displayed',
+ undo: 'Razveljavi',
+ redo: 'Uveljavi',
+ tool_source: 'Uredi vir',
+ wireframe_mode: 'Wireframe način',
+ clone: 'Kloniraj element(e)',
+ del: 'Izbriši element(e)',
+ group_elements: 'Združi element(e)',
+ make_link: 'Vstavi (hiper)povezavo',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Pretvori v pot',
+ reorient_path: 'Reorient pot',
+ ungroup: 'Razdruži elemente',
+ docprops: 'Lastnosti dokumenta',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Premakni na dno',
+ move_top: 'Premakni na vrh',
+ node_clone: 'Kloniraj oglišče',
+ node_delete: 'Izbriši oglišče',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Shrani',
+ cut: 'Izreži',
+ copy: 'Kopiraj',
+ paste: 'Prilepi',
+ paste_in_place: 'Prilepi na mesto',
+ "delete": 'Izbriši',
+ group: 'Združi',
+ move_front: 'Postavi v ospredje',
+ move_up: 'Pomakni naporej',
+ move_down: 'Pomakni nazaj',
+ move_back: 'Postavi v ozadje'
+ },
+ layers: {
+ layer: 'Sloj',
+ layers: 'Sloji',
+ del: 'Izbriši sloj',
+ move_down: 'Premakni navzdol',
+ "new": 'Nov sloj',
+ rename: 'Preimenuj sloj',
+ move_up: 'Premakni navzgor',
+ dupe: 'Podvoji sloj',
+ merge_down: 'Združi s spodnjimi',
+ merge_all: 'Združi vse',
+ move_elems_to: 'Premakni elemente v:',
+ move_selected: 'Premakne elemente v drug sloj'
+ },
+ config: {
+ image_props: 'Lastnosti slike',
+ doc_title: 'Naslov',
+ doc_dims: 'Dimenzije slike',
+ included_images: 'Vključene slike',
+ image_opt_embed: 'Vključene (local files)',
+ image_opt_ref: 'Povezane (Use file reference)',
+ editor_prefs: 'Lastnosti urejevalnika',
+ icon_size: 'Velikost ikon',
+ language: 'Jezik',
+ background: 'Ozadje urejevalnika',
+ editor_img_url: 'URL slike',
+ editor_bg_note: 'OPOMBA: Ozdaje ne bo shranjeno s sliko.',
+ icon_large: 'velike',
+ icon_medium: 'srednje',
+ icon_small: 'majhne',
+ icon_xlarge: 'zelo velike',
+ select_predefined: 'Izberi prednastavljeno:',
+ units_and_rulers: 'Enote & ravnilo',
+ show_rulers: 'Pokaži ravnilo',
+ base_unit: 'Osnovne enote',
+ grid: 'Mreža',
+ snapping_onoff: 'Pripni na mrežo DA/NE',
+ snapping_stepsize: 'Snapping Step-Size:'
+ },
+ notification: {
+ invalidAttrValGiven: 'Napačna vrednost!',
+ noContentToFitTo: 'Ni vsebine za prilagajanje',
+ dupeLayerName: 'Sloj s tem imenom že obstajal!',
+ enterUniqueLayerName: 'Vnesite edinstveno ime sloja',
+ enterNewLayerName: 'Vnesite ime novega sloja',
+ layerHasThatName: 'Sloje že ima to ime',
+ QmoveElemsToLayer: "Premaknem izbrane elemente v sloj '%s'?",
+ QwantToClear: 'Ali želite počistiti risbo?\nTo bo izbrisalo tudi zgodovino korakov (ni mogoče razveljaviti)!',
+ QwantToOpen: 'Ali želite odpreti novo datoteko?\nTo bo izbrisalo tudi zgodovino korakov (ni mogoče razveljaviti)!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignoriram spremembe, narejene v SVG kodi?',
+ featNotSupported: 'Ni podprto',
+ enterNewImgURL: 'Vnesite nov URL slike',
+ defsFailOnSave: 'OPOMBA: Zaradi napake vašega brskalnika obstaja možnost, da ta slika ni prikazan pravilno (manjkajo določeni elementi ali gradient). Vseeno bo prikaz pravilen, ko bo slika enkrat shranjena.',
+ loadingImage: 'Nalagam sliko, prosimo, počakajte ...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'Obstajajo neshranjene spremembe.',
+ enterNewLinkURL: 'Vnesite novo URL povezavo',
+ errorLoadingSVG: 'Napaka: Ne morem naložiti SVG podatkov',
+ URLLoadFail: 'Ne morem naložiti z URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sl$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sl
+});
+
+var lang_sq = {
+ lang: 'sq',
+ dir: 'ltr',
+ common: {
+ ok: 'Ruaj',
+ cancel: 'Anulo',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klikoni për të ndryshuar mbushur me ngjyra, shift-klikoni për të ndryshuar ngjyrën pash',
+ zoom_level: 'Ndryshimi zoom nivel',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Ndryshimi mbush color',
+ stroke_color: 'Change color pash',
+ stroke_style: 'Ndryshimi dash goditje stil',
+ stroke_width: 'Ndryshimi goditje width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Kënd Ndryshimi rrotullim',
+ blur: 'Change gaussian blur value',
+ opacity: 'Ndryshimi zgjedhur errësirë item',
+ circle_cx: 'Cx rrethi Ndryshimi i bashkërenduar',
+ circle_cy: 'Ndryshimi i rrethit cy koordinuar',
+ circle_r: 'Rreze rreth Ndryshimi i',
+ ellipse_cx: 'Ndryshimi elips e cx koordinuar',
+ ellipse_cy: 'Elips cy Ndryshimi i bashkërenduar',
+ ellipse_rx: 'Rreze x elips Ndryshimi i',
+ ellipse_ry: 'Radiusi y elips ndërroj',
+ line_x1: 'Shkarko Ndryshimi që fillon x koordinuar',
+ line_x2: 'Linjë Ndryshimi i fund x koordinuar',
+ line_y1: 'Shkarko Ndryshimi që fillon y koordinuar',
+ line_y2: 'Shkarko Ndryshimi i dhënë fund y koordinuar',
+ rect_height: 'Height Ndryshimi drejtkëndësh',
+ rect_width: 'Width Ndryshimi drejtkëndësh',
+ corner_radius: 'Ndryshimi Rectangle Corner Radius',
+ image_width: 'Ndryshimi image width',
+ image_height: 'Height të ndryshuar imazhin',
+ image_url: 'Ndrysho URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Text contents Ndryshimi',
+ font_family: 'Ndryshimi Font Family',
+ font_size: 'Ndryshimi Font Size',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change color background / patejdukshmëri',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit për të gjithë përmbajtjen',
+ fit_to_canvas: 'Fit në kanavacë',
+ fit_to_layer_content: 'Shtresë Fit to content',
+ fit_to_sel: 'Fit to Selection',
+ align_relative_to: 'Vendose në lidhje me ...',
+ relativeTo: 'lidhje me:',
+ page: 'faqe',
+ largest_object: 'madh objekt',
+ selected_objects: 'objektet e zgjedhur',
+ smallest_object: 'objektit më të vogël',
+ new_doc: 'New Image',
+ open_doc: 'Image Hapur',
+ export_img: 'Export',
+ save_doc: 'Image Ruaj',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Align Mesme',
+ align_right: 'Align Right',
+ align_top: 'Align Top',
+ mode_select: 'Zgjidhni Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Lëndë Hand Rectangle',
+ mode_ellipse: 'Elips',
+ mode_circle: 'Rrethi',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Burimi Edit',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Elementet e Grupit',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Elemente Ungroup',
+ docprops: 'Dokumenti Prona',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Ruaj',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Down Layer',
+ "new": 'Re Shtresa',
+ rename: 'Rename Layer',
+ move_up: 'Move Up Layer',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Zgjidhni paracaktuara:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sq$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sq
+});
+
+var lang_sr = {
+ lang: 'sr',
+ dir: 'ltr',
+ common: {
+ ok: 'Сачувати',
+ cancel: 'Откажи',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Кликните да бисте променили боју попуне, Схифт-кликните да промените боју удар',
+ zoom_level: 'Промените ниво зумирања',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Промена боје попуне',
+ stroke_color: 'Промена боје удар',
+ stroke_style: 'Промена ход Дасх стил',
+ stroke_width: 'Промена удара ширина',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Промени ротације Угао',
+ blur: 'Change gaussian blur value',
+ opacity: 'Промена изабране ставке непрозирност',
+ circle_cx: 'Промена круг'с ЦКС координатни',
+ circle_cy: 'Промена круг'с ср координатни',
+ circle_r: 'Промена круга је полупречник',
+ ellipse_cx: 'Промена елипса ЦКС'с координатни',
+ ellipse_cy: 'Промена елипса'с ср координатни',
+ ellipse_rx: 'Промена елипса'с Кс радијуса',
+ ellipse_ry: 'Промена елипса је радијус Ы',
+ line_x1: 'Промена линија Стартни кс координата',
+ line_x2: 'Промена линија је завршетак кс координата',
+ line_y1: 'Промена линија у координатни почетак Ы',
+ line_y2: 'Промена линија је Ы координата се завршава',
+ rect_height: 'Промени правоугаоник висина',
+ rect_width: 'Промени правоугаоник ширине',
+ corner_radius: 'Промена правоугаоник Кутак радијуса',
+ image_width: 'Промени слику ширине',
+ image_height: 'Промени слику висине',
+ image_url: 'Промените УРЛ адресу',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Промена садржаја текстуалне',
+ font_family: 'Цханге фонт породицу',
+ font_size: 'Цханге фонт сизе',
+ bold: 'Подебљан текст',
+ italic: 'Италиц текст'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Промена боје позадине / непрозирност',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Стане на садржај',
+ fit_to_all: 'Уклопи у сав садржај',
+ fit_to_canvas: 'Стане на платну',
+ fit_to_layer_content: 'Уклопи у слоју садржај',
+ fit_to_sel: 'Уклопи у избор',
+ align_relative_to: 'Алигн у односу на ...',
+ relativeTo: 'у односу на:',
+ page: 'страна',
+ largest_object: 'Највећи објекат',
+ selected_objects: 'изабраних објеката',
+ smallest_object: 'Најмањи објекат',
+ new_doc: 'Нова слика',
+ open_doc: 'Отвори слике',
+ export_img: 'Export',
+ save_doc: 'Сачувај слика',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Поравнај доле',
+ align_center: 'Поравнај по центру',
+ align_left: 'Поравнај лево',
+ align_middle: 'Алигн Средњи',
+ align_right: 'Поравнај десно',
+ align_top: 'Поравнајте врх',
+ mode_select: 'Изаберите алатку',
+ mode_fhpath: 'Алатка оловка',
+ mode_line: 'Линија Алат',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Фрее-Ручни правоугаоник',
+ mode_ellipse: 'Елипса',
+ mode_circle: 'Круг',
+ mode_fhellipse: 'Фрее-Ручни Елипса',
+ mode_path: 'Path Tool',
+ mode_text: 'Текст Алат',
+ mode_image: 'Алатка за слике',
+ mode_zoom: 'Алатка за зумирање',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Поништи',
+ redo: 'Редо',
+ tool_source: 'Уреди Извор',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Група Елементи',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Разгрупирање Елементи',
+ docprops: 'Особине документа',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Премести на доле',
+ move_top: 'Премести на врх',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Сачувати',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Избриши слој',
+ move_down: 'Помери слој доле',
+ "new": 'Нови слој',
+ rename: 'Преименуј слој',
+ move_up: 'Помери слој Горе',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Изаберите унапред дефинисани:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sr$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sr
+});
+
+var lang_sv = {
+ lang: 'sv',
+ dir: 'ltr',
+ common: {
+ ok: 'Spara',
+ cancel: 'Avbryt',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Klicka för att ändra fyllningsfärg, shift-klicka för att ändra färgar',
+ zoom_level: 'Ändra zoomnivå',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Ändra fyllningsfärg',
+ stroke_color: 'Ändra färgar',
+ stroke_style: 'Ändra stroke Dash stil',
+ stroke_width: 'Ändra stroke bredd',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Ändra rotationsvinkel',
+ blur: 'Change gaussian blur value',
+ opacity: 'Ändra markerat objekt opacitet',
+ circle_cx: 'Ändra cirkeln cx samordna',
+ circle_cy: 'Ändra cirkeln samordna cy',
+ circle_r: 'Ändra cirkelns radie',
+ ellipse_cx: 'Ändra ellips's cx samordna',
+ ellipse_cy: 'Ändra ellips's samordna cy',
+ ellipse_rx: 'Ändra ellips's x radie',
+ ellipse_ry: 'Ändra ellips's y radie',
+ line_x1: 'Ändra Lines startar x samordna',
+ line_x2: 'Ändra Lines slutar x samordna',
+ line_y1: 'Ändra Lines startar Y-koordinat',
+ line_y2: 'Ändra Lines slutar Y-koordinat',
+ rect_height: 'Ändra rektangel höjd',
+ rect_width: 'Ändra rektangel bredd',
+ corner_radius: 'Ändra rektangel hörnradie',
+ image_width: 'Ändra bild bredd',
+ image_height: 'Ändra bildhöjd',
+ image_url: 'Ändra URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Ändra textinnehållet',
+ font_family: 'Ändra Typsnitt',
+ font_size: 'Ändra textstorlek',
+ bold: 'Fet text',
+ italic: 'Kursiv text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Ändra bakgrundsfärg / opacitet',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Passar till allt innehåll',
+ fit_to_canvas: 'Anpassa till duk',
+ fit_to_layer_content: 'Anpassa till lager innehåll',
+ fit_to_sel: 'Anpassa till val',
+ align_relative_to: 'Justera förhållande till ...',
+ relativeTo: 'jämfört:',
+ page: 'sida',
+ largest_object: 'största objekt',
+ selected_objects: 'valda objekt',
+ smallest_object: 'minsta objektet',
+ new_doc: 'New Image',
+ open_doc: 'Öppna bild',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Centrera',
+ align_left: 'Vänsterjustera',
+ align_middle: 'Justera Middle',
+ align_right: 'Högerjustera',
+ align_top: 'Justera Top',
+ mode_select: 'Markeringsverktyget',
+ mode_fhpath: 'Pennverktyget',
+ mode_line: 'Linjeverktyg',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Fri hand rektangel',
+ mode_ellipse: 'Ellips',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Fri hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Textverktyg',
+ mode_image: 'Bildverktyg',
+ mode_zoom: 'Zoomverktyget',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Ångra',
+ redo: 'Redo',
+ tool_source: 'Redigera källa',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Dela Elements',
+ docprops: 'Dokumentegenskaper',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Flytta till början',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Spara',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Radera Layer',
+ move_down: 'Flytta Layer Down',
+ "new": 'New Layer',
+ rename: 'Byt namn på Layer',
+ move_up: 'Flytta Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Välj fördefinierad:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sv$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sv
+});
+
+var lang_sw = {
+ lang: 'sw',
+ dir: 'ltr',
+ common: {
+ ok: 'Okoa',
+ cancel: 'Cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click kubadili kujaza color, skiftarbete-click kubadili kiharusi color',
+ zoom_level: 'Change zoom ngazi',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change kujaza Michezo',
+ stroke_color: 'Change kiharusi Michezo',
+ stroke_style: 'Change kiharusi dash style',
+ stroke_width: 'Change kiharusi width',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change mzunguko vinkel',
+ blur: 'Change gaussian blur value',
+ opacity: 'Change selected opacity punkt',
+ circle_cx: 'Change mduara's CX kuratibu',
+ circle_cy: 'Change mduara's cy kuratibu',
+ circle_r: 'Change mduara's Radius',
+ ellipse_cx: 'Change ellipse s CX kuratibu',
+ ellipse_cy: 'Change ellipse s cy kuratibu',
+ ellipse_rx: 'Change ellipse s x Radius',
+ ellipse_ry: 'Change ellipse's y Radius',
+ line_x1: 'Change Mpya's mapya x kuratibu',
+ line_x2: 'Change Mpya's kuishia x kuratibu',
+ line_y1: 'Change Mpya's mapya y kuratibu',
+ line_y2: 'Change Mpya's kuishia y kuratibu',
+ rect_height: 'Change Mstatili height',
+ rect_width: 'Change Mstatili width',
+ corner_radius: 'Change Mstatili Corner Radius',
+ image_width: 'Change image width',
+ image_height: 'Change image urefu',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Change Nakala contents',
+ font_family: 'Change font Family',
+ font_size: 'Change font Size',
+ bold: 'Bold Nakala',
+ italic: 'Italiki Nakala'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color / opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Waliopo Content',
+ fit_to_all: 'Waliopo all content',
+ fit_to_canvas: 'Wanaofaa Canvas',
+ fit_to_layer_content: 'Waliopo safu content',
+ fit_to_sel: 'Waliopo uteuzi',
+ align_relative_to: 'Align jamaa na ...',
+ relativeTo: 'relativa att:',
+ page: 'Page',
+ largest_object: 'ukubwa object',
+ selected_objects: 'waliochaguliwa vitu',
+ smallest_object: 'minsta object',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Kati align',
+ align_right: 'Align Right',
+ align_top: 'Align Juu',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Penseli Tool',
+ mode_line: 'Mpya Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Nakala Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Tengua',
+ redo: 'Redo',
+ tool_source: 'Edit Lugha',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Kikundi Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Kuhama Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Save',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Layer Down',
+ "new": 'Mpya Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_sw$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_sw
+});
+
+var lang_test = {
+ lang: 'test',
+ dir: 'ltr',
+ common: {
+ ok: 'OK',
+ cancel: 'Cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Click to change fill color, shift-click to change stroke color',
+ zoom_level: 'Change zoom level',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Change fill color',
+ stroke_color: 'Change stroke color',
+ stroke_style: 'Change stroke dash style',
+ stroke_width: 'Change stroke width by 1, shift-click to change by 0.1',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Change rotation angle',
+ blur: 'Change gaussian blur value',
+ opacity: 'Change selected item opacity',
+ circle_cx: "Change circle's cx coordinate",
+ circle_cy: "Change circle's cy coordinate",
+ circle_r: "Change circle's radius",
+ ellipse_cx: "Change ellipse's cx coordinate",
+ ellipse_cy: "Change ellipse's cy coordinate",
+ ellipse_rx: "Change ellipse's x radius",
+ ellipse_ry: "Change ellipse's y radius",
+ line_x1: "Change line's starting x coordinate",
+ line_x2: "Change line's ending x coordinate",
+ line_y1: "Change line's starting y coordinate",
+ line_y2: "Change line's ending y coordinate",
+ rect_height: 'Change rectangle height',
+ rect_width: 'Change rectangle width',
+ corner_radius: 'Change Rectangle Corner Radius',
+ image_width: 'Change image width',
+ image_height: 'Change image height',
+ image_url: 'Change URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Change text contents',
+ font_family: 'Change Font Family',
+ font_size: 'Change Font Size',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Change background color/opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit to all content',
+ fit_to_canvas: 'Fit to canvas',
+ fit_to_layer_content: 'Fit to layer content',
+ fit_to_sel: 'Fit to selection',
+ align_relative_to: 'Align relative to ...',
+ relativeTo: 'relative to:',
+ page: 'page',
+ largest_object: 'largest object',
+ selected_objects: 'selected objects',
+ smallest_object: 'smallest object',
+ new_doc: 'New Image',
+ open_doc: 'Open SVG',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Align Center',
+ align_left: 'Align Left',
+ align_middle: 'Align Middle',
+ align_right: 'Align Right',
+ align_top: 'Align Top',
+ mode_select: 'Select Tool',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-Hand Rectangle',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Free-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Undo',
+ redo: 'Redo',
+ tool_source: 'Edit Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Move to Bottom',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Apply Changes',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Move Layer Up',
+ move_down: 'Move Layer Down',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Rename Layer',
+ move_up: 'Move Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Select predefined:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: 'Move selected elements to layer \'%s\'?',
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_test$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_test
+});
+
+var lang_th = {
+ lang: 'th',
+ dir: 'ltr',
+ common: {
+ ok: 'บันทึก',
+ cancel: 'ยกเลิก',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'คลิกเพื่อเปลี่ยนใส่สีกะคลิกเปลี่ยนสีจังหวะ',
+ zoom_level: 'เปลี่ยนระดับการซูม',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'เปลี่ยนใส่สี',
+ stroke_color: 'สีจังหวะเปลี่ยน',
+ stroke_style: 'รีบเปลี่ยนสไตล์จังหวะ',
+ stroke_width: 'ความกว้างจังหวะเปลี่ยน',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'มุมหมุนเปลี่ยน',
+ blur: 'Change gaussian blur value',
+ opacity: 'เปลี่ยนความทึบเลือกรายการ',
+ circle_cx: 'Cx วงกลมเปลี่ยนของพิกัด',
+ circle_cy: 'วงกลมเปลี่ยนเป็น cy ประสานงาน',
+ circle_r: 'รัศมีวงกลมเปลี่ยนเป็น',
+ ellipse_cx: 'เปลี่ยน ellipse ของ cx ประสานงาน',
+ ellipse_cy: 'Ellipse เปลี่ยนของ cy ประสานงาน',
+ ellipse_rx: 'Ellipse เปลี่ยนของรัศมี x',
+ ellipse_ry: 'Ellipse เปลี่ยนของรัศมี y',
+ line_x1: 'สายเปลี่ยนเป็นเริ่มต้น x พิกัด',
+ line_x2: 'สายเปลี่ยนเป็นสิ้นสุด x พิกัด',
+ line_y1: 'สายเปลี่ยนเป็นเริ่มต้น y พิกัด',
+ line_y2: 'สายเปลี่ยนเป็นสิ้นสุด y พิกัด',
+ rect_height: 'ความสูงสี่เหลี่ยมผืนผ้าเปลี่ยน',
+ rect_width: 'ความกว้างสี่เหลี่ยมผืนผ้าเปลี่ยน',
+ corner_radius: 'รัศมีเปลี่ยนสี่เหลี่ยมผืนผ้า Corner',
+ image_width: 'ความกว้างเปลี่ยนรูปภาพ',
+ image_height: 'ความสูงเปลี่ยนรูปภาพ',
+ image_url: 'URL เปลี่ยน',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'เปลี่ยนเนื้อหาข้อความ',
+ font_family: 'ครอบครัว Change Font',
+ font_size: 'เปลี่ยนขนาดตัวอักษร',
+ bold: 'ข้อความตัวหนา',
+ italic: 'ข้อความตัวเอียง'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'สีพื้นหลังเปลี่ยน / ความทึบ',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'พอดีกับเนื้อหาทั้งหมด',
+ fit_to_canvas: 'เหมาะสมในการผ้าใบ',
+ fit_to_layer_content: 'พอดีเนื้อหาชั้นที่',
+ fit_to_sel: 'เหมาะสมในการเลือก',
+ align_relative_to: 'จัดชิดเทียบกับ ...',
+ relativeTo: 'เทียบกับ:',
+ page: 'หน้า',
+ largest_object: 'ที่ใหญ่ที่สุดในวัตถุ',
+ selected_objects: 'วัตถุเลือกตั้ง',
+ smallest_object: 'วัตถุที่เล็กที่สุด',
+ new_doc: 'รูปภาพใหม่',
+ open_doc: 'ภาพเปิด',
+ export_img: 'Export',
+ save_doc: 'บันทึกรูปภาพ',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'ด้านล่างชิด',
+ align_center: 'จัดแนวกึ่งกลาง',
+ align_left: 'จัดชิดซ้าย',
+ align_middle: 'กลางชิด',
+ align_right: 'จัดชิดขวา',
+ align_top: 'ด้านบนชิด',
+ mode_select: 'เครื่องมือเลือก',
+ mode_fhpath: 'เครื่องมือดินสอ',
+ mode_line: 'เครื่องมือ Line',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'สี่เหลี่ยมผืนผ้า Free-Hand',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Ellipse Free-Hand',
+ mode_path: 'Path Tool',
+ mode_text: 'เครื่องมือ Text',
+ mode_image: 'เครื่องมือ Image',
+ mode_zoom: 'เครื่องมือซูม',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'เลิก',
+ redo: 'ทำซ้ำ',
+ tool_source: 'แหล่งที่มาแก้ไข',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'องค์ประกอบของกลุ่ม',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'องค์ประกอบ Ungroup',
+ docprops: 'คุณสมบัติของเอกสาร',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'ย้ายไปด้านล่าง',
+ move_top: 'ย้ายไปด้านบน',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'บันทึก',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'ย้าย Layer ลง',
+ "new": 'Layer ใหม่',
+ rename: 'Layer เปลี่ยนชื่อ',
+ move_up: 'ย้าย Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'เลือกที่กำหนดไว้ล่วงหน้า:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_th$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_th
+});
+
+var lang_tl = {
+ lang: 'tl',
+ dir: 'ltr',
+ common: {
+ ok: 'I-save',
+ cancel: 'I-cancel',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'I-click upang baguhin ang punan ang kulay, paglilipat-click upang baguhin ang paghampas ng kulay',
+ zoom_level: 'Baguhin ang antas ng zoom',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Baguhin ang punuin ng kulay',
+ stroke_color: 'Baguhin ang kulay ng paghampas',
+ stroke_style: 'Baguhin ang stroke pagsugod estilo',
+ stroke_width: 'Baguhin ang stroke lapad',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Baguhin ang pag-ikot anggulo',
+ blur: 'Change gaussian blur value',
+ opacity: 'Palitan ang mga napiling bagay kalabuan',
+ circle_cx: 'Cx Baguhin ang bilog's coordinate',
+ circle_cy: 'Baguhin ang bilog's cy coordinate',
+ circle_r: 'Baguhin ang radius ng bilog',
+ ellipse_cx: 'Baguhin ang tambilugan's cx-ugma',
+ ellipse_cy: 'Baguhin ang tambilugan's cy coordinate',
+ ellipse_rx: 'X radius Baguhin ang tambilugan's',
+ ellipse_ry: 'Y radius Baguhin ang tambilugan's',
+ line_x1: 'Baguhin ang linya ng simula x coordinate',
+ line_x2: 'Baguhin ang linya ay nagtatapos x coordinate',
+ line_y1: 'Baguhin ang linya ng simula y coordinate',
+ line_y2: 'Baguhin ang linya ay nagtatapos y coordinate',
+ rect_height: 'Baguhin ang rektanggulo taas',
+ rect_width: 'Baguhin ang rektanggulo lapad',
+ corner_radius: 'Baguhin ang Parihaba Corner Radius',
+ image_width: 'Baguhin ang lapad ng imahe',
+ image_height: 'Baguhin ang taas ng imahe',
+ image_url: 'Baguhin ang URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Baguhin ang mga nilalaman ng teksto',
+ font_family: 'Baguhin ang Pamilya ng Font',
+ font_size: 'Baguhin ang Laki ng Font',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Baguhin ang kulay ng background / kalabuan',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Pagkasyahin sa Nilalaman',
+ fit_to_all: 'Pagkasyahin sa lahat ng mga nilalaman',
+ fit_to_canvas: 'Pagkasyahin sa tolda',
+ fit_to_layer_content: 'Pagkasyahin sa layer nilalaman',
+ fit_to_sel: 'Pagkasyahin sa pagpili',
+ align_relative_to: 'Pantayin sa kamag-anak sa ...',
+ relativeTo: 'kamag-anak sa:',
+ page: 'pahina',
+ largest_object: 'pinakamalaking bagay',
+ selected_objects: 'inihalal na mga bagay',
+ smallest_object: 'pinakamaliit na bagay',
+ new_doc: 'Bagong Imahe',
+ open_doc: 'Buksan ang Image',
+ export_img: 'Export',
+ save_doc: 'I-save ang Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Pantayin sa Ibaba',
+ align_center: 'Pantayin sa Gitna',
+ align_left: 'Pantayin ang Kaliwa',
+ align_middle: 'Pantayin sa Gitnang',
+ align_right: 'Pantayin sa Kanan',
+ align_top: 'Pantayin Top',
+ mode_select: 'Piliin ang Tool',
+ mode_fhpath: 'Kasangkapan ng lapis',
+ mode_line: 'Line Kasangkapan',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Libreng-kamay Parihaba',
+ mode_ellipse: 'Tambilugan',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Libreng-kamay tambilugan',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Kasangkapan',
+ mode_image: 'Image Kasangkapan',
+ mode_zoom: 'Mag-zoom Kasangkapan',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Bawiin',
+ redo: 'Gawin muli',
+ tool_source: 'I-edit ang Source',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Group Sangkap',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Sangkap',
+ docprops: 'Document Katangian',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Ilipat sa Ibaba',
+ move_top: 'Ilipat sa Tuktok',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'I-save',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Tanggalin Layer',
+ move_down: 'Ilipat Layer Down',
+ "new": 'Bagong Layer',
+ rename: 'Palitan ang pangalan ng Layer',
+ move_up: 'Ilipat Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Piliin ang paunang-natukoy na:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_tl$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_tl
+});
+
+var lang_tr = {
+ lang: 'tr',
+ dir: 'ltr',
+ common: {
+ ok: 'Kaydetmek',
+ cancel: 'Iptal',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Tıklatın renk, vardiya dolgu zamanlı rengini değiştirmek için tıklayın değiştirmek için',
+ zoom_level: 'Yakınlaştırma düzeyini değiştirebilirsiniz',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Renk değiştirmek doldurmak',
+ stroke_color: 'Değiştirmek inme renk',
+ stroke_style: 'Değiştirmek inme çizgi stili',
+ stroke_width: 'Değiştirmek vuruş genişliği',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Değiştirmek dönme açısı',
+ blur: 'Change gaussian blur value',
+ opacity: 'Değiştirmek öğe opacity seçilmiş',
+ circle_cx: 'Değiştirmek daire's cx koordine',
+ circle_cy: 'Değiştirmek daire cy koordine's',
+ circle_r: 'Değiştirmek daire yarıçapı',
+ ellipse_cx: ''s Koordine cx elips Girişi',
+ ellipse_cy: 'Değiştirmek elips cy koordine's',
+ ellipse_rx: 'Değiştirmek elips's x yarıçapı',
+ ellipse_ry: 'Değiştirmek elips Y yarıçapı',
+ line_x1: 'Değiştirmek hattı's koordine x başlangıç',
+ line_x2: 'Değiştirmek hattı's koordine x biten',
+ line_y1: 'Değiştirmek hattı y başlangıç's koordine',
+ line_y2: 'Değiştirmek hattı y biten's koordine',
+ rect_height: 'Değiştirmek dikdörtgen yüksekliği',
+ rect_width: 'Değiştirmek dikdörtgen genişliği',
+ corner_radius: 'Değiştirmek Dikdörtgen Köşe Yarıçap',
+ image_width: 'Değiştirmek görüntü genişliği',
+ image_height: 'Değiştirmek görüntü yüksekliği',
+ image_url: 'Değiştirmek URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Değiştirmek metin içeriği',
+ font_family: 'Font değiştir Aile',
+ font_size: 'Change font size',
+ bold: 'Kalın Yazı',
+ italic: 'Italik yazı'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Arka plan rengini değiştirmek / opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Fit to Content',
+ fit_to_all: 'Fit tüm içerik için',
+ fit_to_canvas: 'Fit tuvaline',
+ fit_to_layer_content: 'Sığacak şekilde katman içerik',
+ fit_to_sel: 'Fit seçimine',
+ align_relative_to: 'Align göre ...',
+ relativeTo: 'göreli:',
+ page: 'sayfa',
+ largest_object: 'en büyük nesne',
+ selected_objects: 'seçilen nesneleri',
+ smallest_object: 'küçük nesne',
+ new_doc: 'Yeni Resim',
+ open_doc: 'Aç Resim',
+ export_img: 'Export',
+ save_doc: 'Görüntüyü Kaydet',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Ortala',
+ align_left: 'Sola',
+ align_middle: 'Align Orta',
+ align_right: 'Sağa Hizala',
+ align_top: 'Align Top',
+ mode_select: 'Seçim aracı',
+ mode_fhpath: 'Kalem Aracı',
+ mode_line: 'Line Aracı',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-El Dikdörtgen',
+ mode_ellipse: 'Elips',
+ mode_circle: 'Daire',
+ mode_fhellipse: 'Free-El Elips',
+ mode_path: 'Path Tool',
+ mode_text: 'Metin Aracı',
+ mode_image: 'Resim Aracı',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Geri',
+ redo: 'Redo',
+ tool_source: 'Değiştir Kaynak',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Grup Elemanları',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Çöz Elemanları',
+ docprops: 'Belge Özellikleri',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Altına gider',
+ move_top: 'Üste taşı',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Kaydetmek',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Delete Layer',
+ move_down: 'Katman Aşağı Taşı',
+ "new": 'Yeni Katman',
+ rename: 'Rename Katman',
+ move_up: 'Up Katman Taşı',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Seçin önceden tanımlanmış:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_tr$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_tr
+});
+
+var lang_uk = {
+ lang: 'uk',
+ dir: 'ltr',
+ common: {
+ ok: 'Зберегти',
+ cancel: 'Скасування',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Натисніть для зміни кольору заливки, Shift-Click змінити обвід',
+ zoom_level: 'Зміна масштабу',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Зміна кольору заливки',
+ stroke_color: 'Зміна кольору інсульт',
+ stroke_style: 'Зміна стилю інсульт тире',
+ stroke_width: 'Зміни ширина штриха',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Зміна кута повороту',
+ blur: 'Change gaussian blur value',
+ opacity: 'Зміна вибраного пункту непрозорості',
+ circle_cx: 'CX зміну кола координата',
+ circle_cy: 'Зміни гуртка CY координати',
+ circle_r: 'Зміна кола's радіус',
+ ellipse_cx: 'Зміни еліпса CX координати',
+ ellipse_cy: 'Зміни еліпса CY координати',
+ ellipse_rx: 'Х Зміни еліпса радіусом',
+ ellipse_ry: 'Зміни у еліпса радіусом',
+ line_x1: 'Зміни починає координати лінія х',
+ line_x2: 'Зміни за період, що закінчився лінія координати х',
+ line_y1: 'Зміни лінія починає Y координата',
+ line_y2: 'Зміна за період, що закінчився лінія Y координата',
+ rect_height: 'Зміни прямокутник висотою',
+ rect_width: 'Зміна ширини прямокутника',
+ corner_radius: 'Зміни прямокутник Corner Radius',
+ image_width: 'Зміни ширина зображення',
+ image_height: 'Зміна висоти зображення',
+ image_url: 'Змінити URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Зміна змісту тексту',
+ font_family: 'Зміни Сімейство шрифтів',
+ font_size: 'Змінити розмір шрифту',
+ bold: 'Товстий текст',
+ italic: 'Похилий текст'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Зміна кольору тла / непрозорість',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'За розміром змісту',
+ fit_to_all: 'За розміром весь вміст',
+ fit_to_canvas: 'Розмір полотна',
+ fit_to_layer_content: 'За розміром шар змісту',
+ fit_to_sel: 'Вибір розміру',
+ align_relative_to: 'Вирівняти по відношенню до ...',
+ relativeTo: 'в порівнянні з:',
+ page: 'сторінка',
+ largest_object: 'найбільший об'єкт',
+ selected_objects: 'обраними об'єктами',
+ smallest_object: 'маленький об'єкт',
+ new_doc: 'Нове зображення',
+ open_doc: 'Відкрити зображення',
+ export_img: 'Export',
+ save_doc: 'Зберегти малюнок',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Вирівняти по нижньому краю',
+ align_center: 'Вирівняти по центру',
+ align_left: 'По лівому краю',
+ align_middle: 'Вирівняти Близького',
+ align_right: 'По правому краю',
+ align_top: 'Вирівняти по верхньому краю',
+ mode_select: 'Виберіть інструмент',
+ mode_fhpath: 'Pencil Tool',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Вільної руки Прямокутник',
+ mode_ellipse: 'Еліпс',
+ mode_circle: 'Коло',
+ mode_fhellipse: 'Вільної руки Еліпс',
+ mode_path: 'Path Tool',
+ mode_text: 'Текст Tool',
+ mode_image: 'Image Tool',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Скасувати',
+ redo: 'Повтор',
+ tool_source: 'Змінити вихідний',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Група елементів',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Елементи розгрупувати',
+ docprops: 'Властивості документа',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Перемістити вниз',
+ move_top: 'Перемістити догори',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Зберегти',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Видалити шар',
+ move_down: 'Перемістити шар на',
+ "new": 'Новий шар',
+ rename: 'Перейменувати Шар',
+ move_up: 'Переміщення шару до',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Виберіть зумовлений:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_uk$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_uk
+});
+
+var lang_vi = {
+ lang: 'vi',
+ dir: 'ltr',
+ common: {
+ ok: 'Lưu',
+ cancel: 'Hủy',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'Nhấn vào đây để thay đổi đầy màu sắc, thay đổi nhấp chuột để thay đổi màu sắc đột quỵ',
+ zoom_level: 'Thay đổi mức độ phóng',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'Thay đổi đầy màu sắc',
+ stroke_color: 'Thay đổi màu sắc đột quỵ',
+ stroke_style: 'Thay đổi phong cách đột quỵ dash',
+ stroke_width: 'Thay đổi chiều rộng đột quỵ',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'Thay đổi góc xoay',
+ blur: 'Change gaussian blur value',
+ opacity: 'Thay đổi lựa chọn opacity mục',
+ circle_cx: 'Thay đổi hình tròn của cx phối hợp',
+ circle_cy: 'Thay đổi hình tròn của vi phối hợp',
+ circle_r: 'Thay đổi bán kính của hình tròn',
+ ellipse_cx: 'Thay đổi hình elip của cx phối hợp',
+ ellipse_cy: 'Thay đổi hình elip của vi phối hợp',
+ ellipse_rx: 'Thay đổi hình elip của x bán kính',
+ ellipse_ry: 'Y Thay đổi bán kính của hình ellipse',
+ line_x1: 'Thay đổi dòng của bắt đầu từ x phối hợp',
+ line_x2: 'Thay đổi dòng của x kết thúc sớm nhất phối hợp',
+ line_y1: 'Thay đổi dòng của bắt đầu từ y phối hợp',
+ line_y2: 'Thay đổi dòng của kết thúc y phối hợp',
+ rect_height: 'Thay đổi hình chữ nhật chiều cao',
+ rect_width: 'Thay đổi hình chữ nhật chiều rộng',
+ corner_radius: 'Thay đổi chữ nhật Corner Radius',
+ image_width: 'Thay đổi hình ảnh rộng',
+ image_height: 'Thay đổi hình ảnh chiều cao',
+ image_url: 'Thay đổi URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'Thay đổi nội dung văn bản',
+ font_family: 'Thay đổi Font Gia đình',
+ font_size: 'Thay đổi cỡ chữ',
+ bold: 'Bold Text',
+ italic: 'Italic Text'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'Thay đổi màu nền / opacity',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'Phù hợp với nội dung',
+ fit_to_all: 'Phù hợp với tất cả nội dung',
+ fit_to_canvas: 'Phù hợp với vải',
+ fit_to_layer_content: 'Vào lớp phù hợp với nội dung',
+ fit_to_sel: 'Phù hợp để lựa chọn',
+ align_relative_to: 'Căn liên quan đến ...',
+ relativeTo: 'liên quan đến:',
+ page: 'Page',
+ largest_object: 'lớn nhất đối tượng',
+ selected_objects: 'bầu các đối tượng',
+ smallest_object: 'nhỏ đối tượng',
+ new_doc: 'Hình mới',
+ open_doc: 'Mở Image',
+ export_img: 'Export',
+ save_doc: 'Save Image',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'Align Bottom',
+ align_center: 'Căn giữa',
+ align_left: 'Căn còn lại',
+ align_middle: 'Căn Trung',
+ align_right: 'Căn phải',
+ align_top: 'Căn Top',
+ mode_select: 'Chọn Công cụ',
+ mode_fhpath: 'Bút chì Công cụ',
+ mode_line: 'Line Tool',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Việt-Hand Hình chữ nhật',
+ mode_ellipse: 'Ellipse',
+ mode_circle: 'Circle',
+ mode_fhellipse: 'Việt-Hand Ellipse',
+ mode_path: 'Path Tool',
+ mode_text: 'Text Tool',
+ mode_image: 'Hình Công cụ',
+ mode_zoom: 'Zoom Tool',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'Hoàn tác',
+ redo: 'Làm lại',
+ tool_source: 'Sửa Nguồn',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'Nhóm Elements',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: 'Document Properties',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'Chuyển đến đáy',
+ move_top: 'Move to Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'Lưu',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'Xoá Layer',
+ move_down: 'Move Layer Down',
+ "new": 'New Layer',
+ rename: 'Đổi tên Layer',
+ move_up: 'Di chuyển Layer Up',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'Chọn định sẵn:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_vi$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_vi
+});
+
+var lang_yi = {
+ lang: 'yi',
+ dir: 'ltr',
+ common: {
+ ok: 'היט',
+ cancel: 'באָטל מאַכן',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: 'גיט צו ענדערן אָנעסן קאָליר, יבעררוק-גיט צו טוישן מאַך קאָליר',
+ zoom_level: 'ענדערן פארגרעסער הייך',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: 'ענדערן אָנעסן קאָליר',
+ stroke_color: 'טוישן מאַך קאָליר',
+ stroke_style: 'טוישן מאַך לאָך מאָדע',
+ stroke_width: 'טוישן מאַך ברייט',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: 'ענדערן ראָוטיישאַן ווינקל',
+ blur: 'Change gaussian blur value',
+ opacity: 'ענדערן סעלעקטעד נומער אָופּאַסאַטי',
+ circle_cx: 'ענדערן קרייז ס קקס קאָואָרדאַנאַט',
+ circle_cy: 'ענדערן קרייז ס סי קאָואָרדאַנאַט',
+ circle_r: 'ענדערן קרייז ס ראַדיוס',
+ ellipse_cx: 'ענדערן יליפּס ס קקס קאָואָרדאַנאַט',
+ ellipse_cy: 'ענדערן יליפּס ס סי קאָואָרדאַנאַט',
+ ellipse_rx: 'ענדערן יליפּס ס 'קס ראַדיוס',
+ ellipse_ry: 'ענדערן יליפּס ס 'י ראַדיוס',
+ line_x1: 'טוישן ליניע ס 'סטאַרטינג קס קאָואָרדאַנאַט',
+ line_x2: 'טוישן ליניע ס 'סאָף קס קאָואָרדאַנאַט',
+ line_y1: 'טוישן ליניע ס 'סטאַרטינג י קאָואָרדאַנאַט',
+ line_y2: 'טוישן ליניע ס 'סאָף י קאָואָרדאַנאַט',
+ rect_height: 'ענדערן גראָדעק הייך',
+ rect_width: 'ענדערן גראָדעק ברייט',
+ corner_radius: 'ענדערן רעקטאַנגלע קאָרנער ראַדיוס',
+ image_width: 'טוישן בילד ברייט',
+ image_height: 'טוישן בילד הייך',
+ image_url: 'ענדערן URL',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: 'ענדערן טעקסט אינהאַלט',
+ font_family: 'ענדערן פאָנט פאַמילי',
+ font_size: 'בייטן פאָנט גרייס',
+ bold: 'דרייסט טעקסט',
+ italic: 'יטאַליק טעקסט'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: 'ענדערן הינטערגרונט פאַרב / אָופּאַסאַטי',
+ connector_no_arrow: 'No arrow',
+ fitToContent: 'פּאַסיק צו אינהאַלט',
+ fit_to_all: 'פּאַסיק צו אַלע אינהאַלט',
+ fit_to_canvas: 'פּאַסיק צו לייוונט',
+ fit_to_layer_content: 'פּאַסיק צו שיכטע אינהאַלט',
+ fit_to_sel: 'פּאַסיק צו אָפּקלייב',
+ align_relative_to: 'יינרייען קאָרעוו צו ...',
+ relativeTo: 'קאָרעוו צו:',
+ page: 'בלאַט',
+ largest_object: 'לאַרדזשאַסט קעגן',
+ selected_objects: 'עלעקטעד אַבדזשעקץ',
+ smallest_object: 'סמאָלאַסט קעגן',
+ new_doc: 'ניו בילד',
+ open_doc: 'Open בילד',
+ export_img: 'Export',
+ save_doc: 'היט בילד',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: 'יינרייען באָטטאָם',
+ align_center: 'יינרייען צענטער',
+ align_left: 'יינרייען לעפט',
+ align_middle: 'יינרייען מיטל',
+ align_right: 'יינרייען רעכט',
+ align_top: 'יינרייען Top',
+ mode_select: 'סעלעקטירן טול',
+ mode_fhpath: 'בלייער טול',
+ mode_line: 'שורה טול',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: 'Free-הענט רעקטאַנגלע',
+ mode_ellipse: 'עלליפּסע',
+ mode_circle: 'קאַראַהאָד',
+ mode_fhellipse: 'Free-הענט עלליפּסע',
+ mode_path: 'Path Tool',
+ mode_text: 'טעקסט טול',
+ mode_image: 'בילד טול',
+ mode_zoom: 'פארגרעסער טול',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: 'ופמאַכן',
+ redo: 'רעדאָ',
+ tool_source: 'רעדאַקטירן סאָרס',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: 'גרופּע עלעמענץ',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'ונגראָופּ עלעמענץ',
+ docprops: 'דאָקומענט פּראָפּערטיעס',
+ editor_homepage: 'SVG-Edit Home Page',
+ move_bottom: 'מאַך צו באָטטאָם',
+ move_top: 'באַוועגן צו Top',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: 'היט',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: 'ויסמעקן לייַער',
+ move_down: 'קער לייַער דאָוון',
+ "new": 'ניו לייַער',
+ rename: 'רענאַמע לייַער',
+ move_up: 'באַוועגן לייַער אַרויף',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: 'סעלעקטירן פּרעדעפינעד:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_yi$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_yi
+});
+
+var lang_zhCN = {
+ lang: 'zh-CN',
+ dir: 'ltr',
+ common: {
+ ok: '确定',
+ cancel: '取消',
+ key_backspace: '退格',
+ key_del: '删除',
+ key_down: '下',
+ key_up: '上',
+ more_opts: '更多选项',
+ url: 'URL',
+ width: '宽度',
+ height: '高度'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: '显示/隐藏更式边线工具',
+ palette_info: '点击更改填充颜色,按住Shift键单击更改线条颜色',
+ zoom_level: '更改缩放级别',
+ panel_drag: '左右拖拽调整面板大小',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: '元素ID',
+ fill_color: '更改填充颜色',
+ stroke_color: '线条的颜色变化',
+ stroke_style: '更改线条样式',
+ stroke_width: '更改线条宽度',
+ pos_x: '更改X坐标',
+ pos_y: '更改Y坐标',
+ linecap_butt: '顶端样式: 齐平',
+ linecap_round: '顶端样式: 圆滑',
+ linecap_square: '顶端样式: 方块',
+ linejoin_bevel: '连接处: 削平',
+ linejoin_miter: '连接处: 直角',
+ linejoin_round: '连接处: 圆角',
+ angle: '更改旋转角度',
+ blur: '更改高斯模糊值',
+ opacity: '更改所选条目的不透明度',
+ circle_cx: '改变圆的中心X坐标',
+ circle_cy: '改变圆的中心Y坐标',
+ circle_r: '改变圆的半径',
+ ellipse_cx: '改变椭圆的中心X坐标',
+ ellipse_cy: '改变椭圆的中心Y坐标',
+ ellipse_rx: '改变椭圆的x半径',
+ ellipse_ry: '改变椭圆的y半径',
+ line_x1: '更改直线起点的x坐标',
+ line_x2: '更改直线终点的x坐标',
+ line_y1: '更改直线起点的y坐标',
+ line_y2: '更改直线终点的y坐标',
+ rect_height: '更改矩形的高度',
+ rect_width: '更改矩形的宽度',
+ corner_radius: '角半径:',
+ image_width: '更改图像的宽度',
+ image_height: '更改图像的高度',
+ image_url: '更改网址',
+ node_x: '更改节点的X坐标',
+ node_y: '更改节点的Y坐标',
+ seg_type: '修改线段类型',
+ straight_segments: '直线',
+ curve_segments: '曲线',
+ text_contents: '更改文本内容',
+ font_family: '更改字体样式',
+ font_size: '更改字体大小',
+ bold: '粗体',
+ italic: '斜体'
+ },
+ tools: {
+ main_menu: '主菜单',
+ bkgnd_color_opac: '更改背景颜色/不透明',
+ connector_no_arrow: '无箭头',
+ fitToContent: '适应内容',
+ fit_to_all: '适应于所有的内容',
+ fit_to_canvas: '适应画布',
+ fit_to_layer_content: '适应层内容',
+ fit_to_sel: '适应选中内容',
+ align_relative_to: '相对对齐 ...',
+ relativeTo: '相对于:',
+ page: '网页',
+ largest_object: '最大对象',
+ selected_objects: '选中的对象',
+ smallest_object: '最小的对象',
+ new_doc: '新文档',
+ open_doc: '打开文档',
+ export_img: '导出',
+ save_doc: '保存图像',
+ import_doc: '导入SVG',
+ align_to_page: '对齐元素到页面',
+ align_bottom: '底部对齐',
+ align_center: '居中对齐',
+ align_left: '左对齐',
+ align_middle: '水平居中对齐',
+ align_right: '右对齐',
+ align_top: '顶端对齐',
+ mode_select: '选择工具',
+ mode_fhpath: '铅笔工具',
+ mode_line: '线工具',
+ mode_rect: '矩形',
+ mode_square: '正方形',
+ mode_fhrect: '自由矩形',
+ mode_ellipse: '椭圆',
+ mode_circle: '圆形',
+ mode_fhellipse: '自由椭圆',
+ mode_path: '路径',
+ mode_text: '文字工具',
+ mode_image: '图像工具',
+ mode_zoom: '缩放工具',
+ no_embed: '注意: 根据SVG图像的存储位置,内嵌的位图可能无法显示!',
+ undo: '撤消',
+ redo: '重做',
+ tool_source: '编辑源',
+ wireframe_mode: '线条模式',
+ clone: '克隆元素',
+ del: '删除元素',
+ group_elements: '组合元素',
+ make_link: '创建超链接',
+ set_link_url: '设置链接URL (设置为空以删除)',
+ to_path: '转换为路径',
+ reorient_path: '调整路径',
+ ungroup: '取消组合元素',
+ docprops: '文档属性',
+ editor_homepage: 'SVG-Edit 主页',
+ move_bottom: '移至底部',
+ move_top: '移至顶部',
+ node_clone: '复制节点',
+ node_delete: '删除节点',
+ node_link: '连接控制点',
+ add_subpath: '添加子路径',
+ openclose_path: '打开/关闭 子路径',
+ source_save: '保存',
+ cut: '剪切',
+ copy: '复制',
+ paste: '粘贴',
+ paste_in_place: '粘贴到原位置',
+ "delete": '删除',
+ group: '组合',
+ move_front: '移至顶部',
+ move_up: '向上移动',
+ move_down: '向下移动',
+ move_back: '移至底部'
+ },
+ layers: {
+ layer: '图层',
+ layers: '图层',
+ del: '删除图层',
+ move_down: '向下移动图层',
+ "new": '新建图层',
+ rename: '重命名图层',
+ move_up: '向上移动图层',
+ dupe: '复制图层',
+ merge_down: '向下合并',
+ merge_all: '全部合并',
+ move_elems_to: '移动元素至:',
+ move_selected: '移动元素至另一个图层'
+ },
+ config: {
+ image_props: '图像属性',
+ doc_title: '标题',
+ doc_dims: '画布大小',
+ included_images: '包含图像',
+ image_opt_embed: '嵌入数据 (本地文件)',
+ image_opt_ref: '使用文件引用',
+ editor_prefs: '编辑器首选项',
+ icon_size: '图标大小',
+ language: '语言',
+ background: '编辑器背景',
+ editor_img_url: '图像 URL',
+ editor_bg_note: '注意: 背景不会保存在图像中.',
+ icon_large: '大',
+ icon_medium: '中',
+ icon_small: '小',
+ icon_xlarge: '特大',
+ select_predefined: '选择预定义:',
+ units_and_rulers: '单位 & 标尺',
+ show_rulers: '显示标尺',
+ base_unit: '基本单位:',
+ grid: '网格',
+ snapping_onoff: '吸附开/关',
+ snapping_stepsize: '吸附步长:',
+ grid_color: '网格颜色'
+ },
+ notification: {
+ invalidAttrValGiven: '无效的参数',
+ noContentToFitTo: '无可适应的内容',
+ dupeLayerName: '已存在同名的图层!',
+ enterUniqueLayerName: '请输入一个唯一的图层名称',
+ enterNewLayerName: '请输入新的图层名称',
+ layerHasThatName: '图层已经采用了该名称',
+ QmoveElemsToLayer: "您确定移动所选元素到图层'%s'吗?",
+ QwantToClear: '您希望清除当前绘制的所有图形吗?\n该操作将无法撤消!',
+ QwantToOpen: '您希望打开一个新文档吗?\n该操作将无法撤消!',
+ QerrorsRevertToSource: 'SVG文件解析错误.\n是否还原到最初的SVG文件?',
+ QignoreSourceChanges: '忽略对SVG文件所作的更改么?',
+ featNotSupported: '不支持该功能',
+ enterNewImgURL: '请输入新图像的URLL',
+ defsFailOnSave: '注意: 由于您所使用的浏览器存在缺陷, 该图像无法正确显示 (不支持渐变或相关元素). 修复该缺陷后可正确显示.',
+ loadingImage: '正在加载图像, 请稍候...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: '同时注意以下几点: ',
+ unsavedChanges: '存在未保存的修改.',
+ enterNewLinkURL: '输入新建链接的URL地址',
+ errorLoadingSVG: '错误: 无法加载SVG数据',
+ URLLoadFail: '无法从URL中加载',
+ retrieving: '检索 \'%s\'...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_zhCN$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_zhCN
+});
+
+var lang_zhHK = {
+ lang: 'zh-HK',
+ dir: 'ltr',
+ common: {
+ ok: '确定',
+ cancel: '取消',
+ key_backspace: 'backspace',
+ key_del: 'delete',
+ key_down: 'down',
+ key_up: 'up',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: '点击更改填充颜色,按住Shift键单击更改颜色中风',
+ zoom_level: '更改缩放级别',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: '更改填充颜色',
+ stroke_color: '中风的颜色变化',
+ stroke_style: '更改行程冲刺风格',
+ stroke_width: '笔划宽度的变化',
+ pos_x: 'Change X coordinate',
+ pos_y: 'Change Y coordinate',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: '旋转角度的变化',
+ blur: 'Change gaussian blur value',
+ opacity: '更改所选项目不透明',
+ circle_cx: '改变循环的CX坐标',
+ circle_cy: '改变循环的赛扬坐标',
+ circle_r: '改变圆的半径',
+ ellipse_cx: '改变椭圆的CX坐标',
+ ellipse_cy: '改变椭圆的赛扬坐标',
+ ellipse_rx: '改变椭圆的x半径',
+ ellipse_ry: '改变椭圆的y半径',
+ line_x1: '更改行的起点的x坐标',
+ line_x2: '更改行的结束x坐标',
+ line_y1: '更改行的起点的y坐标',
+ line_y2: '更改行的结束y坐标',
+ rect_height: '更改矩形的高度',
+ rect_width: '更改矩形的宽度',
+ corner_radius: '角半径:',
+ image_width: '更改图像的宽度',
+ image_height: '更改图像高度',
+ image_url: '更改网址',
+ node_x: "Change node's x coordinate",
+ node_y: "Change node's y coordinate",
+ seg_type: 'Change Segment type',
+ straight_segments: 'Straight',
+ curve_segments: 'Curve',
+ text_contents: '更改文字内容',
+ font_family: '更改字体家族',
+ font_size: '更改字体大小',
+ bold: '粗体',
+ italic: '斜体文本'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: '更改背景颜色/不透明',
+ connector_no_arrow: 'No arrow',
+ fitToContent: '适合内容',
+ fit_to_all: '适合于所有的内容',
+ fit_to_canvas: '适合画布',
+ fit_to_layer_content: '适合层内容',
+ fit_to_sel: '适合选择',
+ align_relative_to: '相对对齐 ...',
+ relativeTo: '相对于:',
+ page: '网页',
+ largest_object: '最大对象',
+ selected_objects: '选对象',
+ smallest_object: '最小的对象',
+ new_doc: '新形象',
+ open_doc: '打开图像',
+ export_img: 'Export',
+ save_doc: '保存图像',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: '底部对齐',
+ align_center: '居中对齐',
+ align_left: '左对齐',
+ align_middle: '中间对齐',
+ align_right: '右对齐',
+ align_top: '顶端对齐',
+ mode_select: '选择工具',
+ mode_fhpath: '铅笔工具',
+ mode_line: '线工具',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: '免费手矩形',
+ mode_ellipse: '椭圆',
+ mode_circle: '圈',
+ mode_fhellipse: '免费手椭圆',
+ mode_path: 'Path Tool',
+ mode_text: '文字工具',
+ mode_image: '图像工具',
+ mode_zoom: '缩放工具',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: '撤消',
+ redo: '重做',
+ tool_source: '编辑源',
+ wireframe_mode: 'Wireframe Mode',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: '族元素',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: 'Convert to Path',
+ reorient_path: 'Reorient path',
+ ungroup: 'Ungroup Elements',
+ docprops: '文档属性',
+ editor_homepage: 'SVG-Edit 主页',
+ move_bottom: '移至底部',
+ move_top: '移动到顶部',
+ node_clone: 'Clone Node',
+ node_delete: 'Delete Node',
+ node_link: 'Link Control Points',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: '保存',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: 'Layer',
+ layers: 'Layers',
+ del: '删除层',
+ move_down: '层向下移动',
+ "new": '新层',
+ rename: '重命名层',
+ move_up: '移动层最多',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: 'Move elements to:',
+ move_selected: 'Move selected elements to a different layer'
+ },
+ config: {
+ image_props: 'Image Properties',
+ doc_title: 'Title',
+ doc_dims: 'Canvas Dimensions',
+ included_images: 'Included Images',
+ image_opt_embed: 'Embed data (local files)',
+ image_opt_ref: 'Use file reference',
+ editor_prefs: 'Editor Preferences',
+ icon_size: 'Icon size',
+ language: 'Language',
+ background: 'Editor Background',
+ editor_img_url: 'Image URL',
+ editor_bg_note: 'Note: Background will not be saved with image.',
+ icon_large: 'Large',
+ icon_medium: 'Medium',
+ icon_small: 'Small',
+ icon_xlarge: 'Extra Large',
+ select_predefined: '选择预定义:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: 'Invalid value given',
+ noContentToFitTo: 'No content to fit to',
+ dupeLayerName: 'There is already a layer named that!',
+ enterUniqueLayerName: 'Please enter a unique layer name',
+ enterNewLayerName: 'Please enter the new layer name',
+ layerHasThatName: 'Layer already has that name',
+ QmoveElemsToLayer: "Move selected elements to layer '%s'?",
+ QwantToClear: 'Do you want to clear the drawing?\nThis will also erase your undo history!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'There were parsing errors in your SVG source.\nRevert back to original SVG source?',
+ QignoreSourceChanges: 'Ignore changes made to SVG source?',
+ featNotSupported: 'Feature not supported',
+ enterNewImgURL: 'Enter the new image URL',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_zhHK$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_zhHK
+});
+
+var lang_zhTW = {
+ lang: 'zh-TW',
+ dir: 'ltr',
+ common: {
+ ok: '确定',
+ cancel: '取消',
+ key_backspace: '空白',
+ key_del: '刪除',
+ key_down: '下',
+ key_up: '上',
+ more_opts: 'More Options',
+ url: 'URL',
+ width: 'Width',
+ height: 'Height'
+ },
+ misc: {
+ powered_by: 'Powered by'
+ },
+ ui: {
+ toggle_stroke_tools: 'Show/hide more stroke tools',
+ palette_info: '點擊更改填充顏色,按住Shift鍵單擊更改線條顏色',
+ zoom_level: '更改縮放級別',
+ panel_drag: 'Drag left/right to resize side panel',
+ quality: 'Quality:',
+ pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
+ pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
+ pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
+ pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity'
+ },
+ properties: {
+ id: 'Identify the element',
+ fill_color: '更改填充顏色',
+ stroke_color: '線條顏色',
+ stroke_style: '更改線條(虛線)風格',
+ stroke_width: '線條寬度',
+ pos_x: '調整 X 軸',
+ pos_y: '調整 Y 軸',
+ linecap_butt: 'Linecap: Butt',
+ linecap_round: 'Linecap: Round',
+ linecap_square: 'Linecap: Square',
+ linejoin_bevel: 'Linejoin: Bevel',
+ linejoin_miter: 'Linejoin: Miter',
+ linejoin_round: 'Linejoin: Round',
+ angle: '旋轉角度',
+ blur: 'Change gaussian blur value',
+ opacity: '更改所選項目不透明度',
+ circle_cx: '改變圓的CX坐標',
+ circle_cy: '改變圓的CY坐標',
+ circle_r: '改變圓的半徑',
+ ellipse_cx: '改變橢圓的圓心x軸座標',
+ ellipse_cy: '改變橢圓的圓心y軸座標',
+ ellipse_rx: '改變橢圓的x軸長',
+ ellipse_ry: '改變橢圓的y軸長',
+ line_x1: '更改行的起點的x坐標',
+ line_x2: '更改行的終點x坐標',
+ line_y1: '更改行的起點的y坐標',
+ line_y2: '更改行的終點y坐標',
+ rect_height: '更改矩形的高度',
+ rect_width: '更改矩形的寬度',
+ corner_radius: '角半徑:',
+ image_width: '更改圖像的寬度',
+ image_height: '更改圖像高度',
+ image_url: '更改網址',
+ node_x: '改變節點的x軸座標',
+ node_y: '改變節點的y軸座標',
+ seg_type: 'Change Segment type',
+ straight_segments: '直線',
+ curve_segments: '曲線',
+ text_contents: '更改文字內容',
+ font_family: '更改字體',
+ font_size: '更改字體大小',
+ bold: '粗體',
+ italic: '斜體'
+ },
+ tools: {
+ main_menu: 'Main Menu',
+ bkgnd_color_opac: '更改背景顏色/不透明',
+ connector_no_arrow: 'No arrow',
+ fitToContent: '適合內容',
+ fit_to_all: '適合所有的內容',
+ fit_to_canvas: '適合畫布',
+ fit_to_layer_content: '適合圖層內容',
+ fit_to_sel: '適合選取的物件',
+ align_relative_to: '相對對齊 ...',
+ relativeTo: '相對於:',
+ page: '網頁',
+ largest_object: '最大的物件',
+ selected_objects: '選取物件',
+ smallest_object: '最小的物件',
+ new_doc: '清空圖像',
+ open_doc: '打開圖像',
+ export_img: 'Export',
+ save_doc: '保存圖像',
+ import_doc: 'Import Image',
+ align_to_page: 'Align Element to Page',
+ align_bottom: '底部對齊',
+ align_center: '居中對齊',
+ align_left: '向左對齊',
+ align_middle: '中間對齊',
+ align_right: '向右對齊',
+ align_top: '頂端對齊',
+ mode_select: '選擇工具',
+ mode_fhpath: '鉛筆工具',
+ mode_line: '線工具',
+ mode_rect: 'Rectangle Tool',
+ mode_square: 'Square Tool',
+ mode_fhrect: '徒手畫矩形',
+ mode_ellipse: '橢圓',
+ mode_circle: '圓',
+ mode_fhellipse: '徒手畫橢圓',
+ mode_path: '路徑工具',
+ mode_text: '文字工具',
+ mode_image: '圖像工具',
+ mode_zoom: '縮放工具',
+ no_embed: 'NOTE: This image cannot be embedded. It will depend on this path to be displayed',
+ undo: '取消復原',
+ redo: '復原',
+ tool_source: '編輯SVG原始碼',
+ wireframe_mode: '框線模式(只瀏覽線條)',
+ clone: 'Clone Element(s)',
+ del: 'Delete Element(s)',
+ group_elements: '群組',
+ make_link: 'Make (hyper)link',
+ set_link_url: 'Set link URL (leave empty to remove)',
+ to_path: '轉換成路徑',
+ reorient_path: '調整路徑',
+ ungroup: '取消群組',
+ docprops: '文件屬性',
+ editor_homepage: 'SVG-Edit 主頁',
+ move_bottom: '移至底部',
+ move_top: '移動到頂部',
+ node_clone: '增加節點',
+ node_delete: '刪除節點',
+ node_link: '將控制點連起來',
+ add_subpath: 'Add sub-path',
+ openclose_path: 'Open/close sub-path',
+ source_save: '保存',
+ cut: 'Cut',
+ copy: 'Copy',
+ paste: 'Paste',
+ paste_in_place: 'Paste in Place',
+ "delete": 'Delete',
+ group: 'Group',
+ move_front: 'Bring to Front',
+ move_up: 'Bring Forward',
+ move_down: 'Send Backward',
+ move_back: 'Send to Back'
+ },
+ layers: {
+ layer: '圖層',
+ layers: 'Layers',
+ del: '刪除圖層',
+ move_down: '向下移動圖層',
+ "new": '新增圖層',
+ rename: '重新命名圖層',
+ move_up: '向上移動圖層',
+ dupe: 'Duplicate Layer',
+ merge_down: 'Merge Down',
+ merge_all: 'Merge All',
+ move_elems_to: '移動物件到:',
+ move_selected: '移動被點選的物件其他圖層'
+ },
+ config: {
+ image_props: '圖片屬性',
+ doc_title: '標題',
+ doc_dims: '畫布大小',
+ included_images: '包含圖像',
+ image_opt_embed: '內嵌資料 (本地端檔案)',
+ image_opt_ref: '使用檔案參照',
+ editor_prefs: '編輯器屬性',
+ icon_size: '圖示大小',
+ language: '語言',
+ background: '編輯器背景',
+ editor_img_url: 'Image URL',
+ editor_bg_note: '注意: 編輯器背景不會和圖像一起儲存',
+ icon_large: '大',
+ icon_medium: '中',
+ icon_small: '小',
+ icon_xlarge: '特大',
+ select_predefined: '使用預設值:',
+ units_and_rulers: 'Units & Rulers',
+ show_rulers: 'Show rulers',
+ base_unit: 'Base Unit:',
+ grid: 'Grid',
+ snapping_onoff: 'Snapping on/off',
+ snapping_stepsize: 'Snapping Step-Size:',
+ grid_color: 'Grid color'
+ },
+ notification: {
+ invalidAttrValGiven: '數值給定錯誤',
+ noContentToFitTo: '找不到符合的內容',
+ dupeLayerName: '喔不!已經有另一個同樣名稱的圖層了!',
+ enterUniqueLayerName: '請輸入一個名稱不重複的',
+ enterNewLayerName: '請輸入新圖層的名稱',
+ layerHasThatName: '圖層本來就是這個名稱(抱怨)',
+ QmoveElemsToLayer: "要搬移所選取的物件到'%s'層嗎?",
+ QwantToClear: '要清空圖像嗎?\n這會順便清空你的回復紀錄!',
+ QwantToOpen: 'Do you want to open a new file?\nThis will also erase your undo history!',
+ QerrorsRevertToSource: 'SVG原始碼解析錯誤\n要回復到原本的SVG原始碼嗎?',
+ QignoreSourceChanges: '要忽略對SVG原始碼的更動嗎?',
+ featNotSupported: '未提供此功能',
+ enterNewImgURL: '輸入新的圖片網址',
+ defsFailOnSave: 'NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.',
+ loadingImage: 'Loading image, please wait...',
+ saveFromBrowser: "Select 'Save As...' in your browser (possibly via file menu or right-click context-menu) to save this image as a %s file.",
+ noteTheseIssues: 'Also note the following issues: ',
+ unsavedChanges: 'There are unsaved changes.',
+ enterNewLinkURL: 'Enter the new hyperlink URL',
+ errorLoadingSVG: 'Error: Unable to load SVG data',
+ URLLoadFail: 'Unable to load from URL',
+ retrieving: 'Retrieving \'%s\' ...',
+ popupWindowBlocked: 'Popup window may be blocked by browser',
+ exportNoBlur: 'Blurred elements will appear as un-blurred',
+ exportNoforeignObject: 'foreignObject elements will not appear',
+ exportNoDashArray: 'Strokes will appear filled',
+ exportNoText: 'Text may not appear as expected'
+ }
+};
+
+var lang_zhTW$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': lang_zhTW
+});
//# sourceMappingURL=index.js.map
diff --git a/dist/editor/index.js.map b/dist/editor/index.js.map
index 446b4c9f..d7fe08fe 100644
--- a/dist/editor/index.js.map
+++ b/dist/editor/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/has.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/set-global.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/native-weak-map.js","../../node_modules/core-js/internals/is-pure.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/redefine.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/to-integer.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/native-symbol.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../node_modules/core-js/internals/define-well-known-symbol.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/a-function.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/modules/es.symbol.js","../../node_modules/core-js/modules/es.symbol.description.js","../../node_modules/core-js/modules/es.symbol.async-iterator.js","../../node_modules/core-js/modules/es.symbol.has-instance.js","../../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../../node_modules/core-js/modules/es.symbol.iterator.js","../../node_modules/core-js/modules/es.symbol.match.js","../../node_modules/core-js/modules/es.symbol.match-all.js","../../node_modules/core-js/modules/es.symbol.replace.js","../../node_modules/core-js/modules/es.symbol.search.js","../../node_modules/core-js/modules/es.symbol.species.js","../../node_modules/core-js/modules/es.symbol.split.js","../../node_modules/core-js/modules/es.symbol.to-primitive.js","../../node_modules/core-js/modules/es.symbol.to-string-tag.js","../../node_modules/core-js/modules/es.symbol.unscopables.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/array-copy-within.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.copy-within.js","../../node_modules/core-js/internals/array-method-is-strict.js","../../node_modules/core-js/internals/array-method-uses-to-length.js","../../node_modules/core-js/modules/es.array.every.js","../../node_modules/core-js/internals/array-fill.js","../../node_modules/core-js/modules/es.array.fill.js","../../node_modules/core-js/modules/es.array.filter.js","../../node_modules/core-js/modules/es.array.find.js","../../node_modules/core-js/modules/es.array.find-index.js","../../node_modules/core-js/internals/flatten-into-array.js","../../node_modules/core-js/modules/es.array.flat.js","../../node_modules/core-js/modules/es.array.flat-map.js","../../node_modules/core-js/internals/array-for-each.js","../../node_modules/core-js/modules/es.array.for-each.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/modules/es.array.index-of.js","../../node_modules/core-js/modules/es.array.is-array.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/create-iterator-constructor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/define-iterator.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/modules/es.array.join.js","../../node_modules/core-js/internals/array-last-index-of.js","../../node_modules/core-js/modules/es.array.last-index-of.js","../../node_modules/core-js/modules/es.array.map.js","../../node_modules/core-js/modules/es.array.of.js","../../node_modules/core-js/internals/array-reduce.js","../../node_modules/core-js/modules/es.array.reduce.js","../../node_modules/core-js/modules/es.array.reduce-right.js","../../node_modules/core-js/modules/es.array.reverse.js","../../node_modules/core-js/modules/es.array.slice.js","../../node_modules/core-js/modules/es.array.some.js","../../node_modules/core-js/modules/es.array.sort.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/modules/es.array.species.js","../../node_modules/core-js/modules/es.array.splice.js","../../node_modules/core-js/modules/es.array.unscopables.flat.js","../../node_modules/core-js/modules/es.array.unscopables.flat-map.js","../../node_modules/core-js/internals/array-buffer-native.js","../../node_modules/core-js/internals/redefine-all.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/to-index.js","../../node_modules/core-js/internals/ieee754.js","../../node_modules/core-js/internals/array-buffer.js","../../node_modules/core-js/modules/es.array-buffer.constructor.js","../../node_modules/core-js/internals/array-buffer-view-core.js","../../node_modules/core-js/modules/es.array-buffer.is-view.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/modules/es.array-buffer.slice.js","../../node_modules/core-js/modules/es.data-view.js","../../node_modules/core-js/modules/es.date.now.js","../../node_modules/core-js/internals/string-repeat.js","../../node_modules/core-js/internals/string-pad.js","../../node_modules/core-js/internals/date-to-iso-string.js","../../node_modules/core-js/modules/es.date.to-iso-string.js","../../node_modules/core-js/modules/es.date.to-json.js","../../node_modules/core-js/internals/date-to-primitive.js","../../node_modules/core-js/modules/es.date.to-primitive.js","../../node_modules/core-js/modules/es.date.to-string.js","../../node_modules/core-js/internals/function-bind.js","../../node_modules/core-js/modules/es.function.bind.js","../../node_modules/core-js/modules/es.function.has-instance.js","../../node_modules/core-js/modules/es.function.name.js","../../node_modules/core-js/modules/es.global-this.js","../../node_modules/core-js/modules/es.json.stringify.js","../../node_modules/core-js/modules/es.json.to-string-tag.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.map.js","../../node_modules/core-js/internals/math-log1p.js","../../node_modules/core-js/modules/es.math.acosh.js","../../node_modules/core-js/modules/es.math.asinh.js","../../node_modules/core-js/modules/es.math.atanh.js","../../node_modules/core-js/internals/math-sign.js","../../node_modules/core-js/modules/es.math.cbrt.js","../../node_modules/core-js/modules/es.math.clz32.js","../../node_modules/core-js/internals/math-expm1.js","../../node_modules/core-js/modules/es.math.cosh.js","../../node_modules/core-js/modules/es.math.expm1.js","../../node_modules/core-js/internals/math-fround.js","../../node_modules/core-js/modules/es.math.fround.js","../../node_modules/core-js/modules/es.math.hypot.js","../../node_modules/core-js/modules/es.math.imul.js","../../node_modules/core-js/modules/es.math.log10.js","../../node_modules/core-js/modules/es.math.log1p.js","../../node_modules/core-js/modules/es.math.log2.js","../../node_modules/core-js/modules/es.math.sign.js","../../node_modules/core-js/modules/es.math.sinh.js","../../node_modules/core-js/modules/es.math.tanh.js","../../node_modules/core-js/modules/es.math.to-string-tag.js","../../node_modules/core-js/modules/es.math.trunc.js","../../node_modules/core-js/internals/whitespaces.js","../../node_modules/core-js/internals/string-trim.js","../../node_modules/core-js/modules/es.number.constructor.js","../../node_modules/core-js/modules/es.number.epsilon.js","../../node_modules/core-js/internals/number-is-finite.js","../../node_modules/core-js/modules/es.number.is-finite.js","../../node_modules/core-js/internals/is-integer.js","../../node_modules/core-js/modules/es.number.is-integer.js","../../node_modules/core-js/modules/es.number.is-nan.js","../../node_modules/core-js/modules/es.number.is-safe-integer.js","../../node_modules/core-js/modules/es.number.max-safe-integer.js","../../node_modules/core-js/modules/es.number.min-safe-integer.js","../../node_modules/core-js/internals/number-parse-float.js","../../node_modules/core-js/modules/es.number.parse-float.js","../../node_modules/core-js/internals/number-parse-int.js","../../node_modules/core-js/modules/es.number.parse-int.js","../../node_modules/core-js/internals/this-number-value.js","../../node_modules/core-js/modules/es.number.to-fixed.js","../../node_modules/core-js/modules/es.number.to-precision.js","../../node_modules/core-js/internals/object-assign.js","../../node_modules/core-js/modules/es.object.assign.js","../../node_modules/core-js/modules/es.object.create.js","../../node_modules/core-js/internals/object-prototype-accessors-forced.js","../../node_modules/core-js/modules/es.object.define-getter.js","../../node_modules/core-js/modules/es.object.define-properties.js","../../node_modules/core-js/modules/es.object.define-property.js","../../node_modules/core-js/modules/es.object.define-setter.js","../../node_modules/core-js/internals/object-to-array.js","../../node_modules/core-js/modules/es.object.entries.js","../../node_modules/core-js/modules/es.object.freeze.js","../../node_modules/core-js/modules/es.object.from-entries.js","../../node_modules/core-js/modules/es.object.get-own-property-descriptor.js","../../node_modules/core-js/modules/es.object.get-own-property-descriptors.js","../../node_modules/core-js/modules/es.object.get-own-property-names.js","../../node_modules/core-js/modules/es.object.get-prototype-of.js","../../node_modules/core-js/internals/same-value.js","../../node_modules/core-js/modules/es.object.is.js","../../node_modules/core-js/modules/es.object.is-extensible.js","../../node_modules/core-js/modules/es.object.is-frozen.js","../../node_modules/core-js/modules/es.object.is-sealed.js","../../node_modules/core-js/modules/es.object.keys.js","../../node_modules/core-js/modules/es.object.lookup-getter.js","../../node_modules/core-js/modules/es.object.lookup-setter.js","../../node_modules/core-js/modules/es.object.prevent-extensions.js","../../node_modules/core-js/modules/es.object.seal.js","../../node_modules/core-js/modules/es.object.set-prototype-of.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/modules/es.object.values.js","../../node_modules/core-js/modules/es.parse-float.js","../../node_modules/core-js/modules/es.parse-int.js","../../node_modules/core-js/internals/native-promise-constructor.js","../../node_modules/core-js/internals/engine-is-ios.js","../../node_modules/core-js/internals/task.js","../../node_modules/core-js/internals/microtask.js","../../node_modules/core-js/internals/new-promise-capability.js","../../node_modules/core-js/internals/promise-resolve.js","../../node_modules/core-js/internals/host-report-errors.js","../../node_modules/core-js/internals/perform.js","../../node_modules/core-js/modules/es.promise.js","../../node_modules/core-js/modules/es.promise.all-settled.js","../../node_modules/core-js/modules/es.promise.finally.js","../../node_modules/core-js/modules/es.reflect.apply.js","../../node_modules/core-js/modules/es.reflect.construct.js","../../node_modules/core-js/modules/es.reflect.define-property.js","../../node_modules/core-js/modules/es.reflect.delete-property.js","../../node_modules/core-js/modules/es.reflect.get.js","../../node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","../../node_modules/core-js/modules/es.reflect.get-prototype-of.js","../../node_modules/core-js/modules/es.reflect.has.js","../../node_modules/core-js/modules/es.reflect.is-extensible.js","../../node_modules/core-js/modules/es.reflect.own-keys.js","../../node_modules/core-js/modules/es.reflect.prevent-extensions.js","../../node_modules/core-js/modules/es.reflect.set.js","../../node_modules/core-js/modules/es.reflect.set-prototype-of.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/internals/regexp-flags.js","../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../node_modules/core-js/modules/es.regexp.constructor.js","../../node_modules/core-js/internals/regexp-exec.js","../../node_modules/core-js/modules/es.regexp.exec.js","../../node_modules/core-js/modules/es.regexp.flags.js","../../node_modules/core-js/modules/es.regexp.sticky.js","../../node_modules/core-js/modules/es.regexp.test.js","../../node_modules/core-js/modules/es.regexp.to-string.js","../../node_modules/core-js/modules/es.set.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/modules/es.string.code-point-at.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/modules/es.string.ends-with.js","../../node_modules/core-js/modules/es.string.from-code-point.js","../../node_modules/core-js/modules/es.string.includes.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../node_modules/core-js/internals/advance-string-index.js","../../node_modules/core-js/internals/regexp-exec-abstract.js","../../node_modules/core-js/modules/es.string.match.js","../../node_modules/core-js/modules/es.string.match-all.js","../../node_modules/core-js/internals/string-pad-webkit-bug.js","../../node_modules/core-js/modules/es.string.pad-end.js","../../node_modules/core-js/modules/es.string.pad-start.js","../../node_modules/core-js/modules/es.string.raw.js","../../node_modules/core-js/modules/es.string.repeat.js","../../node_modules/core-js/modules/es.string.replace.js","../../node_modules/core-js/modules/es.string.search.js","../../node_modules/core-js/modules/es.string.split.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/internals/string-trim-forced.js","../../node_modules/core-js/modules/es.string.trim.js","../../node_modules/core-js/modules/es.string.trim-end.js","../../node_modules/core-js/modules/es.string.trim-start.js","../../node_modules/core-js/internals/create-html.js","../../node_modules/core-js/internals/string-html-forced.js","../../node_modules/core-js/modules/es.string.anchor.js","../../node_modules/core-js/modules/es.string.big.js","../../node_modules/core-js/modules/es.string.blink.js","../../node_modules/core-js/modules/es.string.bold.js","../../node_modules/core-js/modules/es.string.fixed.js","../../node_modules/core-js/modules/es.string.fontcolor.js","../../node_modules/core-js/modules/es.string.fontsize.js","../../node_modules/core-js/modules/es.string.italics.js","../../node_modules/core-js/modules/es.string.link.js","../../node_modules/core-js/modules/es.string.small.js","../../node_modules/core-js/modules/es.string.strike.js","../../node_modules/core-js/modules/es.string.sub.js","../../node_modules/core-js/modules/es.string.sup.js","../../node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","../../node_modules/core-js/internals/to-positive-integer.js","../../node_modules/core-js/internals/to-offset.js","../../node_modules/core-js/internals/typed-array-from.js","../../node_modules/core-js/internals/typed-array-constructor.js","../../node_modules/core-js/modules/es.typed-array.float32-array.js","../../node_modules/core-js/modules/es.typed-array.float64-array.js","../../node_modules/core-js/modules/es.typed-array.int8-array.js","../../node_modules/core-js/modules/es.typed-array.int16-array.js","../../node_modules/core-js/modules/es.typed-array.int32-array.js","../../node_modules/core-js/modules/es.typed-array.uint8-array.js","../../node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","../../node_modules/core-js/modules/es.typed-array.uint16-array.js","../../node_modules/core-js/modules/es.typed-array.uint32-array.js","../../node_modules/core-js/modules/es.typed-array.copy-within.js","../../node_modules/core-js/modules/es.typed-array.every.js","../../node_modules/core-js/modules/es.typed-array.fill.js","../../node_modules/core-js/modules/es.typed-array.filter.js","../../node_modules/core-js/modules/es.typed-array.find.js","../../node_modules/core-js/modules/es.typed-array.find-index.js","../../node_modules/core-js/modules/es.typed-array.for-each.js","../../node_modules/core-js/modules/es.typed-array.from.js","../../node_modules/core-js/modules/es.typed-array.includes.js","../../node_modules/core-js/modules/es.typed-array.index-of.js","../../node_modules/core-js/modules/es.typed-array.iterator.js","../../node_modules/core-js/modules/es.typed-array.join.js","../../node_modules/core-js/modules/es.typed-array.last-index-of.js","../../node_modules/core-js/modules/es.typed-array.map.js","../../node_modules/core-js/modules/es.typed-array.of.js","../../node_modules/core-js/modules/es.typed-array.reduce.js","../../node_modules/core-js/modules/es.typed-array.reduce-right.js","../../node_modules/core-js/modules/es.typed-array.reverse.js","../../node_modules/core-js/modules/es.typed-array.set.js","../../node_modules/core-js/modules/es.typed-array.slice.js","../../node_modules/core-js/modules/es.typed-array.some.js","../../node_modules/core-js/modules/es.typed-array.sort.js","../../node_modules/core-js/modules/es.typed-array.subarray.js","../../node_modules/core-js/modules/es.typed-array.to-locale-string.js","../../node_modules/core-js/modules/es.typed-array.to-string.js","../../node_modules/core-js/internals/collection-weak.js","../../node_modules/core-js/modules/es.weak-map.js","../../node_modules/core-js/modules/es.weak-set.js","../../node_modules/core-js/internals/dom-iterables.js","../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../node_modules/core-js/modules/web.immediate.js","../../node_modules/core-js/modules/web.queue-microtask.js","../../node_modules/core-js/internals/native-url.js","../../node_modules/core-js/internals/string-punycode-to-ascii.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/modules/web.url-search-params.js","../../node_modules/core-js/modules/web.url.js","../../node_modules/core-js/modules/web.url.to-json.js","../../node_modules/regenerator-runtime/runtime.js","../../src/editor/touch.js","../../src/common/namespaces.js","../../src/common/svgpathseg.js","../../src/common/browser.js","../../src/common/jQuery.attr.js","../../src/common/svgtransformlist.js","../../src/common/units.js","../../src/common/math.js","../../src/common/utilities.js","../../src/editor/contextmenu.js","../../src/external/deparam/deparam.esm.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/global.js","../../node_modules/jspdf/dist/jspdf.es.min.js","../../node_modules/cssesc/cssesc.js","../../node_modules/font-family-papandreou/index.js","../../node_modules/svgpath/lib/path_parse.js","../../node_modules/svgpath/lib/matrix.js","../../node_modules/svgpath/lib/transform_parse.js","../../node_modules/svgpath/lib/a2c.js","../../node_modules/svgpath/lib/ellipse.js","../../node_modules/svgpath/lib/svgpath.js","../../node_modules/svgpath/index.js","../../node_modules/specificity/dist/specificity.mjs","../../node_modules/svg2pdf.js/dist/svg2pdf.es.js","../../src/external/canvg/rgbcolor.js","../../src/external/stackblur-canvas/dist/stackblur-es.js","../../src/external/canvg/canvg.js","../../src/svgcanvas/dbox.js","../../src/svgcanvas/history.js","../../src/svgcanvas/path.js","../../src/common/layer.js","../../src/svgcanvas/historyrecording.js","../../src/svgcanvas/copy-elem.js","../../src/svgcanvas/draw.js","../../src/svgcanvas/sanitize.js","../../src/svgcanvas/coords.js","../../src/svgcanvas/recalculate.js","../../src/svgcanvas/select.js","../../src/svgcanvas/svgcanvas.js","../../src/editor/js-hotkeys/jquery.hotkeys.min.js","../../src/editor/svgicons/jQuery.svgIcons.js","../../src/editor/jgraduate/jQuery.jGraduate.js","../../src/editor/spinbtn/jQuery.SpinButton.js","../../src/editor/contextmenu/jQuery.contextMenu.js","../../src/editor/jgraduate/jQuery.jPicker.js","../../src/editor/locale/locale.js","../../src/editor/svgedit.js","../../src/editor/index.js","../../node_modules/html2canvas/dist/html2canvas.js","../../node_modules/dompurify/dist/purify.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/process-es6.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../node_modules/@babel/runtime/regenerator/index.js","../../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/performance-now/lib/performance-now.js","../../node_modules/raf/index.js","../../node_modules/rgbcolor/index.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/superPropBase.js","../../node_modules/@babel/runtime/helpers/get.js","../../node_modules/stackblur-canvas/dist/stackblur-es.js","../../node_modules/canvg/lib/index.es.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","module.exports = false;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.github.io/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar createProperty = require('../internals/create-property');\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.github.io/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduceRight` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.github.io/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flat');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flatMap');\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice !== undefined && end === undefined) {\n return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n viewTarget.setUint8(index++, viewSource.getUint8(first++));\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\n// `DataView` constructor\n// https://tc39.github.io/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.github.io/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== 'number' && hint !== 'default') {\n throw TypeError('Incorrect hint');\n } return toPrimitive(anObject(this), hint !== 'number');\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive\nif (!(TO_PRIMITIVE in DatePrototype)) {\n createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n } });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://github.com/tc39/proposal-global\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar re = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = string.charAt(offset - 1);\n var next = string.charAt(offset + 1);\n if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {\n return '\\\\u' + match.charCodeAt(0).toString(16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var result = $stringify.apply(null, arguments);\n return typeof result == 'string' ? result.replace(re, fix) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.github.io/ecma262/#sec-math.log1p\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\nvar nativeAcosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !nativeAcosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || nativeAcosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.github.io/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? log(x) + LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","var $ = require('../internals/export');\n\nvar nativeAsinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.github.io/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {\n asinh: asinh\n});\n","var $ = require('../internals/export');\n\nvar nativeAtanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.github.io/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n }\n});\n","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.github.io/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n return sign(x = +x) * pow(abs(x), 1 / 3);\n }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.github.io/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n }\n});\n","var nativeExpm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.github.io/ecma262/#sec-math.expm1\nmodule.exports = (!nativeExpm1\n // Old FF bug\n || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || nativeExpm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : nativeExpm1;\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar nativeCosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.github.io/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.github.io/ecma262/#sec-math.expm1\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.github.io/ecma262/#sec-math.fround\nmodule.exports = Math.fround || function fround(x) {\n var $abs = abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.github.io/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\nvar nativeImul = Math.imul;\n\nvar FORCED = fails(function () {\n return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.github.io/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.github.io/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: function log10(x) {\n return log(x) * LOG10E;\n }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.github.io/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.github.io/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.github.io/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.github.io/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.github.io/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.github.io/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.github.io/ecma262/#sec-number.parseFloat\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.github.io/ecma262/#sec-number.parseint\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = 1.0.toPrecision;\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision.call(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision.call({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision.call(thisNumberValue(this))\n : nativeToPrecision.call(thisNumberValue(this), precision);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n var key = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete global[key];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n });\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, undefined, true);\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.github.io/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-object.isextensible\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isExtensible: function isExtensible(it) {\n return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.github.io/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isFrozen: function isFrozen(it) {\n return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.github.io/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isSealed: function isSealed(it) {\n return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPrimitive(P, true);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPrimitive(P, true);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativePreventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativeSeal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });\n\n// `Object.seal` method\n// https://tc39.github.io/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.github.io/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n aFunction(target);\n anObject(argumentsList);\n return nativeApply\n ? nativeApply(target, thisArgument, argumentsList)\n : functionApply.call(target, thisArgument, argumentsList);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.github.io/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n ? descriptor.value\n : descriptor.get === undefined\n ? undefined\n : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.github.io/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\n\nvar objectIsExtensible = Object.isExtensible;\n\n// `Reflect.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return objectIsExtensible ? objectIsExtensible(target) : true;\n }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.github.io/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.github.io/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (has(ownDescriptor, 'value')) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n return true;\n }\n return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var object = definePropertyModule.f({}, 'a', { configurable: true });\n // eslint-disable-next-line no-undef\n return Reflect.set(getPrototypeOf(object), 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\nvar RegExpPrototype = RegExp.prototype;\n\n// `RegExp.prototype.sticky` getter\nif (DESCRIPTORS && UNSUPPORTED_Y) {\n defineProperty(RegExp.prototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (this instanceof RegExp) {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n if (typeof this.exec !== 'function') {\n return nativeTest.call(this, str);\n }\n var result = this.exec(str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\nvar nativeMatchAll = ''.matchAll;\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n 'a'.matchAll(/./);\n});\n\nvar regExpExec = function (R, S) {\n var exec = R.exec;\n var result;\n if (typeof exec == 'function') {\n result = exec.call(R, S);\n if (typeof result != 'object') throw TypeError('Incorrect exec result');\n return result;\n } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return { value: undefined, done: true };\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) return { value: undefined, done: state.done = true };\n if (state.global) {\n if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return { value: match, done: false };\n }\n state.done = true;\n return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = String(string);\n var C, flagsValue, flags, matcher, global, fullUnicode;\n C = speciesConstructor(R, RegExp);\n flagsValue = R.flags;\n if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n flagsValue = getRegExpFlags.call(R);\n }\n flags = flagsValue === undefined ? '' : String(flagsValue);\n matcher = new C(C === RegExp ? R.source : R, flags);\n global = !!~flags.indexOf('g');\n fullUnicode = !!~flags.indexOf('u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://github.com/tc39/proposal-string-matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (regexp != null) {\n if (isRegExp(regexp)) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? regexp.flags\n : getRegExpFlags.call(regexp)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n matcher = regexp[MATCH_ALL];\n if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n if (matcher != null) return aFunction(matcher).call(regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n S = String(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `String.raw` method\n// https://tc39.github.io/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(template.raw);\n var literalSegments = toLength(rawTemplate.length);\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (literalSegments > i) {\n elements.push(String(rawTemplate[i++]));\n if (i < argumentsLength) elements.push(String(arguments[i]));\n } return elements.join('');\n }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n return $trimEnd(this);\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimEnd: trimEnd,\n trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n // `setImmediate` method\n // http://w3c.github.io/setImmediate/#si-setImmediate\n setImmediate: task.set,\n // `clearImmediate` method\n // http://w3c.github.io/setImmediate/#si-clearImmediate\n clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar classof = require('../internals/classof-raw');\n\nvar process = global.process;\nvar isNode = classof(process) == 'process';\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n queueMicrotask: function queueMicrotask(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/\n/**\n *\n * @param {Event} ev\n * @returns {void}\n */\nfunction touchHandler (ev) {\n const {changedTouches} = ev,\n first = changedTouches[0];\n\n let type = '';\n switch (ev.type) {\n case 'touchstart': type = 'mousedown'; break;\n case 'touchmove': type = 'mousemove'; break;\n case 'touchend': type = 'mouseup'; break;\n default: return;\n }\n\n const {screenX, screenY, clientX, clientY} = first; // eslint-disable-line no-shadow\n const simulatedEvent = new MouseEvent(type, {\n // Event interface\n bubbles: true,\n cancelable: true,\n // UIEvent interface\n view: window,\n detail: 1, // click count\n // MouseEvent interface (customized)\n screenX, screenY, clientX, clientY,\n // MouseEvent interface (defaults) - these could be removed\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0, // main button (usually left)\n relatedTarget: null\n });\n if (changedTouches.length < 2) {\n first.target.dispatchEvent(simulatedEvent);\n ev.preventDefault();\n }\n}\n\ndocument.addEventListener('touchstart', touchHandler, true);\ndocument.addEventListener('touchmove', touchHandler, true);\ndocument.addEventListener('touchend', touchHandler, true);\ndocument.addEventListener('touchcancel', touchHandler, true);\n","/**\n * Namespaces or tools therefor.\n * @module namespaces\n * @license MIT\n*/\n\n/**\n* Common namepaces constants in alpha order.\n* @enum {string}\n* @type {PlainObject}\n* @memberof module:namespaces\n*/\nexport const NS = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATH: 'http://www.w3.org/1998/Math/MathML',\n SE: 'http://svg-edit.googlecode.com',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/' // see http://www.w3.org/TR/REC-xml-names/#xmlReserved\n};\n\n/**\n* @function module:namespaces.getReverseNS\n* @returns {string} The NS with key values switched and lowercase\n*/\nexport const getReverseNS = function () {\n const reverseNS = {};\n Object.entries(NS).forEach(([name, URI]) => {\n reverseNS[URI] = name.toLowerCase();\n });\n return reverseNS;\n};\n","/* eslint-disable import/unambiguous, max-len */\n/* globals SVGPathSeg, SVGPathSegMovetoRel, SVGPathSegMovetoAbs,\n SVGPathSegMovetoRel, SVGPathSegLinetoRel, SVGPathSegLinetoAbs,\n SVGPathSegLinetoHorizontalRel, SVGPathSegLinetoHorizontalAbs,\n SVGPathSegLinetoVerticalRel, SVGPathSegLinetoVerticalAbs,\n SVGPathSegClosePath, SVGPathSegCurvetoCubicRel,\n SVGPathSegCurvetoCubicAbs, SVGPathSegCurvetoCubicSmoothRel,\n SVGPathSegCurvetoCubicSmoothAbs, SVGPathSegCurvetoQuadraticRel,\n SVGPathSegCurvetoQuadraticAbs, SVGPathSegCurvetoQuadraticSmoothRel,\n SVGPathSegCurvetoQuadraticSmoothAbs, SVGPathSegArcRel, SVGPathSegArcAbs */\n/**\n* SVGPathSeg API polyfill\n* https://github.com/progers/pathseg\n*\n* This is a drop-in replacement for the `SVGPathSeg` and `SVGPathSegList` APIs\n* that were removed from SVG2 ({@link https://lists.w3.org/Archives/Public/www-svg/2015Jun/0044.html}),\n* including the latest spec changes which were implemented in Firefox 43 and\n* Chrome 46.\n*/\n/* eslint-disable no-shadow, class-methods-use-this, jsdoc/require-jsdoc */\n// Linting: We avoid `no-shadow` as ESLint thinks these are still available globals\n// Linting: We avoid `class-methods-use-this` as this is a polyfill that must\n// follow the conventions\n(() => {\nif (!('SVGPathSeg' in window)) {\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSeg\n class SVGPathSeg {\n constructor (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n }\n // Notify owning PathSegList on any changes so they can be synchronized back to the path element.\n _segmentChanged () {\n if (this._owningPathSegList) {\n this._owningPathSegList.segmentChanged(this);\n }\n }\n }\n SVGPathSeg.prototype.classname = 'SVGPathSeg';\n\n SVGPathSeg.PATHSEG_UNKNOWN = 0;\n SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n SVGPathSeg.PATHSEG_LINETO_REL = 5;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n SVGPathSeg.PATHSEG_ARC_ABS = 10;\n SVGPathSeg.PATHSEG_ARC_REL = 11;\n SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n\n class SVGPathSegClosePath extends SVGPathSeg {\n constructor (owningPathSegList) {\n super(SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList);\n }\n toString () { return '[object SVGPathSegClosePath]'; }\n _asPathString () { return this.pathSegTypeAsLetter; }\n clone () { return new SVGPathSegClosePath(undefined); }\n }\n\n class SVGPathSegMovetoAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegMovetoAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegMovetoAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegMovetoAbs.prototype, {\n x: {\n get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true\n },\n y: {\n get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true\n }\n });\n\n class SVGPathSegMovetoRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegMovetoRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegMovetoRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegMovetoRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegLinetoAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegLinetoRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x1, y1) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x1 + ' ' + this._y1 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x1: {get () { return this._x1; }, set (x1) { this._x1 = x1; this._segmentChanged(); }, enumerable: true},\n y1: {get () { return this._y1; }, set (y1) { this._y1 = y1; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegArcAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n super(SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n }\n toString () { return '[object SVGPathSegArcAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._r1 + ' ' + this._r2 + ' ' + this._angle + ' ' + (this._largeArcFlag ? '1' : '0') + ' ' + (this._sweepFlag ? '1' : '0') + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag); }\n }\n Object.defineProperties(SVGPathSegArcAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n r1: {get () { return this._r1; }, set (r1) { this._r1 = r1; this._segmentChanged(); }, enumerable: true},\n r2: {get () { return this._r2; }, set (r2) { this._r2 = r2; this._segmentChanged(); }, enumerable: true},\n angle: {get () { return this._angle; }, set (angle) { this._angle = angle; this._segmentChanged(); }, enumerable: true},\n largeArcFlag: {get () { return this._largeArcFlag; }, set (largeArcFlag) { this._largeArcFlag = largeArcFlag; this._segmentChanged(); }, enumerable: true},\n sweepFlag: {get () { return this._sweepFlag; }, set (sweepFlag) { this._sweepFlag = sweepFlag; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegArcRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n super(SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n }\n toString () { return '[object SVGPathSegArcRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._r1 + ' ' + this._r2 + ' ' + this._angle + ' ' + (this._largeArcFlag ? '1' : '0') + ' ' + (this._sweepFlag ? '1' : '0') + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag); }\n }\n Object.defineProperties(SVGPathSegArcRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n r1: {get () { return this._r1; }, set (r1) { this._r1 = r1; this._segmentChanged(); }, enumerable: true},\n r2: {get () { return this._r2; }, set (r2) { this._r2 = r2; this._segmentChanged(); }, enumerable: true},\n angle: {get () { return this._angle; }, set (angle) { this._angle = angle; this._segmentChanged(); }, enumerable: true},\n largeArcFlag: {get () { return this._largeArcFlag; }, set (largeArcFlag) { this._largeArcFlag = largeArcFlag; this._segmentChanged(); }, enumerable: true},\n sweepFlag: {get () { return this._sweepFlag; }, set (sweepFlag) { this._sweepFlag = sweepFlag; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {\n constructor (owningPathSegList, x) {\n super(SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList);\n this._x = x;\n }\n toString () { return '[object SVGPathSegLinetoHorizontalAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x; }\n clone () { return new SVGPathSegLinetoHorizontalAbs(undefined, this._x); }\n }\n Object.defineProperty(SVGPathSegLinetoHorizontalAbs.prototype, 'x', {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoHorizontalRel extends SVGPathSeg {\n constructor (owningPathSegList, x) {\n super(SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList);\n this._x = x;\n }\n toString () { return '[object SVGPathSegLinetoHorizontalRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x; }\n clone () { return new SVGPathSegLinetoHorizontalRel(undefined, this._x); }\n }\n Object.defineProperty(SVGPathSegLinetoHorizontalRel.prototype, 'x', {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoVerticalAbs extends SVGPathSeg {\n constructor (owningPathSegList, y) {\n super(SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList);\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoVerticalAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoVerticalAbs(undefined, this._y); }\n }\n Object.defineProperty(SVGPathSegLinetoVerticalAbs.prototype, 'y', {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegLinetoVerticalRel extends SVGPathSeg {\n constructor (owningPathSegList, y) {\n super(SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList);\n this._y = y;\n }\n toString () { return '[object SVGPathSegLinetoVerticalRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._y; }\n clone () { return new SVGPathSegLinetoVerticalRel(undefined, this._y); }\n }\n Object.defineProperty(SVGPathSegLinetoVerticalRel.prototype, 'y', {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true});\n\n class SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicSmoothAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicSmoothAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y, x2, y2) {\n super(SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n }\n toString () { return '[object SVGPathSegCurvetoCubicSmoothRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x2 + ' ' + this._y2 + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2); }\n }\n Object.defineProperties(SVGPathSegCurvetoCubicSmoothRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true},\n x2: {get () { return this._x2; }, set (x2) { this._x2 = x2; this._segmentChanged(); }, enumerable: true},\n y2: {get () { return this._y2; }, set (y2) { this._y2 = y2; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticSmoothAbs]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticSmoothAbs.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n class SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {\n constructor (owningPathSegList, x, y) {\n super(SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList);\n this._x = x;\n this._y = y;\n }\n toString () { return '[object SVGPathSegCurvetoQuadraticSmoothRel]'; }\n _asPathString () { return this.pathSegTypeAsLetter + ' ' + this._x + ' ' + this._y; }\n clone () { return new SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y); }\n }\n Object.defineProperties(SVGPathSegCurvetoQuadraticSmoothRel.prototype, {\n x: {get () { return this._x; }, set (x) { this._x = x; this._segmentChanged(); }, enumerable: true},\n y: {get () { return this._y; }, set (y) { this._y = y; this._segmentChanged(); }, enumerable: true}\n });\n\n // Add createSVGPathSeg* functions to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathElement.\n SVGPathElement.prototype.createSVGPathSegClosePath = function () { return new SVGPathSegClosePath(undefined); };\n SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) { return new SVGPathSegMovetoAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) { return new SVGPathSegMovetoRel(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) { return new SVGPathSegLinetoAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) { return new SVGPathSegLinetoRel(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) { return new SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) { return new SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) { return new SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) { return new SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1); };\n SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) { return new SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag); };\n SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) { return new SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag); };\n SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) { return new SVGPathSegLinetoHorizontalAbs(undefined, x); };\n SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) { return new SVGPathSegLinetoHorizontalRel(undefined, x); };\n SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) { return new SVGPathSegLinetoVerticalAbs(undefined, y); };\n SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) { return new SVGPathSegLinetoVerticalRel(undefined, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) { return new SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) { return new SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) { return new SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y); };\n SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) { return new SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y); };\n\n if (!('getPathSegAtLength' in SVGPathElement.prototype)) {\n // Add getPathSegAtLength to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-__svg__SVGPathElement__getPathSegAtLength\n // This polyfill requires SVGPathElement.getTotalLength to implement the distance-along-a-path algorithm.\n SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance)) {\n throw new Error('Invalid arguments.');\n }\n\n const measurementElement = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n measurementElement.setAttribute('d', this.getAttribute('d'));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n\n // If the path is empty, return 0.\n if (lastPathSegment <= 0) {\n return 0;\n }\n\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) {\n break;\n }\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n\n window.SVGPathSeg = SVGPathSeg;\n window.SVGPathSegClosePath = SVGPathSegClosePath;\n window.SVGPathSegMovetoAbs = SVGPathSegMovetoAbs;\n window.SVGPathSegMovetoRel = SVGPathSegMovetoRel;\n window.SVGPathSegLinetoAbs = SVGPathSegLinetoAbs;\n window.SVGPathSegLinetoRel = SVGPathSegLinetoRel;\n window.SVGPathSegCurvetoCubicAbs = SVGPathSegCurvetoCubicAbs;\n window.SVGPathSegCurvetoCubicRel = SVGPathSegCurvetoCubicRel;\n window.SVGPathSegCurvetoQuadraticAbs = SVGPathSegCurvetoQuadraticAbs;\n window.SVGPathSegCurvetoQuadraticRel = SVGPathSegCurvetoQuadraticRel;\n window.SVGPathSegArcAbs = SVGPathSegArcAbs;\n window.SVGPathSegArcRel = SVGPathSegArcRel;\n window.SVGPathSegLinetoHorizontalAbs = SVGPathSegLinetoHorizontalAbs;\n window.SVGPathSegLinetoHorizontalRel = SVGPathSegLinetoHorizontalRel;\n window.SVGPathSegLinetoVerticalAbs = SVGPathSegLinetoVerticalAbs;\n window.SVGPathSegLinetoVerticalRel = SVGPathSegLinetoVerticalRel;\n window.SVGPathSegCurvetoCubicSmoothAbs = SVGPathSegCurvetoCubicSmoothAbs;\n window.SVGPathSegCurvetoCubicSmoothRel = SVGPathSegCurvetoCubicSmoothRel;\n window.SVGPathSegCurvetoQuadraticSmoothAbs = SVGPathSegCurvetoQuadraticSmoothAbs;\n window.SVGPathSegCurvetoQuadraticSmoothRel = SVGPathSegCurvetoQuadraticSmoothRel;\n}\n\n// Checking for SVGPathSegList in window checks for the case of an implementation without the\n// SVGPathSegList API.\n// The second check for appendItem is specific to Firefox 59+ which removed only parts of the\n// SVGPathSegList API (e.g., appendItem). In this case we need to re-implement the entire API\n// so the polyfill data (i.e., _list) is used throughout.\nif (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.prototype)) {\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSegList\n class SVGPathSegList {\n constructor (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\n\n // Use a MutationObserver to catch changes to the path's \"d\" attribute.\n this._mutationObserverConfig = {attributes: true, attributeFilter: ['d']};\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n }\n // Process any pending mutations to the path element and update the list as needed.\n // This should be the first call of all public functions and is needed because\n // MutationObservers are not synchronous so we can have pending asynchronous mutations.\n _checkPathSynchronizedToList () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n }\n\n _updateListFromPathMutations (mutationRecords) {\n if (!this._pathElement) {\n return;\n }\n let hasPathMutations = false;\n mutationRecords.forEach((record) => {\n if (record.attributeName === 'd') {\n hasPathMutations = true;\n }\n });\n if (hasPathMutations) {\n this._list = this._parsePath(this._pathElement.getAttribute('d'));\n }\n }\n\n // Serialize the list and update the path's 'd' attribute.\n _writeListToPath () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute('d', SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n }\n\n // When a path segment changes the list needs to be synchronized back to the path element.\n segmentChanged (pathSeg) {\n this._writeListToPath();\n }\n\n clear () {\n this._checkPathSynchronizedToList();\n\n this._list.forEach((pathSeg) => {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n }\n\n initialize (newItem) {\n this._checkPathSynchronizedToList();\n\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n _checkValidIndex (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) {\n throw new Error('INDEX_SIZE_ERR');\n }\n }\n\n getItem (index) {\n this._checkPathSynchronizedToList();\n\n this._checkValidIndex(index);\n return this._list[index];\n }\n\n insertItemBefore (newItem, index) {\n this._checkPathSynchronizedToList();\n\n // Spec: If the index is greater than or equal to numberOfItems, then the new item is appended to the end of the list.\n if (index > this.numberOfItems) {\n index = this.numberOfItems;\n }\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n replaceItem (newItem, index) {\n this._checkPathSynchronizedToList();\n\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n }\n\n removeItem (index) {\n this._checkPathSynchronizedToList();\n\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n }\n\n appendItem (newItem) {\n this._checkPathSynchronizedToList();\n\n if (newItem._owningPathSegList) {\n // SVG2 spec says to make a copy.\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n // TODO: Optimize this to just append to the existing attribute.\n this._writeListToPath();\n return newItem;\n }\n\n // This closely follows SVGPathParser::parsePath from Source/core/svg/SVGPathParser.cpp.\n _parsePath (string) {\n if (!string || !string.length) {\n return [];\n }\n\n const owningPathSegList = this;\n\n class Builder {\n constructor () {\n this.pathSegList = [];\n }\n appendSegment (pathSeg) {\n this.pathSegList.push(pathSeg);\n }\n }\n\n class Source {\n constructor (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = SVGPathSeg.PATHSEG_UNKNOWN;\n\n this._skipOptionalSpaces();\n }\n _isCurrentSpace () {\n const character = this._string[this._currentIndex];\n return character <= ' ' && (character === ' ' || character === '\\n' || character === '\\t' || character === '\\r' || character === '\\f');\n }\n\n _skipOptionalSpaces () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace()) {\n this._currentIndex++;\n }\n return this._currentIndex < this._endIndex;\n }\n\n _skipOptionalSpacesOrDelimiter () {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) !== ',') {\n return false;\n }\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === ',') {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n }\n\n hasMoreData () {\n return this._currentIndex < this._endIndex;\n }\n\n peekSegmentType () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n }\n\n _pathSegTypeFromChar (lookahead) {\n switch (lookahead) {\n case 'Z':\n case 'z':\n return SVGPathSeg.PATHSEG_CLOSEPATH;\n case 'M':\n return SVGPathSeg.PATHSEG_MOVETO_ABS;\n case 'm':\n return SVGPathSeg.PATHSEG_MOVETO_REL;\n case 'L':\n return SVGPathSeg.PATHSEG_LINETO_ABS;\n case 'l':\n return SVGPathSeg.PATHSEG_LINETO_REL;\n case 'C':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case 'c':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case 'Q':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case 'q':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case 'A':\n return SVGPathSeg.PATHSEG_ARC_ABS;\n case 'a':\n return SVGPathSeg.PATHSEG_ARC_REL;\n case 'H':\n return SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case 'h':\n return SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case 'V':\n return SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case 'v':\n return SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case 'S':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case 's':\n return SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case 'T':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case 't':\n return SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return SVGPathSeg.PATHSEG_UNKNOWN;\n }\n }\n\n _nextCommandHelper (lookahead, previousCommand) {\n // Check for remaining coordinates in the current command.\n if ((lookahead === '+' || lookahead === '-' || lookahead === '.' || (lookahead >= '0' && lookahead <= '9')) && previousCommand !== SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand === SVGPathSeg.PATHSEG_MOVETO_ABS) {\n return SVGPathSeg.PATHSEG_LINETO_ABS;\n }\n if (previousCommand === SVGPathSeg.PATHSEG_MOVETO_REL) {\n return SVGPathSeg.PATHSEG_LINETO_REL;\n }\n return previousCommand;\n }\n return SVGPathSeg.PATHSEG_UNKNOWN;\n }\n\n initialCommandIsMoveTo () {\n // If the path is empty it is still valid, so return true.\n if (!this.hasMoreData()) {\n return true;\n }\n const command = this.peekSegmentType();\n // Path must start with moveTo.\n return command === SVGPathSeg.PATHSEG_MOVETO_ABS || command === SVGPathSeg.PATHSEG_MOVETO_REL;\n }\n\n // Parse a number from an SVG path. This very closely follows genericParseNumber(...) from Source/core/svg/SVGParserUtilities.cpp.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-PathDataBNF\n _parseNumber () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n\n const startIndex = this._currentIndex;\n\n this._skipOptionalSpaces();\n\n // Read the sign.\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '+') {\n this._currentIndex++;\n } else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '-') {\n this._currentIndex++;\n sign = -1;\n }\n\n if (this._currentIndex === this._endIndex || ((this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') && this._string.charAt(this._currentIndex) !== '.')) {\n // The first character of a number must be one of [0-9+-.].\n return undefined;\n }\n\n // Read the integer part, build right-to-left.\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n this._currentIndex++; // Advance to first non-digit.\n }\n\n if (this._currentIndex !== startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - '0');\n multiplier *= 10;\n }\n }\n\n // Read the decimals.\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) === '.') {\n this._currentIndex++;\n\n // There must be a least one digit following the .\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') {\n return undefined;\n }\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - '0') / frac;\n this._currentIndex += 1;\n }\n }\n\n // Read the exponent part.\n if (this._currentIndex !== startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) === 'e' || this._string.charAt(this._currentIndex) === 'E') && (this._string.charAt(this._currentIndex + 1) !== 'x' && this._string.charAt(this._currentIndex + 1) !== 'm')) {\n this._currentIndex++;\n\n // Read the sign of the exponent.\n if (this._string.charAt(this._currentIndex) === '+') {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) === '-') {\n this._currentIndex++;\n expsign = -1;\n }\n\n // There must be an exponent.\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') {\n return undefined;\n }\n\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= '0' && this._string.charAt(this._currentIndex) <= '9') {\n exponent *= 10;\n exponent += (this._string.charAt(this._currentIndex) - '0');\n this._currentIndex++;\n }\n }\n\n let number = integer + decimal;\n number *= sign;\n\n if (exponent) {\n number *= 10 ** (expsign * exponent);\n }\n\n if (startIndex === this._currentIndex) {\n return undefined;\n }\n\n this._skipOptionalSpacesOrDelimiter();\n\n return number;\n }\n\n _parseArcFlag () {\n if (this._currentIndex >= this._endIndex) {\n return undefined;\n }\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar === '0') {\n flag = false;\n } else if (flagChar === '1') {\n flag = true;\n } else {\n return undefined;\n }\n\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n }\n\n parseSegment () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command === SVGPathSeg.PATHSEG_UNKNOWN) {\n // Possibly an implicit command. Not allowed if this is the first command.\n if (this._previousCommand === SVGPathSeg.PATHSEG_UNKNOWN) {\n return null;\n }\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command === SVGPathSeg.PATHSEG_UNKNOWN) {\n return null;\n }\n } else {\n this._currentIndex++;\n }\n\n this._previousCommand = command;\n\n switch (command) {\n case SVGPathSeg.PATHSEG_MOVETO_REL:\n return new SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_REL:\n return new SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_ABS:\n return new SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new SVGPathSegClosePath(owningPathSegList);\n case SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL: {\n const points = {x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: {\n const points = {x2: this._parseNumber(), y2: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n } case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case SVGPathSeg.PATHSEG_ARC_REL: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), arcAngle: this._parseNumber(), arcLarge: this._parseArcFlag(), arcSweep: this._parseArcFlag(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n } case SVGPathSeg.PATHSEG_ARC_ABS: {\n const points = {x1: this._parseNumber(), y1: this._parseNumber(), arcAngle: this._parseNumber(), arcLarge: this._parseArcFlag(), arcSweep: this._parseArcFlag(), x: this._parseNumber(), y: this._parseNumber()};\n return new SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n } default:\n throw new Error('Unknown path seg type.');\n }\n }\n }\n\n const builder = new Builder();\n const source = new Source(string);\n\n if (!source.initialCommandIsMoveTo()) {\n return [];\n }\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg) {\n return [];\n }\n builder.appendSegment(pathSeg);\n }\n\n return builder.pathSegList;\n }\n\n // STATIC\n static _pathSegArrayAsString (pathSegArray) {\n let string = '';\n let first = true;\n pathSegArray.forEach((pathSeg) => {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += ' ' + pathSeg._asPathString();\n }\n });\n return string;\n }\n }\n\n SVGPathSegList.prototype.classname = 'SVGPathSegList';\n\n Object.defineProperty(SVGPathSegList.prototype, 'numberOfItems', {\n get () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n\n // Add the pathSegList accessors to SVGPathElement.\n // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGAnimatedPathData\n Object.defineProperties(SVGPathElement.prototype, {\n pathSegList: {\n get () {\n if (!this._pathSegList) {\n this._pathSegList = new SVGPathSegList(this);\n }\n return this._pathSegList;\n },\n enumerable: true\n },\n // TODO: The following are not implemented and simply return SVGPathElement.pathSegList.\n normalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true},\n animatedPathSegList: {get () { return this.pathSegList; }, enumerable: true},\n animatedNormalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true}\n });\n window.SVGPathSegList = SVGPathSegList;\n}\n})();\n","/* globals jQuery */\n/**\n * Browser detection.\n * @module browser\n * @license MIT\n *\n * @copyright 2010 Jeff Schiller, 2010 Alexis Deveria\n */\n\n// Dependencies:\n// 1) jQuery (for $.alert())\n\nimport './svgpathseg.js';\nimport {NS} from './namespaces.js';\n\nconst $ = jQuery;\n\nconst supportsSVG_ = (function () {\nreturn Boolean(document.createElementNS && document.createElementNS(NS.SVG, 'svg').createSVGRect);\n}());\n\n/**\n * @function module:browser.supportsSvg\n * @returns {boolean}\n*/\nexport const supportsSvg = () => supportsSVG_;\n\nconst {userAgent} = navigator;\nconst svg = document.createElementNS(NS.SVG, 'svg');\n\n// Note: Browser sniffing should only be used if no other detection method is possible\nconst isOpera_ = Boolean(window.opera);\nconst isWebkit_ = userAgent.includes('AppleWebKit');\nconst isGecko_ = userAgent.includes('Gecko/');\nconst isIE_ = userAgent.includes('MSIE');\nconst isChrome_ = userAgent.includes('Chrome/');\nconst isWindows_ = userAgent.includes('Windows');\nconst isMac_ = userAgent.includes('Macintosh');\nconst isTouch_ = 'ontouchstart' in window;\n\nconst supportsSelectors_ = (function () {\nreturn Boolean(svg.querySelector);\n}());\n\nconst supportsXpath_ = (function () {\nreturn Boolean(document.evaluate);\n}());\n\n// segList functions (for FF1.5 and 2.0)\nconst supportsPathReplaceItem_ = (function () {\nconst path = document.createElementNS(NS.SVG, 'path');\npath.setAttribute('d', 'M0,0 10,10');\nconst seglist = path.pathSegList;\nconst seg = path.createSVGPathSegLinetoAbs(5, 5);\ntry {\n seglist.replaceItem(seg, 1);\n return true;\n} catch (err) {}\nreturn false;\n}());\n\nconst supportsPathInsertItemBefore_ = (function () {\nconst path = document.createElementNS(NS.SVG, 'path');\npath.setAttribute('d', 'M0,0 10,10');\nconst seglist = path.pathSegList;\nconst seg = path.createSVGPathSegLinetoAbs(5, 5);\ntry {\n seglist.insertItemBefore(seg, 1);\n return true;\n} catch (err) {}\nreturn false;\n}());\n\n// text character positioning (for IE9 and now Chrome)\nconst supportsGoodTextCharPos_ = (function () {\nconst svgroot = document.createElementNS(NS.SVG, 'svg');\nconst svgcontent = document.createElementNS(NS.SVG, 'svg');\ndocument.documentElement.append(svgroot);\nsvgcontent.setAttribute('x', 5);\nsvgroot.append(svgcontent);\nconst text = document.createElementNS(NS.SVG, 'text');\ntext.textContent = 'a';\nsvgcontent.append(text);\ntry { // Chrome now fails here\n const pos = text.getStartPositionOfChar(0).x;\n return (pos === 0);\n} catch (err) {\n return false;\n} finally {\n svgroot.remove();\n}\n}());\n\nconst supportsPathBBox_ = (function () {\nconst svgcontent = document.createElementNS(NS.SVG, 'svg');\ndocument.documentElement.append(svgcontent);\nconst path = document.createElementNS(NS.SVG, 'path');\npath.setAttribute('d', 'M0,0 C0,0 10,10 10,0');\nsvgcontent.append(path);\nconst bbox = path.getBBox();\nsvgcontent.remove();\nreturn (bbox.height > 4 && bbox.height < 5);\n}());\n\n// Support for correct bbox sizing on groups with horizontal/vertical lines\nconst supportsHVLineContainerBBox_ = (function () {\nconst svgcontent = document.createElementNS(NS.SVG, 'svg');\ndocument.documentElement.append(svgcontent);\nconst path = document.createElementNS(NS.SVG, 'path');\npath.setAttribute('d', 'M0,0 10,0');\nconst path2 = document.createElementNS(NS.SVG, 'path');\npath2.setAttribute('d', 'M5,0 15,0');\nconst g = document.createElementNS(NS.SVG, 'g');\ng.append(path, path2);\nsvgcontent.append(g);\nconst bbox = g.getBBox();\nsvgcontent.remove();\n// Webkit gives 0, FF gives 10, Opera (correctly) gives 15\nreturn (bbox.width === 15);\n}());\n\nconst supportsEditableText_ = (function () {\n// TODO: Find better way to check support for this\nreturn isOpera_;\n}());\n\nconst supportsGoodDecimals_ = (function () {\n// Correct decimals on clone attributes (Opera < 10.5/win/non-en)\nconst rect = document.createElementNS(NS.SVG, 'rect');\nrect.setAttribute('x', 0.1);\nconst crect = rect.cloneNode(false);\nconst retValue = (!crect.getAttribute('x').includes(','));\nif (!retValue) {\n // Todo: i18nize or remove\n $.alert(\n 'NOTE: This version of Opera is known to contain bugs in SVG-edit.\\n' +\n 'Please upgrade to the latest version in which the problems have been fixed.'\n );\n}\nreturn retValue;\n}());\n\nconst supportsNonScalingStroke_ = (function () {\nconst rect = document.createElementNS(NS.SVG, 'rect');\nrect.setAttribute('style', 'vector-effect:non-scaling-stroke');\nreturn rect.style.vectorEffect === 'non-scaling-stroke';\n}());\n\nlet supportsNativeSVGTransformLists_ = (function () {\nconst rect = document.createElementNS(NS.SVG, 'rect');\nconst rxform = rect.transform.baseVal;\nconst t1 = svg.createSVGTransform();\nrxform.appendItem(t1);\nconst r1 = rxform.getItem(0);\nconst isSVGTransform = (o) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/SVGTransform\n return o && typeof o === 'object' && typeof o.setMatrix === 'function' && 'angle' in o;\n};\nreturn isSVGTransform(r1) && isSVGTransform(t1) &&\n r1.type === t1.type && r1.angle === t1.angle &&\n r1.matrix.a === t1.matrix.a &&\n r1.matrix.b === t1.matrix.b &&\n r1.matrix.c === t1.matrix.c &&\n r1.matrix.d === t1.matrix.d &&\n r1.matrix.e === t1.matrix.e &&\n r1.matrix.f === t1.matrix.f;\n}());\n\n// Public API\n\n/**\n * @function module:browser.isOpera\n * @returns {boolean}\n*/\nexport const isOpera = () => isOpera_;\n/**\n * @function module:browser.isWebkit\n * @returns {boolean}\n*/\nexport const isWebkit = () => isWebkit_;\n/**\n * @function module:browser.isGecko\n * @returns {boolean}\n*/\nexport const isGecko = () => isGecko_;\n/**\n * @function module:browser.isIE\n * @returns {boolean}\n*/\nexport const isIE = () => isIE_;\n/**\n * @function module:browser.isChrome\n * @returns {boolean}\n*/\nexport const isChrome = () => isChrome_;\n/**\n * @function module:browser.isWindows\n * @returns {boolean}\n*/\nexport const isWindows = () => isWindows_;\n/**\n * @function module:browser.isMac\n * @returns {boolean}\n*/\nexport const isMac = () => isMac_;\n/**\n * @function module:browser.isTouch\n * @returns {boolean}\n*/\nexport const isTouch = () => isTouch_;\n\n/**\n * @function module:browser.supportsSelectors\n * @returns {boolean}\n*/\nexport const supportsSelectors = () => supportsSelectors_;\n\n/**\n * @function module:browser.supportsXpath\n * @returns {boolean}\n*/\nexport const supportsXpath = () => supportsXpath_;\n\n/**\n * @function module:browser.supportsPathReplaceItem\n * @returns {boolean}\n*/\nexport const supportsPathReplaceItem = () => supportsPathReplaceItem_;\n\n/**\n * @function module:browser.supportsPathInsertItemBefore\n * @returns {boolean}\n*/\nexport const supportsPathInsertItemBefore = () => supportsPathInsertItemBefore_;\n\n/**\n * @function module:browser.supportsPathBBox\n * @returns {boolean}\n*/\nexport const supportsPathBBox = () => supportsPathBBox_;\n\n/**\n * @function module:browser.supportsHVLineContainerBBox\n * @returns {boolean}\n*/\nexport const supportsHVLineContainerBBox = () => supportsHVLineContainerBBox_;\n\n/**\n * @function module:browser.supportsGoodTextCharPos\n * @returns {boolean}\n*/\nexport const supportsGoodTextCharPos = () => supportsGoodTextCharPos_;\n\n/**\n* @function module:browser.supportsEditableText\n * @returns {boolean}\n*/\nexport const supportsEditableText = () => supportsEditableText_;\n\n/**\n * @function module:browser.supportsGoodDecimals\n * @returns {boolean}\n*/\nexport const supportsGoodDecimals = () => supportsGoodDecimals_;\n\n/**\n* @function module:browser.supportsNonScalingStroke\n* @returns {boolean}\n*/\nexport const supportsNonScalingStroke = () => supportsNonScalingStroke_;\n\n/**\n* @function module:browser.supportsNativeTransformLists\n* @returns {boolean}\n*/\nexport const supportsNativeTransformLists = () => supportsNativeSVGTransformLists_;\n\n/**\n * Set `supportsNativeSVGTransformLists_` to `false` (for unit testing).\n * @function module:browser.disableSupportsNativeTransformLists\n * @returns {void}\n*/\nexport const disableSupportsNativeTransformLists = () => {\n supportsNativeSVGTransformLists_ = false;\n};\n","/**\n * A jQuery module to work with SVG attributes.\n * @module jQueryAttr\n * @license MIT\n */\n\n/**\n* This fixes `$(...).attr()` to work as expected with SVG elements.\n* Does not currently use `*AttributeNS()` since we rarely need that.\n* Adds {@link external:jQuery.fn.attr}.\n* See {@link https://api.jquery.com/attr/} for basic documentation of `.attr()`.\n*\n* Additional functionality:\n* - When getting attributes, a string that's a number is returned as type number.\n* - If an array is supplied as the first parameter, multiple values are returned\n* as an object with values for each given attribute.\n* @function module:jQueryAttr.jQueryAttr\n* @param {external:jQuery} $ The jQuery object to which to add the plug-in\n* @returns {external:jQuery}\n*/\nexport default function jQueryPluginSVG ($) {\n const proxied = $.fn.attr,\n svgns = 'http://www.w3.org/2000/svg';\n /**\n * @typedef {PlainObject} module:jQueryAttr.Attributes\n */\n /**\n * @function external:jQuery.fn.attr\n * @param {string|string[]|PlainObject} key\n * @param {string} value\n * @returns {external:jQuery|module:jQueryAttr.Attributes}\n */\n $.fn.attr = function (key, value) {\n const len = this.length;\n if (!len) { return proxied.call(this, key, value); }\n for (let i = 0; i < len; ++i) {\n const elem = this[i];\n // set/get SVG attribute\n if (elem.namespaceURI === svgns) {\n // Setting attribute\n if (value !== undefined) {\n elem.setAttribute(key, value);\n } else if (Array.isArray(key)) {\n // Getting attributes from array\n const obj = {};\n let j = key.length;\n\n while (j--) {\n const aname = key[j];\n let attr = elem.getAttribute(aname);\n // This returns a number when appropriate\n if (attr || attr === '0') {\n attr = isNaN(attr) ? attr : (attr - 0);\n }\n obj[aname] = attr;\n }\n return obj;\n }\n if (typeof key === 'object') {\n // Setting attributes from object\n for (const [name, val] of Object.entries(key)) {\n elem.setAttribute(name, val);\n }\n // Getting attribute\n } else {\n let attr = elem.getAttribute(key);\n if (attr || attr === '0') {\n attr = isNaN(attr) ? attr : (attr - 0);\n }\n return attr;\n }\n } else {\n return proxied.call(this, key, value);\n }\n }\n return this;\n };\n return $;\n}\n","/**\n * Partial polyfill of `SVGTransformList`\n * @module SVGTransformList\n *\n * @license MIT\n *\n * @copyright 2010 Alexis Deveria, 2010 Jeff Schiller\n */\n\nimport {NS} from './namespaces.js';\nimport {supportsNativeTransformLists} from './browser.js';\n\nconst svgroot = document.createElementNS(NS.SVG, 'svg');\n\n/**\n * Helper function to convert `SVGTransform` to a string.\n * @param {SVGTransform} xform\n * @returns {string}\n */\nfunction transformToString (xform) {\n const m = xform.matrix;\n let text = '';\n switch (xform.type) {\n case 1: // MATRIX\n text = 'matrix(' + [m.a, m.b, m.c, m.d, m.e, m.f].join(',') + ')';\n break;\n case 2: // TRANSLATE\n text = 'translate(' + m.e + ',' + m.f + ')';\n break;\n case 3: // SCALE\n if (m.a === m.d) {\n text = 'scale(' + m.a + ')';\n } else {\n text = 'scale(' + m.a + ',' + m.d + ')';\n }\n break;\n case 4: { // ROTATE\n let cx = 0;\n let cy = 0;\n // this prevents divide by zero\n if (xform.angle !== 0) {\n const K = 1 - m.a;\n cy = (K * m.f + m.b * m.e) / (K * K + m.b * m.b);\n cx = (m.e - m.b * cy) / K;\n }\n text = 'rotate(' + xform.angle + ' ' + cx + ',' + cy + ')';\n break;\n }\n }\n return text;\n}\n\n/**\n * Map of SVGTransformList objects.\n */\nlet listMap_ = {};\n\n/**\n* @interface module:SVGTransformList.SVGEditTransformList\n* @property {Integer} numberOfItems unsigned long\n*/\n/**\n* @function module:SVGTransformList.SVGEditTransformList#clear\n* @returns {void}\n*/\n/**\n* @function module:SVGTransformList.SVGEditTransformList#initialize\n* @param {SVGTransform} newItem\n* @returns {SVGTransform}\n*/\n/**\n* DOES NOT THROW DOMException, INDEX_SIZE_ERR.\n* @function module:SVGTransformList.SVGEditTransformList#getItem\n* @param {Integer} index unsigned long\n* @returns {SVGTransform}\n*/\n/**\n* DOES NOT THROW DOMException, INDEX_SIZE_ERR.\n* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore\n* @param {SVGTransform} newItem\n* @param {Integer} index unsigned long\n* @returns {SVGTransform}\n*/\n/**\n* DOES NOT THROW DOMException, INDEX_SIZE_ERR.\n* @function module:SVGTransformList.SVGEditTransformList#replaceItem\n* @param {SVGTransform} newItem\n* @param {Integer} index unsigned long\n* @returns {SVGTransform}\n*/\n/**\n* DOES NOT THROW DOMException, INDEX_SIZE_ERR.\n* @function module:SVGTransformList.SVGEditTransformList#removeItem\n* @param {Integer} index unsigned long\n* @returns {SVGTransform}\n*/\n/**\n* @function module:SVGTransformList.SVGEditTransformList#appendItem\n* @param {SVGTransform} newItem\n* @returns {SVGTransform}\n*/\n/**\n* NOT IMPLEMENTED.\n* @ignore\n* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix\n* @param {SVGMatrix} matrix\n* @returns {SVGTransform}\n*/\n/**\n* NOT IMPLEMENTED.\n* @ignore\n* @function module:SVGTransformList.SVGEditTransformList#consolidate\n* @returns {SVGTransform}\n*/\n\n/**\n* SVGTransformList implementation for Webkit.\n* These methods do not currently raise any exceptions.\n* These methods also do not check that transforms are being inserted. This is basically\n* implementing as much of SVGTransformList that we need to get the job done.\n* @implements {module:SVGTransformList.SVGEditTransformList}\n*/\nexport class SVGTransformList { // eslint-disable-line no-shadow\n /**\n * @param {Element} elem\n * @returns {SVGTransformList}\n */\n constructor (elem) {\n this._elem = elem || null;\n this._xforms = [];\n // TODO: how do we capture the undo-ability in the changed transform list?\n this._update = function () {\n let tstr = '';\n // /* const concatMatrix = */ svgroot.createSVGMatrix();\n for (let i = 0; i < this.numberOfItems; ++i) {\n const xform = this._list.getItem(i);\n tstr += transformToString(xform) + ' ';\n }\n this._elem.setAttribute('transform', tstr);\n };\n this._list = this;\n this._init = function () {\n // Transform attribute parser\n let str = this._elem.getAttribute('transform');\n if (!str) { return; }\n\n // TODO: Add skew support in future\n const re = /\\s*((scale|matrix|rotate|translate)\\s*\\(.*?\\))\\s*,?\\s*/;\n // const re = /\\s*(?(?:scale|matrix|rotate|translate)\\s*\\(.*?\\))\\s*,?\\s*/;\n let m = true;\n while (m) {\n m = str.match(re);\n str = str.replace(re, '');\n if (m && m[1]) {\n const x = m[1];\n const bits = x.split(/\\s*\\(/);\n const name = bits[0];\n const valBits = bits[1].match(/\\s*(.*?)\\s*\\)/);\n valBits[1] = valBits[1].replace(/(\\d)-/g, '$1 -');\n const valArr = valBits[1].split(/[, ]+/);\n const letters = 'abcdef'.split('');\n /*\n if (m && m.groups.xform) {\n const x = m.groups.xform;\n const [name, bits] = x.split(/\\s*\\(/);\n const valBits = bits.match(/\\s*(?.*?)\\s*\\)/);\n valBits.groups.nonWhitespace = valBits.groups.nonWhitespace.replace(\n /(?\\d)-/g, '$ -'\n );\n const valArr = valBits.groups.nonWhitespace.split(/[, ]+/);\n const letters = [...'abcdef'];\n */\n const mtx = svgroot.createSVGMatrix();\n Object.values(valArr).forEach(function (item, i) {\n valArr[i] = Number.parseFloat(item);\n if (name === 'matrix') {\n mtx[letters[i]] = valArr[i];\n }\n });\n const xform = svgroot.createSVGTransform();\n const fname = 'set' + name.charAt(0).toUpperCase() + name.slice(1);\n const values = name === 'matrix' ? [mtx] : valArr;\n\n if (name === 'scale' && values.length === 1) {\n values.push(values[0]);\n } else if (name === 'translate' && values.length === 1) {\n values.push(0);\n } else if (name === 'rotate' && values.length === 1) {\n values.push(0, 0);\n }\n xform[fname](...values);\n this._list.appendItem(xform);\n }\n }\n };\n this._removeFromOtherLists = function (item) {\n if (item) {\n // Check if this transform is already in a transformlist, and\n // remove it if so.\n Object.values(listMap_).some((tl) => {\n for (let i = 0, len = tl._xforms.length; i < len; ++i) {\n if (tl._xforms[i] === item) {\n tl.removeItem(i);\n return true;\n }\n }\n return false;\n });\n }\n };\n\n this.numberOfItems = 0;\n }\n /**\n * @returns {void}\n */\n clear () {\n this.numberOfItems = 0;\n this._xforms = [];\n }\n\n /**\n * @param {SVGTransform} newItem\n * @returns {void}\n */\n initialize (newItem) {\n this.numberOfItems = 1;\n this._removeFromOtherLists(newItem);\n this._xforms = [newItem];\n }\n\n /**\n * @param {Integer} index unsigned long\n * @throws {Error}\n * @returns {SVGTransform}\n */\n getItem (index) {\n if (index < this.numberOfItems && index >= 0) {\n return this._xforms[index];\n }\n const err = new Error('DOMException with code=INDEX_SIZE_ERR');\n err.code = 1;\n throw err;\n }\n\n /**\n * @param {SVGTransform} newItem\n * @param {Integer} index unsigned long\n * @returns {SVGTransform}\n */\n insertItemBefore (newItem, index) {\n let retValue = null;\n if (index >= 0) {\n if (index < this.numberOfItems) {\n this._removeFromOtherLists(newItem);\n const newxforms = new Array(this.numberOfItems + 1);\n // TODO: use array copying and slicing\n let i;\n for (i = 0; i < index; ++i) {\n newxforms[i] = this._xforms[i];\n }\n newxforms[i] = newItem;\n for (let j = i + 1; i < this.numberOfItems; ++j, ++i) {\n newxforms[j] = this._xforms[i];\n }\n this.numberOfItems++;\n this._xforms = newxforms;\n retValue = newItem;\n this._list._update();\n } else {\n retValue = this._list.appendItem(newItem);\n }\n }\n return retValue;\n }\n\n /**\n * @param {SVGTransform} newItem\n * @param {Integer} index unsigned long\n * @returns {SVGTransform}\n */\n replaceItem (newItem, index) {\n let retValue = null;\n if (index < this.numberOfItems && index >= 0) {\n this._removeFromOtherLists(newItem);\n this._xforms[index] = newItem;\n retValue = newItem;\n this._list._update();\n }\n return retValue;\n }\n\n /**\n * @param {Integer} index unsigned long\n * @throws {Error}\n * @returns {SVGTransform}\n */\n removeItem (index) {\n if (index < this.numberOfItems && index >= 0) {\n const retValue = this._xforms[index];\n const newxforms = new Array(this.numberOfItems - 1);\n let i;\n for (i = 0; i < index; ++i) {\n newxforms[i] = this._xforms[i];\n }\n for (let j = i; j < this.numberOfItems - 1; ++j, ++i) {\n newxforms[j] = this._xforms[i + 1];\n }\n this.numberOfItems--;\n this._xforms = newxforms;\n this._list._update();\n return retValue;\n }\n const err = new Error('DOMException with code=INDEX_SIZE_ERR');\n err.code = 1;\n throw err;\n }\n\n /**\n * @param {SVGTransform} newItem\n * @returns {SVGTransform}\n */\n appendItem (newItem) {\n this._removeFromOtherLists(newItem);\n this._xforms.push(newItem);\n this.numberOfItems++;\n this._list._update();\n return newItem;\n }\n}\n\n/**\n* @function module:SVGTransformList.resetListMap\n* @returns {void}\n*/\nexport const resetListMap = function () {\n listMap_ = {};\n};\n\n/**\n * Removes transforms of the given element from the map.\n * @function module:SVGTransformList.removeElementFromListMap\n * @param {Element} elem - a DOM Element\n * @returns {void}\n */\nexport let removeElementFromListMap = function (elem) { // eslint-disable-line import/no-mutable-exports\n if (elem.id && listMap_[elem.id]) {\n delete listMap_[elem.id];\n }\n};\n\n/**\n* Returns an object that behaves like a `SVGTransformList` for the given DOM element.\n* @function module:SVGTransformList.getTransformList\n* @param {Element} elem - DOM element to get a transformlist from\n* @todo The polyfill should have `SVGAnimatedTransformList` and this should use it\n* @returns {SVGAnimatedTransformList|SVGTransformList}\n*/\nexport const getTransformList = function (elem) {\n if (!supportsNativeTransformLists()) {\n const id = elem.id || 'temp';\n let t = listMap_[id];\n if (!t || id === 'temp') {\n listMap_[id] = new SVGTransformList(elem);\n listMap_[id]._init();\n t = listMap_[id];\n }\n return t;\n }\n if (elem.transform) {\n return elem.transform.baseVal;\n }\n if (elem.gradientTransform) {\n return elem.gradientTransform.baseVal;\n }\n if (elem.patternTransform) {\n return elem.patternTransform.baseVal;\n }\n\n return null;\n};\n\n/**\n* @callback module:SVGTransformList.removeElementFromListMap\n* @param {Element} elem\n* @returns {void}\n*/\n/**\n* Replace `removeElementFromListMap` for unit-testing.\n* @function module:SVGTransformList.changeRemoveElementFromListMap\n* @param {module:SVGTransformList.removeElementFromListMap} cb Passed a single argument `elem`\n* @returns {void}\n*/\n\nexport const changeRemoveElementFromListMap = function (cb) { // eslint-disable-line promise/prefer-await-to-callbacks\n removeElementFromListMap = cb;\n};\n","/**\n * Tools for working with units.\n * @module units\n * @license MIT\n *\n * @copyright 2010 Alexis Deveria, 2010 Jeff Schiller\n */\n\nimport {NS} from './namespaces.js';\n\nconst wAttrs = ['x', 'x1', 'cx', 'rx', 'width'];\nconst hAttrs = ['y', 'y1', 'cy', 'ry', 'height'];\nconst unitAttrs = ['r', 'radius', ...wAttrs, ...hAttrs];\n// unused\n/*\nconst unitNumMap = {\n '%': 2,\n em: 3,\n ex: 4,\n px: 5,\n cm: 6,\n mm: 7,\n in: 8,\n pt: 9,\n pc: 10\n};\n*/\n// Container of elements.\nlet elementContainer_;\n\n// Stores mapping of unit type to user coordinates.\nlet typeMap_ = {};\n\n/**\n * @interface module:units.ElementContainer\n */\n/**\n * @function module:units.ElementContainer#getBaseUnit\n * @returns {string} The base unit type of the container ('em')\n */\n/**\n * @function module:units.ElementContainer#getElement\n * @returns {?Element} An element in the container given an id\n */\n/**\n * @function module:units.ElementContainer#getHeight\n * @returns {Float} The container's height\n */\n/**\n * @function module:units.ElementContainer#getWidth\n * @returns {Float} The container's width\n */\n/**\n * @function module:units.ElementContainer#getRoundDigits\n * @returns {Integer} The number of digits number should be rounded to\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @typedef {PlainObject} module:units.TypeMap\n * @property {Float} em\n * @property {Float} ex\n * @property {Float} in\n * @property {Float} cm\n * @property {Float} mm\n * @property {Float} pt\n * @property {Float} pc\n * @property {Integer} px\n * @property {0} %\n */\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Initializes this module.\n *\n * @function module:units.init\n * @param {module:units.ElementContainer} elementContainer - An object implementing the ElementContainer interface.\n * @returns {void}\n */\nexport const init = function (elementContainer) {\n elementContainer_ = elementContainer;\n\n // Get correct em/ex values by creating a temporary SVG.\n const svg = document.createElementNS(NS.SVG, 'svg');\n document.body.append(svg);\n const rect = document.createElementNS(NS.SVG, 'rect');\n rect.setAttribute('width', '1em');\n rect.setAttribute('height', '1ex');\n rect.setAttribute('x', '1in');\n svg.append(rect);\n const bb = rect.getBBox();\n svg.remove();\n\n const inch = bb.x;\n typeMap_ = {\n em: bb.width,\n ex: bb.height,\n in: inch,\n cm: inch / 2.54,\n mm: inch / 25.4,\n pt: inch / 72,\n pc: inch / 6,\n px: 1,\n '%': 0\n };\n};\n\n/**\n* Group: Unit conversion functions.\n*/\n\n/**\n * @function module:units.getTypeMap\n * @returns {module:units.TypeMap} The unit object with values for each unit\n*/\nexport const getTypeMap = function () {\n return typeMap_;\n};\n\n/**\n* @typedef {GenericArray} module:units.CompareNumbers\n* @property {Integer} length 2\n* @property {Float} 0\n* @property {Float} 1\n*/\n\n/**\n* Rounds a given value to a float with number of digits defined in\n* `round_digits` of `saveOptions`\n*\n* @function module:units.shortFloat\n* @param {string|Float|module:units.CompareNumbers} val - The value (or Array of two numbers) to be rounded\n* @returns {Float|string} If a string/number was given, returns a Float. If an array, return a string\n* with comma-separated floats\n*/\nexport const shortFloat = function (val) {\n const digits = elementContainer_.getRoundDigits();\n if (!isNaN(val)) {\n return Number(Number(val).toFixed(digits));\n }\n if (Array.isArray(val)) {\n return shortFloat(val[0]) + ',' + shortFloat(val[1]);\n }\n return Number.parseFloat(val).toFixed(digits) - 0;\n};\n\n/**\n* Converts the number to given unit or baseUnit.\n* @function module:units.convertUnit\n* @param {string|Float} val\n* @param {\"em\"|\"ex\"|\"in\"|\"cm\"|\"mm\"|\"pt\"|\"pc\"|\"px\"|\"%\"} [unit]\n* @returns {Float}\n*/\nexport const convertUnit = function (val, unit) {\n unit = unit || elementContainer_.getBaseUnit();\n // baseVal.convertToSpecifiedUnits(unitNumMap[unit]);\n // const val = baseVal.valueInSpecifiedUnits;\n // baseVal.convertToSpecifiedUnits(1);\n return shortFloat(val / typeMap_[unit]);\n};\n\n/**\n* Sets an element's attribute based on the unit in its current value.\n*\n* @function module:units.setUnitAttr\n* @param {Element} elem - DOM element to be changed\n* @param {string} attr - Name of the attribute associated with the value\n* @param {string} val - Attribute value to convert\n* @returns {void}\n*/\nexport const setUnitAttr = function (elem, attr, val) {\n // if (!isNaN(val)) {\n // New value is a number, so check currently used unit\n // const oldVal = elem.getAttribute(attr);\n\n // Enable this for alternate mode\n // if (oldVal !== null && (isNaN(oldVal) || elementContainer_.getBaseUnit() !== 'px')) {\n // // Old value was a number, so get unit, then convert\n // let unit;\n // if (oldVal.substr(-1) === '%') {\n // const res = getResolution();\n // unit = '%';\n // val *= 100;\n // if (wAttrs.includes(attr)) {\n // val = val / res.w;\n // } else if (hAttrs.includes(attr)) {\n // val = val / res.h;\n // } else {\n // return val / Math.sqrt((res.w*res.w) + (res.h*res.h))/Math.sqrt(2);\n // }\n // } else {\n // if (elementContainer_.getBaseUnit() !== 'px') {\n // unit = elementContainer_.getBaseUnit();\n // } else {\n // unit = oldVal.substr(-2);\n // }\n // val = val / typeMap_[unit];\n // }\n //\n // val += unit;\n // }\n // }\n elem.setAttribute(attr, val);\n};\n\nconst attrsToConvert = {\n line: ['x1', 'x2', 'y1', 'y2'],\n circle: ['cx', 'cy', 'r'],\n ellipse: ['cx', 'cy', 'rx', 'ry'],\n foreignObject: ['x', 'y', 'width', 'height'],\n rect: ['x', 'y', 'width', 'height'],\n image: ['x', 'y', 'width', 'height'],\n use: ['x', 'y', 'width', 'height'],\n text: ['x', 'y']\n};\n\n/**\n* Converts all applicable attributes to the configured baseUnit.\n* @function module:units.convertAttrs\n* @param {Element} element - A DOM element whose attributes should be converted\n* @returns {void}\n*/\nexport const convertAttrs = function (element) {\n const elName = element.tagName;\n const unit = elementContainer_.getBaseUnit();\n const attrs = attrsToConvert[elName];\n if (!attrs) { return; }\n\n const len = attrs.length;\n for (let i = 0; i < len; i++) {\n const attr = attrs[i];\n const cur = element.getAttribute(attr);\n if (cur) {\n if (!isNaN(cur)) {\n element.setAttribute(attr, (cur / typeMap_[unit]) + unit);\n }\n // else {\n // Convert existing?\n // }\n }\n }\n};\n\n/**\n* Converts given values to numbers. Attributes must be supplied in\n* case a percentage is given.\n*\n* @function module:units.convertToNum\n* @param {string} attr - Name of the attribute associated with the value\n* @param {string} val - Attribute value to convert\n* @returns {Float} The converted number\n*/\nexport const convertToNum = function (attr, val) {\n // Return a number if that's what it already is\n if (!isNaN(val)) { return val - 0; }\n if (val.substr(-1) === '%') {\n // Deal with percentage, depends on attribute\n const num = val.substr(0, val.length - 1) / 100;\n const width = elementContainer_.getWidth();\n const height = elementContainer_.getHeight();\n\n if (wAttrs.includes(attr)) {\n return num * width;\n }\n if (hAttrs.includes(attr)) {\n return num * height;\n }\n return num * Math.sqrt((width * width) + (height * height)) / Math.sqrt(2);\n }\n const unit = val.substr(-2);\n const num = val.substr(0, val.length - 2);\n // Note that this multiplication turns the string into a number\n return num * typeMap_[unit];\n};\n\n/**\n* Check if an attribute's value is in a valid format.\n* @function module:units.isValidUnit\n* @param {string} attr - The name of the attribute associated with the value\n* @param {string} val - The attribute value to check\n* @param {Element} selectedElement\n* @returns {boolean} Whether the unit is valid\n*/\nexport const isValidUnit = function (attr, val, selectedElement) {\n if (unitAttrs.includes(attr)) {\n // True if it's just a number\n if (!isNaN(val)) {\n return true;\n }\n // Not a number, check if it has a valid unit\n val = val.toLowerCase();\n return Object.keys(typeMap_).some((unit) => {\n const re = new RegExp('^-?[\\\\d\\\\.]+' + unit + '$');\n return re.test(val);\n });\n }\n if (attr === 'id') {\n // if we're trying to change the id, make sure it's not already present in the doc\n // and the id value is valid.\n\n let result = false;\n // because getElem() can throw an exception in the case of an invalid id\n // (according to https://www.w3.org/TR/xml-id/ IDs must be a NCName)\n // we wrap it in an exception and only return true if the ID was valid and\n // not already present\n try {\n const elem = elementContainer_.getElement(val);\n result = (!elem || elem === selectedElement);\n } catch (e) {}\n return result;\n }\n return true;\n};\n","/**\n * Mathematical utilities.\n * @module math\n * @license MIT\n *\n * @copyright 2010 Alexis Deveria, 2010 Jeff Schiller\n */\n\n/**\n* @typedef {PlainObject} module:math.AngleCoord45\n* @property {Float} x - The angle-snapped x value\n* @property {Float} y - The angle-snapped y value\n* @property {Integer} a - The angle at which to snap\n*/\n\n/**\n* @typedef {PlainObject} module:math.XYObject\n* @property {Float} x\n* @property {Float} y\n*/\n\nimport {NS} from './namespaces.js';\nimport {getTransformList} from './svgtransformlist.js';\n\n// Constants\nconst NEAR_ZERO = 1e-14;\n\n// Throw away SVGSVGElement used for creating matrices/transforms.\nconst svg = document.createElementNS(NS.SVG, 'svg');\n\n/**\n * A (hopefully) quicker function to transform a point by a matrix\n * (this function avoids any DOM calls and just does the math).\n * @function module:math.transformPoint\n * @param {Float} x - Float representing the x coordinate\n * @param {Float} y - Float representing the y coordinate\n * @param {SVGMatrix} m - Matrix object to transform the point with\n * @returns {module:math.XYObject} An x, y object representing the transformed point\n*/\nexport const transformPoint = function (x, y, m) {\n return {x: m.a * x + m.c * y + m.e, y: m.b * x + m.d * y + m.f};\n};\n\n/**\n * Helper function to check if the matrix performs no actual transform\n * (i.e. exists for identity purposes).\n * @function module:math.isIdentity\n * @param {SVGMatrix} m - The matrix object to check\n * @returns {boolean} Indicates whether or not the matrix is 1,0,0,1,0,0\n*/\nexport const isIdentity = function (m) {\n return (m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0);\n};\n\n/**\n * This function tries to return a `SVGMatrix` that is the multiplication `m1 * m2`.\n * We also round to zero when it's near zero.\n * @function module:math.matrixMultiply\n * @param {...SVGMatrix} args - Matrix objects to multiply\n * @returns {SVGMatrix} The matrix object resulting from the calculation\n*/\nexport const matrixMultiply = function (...args) {\n const m = args.reduceRight((prev, m1) => {\n return m1.multiply(prev);\n });\n\n if (Math.abs(m.a) < NEAR_ZERO) { m.a = 0; }\n if (Math.abs(m.b) < NEAR_ZERO) { m.b = 0; }\n if (Math.abs(m.c) < NEAR_ZERO) { m.c = 0; }\n if (Math.abs(m.d) < NEAR_ZERO) { m.d = 0; }\n if (Math.abs(m.e) < NEAR_ZERO) { m.e = 0; }\n if (Math.abs(m.f) < NEAR_ZERO) { m.f = 0; }\n\n return m;\n};\n\n/**\n * See if the given transformlist includes a non-indentity matrix transform.\n * @function module:math.hasMatrixTransform\n * @param {SVGTransformList} [tlist] - The transformlist to check\n * @returns {boolean} Whether or not a matrix transform was found\n*/\nexport const hasMatrixTransform = function (tlist) {\n if (!tlist) { return false; }\n let num = tlist.numberOfItems;\n while (num--) {\n const xform = tlist.getItem(num);\n if (xform.type === 1 && !isIdentity(xform.matrix)) { return true; }\n }\n return false;\n};\n\n/**\n* @typedef {PlainObject} module:math.TransformedBox An object with the following values\n* @property {module:math.XYObject} tl - The top left coordinate\n* @property {module:math.XYObject} tr - The top right coordinate\n* @property {module:math.XYObject} bl - The bottom left coordinate\n* @property {module:math.XYObject} br - The bottom right coordinate\n* @property {PlainObject} aabox - Object with the following values:\n* @property {Float} aabox.x - Float with the axis-aligned x coordinate\n* @property {Float} aabox.y - Float with the axis-aligned y coordinate\n* @property {Float} aabox.width - Float with the axis-aligned width coordinate\n* @property {Float} aabox.height - Float with the axis-aligned height coordinate\n*/\n\n/**\n * Transforms a rectangle based on the given matrix.\n * @function module:math.transformBox\n * @param {Float} l - Float with the box's left coordinate\n * @param {Float} t - Float with the box's top coordinate\n * @param {Float} w - Float with the box width\n * @param {Float} h - Float with the box height\n * @param {SVGMatrix} m - Matrix object to transform the box by\n * @returns {module:math.TransformedBox}\n*/\nexport const transformBox = function (l, t, w, h, m) {\n const tl = transformPoint(l, t, m),\n tr = transformPoint((l + w), t, m),\n bl = transformPoint(l, (t + h), m),\n br = transformPoint((l + w), (t + h), m),\n\n minx = Math.min(tl.x, tr.x, bl.x, br.x),\n maxx = Math.max(tl.x, tr.x, bl.x, br.x),\n miny = Math.min(tl.y, tr.y, bl.y, br.y),\n maxy = Math.max(tl.y, tr.y, bl.y, br.y);\n\n return {\n tl,\n tr,\n bl,\n br,\n aabox: {\n x: minx,\n y: miny,\n width: (maxx - minx),\n height: (maxy - miny)\n }\n };\n};\n\n/**\n * This returns a single matrix Transform for a given Transform List\n * (this is the equivalent of `SVGTransformList.consolidate()` but unlike\n * that method, this one does not modify the actual `SVGTransformList`).\n * This function is very liberal with its `min`, `max` arguments.\n * @function module:math.transformListToTransform\n * @param {SVGTransformList} tlist - The transformlist object\n * @param {Integer} [min=0] - Optional integer indicating start transform position\n * @param {Integer} [max] - Optional integer indicating end transform position;\n * defaults to one less than the tlist's `numberOfItems`\n * @returns {SVGTransform} A single matrix transform object\n*/\nexport const transformListToTransform = function (tlist, min, max) {\n if (!tlist) {\n // Or should tlist = null have been prevented before this?\n return svg.createSVGTransformFromMatrix(svg.createSVGMatrix());\n }\n min = min || 0;\n max = max || (tlist.numberOfItems - 1);\n min = Number.parseInt(min);\n max = Number.parseInt(max);\n if (min > max) { const temp = max; max = min; min = temp; }\n let m = svg.createSVGMatrix();\n for (let i = min; i <= max; ++i) {\n // if our indices are out of range, just use a harmless identity matrix\n const mtom = (i >= 0 && i < tlist.numberOfItems\n ? tlist.getItem(i).matrix\n : svg.createSVGMatrix());\n m = matrixMultiply(m, mtom);\n }\n return svg.createSVGTransformFromMatrix(m);\n};\n\n/**\n * Get the matrix object for a given element.\n * @function module:math.getMatrix\n * @param {Element} elem - The DOM element to check\n * @returns {SVGMatrix} The matrix object associated with the element's transformlist\n*/\nexport const getMatrix = function (elem) {\n const tlist = getTransformList(elem);\n return transformListToTransform(tlist).matrix;\n};\n\n/**\n * Returns a 45 degree angle coordinate associated with the two given\n * coordinates.\n * @function module:math.snapToAngle\n * @param {Integer} x1 - First coordinate's x value\n * @param {Integer} y1 - First coordinate's y value\n * @param {Integer} x2 - Second coordinate's x value\n * @param {Integer} y2 - Second coordinate's y value\n * @returns {module:math.AngleCoord45}\n*/\nexport const snapToAngle = function (x1, y1, x2, y2) {\n const snap = Math.PI / 4; // 45 degrees\n const dx = x2 - x1;\n const dy = y2 - y1;\n const angle = Math.atan2(dy, dx);\n const dist = Math.sqrt(dx * dx + dy * dy);\n const snapangle = Math.round(angle / snap) * snap;\n\n return {\n x: x1 + dist * Math.cos(snapangle),\n y: y1 + dist * Math.sin(snapangle),\n a: snapangle\n };\n};\n\n/**\n * Check if two rectangles (BBoxes objects) intersect each other.\n * @function module:math.rectsIntersect\n * @param {SVGRect} r1 - The first BBox-like object\n * @param {SVGRect} r2 - The second BBox-like object\n * @returns {boolean} True if rectangles intersect\n */\nexport const rectsIntersect = function (r1, r2) {\n return r2.x < (r1.x + r1.width) &&\n (r2.x + r2.width) > r1.x &&\n r2.y < (r1.y + r1.height) &&\n (r2.y + r2.height) > r1.y;\n};\n","/* globals jQuery */\n/**\n * Miscellaneous utilities.\n * @module utilities\n * @license MIT\n *\n * @copyright 2010 Alexis Deveria, 2010 Jeff Schiller\n */\n\nimport './svgpathseg.js';\nimport jQueryPluginSVG from './jQuery.attr.js'; // Needed for SVG attribute setting and array form with `attr`\nimport {NS} from './namespaces.js';\nimport {getTransformList} from './svgtransformlist.js';\nimport {setUnitAttr, getTypeMap} from './units.js';\nimport {\n hasMatrixTransform, transformListToTransform, transformBox\n} from './math.js';\nimport {\n isWebkit, supportsHVLineContainerBBox, supportsPathBBox, supportsXpath,\n supportsSelectors\n} from './browser.js';\n\n// Constants\nconst $ = jQueryPluginSVG(jQuery);\n\n// String used to encode base64.\nconst KEYSTR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n// Much faster than running getBBox() every time\nconst visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use,clipPath';\nconst visElemsArr = visElems.split(',');\n// const hidElems = 'defs,desc,feGaussianBlur,filter,linearGradient,marker,mask,metadata,pattern,radialGradient,stop,switch,symbol,title,textPath';\n\nlet editorContext_ = null;\nlet domdoc_ = null;\nlet domcontainer_ = null;\nlet svgroot_ = null;\n\n/**\n* Object with the following keys/values.\n* @typedef {PlainObject} module:utilities.SVGElementJSON\n* @property {string} element - Tag name of the SVG element to create\n* @property {PlainObject} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.\n* @property {boolean} [curStyles=false] - Indicates whether current style attributes should be applied first\n* @property {module:utilities.SVGElementJSON[]} [children] - Data objects to be added recursively as children\n* @property {string} [namespace=\"http://www.w3.org/2000/svg\"] - Indicate a (non-SVG) namespace\n*/\n\n/**\n * An object that creates SVG elements for the canvas.\n *\n * @interface module:utilities.EditorContext\n * @property {module:path.pathActions} pathActions\n */\n/**\n * @function module:utilities.EditorContext#getSVGContent\n * @returns {SVGSVGElement}\n */\n/**\n * Create a new SVG element based on the given object keys/values and add it\n * to the current layer.\n * The element will be run through `cleanupElement` before being returned.\n * @function module:utilities.EditorContext#addSVGElementFromJson\n * @param {module:utilities.SVGElementJSON} data\n * @returns {Element} The new element\n*/\n/**\n * @function module:utilities.EditorContext#getSelectedElements\n * @returns {Element[]} the array with selected DOM elements\n*/\n/**\n * @function module:utilities.EditorContext#getDOMDocument\n * @returns {HTMLDocument}\n*/\n/**\n * @function module:utilities.EditorContext#getDOMContainer\n * @returns {HTMLElement}\n*/\n/**\n * @function module:utilities.EditorContext#getSVGRoot\n * @returns {SVGSVGElement}\n*/\n/**\n * @function module:utilities.EditorContext#getBaseUnit\n * @returns {string}\n*/\n/**\n * @function module:utilities.EditorContext#getSnappingStep\n * @returns {Float|string}\n*/\n\n/**\n* @function module:utilities.init\n* @param {module:utilities.EditorContext} editorContext\n* @returns {void}\n*/\nexport const init = function (editorContext) {\n editorContext_ = editorContext;\n domdoc_ = editorContext.getDOMDocument();\n domcontainer_ = editorContext.getDOMContainer();\n svgroot_ = editorContext.getSVGRoot();\n};\n\n/**\n * Used to prevent the [Billion laughs attack]{@link https://en.wikipedia.org/wiki/Billion_laughs_attack}.\n * @function module:utilities.dropXMLInternalSubset\n * @param {string} str String to be processed\n * @returns {string} The string with entity declarations in the internal subset removed\n * @todo This might be needed in other places `parseFromString` is used even without LGTM flagging\n */\nexport const dropXMLInternalSubset = (str) => {\n return str.replace(/()/, '$1$2');\n // return str.replace(/(?\\?\\]>)/, '$$');\n};\n\n/**\n* Converts characters in a string to XML-friendly entities.\n* @function module:utilities.toXml\n* @example `&` becomes `&`\n* @param {string} str - The string to be converted\n* @returns {string} The converted string\n*/\nexport const toXml = function (str) {\n // ' is ok in XML, but not HTML\n // > does not normally need escaping, though it can if within a CDATA expression (and preceded by \"]]\")\n return str\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, '''); // Note: `'` is XML only\n};\n\n/**\n* Converts XML entities in a string to single characters.\n* @function module:utilities.fromXml\n* @example `&` becomes `&`\n* @param {string} str - The string to be converted\n* @returns {string} The converted string\n*/\nexport function fromXml (str) {\n return $('').html(str).text();\n}\n\n// This code was written by Tyler Akins and has been placed in the\n// public domain. It would be nice if you left this header intact.\n// Base64 code from Tyler Akins -- http://rumkin.com\n\n// schiller: Removed string concatenation in favour of Array.join() optimization,\n// also precalculate the size of the array needed.\n\n/**\n* Converts a string to base64.\n* @function module:utilities.encode64\n* @param {string} input\n* @returns {string} Base64 output\n*/\nexport function encode64 (input) {\n // base64 strings are 4/3 larger than the original string\n input = encodeUTF8(input); // convert non-ASCII characters\n // input = convertToXMLReferences(input);\n if (window.btoa) {\n return window.btoa(input); // Use native if available\n }\n const output = new Array(Math.floor((input.length + 2) / 3) * 4);\n\n let i = 0,\n p = 0;\n do {\n const chr1 = input.charCodeAt(i++);\n const chr2 = input.charCodeAt(i++);\n const chr3 = input.charCodeAt(i++);\n\n /* eslint-disable no-bitwise */\n const enc1 = chr1 >> 2;\n const enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n\n let enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n let enc4 = chr3 & 63;\n /* eslint-enable no-bitwise */\n\n if (Number.isNaN(chr2)) {\n enc3 = 64;\n enc4 = 64;\n } else if (Number.isNaN(chr3)) {\n enc4 = 64;\n }\n\n output[p++] = KEYSTR.charAt(enc1);\n output[p++] = KEYSTR.charAt(enc2);\n output[p++] = KEYSTR.charAt(enc3);\n output[p++] = KEYSTR.charAt(enc4);\n } while (i < input.length);\n\n return output.join('');\n}\n\n/**\n* Converts a string from base64.\n* @function module:utilities.decode64\n* @param {string} input Base64-encoded input\n* @returns {string} Decoded output\n*/\nexport function decode64 (input) {\n if (window.atob) {\n return decodeUTF8(window.atob(input));\n }\n\n // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n input = input.replace(/[^A-Za-z\\d+/=]/g, '');\n\n let output = '';\n let i = 0;\n\n do {\n const enc1 = KEYSTR.indexOf(input.charAt(i++));\n const enc2 = KEYSTR.indexOf(input.charAt(i++));\n const enc3 = KEYSTR.indexOf(input.charAt(i++));\n const enc4 = KEYSTR.indexOf(input.charAt(i++));\n\n /* eslint-disable no-bitwise */\n const chr1 = (enc1 << 2) | (enc2 >> 4);\n const chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n const chr3 = ((enc3 & 3) << 6) | enc4;\n /* eslint-enable no-bitwise */\n\n output += String.fromCharCode(chr1);\n\n if (enc3 !== 64) {\n output += String.fromCharCode(chr2);\n }\n if (enc4 !== 64) {\n output += String.fromCharCode(chr3);\n }\n } while (i < input.length);\n return decodeUTF8(output);\n}\n\n/**\n* @function module:utilities.decodeUTF8\n* @param {string} argString\n* @returns {string}\n*/\nexport function decodeUTF8 (argString) {\n return decodeURIComponent(escape(argString));\n}\n\n// codedread:does not seem to work with webkit-based browsers on OSX // Brettz9: please test again as function upgraded\n/**\n* @function module:utilities.encodeUTF8\n* @param {string} argString\n* @returns {string}\n*/\nexport const encodeUTF8 = function (argString) {\n return unescape(encodeURIComponent(argString));\n};\n\n/**\n * Convert dataURL to object URL.\n * @function module:utilities.dataURLToObjectURL\n * @param {string} dataurl\n * @returns {string} object URL or empty string\n */\nexport const dataURLToObjectURL = function (dataurl) {\n if (typeof Uint8Array === 'undefined' || typeof Blob === 'undefined' || typeof URL === 'undefined' || !URL.createObjectURL) {\n return '';\n }\n const arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]);\n /*\n const [prefix, suffix] = dataurl.split(','),\n {groups: {mime}} = prefix.match(/:(?.*?);/),\n bstr = atob(suffix);\n */\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n const blob = new Blob([u8arr], {type: mime});\n return URL.createObjectURL(blob);\n};\n\n/**\n * Get object URL for a blob object.\n * @function module:utilities.createObjectURL\n * @param {Blob} blob A Blob object or File object\n * @returns {string} object URL or empty string\n */\nexport const createObjectURL = function (blob) {\n if (!blob || typeof URL === 'undefined' || !URL.createObjectURL) {\n return '';\n }\n return URL.createObjectURL(blob);\n};\n\n/**\n * @property {string} blankPageObjectURL\n */\nexport const blankPageObjectURL = (function () {\n if (typeof Blob === 'undefined') {\n return '';\n }\n const blob = new Blob(['SVG-edit '], {type: 'text/html'});\n return createObjectURL(blob);\n})();\n\n/**\n* Converts a string to use XML references (for non-ASCII).\n* @function module:utilities.convertToXMLReferences\n* @param {string} input\n* @returns {string} Decimal numeric character references\n*/\nexport const convertToXMLReferences = function (input) {\n let output = '';\n [...input].forEach((ch) => {\n const c = ch.charCodeAt();\n if (c <= 127) {\n output += ch;\n } else {\n output += `${c};`;\n }\n });\n return output;\n};\n\n/**\n* Cross-browser compatible method of converting a string to an XML tree.\n* Found this function [here]{@link http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f}.\n* @function module:utilities.text2xml\n* @param {string} sXML\n* @throws {Error}\n* @returns {XMLDocument}\n*/\nexport const text2xml = function (sXML) {\n if (sXML.includes('`\n* - ``\n* - ``\n* @function module:utilities.getUrlFromAttr\n* @param {string} attrVal The attribute value as a string\n* @returns {string} String with just the URL, like \"someFile.svg#foo\"\n*/\nexport const getUrlFromAttr = function (attrVal) {\n if (attrVal) {\n // url('#somegrad')\n if (attrVal.startsWith('url(\"')) {\n return attrVal.substring(5, attrVal.indexOf('\"', 6));\n }\n // url('#somegrad')\n if (attrVal.startsWith(\"url('\")) {\n return attrVal.substring(5, attrVal.indexOf(\"'\", 6));\n }\n if (attrVal.startsWith('url(')) {\n return attrVal.substring(4, attrVal.indexOf(')'));\n }\n }\n return null;\n};\n\n/**\n* @function module:utilities.getHref\n* @param {Element} elem\n* @returns {string} The given element's `xlink:href` value\n*/\nexport let getHref = function (elem) { // eslint-disable-line import/no-mutable-exports\n return elem.getAttributeNS(NS.XLINK, 'href');\n};\n\n/**\n* Sets the given element's `xlink:href` value.\n* @function module:utilities.setHref\n* @param {Element} elem\n* @param {string} val\n* @returns {void}\n*/\nexport let setHref = function (elem, val) { // eslint-disable-line import/no-mutable-exports\n elem.setAttributeNS(NS.XLINK, 'xlink:href', val);\n};\n\n/**\n* @function module:utilities.findDefs\n* @returns {SVGDefsElement} The document's `` element, creating it first if necessary\n*/\nexport const findDefs = function () {\n const svgElement = editorContext_.getSVGContent();\n let defs = svgElement.getElementsByTagNameNS(NS.SVG, 'defs');\n if (defs.length > 0) {\n defs = defs[0];\n } else {\n defs = svgElement.ownerDocument.createElementNS(NS.SVG, 'defs');\n if (svgElement.firstChild) {\n // first child is a comment, so call nextSibling\n svgElement.insertBefore(defs, svgElement.firstChild.nextSibling);\n // svgElement.firstChild.nextSibling.before(defs); // Not safe\n } else {\n svgElement.append(defs);\n }\n }\n return defs;\n};\n\n// TODO(codedread): Consider moving the next to functions to bbox.js\n\n/**\n* Get correct BBox for a path in Webkit.\n* Converted from code found [here]{@link http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html}.\n* @function module:utilities.getPathBBox\n* @param {SVGPathElement} path - The path DOM element to get the BBox for\n* @returns {module:utilities.BBoxObject} A BBox-like object\n*/\nexport const getPathBBox = function (path) {\n const seglist = path.pathSegList;\n const tot = seglist.numberOfItems;\n\n const bounds = [[], []];\n const start = seglist.getItem(0);\n let P0 = [start.x, start.y];\n\n const getCalc = function (j, P1, P2, P3) {\n return function (t) {\n return 1 - t ** 3 * P0[j] +\n 3 * 1 - t ** 2 * t * P1[j] +\n 3 * (1 - t) * t ** 2 * P2[j] +\n t ** 3 * P3[j];\n };\n };\n\n for (let i = 0; i < tot; i++) {\n const seg = seglist.getItem(i);\n\n if (seg.x === undefined) { continue; }\n\n // Add actual points to limits\n bounds[0].push(P0[0]);\n bounds[1].push(P0[1]);\n\n if (seg.x1) {\n const P1 = [seg.x1, seg.y1],\n P2 = [seg.x2, seg.y2],\n P3 = [seg.x, seg.y];\n\n for (let j = 0; j < 2; j++) {\n const calc = getCalc(j, P1, P2, P3);\n\n const b = 6 * P0[j] - 12 * P1[j] + 6 * P2[j];\n const a = -3 * P0[j] + 9 * P1[j] - 9 * P2[j] + 3 * P3[j];\n const c = 3 * P1[j] - 3 * P0[j];\n\n if (a === 0) {\n if (b === 0) { continue; }\n const t = -c / b;\n if (t > 0 && t < 1) {\n bounds[j].push(calc(t));\n }\n continue;\n }\n const b2ac = b ** 2 - 4 * c * a;\n if (b2ac < 0) { continue; }\n const t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) { bounds[j].push(calc(t1)); }\n const t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) { bounds[j].push(calc(t2)); }\n }\n P0 = P3;\n } else {\n bounds[0].push(seg.x);\n bounds[1].push(seg.y);\n }\n }\n\n const x = Math.min.apply(null, bounds[0]);\n const w = Math.max.apply(null, bounds[0]) - x;\n const y = Math.min.apply(null, bounds[1]);\n const h = Math.max.apply(null, bounds[1]) - y;\n return {\n x,\n y,\n width: w,\n height: h\n };\n};\n\n/**\n* Get the given/selected element's bounding box object, checking for\n* horizontal/vertical lines (see issue 717)\n* Note that performance is currently terrible, so some way to improve would\n* be great.\n* @param {Element} selected - Container or `