{"version":3,"sources":["webpack:///./node_modules/aws-sdk/clients/athena.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/set.js","webpack:///./node_modules/aws-sdk/lib/protocol/json.js","webpack:///./node_modules/aws-sdk/lib/util.js","webpack:///./node_modules/aws-sdk/lib/signers/request_signer.js","webpack:///./node_modules/aws-sdk/clients/inspector.js","webpack:///./node_modules/aws-sdk/lib/xml/browser_parser.js","webpack:///./node_modules/jmespath/jmespath.js","webpack:///./node_modules/aws-sdk/lib/model/resource_waiter.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/aws-sdk/clients/directconnect.js","webpack:///./node_modules/aws-sdk/clients/translate.js","webpack:///./node_modules/aws-sdk/clients/iam.js","webpack:///./node_modules/aws-sdk/lib/signers/v2.js","webpack:///./node_modules/aws-sdk/clients/cloudhsmv2.js","webpack:///./node_modules/aws-sdk/clients/dynamodbstreams.js","webpack:///./node_modules/aws-sdk/clients/apigateway.js","webpack:///./node_modules/aws-sdk/vendor/endpoint-cache/index.js","webpack:///./node_modules/aws-sdk/lib/signers/v4_credentials.js","webpack:///./node_modules/aws-sdk/lib/services/iotdata.js","webpack:///./node_modules/aws-sdk/clients/iotanalytics.js","webpack:///./node_modules/aws-sdk/lib/signers/presign.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/aws-sdk/clients/elb.js","webpack:///./node_modules/aws-sdk/lib/services/machinelearning.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/converter.js","webpack:///./node_modules/aws-sdk/clients/browser_default.js","webpack:///./node_modules/aws-sdk/clients/codepipeline.js","webpack:///./node_modules/aws-sdk/clients/kinesis.js","webpack:///./node_modules/aws-sdk/lib/json/builder.js","webpack:///./node_modules/aws-sdk/clients/emr.js","webpack:///./node_modules/aws-sdk/lib/protocol/rest.js","webpack:///./node_modules/aws-sdk/lib/signers/v4.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/aws-sdk/clients/comprehend.js","webpack:///./node_modules/aws-sdk/clients/forecastservice.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/numberValue.js","webpack:///./node_modules/aws-sdk/lib/services/ec2.js","webpack:///./node_modules/aws-sdk/lib/http/xhr.js","webpack:///./node_modules/aws-sdk/clients/codebuild.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/aws-sdk/clients/lexruntime.js","webpack:///./node_modules/aws-sdk/lib/services/lambda.js","webpack:///./node_modules/aws-sdk/clients/firehose.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/v1.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideomedia.js","webpack:///./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/aws-sdk/lib/signers/v3.js","webpack:///./node_modules/aws-sdk/clients/location.js","webpack:///./node_modules/aws-sdk/clients/resourcegroups.js","webpack:///./node_modules/aws-sdk/clients/cloudhsm.js","webpack:///./node_modules/aws-sdk/lib/services/apigateway.js","webpack:///./node_modules/aws-sdk/lib/http.js","webpack:///./node_modules/aws-sdk/clients/configservice.js","webpack:///./node_modules/aws-sdk/clients/cloudwatchlogs.js","webpack:///./node_modules/aws-sdk/lib/core.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-element.js","webpack:///./node_modules/aws-sdk/lib/browser.js","webpack:///./node_modules/aws-sdk/lib/signers/s3.js","webpack:///./node_modules/aws-sdk/lib/credentials/temporary_credentials.js","webpack:///./node_modules/aws-sdk/clients/mediastoredata.js","webpack:///./node_modules/aws-sdk/clients/xray.js","webpack:///./node_modules/mdi-vue/icons.css?6dbe","webpack:///./node_modules/aws-sdk/lib/model/paginator.js","webpack:///./node_modules/aws-sdk/lib/model/collection.js","webpack:///./node_modules/aws-sdk/lib/param_validator.js","webpack:///./node_modules/aws-sdk/clients/personalize.js","webpack:///./node_modules/aws-sdk/lib/services/s3.js","webpack:///./node_modules/aws-sdk/clients/gamelift.js","webpack:///./node_modules/aws-sdk/lib/signers/v3https.js","webpack:///./node_modules/aws-sdk/lib/discover_endpoint.js","webpack:///./node_modules/aws-sdk/lib/services/route53.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/translator.js","webpack:///./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/aws-sdk/clients/devicefarm.js","webpack:///./node_modules/aws-sdk/lib/services/cloudfront.js","webpack:///./node_modules/aws-sdk/clients/waf.js","webpack:///./node_modules/aws-sdk/clients/connect.js","webpack:///./node_modules/aws-sdk/clients/efs.js","webpack:///./node_modules/aws-sdk/clients/cloudfront.js","webpack:///./node_modules/aws-sdk/lib/api_loader.js","webpack:///./node_modules/aws-sdk/lib/polly/presigner.js","webpack:///./node_modules/aws-sdk/clients/lexmodelbuildingservice.js","webpack:///./node_modules/aws-sdk/lib/config_regional_endpoint.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-node.js","webpack:///./node_modules/aws-sdk/lib/response.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","webpack:///./node_modules/aws-sdk/clients/route53domains.js","webpack:///./node_modules/aws-sdk/lib/services/rdsutil.js","webpack:///./node_modules/aws-sdk/clients/mobileanalytics.js","webpack:///./node_modules/aws-sdk/clients/iotdata.js","webpack:///./node_modules/aws-sdk/lib/config.js","webpack:///./node_modules/aws-sdk/clients/ecr.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-text.js","webpack:///./node_modules/aws-sdk/clients/rekognition.js","webpack:///./node_modules/aws-sdk/lib/event-stream/parse-event.js","webpack:///./node_modules/aws-sdk/clients/costexplorer.js","webpack:///./node_modules/aws-sdk/clients/route53.js","webpack:///./node_modules/mdi-vue/Camera.vue?d52e","webpack:///node_modules/mdi-vue/Camera.vue","webpack:///./node_modules/mdi-vue/Camera.vue?7380","webpack:///./node_modules/mdi-vue/Camera.vue","webpack:///./node_modules/aws-sdk/lib/protocol/rest_xml.js","webpack:///./node_modules/aws-sdk/lib/sequential_executor.js","webpack:///./node_modules/aws-sdk/lib/query/query_param_serializer.js","webpack:///./node_modules/aws-sdk/clients/lexruntimev2.js","webpack:///./node_modules/aws-sdk/clients/opsworks.js","webpack:///./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","webpack:///./node_modules/aws-sdk/lib/json/parser.js","webpack:///./node_modules/aws-sdk/clients/comprehendmedical.js","webpack:///./node_modules/aws-sdk/lib/request.js","webpack:///./node_modules/aws-sdk/clients/ecs.js","webpack:///./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","webpack:///./node_modules/aws-sdk/lib/service.js","webpack:///./src/assets/colmedica_logo.png","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","webpack:///./node_modules/aws-sdk/clients/rds.js","webpack:///./node_modules/aws-sdk/clients/cognitoidentity.js","webpack:///./node_modules/aws-sdk/lib/protocol/helpers.js","webpack:///./node_modules/aws-sdk/clients/redshift.js","webpack:///./node_modules/aws-sdk/clients/lambda.js","webpack:///./node_modules/aws-sdk/clients/secretsmanager.js","webpack:///./node_modules/aws-sdk/clients/ssm.js","webpack:///./node_modules/aws-sdk/clients/polly.js","webpack:///./node_modules/aws-sdk/lib/services/sqs.js","webpack:///./node_modules/aws-sdk/lib/browser_loader.js","webpack:///./node_modules/aws-sdk/lib/event-stream/split-message.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-attribute.js","webpack:///./node_modules/aws-sdk/clients/servicecatalog.js","webpack:///./node_modules/mdi-vue/Attachment.vue?db71","webpack:///node_modules/mdi-vue/Attachment.vue","webpack:///./node_modules/mdi-vue/Attachment.vue?35c8","webpack:///./node_modules/mdi-vue/Attachment.vue","webpack:///./node_modules/aws-sdk/node_modules/uuid/index.js","webpack:///./node_modules/aws-sdk/clients/personalizeevents.js","webpack:///./node_modules/aws-sdk/clients/dynamodb.js","webpack:///./node_modules/aws-sdk/lib/model/shape.js","webpack:///./node_modules/aws-sdk/lib/event-stream/int64.js","webpack:///./node_modules/aws-sdk/lib/browserHashUtils.js","webpack:///./node_modules/aws-sdk/lib/services/polly.js","webpack:///./node_modules/aws-sdk/clients/machinelearning.js","webpack:///./node_modules/aws-sdk/clients/codecommit.js","webpack:///./node_modules/aws-sdk/clients/cloudtrail.js","webpack:///./node_modules/aws-sdk/lib/resource_waiter.js","webpack:///./node_modules/aws-sdk/clients/cognitosync.js","webpack:///./node_modules/aws-sdk/clients/autoscaling.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/v4.js","webpack:///./node_modules/aws-sdk/lib/s3/managed_upload.js","webpack:///./node_modules/aws-sdk/lib/services/dynamodb.js","webpack:///./node_modules/aws-sdk/clients/storagegateway.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","webpack:///./node_modules/aws-sdk/clients/personalizeruntime.js","webpack:///./node_modules/aws-sdk/clients/s3.js","webpack:///./node_modules/aws-sdk/clients/elbv2.js","webpack:///./node_modules/aws-sdk/lib/event_listeners.js","webpack:///./node_modules/aws-sdk/clients/cloudformation.js","webpack:///./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","webpack:///./node_modules/aws-sdk/clients/acm.js","webpack:///./node_modules/aws-sdk/lib/credentials/saml_credentials.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","webpack:///./node_modules/mdi-vue/browser-c94fd32b.js","webpack:///./node_modules/aws-sdk/clients/sns.js","webpack:///./node_modules/aws-sdk/clients/mturk.js","webpack:///./node_modules/aws-sdk/lib/rds/signer.js","webpack:///./node_modules/aws-sdk/lib/xml/builder.js","webpack:///./node_modules/aws-sdk/clients/cloudwatch.js","webpack:///./node_modules/aws-sdk/lib/browserSha1.js","webpack:///./node_modules/aws-sdk/clients/forecastqueryservice.js","webpack:///./node_modules/aws-sdk/lib/browserMd5.js","webpack:///./node_modules/aws-sdk/lib/services/sts.js","webpack:///./node_modules/aws-sdk/lib/browserSha256.js","webpack:///./node_modules/aws-sdk/lib/services/s3util.js","webpack:///./node_modules/aws-sdk/lib/protocol/query.js","webpack:///./node_modules/aws-sdk/clients/pricing.js","webpack:///./node_modules/aws-sdk/clients/workdocs.js","webpack:///./node_modules/aws-sdk/lib/cloudfront/signer.js","webpack:///./node_modules/aws-sdk/clients/cloudwatchevents.js","webpack:///./node_modules/aws-sdk/clients/kms.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideo.js","webpack:///./node_modules/aws-sdk/lib/model/operation.js","webpack:///./node_modules/aws-sdk/lib/realclock/browserClock.js","webpack:///./node_modules/aws-sdk/clients/iot.js","webpack:///./node_modules/aws-sdk/clients/applicationautoscaling.js","webpack:///./node_modules/aws-sdk/lib/region_config.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/document_client.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/types.js","webpack:///./node_modules/aws-sdk/clients/ec2.js","webpack:///./node_modules/aws-sdk/lib/event-stream/parse-message.js","webpack:///./node_modules/aws-sdk/clients/elastictranscoder.js","webpack:///./node_modules/aws-sdk/clients/cur.js","webpack:///./node_modules/aws-sdk/lib/browserCryptoLib.js","webpack:///./node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","webpack:///./node_modules/aws-sdk/lib/services/rds.js","webpack:///./node_modules/aws-sdk/lib/model/api.js","webpack:///./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","webpack:///./node_modules/aws-sdk/clients/codedeploy.js","webpack:///./node_modules/aws-sdk/clients/sts.js","webpack:///./src/utils/evalmobile.js","webpack:///./node_modules/aws-sdk/lib/credentials.js","webpack:///./node_modules/aws-sdk/clients/sqs.js","webpack:///./node_modules/aws-sdk/lib/state_machine.js","webpack:///./node_modules/aws-sdk/lib/protocol/rest_json.js","webpack:///./node_modules/aws-sdk/clients/elasticache.js","webpack:///./node_modules/aws-sdk/clients/elasticbeanstalk.js","webpack:///./node_modules/aws-sdk/lib/browserHmac.js","webpack:///./node_modules/aws-sdk/clients/ses.js"],"names":["AWS","Service","apiLoader","services","Athena","defineService","Object","defineProperty","get","model","paginators","pagination","enumerable","configurable","module","exports","util","typeOf","memberTypeToSetType","DynamoDBSet","inherit","constructor","list","options","this","wrapperName","initialize","validate","self","values","concat","detectType","type","error","Error","code","message","length","i","toJSON","JsonBuilder","JsonParser","populateHostPrefix","buildRequest","req","httpRequest","api","service","target","targetPrefix","operations","operation","name","version","jsonVersion","input","builder","body","build","params","headers","extractError","resp","httpResponse","split","e","JSON","parse","toString","__type","Code","pop","Message","statusCode","statusMessage","extractData","request","config","convertResponseTypes","data","shape","output","parser","environment","engine","isBrowser","navigator","userAgent","process","platform","AWS_EXECUTION_ENV","agent","VERSION","uriEscape","string","encodeURIComponent","replace","escape","ch","charCodeAt","toUpperCase","uriEscapePath","parts","arrayEach","part","push","join","urlParse","url","urlFormat","format","queryStringParse","qs","querystring","queryParamsToString","items","sortedKeys","keys","sort","value","ename","result","Array","isArray","vals","item","undefined","readFileSync","path","base64","encode","buf","buffer","toBuffer","decode","encoding","Buffer","from","Uint8Array","alloc","size","fill","toStream","isBuffer","readable","stream","pos","_read","end","slice","buffers","offset","copy","byteLength","lstatSync","object","upperFirst","substr","lowerFirst","toLowerCase","ini","currentSection","map","line","section","match","fn","noop","callback","err","makeAsync","expectedArgs","args","prototype","call","arguments","apply","date","getDate","systemClockOffset","Date","getTime","iso8601","toISOString","rfc822","toUTCString","unixTimestamp","formatter","parseTimestamp","crypto","crc32Table","crc32","tbl","crc","readUInt8","hmac","key","digest","lib","createHmac","update","md5","hash","sha256","algorithm","createHash","sliceFn","arraySliceFn","ArrayBuffer","on","chunk","FileReader","out","index","reader","onerror","onload","_continueReading","back","readAsArrayBuffer","toHex","abort","each","iterFunction","hasOwnProperty","ret","array","idx","parseInt","obj1","obj2","merge","dupe","isEmpty","obj","prop","webkitSlice","mozSlice","isType","typeName","str","originalError","stack","writable","String","time","klass","features","newObject","ctor","__super__","mixin","hideProperties","props","property","isValue","opts","memoizedProperty","cachedValue","hoistPayloadMember","operationName","payload","hasEventOutput","payloadMember","members","responsePayload","computeSha256","done","isNode","Stream","fs","settings","start","createReadStream","sha","isClockSkewed","serverTime","Math","abs","applyClockOffset","extractRequestId","requestId","ResponseMetadata","RequestId","addPromises","constructors","PromiseDependency","deletePromises","getPromisesDependency","Promise","ind","deletePromisesFromClass","addPromisesToClass","promisifyMethod","methodName","resolve","reject","isDualstackAvailable","metadata","serviceIdentifier","dualstackAvailable","calculateRetryDelay","retryCount","retryDelayOptions","customBackoff","base","delay","random","pow","handleRequestWithRetries","cb","http","HttpClient","getInstance","httpOptions","errCallback","maxRetries","retryable","setTimeout","sendRequest","retryAfter","handleRequest","defer","uuid","v4","convertPayloadToString","rules","nextTick","setImmediate","getRequestPayloadShape","getProfilesFromSharedConfig","iniLoader","filename","profiles","profilesFromConfig","configOptInEnv","loadFrom","isConfig","sharedConfigFileEnv","profilesFromCreds","sharedCredentialsFileEnv","profileNames","objectAssign","source","ARN","indexOf","arn","matched","partition","region","accountId","resource","arnObject","defaultProfile","imdsDisabledEnv","Signers","RequestSigner","setServiceClientId","id","serviceClientId","getServiceClientId","getVersion","V2","V3","V4","S3","V3Https","Inspector","Shape","DomXmlParser","getElementByTagName","xml","tag","elements","getElementsByTagName","iLen","parentNode","parseXml","parseStructure","parseMap","parseList","parseUnknown","parseScalar","memberName","memberShape","isXmlAttribute","attributes","textContent","xmlChild","flattened","xmlNoDefaultLists","defaultValue","xmlKey","xmlValue","tagName","child","firstElementChild","nodeName","nextElementSibling","member","getAttribute","create","text","toType","childNodes","window","DOMParser","parseFromString","syntaxError","documentElement","isError","errorElement","ActiveXObject","async","loadXML","isObject","strictDeepEqual","first","second","firstType","keysSeen","key2","isFalse","objValues","trimLeft","TYPE_NUMBER","TYPE_ANY","TYPE_STRING","TYPE_ARRAY","TYPE_OBJECT","TYPE_BOOLEAN","TYPE_EXPREF","TYPE_NULL","TYPE_ARRAY_NUMBER","TYPE_ARRAY_STRING","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens","operatorStartToken","skipChars","isAlpha","isNum","isAlphaNum","Lexer","tokenize","identifier","token","tokens","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","current","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","avg","_functionAvg","ceil","_functionCeil","contains","_functionContains","_functionEndsWith","floor","_functionFloor","_functionLength","_functionMap","max","_functionMax","_functionMerge","variadic","_functionMaxBy","sum","_functionSum","_functionStartsWith","min","_functionMin","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","_functionSortBy","_functionJoin","reverse","_functionReverse","_functionToArray","_functionToString","_functionToNumber","_functionNotNull","compile","ast","lexer","search","expression","node","_loadTokens","_lookahead","t","_lookaheadToken","rbp","leftToken","_advance","left","nud","currentToken","led","number","right","Not","children","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","condition","Filter","leftNode","rightNode","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","exprTokens","expressions","keyToken","keyName","pairs","identifierTypes","visit","field","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","j","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","actual","expected","argValue","subtype","lastIndexOf","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","maxElement","localeCompare","minElement","listToSum","joinChar","listJoin","stringify","convertedValue","isNaN","sortedArray","requiredType","that","decorated","a","b","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","Infinity","minRecord","minNumber","allowedTypes","keyFunc","x","msg","ResourceWaiter","waiter","forEach","punycode","Url","protocol","slashes","auth","host","port","hostname","query","pathname","href","urlResolve","resolveObject","urlResolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","u","isString","relative","TypeError","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","k","validParts","notHost","bit","unshift","toASCII","p","h","ae","esc","qm","s","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","splice","isAbsolute","DirectConnect","Translate","IAM","waiters","addAuthorization","credentials","r","Timestamp","SignatureVersion","SignatureMethod","AWSAccessKeyId","accessKeyId","sessionToken","SecurityToken","Signature","secretAccessKey","stringToSign","method","endpoint","CloudHSMV2","DynamoDBStreams","APIGateway","LRU_1","CACHE_SIZE","EndpointCache","maxSize","cache","LRUCache","put","keyString","getKeyString","endpointRecord","populateValue","now","records","record","Expire","remove","identifiers","identifierNames","identifierName","endpoints","Address","CachePeriodInMinutes","empty","cachedSecret","cacheQueue","maxCacheEntries","v4Identifier","createScope","serviceName","getSigningKey","shouldCache","credsIdentifier","cacheKey","kDate","kRegion","kService","signingKey","emptyCache","blobPayloadOutputOps","IotData","validateService","setupRequestListeners","addListener","validateResponseBody","bodyCheck","IoTAnalytics","expiresHeader","signedUrlBuilder","expires","signerClass","getSignerClass","getSkewCorrectedDate","signedUrlSigner","parsedUrl","queryParams","Presign","sign","expireTime","removeListener","EventListeners","Core","SET_CONTENT_LENGTH","COMPUTE_SHA256","emit","response","root","nodeType","freeGlobal","global","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","fromCharCode","RangeError","mapDomain","labels","encoded","ucs2decode","extra","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","basic","oldi","w","baseMinusT","inputLength","n","bias","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","ELB","MachineLearning","buildEndpoint","PredictEndpoint","Endpoint","NumberValue","formatList","L","DynamoDB","Converter","convertNumber","wrapNumbers","Number","formatMap","M","formatted","formatSet","convertEmptyValues","filterEmptySetValues","set","nonEmptyValues","potentiallyEmptyTypes","Binary","convertInput","S","N","B","BOOL","NULL","marshall","convertOutput","unmarshall","ACM","ApplicationAutoScaling","AutoScaling","CloudFormation","CloudFront","CloudHSM","CloudTrail","CloudWatch","CloudWatchEvents","CloudWatchLogs","CodeBuild","CodeCommit","CodeDeploy","CodePipeline","CognitoIdentity","CognitoIdentityServiceProvider","CognitoSync","ConfigService","CUR","DeviceFarm","EC2","ECR","ECS","EFS","ElastiCache","ElasticBeanstalk","ELBv2","EMR","ElasticTranscoder","Firehose","GameLift","Iot","Kinesis","KMS","Lambda","LexRuntime","MarketplaceCommerceAnalytics","MTurk","MobileAnalytics","OpsWorks","Polly","RDS","Redshift","Rekognition","Route53","Route53Domains","ServiceCatalog","SES","SNS","SQS","SSM","StorageGateway","STS","XRay","WAF","WorkDocs","LexModelBuildingService","Pricing","CostExplorer","MediaStoreData","Comprehend","KinesisVideoArchivedMedia","KinesisVideoMedia","KinesisVideo","ResourceGroups","Connect","SecretsManager","ComprehendMedical","Personalize","PersonalizeEvents","PersonalizeRuntime","ForecastService","ForecastQueryService","KinesisVideoSignalingChannels","Location","LexRuntimeV2","translate","translateStructure","translateMap","translateList","translateScalar","structure","isDocument","struct","location","locationName","isLocationName","toWireFormat","populateMethod","httpMethod","generateURI","endpointPath","operationPath","uri","queryString","queryStringSet","paramValue","regex","RegExp","_","plus","val","populateURI","httpPath","populateHeaders","memberValue","isJsonValue","header","pattern","v4Credentials","signatureCache","signatureVersion","datetime","isPresigned","updateForPresigned","addHeaders","authorization","credString","credentialString","signedHeaders","isSignableHeader","lowerKey","sep","hexEncodedHash","canonicalString","canonicalHeaders","hexEncodedBodyHash","canonicalHeaderValues","unsignableHeaders","superCtor","super_","TempCtor","DynamoDBNumberValue","toNumber","Query","EXTRACT_ERROR","onAsync","buildCopySnapshotPresignedUrl","PresignedUrl","_subRequest","DestinationRegion","SourceRegion","svc","newReq","presign","XML","Errors","RequestID","EventEmitter","XHRClient","emitter","xhr","XMLHttpRequest","headersEmitted","addEventListener","status","readyState","HEADERS_RECEIVED","parseHeaders","getAllResponseHeaders","statusText","DONE","finishRequest","upload","evt","open","xhrAsync","setRequestHeader","timeout","xhrWithCredentials","withCredentials","responseType","send","rawHeaders","substring","ab","view","responseText","streamsApiVersion","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","f","objects","inspect","len","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","isRegExp","isDate","braces","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","reduce","prev","cur","numLinesEst","ar","arg","isSymbol","re","objectToString","d","isPrimitive","o","pad","debuglog","NODE_DEBUG","pid","months","timestamp","getHours","getMinutes","getSeconds","getMonth","log","inherits","origin","add","kCustomPromisifiedSymbol","Symbol","callbackifyOnRejected","reason","newReason","callbackify","callbackified","maybeCb","then","rej","setPrototypeOf","getPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","promise","custom","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","v1","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","eventMessageChunker","parseEvent","createEventStream","eventMessages","events","headersToSign","setAcceptHeader","Accept","exportType","useSSL","sslEnabled","HttpRequest","_userAgent","setUserAgent","getUserAgentHeaderName","prefix","appendToUserAgent","agentPartial","getUserAgent","updateEndpoint","endpointStr","newEndpoint","HttpResponse","streaming","createUnbufferedStream","singleton","_hidden","Protocol","Json","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Paginator","SequentialExecutor","endpointCacheSize","escapeElement","subResources","responseHeaders","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","virtualHostedBucket","resources","param","subresource","res","secret","TemporaryCredentials","Credentials","masterCredentials","loadMasterCredentials","expired","RoleArn","RoleSessionName","refresh","coalesceRefresh","load","createClients","assumeRole","getSessionToken","credentialsFrom","paginator","input_token","limit_key","more_results","output_token","result_key","memoize","factory","nameTr","Collection","iterable","ParamValidator","validation","context","validateMember","fail","validateStructure","paramName","validateType","required","memberContext","validateList","validateMap","validateScalar","validateRange","mapCount","validateString","validatePayload","validateNumber","validTypes","validateEnum","validatePattern","validateUri","descriptor","acceptedTypes","foundInvalidType","acceptedType","vowel","castedValue","parseFloat","Blob","resolveRegionalEndpointsFlag","s3util","regionUtil","operationsWith200StatusCodeError","regionRedirectErrorCodes","OBJECT_LAMBDA_SERVICE","getSignatureVersion","defaultApiVersion","userDefinedVersion","_originalConfig","regionDefinedVersion","getSigningName","_super","_parsedArn","messages","s3BucketEndpoint","shouldDisableBodySigning","s3DisableBodySigning","prependListener","validateScheme","validateBucketName","optInUsEast1RegionalEndpoint","VALIDATE_REGION","addContentType","computeContentMd5","computeSseCustomerKeyMd5","addExpect100Continue","extractErrorFrom200Response","prepareSignedUrl","disableBodySigning","isArnInParam","Bucket","validateS3AccessPointArn","validateArnResourceType","validateOutpostsAccessPointArn","validateOutpostsArn","validateArnRegion","validateArnAccount","validateArnService","populateUriFromAccessPointArn","validatePopulateUriFromArn","validateBucketEndpoint","correctBucketRegionFromCache","requestBucketRegion","reqRegionForNetworkingError","scheme","sensitive","SSECustomerKey","CopySourceSSECustomerKey","bucket","Key","slashIndex","isValidAccelerateOperation","invalidOperations","s3UsEast1RegionalEndpoint","env","sharedConfig","clientConfig","insertPoint","regionalEndpoint","pathStyleBucketName","useAccelerateEndpoint","useDualstack","removeVirtualHostedBucketFromPath","encodedS3Key","accessPointArn","isOutpostArn","isObjectLambdaArn","outpostsSuffix","outpostId","dualStackSuffix","dnsSuffix","getEndpointSuffix","useArnRegion","s3UseArnRegion","accessPoint","accesspointName","encodedArn","Body","contentType","replaceFn","charsetName","charset","willComputeChecksums","needsContentMD5","ContentMD5","bucketName","s3ForcePathStyle","dnsCompatibleBucketName","retryableError","_requestRegionForBucket","bucketRegionCache","updateReqBucketRegion","s3Config","newConfig","Host","_asm","currentState","LocationConstraint","createBucketConfiguration","CreateBucketConfiguration","clearBucketRegionCache","extractRequestIds","cachedRegion","codes","304","403","400","404","Region","reqOperation","reqParams","MaxKeys","regionReq","getRegionReq","listObjects","buckets","requestRegion","extendedRequestId","cfId","getSignedUrl","Expires","makeRequest","createPresignedPost","boundParams","finalizePost","fields","preparePostFields","Fields","Conditions","getCredentials","conditions","expiresInSeconds","signingDate","shortDate","scope","credential","Policy","preparePostPolicy","valueOf","expiration","noPresignedContentLength","ContentLength","createBucket","copiedParams","globalEndpoint","writeGetObjectResponse","uploader","ManagedUpload","getSignedUrlPromise","endpointDiscoveryEnabledEnvs","getCacheKey","serviceId","marshallCustomIdentifiersHelper","endpointDiscoveryId","marshallCustomIdentifiers","optionalDiscoverEndpoint","operationModel","inputShape","endpointCache","endpointRequest","endpointOperation","Identifiers","addApiVersionHeader","VALIDATE_PARAMETERS","RETRY_CHECK","Endpoints","requestQueue","requiredDiscoverEndpoint","cacheKeyStr","pendingRequests","requestContext","apiVersion","invalidateCachedEndpoints","hasCustomEndpoint","client","endpointDiscoveryEnabled","svcConfig","Boolean","isFalsy","resolveEndpointDiscoveryConfig","configFile","sharedFileConfig","AWS_PROFILE","endpoint_discovery_enabled","discoverEndpoint","isEndpointDiscoveryRequired","endpointDiscoveryRequired","isEnabled","hasRequiredEndpointDiscovery","addNamedListener","className","invalidateCachedEndpoint","sanitizeUrl","convert","Translator","attrValue","translateInput","mode","translateOutput","WebIdentityCredentials","_clientConfig","assumeRoleWithWebIdentity","stsConfig","byteToHex","bth","Presigner","bindServiceObject","_operations","modifyInputMembers","modifiedInput","convertPostToGet","getSynthesizeSpeechUrl","removeAllListeners","validateRegionalEndpointsFlagValue","configValue","errorOptions","originalConfig","resolved","envFlag","profile","fileFlag","escapeAttribute","XmlNode","addAttribute","addChildNode","removeAttribute","hasChildren","xmlText","attributeNames","attributeName","attribute","c","jmespath","Response","redirectCount","numRetries","maxRedirects","nextPage","paginationConfig","hasNextPage","nextPageTokens","inputTokens","inputToken","cacheNextPageTokens","moreResults","exprs","outputToken","expr","getRandomValues","bind","msCrypto","rnds8","rnds","rdsutil","crossRegionOperations","PreSignedUrl","doesParamValidation","paramValidation","buildCrossRegionPresignedUrl","destinationRegion","PromisesDependency","Config","extractCredentials","finish","credError","getAsyncCredentials","getStaticCredentials","credentialProvider","creds","allowUnknownKeys","hasService","loadFromPath","clear","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","logger","apiVersions","computeChecksums","correctClockSkew","customUserAgent","dynamoDbCrc32","clientSideMonitoring","hostPrefixEnabled","stsRegionalEndpoints","setPromisesDependency","dep","Request","XmlText","parseMessage","parsedMessage","messageType","parseError","eventType","eventModel","eventPayloadMemberName","payloadShape","eventHeaderNames","eventHeaderMemberNames","errorCode","errorMessage","render","_h","_vm","_c","class","staticClass","spin","attrs","role","ariaLabel","width","height","viewBox","xmlns","_v","_s","title","_e","staticRenderFns","default","component","populateBody","rootElement","toXML","isEventStream","isStreaming","_events","listeners","eventName","listener","toHead","_isAsync","position","eventArgs","doneCallback","count","callListeners","prevError","callNextListener","_haltHandlersOnError","addListeners","event","callbacks","addNamedAsyncListener","addNamedListeners","QueryParamSerializer","ucfirst","isQueryName","serializeStructure","serializeMember","serializeMap","valueName","serializeList","memberRules","serialize","LinkedListNode","nodeMap","sizeLimit","prependToList","headerNode","next","tailNode","removeFromTail","prevNode","detachFromList","key_1","newNode","shapeMembers","AcceptorStateMachine","domain","hardErrorStates","success","complete","isTerminalState","machine","fsm","setupStates","transition","Domain","domainEmitter","domainThrown","addState","isGlobalEndpoint","signingRegion","active","startTime","states","emitEvent","runTo","state","didCallback","_abortCallback","eachPage","wrappedCallback","eachItem","resultKey","continueIteration","isPageable","streams","PassThrough","sent","HTTP_DATA","HTTP_ERROR","expectedLen","shouldCheckContentLength","receivedLen","checkContentLengthAndEmit","httpStream","lengthAccumulator","_write","unpipe","pipe","eventParameters","origEmit","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","haltHandlersOnError","CognitoIdentityCredentials","localStorageKey","_identityId","loadCachedId","IdentityId","identityId","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","poolId","IdentityPoolId","loginId","LoginId","storage","cognito","loadCredentials","AccessKeyId","SecretKey","SessionToken","Expiration","cacheId","getOpenIdToken","WebIdentityToken","Token","webIdentityCredentials","webErr","sts","getStorage","Logins","actualProviders","cachedProviders","intersect","filter","cognitoConfig","setStorage","localStorage","regionConfig","clientCount","loadServiceClass","ServiceClass","_clientId","configureEndpoint","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","serviceConfig","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","selectedVersion","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","wait","serviceInterface","CorePost","Logger","apiCallEvent","monitoringEvent","Type","Version","endpointPrefix","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","attemptTimestamp","attemptStartRealTime","attemptLatency","callStartRealTime","callTimestamp","attemptCount","addToHead","realClock","round","AttemptLatency","AttemptCount","latency","Latency","signingName","authtype","successfulResponse","retryDelays","timeoutError","networkingError","expiredCredentialsError","throttledError","clockSkewError","newServerTime","throwException","defineMethods","versions","_serviceMap","addVersions","Publisher","configProvider","publisherConfig","enabled","superclass","setApi","isApi","attachOn","baseClass","eq","regexp","maxKeys","kstr","vstr","xs","hasEndpointDiscover","hostPrefix","hostPrefixNotation","expandHostPrefix","prependEndpointPrefix","validateHostname","isEndpointOperation","hostLabel","hostPattern","label","verifySendMessageChecksum","verifySendMessageBatchChecksum","verifyReceiveMessageChecksum","MD5OfMessageBody","MessageBody","calculatedMd5","calculateChecksum","throwInvalidChecksumError","MessageId","entries","messageIds","Successful","entry","Id","Entries","isChecksumValid","Messages","MD5OfBody","ids","checksum","QueueUrl","matches","browser","PRELUDE_MEMBER_LENGTH","PRELUDE_LENGTH","CHECKSUM_LENGTH","MINIMUM_MESSAGE_LENGTH","splitMessage","readUInt32BE","expectedPreludeChecksum","expectedMessageChecksum","headersStart","headersEnd","enum","xmlName","queryName","requiresLength","isComposite","idempotencyToken","jsonvalue","eventstream","eventpayload","eventheader","timestampFormat","isTimestampFormatSet","endpointdiscoveryid","documentation","documentationUrl","xmlAttribute","CompositeShape","StructureShape","requiredMap","firstInit","isShape","document","xmlOrder","memberNames","isEventPayload","isEventHeader","resultWrapper","xmlNamespace","ListShape","oldName","MapShape","TimestampShape","StringShape","nullLessProtocols","FloatShape","IntegerShape","BinaryShape","isSensitive","secureBuf","Base64Shape","BooleanShape","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","refShape","shapes","filteredKeys","InlineShape","origType","Int64","bytes","negate","fromNumber","remaining","negative","isView","viewStrings","isEmptyData","convertToBuffer","byteOffset","BYTES_PER_ELEMENT","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","matchers","argument","setSuccess","setError","loadWaiterConfig","pathAll","results","numResults","pathAny","retryDelay","$waiter","maxAttempts","ii","completeInfo","fillQueue","configure","partSize","minPartSize","queueSize","leavePartsOnError","tags","validateBody","adjustTotalBytes","maxTotalParts","failed","runFill","fillBuffer","fillStream","partBuffers","cleanup","isDoneChunking","numParts","totalPartNumbers","doneParts","finishMultiPart","singlePart","totalBytes","newPartSize","partPos","totalChunkedBytes","totalUploadedBytes","activeParts","multipartReq","partBufferLength","bodyLen","nextChunk","endPos","read","pbuf","isDoneSending","partNumber","Tagging","getTaggingHeader","putObject","_managedUpload","progress","finishSinglePart","ETag","UploadId","uploadPart","queueChunks","createMultipartUpload","kvPairStrings","Value","partParams","PartNumber","partInfo","_lastUploadedBytes","resume","abortMultipartUpload","completeParams","MultipartUpload","Parts","completeMultipartUpload","putObjectTagging","TagSet","httpReq","info","loaded","total","EXTRACT_DATA","checkCrc32","crc32IsValid","ChainableTemporaryCredentials","tokenCodeFn","SerialNumber","getTokenCode","tokenCode","TokenCode","DISCOVER_ENDPOINT","getOperationAuthtype","addAsync","dnsHostRegex","idempotentMembers","isNonStreamingPayload","httpChecksumRequired","SignerClass","signer","signedAt","httpResp","errCode","executeSend","timeDiff","numBytes","dateHeader","redirect","willRetry","isDNSError","errno","getSystemErrorName","buildMessage","write","filterSensitiveLog","subShapeName","subShape","ansi","isTTY","censoredParams","defaultProviders","resolveCallbacks","resolveNext","provider","getErr","resolvePromise","SAMLCredentials","assumeRoleWithSAML","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","isOldIE","addStyle","HEAD","css","group","media","Set","has","sources","btoa","unescape","element","createElement","setAttribute","head","appendChild","styleSheet","cssText","textNode","createTextNode","nodes","removeChild","insertBefore","requiredAuthTokenOptions","username","Signer","convertUrlToAuthToken","getAuthToken","hasCallback","optionsValidation","validateAuthTokenOptions","serviceOptions","modifyRequestForAuthToken","Action","DBUser","XmlBuilder","serializeScalar","applyNamespaces","entryKey","entryValue","isRoot","xmlNamespaceUri","xmlNamespacePrefix","noEmpty","hashUtils","BLOCK_SIZE","DIGEST_LENGTH","Uint32Array","Sha1","h0","h1","h2","h3","h4","block","totalLength","finished","byte","processBlock","outView","DataView","setUint32","temp","Md5","bufferLength","bytesHashed","cmn","ff","gg","hh","sourceData","setUint8","hashBuffer","_a","undecoratedLength","bitsHashed","buff","getUint32","ENV_REGIONAL_ENDPOINT_ENABLED","CONFIG_REGIONAL_ENDPOINT_ENABLED","SecretAccessKey","optInRegionalEndpoint","KEY","MAX_HASHABLE_LENGTH","Sha256","Int32Array","bufferView","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","t1","t2","inputMembers","parsedArn","accessPointPrefix","loadUseArnRegionConfig","regionFromArn","clientRegion","envName","configName","ipAddress","dots","origRules","tmp","_XAMZRequestId","requestIdShape","base64Encode","queryEncode","replacements","signPolicy","policy","privateKey","createSign","signWithCannedPolicy","keyPairId","Statement","Resource","Condition","DateLessThan","signWithCustomPolicy","determineScheme","getRtmpUrl","rtmpUrl","parsed","getResource","handleError","handleSuccess","getSignedCookie","signatureHash","cookieHash","signedUrl","requestUri","endpointdiscovery","isIdempotent","hasEventStream","topLevelShape","performance","generateRegionPrefix","derivedKeys","regionPrefix","applyConfig","patterns","regionRegexes","defaultSuffix","regexes","regionPattern","DocumentClient","putItem","Item","makeServiceRequest","setupRequest","setupResponse","serviceClientOperationsMap","batchGet","batchWrite","delete","scan","transactGet","transactWrite","createSet","getTranslator","translator","rawParams","outputShape","stringifyPrimitive","isFinite","objectKeys","ks","isBinary","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","nameLength","readInt8","readInt16BE","readInt32BE","binaryLength","readUInt16BE","stringLength","uuidChars","Hmac","alg","addEndpointOperation","endpointoperation","serviceAbbreviation","serviceFullName","Android","BlackBerry","iOS","Opera","Windows","any","refreshCallbacks","expiryWindow","needsRefresh","currentTime","adjustedTime","sync","getPromise","refreshPromise","finalState","bindObject","inputError","accept","acceptState","failState","applyContentTypeHeader","hashCtor","outer","inner","bufferFromSecret","bufferHash","toHash"],"mappings":"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","file":"js/chunk-5405e0da.9f99fe19.js","sourcesContent":["require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0]; // remove comments\n var section = line.match(/^\\s*\\[([^\\[\\]]+)\\]\\s*$/);\n if (section) {\n currentSection = section[1];\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var item = line.match(/^\\s*(.+?)\\s*=\\s*(.+?)\\s*$/);\n if (item) {\n map[currentSection] = map[currentSection] || {};\n map[currentSection][item[1]] = item[2];\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) err.originalError = originalError;\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n } else {\n return node;\n }\n break;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n } else {\n return this._parseMultiselectList();\n }\n break;\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n } else {\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n }\n break;\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n } else {\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n }\n break;\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value === null ) {\n return null;\n } else if (isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n } else {\n return null;\n }\n break;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + currentSpec +\n \" but received type \" + actualType +\n \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\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'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","var util = require('../util');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction populateMethod(req) {\n req.httpRequest.method = req.service.api.operations[req.operation].httpMethod;\n}\n\nfunction generateURI(endpointPath, operationPath, input, params) {\n var uri = [endpointPath, operationPath].join('/');\n uri = uri.replace(/\\/+/g, '/');\n\n var queryString = {}, queryStringSet = false;\n util.each(input.members, function (name, member) {\n var paramValue = params[name];\n if (paramValue === null || paramValue === undefined) return;\n if (member.location === 'uri') {\n var regex = new RegExp('\\\\{' + member.name + '(\\\\+)?\\\\}');\n uri = uri.replace(regex, function(_, plus) {\n var fn = plus ? util.uriEscapePath : util.uriEscape;\n return fn(String(paramValue));\n });\n } else if (member.location === 'querystring') {\n queryStringSet = true;\n\n if (member.type === 'list') {\n queryString[member.name] = paramValue.map(function(val) {\n return util.uriEscape(member.member.toWireFormat(val).toString());\n });\n } else if (member.type === 'map') {\n util.each(paramValue, function(key, value) {\n if (Array.isArray(value)) {\n queryString[key] = value.map(function(val) {\n return util.uriEscape(String(val));\n });\n } else {\n queryString[key] = util.uriEscape(String(value));\n }\n });\n } else {\n queryString[member.name] = util.uriEscape(member.toWireFormat(paramValue).toString());\n }\n }\n });\n\n if (queryStringSet) {\n uri += (uri.indexOf('?') >= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/broofa/node-uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1009.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","export * from \"-!../mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../css-loader/dist/cjs.js??ref--5-oneOf-1-1!../vue-loader/lib/loaders/stylePostLoader.js!../postcss-loader/src/index.js??ref--5-oneOf-1-2!./icons.css?vue&type=style&index=0&lang=css&\"","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n this.validateType(params, context, ['object'], 'structure');\n\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n }\n request.addListener('validate', s3util.validateArnRegion);\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstack) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var dualStackSuffix = !isOutpostArn && req.service.config.useDualstack ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy'\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","var render = function (_h,_vm) {var _c=_vm._c;return _c('span',{class:[_vm.data.staticClass, 'mdi', 'mdi-camera', _vm.props.spin ? 'mdi-spin' : undefined],attrs:{\"role\":_vm.props.role,\"aria-label\":_vm.props.ariaLabel}},[_c('svg',{attrs:{\"fill\":\"currentColor\",\"width\":_vm.props.width || _vm.props.size,\"height\":_vm.props.height || _vm.props.size,\"viewBox\":_vm.props.viewBox,\"xmlns\":_vm.props.xmlns}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('path',{attrs:{\"d\":\"M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n