{"version":3,"sources":["webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/parse-headers/parse-headers.js","webpack:///./node_modules/parse-srcset/src/parse-srcset.js","webpack:///./node_modules/path-browserify/index.js"],"names":["asn1","aesid","fixProc","ciphers","compat","Buffer","parseKeys","buffer","password","isBuffer","passphrase","key","from","subtype","ndata","stripped","type","tag","data","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","join","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","Error","decrypt","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","curve","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","value","salt","kde","kdeparams","iters","parseInt","toString","algo","cipher","iv","cipherText","keylen","split","pbkdf2Sync","createDecipheriv","out","push","update","final","concat","module","exports","signature","define","this","seq","obj","int","use","AlgorithmIdentifier","bitstr","objid","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","findProc","startRegex","fullRegex","evp","okey","decrypted","match","suite","replace","cipherKey","slice","match2","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","def","TBSCertificate","implicit","X509Certificate","trim","string","isArray","arg","Object","prototype","call","headers","result","headersArr","i","length","row","index","indexOf","toLowerCase","input","isSpace","c","collectCharacters","regEx","chars","exec","substring","pos","url","descriptors","currentDescriptor","state","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","d","h","desc","lastChar","intVal","floatVal","pError","candidate","parseFloat","test","console","log","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","arguments","path","process","cwd","TypeError","p","normalize","isAbsolute","trailingSlash","substr","paths","Array","relative","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","str","len"],"mappings":"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","file":"js/chunk-vendors~24df2e00.a152077f.js","sourcesContent":["var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var trim = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '');\n}\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n var headersArr = trim(headers).split('\\n')\n\n for (var i = 0; i < headersArr.length; i++) {\n var row = headersArr[i]\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n\n return result\n}\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup \n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n"],"sourceRoot":""}