Mini Kabibi Habibi

Current Path : C:/Program Files/Microsoft Office/root/Office16/sdxs/FA000000049/
Upload File :
Current File : C:/Program Files/Microsoft Office/root/Office16/sdxs/FA000000049/index.win32.bundle.map

{"version":3,"sources":["webpack/bootstrap","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\webpack\\4.44.1_webpack-cli@3.1.2+webpack@4.44.1\\node_modules\\webpack\\buildin\\global.js","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MlConfiguration.ts","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\@microsoft\\office-api\\0.1.0-beta.10\\node_modules\\@microsoft\\office-api\\office.runtime.js","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\@microsoft\\office-api\\0.1.0-beta.10\\node_modules\\@microsoft\\office-api\\office.runtime.reactnative.js","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\process\\0.11.10\\node_modules\\process\\browser.js","external \"OfficePlatformGlobal.ReactNativeReka\"","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\SavePrompt.g.ts","../src/platform-bundle-bootstrapper.ts","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/Object.es6.js","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\@office-iss\\sdx-haul-config\\0.0.45_d1926b6ba0edeaaf8d8a49fd01d78196\\node_modules\\@office-iss\\sdx-haul-config\\lib\\polyfills\\console.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/error-guard.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/Number.es6.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/String.prototype.es6.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/Array.prototype.es6.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/Array.es6.js","E:/_work/11/s/common/temp/node_modules/.pnpm/office.pkgs.visualstudio.com/@haul-bundler/preset-0.59/0.18.0_66330e672c1d7be54aece06fec540883/node_modules/@haul-bundler/preset-0.59/vendor/polyfills/Object.es7.js","E:\\_work\\11\\s\\packages\\saveprompt\\src\\index.win32.tsx","external \"OfficePlatformGlobal.ReactNative.Components\"","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\timers-browserify\\2.0.11\\node_modules\\timers-browserify\\main.js","E:\\_work\\11\\s\\common\\temp\\node_modules\\.pnpm\\office.pkgs.visualstudio.com\\setimmediate\\1.0.5\\node_modules\\setimmediate\\setImmediate.js","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt.tsx","external \"OfficePlatformGlobal.React\"","external \"OfficePlatformGlobal.Ply.DefaultButton\"","external \"OfficePlatformGlobal.Ply.Text\"","external \"OfficePlatformGlobal.Ply.View\"","external \"OfficePlatformGlobal.Ply.StyleSheet\"","external \"OfficePlatformGlobal.Reka\"","E:\\_work\\11\\s\\packages\\saveprompt\\assets\\strings.resjson","external \"OfficePlatformGlobal.SDX.StringResources\"","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\ModelEvaluationService.ts","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MLModels\\ISavePromptModel.ts","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MLModels\\SavePromptModelHeuristic.ts","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MLModels\\SavePromptModelLR.ts","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MLModels\\SavePromptModelClickstream.ts","E:\\_work\\11\\s\\packages\\saveprompt\\src\\SavePrompt\\MLModels\\SavePromptModelOnyx.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","g","this","Function","e","window","extendStatics","__extends","setPrototypeOf","__proto__","Array","b","__","constructor","Action","actionInfo","operationType","flags","m_actionInfo","m_operationType","m_flags","configurable","TraceMarkerActionResultHandler","callback","m_callback","_handleResult","ActionFactory","createSetPropertyAction","context","parent","propertyName","Utility","validateObjectPath","Id","_nextId","ActionType","Name","ObjectPathId","_objectPath","objectPathInfo","ArgumentInfo","args","referencedArgumentObjectPaths","setMethodArguments","validateReferencedObjectPaths","_pendingRequest","ensureInstantiateObjectPath","ensureInstantiateObjectPaths","ret","addAction","addReferencedObjectPath","addReferencedObjectPaths","referencedObjectPath","createMethodAction","methodName","_fixupApiFlags","createQueryAction","queryOption","QueryInfo","createRecursiveQueryAction","query","RecursiveQueryInfo","createQueryAsJsonAction","createEnsureUnchangedAction","objectState","ObjectState","createUpdateAction","createInstantiateAction","obj","parentObjectPath","argumentObjectPaths","addActionResultHandler","InstantiateActionResultHandler","createTraceAction","message","addTraceMessage","addTrace","createTraceMarkerForCallback","action","ClientObject","objectPath","checkArgumentNull","m_context","m_objectPath","_processingResult","trackedObjects","_autoAdd","set","throwIfNotLoaded","_isNull","m_isNull","_updateAsNullObject","isNullOrUndefined","_autoTrackIfNecessaryWhenHandleObjectResultValue","_handleIdResult","fixObjectPathIfNecessary","_handleRetrieveResult","result","_recursivelySet","input","options","scalarWriteablePropertyNames","objectPropertyNames","notAllowedToBeSetPropertyNames","isClientObject","originalInput","getPrototypeOf","_Internal","RuntimeError","_createInvalidArgError","argumentName","errorLocation","_className","JSON","parse","stringify","prop","length","dataToPassToSet","throwOnReadOnly","code","ErrorCodes","invalidArgument","_getResourceString","ResourceStrings","cannotApplyPropertyThroughSetMethod","debugInfo","indexOf","propertyDescriptor","getOwnPropertyDescriptor","propertyDoesNotExist","attemptingToSetReadOnlyProperty","innerError","_recursivelyUpdate","properties","shouldPolyfill","_internalConfig","alwaysPolyfillClientObjectUpdateMethod","isSetSupported","scalarPropNames","Constants","scalarPropertyNames","scalarPropUpdatable","scalarPropertyUpdateable","push","navigationPropNames","navigationPropertyNames","scalarProps","navigationProps","scalarPropCount","propName","index","propValue","isUndefined","navigationPropProxy","navigationPropValue","ClientRequest","m_actions","m_actionResultHandler","m_referencedObjectPaths","m_instantiatedObjectPaths","m_traceInfos","m_pendingProcessEventHandlers","m_pendingEventHandlerActions","m_responseTraceIds","m_responseTraceMessages","m_preSyncPromises","_setResponseTraceIds","traceId","batchMode","isSafeAction","ObjectPathType","ensureInProgressBatchIfBatchMode","_getLastAction","actionId","instantiateAction","objectPaths","isValid","invalidObjectPath","getObjectPathExpression","resultHandler","aggregrateRequestFlags","requestFlags","finallyNormalizeFlags","enableConcurrentFlag","enableUndoableFlag","m_flagsForTesting","buildRequestMessageBodyAndRequestFlags","enableEarlyDispose","_calculateLastUsedObjectPathIds","actions","hasKeepReference","keepReference","body","AutoKeepReference","_autoCleanup","Actions","ObjectPaths","processResponse","actionResults","actionResult","handler","ActionId","Value","invalidatePendingInvalidObjectPaths","isInvalidAfterRequest","_addPendingEventHandlerAction","eventHandlers","_id","_getPendingEventHandlerActions","_addPreSyncPromise","_removeKeepReferenceAction","objectPathId","splice","_updateLastUsedActionIdOfObjectPathId","lastUsedActionIdOfObjectPathId","argumentObjectPathsLength","actionsLength","referencedObjectPaths","referencedObjectPathsLength","refIndex","lastUsedObjectPathIdsOfAction","objectPathIds","parseInt","lastUsedObjectPathIds","L","showDisposeInfoInDebugInfo","showInternalApiInDebugInfo","alwaysPolyfillClientObjectRetrieveMethod","config","extendedErrorLogging","SessionBase","_resolveRequestUrlAndHeaderInfo","_createPromiseFromResult","_createRequestExecutorOrNull","officeJsEventRegistration","ClientRequestContext","url","m_customRequestHeaders","m_batchMode","_onRunFinishedNotifiers","m_nextId","_overrideSession","m_requestUrlAndHeaderInfoResolver","defaultRequestUrlAndHeaders","localDocument","headers","m_requestUrlAndHeaderInfo","isRequestUrlAndHeaderInfoResolver","isRequestUrlAndHeaderInfo","requestInfo","_copyHeaders","m_session","_customData","iterativeExecutor","sync","eventRegistration","m_pendingRequest","pendingStatements","RequestPrettyPrinter","_rootObjectPropertyName","_objectPaths","_actions","process","m_trackedObjects","TrackedObjects","m_explicitBatchInProgress","createRuntimeError","generalException","notInsideBatch","load","clientObj","option","validateContext","_parseQueryOption","isLoadOption","loadOption","select","isArray","expand","top","skip","parseStrictLoadOption","Select","parseStrictLoadOptionHelper","combineQueryPath","pathPrefix","separator","queryInfo","argPrefix","Top","Skip","_parseSelectExpand","Expand","loadRecursive","maxDepth","isPlainJsonObject","quries","Queries","MaxDepth","trace","_processOfficeJsErrorResponse","officeJsErrorCode","response","ensureRequestUrlAndHeaderInfo","_this","then","isNullOrEmptyString","executor","_requestExecutor","syncPrivateMain","req","processPreSyncPromises","syncPrivate","hasActions","processPendingEventHandlers","_a","msgBody","_isLocalDocumentUrl","OfficeJsRequestExecutor","HttpRequestExecutor","requestExecutor","requestExecutorRequestMessage","Url","Headers","Body","errorFromResponse","errorFromProcessEventHandlers","_lastSyncStart","performance","now","_lastRequestFlags","executeAsync","_lastSyncEnd","processRequestExecutorResponseMessage","catch","ex","log","transformedError","traceMessages","_responseTraceMessages","cannotRegisterEvent","TraceIds","errorStatementInfo","Error","ActionIndex","prettyPrinter","debugInfoStatementInfo","processForDebugStatementInfo","statement","surroundingStatements","fullStatements","Results","ProcessedResults","ErrorCode","ErrorMessage","Location","Code","Message","_pendingProcessEventHandlers","createProcessOneEventHandlersFunc","_processRegistration","_preSyncPromises","createProcessOneProSyncFunc","passThroughValue","batch","batchBody","CoreUtility","Promise","reject","pendingBatchInProgress","batchBodyResult","request","batchBodyResultPromise","previousRequest","_rootObject","_run","ctxInitializer","runBody","numCleanupAttempts","retryDelay","onCleanupSuccess","onCleanupFailure","_runCommon","_runBatch","functionName","receivedRunArgs","_runBatchCommon","_runExplicitBatch","ctxRetriever","argOffset","createErrorPromise","array","invalidRequestContext","ctx","resultOrError","previousBatchMode","starterPromise","resolve","succeeded","runBodyResult","throwError","runMustReturnPromise","error","itemsToRemove","_retrieveAndClearAutoCleanupList","cleanupCounter","_synchronousCleanup","attemptCleanup","savedPendingRequest","savedBatchMode","remove","setTimeout","shift","func","ClientResult","type","m_type","m_isLoaded","valueNotLoaded","m_value","_IsNull","adjustToDateTime","RetrieveResultImpl","m_proxy","m_shouldPolyfill","typeName","className","isCollection","definePropertyThrowUnloadedException","itemsLowerCase","m_isNullObject","toJSON","m_json","purifyJson","toString","changePropertyNameToCamelLowerCase","items","_toCamelLowerCase","charCodeAt","getItemAt","id","idLowerCase","idPrivate","localDocumentApiPrefix","objectPathIdPrivate","processQuery","referenceId","isTracked","sourceLibHeader","sessionContext","embeddingPageOrigin","embeddingPageSessionInfo","eventMessageCategory","eventWorkbookId","eventSourceRemote","proxy","collectionPropertyPath","objectPathInfoDoNotKeepReferenceFieldName","Office","OfficeExtension","EmbeddedApiStatus","CommunicationConstants","versionToken","internalConfiguration","DdaMethod","Version","SendingId","RespondingId","CommandKey","SessionInfoKey","ParamsKey","ApiReadyCommand","ExecuteMethodCommand","GetAppContextCommand","RegisterEventCommand","UnregisterEventCommand","FireEventCommand","EmbeddedSession","_super","m_chosenWindow","m_chosenOrigin","m_enabled","m_onMessageHandler","_onMessage","m_callbackList","m_id","m_timeoutId","m_appContext","m_url","m_options","sessionKey","Math","random","container","document","timeoutInMilliseconds","height","width","webApplication","accessToken","accessTokenTtl","_getIFrameSrc","origin","location","protocol","host","toAppend","encodeURIComponent","useHash","toLowerCase","a","createElement","href","toAppendWAC","search","hash","init","addEventListener","iframeSrc","iframeElement","style","webApplicationForm","setAttribute","appendChild","token_input","token_ttl_input","submit","src","close","err","timeout","m_promiseResolver","_invoke","method","params","_sendMessageWithCallback","errorCode","Success","InternalError","removeEventListener","clearTimeout","m_sessionEventManager","EventRegistration","_registerEventImpl","_unregisterEventImpl","EmbeddedRequestExecutor","eventId","targetId","EventId","TargetId","event","source","eventData","data","_isValidDescendant","appContext","_setupContext","msg","handlers","getHandlers","rId","command","postMessage","wnd","doesFrameWindow","containerWindow","len","frames","iframes","getElementsByTagName","contentWindow","session","customData","requestMessage","messageSafearray","RichApiMessageUtility","buildMessageArrayForIRequestExecutor","SourceLibHeaderValue","status","buildResponseOnSuccess","getResponseBodyFromSafeArray","Data","getResponseHeadersFromSafeArray","buildResponseOnError","_transformMessageArrayIntoParams","msgArray","ArrayData","DispatchId","DispidExecuteRichApiRequestMethod","_createDebugInfo","partialDebugInfo","invalidArgumentGeneric","accessDenied","activityLimitReached","propertyNotLoaded","apiNotFound","connectionFailure","invalidOrTimedOutSession","cannotUpdateReadOnlyProperty","EventHandlers","parentObject","eventInfo","m_name","m_handlers","m_registered","m_eventInfo","eventArgsTransformFunc","newArgs","fireEvent","add","operation","EventHandlerResult","removeAll","handlersResult","hasChange","_responseTraceIds","registerFunc","unregisterFunc","promises","createFireOneEventHandlerFunc","all","m_allHandlers","m_handler","OfficeJsEventRegistration","register","promisify","bindings","getByIdAsync","officeBinding","addHandlerAsync","EventType","BindingDataChanged","BindingSelectionChanged","DocumentSelectionChanged","settings","SettingsChanged","OSF","DDA","RichApi","richApiMessageManager","ObjectDeleted","ObjectSelectionChanged","ObjectDataChanged","ContentControlAdded","unregister","removeHandlerAsync","registerEventImpl","unregisterEventImpl","m_handlersByEventByTarget","m_registerEventImpl","m_unregisterEventImpl","handlersById","GenericEventRegistration","m_eventRegistration","m_richApiMessageHandler","_handleRichApiMessage","ready","m_ready","_testReadyImpl","m_isReady","entries","entryIndex","entry","messageCategory","_logEnabled","funcs","messageType","arg","isRemoteOverride","getGenericEventRegistration","s_genericEventRegistration","richApiMessageEventCategory","_testSetRichApiMessageReadyImpl","impl","_testTriggerRichApiMessageEvent","GenericEventHandlers","m_genericEventInfo","_handlers","isReady","_context","eventType","getTargetIdFunc","_callback","requestMessageText","charAt","HttpUtility","sendRequest","responseInfo","statusCode","_parseErrorResponse","errorMessage","setCustomSendRequestFunc","s_customSendRequestFunc","xhrSendRequestFunc","xhr","XMLHttpRequest","open","onload","resp","_parseHttpResponseHeaders","getAllResponseHeaders","responseText","onerror","connectionFailureWithStatus","statusText","setRequestHeader","send","validateAndNormalizeRequest","setCustomSendLocalDocumentRequestFunc","s_customSendLocalDocumentRequestFunc","sendLocalDocumentRequest","officeJsSendLocalDocumentRequestFunc","_validateLocalDocumentRequest","requestSafeArray","_buildRequestMessageSafeArray","executeRichApiRequestAsync","asyncResult","getResponseStatusCode","getResponseHeaders","getResponseBody","buildHttpResponseFromOfficeJsError","toUpperCase","logRequest","_logBody","logResponse","clientObject","m_clientObject","HostBridgeRequestExecutor","httpRequestInfo","HostBridgeSession","nextId","sendMessageToHost","nativeBridgeResponse","bridge","m_bridge","onMessageFromHost","bridgeMessage","bridgeResponse","messageText","HostBridgeTest","_testFunc","s_nextId","HostBridge","_richApiNativeBridge","setTestFunc","ObjectPath","m_objectPathInfo","m_parentObjectPath","m_isCollection","m_isInvalidAfterRequest","m_isValid","m_argumentObjectPaths","m_savedObjectPathInfo","copyObjectPathInfo","pathInfo","m_originalObjectPathInfo","m_getByIdMethodName","resetForUpdateUsingObjectData","saveOriginalObjectPathInfo","updateUsingObjectData","isRestorableObjectPath","ParentObjectPathId","tryGetObjectIdFromLoadOrRetrieveResult","propNames","split","parent_1","Arguments","parentIsCollection","getByIdMethodName","objectPathType","dest","ObjectPathFactory","createGlobalObjectObjectPath","createNewObjectObjectPath","createPropertyObjectPath","createIndexerObjectPath","createIndexerObjectPathUsingParentPath","createMethodObjectPath","createReferenceIdObjectPath","createChildItemObjectPathUsingIndexerOrGetItemAt","hasIndexerMethod","childItem","createChildItemObjectPathUsingIndexer","createChildItemObjectPathUsingGetItemAt","indexFromServer","OfficeRequire","PromiseImpl","Init","lib$es6$promise$utils$$isFunction","x","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$utils$$isArray","lib$es6$promise$asap$$len","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$queue","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserGlobal","undefined","lib$es6$promise$asap$$BrowserMutationObserver","MutationObserver","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","MessageChannel","channel","iterations","observer","node","nextTick","version","lib$es6$promise$$internal$$noop","versions","match","setImmediate","createTextNode","observe","characterData","port1","onmessage","port2","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$handleMaybeThenable","promise","maybeThenable","thenable","_state","lib$es6$promise$$internal$$fulfill","_result","lib$es6$promise$$internal$$reject","lib$es6$promise$$internal$$subscribe","lib$es6$promise$$internal$$resolve","reason","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$getThen","sealed","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$tryThen","_label","lib$es6$promise$$internal$$handleForeignThenable","TypeError","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","_subscribers","child","onFulfillment","onRejection","subscribers","settled","detail","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$TRY_CATCH_ERROR","failed","hasCallback","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$enumerator$$Enumerator","Constructor","_instanceConstructor","_validateInput","_input","_remaining","_init","_enumerate","_validationError","lib$es6$promise$enumerator$$default","_eachEntry","_settledAt","_willSettleAt","state","enumerator","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$promise$reject$$default","lib$es6$promise$promise$$counter","lib$es6$promise$promise$$default","lib$es6$promise$promise$$Promise","resolver","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$$internal$$initializePromise","race","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","arguments","OfficePromise","_autoCleanupList","param","forEach","item","_addCommon","resultValue","isExplicitlyAdded","objectIsUntracked","_KeepReference","_removeCommon","rootObject","_RemoveReference","list","globalObjName","showDispose","removePII","m_globalObjName","m_statements","m_variableNameForObjectPathMap","m_variableNameToObjectPathMap","m_declaredObjectPathMap","m_showDispose","m_removePII","processOneAction","actionIndex","statementIndex","startIndex","endIndex","i_1","i_2","processInstantiateAction","processMethodAction","processQueryAction","processQueryAsJsonAction","processRecursiveQueryAction","processSetPropertyAction","processTraceAction","processEnsureUnchangedAction","processUpdateAction","objId","objPath","varName","getObjVarName","appendDisposeCommentIfRelevant","buildObjectPathExpressionWithParent","buildArgumentsExpression","queryExp","buildQueryExpression","map","join","buildObjectPathExpression","expr","buildObjectPathInfoExpression","originalObjectPathInfo","buildArgumentLiteral","ReferencedObjectPathIds","getObjVarNameBase","substr","parentName","connectionFailureWithDetails","moreInfoInnerError","invalidOrTimedOutSessionMessage","invalidOperationInCellEditMode","customFunctionDefintionMissing","customFunctionImplementationMissing","customFunctionNameContainsBadChars","customFunctionNameCannotSplit","customFunctionUnexpectedNumberOfEntriesInResultBatch","customFunctionCancellationHandlerMissing","apiNotFoundDetails","ResourceStringValues","CannotRegisterEvent","ConnectionFailureWithStatus","ConnectionFailureWithDetails","InvalidArgument","InvalidObjectPath","InvalidRequestContext","PropertyNotLoaded","RunMustReturnPromise","Timeout","ValueNotLoaded","InvalidOrTimedOutSessionMessage","InvalidOperationInCellEditMode","CustomFunctionDefintionMissing","CustomFunctionImplementationMissing","CustomFunctionNameContainsBadChars","CustomFunctionNameCannotSplit","CustomFunctionUnexpectedNumberOfEntriesInResultBatch","CustomFunctionCancellationHandlerMissing","ApiNotFoundDetails","PendingBatchInProgress","NotInsideBatch","CannotUpdateReadOnlyProperty","ObjectIsUntracked","sourceLibHeaderValue","buildRequestMessageSafeArray","responseBody","responseHeaders","OfficeJsErrorCode_ooeNoCapability","OfficeJsErrorCode_ooeActivityLimitReached","OfficeJsErrorCode_ooeInvalidOrTimedOutSession","errorBody","path","headerArray","headerName","arrayHeader","getResponseStatusCodeFromSafeArray","trim","str","replace","RegExp","caseInsensitiveCompareString","str1","str2","Date","arr","isReadonlyRestRequest","argumentInfo","referencedObjectPathIds","hasOne","collectObjectPathInfos","childArrayObjectPathIds","replaceClientObjectPropertiesWithObjectPathIds","elem","_b","console","loadAndSync","retrieve","retrieveAndSync","apiSetName","apiSetVersion","requirements","propertyNames","sanitizeForAnyItemsSlash","propertyNameLower","toJson","scalarProperties","navigationProperties","collectionItemsIfAny","fieldName_isCollection","fieldName_m__items","resourceId","Strings","OfficeOM","stringName","stringValue","arrArg","_formatString","format","v","position","fieldValue","entityName","isNull","s_underscoreCharCode","createPropertyNotLoadedException","createCannotUpdateReadOnlyPropertyException","throwIfApiNotSupported","apiFullName","hostName","_doApiNotSupportedCheck","normalizeName","_createTimeoutPromise","_addActionResultHandler","_handleNavigationPropertyResults","objectValue","_getLocalDocumentUrlPrefixLength","localDocumentPrefixes","urlLower","pathLower","parts","keyvalue","allResponseHeaders","regex","errorObj","errorResponseBody","defineReadOnlyPropertyWithValue","processRetrieveResult","childItemCreateFunc","itemsResult","itemProxy","itemResult","propProxy","propResult","react_native_dataservice_1","RichApiBridge","RichApiBridgeImpl","DataServiceManager","InvokeNative","RichApiDataService","Invoke","ReactNativeReka","RegisterService","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","run","marker","runClearTimeout","Item","noop","apply","title","browser","env","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","OfficePlatformGlobal","global","__platformBundles","platformBundles","Reflect","deleteProperty","eval","assign","target","sources","nextIndex","nextSource","proto","inspect","stylizeNoColor","styleType","formatValue","recurseTimes","primitive","stylize","simple","isNumber","isBoolean","formatPrimitive","keys","visibleKeys","val","idx","arrayToHash","isError","formatError","isFunction","isRegExp","isDate","base","braces","ar","toUTCString","output","seen","String","formatProperty","formatArray","pop","reduce","prev","cur","numLinesEst","reduceToSingleString","desc","line","re","isObject","objectToString","opts","depth","LOG_LEVELS","INSPECTOR_LEVELS","getNativeLogFunction","level","logLevel","slice","__inspectorLog","nativeLoggingHook","repeat","element","info","warn","debug","table","rows","row","columns","sort","stringRows","columnWidths","joinRow","space","cell","k","j","cellStr","max","separatorRow","columnWidth","assert","expression","label","print","_inGuard","_globalHandler","ErrorUtils","setGlobalHandler","getGlobalHandler","reportError","reportFatalError","applyWithGuard","applyWithGuardIfNeeded","inGuard","guard","Number","EPSILON","pow","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","isNaN","globalIsNaN","writable","startsWith","string","pos","start","min","endsWith","stringLength","searchString","end","lastIndexOf","count","Infinity","RangeError","includes","codePointAt","size","second","first","findIndex","predicate","find","searchElement","O","currentElement","from","arrayLike","mapFn","thisArg","C","symbolIterator","iterator","mapping","usingIterator","next","it","done","values","ReactNative","Components","self","clearFn","_clearFn","scope","setInterval","clearInterval","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","documentElement","script","onreadystatechange","removeChild","attachEvent","task","React","Ply","DefaultButton","Text","View","StyleSheet","Reka","ssr","StringResources","createLazyTable","SDX","configErrorOutput","isModelFlightable","MlConfiguration_1","SavePromptModelHeuristicImpl","SavePromptModelLRImpl","ModelParameter","SavePromptModelClickStreamImpl","SavePromptModelOnyxImpl"],"mappings":"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","file":"index.win32.bundle","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"http://localhost:8081/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MLConfigurationImpl = /** @class */ (function () {\r\n    function MLConfigurationImpl() {\r\n    }\r\n    MLConfigurationImpl.prototype.register = function (configPayload) {\r\n        this.modelID = configPayload.modelId;\r\n    };\r\n    MLConfigurationImpl.prototype.getModelID = function () {\r\n        return this.modelID;\r\n    };\r\n    return MLConfigurationImpl;\r\n}());\r\nfunction getDefaultModelOutput() {\r\n    var res = {\r\n        output: false,\r\n        isModelFlightable: true,\r\n        calcDurationSec: 0\r\n    };\r\n    return res;\r\n}\r\nexports.getDefaultModelOutput = getDefaultModelOutput;\r\nexports.MLConfiguration = new MLConfigurationImpl();\r\nvar ModelParameter;\r\n(function (ModelParameter) {\r\n    ModelParameter[\"RowCount\"] = \"rowCount\";\r\n    ModelParameter[\"TileUpdateCount\"] = \"tileUpdateCount\";\r\n    ModelParameter[\"DwellTimeSec\"] = \"dwellTimeSecs\";\r\n    ModelParameter[\"RelevantTcidsExists\"] = \"relevantTcidsExists\"; // Key doesn't map to 'real' value, it is just used to check for payload compatibility\r\n})(ModelParameter = exports.ModelParameter || (exports.ModelParameter = {}));\r\nvar SavePromptModel;\r\n(function (SavePromptModel) {\r\n    SavePromptModel[SavePromptModel[\"Heuristic\"] = 1000] = \"Heuristic\";\r\n    SavePromptModel[SavePromptModel[\"LR\"] = 1001] = \"LR\";\r\n    SavePromptModel[SavePromptModel[\"ClickStream\"] = 1002] = \"ClickStream\";\r\n    SavePromptModel[SavePromptModel[\"Onyx\"] = 1003] = \"Onyx\";\r\n})(SavePromptModel = exports.SavePromptModel || (exports.SavePromptModel = {}));\r\n","/*\n    MICROSOFT SOFTWARE LICENSE TERMS\n    Use of this file is governed by the one of the following Microsoft developer terms:\n    * If you have a MSDN subscription, the Microsoft Developer Services Agreement at https://msdn.microsoft.com/en-US/cc300389 applies.\n    * If you don't have an MSDN subscription, the software license terms located at http://go.microsoft.com/fwlink/?LinkId=396798 apply.\n*/\n\n/*\n* @overview es6-promise - a tiny implementation of Promises/A+.\n* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n* @license   Licensed under MIT license\n*            See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n* @version   2.3.0\n*/\n\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Action = (function () {\r\n    function Action(actionInfo, operationType, flags) {\r\n        this.m_actionInfo = actionInfo;\r\n        this.m_operationType = operationType;\r\n        this.m_flags = flags;\r\n    }\r\n    Object.defineProperty(Action.prototype, \"actionInfo\", {\r\n        get: function () {\r\n            return this.m_actionInfo;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Action.prototype, \"operationType\", {\r\n        get: function () {\r\n            return this.m_operationType;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Action.prototype, \"flags\", {\r\n        get: function () {\r\n            return this.m_flags;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return Action;\r\n}());\r\nexports.Action = Action;\r\nvar TraceMarkerActionResultHandler = (function () {\r\n    function TraceMarkerActionResultHandler(callback) {\r\n        this.m_callback = callback;\r\n    }\r\n    TraceMarkerActionResultHandler.prototype._handleResult = function (value) {\r\n        if (this.m_callback) {\r\n            this.m_callback();\r\n        }\r\n    };\r\n    return TraceMarkerActionResultHandler;\r\n}());\r\nvar ActionFactory = (function () {\r\n    function ActionFactory() {\r\n    }\r\n    ActionFactory.createSetPropertyAction = function (context, parent, propertyName, value, flags) {\r\n        Utility.validateObjectPath(parent);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 4,\r\n            Name: propertyName,\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        var args = [value];\r\n        var referencedArgumentObjectPaths = Utility.setMethodArguments(context, actionInfo.ArgumentInfo, args);\r\n        Utility.validateReferencedObjectPaths(referencedArgumentObjectPaths);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        context._pendingRequest.ensureInstantiateObjectPaths(referencedArgumentObjectPaths);\r\n        var ret = new Action(actionInfo, 0, flags);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        context._pendingRequest.addReferencedObjectPaths(referencedArgumentObjectPaths);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        ret.referencedArgumentObjectPaths = referencedArgumentObjectPaths;\r\n        return ret;\r\n    };\r\n    ActionFactory.createMethodAction = function (context, parent, methodName, operationType, args, flags) {\r\n        Utility.validateObjectPath(parent);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 3,\r\n            Name: methodName,\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        var referencedArgumentObjectPaths = Utility.setMethodArguments(context, actionInfo.ArgumentInfo, args);\r\n        Utility.validateReferencedObjectPaths(referencedArgumentObjectPaths);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        context._pendingRequest.ensureInstantiateObjectPaths(referencedArgumentObjectPaths);\r\n        var ret = new Action(actionInfo, operationType, Utility._fixupApiFlags(flags));\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        context._pendingRequest.addReferencedObjectPaths(referencedArgumentObjectPaths);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        ret.referencedArgumentObjectPaths = referencedArgumentObjectPaths;\r\n        return ret;\r\n    };\r\n    ActionFactory.createQueryAction = function (context, parent, queryOption) {\r\n        Utility.validateObjectPath(parent);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 2,\r\n            Name: \"\",\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n        };\r\n        actionInfo.QueryInfo = queryOption;\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        return ret;\r\n    };\r\n    ActionFactory.createRecursiveQueryAction = function (context, parent, query) {\r\n        Utility.validateObjectPath(parent);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 6,\r\n            Name: \"\",\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            RecursiveQueryInfo: query\r\n        };\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        return ret;\r\n    };\r\n    ActionFactory.createQueryAsJsonAction = function (context, parent, queryOption) {\r\n        Utility.validateObjectPath(parent);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 7,\r\n            Name: \"\",\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n        };\r\n        actionInfo.QueryInfo = queryOption;\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        return ret;\r\n    };\r\n    ActionFactory.createEnsureUnchangedAction = function (context, parent, objectState) {\r\n        Utility.validateObjectPath(parent);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 8,\r\n            Name: \"\",\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ObjectState: objectState\r\n        };\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        return ret;\r\n    };\r\n    ActionFactory.createUpdateAction = function (context, parent, objectState) {\r\n        Utility.validateObjectPath(parent);\r\n        context._pendingRequest.ensureInstantiateObjectPath(parent._objectPath);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 9,\r\n            Name: \"\",\r\n            ObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ObjectState: objectState\r\n        };\r\n        var ret = new Action(actionInfo, 0, 0);\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(parent._objectPath);\r\n        ret.referencedObjectPath = parent._objectPath;\r\n        return ret;\r\n    };\r\n    ActionFactory.createInstantiateAction = function (context, obj) {\r\n        Utility.validateObjectPath(obj);\r\n        context._pendingRequest.ensureInstantiateObjectPath(obj._objectPath.parentObjectPath);\r\n        context._pendingRequest.ensureInstantiateObjectPaths(obj._objectPath.argumentObjectPaths);\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 1,\r\n            Name: \"\",\r\n            ObjectPathId: obj._objectPath.objectPathInfo.Id\r\n        };\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        ret.referencedObjectPath = obj._objectPath;\r\n        context._pendingRequest.addAction(ret);\r\n        context._pendingRequest.addReferencedObjectPath(obj._objectPath);\r\n        context._pendingRequest.addActionResultHandler(ret, new InstantiateActionResultHandler(obj));\r\n        return ret;\r\n    };\r\n    ActionFactory.createTraceAction = function (context, message, addTraceMessage) {\r\n        var actionInfo = {\r\n            Id: context._nextId(),\r\n            ActionType: 5,\r\n            Name: \"Trace\",\r\n            ObjectPathId: 0\r\n        };\r\n        var ret = new Action(actionInfo, 1, 4);\r\n        context._pendingRequest.addAction(ret);\r\n        if (addTraceMessage) {\r\n            context._pendingRequest.addTrace(actionInfo.Id, message);\r\n        }\r\n        return ret;\r\n    };\r\n    ActionFactory.createTraceMarkerForCallback = function (context, callback) {\r\n        var action = ActionFactory.createTraceAction(context, null, false);\r\n        context._pendingRequest.addActionResultHandler(action, new TraceMarkerActionResultHandler(callback));\r\n    };\r\n    return ActionFactory;\r\n}());\r\nexports.ActionFactory = ActionFactory;\r\nvar ClientObject = (function () {\r\n    function ClientObject(context, objectPath) {\r\n        Utility.checkArgumentNull(context, \"context\");\r\n        this.m_context = context;\r\n        this.m_objectPath = objectPath;\r\n        if (this.m_objectPath) {\r\n            if (!context._processingResult) {\r\n                ActionFactory.createInstantiateAction(context, this);\r\n                if ((context._autoCleanup) && (this._KeepReference)) {\r\n                    context.trackedObjects._autoAdd(this);\r\n                }\r\n            }\r\n        }\r\n    }\r\n    Object.defineProperty(ClientObject.prototype, \"context\", {\r\n        get: function () {\r\n            return this.m_context;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientObject.prototype, \"_objectPath\", {\r\n        get: function () {\r\n            return this.m_objectPath;\r\n        },\r\n        set: function (value) {\r\n            this.m_objectPath = value;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientObject.prototype, \"isNull\", {\r\n        get: function () {\r\n            Utility.throwIfNotLoaded(\"isNull\", this._isNull, null, this._isNull);\r\n            return this._isNull;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientObject.prototype, \"isNullObject\", {\r\n        get: function () {\r\n            Utility.throwIfNotLoaded(\"isNullObject\", this._isNull, null, this._isNull);\r\n            return this._isNull;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientObject.prototype, \"_isNull\", {\r\n        get: function () {\r\n            return this.m_isNull;\r\n        },\r\n        set: function (value) {\r\n            this.m_isNull = value;\r\n            if (value && this.m_objectPath) {\r\n                this.m_objectPath._updateAsNullObject();\r\n            }\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientObject.prototype._handleResult = function (value) {\r\n        this._isNull = Utility.isNullOrUndefined(value);\r\n        this.context.trackedObjects._autoTrackIfNecessaryWhenHandleObjectResultValue(this, value);\r\n    };\r\n    ClientObject.prototype._handleIdResult = function (value) {\r\n        this._isNull = Utility.isNullOrUndefined(value);\r\n        Utility.fixObjectPathIfNecessary(this, value);\r\n        this.context.trackedObjects._autoTrackIfNecessaryWhenHandleObjectResultValue(this, value);\r\n    };\r\n    ClientObject.prototype._handleRetrieveResult = function (value, result) {\r\n        this._handleIdResult(value);\r\n    };\r\n    ClientObject.prototype._recursivelySet = function (input, options, scalarWriteablePropertyNames, objectPropertyNames, notAllowedToBeSetPropertyNames) {\r\n        var isClientObject = (input instanceof ClientObject);\r\n        var originalInput = input;\r\n        if (isClientObject) {\r\n            if (Object.getPrototypeOf(this) === Object.getPrototypeOf(input)) {\r\n                input = JSON.parse(JSON.stringify(input));\r\n            }\r\n            else {\r\n                throw _Internal.RuntimeError._createInvalidArgError({\r\n                    argumentName: 'properties',\r\n                    errorLocation: this._className + \".set\"\r\n                });\r\n            }\r\n        }\r\n        try {\r\n            var prop;\r\n            for (var i = 0; i < scalarWriteablePropertyNames.length; i++) {\r\n                prop = scalarWriteablePropertyNames[i];\r\n                if (input.hasOwnProperty(prop)) {\r\n                    if (typeof input[prop] !== \"undefined\") {\r\n                        this[prop] = input[prop];\r\n                    }\r\n                }\r\n            }\r\n            for (var i = 0; i < objectPropertyNames.length; i++) {\r\n                prop = objectPropertyNames[i];\r\n                if (input.hasOwnProperty(prop)) {\r\n                    if (typeof input[prop] !== \"undefined\") {\r\n                        var dataToPassToSet = isClientObject ? originalInput[prop] : input[prop];\r\n                        this[prop].set(dataToPassToSet, options);\r\n                    }\r\n                }\r\n            }\r\n            var throwOnReadOnly = !isClientObject;\r\n            if (options && !Utility.isNullOrUndefined(throwOnReadOnly)) {\r\n                throwOnReadOnly = options.throwOnReadOnly;\r\n            }\r\n            for (var i = 0; i < notAllowedToBeSetPropertyNames.length; i++) {\r\n                prop = notAllowedToBeSetPropertyNames[i];\r\n                if (input.hasOwnProperty(prop)) {\r\n                    if (typeof input[prop] !== \"undefined\" && throwOnReadOnly) {\r\n                        throw new _Internal.RuntimeError({\r\n                            code: ErrorCodes.invalidArgument,\r\n                            message: Utility._getResourceString(ResourceStrings.cannotApplyPropertyThroughSetMethod, prop),\r\n                            debugInfo: {\r\n                                errorLocation: prop\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n            for (prop in input) {\r\n                if (scalarWriteablePropertyNames.indexOf(prop) < 0 && objectPropertyNames.indexOf(prop) < 0) {\r\n                    var propertyDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this), prop);\r\n                    if (!propertyDescriptor) {\r\n                        throw new _Internal.RuntimeError({\r\n                            code: ErrorCodes.invalidArgument,\r\n                            message: Utility._getResourceString(ResourceStrings.propertyDoesNotExist, prop),\r\n                            debugInfo: {\r\n                                errorLocation: prop\r\n                            }\r\n                        });\r\n                    }\r\n                    if (throwOnReadOnly && !propertyDescriptor.set) {\r\n                        throw new _Internal.RuntimeError({\r\n                            code: ErrorCodes.invalidArgument,\r\n                            message: Utility._getResourceString(ResourceStrings.attemptingToSetReadOnlyProperty, prop),\r\n                            debugInfo: {\r\n                                errorLocation: prop\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (innerError) {\r\n            throw new _Internal.RuntimeError({\r\n                code: ErrorCodes.invalidArgument,\r\n                message: Utility._getResourceString(ResourceStrings.invalidArgument, 'properties'),\r\n                debugInfo: {\r\n                    errorLocation: this._className + \".set\"\r\n                },\r\n                innerError: innerError\r\n            });\r\n        }\r\n    };\r\n    ClientObject.prototype._recursivelyUpdate = function (properties) {\r\n        var shouldPolyfill = exports._internalConfig.alwaysPolyfillClientObjectUpdateMethod;\r\n        if (!shouldPolyfill) {\r\n            shouldPolyfill = !Utility.isSetSupported(\"RichApiRuntime\", \"1.2\");\r\n        }\r\n        try {\r\n            var scalarPropNames = this[Constants.scalarPropertyNames];\r\n            if (!scalarPropNames) {\r\n                scalarPropNames = [];\r\n            }\r\n            var scalarPropUpdatable = this[Constants.scalarPropertyUpdateable];\r\n            if (!scalarPropUpdatable) {\r\n                scalarPropUpdatable = [];\r\n                for (var i = 0; i < scalarPropNames.length; i++) {\r\n                    scalarPropUpdatable.push(false);\r\n                }\r\n            }\r\n            var navigationPropNames = this[Constants.navigationPropertyNames];\r\n            if (!navigationPropNames) {\r\n                navigationPropNames = [];\r\n            }\r\n            var scalarProps = {};\r\n            var navigationProps = {};\r\n            var scalarPropCount = 0;\r\n            for (var propName in properties) {\r\n                var index = scalarPropNames.indexOf(propName);\r\n                if (index >= 0) {\r\n                    if (!scalarPropUpdatable[index]) {\r\n                        throw new _Internal.RuntimeError({\r\n                            code: ErrorCodes.invalidArgument,\r\n                            message: Utility._getResourceString(ResourceStrings.attemptingToSetReadOnlyProperty, propName),\r\n                            debugInfo: {\r\n                                errorLocation: propName\r\n                            }\r\n                        });\r\n                    }\r\n                    scalarProps[propName] = properties[propName];\r\n                    ++scalarPropCount;\r\n                }\r\n                else if (navigationPropNames.indexOf(propName) >= 0) {\r\n                    navigationProps[propName] = properties[propName];\r\n                }\r\n                else {\r\n                    throw new _Internal.RuntimeError({\r\n                        code: ErrorCodes.invalidArgument,\r\n                        message: Utility._getResourceString(ResourceStrings.propertyDoesNotExist, propName),\r\n                        debugInfo: {\r\n                            errorLocation: propName\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n            if (scalarPropCount > 0) {\r\n                if (shouldPolyfill) {\r\n                    for (var i = 0; i < scalarPropNames.length; i++) {\r\n                        var propName = scalarPropNames[i];\r\n                        var propValue = scalarProps[propName];\r\n                        if (!Utility.isUndefined(propValue)) {\r\n                            ActionFactory.createSetPropertyAction(this.context, this, propName, propValue);\r\n                        }\r\n                    }\r\n                }\r\n                else {\r\n                    ActionFactory.createUpdateAction(this.context, this, scalarProps);\r\n                }\r\n            }\r\n            for (var propName in navigationProps) {\r\n                var navigationPropProxy = this[propName];\r\n                var navigationPropValue = navigationProps[propName];\r\n                navigationPropProxy._recursivelyUpdate(navigationPropValue);\r\n            }\r\n        }\r\n        catch (innerError) {\r\n            throw new _Internal.RuntimeError({\r\n                code: ErrorCodes.invalidArgument,\r\n                message: Utility._getResourceString(ResourceStrings.invalidArgument, 'properties'),\r\n                debugInfo: {\r\n                    errorLocation: this._className + \".update\"\r\n                },\r\n                innerError: innerError\r\n            });\r\n        }\r\n    };\r\n    return ClientObject;\r\n}());\r\nexports.ClientObject = ClientObject;\r\nvar ClientRequest = (function () {\r\n    function ClientRequest(context) {\r\n        this.m_context = context;\r\n        this.m_actions = [];\r\n        this.m_actionResultHandler = {};\r\n        this.m_referencedObjectPaths = {};\r\n        this.m_instantiatedObjectPaths = {};\r\n        this.m_traceInfos = {};\r\n        this.m_pendingProcessEventHandlers = [];\r\n        this.m_pendingEventHandlerActions = {};\r\n        this.m_responseTraceIds = {};\r\n        this.m_responseTraceMessages = [];\r\n        this.m_preSyncPromises = [];\r\n    }\r\n    Object.defineProperty(ClientRequest.prototype, \"traceInfos\", {\r\n        get: function () {\r\n            return this.m_traceInfos;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequest.prototype, \"_responseTraceMessages\", {\r\n        get: function () {\r\n            return this.m_responseTraceMessages;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequest.prototype, \"_responseTraceIds\", {\r\n        get: function () {\r\n            return this.m_responseTraceIds;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientRequest.prototype._setResponseTraceIds = function (value) {\r\n        if (value) {\r\n            for (var i = 0; i < value.length; i++) {\r\n                var traceId = value[i];\r\n                this.m_responseTraceIds[traceId] = traceId;\r\n                var message = this.m_traceInfos[traceId];\r\n                if (!Utility.isNullOrUndefined(message)) {\r\n                    this.m_responseTraceMessages.push(message);\r\n                }\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype.addAction = function (action) {\r\n        if (this.m_context.batchMode === 1) {\r\n            var isSafeAction = false;\r\n            if (action.actionInfo.ActionType === 1 &&\r\n                action.referencedObjectPath.objectPathInfo.ObjectPathType === 4) {\r\n                isSafeAction = true;\r\n            }\r\n            if (!isSafeAction) {\r\n                this.m_context.ensureInProgressBatchIfBatchMode();\r\n            }\r\n        }\r\n        this.m_actions.push(action);\r\n        if (action.actionInfo.ActionType == 1) {\r\n            this.m_instantiatedObjectPaths[action.actionInfo.ObjectPathId] = action;\r\n        }\r\n    };\r\n    Object.defineProperty(ClientRequest.prototype, \"hasActions\", {\r\n        get: function () {\r\n            return this.m_actions.length > 0;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientRequest.prototype._getLastAction = function () {\r\n        return this.m_actions[this.m_actions.length - 1];\r\n    };\r\n    ClientRequest.prototype.addTrace = function (actionId, message) {\r\n        this.m_traceInfos[actionId] = message;\r\n    };\r\n    ClientRequest.prototype.ensureInstantiateObjectPath = function (objectPath) {\r\n        if (objectPath) {\r\n            if (this.m_instantiatedObjectPaths[objectPath.objectPathInfo.Id]) {\r\n                return;\r\n            }\r\n            this.ensureInstantiateObjectPath(objectPath.parentObjectPath);\r\n            this.ensureInstantiateObjectPaths(objectPath.argumentObjectPaths);\r\n            if (!this.m_instantiatedObjectPaths[objectPath.objectPathInfo.Id]) {\r\n                var actionInfo = {\r\n                    Id: this.m_context._nextId(),\r\n                    ActionType: 1,\r\n                    Name: \"\",\r\n                    ObjectPathId: objectPath.objectPathInfo.Id\r\n                };\r\n                var instantiateAction = new Action(actionInfo, 1, 4);\r\n                instantiateAction.referencedObjectPath = objectPath;\r\n                this.addReferencedObjectPath(objectPath);\r\n                this.addAction(instantiateAction);\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype.ensureInstantiateObjectPaths = function (objectPaths) {\r\n        if (objectPaths) {\r\n            for (var i = 0; i < objectPaths.length; i++) {\r\n                this.ensureInstantiateObjectPath(objectPaths[i]);\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype.addReferencedObjectPath = function (objectPath) {\r\n        if (this.m_referencedObjectPaths[objectPath.objectPathInfo.Id]) {\r\n            return;\r\n        }\r\n        if (!objectPath.isValid) {\r\n            throw new _Internal.RuntimeError({\r\n                code: ErrorCodes.invalidObjectPath,\r\n                message: Utility._getResourceString(ResourceStrings.invalidObjectPath, Utility.getObjectPathExpression(objectPath)),\r\n                debugInfo: {\r\n                    errorLocation: Utility.getObjectPathExpression(objectPath)\r\n                }\r\n            });\r\n        }\r\n        while (objectPath) {\r\n            this.m_referencedObjectPaths[objectPath.objectPathInfo.Id] = objectPath;\r\n            if (objectPath.objectPathInfo.ObjectPathType == 3) {\r\n                this.addReferencedObjectPaths(objectPath.argumentObjectPaths);\r\n            }\r\n            objectPath = objectPath.parentObjectPath;\r\n        }\r\n    };\r\n    ClientRequest.prototype.addReferencedObjectPaths = function (objectPaths) {\r\n        if (objectPaths) {\r\n            for (var i = 0; i < objectPaths.length; i++) {\r\n                this.addReferencedObjectPath(objectPaths[i]);\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype.addActionResultHandler = function (action, resultHandler) {\r\n        this.m_actionResultHandler[action.actionInfo.Id] = resultHandler;\r\n    };\r\n    ClientRequest.prototype.aggregrateRequestFlags = function (requestFlags, operationType, flags) {\r\n        if (operationType === 0) {\r\n            requestFlags = requestFlags | 1;\r\n            if ((flags & 2) === 0) {\r\n                requestFlags = requestFlags & ~(16);\r\n            }\r\n            requestFlags = requestFlags & ~(4);\r\n        }\r\n        if (flags & 1) {\r\n            requestFlags = requestFlags | 2;\r\n        }\r\n        if ((flags & 4) === 0) {\r\n            requestFlags = requestFlags & ~(4);\r\n        }\r\n        return requestFlags;\r\n    };\r\n    ClientRequest.prototype.finallyNormalizeFlags = function (requestFlags) {\r\n        if ((requestFlags & 1) === 0) {\r\n            requestFlags = requestFlags & ~16;\r\n        }\r\n        if (!exports._internalConfig.enableConcurrentFlag) {\r\n            requestFlags = requestFlags & ~4;\r\n        }\r\n        if (!exports._internalConfig.enableUndoableFlag) {\r\n            requestFlags = requestFlags & ~16;\r\n        }\r\n        if (!Utility.isSetSupported(\"RichApiRuntimeFlag\", \"1.1\")) {\r\n            requestFlags = requestFlags & ~4;\r\n            requestFlags = requestFlags & ~16;\r\n        }\r\n        if (typeof (this.m_flagsForTesting) === \"number\") {\r\n            requestFlags = this.m_flagsForTesting;\r\n        }\r\n        return requestFlags;\r\n    };\r\n    ClientRequest.prototype.buildRequestMessageBodyAndRequestFlags = function () {\r\n        if (exports._internalConfig.enableEarlyDispose) {\r\n            ClientRequest._calculateLastUsedObjectPathIds(this.m_actions);\r\n        }\r\n        var requestFlags = 4 | 16;\r\n        var objectPaths = {};\r\n        for (var i in this.m_referencedObjectPaths) {\r\n            requestFlags = this.aggregrateRequestFlags(requestFlags, this.m_referencedObjectPaths[i].operationType, this.m_referencedObjectPaths[i].flags);\r\n            objectPaths[i] = this.m_referencedObjectPaths[i].objectPathInfo;\r\n        }\r\n        var actions = [];\r\n        var hasKeepReference = false;\r\n        for (var index = 0; index < this.m_actions.length; index++) {\r\n            var action = this.m_actions[index];\r\n            if (action.actionInfo.ActionType === 3 && action.actionInfo.Name === Constants.keepReference) {\r\n                hasKeepReference = true;\r\n            }\r\n            requestFlags = this.aggregrateRequestFlags(requestFlags, action.operationType, action.flags);\r\n            actions.push(action.actionInfo);\r\n        }\r\n        requestFlags = this.finallyNormalizeFlags(requestFlags);\r\n        var body = {\r\n            AutoKeepReference: this.m_context._autoCleanup && hasKeepReference,\r\n            Actions: actions,\r\n            ObjectPaths: objectPaths\r\n        };\r\n        return {\r\n            body: body,\r\n            flags: requestFlags\r\n        };\r\n    };\r\n    ClientRequest.prototype.processResponse = function (actionResults) {\r\n        if (actionResults) {\r\n            for (var i = 0; i < actionResults.length; i++) {\r\n                var actionResult = actionResults[i];\r\n                var handler = this.m_actionResultHandler[actionResult.ActionId];\r\n                if (handler) {\r\n                    handler._handleResult(actionResult.Value);\r\n                }\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype.invalidatePendingInvalidObjectPaths = function () {\r\n        for (var i in this.m_referencedObjectPaths) {\r\n            if (this.m_referencedObjectPaths[i].isInvalidAfterRequest) {\r\n                this.m_referencedObjectPaths[i].isValid = false;\r\n            }\r\n        }\r\n    };\r\n    ClientRequest.prototype._addPendingEventHandlerAction = function (eventHandlers, action) {\r\n        if (!this.m_pendingEventHandlerActions[eventHandlers._id]) {\r\n            this.m_pendingEventHandlerActions[eventHandlers._id] = [];\r\n            this.m_pendingProcessEventHandlers.push(eventHandlers);\r\n        }\r\n        this.m_pendingEventHandlerActions[eventHandlers._id].push(action);\r\n    };\r\n    Object.defineProperty(ClientRequest.prototype, \"_pendingProcessEventHandlers\", {\r\n        get: function () {\r\n            return this.m_pendingProcessEventHandlers;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientRequest.prototype._getPendingEventHandlerActions = function (eventHandlers) {\r\n        return this.m_pendingEventHandlerActions[eventHandlers._id];\r\n    };\r\n    ClientRequest.prototype._addPreSyncPromise = function (value) {\r\n        this.m_preSyncPromises.push(value);\r\n    };\r\n    Object.defineProperty(ClientRequest.prototype, \"_preSyncPromises\", {\r\n        get: function () {\r\n            return this.m_preSyncPromises;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequest.prototype, \"_actions\", {\r\n        get: function () {\r\n            return this.m_actions;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequest.prototype, \"_objectPaths\", {\r\n        get: function () {\r\n            return this.m_referencedObjectPaths;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientRequest.prototype._removeKeepReferenceAction = function (objectPathId) {\r\n        for (var i = this.m_actions.length - 1; i >= 0; i--) {\r\n            var actionInfo = this.m_actions[i].actionInfo;\r\n            if (actionInfo.ObjectPathId === objectPathId && actionInfo.ActionType === 3 && actionInfo.Name === Constants.keepReference) {\r\n                this.m_actions.splice(i);\r\n                break;\r\n            }\r\n        }\r\n    };\r\n    ClientRequest._updateLastUsedActionIdOfObjectPathId = function (lastUsedActionIdOfObjectPathId, objectPath, actionId) {\r\n        while (objectPath) {\r\n            if (lastUsedActionIdOfObjectPathId[objectPath.objectPathInfo.Id]) {\r\n                return;\r\n            }\r\n            lastUsedActionIdOfObjectPathId[objectPath.objectPathInfo.Id] = actionId;\r\n            var argumentObjectPaths = objectPath.argumentObjectPaths;\r\n            if (argumentObjectPaths) {\r\n                var argumentObjectPathsLength = argumentObjectPaths.length;\r\n                for (var i = 0; i < argumentObjectPathsLength; i++) {\r\n                    ClientRequest._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, argumentObjectPaths[i], actionId);\r\n                }\r\n            }\r\n            objectPath = objectPath.parentObjectPath;\r\n        }\r\n    };\r\n    ClientRequest._calculateLastUsedObjectPathIds = function (actions) {\r\n        var lastUsedActionIdOfObjectPathId = {};\r\n        var actionsLength = actions.length;\r\n        for (var index = actionsLength - 1; index >= 0; --index) {\r\n            var action = actions[index];\r\n            var actionId = action.actionInfo.Id;\r\n            if (action.referencedObjectPath) {\r\n                ClientRequest._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, action.referencedObjectPath, actionId);\r\n            }\r\n            var referencedObjectPaths = action.referencedArgumentObjectPaths;\r\n            if (referencedObjectPaths) {\r\n                var referencedObjectPathsLength = referencedObjectPaths.length;\r\n                for (var refIndex = 0; refIndex < referencedObjectPathsLength; refIndex++) {\r\n                    ClientRequest._updateLastUsedActionIdOfObjectPathId(lastUsedActionIdOfObjectPathId, referencedObjectPaths[refIndex], actionId);\r\n                }\r\n            }\r\n        }\r\n        var lastUsedObjectPathIdsOfAction = {};\r\n        for (var key in lastUsedActionIdOfObjectPathId) {\r\n            var actionId = lastUsedActionIdOfObjectPathId[key];\r\n            var objectPathIds = lastUsedObjectPathIdsOfAction[actionId];\r\n            if (!objectPathIds) {\r\n                objectPathIds = [];\r\n                lastUsedObjectPathIdsOfAction[actionId] = objectPathIds;\r\n            }\r\n            objectPathIds.push(parseInt(key));\r\n        }\r\n        for (var index = 0; index < actionsLength; index++) {\r\n            var action = actions[index];\r\n            var lastUsedObjectPathIds = lastUsedObjectPathIdsOfAction[action.actionInfo.Id];\r\n            if (lastUsedObjectPathIds && lastUsedObjectPathIds.length > 0) {\r\n                action.actionInfo.L = lastUsedObjectPathIds;\r\n            }\r\n            else if (action.actionInfo.L) {\r\n                delete action.actionInfo.L;\r\n            }\r\n        }\r\n    };\r\n    return ClientRequest;\r\n}());\r\nexports.ClientRequest = ClientRequest;\r\nexports._internalConfig = {\r\n    showDisposeInfoInDebugInfo: false,\r\n    showInternalApiInDebugInfo: false,\r\n    enableEarlyDispose: true,\r\n    alwaysPolyfillClientObjectUpdateMethod: false,\r\n    alwaysPolyfillClientObjectRetrieveMethod: false,\r\n    enableConcurrentFlag: true,\r\n    enableUndoableFlag: true,\r\n};\r\nexports.config = {\r\n    extendedErrorLogging: false\r\n};\r\nvar SessionBase = (function () {\r\n    function SessionBase() {\r\n    }\r\n    SessionBase.prototype._resolveRequestUrlAndHeaderInfo = function () {\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    SessionBase.prototype._createRequestExecutorOrNull = function () {\r\n        return null;\r\n    };\r\n    Object.defineProperty(SessionBase.prototype, \"eventRegistration\", {\r\n        get: function () {\r\n            return _Internal.officeJsEventRegistration;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return SessionBase;\r\n}());\r\nexports.SessionBase = SessionBase;\r\nvar ClientRequestContext = (function () {\r\n    function ClientRequestContext(url) {\r\n        this.m_customRequestHeaders = {};\r\n        this.m_batchMode = 0;\r\n        this._onRunFinishedNotifiers = [];\r\n        this.m_nextId = 0;\r\n        if (ClientRequestContext._overrideSession) {\r\n            this.m_requestUrlAndHeaderInfoResolver = ClientRequestContext._overrideSession;\r\n        }\r\n        else {\r\n            if (Utility.isNullOrUndefined(url) || typeof (url) === \"string\" && url.length === 0) {\r\n                url = ClientRequestContext.defaultRequestUrlAndHeaders;\r\n                if (!url) {\r\n                    url = { url: Constants.localDocument, headers: {} };\r\n                }\r\n            }\r\n            if (typeof (url) === \"string\") {\r\n                this.m_requestUrlAndHeaderInfo = { url: url, headers: {} };\r\n            }\r\n            else if (ClientRequestContext.isRequestUrlAndHeaderInfoResolver(url)) {\r\n                this.m_requestUrlAndHeaderInfoResolver = url;\r\n            }\r\n            else if (ClientRequestContext.isRequestUrlAndHeaderInfo(url)) {\r\n                var requestInfo = url;\r\n                this.m_requestUrlAndHeaderInfo = { url: requestInfo.url, headers: {} };\r\n                Utility._copyHeaders(requestInfo.headers, this.m_requestUrlAndHeaderInfo.headers);\r\n            }\r\n            else {\r\n                throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"url\" });\r\n            }\r\n        }\r\n        if (this.m_requestUrlAndHeaderInfoResolver instanceof SessionBase) {\r\n            this.m_session = this.m_requestUrlAndHeaderInfoResolver;\r\n        }\r\n        this._processingResult = false;\r\n        this._customData = Constants.iterativeExecutor;\r\n        this.sync = this.sync.bind(this);\r\n    }\r\n    Object.defineProperty(ClientRequestContext.prototype, \"session\", {\r\n        get: function () {\r\n            return this.m_session;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"eventRegistration\", {\r\n        get: function () {\r\n            if (this.m_session) {\r\n                return this.m_session.eventRegistration;\r\n            }\r\n            return _Internal.officeJsEventRegistration;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"_url\", {\r\n        get: function () {\r\n            if (this.m_requestUrlAndHeaderInfo) {\r\n                return this.m_requestUrlAndHeaderInfo.url;\r\n            }\r\n            return null;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"_pendingRequest\", {\r\n        get: function () {\r\n            if (this.m_pendingRequest == null) {\r\n                this.m_pendingRequest = new ClientRequest(this);\r\n            }\r\n            return this.m_pendingRequest;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"debugInfo\", {\r\n        get: function () {\r\n            var prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, this._pendingRequest._objectPaths, this._pendingRequest._actions, exports._internalConfig.showDisposeInfoInDebugInfo);\r\n            var statements = prettyPrinter.process();\r\n            return { pendingStatements: statements };\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"trackedObjects\", {\r\n        get: function () {\r\n            if (!this.m_trackedObjects) {\r\n                this.m_trackedObjects = new TrackedObjects(this);\r\n            }\r\n            return this.m_trackedObjects;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"requestHeaders\", {\r\n        get: function () {\r\n            return this.m_customRequestHeaders;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ClientRequestContext.prototype, \"batchMode\", {\r\n        get: function () {\r\n            return this.m_batchMode;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientRequestContext.prototype.ensureInProgressBatchIfBatchMode = function () {\r\n        if (this.m_batchMode === 1 && !this.m_explicitBatchInProgress) {\r\n            throw Utility.createRuntimeError(ErrorCodes.generalException, Utility._getResourceString(ResourceStrings.notInsideBatch), null);\r\n        }\r\n    };\r\n    ClientRequestContext.prototype.load = function (clientObj, option) {\r\n        Utility.validateContext(this, clientObj);\r\n        var queryOption = ClientRequestContext._parseQueryOption(option);\r\n        var action = ActionFactory.createQueryAction(this, clientObj, queryOption);\r\n        this._pendingRequest.addActionResultHandler(action, clientObj);\r\n    };\r\n    ClientRequestContext.isLoadOption = function (loadOption) {\r\n        if (!Utility.isUndefined(loadOption.select) && (typeof (loadOption.select) === \"string\" || Array.isArray(loadOption.select)))\r\n            return true;\r\n        if (!Utility.isUndefined(loadOption.expand) && (typeof (loadOption.expand) === \"string\" || Array.isArray(loadOption.expand)))\r\n            return true;\r\n        if (!Utility.isUndefined(loadOption.top) && typeof (loadOption.top) === \"number\")\r\n            return true;\r\n        if (!Utility.isUndefined(loadOption.skip) && typeof (loadOption.skip) === \"number\")\r\n            return true;\r\n        for (var i in loadOption) {\r\n            return false;\r\n        }\r\n        return true;\r\n    };\r\n    ClientRequestContext.parseStrictLoadOption = function (option) {\r\n        var ret = { Select: [] };\r\n        ClientRequestContext.parseStrictLoadOptionHelper(ret, \"\", \"option\", option);\r\n        return ret;\r\n    };\r\n    ClientRequestContext.combineQueryPath = function (pathPrefix, key, separator) {\r\n        if (pathPrefix.length === 0) {\r\n            return key;\r\n        }\r\n        else {\r\n            return pathPrefix + separator + key;\r\n        }\r\n    };\r\n    ClientRequestContext.parseStrictLoadOptionHelper = function (queryInfo, pathPrefix, argPrefix, option) {\r\n        for (var key in option) {\r\n            var value = option[key];\r\n            if (key === \"$all\") {\r\n                if (typeof (value) !== \"boolean\") {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: ClientRequestContext.combineQueryPath(argPrefix, key, \".\") });\r\n                }\r\n                if (value) {\r\n                    queryInfo.Select.push(ClientRequestContext.combineQueryPath(pathPrefix, \"*\", \"/\"));\r\n                }\r\n            }\r\n            else if (key === \"$top\") {\r\n                if (typeof (value) !== \"number\" || pathPrefix.length > 0) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: ClientRequestContext.combineQueryPath(argPrefix, key, \".\") });\r\n                }\r\n                queryInfo.Top = value;\r\n            }\r\n            else if (key === \"$skip\") {\r\n                if (typeof (value) !== \"number\" || pathPrefix.length > 0) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: ClientRequestContext.combineQueryPath(argPrefix, key, \".\") });\r\n                }\r\n                queryInfo.Skip = value;\r\n            }\r\n            else {\r\n                if (typeof (value) === \"boolean\") {\r\n                    if (value) {\r\n                        queryInfo.Select.push(ClientRequestContext.combineQueryPath(pathPrefix, key, \"/\"));\r\n                    }\r\n                }\r\n                else if (typeof (value) === \"object\") {\r\n                    ClientRequestContext.parseStrictLoadOptionHelper(queryInfo, ClientRequestContext.combineQueryPath(pathPrefix, key, \"/\"), ClientRequestContext.combineQueryPath(argPrefix, key, \".\"), value);\r\n                }\r\n                else {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: ClientRequestContext.combineQueryPath(argPrefix, key, \".\") });\r\n                }\r\n            }\r\n        }\r\n    };\r\n    ClientRequestContext._parseQueryOption = function (option) {\r\n        var queryOption = {};\r\n        if (typeof (option) == \"string\") {\r\n            var select = option;\r\n            queryOption.Select = Utility._parseSelectExpand(select);\r\n        }\r\n        else if (Array.isArray(option)) {\r\n            queryOption.Select = option;\r\n        }\r\n        else if (typeof (option) === \"object\") {\r\n            var loadOption = option;\r\n            if (ClientRequestContext.isLoadOption(loadOption)) {\r\n                if (typeof (loadOption.select) == \"string\") {\r\n                    queryOption.Select = Utility._parseSelectExpand(loadOption.select);\r\n                }\r\n                else if (Array.isArray(loadOption.select)) {\r\n                    queryOption.Select = loadOption.select;\r\n                }\r\n                else if (!Utility.isNullOrUndefined(loadOption.select)) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"option.select\" });\r\n                }\r\n                if (typeof (loadOption.expand) == \"string\") {\r\n                    queryOption.Expand = Utility._parseSelectExpand(loadOption.expand);\r\n                }\r\n                else if (Array.isArray(loadOption.expand)) {\r\n                    queryOption.Expand = loadOption.expand;\r\n                }\r\n                else if (!Utility.isNullOrUndefined(loadOption.expand)) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"option.expand\" });\r\n                }\r\n                if (typeof (loadOption.top) === \"number\") {\r\n                    queryOption.Top = loadOption.top;\r\n                }\r\n                else if (!Utility.isNullOrUndefined(loadOption.top)) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"option.top\" });\r\n                }\r\n                if (typeof (loadOption.skip) === \"number\") {\r\n                    queryOption.Skip = loadOption.skip;\r\n                }\r\n                else if (!Utility.isNullOrUndefined(loadOption.skip)) {\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"option.skip\" });\r\n                }\r\n            }\r\n            else {\r\n                queryOption = ClientRequestContext.parseStrictLoadOption(option);\r\n            }\r\n        }\r\n        else if (!Utility.isNullOrUndefined(option)) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"option\" });\r\n        }\r\n        return queryOption;\r\n    };\r\n    ClientRequestContext.prototype.loadRecursive = function (clientObj, options, maxDepth) {\r\n        if (!Utility.isPlainJsonObject(options)) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"options\" });\r\n        }\r\n        var quries = {};\r\n        for (var key in options) {\r\n            quries[key] = ClientRequestContext._parseQueryOption(options[key]);\r\n        }\r\n        var action = ActionFactory.createRecursiveQueryAction(this, clientObj, { Queries: quries, MaxDepth: maxDepth });\r\n        this._pendingRequest.addActionResultHandler(action, clientObj);\r\n    };\r\n    ClientRequestContext.prototype.trace = function (message) {\r\n        ActionFactory.createTraceAction(this, message, true);\r\n    };\r\n    ClientRequestContext.prototype._processOfficeJsErrorResponse = function (officeJsErrorCode, response) {\r\n    };\r\n    ClientRequestContext.prototype.ensureRequestUrlAndHeaderInfo = function () {\r\n        var _this = this;\r\n        return Utility._createPromiseFromResult(null)\r\n            .then(function () {\r\n            if (!_this.m_requestUrlAndHeaderInfo) {\r\n                return _this.m_requestUrlAndHeaderInfoResolver._resolveRequestUrlAndHeaderInfo()\r\n                    .then(function (value) {\r\n                    _this.m_requestUrlAndHeaderInfo = value;\r\n                    if (!_this.m_requestUrlAndHeaderInfo) {\r\n                        _this.m_requestUrlAndHeaderInfo = { url: Constants.localDocument, headers: {} };\r\n                    }\r\n                    if (Utility.isNullOrEmptyString(_this.m_requestUrlAndHeaderInfo.url)) {\r\n                        _this.m_requestUrlAndHeaderInfo.url = Constants.localDocument;\r\n                    }\r\n                    if (!_this.m_requestUrlAndHeaderInfo.headers) {\r\n                        _this.m_requestUrlAndHeaderInfo.headers = {};\r\n                    }\r\n                    if (typeof (_this.m_requestUrlAndHeaderInfoResolver._createRequestExecutorOrNull) === \"function\") {\r\n                        var executor = _this.m_requestUrlAndHeaderInfoResolver._createRequestExecutorOrNull();\r\n                        if (executor) {\r\n                            _this._requestExecutor = executor;\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    };\r\n    ClientRequestContext.prototype.syncPrivateMain = function () {\r\n        var _this = this;\r\n        return this.ensureRequestUrlAndHeaderInfo()\r\n            .then(function () {\r\n            var req = _this._pendingRequest;\r\n            _this.m_pendingRequest = null;\r\n            return _this.processPreSyncPromises(req)\r\n                .then(function () { return _this.syncPrivate(req); });\r\n        });\r\n    };\r\n    ClientRequestContext.prototype.syncPrivate = function (req) {\r\n        var _this = this;\r\n        if (!req.hasActions) {\r\n            return this.processPendingEventHandlers(req);\r\n        }\r\n        var _a = req.buildRequestMessageBodyAndRequestFlags(), msgBody = _a.body, requestFlags = _a.flags;\r\n        if (!this._requestExecutor) {\r\n            if (Utility._isLocalDocumentUrl(this.m_requestUrlAndHeaderInfo.url)) {\r\n                this._requestExecutor = new OfficeJsRequestExecutor(this);\r\n            }\r\n            else {\r\n                this._requestExecutor = new HttpRequestExecutor();\r\n            }\r\n        }\r\n        var requestExecutor = this._requestExecutor;\r\n        var headers = {};\r\n        Utility._copyHeaders(this.m_requestUrlAndHeaderInfo.headers, headers);\r\n        Utility._copyHeaders(this.m_customRequestHeaders, headers);\r\n        var requestExecutorRequestMessage = {\r\n            Url: this.m_requestUrlAndHeaderInfo.url,\r\n            Headers: headers,\r\n            Body: msgBody\r\n        };\r\n        req.invalidatePendingInvalidObjectPaths();\r\n        var errorFromResponse = null;\r\n        var errorFromProcessEventHandlers = null;\r\n        this._lastSyncStart = (typeof performance === \"undefined\") ? 0 : performance.now();\r\n        this._lastRequestFlags = requestFlags;\r\n        return requestExecutor.executeAsync(this._customData, requestFlags, requestExecutorRequestMessage)\r\n            .then(function (response) {\r\n            _this._lastSyncEnd = (typeof performance === \"undefined\") ? 0 : performance.now();\r\n            errorFromResponse = _this.processRequestExecutorResponseMessage(req, response);\r\n            return _this.processPendingEventHandlers(req)\r\n                .catch(function (ex) {\r\n                Utility.log(\"Error in processPendingEventHandlers\");\r\n                Utility.log(JSON.stringify(ex));\r\n                errorFromProcessEventHandlers = ex;\r\n            });\r\n        })\r\n            .then(function () {\r\n            if (errorFromResponse) {\r\n                Utility.log(\"Throw error from response: \" + JSON.stringify(errorFromResponse));\r\n                throw errorFromResponse;\r\n            }\r\n            if (errorFromProcessEventHandlers) {\r\n                Utility.log(\"Throw error from ProcessEventHandler: \" + JSON.stringify(errorFromProcessEventHandlers));\r\n                var transformedError = null;\r\n                if (errorFromProcessEventHandlers instanceof _Internal.RuntimeError) {\r\n                    transformedError = errorFromProcessEventHandlers;\r\n                    transformedError.traceMessages = req._responseTraceMessages;\r\n                }\r\n                else {\r\n                    var message = null;\r\n                    if (typeof (errorFromProcessEventHandlers) === \"string\") {\r\n                        message = errorFromProcessEventHandlers;\r\n                    }\r\n                    else {\r\n                        message = errorFromProcessEventHandlers.message;\r\n                    }\r\n                    if (Utility.isNullOrEmptyString(message)) {\r\n                        message = Utility._getResourceString(ResourceStrings.cannotRegisterEvent);\r\n                    }\r\n                    transformedError = new _Internal.RuntimeError({\r\n                        code: ErrorCodes.cannotRegisterEvent,\r\n                        message: message,\r\n                        traceMessages: req._responseTraceMessages\r\n                    });\r\n                }\r\n                throw transformedError;\r\n            }\r\n        });\r\n    };\r\n    ClientRequestContext.prototype.processRequestExecutorResponseMessage = function (req, response) {\r\n        if (response.Body && response.Body.TraceIds) {\r\n            req._setResponseTraceIds(response.Body.TraceIds);\r\n        }\r\n        var traceMessages = req._responseTraceMessages;\r\n        var errorStatementInfo = null;\r\n        if (response.Body) {\r\n            if (response.Body.Error &&\r\n                response.Body.Error.ActionIndex >= 0) {\r\n                var prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, req._objectPaths, req._actions, false, true);\r\n                var debugInfoStatementInfo = prettyPrinter.processForDebugStatementInfo(response.Body.Error.ActionIndex);\r\n                errorStatementInfo = {\r\n                    statement: debugInfoStatementInfo.statement,\r\n                    surroundingStatements: debugInfoStatementInfo.surroundingStatements,\r\n                    fullStatements: [\"Please enable config.extendedErrorLogging to see full statements.\"]\r\n                };\r\n                if (exports.config.extendedErrorLogging) {\r\n                    prettyPrinter = new RequestPrettyPrinter(this._rootObjectPropertyName, req._objectPaths, req._actions, false, false);\r\n                    errorStatementInfo.fullStatements = prettyPrinter.process();\r\n                }\r\n            }\r\n            var actionResults = null;\r\n            if (response.Body.Results) {\r\n                actionResults = response.Body.Results;\r\n            }\r\n            else if (response.Body.ProcessedResults && response.Body.ProcessedResults.Results) {\r\n                actionResults = response.Body.ProcessedResults.Results;\r\n            }\r\n            if (actionResults) {\r\n                this._processingResult = true;\r\n                try {\r\n                    req.processResponse(actionResults);\r\n                }\r\n                finally {\r\n                    this._processingResult = false;\r\n                }\r\n            }\r\n        }\r\n        if (!Utility.isNullOrEmptyString(response.ErrorCode)) {\r\n            return new _Internal.RuntimeError({\r\n                code: response.ErrorCode,\r\n                message: response.ErrorMessage,\r\n                traceMessages: traceMessages\r\n            });\r\n        }\r\n        else if (response.Body && response.Body.Error) {\r\n            var debugInfo = {\r\n                errorLocation: response.Body.Error.Location\r\n            };\r\n            if (errorStatementInfo) {\r\n                debugInfo.statement = errorStatementInfo.statement;\r\n                debugInfo.surroundingStatements = errorStatementInfo.surroundingStatements;\r\n                debugInfo.fullStatements = errorStatementInfo.fullStatements;\r\n            }\r\n            return new _Internal.RuntimeError({\r\n                code: response.Body.Error.Code,\r\n                message: response.Body.Error.Message,\r\n                traceMessages: traceMessages,\r\n                debugInfo: debugInfo\r\n            });\r\n        }\r\n        return null;\r\n    };\r\n    ClientRequestContext.prototype.processPendingEventHandlers = function (req) {\r\n        var ret = Utility._createPromiseFromResult(null);\r\n        for (var i = 0; i < req._pendingProcessEventHandlers.length; i++) {\r\n            var eventHandlers = req._pendingProcessEventHandlers[i];\r\n            ret = ret.then(this.createProcessOneEventHandlersFunc(eventHandlers, req));\r\n        }\r\n        return ret;\r\n    };\r\n    ClientRequestContext.prototype.createProcessOneEventHandlersFunc = function (eventHandlers, req) {\r\n        return function () { return eventHandlers._processRegistration(req); };\r\n    };\r\n    ClientRequestContext.prototype.processPreSyncPromises = function (req) {\r\n        var ret = Utility._createPromiseFromResult(null);\r\n        for (var i = 0; i < req._preSyncPromises.length; i++) {\r\n            var p = req._preSyncPromises[i];\r\n            ret = ret.then(this.createProcessOneProSyncFunc(p));\r\n        }\r\n        return ret;\r\n    };\r\n    ClientRequestContext.prototype.createProcessOneProSyncFunc = function (p) {\r\n        return function () { return p; };\r\n    };\r\n    ClientRequestContext.prototype.sync = function (passThroughValue) {\r\n        return this.syncPrivateMain().then(function () { return passThroughValue; });\r\n    };\r\n    ClientRequestContext.prototype.batch = function (batchBody) {\r\n        var _this = this;\r\n        if (this.m_batchMode !== 1) {\r\n            return CoreUtility.Promise.reject(Utility.createRuntimeError(ErrorCodes.generalException, null, null));\r\n        }\r\n        if (this.m_explicitBatchInProgress) {\r\n            return CoreUtility.Promise.reject(Utility.createRuntimeError(ErrorCodes.generalException, Utility._getResourceString(ResourceStrings.pendingBatchInProgress), null));\r\n        }\r\n        if (Utility.isNullOrUndefined(batchBody)) {\r\n            return Utility._createPromiseFromResult(null);\r\n        }\r\n        this.m_explicitBatchInProgress = true;\r\n        var previousRequest = this.m_pendingRequest;\r\n        this.m_pendingRequest = new ClientRequest(this);\r\n        var batchBodyResult;\r\n        try {\r\n            batchBodyResult = batchBody(this._rootObject, this);\r\n        }\r\n        catch (ex) {\r\n            this.m_explicitBatchInProgress = false;\r\n            this.m_pendingRequest = previousRequest;\r\n            return CoreUtility.Promise.reject(ex);\r\n        }\r\n        var request;\r\n        var batchBodyResultPromise;\r\n        if (typeof (batchBodyResult) === \"object\" &&\r\n            batchBodyResult &&\r\n            typeof (batchBodyResult.then) === \"function\") {\r\n            batchBodyResultPromise = Utility._createPromiseFromResult(null)\r\n                .then(function () {\r\n                return batchBodyResult;\r\n            })\r\n                .then(function (result) {\r\n                _this.m_explicitBatchInProgress = false;\r\n                request = _this.m_pendingRequest;\r\n                _this.m_pendingRequest = previousRequest;\r\n                return result;\r\n            })\r\n                .catch(function (ex) {\r\n                _this.m_explicitBatchInProgress = false;\r\n                request = _this.m_pendingRequest;\r\n                _this.m_pendingRequest = previousRequest;\r\n                return CoreUtility.Promise.reject(ex);\r\n            });\r\n        }\r\n        else {\r\n            this.m_explicitBatchInProgress = false;\r\n            request = this.m_pendingRequest;\r\n            this.m_pendingRequest = previousRequest;\r\n            batchBodyResultPromise = Utility._createPromiseFromResult(batchBodyResult);\r\n        }\r\n        return batchBodyResultPromise\r\n            .then(function (result) {\r\n            return _this.ensureRequestUrlAndHeaderInfo()\r\n                .then(function () {\r\n                return _this.syncPrivate(request);\r\n            })\r\n                .then(function () {\r\n                return result;\r\n            });\r\n        });\r\n    };\r\n    ClientRequestContext._run = function (ctxInitializer, runBody, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {\r\n        if (numCleanupAttempts === void 0) { numCleanupAttempts = 3; }\r\n        if (retryDelay === void 0) { retryDelay = 5000; }\r\n        return ClientRequestContext._runCommon(\"run\", null, ctxInitializer, 0, runBody, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure);\r\n    };\r\n    ClientRequestContext.isRequestUrlAndHeaderInfo = function (value) {\r\n        return (typeof (value) === \"object\" &&\r\n            value !== null &&\r\n            Object.getPrototypeOf(value) === Object.getPrototypeOf({}) &&\r\n            !Utility.isNullOrUndefined(value.url));\r\n    };\r\n    ClientRequestContext.isRequestUrlAndHeaderInfoResolver = function (value) {\r\n        return (typeof (value) === \"object\" &&\r\n            value !== null &&\r\n            typeof (value._resolveRequestUrlAndHeaderInfo) === \"function\");\r\n    };\r\n    ClientRequestContext._runBatch = function (functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {\r\n        if (numCleanupAttempts === void 0) { numCleanupAttempts = 3; }\r\n        if (retryDelay === void 0) { retryDelay = 5000; }\r\n        return ClientRequestContext._runBatchCommon(0, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure);\r\n    };\r\n    ClientRequestContext._runExplicitBatch = function (functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {\r\n        if (numCleanupAttempts === void 0) { numCleanupAttempts = 3; }\r\n        if (retryDelay === void 0) { retryDelay = 5000; }\r\n        return ClientRequestContext._runBatchCommon(1, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure);\r\n    };\r\n    ClientRequestContext._runBatchCommon = function (batchMode, functionName, receivedRunArgs, ctxInitializer, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {\r\n        if (numCleanupAttempts === void 0) { numCleanupAttempts = 3; }\r\n        if (retryDelay === void 0) { retryDelay = 5000; }\r\n        var ctxRetriever;\r\n        var batch;\r\n        var requestInfo = null;\r\n        var argOffset = 0;\r\n        if (receivedRunArgs.length > 0 &&\r\n            (typeof (receivedRunArgs[0]) === \"string\" ||\r\n                ClientRequestContext.isRequestUrlAndHeaderInfo(receivedRunArgs[0]) ||\r\n                ClientRequestContext.isRequestUrlAndHeaderInfoResolver(receivedRunArgs[0]))) {\r\n            requestInfo = receivedRunArgs[0];\r\n            argOffset = 1;\r\n        }\r\n        if (receivedRunArgs.length == argOffset + 1) {\r\n            ctxRetriever = ctxInitializer;\r\n            batch = receivedRunArgs[argOffset + 0];\r\n        }\r\n        else if (receivedRunArgs.length == argOffset + 2) {\r\n            if (Utility.isNullOrUndefined(receivedRunArgs[argOffset + 0])) {\r\n                ctxRetriever = ctxInitializer;\r\n            }\r\n            else if (receivedRunArgs[argOffset + 0] instanceof ClientObject) {\r\n                ctxRetriever = function () { return receivedRunArgs[argOffset + 0].context; };\r\n            }\r\n            else if (receivedRunArgs[argOffset + 0] instanceof ClientRequestContext) {\r\n                ctxRetriever = function () { return receivedRunArgs[argOffset + 0]; };\r\n            }\r\n            else if (Array.isArray(receivedRunArgs[argOffset + 0])) {\r\n                var array = receivedRunArgs[argOffset + 0];\r\n                if (array.length == 0) {\r\n                    return ClientRequestContext.createErrorPromise(functionName);\r\n                }\r\n                for (var i = 0; i < array.length; i++) {\r\n                    if (!(array[i] instanceof ClientObject)) {\r\n                        return ClientRequestContext.createErrorPromise(functionName);\r\n                    }\r\n                    if (array[i].context != array[0].context) {\r\n                        return ClientRequestContext.createErrorPromise(functionName, ResourceStrings.invalidRequestContext);\r\n                    }\r\n                }\r\n                ctxRetriever = function () { return array[0].context; };\r\n            }\r\n            else {\r\n                return ClientRequestContext.createErrorPromise(functionName);\r\n            }\r\n            batch = receivedRunArgs[argOffset + 1];\r\n        }\r\n        else {\r\n            return ClientRequestContext.createErrorPromise(functionName);\r\n        }\r\n        return ClientRequestContext._runCommon(functionName, requestInfo, ctxRetriever, batchMode, batch, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure);\r\n    };\r\n    ClientRequestContext.createErrorPromise = function (functionName, code) {\r\n        if (code === void 0) { code = ResourceStrings.invalidArgument; }\r\n        return CoreUtility.Promise.reject(Utility.createRuntimeError(code, Utility._getResourceString(code), functionName));\r\n    };\r\n    ClientRequestContext._runCommon = function (functionName, requestInfo, ctxRetriever, batchMode, runBody, numCleanupAttempts, retryDelay, onCleanupSuccess, onCleanupFailure) {\r\n        if (ClientRequestContext._overrideSession) {\r\n            requestInfo = ClientRequestContext._overrideSession;\r\n        }\r\n        var starterPromise = new CoreUtility.Promise(function (resolve, reject) { resolve(); });\r\n        var ctx;\r\n        var succeeded = false;\r\n        var resultOrError;\r\n        var previousBatchMode;\r\n        return starterPromise\r\n            .then(function () {\r\n            ctx = ctxRetriever(requestInfo);\r\n            if (ctx._autoCleanup) {\r\n                return new CoreUtility.Promise(function (resolve, reject) {\r\n                    ctx._onRunFinishedNotifiers.push(function () {\r\n                        ctx._autoCleanup = true;\r\n                        resolve();\r\n                    });\r\n                });\r\n            }\r\n            else {\r\n                ctx._autoCleanup = true;\r\n            }\r\n        })\r\n            .then(function () {\r\n            if (typeof runBody !== 'function') {\r\n                return ClientRequestContext.createErrorPromise(functionName);\r\n            }\r\n            previousBatchMode = ctx.m_batchMode;\r\n            ctx.m_batchMode = batchMode;\r\n            var runBodyResult;\r\n            if (batchMode == 1) {\r\n                runBodyResult = runBody(ctx.batch.bind(ctx));\r\n            }\r\n            else {\r\n                runBodyResult = runBody(ctx);\r\n            }\r\n            if (Utility.isNullOrUndefined(runBodyResult) || (typeof runBodyResult.then !== 'function')) {\r\n                Utility.throwError(ResourceStrings.runMustReturnPromise);\r\n            }\r\n            return runBodyResult;\r\n        })\r\n            .then(function (runBodyResult) {\r\n            if (batchMode === 1) {\r\n                return runBodyResult;\r\n            }\r\n            else {\r\n                return ctx.sync(runBodyResult);\r\n            }\r\n        })\r\n            .then(function (result) {\r\n            succeeded = true;\r\n            resultOrError = result;\r\n        })\r\n            .catch(function (error) {\r\n            resultOrError = error;\r\n        })\r\n            .then(function () {\r\n            var itemsToRemove = ctx.trackedObjects._retrieveAndClearAutoCleanupList();\r\n            ctx._autoCleanup = false;\r\n            ctx.m_batchMode = previousBatchMode;\r\n            for (var key in itemsToRemove) {\r\n                itemsToRemove[key]._objectPath.isValid = false;\r\n            }\r\n            var cleanupCounter = 0;\r\n            if (Utility._synchronousCleanup || ClientRequestContext.isRequestUrlAndHeaderInfoResolver(requestInfo)) {\r\n                return attemptCleanup();\r\n            }\r\n            else {\r\n                attemptCleanup();\r\n            }\r\n            function attemptCleanup() {\r\n                cleanupCounter++;\r\n                var savedPendingRequest = ctx.m_pendingRequest;\r\n                var savedBatchMode = ctx.m_batchMode;\r\n                var request = new ClientRequest(ctx);\r\n                ctx.m_pendingRequest = request;\r\n                ctx.m_batchMode = 0;\r\n                try {\r\n                    for (var key in itemsToRemove) {\r\n                        ctx.trackedObjects.remove(itemsToRemove[key]);\r\n                    }\r\n                }\r\n                finally {\r\n                    ctx.m_batchMode = savedBatchMode;\r\n                    ctx.m_pendingRequest = savedPendingRequest;\r\n                }\r\n                return ctx.syncPrivate(request)\r\n                    .then(function () {\r\n                    if (onCleanupSuccess) {\r\n                        onCleanupSuccess(cleanupCounter);\r\n                    }\r\n                })\r\n                    .catch(function () {\r\n                    if (onCleanupFailure) {\r\n                        onCleanupFailure(cleanupCounter);\r\n                    }\r\n                    if (cleanupCounter < numCleanupAttempts) {\r\n                        setTimeout(function () {\r\n                            attemptCleanup();\r\n                        }, retryDelay);\r\n                    }\r\n                });\r\n            }\r\n        })\r\n            .then(function () {\r\n            if (ctx._onRunFinishedNotifiers && ctx._onRunFinishedNotifiers.length > 0) {\r\n                var func = ctx._onRunFinishedNotifiers.shift();\r\n                func();\r\n            }\r\n            if (succeeded) {\r\n                return resultOrError;\r\n            }\r\n            else {\r\n                throw resultOrError;\r\n            }\r\n        });\r\n    };\r\n    ClientRequestContext.prototype._nextId = function () {\r\n        return ++this.m_nextId;\r\n    };\r\n    return ClientRequestContext;\r\n}());\r\nexports.ClientRequestContext = ClientRequestContext;\r\nvar ClientResult = (function () {\r\n    function ClientResult(type) {\r\n        this.m_type = type;\r\n    }\r\n    Object.defineProperty(ClientResult.prototype, \"value\", {\r\n        get: function () {\r\n            if (!this.m_isLoaded) {\r\n                throw new _Internal.RuntimeError({\r\n                    code: ErrorCodes.valueNotLoaded,\r\n                    message: Utility._getResourceString(ResourceStrings.valueNotLoaded),\r\n                    debugInfo: {\r\n                        errorLocation: \"clientResult.value\"\r\n                    }\r\n                });\r\n            }\r\n            return this.m_value;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ClientResult.prototype._handleResult = function (value) {\r\n        this.m_isLoaded = true;\r\n        if (typeof (value) === \"object\" && value && value._IsNull) {\r\n            return;\r\n        }\r\n        if (this.m_type === 1) {\r\n            this.m_value = Utility.adjustToDateTime(value);\r\n        }\r\n        else {\r\n            this.m_value = value;\r\n        }\r\n    };\r\n    return ClientResult;\r\n}());\r\nexports.ClientResult = ClientResult;\r\nvar RetrieveResultImpl = (function () {\r\n    function RetrieveResultImpl(m_proxy, m_shouldPolyfill) {\r\n        this.m_proxy = m_proxy;\r\n        this.m_shouldPolyfill = m_shouldPolyfill;\r\n        var scalarPropertyNames = m_proxy[Constants.scalarPropertyNames];\r\n        var navigationPropertyNames = m_proxy[Constants.navigationPropertyNames];\r\n        var typeName = m_proxy[Constants.className];\r\n        var isCollection = m_proxy[Constants.isCollection];\r\n        if (scalarPropertyNames) {\r\n            for (var i = 0; i < scalarPropertyNames.length; i++) {\r\n                Utility.definePropertyThrowUnloadedException(this, typeName, scalarPropertyNames[i]);\r\n            }\r\n        }\r\n        if (navigationPropertyNames) {\r\n            for (var i = 0; i < navigationPropertyNames.length; i++) {\r\n                Utility.definePropertyThrowUnloadedException(this, typeName, navigationPropertyNames[i]);\r\n            }\r\n        }\r\n        if (isCollection) {\r\n            Utility.definePropertyThrowUnloadedException(this, typeName, Constants.itemsLowerCase);\r\n        }\r\n    }\r\n    Object.defineProperty(RetrieveResultImpl.prototype, \"$proxy\", {\r\n        get: function () {\r\n            return this.m_proxy;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(RetrieveResultImpl.prototype, \"$isNullObject\", {\r\n        get: function () {\r\n            if (!this.m_isLoaded) {\r\n                throw new _Internal.RuntimeError({\r\n                    code: ErrorCodes.valueNotLoaded,\r\n                    message: Utility._getResourceString(ResourceStrings.valueNotLoaded),\r\n                    debugInfo: {\r\n                        errorLocation: \"retrieveResult.$isNullObject\"\r\n                    }\r\n                });\r\n            }\r\n            return this.m_isNullObject;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    RetrieveResultImpl.prototype.toJSON = function () {\r\n        if (!this.m_isLoaded) {\r\n            return undefined;\r\n        }\r\n        if (this.m_isNullObject) {\r\n            return null;\r\n        }\r\n        if (Utility.isUndefined(this.m_json)) {\r\n            this.m_json = this.purifyJson(this.m_value);\r\n        }\r\n        return this.m_json;\r\n    };\r\n    RetrieveResultImpl.prototype.toString = function () {\r\n        return JSON.stringify(this.toJSON());\r\n    };\r\n    RetrieveResultImpl.prototype._handleResult = function (value) {\r\n        this.m_isLoaded = true;\r\n        if (value === null || typeof (value) === \"object\" && value && value._IsNull) {\r\n            this.m_isNullObject = true;\r\n            value = null;\r\n        }\r\n        else {\r\n            this.m_isNullObject = false;\r\n        }\r\n        if (this.m_shouldPolyfill) {\r\n            value = this.changePropertyNameToCamelLowerCase(value);\r\n        }\r\n        this.m_value = value;\r\n        this.m_proxy._handleRetrieveResult(value, this);\r\n    };\r\n    RetrieveResultImpl.prototype.changePropertyNameToCamelLowerCase = function (value) {\r\n        var charCodeUnderscore = 95;\r\n        if (Array.isArray(value)) {\r\n            var ret = [];\r\n            for (var i = 0; i < value.length; i++) {\r\n                ret.push(this.changePropertyNameToCamelLowerCase(value[i]));\r\n            }\r\n            return ret;\r\n        }\r\n        else if (typeof (value) === \"object\" && value !== null) {\r\n            var ret = {};\r\n            for (var key in value) {\r\n                var propValue = value[key];\r\n                if (key === Constants.items) {\r\n                    ret = {};\r\n                    ret[Constants.itemsLowerCase] = this.changePropertyNameToCamelLowerCase(propValue);\r\n                    break;\r\n                }\r\n                else {\r\n                    var propName = Utility._toCamelLowerCase(key);\r\n                    ret[propName] = this.changePropertyNameToCamelLowerCase(propValue);\r\n                }\r\n            }\r\n            return ret;\r\n        }\r\n        else {\r\n            return value;\r\n        }\r\n    };\r\n    RetrieveResultImpl.prototype.purifyJson = function (value) {\r\n        var charCodeUnderscore = 95;\r\n        if (Array.isArray(value)) {\r\n            var ret = [];\r\n            for (var i = 0; i < value.length; i++) {\r\n                ret.push(this.purifyJson(value[i]));\r\n            }\r\n            return ret;\r\n        }\r\n        else if (typeof (value) === \"object\" && value !== null) {\r\n            var ret = {};\r\n            for (var key in value) {\r\n                if (key.charCodeAt(0) !== charCodeUnderscore) {\r\n                    var propValue = value[key];\r\n                    if (typeof (propValue) === \"object\" &&\r\n                        propValue !== null &&\r\n                        Array.isArray(propValue[\"items\"])) {\r\n                        propValue = propValue[\"items\"];\r\n                    }\r\n                    ret[key] = this.purifyJson(propValue);\r\n                }\r\n            }\r\n            return ret;\r\n        }\r\n        else {\r\n            return value;\r\n        }\r\n    };\r\n    return RetrieveResultImpl;\r\n}());\r\nexports.RetrieveResultImpl = RetrieveResultImpl;\r\nvar Constants = (function () {\r\n    function Constants() {\r\n    }\r\n    Constants.flags = \"flags\";\r\n    Constants.getItemAt = \"GetItemAt\";\r\n    Constants.id = \"Id\";\r\n    Constants.idLowerCase = \"id\";\r\n    Constants.idPrivate = \"_Id\";\r\n    Constants.index = \"_Index\";\r\n    Constants.items = \"_Items\";\r\n    Constants.iterativeExecutor = \"IterativeExecutor\";\r\n    Constants.localDocument = \"http://document.localhost/\";\r\n    Constants.localDocumentApiPrefix = \"http://document.localhost/_api/\";\r\n    Constants.keepReference = \"_KeepReference\";\r\n    Constants.objectPathIdPrivate = \"_ObjectPathId\";\r\n    Constants.processQuery = \"ProcessQuery\";\r\n    Constants.referenceId = \"_ReferenceId\";\r\n    Constants.isTracked = \"_IsTracked\";\r\n    Constants.sourceLibHeader = \"SdkVersion\";\r\n    Constants.sessionContext = \"sc\";\r\n    Constants.embeddingPageOrigin = \"EmbeddingPageOrigin\";\r\n    Constants.embeddingPageSessionInfo = \"EmbeddingPageSessionInfo\";\r\n    Constants.eventMessageCategory = 65536;\r\n    Constants.eventWorkbookId = \"Workbook\";\r\n    Constants.eventSourceRemote = \"Remote\";\r\n    Constants.itemsLowerCase = \"items\";\r\n    Constants.proxy = \"$proxy\";\r\n    Constants.scalarPropertyNames = \"_scalarPropertyNames\";\r\n    Constants.navigationPropertyNames = \"_navigationPropertyNames\";\r\n    Constants.className = \"_className\";\r\n    Constants.isCollection = \"_isCollection\";\r\n    Constants.scalarPropertyUpdateable = \"_scalarPropertyUpdateable\";\r\n    Constants.collectionPropertyPath = \"_collectionPropertyPath\";\r\n    Constants.objectPathInfoDoNotKeepReferenceFieldName = \"D\";\r\n    return Constants;\r\n}());\r\nexports.Constants = Constants;\r\nvar CoreUtility = (function () {\r\n    function CoreUtility() {\r\n    }\r\n    Object.defineProperty(CoreUtility, \"Promise\", {\r\n        get: function () {\r\n            if (typeof exports.Promise !== \"undefined\") {\r\n                return exports.Promise;\r\n            }\r\n            if (typeof Office !== \"undefined\") {\r\n                if (Office.Promise) {\r\n                    return Office.Promise;\r\n                }\r\n            }\r\n            if (typeof OfficeExtension !== \"undefined\") {\r\n                if (OfficeExtension.Promise) {\r\n                    return OfficeExtension.Promise;\r\n                }\r\n            }\r\n            throw new exports.Error(\"No Promise implementation found\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return CoreUtility;\r\n}());\r\nexports.CoreUtility = CoreUtility;\r\nvar versionToken = 1;\r\nvar internalConfiguration = {\r\n    invokeRequestModifier: function (request) {\r\n        request.DdaMethod.Version = versionToken;\r\n        return request;\r\n    },\r\n    invokeResponseModifier: function (args) {\r\n        versionToken = args.Version;\r\n        if (args.Error) {\r\n            args.error = {};\r\n            args.error.Code = args.Error;\r\n        }\r\n        return args;\r\n    }\r\n};\r\nvar EmbeddedApiStatus;\r\n(function (EmbeddedApiStatus) {\r\n    EmbeddedApiStatus[EmbeddedApiStatus[\"Success\"] = 0] = \"Success\";\r\n    EmbeddedApiStatus[EmbeddedApiStatus[\"Timeout\"] = 1] = \"Timeout\";\r\n    EmbeddedApiStatus[EmbeddedApiStatus[\"InternalError\"] = 5001] = \"InternalError\";\r\n})(EmbeddedApiStatus || (EmbeddedApiStatus = {}));\r\nvar CommunicationConstants;\r\n(function (CommunicationConstants) {\r\n    CommunicationConstants.SendingId = \"sId\";\r\n    CommunicationConstants.RespondingId = \"rId\";\r\n    CommunicationConstants.CommandKey = \"command\";\r\n    CommunicationConstants.SessionInfoKey = \"sessionInfo\";\r\n    CommunicationConstants.ParamsKey = \"params\";\r\n    CommunicationConstants.ApiReadyCommand = \"apiready\";\r\n    CommunicationConstants.ExecuteMethodCommand = \"executeMethod\";\r\n    CommunicationConstants.GetAppContextCommand = \"getAppContext\";\r\n    CommunicationConstants.RegisterEventCommand = \"registerEvent\";\r\n    CommunicationConstants.UnregisterEventCommand = \"unregisterEvent\";\r\n    CommunicationConstants.FireEventCommand = \"fireEvent\";\r\n})(CommunicationConstants || (CommunicationConstants = {}));\r\nvar EmbeddedSession = (function (_super) {\r\n    __extends(EmbeddedSession, _super);\r\n    function EmbeddedSession(url, options) {\r\n        var _this = _super.call(this) || this;\r\n        _this.m_chosenWindow = null;\r\n        _this.m_chosenOrigin = null;\r\n        _this.m_enabled = true;\r\n        _this.m_onMessageHandler = _this._onMessage.bind(_this);\r\n        _this.m_callbackList = {};\r\n        _this.m_id = 0;\r\n        _this.m_timeoutId = -1;\r\n        _this.m_appContext = null;\r\n        _this.m_url = url;\r\n        _this.m_options = options;\r\n        if (!_this.m_options) {\r\n            _this.m_options = { sessionKey: Math.random().toString() };\r\n        }\r\n        if (!_this.m_options.sessionKey) {\r\n            _this.m_options.sessionKey = Math.random().toString();\r\n        }\r\n        if (!_this.m_options.container) {\r\n            _this.m_options.container = document.body;\r\n        }\r\n        if (!_this.m_options.timeoutInMilliseconds) {\r\n            _this.m_options.timeoutInMilliseconds = 60000;\r\n        }\r\n        if (!_this.m_options.height) {\r\n            _this.m_options.height = \"400px\";\r\n        }\r\n        if (!_this.m_options.width) {\r\n            _this.m_options.width = \"100%\";\r\n        }\r\n        if (!(_this.m_options.webApplication && _this.m_options.webApplication.accessToken && _this.m_options.webApplication.accessTokenTtl)) {\r\n            _this.m_options.webApplication = null;\r\n        }\r\n        return _this;\r\n    }\r\n    EmbeddedSession.prototype._getIFrameSrc = function () {\r\n        var origin = window.location.protocol + \"//\" + window.location.host;\r\n        var toAppend = Constants.embeddingPageOrigin + \"=\" + encodeURIComponent(origin) + \"&\" + Constants.embeddingPageSessionInfo + \"=\" + encodeURIComponent(this.m_options.sessionKey);\r\n        var useHash = false;\r\n        if (this.m_url.toLowerCase().indexOf(\"/_layouts/preauth.aspx\") > 0 ||\r\n            this.m_url.toLowerCase().indexOf(\"/_layouts/15/preauth.aspx\") > 0) {\r\n            useHash = true;\r\n        }\r\n        var a = document.createElement(\"a\");\r\n        a.href = this.m_url;\r\n        if (this.m_options.webApplication) {\r\n            var toAppendWAC = Constants.embeddingPageOrigin + \"=\" + origin + \"&\" + Constants.embeddingPageSessionInfo + \"=\" + this.m_options.sessionKey;\r\n            if (a.search.length === 0 || a.search === \"?\") {\r\n                a.search = \"?\" + Constants.sessionContext + \"=\" + encodeURIComponent(toAppendWAC);\r\n            }\r\n            else {\r\n                a.search = a.search + \"&\" + Constants.sessionContext + \"=\" + encodeURIComponent(toAppendWAC);\r\n            }\r\n        }\r\n        else if (useHash) {\r\n            if (a.hash.length === 0 || a.hash === \"#\") {\r\n                a.hash = \"#\" + toAppend;\r\n            }\r\n            else {\r\n                a.hash = a.hash + \"&\" + toAppend;\r\n            }\r\n        }\r\n        else {\r\n            if (a.search.length === 0 || a.search === \"?\") {\r\n                a.search = \"?\" + toAppend;\r\n            }\r\n            else {\r\n                a.search = a.search + \"&\" + toAppend;\r\n            }\r\n        }\r\n        var iframeSrc = a.href;\r\n        return iframeSrc;\r\n    };\r\n    EmbeddedSession.prototype.init = function () {\r\n        var _this = this;\r\n        window.addEventListener(\"message\", this.m_onMessageHandler);\r\n        var iframeSrc = this._getIFrameSrc();\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            var iframeElement = document.createElement(\"iframe\");\r\n            if (_this.m_options.id) {\r\n                iframeElement.id = _this.m_options.id;\r\n                iframeElement.name = _this.m_options.id;\r\n            }\r\n            iframeElement.style.height = _this.m_options.height;\r\n            iframeElement.style.width = _this.m_options.width;\r\n            if (!_this.m_options.webApplication) {\r\n                iframeElement.src = iframeSrc;\r\n                _this.m_options.container.appendChild(iframeElement);\r\n            }\r\n            else {\r\n                var webApplicationForm = document.createElement('form');\r\n                webApplicationForm.setAttribute(\"action\", iframeSrc);\r\n                webApplicationForm.setAttribute(\"method\", \"post\");\r\n                webApplicationForm.setAttribute(\"target\", iframeElement.name);\r\n                _this.m_options.container.appendChild(webApplicationForm);\r\n                var token_input = document.createElement('input');\r\n                token_input.setAttribute(\"type\", \"hidden\");\r\n                token_input.setAttribute(\"name\", \"access_token\");\r\n                token_input.setAttribute(\"value\", _this.m_options.webApplication.accessToken);\r\n                webApplicationForm.appendChild(token_input);\r\n                var token_ttl_input = document.createElement('input');\r\n                token_ttl_input.setAttribute(\"type\", \"hidden\");\r\n                token_ttl_input.setAttribute(\"name\", \"access_token_ttl\");\r\n                token_ttl_input.setAttribute(\"value\", _this.m_options.webApplication.accessTokenTtl);\r\n                webApplicationForm.appendChild(token_ttl_input);\r\n                _this.m_options.container.appendChild(iframeElement);\r\n                webApplicationForm.submit();\r\n            }\r\n            _this.m_timeoutId = setTimeout(function () {\r\n                _this.close();\r\n                var err = Utility.createRuntimeError(ErrorCodes.timeout, Utility._getResourceString(ResourceStrings.timeout), \"EmbeddedSession.init\");\r\n                reject(err);\r\n            }, _this.m_options.timeoutInMilliseconds);\r\n            _this.m_promiseResolver = resolve;\r\n        });\r\n    };\r\n    EmbeddedSession.prototype._invoke = function (method, callback, params) {\r\n        if (!this.m_enabled) {\r\n            callback(EmbeddedApiStatus.InternalError, null);\r\n            return;\r\n        }\r\n        if (internalConfiguration.invokeRequestModifier) {\r\n            params = internalConfiguration.invokeRequestModifier(params);\r\n        }\r\n        this._sendMessageWithCallback(this.m_id++, method, params, function (args) {\r\n            if (internalConfiguration.invokeResponseModifier) {\r\n                args = internalConfiguration.invokeResponseModifier(args);\r\n            }\r\n            var errorCode = args[\"Error\"];\r\n            delete args[\"Error\"];\r\n            callback(errorCode || EmbeddedApiStatus.Success, args);\r\n        });\r\n    };\r\n    EmbeddedSession.prototype.close = function () {\r\n        window.removeEventListener(\"message\", this.m_onMessageHandler);\r\n        window.clearTimeout(this.m_timeoutId);\r\n        this.m_enabled = false;\r\n    };\r\n    Object.defineProperty(EmbeddedSession.prototype, \"eventRegistration\", {\r\n        get: function () {\r\n            if (!this.m_sessionEventManager) {\r\n                this.m_sessionEventManager = new EventRegistration(this._registerEventImpl.bind(this), this._unregisterEventImpl.bind(this));\r\n            }\r\n            return this.m_sessionEventManager;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    EmbeddedSession.prototype._createRequestExecutorOrNull = function () {\r\n        return new EmbeddedRequestExecutor(this);\r\n    };\r\n    EmbeddedSession.prototype._resolveRequestUrlAndHeaderInfo = function () {\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    EmbeddedSession.prototype._registerEventImpl = function (eventId, targetId) {\r\n        var _this = this;\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            _this._sendMessageWithCallback(_this.m_id++, CommunicationConstants.RegisterEventCommand, { EventId: eventId, TargetId: targetId }, function () {\r\n                resolve(null);\r\n            });\r\n        });\r\n    };\r\n    EmbeddedSession.prototype._unregisterEventImpl = function (eventId, targetId) {\r\n        var _this = this;\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            _this._sendMessageWithCallback(_this.m_id++, CommunicationConstants.UnregisterEventCommand, { EventId: eventId, TargetId: targetId }, function () {\r\n                resolve();\r\n            });\r\n        });\r\n    };\r\n    EmbeddedSession.prototype._onMessage = function (event) {\r\n        var _this = this;\r\n        if (!this.m_enabled) {\r\n            return;\r\n        }\r\n        if (this.m_chosenWindow\r\n            && (this.m_chosenWindow !== event.source || this.m_chosenOrigin !== event.origin)) {\r\n            return;\r\n        }\r\n        var eventData = event.data;\r\n        if (eventData && eventData[CommunicationConstants.CommandKey] === CommunicationConstants.ApiReadyCommand) {\r\n            if (!this.m_chosenWindow\r\n                && this._isValidDescendant(event.source)\r\n                && eventData[CommunicationConstants.SessionInfoKey] === this.m_options.sessionKey) {\r\n                this.m_chosenWindow = event.source;\r\n                this.m_chosenOrigin = event.origin;\r\n                this._sendMessageWithCallback(this.m_id++, CommunicationConstants.GetAppContextCommand, null, function (appContext) {\r\n                    _this._setupContext(appContext);\r\n                    window.clearTimeout(_this.m_timeoutId);\r\n                    _this.m_promiseResolver();\r\n                });\r\n            }\r\n            return;\r\n        }\r\n        if (eventData && eventData[CommunicationConstants.CommandKey] === CommunicationConstants.FireEventCommand) {\r\n            var msg = eventData[CommunicationConstants.ParamsKey];\r\n            var eventId = msg[\"EventId\"];\r\n            var targetId = msg[\"TargetId\"];\r\n            var data = msg[\"Data\"];\r\n            if (this.m_sessionEventManager) {\r\n                var handlers = this.m_sessionEventManager.getHandlers(eventId, targetId);\r\n                for (var i = 0; i < handlers.length; i++) {\r\n                    handlers[i](data);\r\n                }\r\n            }\r\n            return;\r\n        }\r\n        if (eventData && eventData.hasOwnProperty(CommunicationConstants.RespondingId)) {\r\n            var rId = eventData[CommunicationConstants.RespondingId];\r\n            var callback = this.m_callbackList[rId];\r\n            if (typeof callback === \"function\") {\r\n                callback(eventData[CommunicationConstants.ParamsKey]);\r\n            }\r\n            delete this.m_callbackList[rId];\r\n        }\r\n    };\r\n    EmbeddedSession.prototype._sendMessageWithCallback = function (id, command, data, callback) {\r\n        this.m_callbackList[id] = callback;\r\n        var message = {};\r\n        message[CommunicationConstants.SendingId] = id;\r\n        message[CommunicationConstants.CommandKey] = command;\r\n        message[CommunicationConstants.ParamsKey] = data;\r\n        this.m_chosenWindow.postMessage(JSON.stringify(message), this.m_chosenOrigin);\r\n    };\r\n    EmbeddedSession.prototype._isValidDescendant = function (wnd) {\r\n        var container = this.m_options.container || document.body;\r\n        function doesFrameWindow(containerWindow) {\r\n            if (containerWindow === wnd) {\r\n                return true;\r\n            }\r\n            for (var i = 0, len = containerWindow.frames.length; i < len; i++) {\r\n                if (doesFrameWindow(containerWindow.frames[i])) {\r\n                    return true;\r\n                }\r\n            }\r\n            return false;\r\n        }\r\n        var iframes = container.getElementsByTagName(\"iframe\");\r\n        for (var i = 0, len = iframes.length; i < len; i++) {\r\n            if (doesFrameWindow(iframes[i].contentWindow)) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    };\r\n    EmbeddedSession.prototype._setupContext = function (appContext) {\r\n        if (!(this.m_appContext = appContext)) {\r\n            return;\r\n        }\r\n    };\r\n    return EmbeddedSession;\r\n}(SessionBase));\r\nexports.EmbeddedSession = EmbeddedSession;\r\nvar EmbeddedRequestExecutor = (function () {\r\n    function EmbeddedRequestExecutor(session) {\r\n        this.m_session = session;\r\n    }\r\n    EmbeddedRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {\r\n        var _this = this;\r\n        var messageSafearray = RichApiMessageUtility.buildMessageArrayForIRequestExecutor(customData, requestFlags, requestMessage, EmbeddedRequestExecutor.SourceLibHeaderValue);\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            _this.m_session._invoke(CommunicationConstants.ExecuteMethodCommand, function (status, result) {\r\n                Utility.log(\"Response:\");\r\n                Utility.log(JSON.stringify(result));\r\n                var response;\r\n                if (status == EmbeddedApiStatus.Success) {\r\n                    response = RichApiMessageUtility.buildResponseOnSuccess(RichApiMessageUtility.getResponseBodyFromSafeArray(result.Data), RichApiMessageUtility.getResponseHeadersFromSafeArray(result.Data));\r\n                }\r\n                else {\r\n                    response = RichApiMessageUtility.buildResponseOnError(result.error.Code, result.error.Message);\r\n                }\r\n                resolve(response);\r\n            }, EmbeddedRequestExecutor._transformMessageArrayIntoParams(messageSafearray));\r\n        });\r\n    };\r\n    EmbeddedRequestExecutor._transformMessageArrayIntoParams = function (msgArray) {\r\n        return {\r\n            ArrayData: msgArray,\r\n            DdaMethod: {\r\n                DispatchId: EmbeddedRequestExecutor.DispidExecuteRichApiRequestMethod\r\n            }\r\n        };\r\n    };\r\n    EmbeddedRequestExecutor.DispidExecuteRichApiRequestMethod = 93;\r\n    EmbeddedRequestExecutor.SourceLibHeaderValue = \"Embedded\";\r\n    return EmbeddedRequestExecutor;\r\n}());\r\nvar _Internal;\r\n(function (_Internal) {\r\n    var RuntimeError = (function (_super) {\r\n        __extends(RuntimeError, _super);\r\n        function RuntimeError(error) {\r\n            var _this = _super.call(this, (typeof error === \"string\") ? error : error.message) || this;\r\n            Object.setPrototypeOf(_this, RuntimeError.prototype);\r\n            _this.name = \"Error\";\r\n            if (typeof error === \"string\") {\r\n                _this.message = error;\r\n            }\r\n            else {\r\n                _this.code = error.code;\r\n                _this.message = error.message;\r\n                _this.traceMessages = error.traceMessages || [];\r\n                _this.innerError = error.innerError || null;\r\n                _this.debugInfo = _this._createDebugInfo(error.debugInfo || {});\r\n            }\r\n            return _this;\r\n        }\r\n        RuntimeError.prototype.toString = function () {\r\n            return this.code + ': ' + this.message;\r\n        };\r\n        RuntimeError.prototype._createDebugInfo = function (partialDebugInfo) {\r\n            var debugInfo = {\r\n                code: this.code,\r\n                message: this.message,\r\n                toString: function () {\r\n                    return JSON.stringify(this);\r\n                }\r\n            };\r\n            for (var key in partialDebugInfo) {\r\n                debugInfo[key] = partialDebugInfo[key];\r\n            }\r\n            if (this.innerError) {\r\n                if (this.innerError instanceof _Internal.RuntimeError) {\r\n                    debugInfo.innerError = this.innerError.debugInfo;\r\n                }\r\n                else {\r\n                    debugInfo.innerError = this.innerError;\r\n                }\r\n            }\r\n            return debugInfo;\r\n        };\r\n        RuntimeError._createInvalidArgError = function (error) {\r\n            return new _Internal.RuntimeError({\r\n                code: ErrorCodes.invalidArgument,\r\n                message: (Utility.isNullOrEmptyString(error.argumentName) ?\r\n                    Utility._getResourceString(ResourceStrings.invalidArgumentGeneric) :\r\n                    Utility._getResourceString(ResourceStrings.invalidArgument, error.argumentName)),\r\n                debugInfo: error.errorLocation ? { errorLocation: error.errorLocation } : {},\r\n                innerError: error.innerError\r\n            });\r\n        };\r\n        return RuntimeError;\r\n    }(Error));\r\n    _Internal.RuntimeError = RuntimeError;\r\n})(_Internal = exports._Internal || (exports._Internal = {}));\r\nexports.Error = _Internal.RuntimeError;\r\nvar ErrorCodes = (function () {\r\n    function ErrorCodes() {\r\n    }\r\n    ErrorCodes.accessDenied = \"AccessDenied\";\r\n    ErrorCodes.generalException = \"GeneralException\";\r\n    ErrorCodes.activityLimitReached = \"ActivityLimitReached\";\r\n    ErrorCodes.invalidObjectPath = \"InvalidObjectPath\";\r\n    ErrorCodes.propertyNotLoaded = \"PropertyNotLoaded\";\r\n    ErrorCodes.valueNotLoaded = \"ValueNotLoaded\";\r\n    ErrorCodes.invalidRequestContext = \"InvalidRequestContext\";\r\n    ErrorCodes.invalidArgument = \"InvalidArgument\";\r\n    ErrorCodes.runMustReturnPromise = \"RunMustReturnPromise\";\r\n    ErrorCodes.cannotRegisterEvent = \"CannotRegisterEvent\";\r\n    ErrorCodes.apiNotFound = \"ApiNotFound\";\r\n    ErrorCodes.connectionFailure = \"ConnectionFailure\";\r\n    ErrorCodes.timeout = \"Timeout\";\r\n    ErrorCodes.invalidOrTimedOutSession = \"InvalidOrTimedOutSession\";\r\n    ErrorCodes.cannotUpdateReadOnlyProperty = \"CannotUpdateReadOnlyProperty\";\r\n    return ErrorCodes;\r\n}());\r\nexports.ErrorCodes = ErrorCodes;\r\nvar EventHandlers = (function () {\r\n    function EventHandlers(context, parentObject, name, eventInfo) {\r\n        var _this = this;\r\n        this.m_id = context._nextId();\r\n        this.m_context = context;\r\n        this.m_name = name;\r\n        this.m_handlers = [];\r\n        this.m_registered = false;\r\n        this.m_eventInfo = eventInfo;\r\n        this.m_callback = function (args) {\r\n            _this.m_eventInfo.eventArgsTransformFunc(args)\r\n                .then(function (newArgs) { return _this.fireEvent(newArgs); });\r\n        };\r\n    }\r\n    Object.defineProperty(EventHandlers.prototype, \"_registered\", {\r\n        get: function () {\r\n            return this.m_registered;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(EventHandlers.prototype, \"_id\", {\r\n        get: function () {\r\n            return this.m_id;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(EventHandlers.prototype, \"_handlers\", {\r\n        get: function () {\r\n            return this.m_handlers;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(EventHandlers.prototype, \"_context\", {\r\n        get: function () {\r\n            return this.m_context;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(EventHandlers.prototype, \"_callback\", {\r\n        get: function () {\r\n            return this.m_callback;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    EventHandlers.prototype.add = function (handler) {\r\n        var action = ActionFactory.createTraceAction(this.m_context, null, false);\r\n        this.m_context._pendingRequest._addPendingEventHandlerAction(this, { id: action.actionInfo.Id, handler: handler, operation: 0 });\r\n        return new EventHandlerResult(this.m_context, this, handler);\r\n    };\r\n    EventHandlers.prototype.remove = function (handler) {\r\n        var action = ActionFactory.createTraceAction(this.m_context, null, false);\r\n        this.m_context._pendingRequest._addPendingEventHandlerAction(this, { id: action.actionInfo.Id, handler: handler, operation: 1 });\r\n    };\r\n    EventHandlers.prototype.removeAll = function () {\r\n        var action = ActionFactory.createTraceAction(this.m_context, null, false);\r\n        this.m_context._pendingRequest._addPendingEventHandlerAction(this, { id: action.actionInfo.Id, handler: null, operation: 2 });\r\n    };\r\n    EventHandlers.prototype._processRegistration = function (req) {\r\n        var _this = this;\r\n        var ret = Utility._createPromiseFromResult(null);\r\n        var actions = req._getPendingEventHandlerActions(this);\r\n        if (!actions) {\r\n            return ret;\r\n        }\r\n        var handlersResult = [];\r\n        for (var i = 0; i < this.m_handlers.length; i++) {\r\n            handlersResult.push(this.m_handlers[i]);\r\n        }\r\n        var hasChange = false;\r\n        for (var i = 0; i < actions.length; i++) {\r\n            if (req._responseTraceIds[actions[i].id]) {\r\n                hasChange = true;\r\n                switch (actions[i].operation) {\r\n                    case 0:\r\n                        handlersResult.push(actions[i].handler);\r\n                        break;\r\n                    case 1:\r\n                        for (var index = handlersResult.length - 1; index >= 0; index--) {\r\n                            if (handlersResult[index] === actions[i].handler) {\r\n                                handlersResult.splice(index, 1);\r\n                                break;\r\n                            }\r\n                        }\r\n                        break;\r\n                    case 2:\r\n                        handlersResult = [];\r\n                        break;\r\n                }\r\n            }\r\n        }\r\n        if (hasChange) {\r\n            if (!this.m_registered && handlersResult.length > 0) {\r\n                ret = ret\r\n                    .then(function () { return _this.m_eventInfo.registerFunc(_this.m_callback); })\r\n                    .then(function () { return (_this.m_registered = true); });\r\n            }\r\n            else if (this.m_registered && handlersResult.length == 0) {\r\n                ret = ret\r\n                    .then(function () { return _this.m_eventInfo.unregisterFunc(_this.m_callback); })\r\n                    .catch(function (ex) {\r\n                    Utility.log(\"Error when unregister event: \" + JSON.stringify(ex));\r\n                })\r\n                    .then(function () { return (_this.m_registered = false); });\r\n            }\r\n            ret = ret\r\n                .then(function () { return (_this.m_handlers = handlersResult); });\r\n        }\r\n        return ret;\r\n    };\r\n    EventHandlers.prototype.fireEvent = function (args) {\r\n        var promises = [];\r\n        for (var i = 0; i < this.m_handlers.length; i++) {\r\n            var handler = this.m_handlers[i];\r\n            var p = Utility._createPromiseFromResult(null)\r\n                .then(this.createFireOneEventHandlerFunc(handler, args))\r\n                .catch(function (ex) {\r\n                Utility.log(\"Error when invoke handler: \" + JSON.stringify(ex));\r\n            });\r\n            promises.push(p);\r\n        }\r\n        CoreUtility.Promise.all(promises);\r\n    };\r\n    EventHandlers.prototype.createFireOneEventHandlerFunc = function (handler, args) {\r\n        return function () { return handler(args); };\r\n    };\r\n    return EventHandlers;\r\n}());\r\nexports.EventHandlers = EventHandlers;\r\nvar EventHandlerResult = (function () {\r\n    function EventHandlerResult(context, handlers, handler) {\r\n        this.m_context = context;\r\n        this.m_allHandlers = handlers;\r\n        this.m_handler = handler;\r\n    }\r\n    Object.defineProperty(EventHandlerResult.prototype, \"context\", {\r\n        get: function () {\r\n            return this.m_context;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    EventHandlerResult.prototype.remove = function () {\r\n        if (this.m_allHandlers && this.m_handler) {\r\n            this.m_allHandlers.remove(this.m_handler);\r\n            this.m_allHandlers = null;\r\n            this.m_handler = null;\r\n        }\r\n    };\r\n    return EventHandlerResult;\r\n}());\r\nexports.EventHandlerResult = EventHandlerResult;\r\n(function (_Internal) {\r\n    var OfficeJsEventRegistration = (function () {\r\n        function OfficeJsEventRegistration() {\r\n        }\r\n        OfficeJsEventRegistration.prototype.register = function (eventId, targetId, handler) {\r\n            switch (eventId) {\r\n                case 4:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); })\r\n                        .then(function (officeBinding) {\r\n                        return Utility.promisify(function (callback) { return officeBinding.addHandlerAsync(Office.EventType.BindingDataChanged, handler, callback); });\r\n                    });\r\n                case 3:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); })\r\n                        .then(function (officeBinding) {\r\n                        return Utility.promisify(function (callback) { return officeBinding.addHandlerAsync(Office.EventType.BindingSelectionChanged, handler, callback); });\r\n                    });\r\n                case 2:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, handler, callback); });\r\n                case 1:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.settings.addHandlerAsync(Office.EventType.SettingsChanged, handler, callback); });\r\n                case 5:\r\n                    return Utility.promisify(function (callback) { return OSF.DDA.RichApi.richApiMessageManager.addHandlerAsync(\"richApiMessage\", handler, callback); });\r\n                case 13:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.addHandlerAsync(Office.EventType.ObjectDeleted, handler, { id: targetId }, callback); });\r\n                case 14:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.addHandlerAsync(Office.EventType.ObjectSelectionChanged, handler, { id: targetId }, callback); });\r\n                case 15:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.addHandlerAsync(Office.EventType.ObjectDataChanged, handler, { id: targetId }, callback); });\r\n                case 16:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.addHandlerAsync(Office.EventType.ContentControlAdded, handler, { id: targetId }, callback); });\r\n                default:\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"eventId\" });\r\n            }\r\n        };\r\n        OfficeJsEventRegistration.prototype.unregister = function (eventId, targetId, handler) {\r\n            switch (eventId) {\r\n                case 4:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); })\r\n                        .then(function (officeBinding) {\r\n                        return Utility.promisify(function (callback) { return officeBinding.removeHandlerAsync(Office.EventType.BindingDataChanged, { handler: handler }, callback); });\r\n                    });\r\n                case 3:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.bindings.getByIdAsync(targetId, callback); })\r\n                        .then(function (officeBinding) {\r\n                        return Utility.promisify(function (callback) { return officeBinding.removeHandlerAsync(Office.EventType.BindingSelectionChanged, { handler: handler }, callback); });\r\n                    });\r\n                case 2:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.removeHandlerAsync(Office.EventType.DocumentSelectionChanged, { handler: handler }, callback); });\r\n                case 1:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.settings.removeHandlerAsync(Office.EventType.SettingsChanged, { handler: handler }, callback); });\r\n                case 5:\r\n                    return Utility.promisify(function (callback) { return OSF.DDA.RichApi.richApiMessageManager.removeHandlerAsync(\"richApiMessage\", { handler: handler }, callback); });\r\n                case 13:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.removeHandlerAsync(Office.EventType.ObjectDeleted, { id: targetId, handler: handler }, callback); });\r\n                case 14:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.removeHandlerAsync(Office.EventType.ObjectSelectionChanged, { id: targetId, handler: handler }, callback); });\r\n                case 15:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.removeHandlerAsync(Office.EventType.ObjectDataChanged, { id: targetId, handler: handler }, callback); });\r\n                case 16:\r\n                    return Utility.promisify(function (callback) { return Office.context.document.removeHandlerAsync(Office.EventType.ContentControlAdded, { id: targetId, handler: handler }, callback); });\r\n                default:\r\n                    throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"eventId\" });\r\n            }\r\n        };\r\n        return OfficeJsEventRegistration;\r\n    }());\r\n    _Internal.officeJsEventRegistration = new OfficeJsEventRegistration();\r\n})(_Internal = exports._Internal || (exports._Internal = {}));\r\nvar EventRegistration = (function () {\r\n    function EventRegistration(registerEventImpl, unregisterEventImpl) {\r\n        this.m_handlersByEventByTarget = {};\r\n        this.m_registerEventImpl = registerEventImpl;\r\n        this.m_unregisterEventImpl = unregisterEventImpl;\r\n    }\r\n    EventRegistration.prototype.getHandlers = function (eventId, targetId) {\r\n        if (Utility.isNullOrUndefined(targetId)) {\r\n            targetId = \"\";\r\n        }\r\n        var handlersById = this.m_handlersByEventByTarget[eventId];\r\n        if (!handlersById) {\r\n            handlersById = {};\r\n            this.m_handlersByEventByTarget[eventId] = handlersById;\r\n        }\r\n        var handlers = handlersById[targetId];\r\n        if (!handlers) {\r\n            handlers = [];\r\n            handlersById[targetId] = handlers;\r\n        }\r\n        return handlers;\r\n    };\r\n    EventRegistration.prototype.register = function (eventId, targetId, handler) {\r\n        if (!handler) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"handler\" });\r\n        }\r\n        var handlers = this.getHandlers(eventId, targetId);\r\n        handlers.push(handler);\r\n        if (handlers.length === 1) {\r\n            return this.m_registerEventImpl(eventId, targetId);\r\n        }\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    EventRegistration.prototype.unregister = function (eventId, targetId, handler) {\r\n        if (!handler) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"handler\" });\r\n        }\r\n        var handlers = this.getHandlers(eventId, targetId);\r\n        for (var index = handlers.length - 1; index >= 0; index--) {\r\n            if (handlers[index] === handler) {\r\n                handlers.splice(index, 1);\r\n                break;\r\n            }\r\n        }\r\n        if (handlers.length === 0) {\r\n            return this.m_unregisterEventImpl(eventId, targetId);\r\n        }\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    return EventRegistration;\r\n}());\r\nexports.EventRegistration = EventRegistration;\r\nvar GenericEventRegistration = (function () {\r\n    function GenericEventRegistration() {\r\n        this.m_eventRegistration = new EventRegistration(this._registerEventImpl.bind(this), this._unregisterEventImpl.bind(this));\r\n        this.m_richApiMessageHandler = this._handleRichApiMessage.bind(this);\r\n    }\r\n    GenericEventRegistration.prototype.ready = function () {\r\n        var _this = this;\r\n        if (!this.m_ready) {\r\n            if (GenericEventRegistration._testReadyImpl) {\r\n                this.m_ready = GenericEventRegistration._testReadyImpl()\r\n                    .then(function () {\r\n                    _this.m_isReady = true;\r\n                });\r\n            }\r\n            else {\r\n                this.m_ready = _Internal.officeJsEventRegistration.register(5, \"\", this.m_richApiMessageHandler)\r\n                    .then(function () {\r\n                    _this.m_isReady = true;\r\n                });\r\n            }\r\n        }\r\n        return this.m_ready;\r\n    };\r\n    Object.defineProperty(GenericEventRegistration.prototype, \"isReady\", {\r\n        get: function () {\r\n            return this.m_isReady;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    GenericEventRegistration.prototype.register = function (eventId, targetId, handler) {\r\n        var _this = this;\r\n        return this.ready()\r\n            .then(function () { return _this.m_eventRegistration.register(eventId, targetId, handler); });\r\n    };\r\n    GenericEventRegistration.prototype.unregister = function (eventId, targetId, handler) {\r\n        var _this = this;\r\n        return this.ready()\r\n            .then(function () { return _this.m_eventRegistration.unregister(eventId, targetId, handler); });\r\n    };\r\n    GenericEventRegistration.prototype._registerEventImpl = function (eventId, targetId) {\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    GenericEventRegistration.prototype._unregisterEventImpl = function (eventId, targetId) {\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    GenericEventRegistration.prototype._handleRichApiMessage = function (msg) {\r\n        if (msg && msg.entries) {\r\n            for (var entryIndex = 0; entryIndex < msg.entries.length; entryIndex++) {\r\n                var entry = msg.entries[entryIndex];\r\n                if (entry.messageCategory == Constants.eventMessageCategory) {\r\n                    if (Utility._logEnabled) {\r\n                        Utility.log(JSON.stringify(entry));\r\n                    }\r\n                    var funcs = this.m_eventRegistration.getHandlers(entry.messageType, entry.targetId);\r\n                    if (funcs.length > 0) {\r\n                        var arg = JSON.parse(entry.message);\r\n                        if (entry.isRemoteOverride) {\r\n                            arg.source = Constants.eventSourceRemote;\r\n                        }\r\n                        for (var i = 0; i < funcs.length; i++) {\r\n                            funcs[i](arg);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    };\r\n    GenericEventRegistration.getGenericEventRegistration = function () {\r\n        if (!GenericEventRegistration.s_genericEventRegistration) {\r\n            GenericEventRegistration.s_genericEventRegistration = new GenericEventRegistration();\r\n        }\r\n        return GenericEventRegistration.s_genericEventRegistration;\r\n    };\r\n    GenericEventRegistration.richApiMessageEventCategory = 65536;\r\n    return GenericEventRegistration;\r\n}());\r\nfunction _testSetRichApiMessageReadyImpl(impl) {\r\n    GenericEventRegistration._testReadyImpl = impl;\r\n}\r\nexports._testSetRichApiMessageReadyImpl = _testSetRichApiMessageReadyImpl;\r\nfunction _testTriggerRichApiMessageEvent(msg) {\r\n    GenericEventRegistration.getGenericEventRegistration()._handleRichApiMessage(msg);\r\n}\r\nexports._testTriggerRichApiMessageEvent = _testTriggerRichApiMessageEvent;\r\nvar GenericEventHandlers = (function (_super) {\r\n    __extends(GenericEventHandlers, _super);\r\n    function GenericEventHandlers(context, parentObject, name, eventInfo) {\r\n        var _this = _super.call(this, context, parentObject, name, eventInfo) || this;\r\n        _this.m_genericEventInfo = eventInfo;\r\n        return _this;\r\n    }\r\n    GenericEventHandlers.prototype.add = function (handler) {\r\n        var _this = this;\r\n        if ((this._handlers.length == 0) && this.m_genericEventInfo.registerFunc) {\r\n            this.m_genericEventInfo.registerFunc();\r\n        }\r\n        if (!GenericEventRegistration.getGenericEventRegistration().isReady) {\r\n            this._context._pendingRequest._addPreSyncPromise(GenericEventRegistration.getGenericEventRegistration().ready());\r\n        }\r\n        ActionFactory.createTraceMarkerForCallback(this._context, function () {\r\n            _this._handlers.push(handler);\r\n            if (_this._handlers.length == 1) {\r\n                GenericEventRegistration.getGenericEventRegistration().register(_this.m_genericEventInfo.eventType, _this.m_genericEventInfo.getTargetIdFunc(), _this._callback);\r\n            }\r\n        });\r\n        return new EventHandlerResult(this._context, this, handler);\r\n    };\r\n    GenericEventHandlers.prototype.remove = function (handler) {\r\n        var _this = this;\r\n        if ((this._handlers.length == 1) && this.m_genericEventInfo.unregisterFunc) {\r\n            this.m_genericEventInfo.unregisterFunc();\r\n        }\r\n        ActionFactory.createTraceMarkerForCallback(this._context, function () {\r\n            var handlers = _this._handlers;\r\n            for (var index = handlers.length - 1; index >= 0; index--) {\r\n                if (handlers[index] === handler) {\r\n                    handlers.splice(index, 1);\r\n                    break;\r\n                }\r\n            }\r\n            if (handlers.length == 0) {\r\n                GenericEventRegistration.getGenericEventRegistration().unregister(_this.m_genericEventInfo.eventType, _this.m_genericEventInfo.getTargetIdFunc(), _this._callback);\r\n            }\r\n        });\r\n    };\r\n    GenericEventHandlers.prototype.removeAll = function () {\r\n    };\r\n    return GenericEventHandlers;\r\n}(EventHandlers));\r\nexports.GenericEventHandlers = GenericEventHandlers;\r\nvar HttpRequestExecutor = (function () {\r\n    function HttpRequestExecutor() {\r\n    }\r\n    HttpRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {\r\n        var requestMessageText = JSON.stringify(requestMessage.Body);\r\n        var url = requestMessage.Url;\r\n        if (url.charAt(url.length - 1) != \"/\") {\r\n            url = url + \"/\";\r\n        }\r\n        url = url + Constants.processQuery;\r\n        url = url + \"?\" + Constants.flags + \"=\" + requestFlags.toString();\r\n        var requestInfo = {\r\n            method: \"POST\",\r\n            url: url,\r\n            headers: {},\r\n            body: requestMessageText\r\n        };\r\n        requestInfo.headers[Constants.sourceLibHeader] = HttpRequestExecutor.SourceLibHeaderValue;\r\n        requestInfo.headers[\"CONTENT-TYPE\"] = \"application/json\";\r\n        if (requestMessage.Headers) {\r\n            for (var key in requestMessage.Headers) {\r\n                requestInfo.headers[key] = requestMessage.Headers[key];\r\n            }\r\n        }\r\n        return HttpUtility.sendRequest(requestInfo)\r\n            .then(function (responseInfo) {\r\n            var response;\r\n            if (responseInfo.statusCode === 200) {\r\n                response = { ErrorCode: null, ErrorMessage: null, Headers: responseInfo.headers, Body: JSON.parse(responseInfo.body) };\r\n            }\r\n            else {\r\n                Utility.log(\"Error Response:\" + responseInfo.body);\r\n                var error = Utility._parseErrorResponse(responseInfo);\r\n                response = {\r\n                    ErrorCode: error.errorCode,\r\n                    ErrorMessage: error.errorMessage,\r\n                    Headers: responseInfo.headers,\r\n                    Body: null\r\n                };\r\n            }\r\n            return response;\r\n        });\r\n    };\r\n    HttpRequestExecutor.SourceLibHeaderValue = \"officejs-rest\";\r\n    return HttpRequestExecutor;\r\n}());\r\nexports.HttpRequestExecutor = HttpRequestExecutor;\r\nvar HttpUtility = (function () {\r\n    function HttpUtility() {\r\n    }\r\n    HttpUtility.setCustomSendRequestFunc = function (func) {\r\n        HttpUtility.s_customSendRequestFunc = func;\r\n    };\r\n    HttpUtility.xhrSendRequestFunc = function (request) {\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            var xhr = new XMLHttpRequest();\r\n            xhr.open(request.method, request.url);\r\n            xhr.onload = function () {\r\n                var resp = {\r\n                    statusCode: xhr.status,\r\n                    headers: Utility._parseHttpResponseHeaders(xhr.getAllResponseHeaders()),\r\n                    body: xhr.responseText\r\n                };\r\n                resolve(resp);\r\n            };\r\n            xhr.onerror = function () {\r\n                reject(new _Internal.RuntimeError({\r\n                    code: ErrorCodes.connectionFailure,\r\n                    message: Utility._getResourceString(ResourceStrings.connectionFailureWithStatus, xhr.statusText)\r\n                }));\r\n            };\r\n            if (request.headers) {\r\n                for (var key in request.headers) {\r\n                    xhr.setRequestHeader(key, request.headers[key]);\r\n                }\r\n            }\r\n            xhr.send(request.body);\r\n        });\r\n    };\r\n    HttpUtility.sendRequest = function (request) {\r\n        HttpUtility.validateAndNormalizeRequest(request);\r\n        var func = HttpUtility.s_customSendRequestFunc;\r\n        if (!func) {\r\n            func = HttpUtility.xhrSendRequestFunc;\r\n        }\r\n        return func(request);\r\n    };\r\n    HttpUtility.setCustomSendLocalDocumentRequestFunc = function (func) {\r\n        HttpUtility.s_customSendLocalDocumentRequestFunc = func;\r\n    };\r\n    HttpUtility.sendLocalDocumentRequest = function (request) {\r\n        HttpUtility.validateAndNormalizeRequest(request);\r\n        var func;\r\n        func = HttpUtility.s_customSendLocalDocumentRequestFunc || HttpUtility.officeJsSendLocalDocumentRequestFunc;\r\n        return func(request);\r\n    };\r\n    HttpUtility.officeJsSendLocalDocumentRequestFunc = function (request) {\r\n        request = Utility._validateLocalDocumentRequest(request);\r\n        var requestSafeArray = Utility._buildRequestMessageSafeArray(request);\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            OSF.DDA.RichApi.executeRichApiRequestAsync(requestSafeArray, function (asyncResult) {\r\n                var response;\r\n                if (asyncResult.status == \"succeeded\") {\r\n                    response =\r\n                        {\r\n                            statusCode: RichApiMessageUtility.getResponseStatusCode(asyncResult),\r\n                            headers: RichApiMessageUtility.getResponseHeaders(asyncResult),\r\n                            body: RichApiMessageUtility.getResponseBody(asyncResult)\r\n                        };\r\n                }\r\n                else {\r\n                    response = RichApiMessageUtility.buildHttpResponseFromOfficeJsError(asyncResult.error.code, asyncResult.error.message);\r\n                }\r\n                Utility.log(JSON.stringify(response));\r\n                resolve(response);\r\n            });\r\n        });\r\n    };\r\n    HttpUtility.validateAndNormalizeRequest = function (request) {\r\n        if (Utility.isNullOrUndefined(request)) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({\r\n                argumentName: \"request\"\r\n            });\r\n        }\r\n        if (Utility.isNullOrEmptyString(request.method)) {\r\n            request.method = \"GET\";\r\n        }\r\n        request.method = request.method.toUpperCase();\r\n    };\r\n    HttpUtility.logRequest = function (request) {\r\n        if (Utility._logEnabled) {\r\n            Utility.log(\"---HTTP Request---\");\r\n            Utility.log(request.method + \" \" + request.url);\r\n            if (request.headers) {\r\n                for (var key in request.headers) {\r\n                    Utility.log(key + \": \" + request.headers[key]);\r\n                }\r\n            }\r\n            if (HttpUtility._logBody) {\r\n                Utility.log(request.body);\r\n            }\r\n        }\r\n    };\r\n    HttpUtility.logResponse = function (response) {\r\n        if (Utility._logEnabled) {\r\n            Utility.log(\"---HTTP Response---\");\r\n            Utility.log(\"\" + response.statusCode);\r\n            if (response.headers) {\r\n                for (var key in response.headers) {\r\n                    Utility.log(key + \": \" + response.headers[key]);\r\n                }\r\n            }\r\n            if (HttpUtility._logBody) {\r\n                Utility.log(response.body);\r\n            }\r\n        }\r\n    };\r\n    HttpUtility._logBody = false;\r\n    return HttpUtility;\r\n}());\r\nexports.HttpUtility = HttpUtility;\r\nvar InstantiateActionResultHandler = (function () {\r\n    function InstantiateActionResultHandler(clientObject) {\r\n        this.m_clientObject = clientObject;\r\n    }\r\n    InstantiateActionResultHandler.prototype._handleResult = function (value) {\r\n        this.m_clientObject._handleIdResult(value);\r\n    };\r\n    return InstantiateActionResultHandler;\r\n}());\r\nexports.InstantiateActionResultHandler = InstantiateActionResultHandler;\r\n;\r\nvar HostBridgeRequestExecutor = (function () {\r\n    function HostBridgeRequestExecutor(session) {\r\n        this.m_session = session;\r\n    }\r\n    HostBridgeRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {\r\n        var httpRequestInfo = {\r\n            url: Constants.processQuery,\r\n            method: \"POST\",\r\n            headers: requestMessage.Headers,\r\n            body: requestMessage.Body\r\n        };\r\n        var message = {\r\n            id: HostBridgeSession.nextId(),\r\n            type: 1,\r\n            flags: requestFlags,\r\n            message: httpRequestInfo\r\n        };\r\n        Utility.log(JSON.stringify(message));\r\n        return this.m_session.sendMessageToHost(message)\r\n            .then(function (nativeBridgeResponse) {\r\n            Utility.log(\"Received response: \" + JSON.stringify(nativeBridgeResponse));\r\n            var responseInfo = nativeBridgeResponse.message;\r\n            var response;\r\n            if (responseInfo.statusCode === 200) {\r\n                response = { ErrorCode: null, ErrorMessage: null, Headers: responseInfo.headers, Body: responseInfo.body };\r\n            }\r\n            else {\r\n                Utility.log(\"Error Response:\" + responseInfo.body);\r\n                var error = Utility._parseErrorResponse(responseInfo);\r\n                response = {\r\n                    ErrorCode: error.errorCode,\r\n                    ErrorMessage: error.errorMessage,\r\n                    Headers: responseInfo.headers,\r\n                    Body: null\r\n                };\r\n            }\r\n            return response;\r\n        });\r\n    };\r\n    return HostBridgeRequestExecutor;\r\n}());\r\nvar HostBridgeSession = (function (_super) {\r\n    __extends(HostBridgeSession, _super);\r\n    function HostBridgeSession(bridge) {\r\n        var _this = _super.call(this) || this;\r\n        _this.m_promiseResolver = {};\r\n        _this.m_bridge = bridge;\r\n        _this.m_bridge.onMessageFromHost = function (msg) {\r\n            _this.onMessageFromHost(msg);\r\n        };\r\n        return _this;\r\n    }\r\n    HostBridgeSession.prototype._resolveRequestUrlAndHeaderInfo = function () {\r\n        return Utility._createPromiseFromResult(null);\r\n    };\r\n    HostBridgeSession.prototype._createRequestExecutorOrNull = function () {\r\n        Utility.log(\"NativeBridgeSession::CreateRequestExecutor\");\r\n        return new HostBridgeRequestExecutor(this);\r\n    };\r\n    Object.defineProperty(HostBridgeSession.prototype, \"eventRegistration\", {\r\n        get: function () {\r\n            return _Internal.officeJsEventRegistration;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    HostBridgeSession.init = function (bridge) {\r\n        if (bridge && typeof (bridge) === \"object\") {\r\n            var session = new HostBridgeSession(bridge);\r\n            ClientRequestContext._overrideSession = session;\r\n            HttpUtility.setCustomSendLocalDocumentRequestFunc(function (request) {\r\n                var bridgeMessage = {\r\n                    id: HostBridgeSession.nextId(),\r\n                    type: 1,\r\n                    flags: 0,\r\n                    message: request\r\n                };\r\n                return session.sendMessageToHost(bridgeMessage)\r\n                    .then(function (bridgeResponse) {\r\n                    var responseInfo = bridgeResponse.message;\r\n                    return responseInfo;\r\n                });\r\n            });\r\n        }\r\n    };\r\n    HostBridgeSession.prototype.sendMessageToHost = function (message) {\r\n        var _this = this;\r\n        this.m_bridge.sendMessageToHost(JSON.stringify(message));\r\n        var ret = new CoreUtility.Promise(function (resolve, reject) {\r\n            _this.m_promiseResolver[message.id] = resolve;\r\n        });\r\n        return ret;\r\n    };\r\n    HostBridgeSession.prototype.onMessageFromHost = function (messageText) {\r\n        if (messageText === \"test\") {\r\n            if (HostBridgeTest._testFunc) {\r\n                HostBridgeTest._testFunc();\r\n            }\r\n        }\r\n        else {\r\n            var message = JSON.parse(messageText);\r\n            if (typeof (message.id) === \"number\") {\r\n                var resolve = this.m_promiseResolver[message.id];\r\n                if (resolve) {\r\n                    resolve(message);\r\n                }\r\n                delete this.m_promiseResolver[message.id];\r\n            }\r\n        }\r\n    };\r\n    HostBridgeSession.nextId = function () {\r\n        return HostBridgeSession.s_nextId++;\r\n    };\r\n    HostBridgeSession.s_nextId = 1;\r\n    return HostBridgeSession;\r\n}(SessionBase));\r\nvar HostBridge = (function () {\r\n    function HostBridge() {\r\n    }\r\n    HostBridge.init = function (bridge) {\r\n        HostBridgeSession.init(bridge);\r\n    };\r\n    return HostBridge;\r\n}());\r\nexports.HostBridge = HostBridge;\r\nif (typeof (_richApiNativeBridge) === \"object\" && _richApiNativeBridge) {\r\n    HostBridge.init(_richApiNativeBridge);\r\n}\r\nvar HostBridgeTest = (function () {\r\n    function HostBridgeTest() {\r\n    }\r\n    HostBridgeTest.setTestFunc = function (func) {\r\n        HostBridgeTest._testFunc = func;\r\n    };\r\n    return HostBridgeTest;\r\n}());\r\nexports.HostBridgeTest = HostBridgeTest;\r\nvar ObjectPath = (function () {\r\n    function ObjectPath(objectPathInfo, parentObjectPath, isCollection, isInvalidAfterRequest, operationType, flags) {\r\n        this.m_objectPathInfo = objectPathInfo;\r\n        this.m_parentObjectPath = parentObjectPath;\r\n        this.m_isCollection = isCollection;\r\n        this.m_isInvalidAfterRequest = isInvalidAfterRequest;\r\n        this.m_isValid = true;\r\n        this.m_operationType = operationType;\r\n        this.m_flags = flags;\r\n    }\r\n    Object.defineProperty(ObjectPath.prototype, \"objectPathInfo\", {\r\n        get: function () {\r\n            return this.m_objectPathInfo;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"operationType\", {\r\n        get: function () {\r\n            return this.m_operationType;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"flags\", {\r\n        get: function () {\r\n            return this.m_flags;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"isCollection\", {\r\n        get: function () {\r\n            return this.m_isCollection;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"isInvalidAfterRequest\", {\r\n        get: function () {\r\n            return this.m_isInvalidAfterRequest;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"parentObjectPath\", {\r\n        get: function () {\r\n            return this.m_parentObjectPath;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"argumentObjectPaths\", {\r\n        get: function () {\r\n            return this.m_argumentObjectPaths;\r\n        },\r\n        set: function (value) {\r\n            this.m_argumentObjectPaths = value;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"isValid\", {\r\n        get: function () {\r\n            return this.m_isValid;\r\n        },\r\n        set: function (value) {\r\n            this.m_isValid = value;\r\n            if (!value &&\r\n                this.m_objectPathInfo.ObjectPathType === 6 &&\r\n                this.m_savedObjectPathInfo) {\r\n                ObjectPath.copyObjectPathInfo(this.m_savedObjectPathInfo.pathInfo, this.m_objectPathInfo);\r\n                this.m_parentObjectPath = this.m_savedObjectPathInfo.parent;\r\n                this.m_isValid = true;\r\n                this.m_savedObjectPathInfo = null;\r\n            }\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"originalObjectPathInfo\", {\r\n        get: function () {\r\n            return this.m_originalObjectPathInfo;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ObjectPath.prototype, \"getByIdMethodName\", {\r\n        get: function () {\r\n            return this.m_getByIdMethodName;\r\n        },\r\n        set: function (value) {\r\n            this.m_getByIdMethodName = value;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    ObjectPath.prototype._updateAsNullObject = function () {\r\n        this.resetForUpdateUsingObjectData();\r\n        this.m_objectPathInfo.ObjectPathType = 7;\r\n        this.m_objectPathInfo.Name = \"\";\r\n        this.m_parentObjectPath = null;\r\n    };\r\n    ObjectPath.prototype.saveOriginalObjectPathInfo = function () {\r\n        if (exports.config.extendedErrorLogging && !this.m_originalObjectPathInfo) {\r\n            this.m_originalObjectPathInfo = {};\r\n            ObjectPath.copyObjectPathInfo(this.m_objectPathInfo, this.m_originalObjectPathInfo);\r\n        }\r\n    };\r\n    ObjectPath.prototype.updateUsingObjectData = function (value, clientObject) {\r\n        var referenceId = value[Constants.referenceId];\r\n        if (!Utility.isNullOrEmptyString(referenceId)) {\r\n            if (!this.m_savedObjectPathInfo &&\r\n                !this.isInvalidAfterRequest &&\r\n                ObjectPath.isRestorableObjectPath(this.m_objectPathInfo.ObjectPathType)) {\r\n                var pathInfo = {};\r\n                ObjectPath.copyObjectPathInfo(this.m_objectPathInfo, pathInfo);\r\n                this.m_savedObjectPathInfo = {\r\n                    pathInfo: pathInfo,\r\n                    parent: this.m_parentObjectPath\r\n                };\r\n            }\r\n            this.saveOriginalObjectPathInfo();\r\n            this.resetForUpdateUsingObjectData();\r\n            this.m_objectPathInfo.ObjectPathType = 6;\r\n            this.m_objectPathInfo.Name = referenceId;\r\n            delete this.m_objectPathInfo.ParentObjectPathId;\r\n            this.m_parentObjectPath = null;\r\n            return;\r\n        }\r\n        var collectionPropertyPath = clientObject[Constants.collectionPropertyPath];\r\n        if (!Utility.isNullOrEmptyString(collectionPropertyPath)) {\r\n            var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(value);\r\n            if (!Utility.isNullOrUndefined(id)) {\r\n                var propNames = collectionPropertyPath.split(\".\");\r\n                var parent_1 = clientObject.context[propNames[0]];\r\n                for (var i = 1; i < propNames.length; i++) {\r\n                    parent_1 = parent_1[propNames[i]];\r\n                }\r\n                this.saveOriginalObjectPathInfo();\r\n                this.resetForUpdateUsingObjectData();\r\n                this.m_parentObjectPath = parent_1._objectPath;\r\n                this.m_objectPathInfo.ParentObjectPathId = this.m_parentObjectPath.objectPathInfo.Id;\r\n                this.m_objectPathInfo.ObjectPathType = 5;\r\n                this.m_objectPathInfo.Name = \"\";\r\n                this.m_objectPathInfo.ArgumentInfo.Arguments = [id];\r\n                return;\r\n            }\r\n        }\r\n        var parentIsCollection = this.parentObjectPath && this.parentObjectPath.isCollection;\r\n        var getByIdMethodName = this.getByIdMethodName;\r\n        if (parentIsCollection || !Utility.isNullOrEmptyString(getByIdMethodName)) {\r\n            var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(value);\r\n            if (!Utility.isNullOrUndefined(id)) {\r\n                this.saveOriginalObjectPathInfo();\r\n                this.resetForUpdateUsingObjectData();\r\n                if (!Utility.isNullOrEmptyString(getByIdMethodName)) {\r\n                    this.m_objectPathInfo.ObjectPathType = 3;\r\n                    this.m_objectPathInfo.Name = getByIdMethodName;\r\n                    this.m_getByIdMethodName = null;\r\n                }\r\n                else {\r\n                    this.m_objectPathInfo.ObjectPathType = 5;\r\n                    this.m_objectPathInfo.Name = \"\";\r\n                }\r\n                this.m_objectPathInfo.ArgumentInfo.Arguments = [id];\r\n                return;\r\n            }\r\n        }\r\n    };\r\n    ObjectPath.prototype.resetForUpdateUsingObjectData = function () {\r\n        this.m_isInvalidAfterRequest = false;\r\n        this.m_isValid = true;\r\n        this.m_operationType = 1;\r\n        this.m_flags = 4;\r\n        this.m_objectPathInfo.ArgumentInfo = {};\r\n        this.m_argumentObjectPaths = null;\r\n    };\r\n    ObjectPath.isRestorableObjectPath = function (objectPathType) {\r\n        return (objectPathType === 1 ||\r\n            objectPathType === 5 ||\r\n            objectPathType === 3 ||\r\n            objectPathType === 4);\r\n    };\r\n    ObjectPath.copyObjectPathInfo = function (src, dest) {\r\n        dest.Id = src.Id;\r\n        dest.ArgumentInfo = src.ArgumentInfo;\r\n        dest.Name = src.Name;\r\n        dest.ObjectPathType = src.ObjectPathType;\r\n        dest.ParentObjectPathId = src.ParentObjectPathId;\r\n    };\r\n    return ObjectPath;\r\n}());\r\nexports.ObjectPath = ObjectPath;\r\nvar ObjectPathFactory = (function () {\r\n    function ObjectPathFactory() {\r\n    }\r\n    ObjectPathFactory.createGlobalObjectObjectPath = function (context) {\r\n        var objectPathInfo = { Id: context._nextId(), ObjectPathType: 1, Name: \"\" };\r\n        return new ObjectPath(objectPathInfo, null, false, false, 1, 4);\r\n    };\r\n    ObjectPathFactory.createNewObjectObjectPath = function (context, typeName, isCollection, flags) {\r\n        var objectPathInfo = { Id: context._nextId(), ObjectPathType: 2, Name: typeName };\r\n        var ret = new ObjectPath(objectPathInfo, null, isCollection, false, 1, Utility._fixupApiFlags(flags));\r\n        return ret;\r\n    };\r\n    ObjectPathFactory.createPropertyObjectPath = function (context, parent, propertyName, isCollection, isInvalidAfterRequest, flags) {\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 4,\r\n            Name: propertyName,\r\n            ParentObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n        };\r\n        var ret = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, 1, Utility._fixupApiFlags(flags));\r\n        return ret;\r\n    };\r\n    ObjectPathFactory.createIndexerObjectPath = function (context, parent, args) {\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 5,\r\n            Name: \"\",\r\n            ParentObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        objectPathInfo.ArgumentInfo.Arguments = args;\r\n        return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);\r\n    };\r\n    ObjectPathFactory.createIndexerObjectPathUsingParentPath = function (context, parentObjectPath, args) {\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 5,\r\n            Name: \"\",\r\n            ParentObjectPathId: parentObjectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        objectPathInfo.ArgumentInfo.Arguments = args;\r\n        return new ObjectPath(objectPathInfo, parentObjectPath, false, false, 1, 4);\r\n    };\r\n    ObjectPathFactory.createMethodObjectPath = function (context, parent, methodName, operationType, args, isCollection, isInvalidAfterRequest, getByIdMethodName, flags) {\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 3,\r\n            Name: methodName,\r\n            ParentObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        var argumentObjectPaths = Utility.setMethodArguments(context, objectPathInfo.ArgumentInfo, args);\r\n        var ret = new ObjectPath(objectPathInfo, parent._objectPath, isCollection, isInvalidAfterRequest, operationType, Utility._fixupApiFlags(flags));\r\n        ret.argumentObjectPaths = argumentObjectPaths;\r\n        ret.getByIdMethodName = getByIdMethodName;\r\n        return ret;\r\n    };\r\n    ObjectPathFactory.createReferenceIdObjectPath = function (context, referenceId) {\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 6,\r\n            Name: referenceId,\r\n            ArgumentInfo: {}\r\n        };\r\n        var ret = new ObjectPath(objectPathInfo, null, false, false, 1, 4);\r\n        return ret;\r\n    };\r\n    ObjectPathFactory.createChildItemObjectPathUsingIndexerOrGetItemAt = function (hasIndexerMethod, context, parent, childItem, index) {\r\n        var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(childItem);\r\n        if (hasIndexerMethod && !Utility.isNullOrUndefined(id)) {\r\n            return ObjectPathFactory.createChildItemObjectPathUsingIndexer(context, parent, childItem);\r\n        }\r\n        else {\r\n            return ObjectPathFactory.createChildItemObjectPathUsingGetItemAt(context, parent, childItem, index);\r\n        }\r\n    };\r\n    ObjectPathFactory.createChildItemObjectPathUsingIndexer = function (context, parent, childItem) {\r\n        var id = Utility.tryGetObjectIdFromLoadOrRetrieveResult(childItem);\r\n        var objectPathInfo = objectPathInfo =\r\n            {\r\n                Id: context._nextId(),\r\n                ObjectPathType: 5,\r\n                Name: \"\",\r\n                ParentObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n                ArgumentInfo: {}\r\n            };\r\n        objectPathInfo.ArgumentInfo.Arguments = [id];\r\n        return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);\r\n    };\r\n    ObjectPathFactory.createChildItemObjectPathUsingGetItemAt = function (context, parent, childItem, index) {\r\n        var indexFromServer = childItem[Constants.index];\r\n        if (indexFromServer) {\r\n            index = indexFromServer;\r\n        }\r\n        var objectPathInfo = {\r\n            Id: context._nextId(),\r\n            ObjectPathType: 3,\r\n            Name: Constants.getItemAt,\r\n            ParentObjectPathId: parent._objectPath.objectPathInfo.Id,\r\n            ArgumentInfo: {}\r\n        };\r\n        objectPathInfo.ArgumentInfo.Arguments = [index];\r\n        return new ObjectPath(objectPathInfo, parent._objectPath, false, false, 1, 4);\r\n    };\r\n    return ObjectPathFactory;\r\n}());\r\nexports.ObjectPathFactory = ObjectPathFactory;\r\nvar OfficeJsRequestExecutor = (function () {\r\n    function OfficeJsRequestExecutor(context) {\r\n        this.m_context = context;\r\n    }\r\n    OfficeJsRequestExecutor.prototype.executeAsync = function (customData, requestFlags, requestMessage) {\r\n        var _this = this;\r\n        var messageSafearray = RichApiMessageUtility.buildMessageArrayForIRequestExecutor(customData, requestFlags, requestMessage, OfficeJsRequestExecutor.SourceLibHeaderValue);\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            OSF.DDA.RichApi.executeRichApiRequestAsync(messageSafearray, function (result) {\r\n                Utility.log(\"Response:\");\r\n                Utility.log(JSON.stringify(result));\r\n                var response;\r\n                if (result.status == \"succeeded\") {\r\n                    response = RichApiMessageUtility.buildResponseOnSuccess(RichApiMessageUtility.getResponseBody(result), RichApiMessageUtility.getResponseHeaders(result));\r\n                }\r\n                else {\r\n                    response = RichApiMessageUtility.buildResponseOnError(result.error.code, result.error.message);\r\n                    _this.m_context._processOfficeJsErrorResponse(result.error.code, response);\r\n                }\r\n                resolve(response);\r\n            });\r\n        });\r\n    };\r\n    OfficeJsRequestExecutor.SourceLibHeaderValue = \"officejs\";\r\n    return OfficeJsRequestExecutor;\r\n}());\r\nexports.OfficeJsRequestExecutor = OfficeJsRequestExecutor;\r\n(function (_Internal) {\r\n    _Internal.OfficeRequire = function () {\r\n        return null;\r\n    }();\r\n})(_Internal = exports._Internal || (exports._Internal = {}));\r\n(function (_Internal) {\r\n    var PromiseImpl;\r\n    (function (PromiseImpl) {\r\n        function Init() {\r\n            return (function () {\r\n                \"use strict\";\r\n                function lib$es6$promise$utils$$objectOrFunction(x) {\r\n                    return typeof x === 'function' || (typeof x === 'object' && x !== null);\r\n                }\r\n                function lib$es6$promise$utils$$isFunction(x) {\r\n                    return typeof x === 'function';\r\n                }\r\n                function lib$es6$promise$utils$$isMaybeThenable(x) {\r\n                    return typeof x === 'object' && x !== null;\r\n                }\r\n                var lib$es6$promise$utils$$_isArray;\r\n                if (!Array.isArray) {\r\n                    lib$es6$promise$utils$$_isArray = function (x) {\r\n                        return Object.prototype.toString.call(x) === '[object Array]';\r\n                    };\r\n                }\r\n                else {\r\n                    lib$es6$promise$utils$$_isArray = Array.isArray;\r\n                }\r\n                var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\r\n                var lib$es6$promise$asap$$len = 0;\r\n                var lib$es6$promise$asap$$toString = {}.toString;\r\n                var lib$es6$promise$asap$$vertxNext;\r\n                var lib$es6$promise$asap$$customSchedulerFn;\r\n                var lib$es6$promise$asap$$asap = function asap(callback, arg) {\r\n                    lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\r\n                    lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\r\n                    lib$es6$promise$asap$$len += 2;\r\n                    if (lib$es6$promise$asap$$len === 2) {\r\n                        if (lib$es6$promise$asap$$customSchedulerFn) {\r\n                            lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\r\n                        }\r\n                        else {\r\n                            lib$es6$promise$asap$$scheduleFlush();\r\n                        }\r\n                    }\r\n                };\r\n                function lib$es6$promise$asap$$setScheduler(scheduleFn) {\r\n                    lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\r\n                }\r\n                function lib$es6$promise$asap$$setAsap(asapFn) {\r\n                    lib$es6$promise$asap$$asap = asapFn;\r\n                }\r\n                var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\r\n                var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\r\n                var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\r\n                var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\r\n                var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\r\n                    typeof importScripts !== 'undefined' &&\r\n                    typeof MessageChannel !== 'undefined';\r\n                function lib$es6$promise$asap$$useNextTick() {\r\n                    var nextTick = process.nextTick;\r\n                    var version = process.versions.node.match(/^(?:(\\d+)\\.)?(?:(\\d+)\\.)?(\\*|\\d+)$/);\r\n                    if (Array.isArray(version) && version[1] === '0' && version[2] === '10') {\r\n                        nextTick = setImmediate;\r\n                    }\r\n                    return function () {\r\n                        nextTick(lib$es6$promise$asap$$flush);\r\n                    };\r\n                }\r\n                function lib$es6$promise$asap$$useVertxTimer() {\r\n                    return function () {\r\n                        lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\r\n                    };\r\n                }\r\n                function lib$es6$promise$asap$$useMutationObserver() {\r\n                    var iterations = 0;\r\n                    var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\r\n                    var node = document.createTextNode('');\r\n                    observer.observe(node, { characterData: true });\r\n                    return function () {\r\n                        node.data = (iterations = ++iterations % 2);\r\n                    };\r\n                }\r\n                function lib$es6$promise$asap$$useMessageChannel() {\r\n                    var channel = new MessageChannel();\r\n                    channel.port1.onmessage = lib$es6$promise$asap$$flush;\r\n                    return function () {\r\n                        channel.port2.postMessage(0);\r\n                    };\r\n                }\r\n                function lib$es6$promise$asap$$useSetTimeout() {\r\n                    return function () {\r\n                        setTimeout(lib$es6$promise$asap$$flush, 1);\r\n                    };\r\n                }\r\n                var lib$es6$promise$asap$$queue = new Array(1000);\r\n                function lib$es6$promise$asap$$flush() {\r\n                    for (var i = 0; i < lib$es6$promise$asap$$len; i += 2) {\r\n                        var callback = lib$es6$promise$asap$$queue[i];\r\n                        var arg = lib$es6$promise$asap$$queue[i + 1];\r\n                        callback(arg);\r\n                        lib$es6$promise$asap$$queue[i] = undefined;\r\n                        lib$es6$promise$asap$$queue[i + 1] = undefined;\r\n                    }\r\n                    lib$es6$promise$asap$$len = 0;\r\n                }\r\n                var lib$es6$promise$asap$$scheduleFlush;\r\n                if (lib$es6$promise$asap$$isNode) {\r\n                    lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\r\n                }\r\n                else if (lib$es6$promise$asap$$BrowserMutationObserver) {\r\n                    lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\r\n                }\r\n                else if (lib$es6$promise$asap$$isWorker) {\r\n                    lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\r\n                }\r\n                else {\r\n                    lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\r\n                }\r\n                function lib$es6$promise$$internal$$noop() { }\r\n                var lib$es6$promise$$internal$$PENDING = void 0;\r\n                var lib$es6$promise$$internal$$FULFILLED = 1;\r\n                var lib$es6$promise$$internal$$REJECTED = 2;\r\n                var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n                function lib$es6$promise$$internal$$selfFullfillment() {\r\n                    return new TypeError(\"You cannot resolve a promise with itself\");\r\n                }\r\n                function lib$es6$promise$$internal$$cannotReturnOwn() {\r\n                    return new TypeError('A promises callback cannot return that same promise.');\r\n                }\r\n                function lib$es6$promise$$internal$$getThen(promise) {\r\n                    try {\r\n                        return promise.then;\r\n                    }\r\n                    catch (error) {\r\n                        lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\r\n                        return lib$es6$promise$$internal$$GET_THEN_ERROR;\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\r\n                    try {\r\n                        then.call(value, fulfillmentHandler, rejectionHandler);\r\n                    }\r\n                    catch (e) {\r\n                        return e;\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\r\n                    lib$es6$promise$asap$$asap(function (promise) {\r\n                        var sealed = false;\r\n                        var error = lib$es6$promise$$internal$$tryThen(then, thenable, function (value) {\r\n                            if (sealed) {\r\n                                return;\r\n                            }\r\n                            sealed = true;\r\n                            if (thenable !== value) {\r\n                                lib$es6$promise$$internal$$resolve(promise, value);\r\n                            }\r\n                            else {\r\n                                lib$es6$promise$$internal$$fulfill(promise, value);\r\n                            }\r\n                        }, function (reason) {\r\n                            if (sealed) {\r\n                                return;\r\n                            }\r\n                            sealed = true;\r\n                            lib$es6$promise$$internal$$reject(promise, reason);\r\n                        }, 'Settle: ' + (promise._label || ' unknown promise'));\r\n                        if (!sealed && error) {\r\n                            sealed = true;\r\n                            lib$es6$promise$$internal$$reject(promise, error);\r\n                        }\r\n                    }, promise);\r\n                }\r\n                function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\r\n                    if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\r\n                        lib$es6$promise$$internal$$fulfill(promise, thenable._result);\r\n                    }\r\n                    else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\r\n                        lib$es6$promise$$internal$$reject(promise, thenable._result);\r\n                    }\r\n                    else {\r\n                        lib$es6$promise$$internal$$subscribe(thenable, undefined, function (value) {\r\n                            lib$es6$promise$$internal$$resolve(promise, value);\r\n                        }, function (reason) {\r\n                            lib$es6$promise$$internal$$reject(promise, reason);\r\n                        });\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {\r\n                    if (maybeThenable.constructor === promise.constructor) {\r\n                        lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\r\n                    }\r\n                    else {\r\n                        var then = lib$es6$promise$$internal$$getThen(maybeThenable);\r\n                        if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\r\n                            lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\r\n                        }\r\n                        else if (then === undefined) {\r\n                            lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n                        }\r\n                        else if (lib$es6$promise$utils$$isFunction(then)) {\r\n                            lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\r\n                        }\r\n                        else {\r\n                            lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\r\n                        }\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$resolve(promise, value) {\r\n                    if (promise === value) {\r\n                        lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFullfillment());\r\n                    }\r\n                    else if (lib$es6$promise$utils$$objectOrFunction(value)) {\r\n                        lib$es6$promise$$internal$$handleMaybeThenable(promise, value);\r\n                    }\r\n                    else {\r\n                        lib$es6$promise$$internal$$fulfill(promise, value);\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$publishRejection(promise) {\r\n                    if (promise._onerror) {\r\n                        promise._onerror(promise._result);\r\n                    }\r\n                    lib$es6$promise$$internal$$publish(promise);\r\n                }\r\n                function lib$es6$promise$$internal$$fulfill(promise, value) {\r\n                    if (promise._state !== lib$es6$promise$$internal$$PENDING) {\r\n                        return;\r\n                    }\r\n                    promise._result = value;\r\n                    promise._state = lib$es6$promise$$internal$$FULFILLED;\r\n                    if (promise._subscribers.length !== 0) {\r\n                        lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$reject(promise, reason) {\r\n                    if (promise._state !== lib$es6$promise$$internal$$PENDING) {\r\n                        return;\r\n                    }\r\n                    promise._state = lib$es6$promise$$internal$$REJECTED;\r\n                    promise._result = reason;\r\n                    lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\r\n                }\r\n                function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\r\n                    var subscribers = parent._subscribers;\r\n                    var length = subscribers.length;\r\n                    parent._onerror = null;\r\n                    subscribers[length] = child;\r\n                    subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\r\n                    subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\r\n                    if (length === 0 && parent._state) {\r\n                        lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$publish(promise) {\r\n                    var subscribers = promise._subscribers;\r\n                    var settled = promise._state;\r\n                    if (subscribers.length === 0) {\r\n                        return;\r\n                    }\r\n                    var child, callback, detail = promise._result;\r\n                    for (var i = 0; i < subscribers.length; i += 3) {\r\n                        child = subscribers[i];\r\n                        callback = subscribers[i + settled];\r\n                        if (child) {\r\n                            lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\r\n                        }\r\n                        else {\r\n                            callback(detail);\r\n                        }\r\n                    }\r\n                    promise._subscribers.length = 0;\r\n                }\r\n                function lib$es6$promise$$internal$$ErrorObject() {\r\n                    this.error = null;\r\n                }\r\n                var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\r\n                function lib$es6$promise$$internal$$tryCatch(callback, detail) {\r\n                    try {\r\n                        return callback(detail);\r\n                    }\r\n                    catch (e) {\r\n                        lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\r\n                        return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\r\n                    var hasCallback = lib$es6$promise$utils$$isFunction(callback), value, error, succeeded, failed;\r\n                    if (hasCallback) {\r\n                        value = lib$es6$promise$$internal$$tryCatch(callback, detail);\r\n                        if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\r\n                            failed = true;\r\n                            error = value.error;\r\n                            value = null;\r\n                        }\r\n                        else {\r\n                            succeeded = true;\r\n                        }\r\n                        if (promise === value) {\r\n                            lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\r\n                            return;\r\n                        }\r\n                    }\r\n                    else {\r\n                        value = detail;\r\n                        succeeded = true;\r\n                    }\r\n                    if (promise._state !== lib$es6$promise$$internal$$PENDING) {\r\n                    }\r\n                    else if (hasCallback && succeeded) {\r\n                        lib$es6$promise$$internal$$resolve(promise, value);\r\n                    }\r\n                    else if (failed) {\r\n                        lib$es6$promise$$internal$$reject(promise, error);\r\n                    }\r\n                    else if (settled === lib$es6$promise$$internal$$FULFILLED) {\r\n                        lib$es6$promise$$internal$$fulfill(promise, value);\r\n                    }\r\n                    else if (settled === lib$es6$promise$$internal$$REJECTED) {\r\n                        lib$es6$promise$$internal$$reject(promise, value);\r\n                    }\r\n                }\r\n                function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\r\n                    try {\r\n                        resolver(function resolvePromise(value) {\r\n                            lib$es6$promise$$internal$$resolve(promise, value);\r\n                        }, function rejectPromise(reason) {\r\n                            lib$es6$promise$$internal$$reject(promise, reason);\r\n                        });\r\n                    }\r\n                    catch (e) {\r\n                        lib$es6$promise$$internal$$reject(promise, e);\r\n                    }\r\n                }\r\n                function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\r\n                    var enumerator = this;\r\n                    enumerator._instanceConstructor = Constructor;\r\n                    enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n                    if (enumerator._validateInput(input)) {\r\n                        enumerator._input = input;\r\n                        enumerator.length = input.length;\r\n                        enumerator._remaining = input.length;\r\n                        enumerator._init();\r\n                        if (enumerator.length === 0) {\r\n                            lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\r\n                        }\r\n                        else {\r\n                            enumerator.length = enumerator.length || 0;\r\n                            enumerator._enumerate();\r\n                            if (enumerator._remaining === 0) {\r\n                                lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\r\n                            }\r\n                        }\r\n                    }\r\n                    else {\r\n                        lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());\r\n                    }\r\n                }\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function (input) {\r\n                    return lib$es6$promise$utils$$isArray(input);\r\n                };\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function () {\r\n                    return new _Internal.Error('Array Methods must be provided an Array');\r\n                };\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._init = function () {\r\n                    this._result = new Array(this.length);\r\n                };\r\n                var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function () {\r\n                    var enumerator = this;\r\n                    var length = enumerator.length;\r\n                    var promise = enumerator.promise;\r\n                    var input = enumerator._input;\r\n                    for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\r\n                        enumerator._eachEntry(input[i], i);\r\n                    }\r\n                };\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function (entry, i) {\r\n                    var enumerator = this;\r\n                    var c = enumerator._instanceConstructor;\r\n                    if (lib$es6$promise$utils$$isMaybeThenable(entry)) {\r\n                        if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {\r\n                            entry._onerror = null;\r\n                            enumerator._settledAt(entry._state, i, entry._result);\r\n                        }\r\n                        else {\r\n                            enumerator._willSettleAt(c.resolve(entry), i);\r\n                        }\r\n                    }\r\n                    else {\r\n                        enumerator._remaining--;\r\n                        enumerator._result[i] = entry;\r\n                    }\r\n                };\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function (state, i, value) {\r\n                    var enumerator = this;\r\n                    var promise = enumerator.promise;\r\n                    if (promise._state === lib$es6$promise$$internal$$PENDING) {\r\n                        enumerator._remaining--;\r\n                        if (state === lib$es6$promise$$internal$$REJECTED) {\r\n                            lib$es6$promise$$internal$$reject(promise, value);\r\n                        }\r\n                        else {\r\n                            enumerator._result[i] = value;\r\n                        }\r\n                    }\r\n                    if (enumerator._remaining === 0) {\r\n                        lib$es6$promise$$internal$$fulfill(promise, enumerator._result);\r\n                    }\r\n                };\r\n                lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function (promise, i) {\r\n                    var enumerator = this;\r\n                    lib$es6$promise$$internal$$subscribe(promise, undefined, function (value) {\r\n                        enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\r\n                    }, function (reason) {\r\n                        enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\r\n                    });\r\n                };\r\n                function lib$es6$promise$promise$all$$all(entries) {\r\n                    return new lib$es6$promise$enumerator$$default(this, entries).promise;\r\n                }\r\n                var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\r\n                function lib$es6$promise$promise$race$$race(entries) {\r\n                    var Constructor = this;\r\n                    var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n                    if (!lib$es6$promise$utils$$isArray(entries)) {\r\n                        lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\r\n                        return promise;\r\n                    }\r\n                    var length = entries.length;\r\n                    function onFulfillment(value) {\r\n                        lib$es6$promise$$internal$$resolve(promise, value);\r\n                    }\r\n                    function onRejection(reason) {\r\n                        lib$es6$promise$$internal$$reject(promise, reason);\r\n                    }\r\n                    for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\r\n                        lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\r\n                    }\r\n                    return promise;\r\n                }\r\n                var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\r\n                function lib$es6$promise$promise$resolve$$resolve(object) {\r\n                    var Constructor = this;\r\n                    if (object && typeof object === 'object' && object.constructor === Constructor) {\r\n                        return object;\r\n                    }\r\n                    var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n                    lib$es6$promise$$internal$$resolve(promise, object);\r\n                    return promise;\r\n                }\r\n                var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\r\n                function lib$es6$promise$promise$reject$$reject(reason) {\r\n                    var Constructor = this;\r\n                    var promise = new Constructor(lib$es6$promise$$internal$$noop);\r\n                    lib$es6$promise$$internal$$reject(promise, reason);\r\n                    return promise;\r\n                }\r\n                var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\r\n                var lib$es6$promise$promise$$counter = 0;\r\n                function lib$es6$promise$promise$$needsResolver() {\r\n                    throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\r\n                }\r\n                function lib$es6$promise$promise$$needsNew() {\r\n                    throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\r\n                }\r\n                var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\r\n                function lib$es6$promise$promise$$Promise(resolver) {\r\n                    this._id = lib$es6$promise$promise$$counter++;\r\n                    this._state = undefined;\r\n                    this._result = undefined;\r\n                    this._subscribers = [];\r\n                    if (lib$es6$promise$$internal$$noop !== resolver) {\r\n                        if (!lib$es6$promise$utils$$isFunction(resolver)) {\r\n                            lib$es6$promise$promise$$needsResolver();\r\n                        }\r\n                        if (!(this instanceof lib$es6$promise$promise$$Promise)) {\r\n                            lib$es6$promise$promise$$needsNew();\r\n                        }\r\n                        lib$es6$promise$$internal$$initializePromise(this, resolver);\r\n                    }\r\n                }\r\n                lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\r\n                lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\r\n                lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\r\n                lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\r\n                lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\r\n                lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\r\n                lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\r\n                lib$es6$promise$promise$$Promise.prototype = {\r\n                    constructor: lib$es6$promise$promise$$Promise,\r\n                    then: function (onFulfillment, onRejection) {\r\n                        var parent = this;\r\n                        var state = parent._state;\r\n                        if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\r\n                            return this;\r\n                        }\r\n                        var child = new this.constructor(lib$es6$promise$$internal$$noop);\r\n                        var result = parent._result;\r\n                        if (state) {\r\n                            var callback = arguments[state - 1];\r\n                            lib$es6$promise$asap$$asap(function () {\r\n                                lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\r\n                            });\r\n                        }\r\n                        else {\r\n                            lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\r\n                        }\r\n                        return child;\r\n                    },\r\n                    'catch': function (onRejection) {\r\n                        return this.then(null, onRejection);\r\n                    }\r\n                };\r\n                return lib$es6$promise$promise$$default;\r\n            }).call(this);\r\n        }\r\n        PromiseImpl.Init = Init;\r\n    })(PromiseImpl = _Internal.PromiseImpl || (_Internal.PromiseImpl = {}));\r\n})(_Internal = exports._Internal || (exports._Internal = {}));\r\n(function (_Internal) {\r\n    function isEdgeLessThan14() {\r\n        return false;\r\n    }\r\n    function determinePromise() {\r\n        if (typeof (window) === \"undefined\" && typeof (Promise) === \"function\") {\r\n            return Promise;\r\n        }\r\n        if (typeof (window) !== \"undefined\" && window.Promise) {\r\n            if (isEdgeLessThan14()) {\r\n                return _Internal.PromiseImpl.Init();\r\n            }\r\n            else {\r\n                return window.Promise;\r\n            }\r\n        }\r\n        else {\r\n            return _Internal.PromiseImpl.Init();\r\n        }\r\n    }\r\n    _Internal.OfficePromise = determinePromise();\r\n})(_Internal = exports._Internal || (exports._Internal = {}));\r\nvar OfficePromise = _Internal.OfficePromise;\r\nexports.Promise = OfficePromise;\r\nvar TrackedObjects = (function () {\r\n    function TrackedObjects(context) {\r\n        this._autoCleanupList = {};\r\n        this.m_context = context;\r\n    }\r\n    TrackedObjects.prototype.add = function (param) {\r\n        var _this = this;\r\n        if (Array.isArray(param)) {\r\n            param.forEach(function (item) { return _this._addCommon(item, true); });\r\n        }\r\n        else {\r\n            this._addCommon(param, true);\r\n        }\r\n    };\r\n    TrackedObjects.prototype._autoAdd = function (object) {\r\n        this._addCommon(object, false);\r\n        this._autoCleanupList[object._objectPath.objectPathInfo.Id] = object;\r\n    };\r\n    TrackedObjects.prototype._autoTrackIfNecessaryWhenHandleObjectResultValue = function (object, resultValue) {\r\n        var shouldAutoTrack = (this.m_context._autoCleanup &&\r\n            !object[Constants.isTracked] &&\r\n            object !== this.m_context._rootObject &&\r\n            resultValue &&\r\n            !Utility.isNullOrEmptyString(resultValue[Constants.referenceId]));\r\n        if (shouldAutoTrack) {\r\n            this._autoCleanupList[object._objectPath.objectPathInfo.Id] = object;\r\n            object[Constants.isTracked] = true;\r\n        }\r\n    };\r\n    TrackedObjects.prototype._addCommon = function (object, isExplicitlyAdded) {\r\n        if (object[Constants.isTracked]) {\r\n            if (isExplicitlyAdded && this.m_context._autoCleanup) {\r\n                delete this._autoCleanupList[object._objectPath.objectPathInfo.Id];\r\n            }\r\n            return;\r\n        }\r\n        var referenceId = object[Constants.referenceId];\r\n        var donotKeepReference = object._objectPath.objectPathInfo[Constants.objectPathInfoDoNotKeepReferenceFieldName];\r\n        if (donotKeepReference) {\r\n            throw Utility.createRuntimeError(ErrorCodes.generalException, Utility._getResourceString(ResourceStrings.objectIsUntracked), null);\r\n        }\r\n        if (Utility.isNullOrEmptyString(referenceId) && object._KeepReference) {\r\n            object._KeepReference();\r\n            ActionFactory.createInstantiateAction(this.m_context, object);\r\n            if (isExplicitlyAdded && this.m_context._autoCleanup) {\r\n                delete this._autoCleanupList[object._objectPath.objectPathInfo.Id];\r\n            }\r\n            object[Constants.isTracked] = true;\r\n        }\r\n    };\r\n    TrackedObjects.prototype.remove = function (param) {\r\n        var _this = this;\r\n        if (Array.isArray(param)) {\r\n            param.forEach(function (item) { return _this._removeCommon(item); });\r\n        }\r\n        else {\r\n            this._removeCommon(param);\r\n        }\r\n    };\r\n    TrackedObjects.prototype._removeCommon = function (object) {\r\n        object._objectPath.objectPathInfo[Constants.objectPathInfoDoNotKeepReferenceFieldName] = true;\r\n        object.context._pendingRequest._removeKeepReferenceAction(object._objectPath.objectPathInfo.Id);\r\n        var referenceId = object[Constants.referenceId];\r\n        if (!Utility.isNullOrEmptyString(referenceId)) {\r\n            var rootObject = this.m_context._rootObject;\r\n            if (rootObject._RemoveReference) {\r\n                rootObject._RemoveReference(referenceId);\r\n            }\r\n        }\r\n        delete object[Constants.isTracked];\r\n    };\r\n    TrackedObjects.prototype._retrieveAndClearAutoCleanupList = function () {\r\n        var list = this._autoCleanupList;\r\n        this._autoCleanupList = {};\r\n        return list;\r\n    };\r\n    return TrackedObjects;\r\n}());\r\nexports.TrackedObjects = TrackedObjects;\r\nvar RequestPrettyPrinter = (function () {\r\n    function RequestPrettyPrinter(globalObjName, referencedObjectPaths, actions, showDispose, removePII) {\r\n        if (!globalObjName) {\r\n            globalObjName = \"root\";\r\n        }\r\n        this.m_globalObjName = globalObjName;\r\n        this.m_referencedObjectPaths = referencedObjectPaths;\r\n        this.m_actions = actions;\r\n        this.m_statements = [];\r\n        this.m_variableNameForObjectPathMap = {};\r\n        this.m_variableNameToObjectPathMap = {};\r\n        this.m_declaredObjectPathMap = {};\r\n        this.m_showDispose = showDispose;\r\n        this.m_removePII = removePII;\r\n    }\r\n    RequestPrettyPrinter.prototype.process = function () {\r\n        if (this.m_showDispose) {\r\n            ClientRequest._calculateLastUsedObjectPathIds(this.m_actions);\r\n        }\r\n        for (var i = 0; i < this.m_actions.length; i++) {\r\n            this.processOneAction(this.m_actions[i]);\r\n        }\r\n        return this.m_statements;\r\n    };\r\n    RequestPrettyPrinter.prototype.processForDebugStatementInfo = function (actionIndex) {\r\n        if (this.m_showDispose) {\r\n            ClientRequest._calculateLastUsedObjectPathIds(this.m_actions);\r\n        }\r\n        var surroundingCount = 5;\r\n        this.m_statements = [];\r\n        var oneStatement = \"\";\r\n        var statementIndex = -1;\r\n        for (var i = 0; i < this.m_actions.length; i++) {\r\n            this.processOneAction(this.m_actions[i]);\r\n            if (actionIndex == i) {\r\n                statementIndex = this.m_statements.length - 1;\r\n            }\r\n            if (statementIndex >= 0 && this.m_statements.length > statementIndex + surroundingCount + 1) {\r\n                break;\r\n            }\r\n        }\r\n        if (statementIndex < 0) {\r\n            return null;\r\n        }\r\n        var startIndex = statementIndex - surroundingCount;\r\n        if (startIndex < 0) {\r\n            startIndex = 0;\r\n        }\r\n        var endIndex = statementIndex + 1 + surroundingCount;\r\n        if (endIndex > this.m_statements.length) {\r\n            endIndex = this.m_statements.length;\r\n        }\r\n        var surroundingStatements = [];\r\n        if (startIndex != 0) {\r\n            surroundingStatements.push(\"...\");\r\n        }\r\n        for (var i_1 = startIndex; i_1 < statementIndex; i_1++) {\r\n            surroundingStatements.push(this.m_statements[i_1]);\r\n        }\r\n        surroundingStatements.push(\"// >>>>>\");\r\n        surroundingStatements.push(this.m_statements[statementIndex]);\r\n        surroundingStatements.push(\"// <<<<<\");\r\n        for (var i_2 = statementIndex + 1; i_2 < endIndex; i_2++) {\r\n            surroundingStatements.push(this.m_statements[i_2]);\r\n        }\r\n        if (endIndex < this.m_statements.length) {\r\n            surroundingStatements.push(\"...\");\r\n        }\r\n        return {\r\n            statement: this.m_statements[statementIndex],\r\n            surroundingStatements: surroundingStatements\r\n        };\r\n    };\r\n    RequestPrettyPrinter.prototype.processOneAction = function (action) {\r\n        var actionInfo = action.actionInfo;\r\n        switch (actionInfo.ActionType) {\r\n            case 1:\r\n                this.processInstantiateAction(action);\r\n                break;\r\n            case 3:\r\n                this.processMethodAction(action);\r\n                break;\r\n            case 2:\r\n                this.processQueryAction(action);\r\n                break;\r\n            case 7:\r\n                this.processQueryAsJsonAction(action);\r\n                break;\r\n            case 6:\r\n                this.processRecursiveQueryAction(action);\r\n                break;\r\n            case 4:\r\n                this.processSetPropertyAction(action);\r\n                break;\r\n            case 5:\r\n                this.processTraceAction(action);\r\n                break;\r\n            case 8:\r\n                this.processEnsureUnchangedAction(action);\r\n                break;\r\n            case 9:\r\n                this.processUpdateAction(action);\r\n                break;\r\n        }\r\n    };\r\n    RequestPrettyPrinter.prototype.processInstantiateAction = function (action) {\r\n        var objId = action.actionInfo.ObjectPathId;\r\n        var objPath = this.m_referencedObjectPaths[objId];\r\n        var varName = this.getObjVarName(objId);\r\n        if (!this.m_declaredObjectPathMap[objId]) {\r\n            var statement = \"var \" + varName + \" = \" + this.buildObjectPathExpressionWithParent(objPath) + \";\";\r\n            statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n            this.m_statements.push(statement);\r\n            this.m_declaredObjectPathMap[objId] = varName;\r\n        }\r\n        else {\r\n            var statement = \"// Instantiate {\" + varName + \"}\";\r\n            statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n            this.m_statements.push(statement);\r\n        }\r\n    };\r\n    RequestPrettyPrinter.prototype.processMethodAction = function (action) {\r\n        var methodName = action.actionInfo.Name;\r\n        if (methodName === \"_KeepReference\") {\r\n            if (!exports._internalConfig.showInternalApiInDebugInfo) {\r\n                return;\r\n            }\r\n            methodName = \"track\";\r\n        }\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".\" + Utility._toCamelLowerCase(methodName) + \"(\" + this.buildArgumentsExpression(action.actionInfo.ArgumentInfo) + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processQueryAction = function (action) {\r\n        var queryExp = this.buildQueryExpression(action);\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".load(\" + queryExp + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processQueryAsJsonAction = function (action) {\r\n        var queryExp = this.buildQueryExpression(action);\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".retrieve(\" + queryExp + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processRecursiveQueryAction = function (action) {\r\n        var queryExp = \"\";\r\n        if (action.actionInfo.RecursiveQueryInfo) {\r\n            queryExp = JSON.stringify(action.actionInfo.RecursiveQueryInfo);\r\n        }\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".loadRecursive(\" + queryExp + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processSetPropertyAction = function (action) {\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".\" + Utility._toCamelLowerCase(action.actionInfo.Name) + \" = \" + this.buildArgumentsExpression(action.actionInfo.ArgumentInfo) + \";\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processTraceAction = function (action) {\r\n        var statement = \"context.trace();\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processEnsureUnchangedAction = function (action) {\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".ensureUnchanged(\" + JSON.stringify(action.actionInfo.ObjectState) + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.processUpdateAction = function (action) {\r\n        var statement = this.getObjVarName(action.actionInfo.ObjectPathId) + \".update(\" + JSON.stringify(action.actionInfo.ObjectState) + \");\";\r\n        statement = this.appendDisposeCommentIfRelevant(statement, action);\r\n        this.m_statements.push(statement);\r\n    };\r\n    RequestPrettyPrinter.prototype.appendDisposeCommentIfRelevant = function (statement, action) {\r\n        var _this = this;\r\n        if (this.m_showDispose) {\r\n            var lastUsedObjectPathIds = action.actionInfo.L;\r\n            if (lastUsedObjectPathIds && lastUsedObjectPathIds.length > 0) {\r\n                var objectNamesToDispose = lastUsedObjectPathIds.map(function (item) { return _this.getObjVarName(item); }).join(\", \");\r\n                return statement + \" // And then dispose {\" + objectNamesToDispose + \"}\";\r\n            }\r\n        }\r\n        return statement;\r\n    };\r\n    RequestPrettyPrinter.prototype.buildQueryExpression = function (action) {\r\n        if (action.actionInfo.QueryInfo) {\r\n            var option = {};\r\n            option.select = action.actionInfo.QueryInfo.Select;\r\n            option.expand = action.actionInfo.QueryInfo.Expand;\r\n            option.skip = action.actionInfo.QueryInfo.Skip;\r\n            option.top = action.actionInfo.QueryInfo.Top;\r\n            if (typeof (option.top) === \"undefined\" && typeof (option.skip) === \"undefined\" && typeof (option.expand) === \"undefined\") {\r\n                if (typeof (option.select) === \"undefined\") {\r\n                    return \"\";\r\n                }\r\n                else {\r\n                    return JSON.stringify(option.select);\r\n                }\r\n            }\r\n            else {\r\n                return JSON.stringify(option);\r\n            }\r\n        }\r\n        return \"\";\r\n    };\r\n    RequestPrettyPrinter.prototype.buildObjectPathExpressionWithParent = function (objPath) {\r\n        var hasParent = objPath.objectPathInfo.ObjectPathType == 5 ||\r\n            objPath.objectPathInfo.ObjectPathType == 3 ||\r\n            objPath.objectPathInfo.ObjectPathType == 4;\r\n        if (hasParent && objPath.objectPathInfo.ParentObjectPathId) {\r\n            return this.getObjVarName(objPath.objectPathInfo.ParentObjectPathId) + \".\" + this.buildObjectPathExpression(objPath);\r\n        }\r\n        return this.buildObjectPathExpression(objPath);\r\n    };\r\n    RequestPrettyPrinter.prototype.buildObjectPathExpression = function (objPath) {\r\n        var expr = this.buildObjectPathInfoExpression(objPath.objectPathInfo);\r\n        var originalObjectPathInfo = objPath.originalObjectPathInfo;\r\n        if (originalObjectPathInfo) {\r\n            expr = expr + \" /* originally \" + this.buildObjectPathInfoExpression(originalObjectPathInfo) + \" */\";\r\n        }\r\n        return expr;\r\n    };\r\n    RequestPrettyPrinter.prototype.buildObjectPathInfoExpression = function (objectPathInfo) {\r\n        switch (objectPathInfo.ObjectPathType) {\r\n            case 1:\r\n                return \"context.\" + this.m_globalObjName;\r\n            case 5:\r\n                return \"getItem(\" + this.buildArgumentsExpression(objectPathInfo.ArgumentInfo) + \")\";\r\n            case 3:\r\n                return Utility._toCamelLowerCase(objectPathInfo.Name) + \"(\" + this.buildArgumentsExpression(objectPathInfo.ArgumentInfo) + \")\";\r\n            case 2:\r\n                return objectPathInfo.Name + \".newObject()\";\r\n            case 7:\r\n                return \"null\";\r\n            case 4:\r\n                return Utility._toCamelLowerCase(objectPathInfo.Name);\r\n            case 6:\r\n                return \"context.\" + this.m_globalObjName + \"._getObjectByReferenceId(\" + JSON.stringify(objectPathInfo.Name) + \")\";\r\n        }\r\n    };\r\n    RequestPrettyPrinter.prototype.buildArgumentsExpression = function (args) {\r\n        var ret = \"\";\r\n        if (!args.Arguments || args.Arguments.length === 0) {\r\n            return ret;\r\n        }\r\n        if (this.m_removePII) {\r\n            if (typeof (args.Arguments[0]) === \"undefined\") {\r\n                return ret;\r\n            }\r\n            return \"...\";\r\n        }\r\n        for (var i = 0; i < args.Arguments.length; i++) {\r\n            if (i > 0) {\r\n                ret = ret + \", \";\r\n            }\r\n            ret = ret + this.buildArgumentLiteral(args.Arguments[i], args.ReferencedObjectPathIds ? args.ReferencedObjectPathIds[i] : null);\r\n        }\r\n        if (ret === \"undefined\") {\r\n            ret = \"\";\r\n        }\r\n        return ret;\r\n    };\r\n    RequestPrettyPrinter.prototype.buildArgumentLiteral = function (value, objectPathId) {\r\n        if (typeof value == \"number\" && value === objectPathId) {\r\n            return this.getObjVarName(objectPathId);\r\n        }\r\n        else {\r\n            return JSON.stringify(value);\r\n        }\r\n    };\r\n    RequestPrettyPrinter.prototype.getObjVarNameBase = function (objectPathId) {\r\n        var ret = \"v\";\r\n        var objPath = this.m_referencedObjectPaths[objectPathId];\r\n        if (objPath) {\r\n            switch (objPath.objectPathInfo.ObjectPathType) {\r\n                case 1:\r\n                    ret = this.m_globalObjName;\r\n                    break;\r\n                case 4:\r\n                    ret = Utility._toCamelLowerCase(objPath.objectPathInfo.Name);\r\n                    break;\r\n                case 3:\r\n                    var methodName = objPath.objectPathInfo.Name;\r\n                    if (methodName.length > 3 && methodName.substr(0, 3) === \"Get\") {\r\n                        methodName = methodName.substr(3);\r\n                    }\r\n                    ret = Utility._toCamelLowerCase(methodName);\r\n                    break;\r\n                case 5:\r\n                    var parentName = this.getObjVarNameBase(objPath.objectPathInfo.ParentObjectPathId);\r\n                    if (parentName.charAt(parentName.length - 1) === \"s\") {\r\n                        ret = parentName.substr(0, parentName.length - 1);\r\n                    }\r\n                    else {\r\n                        ret = parentName + \"Item\";\r\n                    }\r\n                    break;\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    RequestPrettyPrinter.prototype.getObjVarName = function (objectPathId) {\r\n        if (this.m_variableNameForObjectPathMap[objectPathId]) {\r\n            return this.m_variableNameForObjectPathMap[objectPathId];\r\n        }\r\n        var ret = this.getObjVarNameBase(objectPathId);\r\n        if (!this.m_variableNameToObjectPathMap[ret]) {\r\n            this.m_variableNameForObjectPathMap[objectPathId] = ret;\r\n            this.m_variableNameToObjectPathMap[ret] = objectPathId;\r\n            return ret;\r\n        }\r\n        var i = 1;\r\n        while (this.m_variableNameToObjectPathMap[ret + i.toString()]) {\r\n            i++;\r\n        }\r\n        ret = ret + i.toString();\r\n        this.m_variableNameForObjectPathMap[objectPathId] = ret;\r\n        this.m_variableNameToObjectPathMap[ret] = objectPathId;\r\n        return ret;\r\n    };\r\n    return RequestPrettyPrinter;\r\n}());\r\nexports.RequestPrettyPrinter = RequestPrettyPrinter;\r\nvar ResourceStrings = (function () {\r\n    function ResourceStrings() {\r\n    }\r\n    ResourceStrings.cannotRegisterEvent = \"CannotRegisterEvent\";\r\n    ResourceStrings.connectionFailureWithStatus = \"ConnectionFailureWithStatus\";\r\n    ResourceStrings.connectionFailureWithDetails = \"ConnectionFailureWithDetails\";\r\n    ResourceStrings.invalidObjectPath = \"InvalidObjectPath\";\r\n    ResourceStrings.invalidRequestContext = \"InvalidRequestContext\";\r\n    ResourceStrings.invalidArgument = \"InvalidArgument\";\r\n    ResourceStrings.invalidArgumentGeneric = \"InvalidArgumentGeneric\";\r\n    ResourceStrings.propertyNotLoaded = \"PropertyNotLoaded\";\r\n    ResourceStrings.runMustReturnPromise = \"RunMustReturnPromise\";\r\n    ResourceStrings.timeout = \"Timeout\";\r\n    ResourceStrings.propertyDoesNotExist = \"PropertyDoesNotExist\";\r\n    ResourceStrings.attemptingToSetReadOnlyProperty = \"AttemptingToSetReadOnlyProperty\";\r\n    ResourceStrings.moreInfoInnerError = \"MoreInfoInnerError\";\r\n    ResourceStrings.cannotApplyPropertyThroughSetMethod = \"CannotApplyPropertyThroughSetMethod\";\r\n    ResourceStrings.valueNotLoaded = \"ValueNotLoaded\";\r\n    ResourceStrings.invalidOrTimedOutSessionMessage = \"InvalidOrTimedOutSessionMessage\";\r\n    ResourceStrings.invalidOperationInCellEditMode = \"InvalidOperationInCellEditMode\";\r\n    ResourceStrings.objectIsUntracked = \"ObjectIsUntracked\";\r\n    ResourceStrings.customFunctionDefintionMissing = \"CustomFunctionDefintionMissing\";\r\n    ResourceStrings.customFunctionImplementationMissing = \"CustomFunctionImplementationMissing\";\r\n    ResourceStrings.customFunctionNameContainsBadChars = \"CustomFunctionNameContainsBadChars\";\r\n    ResourceStrings.customFunctionNameCannotSplit = \"CustomFunctionNameCannotSplit\";\r\n    ResourceStrings.customFunctionUnexpectedNumberOfEntriesInResultBatch = \"CustomFunctionUnexpectedNumberOfEntriesInResultBatch\";\r\n    ResourceStrings.customFunctionCancellationHandlerMissing = \"CustomFunctionCancellationHandlerMissing\";\r\n    ResourceStrings.apiNotFoundDetails = \"ApiNotFoundDetails\";\r\n    ResourceStrings.pendingBatchInProgress = \"PendingBatchInProgress\";\r\n    ResourceStrings.notInsideBatch = \"NotInsideBatch\";\r\n    ResourceStrings.cannotUpdateReadOnlyProperty = \"CannotUpdateReadOnlyProperty\";\r\n    return ResourceStrings;\r\n}());\r\nexports.ResourceStrings = ResourceStrings;\r\nvar ResourceStringValues = (function () {\r\n    function ResourceStringValues() {\r\n    }\r\n    ResourceStringValues.CannotRegisterEvent = \"The event handler cannot be registered.\";\r\n    ResourceStringValues.ConnectionFailureWithStatus = \"The request failed with status code of {0}.\";\r\n    ResourceStringValues.ConnectionFailureWithDetails = \"The request failed with status code of {0}, error code {1} and the following error message: {2}\";\r\n    ResourceStringValues.InvalidArgument = \"The argument '{0}' doesn't work for this situation, is missing, or isn't in the right format.\";\r\n    ResourceStringValues.InvalidObjectPath = \"The object path '{0}' isn't working for what you're trying to do. If you're using the object across multiple \\\"context.sync\\\" calls and outside the sequential execution of a \\\".run\\\" batch, please use the \\\"context.trackedObjects.add()\\\" and \\\"context.trackedObjects.remove()\\\" methods to manage the object's lifetime.\";\r\n    ResourceStringValues.InvalidRequestContext = \"Cannot use the object across different request contexts.\";\r\n    ResourceStringValues.PropertyNotLoaded = \"The property '{0}' is not available. Before reading the property's value, call the load method on the containing object and call \\\"context.sync()\\\" on the associated request context.\";\r\n    ResourceStringValues.RunMustReturnPromise = \"The batch function passed to the \\\".run\\\" method didn't return a promise. The function must return a promise, so that any automatically-tracked objects can be released at the completion of the batch operation. Typically, you return a promise by returning the response from \\\"context.sync()\\\".\";\r\n    ResourceStringValues.Timeout = \"The operation has timed out.\";\r\n    ResourceStringValues.ValueNotLoaded = \"The value of the result object has not been loaded yet. Before reading the value property, call \\\"context.sync()\\\" on the associated request context.\";\r\n    ResourceStringValues.InvalidOrTimedOutSessionMessage = \"Your Office Online session has expired or is invalid. To continue, refresh the page.\";\r\n    ResourceStringValues.InvalidOperationInCellEditMode = \"Excel is in cell-editing mode. Please exit the edit mode by pressing ENTER or TAB or selecting another cell, and then try again.\";\r\n    ResourceStringValues.CustomFunctionDefintionMissing = \"A property with this name that represents the function's definition must exist on Excel.Script.CustomFunctions.\";\r\n    ResourceStringValues.CustomFunctionImplementationMissing = \"The property with this name on Excel.Script.CustomFunctions that represents the function's definition must contain a 'call' property that implements the function.\";\r\n    ResourceStringValues.CustomFunctionNameContainsBadChars = \"The function name may only contain letters, digits, underscores, and periods.\";\r\n    ResourceStringValues.CustomFunctionNameCannotSplit = \"The function name must contain a non-empty namespace and a non-empty short name.\";\r\n    ResourceStringValues.CustomFunctionUnexpectedNumberOfEntriesInResultBatch = \"The batching function returned a number of results that doesn't match the number of parameter value sets that were passed into it.\";\r\n    ResourceStringValues.CustomFunctionCancellationHandlerMissing = \"The cancellation handler onCanceled is missing in the function. The handler must be present as the function is defined as cancelable.\";\r\n    ResourceStringValues.ApiNotFoundDetails = \"The method or property {0} is part of the {1} requirement set, which is not available in your version of {2}.\";\r\n    ResourceStringValues.PendingBatchInProgress = \"There is a pending batch in progress. The batch method may not be called inside another batch, or simultaneously with another batch.\";\r\n    ResourceStringValues.NotInsideBatch = \"Operations may not be invoked outside of a batch method.\";\r\n    ResourceStringValues.CannotUpdateReadOnlyProperty = \"The property '{0}' is read-only and it cannot be updated.\";\r\n    ResourceStringValues.ObjectIsUntracked = \"The object is untracked.\";\r\n    return ResourceStringValues;\r\n}());\r\nexports.ResourceStringValues = ResourceStringValues;\r\nvar RichApiMessageUtility = (function () {\r\n    function RichApiMessageUtility() {\r\n    }\r\n    RichApiMessageUtility.buildMessageArrayForIRequestExecutor = function (customData, requestFlags, requestMessage, sourceLibHeaderValue) {\r\n        var requestMessageText = JSON.stringify(requestMessage.Body);\r\n        Utility.log(\"Request:\");\r\n        Utility.log(requestMessageText);\r\n        var headers = {};\r\n        headers[Constants.sourceLibHeader] = sourceLibHeaderValue;\r\n        var messageSafearray = RichApiMessageUtility.buildRequestMessageSafeArray(customData, requestFlags, \"POST\", \"ProcessQuery\", headers, requestMessageText);\r\n        return messageSafearray;\r\n    };\r\n    RichApiMessageUtility.buildResponseOnSuccess = function (responseBody, responseHeaders) {\r\n        var response = { ErrorCode: '', ErrorMessage: '', Headers: null, Body: null };\r\n        response.Body = JSON.parse(responseBody);\r\n        response.Headers = responseHeaders;\r\n        return response;\r\n    };\r\n    RichApiMessageUtility.buildResponseOnError = function (errorCode, message) {\r\n        var response = { ErrorCode: '', ErrorMessage: '', Headers: null, Body: null };\r\n        response.ErrorCode = ErrorCodes.generalException;\r\n        response.ErrorMessage = message;\r\n        if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability) {\r\n            response.ErrorCode = ErrorCodes.accessDenied;\r\n        }\r\n        else if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached) {\r\n            response.ErrorCode = ErrorCodes.activityLimitReached;\r\n        }\r\n        else if (errorCode == RichApiMessageUtility.OfficeJsErrorCode_ooeInvalidOrTimedOutSession) {\r\n            response.ErrorCode = ErrorCodes.invalidOrTimedOutSession;\r\n            response.ErrorMessage = Utility._getResourceString(ResourceStrings.invalidOrTimedOutSessionMessage);\r\n        }\r\n        return response;\r\n    };\r\n    RichApiMessageUtility.buildHttpResponseFromOfficeJsError = function (errorCode, message) {\r\n        var statusCode = 500;\r\n        var errorBody = {};\r\n        errorBody[\"error\"] = {};\r\n        errorBody[\"error\"][\"code\"] = ErrorCodes.generalException;\r\n        errorBody[\"error\"][\"message\"] = message;\r\n        if (errorCode === RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability) {\r\n            statusCode = 403;\r\n            errorBody[\"error\"][\"code\"] = ErrorCodes.accessDenied;\r\n        }\r\n        else if (errorCode === RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached) {\r\n            statusCode = 429;\r\n            errorBody[\"error\"][\"code\"] = ErrorCodes.activityLimitReached;\r\n        }\r\n        return { statusCode: statusCode, headers: {}, body: JSON.stringify(errorBody) };\r\n    };\r\n    RichApiMessageUtility.buildRequestMessageSafeArray = function (customData, requestFlags, method, path, headers, body) {\r\n        var headerArray = [];\r\n        if (headers) {\r\n            for (var headerName in headers) {\r\n                headerArray.push(headerName);\r\n                headerArray.push(headers[headerName]);\r\n            }\r\n        }\r\n        var appPermission = 0;\r\n        var solutionId = \"\";\r\n        var instanceId = \"\";\r\n        var marketplaceType = \"\";\r\n        return [\r\n            customData,\r\n            method,\r\n            path,\r\n            headerArray,\r\n            body,\r\n            appPermission,\r\n            requestFlags,\r\n            solutionId,\r\n            instanceId,\r\n            marketplaceType\r\n        ];\r\n    };\r\n    RichApiMessageUtility.getResponseBody = function (result) {\r\n        return RichApiMessageUtility.getResponseBodyFromSafeArray(result.value.data);\r\n    };\r\n    RichApiMessageUtility.getResponseHeaders = function (result) {\r\n        return RichApiMessageUtility.getResponseHeadersFromSafeArray(result.value.data);\r\n    };\r\n    RichApiMessageUtility.getResponseBodyFromSafeArray = function (data) {\r\n        var ret = data[2];\r\n        if (typeof (ret) === \"string\") {\r\n            return ret;\r\n        }\r\n        var arr = ret;\r\n        return arr.join(\"\");\r\n    };\r\n    RichApiMessageUtility.getResponseHeadersFromSafeArray = function (data) {\r\n        var arrayHeader = data[1];\r\n        if (!arrayHeader) {\r\n            return null;\r\n        }\r\n        var headers = {};\r\n        for (var i = 0; i < arrayHeader.length - 1; i += 2) {\r\n            headers[arrayHeader[i]] = arrayHeader[i + 1];\r\n        }\r\n        return headers;\r\n    };\r\n    RichApiMessageUtility.getResponseStatusCode = function (result) {\r\n        return RichApiMessageUtility.getResponseStatusCodeFromSafeArray(result.value.data);\r\n    };\r\n    RichApiMessageUtility.getResponseStatusCodeFromSafeArray = function (data) {\r\n        return data[0];\r\n    };\r\n    RichApiMessageUtility.OfficeJsErrorCode_ooeInvalidOrTimedOutSession = 5012;\r\n    RichApiMessageUtility.OfficeJsErrorCode_ooeActivityLimitReached = 5102;\r\n    RichApiMessageUtility.OfficeJsErrorCode_ooeNoCapability = 7000;\r\n    return RichApiMessageUtility;\r\n}());\r\nexports.RichApiMessageUtility = RichApiMessageUtility;\r\nvar Utility = (function () {\r\n    function Utility() {\r\n    }\r\n    Utility.checkArgumentNull = function (value, name) {\r\n        if (Utility.isNullOrUndefined(value)) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({ argumentName: name });\r\n        }\r\n    };\r\n    Utility.isNullOrUndefined = function (value) {\r\n        if (value === null) {\r\n            return true;\r\n        }\r\n        if (typeof (value) === \"undefined\") {\r\n            return true;\r\n        }\r\n        return false;\r\n    };\r\n    Utility.isUndefined = function (value) {\r\n        if (typeof (value) === \"undefined\") {\r\n            return true;\r\n        }\r\n        return false;\r\n    };\r\n    Utility.isNullOrEmptyString = function (value) {\r\n        if (value === null) {\r\n            return true;\r\n        }\r\n        if (typeof (value) === \"undefined\") {\r\n            return true;\r\n        }\r\n        if (value.length == 0) {\r\n            return true;\r\n        }\r\n        return false;\r\n    };\r\n    Utility.isPlainJsonObject = function (value) {\r\n        if (Utility.isNullOrUndefined(value)) {\r\n            return false;\r\n        }\r\n        if (typeof (value) !== \"object\") {\r\n            return false;\r\n        }\r\n        return Object.getPrototypeOf(value) === Object.getPrototypeOf({});\r\n    };\r\n    Utility.trim = function (str) {\r\n        return str.replace(new RegExp(\"^\\\\s+|\\\\s+$\", \"g\"), \"\");\r\n    };\r\n    Utility.caseInsensitiveCompareString = function (str1, str2) {\r\n        if (Utility.isNullOrUndefined(str1)) {\r\n            return Utility.isNullOrUndefined(str2);\r\n        }\r\n        else {\r\n            if (Utility.isNullOrUndefined(str2)) {\r\n                return false;\r\n            }\r\n            else {\r\n                return str1.toUpperCase() == str2.toUpperCase();\r\n            }\r\n        }\r\n    };\r\n    Utility.adjustToDateTime = function (value) {\r\n        if (Utility.isNullOrUndefined(value)) {\r\n            return null;\r\n        }\r\n        if (typeof (value) === \"string\") {\r\n            return new Date(value);\r\n        }\r\n        if (Array.isArray(value)) {\r\n            var arr = value;\r\n            for (var i = 0; i < arr.length; i++) {\r\n                arr[i] = Utility.adjustToDateTime(arr[i]);\r\n            }\r\n            return arr;\r\n        }\r\n        throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"date\" });\r\n    };\r\n    Utility.isReadonlyRestRequest = function (method) {\r\n        return Utility.caseInsensitiveCompareString(method, \"GET\");\r\n    };\r\n    Utility.setMethodArguments = function (context, argumentInfo, args) {\r\n        if (Utility.isNullOrUndefined(args)) {\r\n            return null;\r\n        }\r\n        var referencedObjectPaths = new Array();\r\n        var referencedObjectPathIds = new Array();\r\n        var hasOne = Utility.collectObjectPathInfos(context, args, referencedObjectPaths, referencedObjectPathIds);\r\n        argumentInfo.Arguments = args;\r\n        if (hasOne) {\r\n            argumentInfo.ReferencedObjectPathIds = referencedObjectPathIds;\r\n        }\r\n        return referencedObjectPaths;\r\n    };\r\n    Utility.collectObjectPathInfos = function (context, args, referencedObjectPaths, referencedObjectPathIds) {\r\n        var hasOne = false;\r\n        for (var i = 0; i < args.length; i++) {\r\n            if (args[i] instanceof ClientObject) {\r\n                var clientObject = args[i];\r\n                Utility.validateContext(context, clientObject);\r\n                args[i] = clientObject._objectPath.objectPathInfo.Id;\r\n                referencedObjectPathIds.push(clientObject._objectPath.objectPathInfo.Id);\r\n                referencedObjectPaths.push(clientObject._objectPath);\r\n                hasOne = true;\r\n            }\r\n            else if (Array.isArray(args[i])) {\r\n                var childArrayObjectPathIds = new Array();\r\n                var childArrayHasOne = Utility.collectObjectPathInfos(context, args[i], referencedObjectPaths, childArrayObjectPathIds);\r\n                if (childArrayHasOne) {\r\n                    referencedObjectPathIds.push(childArrayObjectPathIds);\r\n                    hasOne = true;\r\n                }\r\n                else {\r\n                    referencedObjectPathIds.push(0);\r\n                }\r\n            }\r\n            else if (Utility.isPlainJsonObject(args[i])) {\r\n                referencedObjectPathIds.push(0);\r\n                Utility.replaceClientObjectPropertiesWithObjectPathIds(args[i], referencedObjectPaths);\r\n            }\r\n            else {\r\n                referencedObjectPathIds.push(0);\r\n            }\r\n        }\r\n        return hasOne;\r\n    };\r\n    Utility.replaceClientObjectPropertiesWithObjectPathIds = function (value, referencedObjectPaths) {\r\n        for (var key in value) {\r\n            var propValue = value[key];\r\n            if (propValue instanceof ClientObject) {\r\n                referencedObjectPaths.push(propValue._objectPath);\r\n                value[key] = (_a = {}, _a[Constants.objectPathIdPrivate] = propValue._objectPath.objectPathInfo.Id, _a);\r\n            }\r\n            else if (Array.isArray(propValue)) {\r\n                for (var i = 0; i < propValue.length; i++) {\r\n                    if (propValue[i] instanceof ClientObject) {\r\n                        var elem = propValue[i];\r\n                        referencedObjectPaths.push(elem._objectPath);\r\n                        propValue[i] = (_b = {}, _b[Constants.objectPathIdPrivate] = elem._objectPath.objectPathInfo.Id, _b);\r\n                    }\r\n                    else if (Utility.isPlainJsonObject(propValue[i])) {\r\n                        Utility.replaceClientObjectPropertiesWithObjectPathIds(propValue[i], referencedObjectPaths);\r\n                    }\r\n                }\r\n            }\r\n            else if (Utility.isPlainJsonObject(propValue)) {\r\n                Utility.replaceClientObjectPropertiesWithObjectPathIds(propValue, referencedObjectPaths);\r\n            }\r\n            else {\r\n            }\r\n        }\r\n        var _a, _b;\r\n    };\r\n    Utility.fixObjectPathIfNecessary = function (clientObject, value) {\r\n        if (clientObject && clientObject._objectPath && value) {\r\n            clientObject._objectPath.updateUsingObjectData(value, clientObject);\r\n        }\r\n    };\r\n    Utility.tryGetObjectIdFromLoadOrRetrieveResult = function (value) {\r\n        var id = value[Constants.id];\r\n        if (Utility.isNullOrUndefined(id)) {\r\n            id = value[Constants.idLowerCase];\r\n        }\r\n        if (Utility.isNullOrUndefined(id)) {\r\n            id = value[Constants.idPrivate];\r\n        }\r\n        return id;\r\n    };\r\n    Utility.validateObjectPath = function (clientObject) {\r\n        var objectPath = clientObject._objectPath;\r\n        while (objectPath) {\r\n            if (!objectPath.isValid) {\r\n                throw new _Internal.RuntimeError({\r\n                    code: ErrorCodes.invalidObjectPath,\r\n                    message: Utility._getResourceString(ResourceStrings.invalidObjectPath, Utility.getObjectPathExpression(objectPath)),\r\n                    debugInfo: {\r\n                        errorLocation: Utility.getObjectPathExpression(objectPath)\r\n                    }\r\n                });\r\n            }\r\n            objectPath = objectPath.parentObjectPath;\r\n        }\r\n    };\r\n    Utility.validateReferencedObjectPaths = function (objectPaths) {\r\n        if (objectPaths) {\r\n            for (var i = 0; i < objectPaths.length; i++) {\r\n                var objectPath = objectPaths[i];\r\n                while (objectPath) {\r\n                    if (!objectPath.isValid) {\r\n                        throw new _Internal.RuntimeError({\r\n                            code: ErrorCodes.invalidObjectPath,\r\n                            message: Utility._getResourceString(ResourceStrings.invalidObjectPath, Utility.getObjectPathExpression(objectPath))\r\n                        });\r\n                    }\r\n                    objectPath = objectPath.parentObjectPath;\r\n                }\r\n            }\r\n        }\r\n    };\r\n    Utility.validateContext = function (context, obj) {\r\n        if (obj && obj.context !== context) {\r\n            throw new _Internal.RuntimeError({\r\n                code: ErrorCodes.invalidRequestContext,\r\n                message: Utility._getResourceString(ResourceStrings.invalidRequestContext)\r\n            });\r\n        }\r\n    };\r\n    Utility.log = function (message) {\r\n        if (Utility._logEnabled && typeof (console) !== \"undefined\" && console.log) {\r\n            console.log(message);\r\n        }\r\n    };\r\n    Utility.load = function (clientObj, option) {\r\n        clientObj.context.load(clientObj, option);\r\n        return clientObj;\r\n    };\r\n    Utility.loadAndSync = function (clientObj, option) {\r\n        clientObj.context.load(clientObj, option);\r\n        return clientObj.context.sync().then(function () { return clientObj; });\r\n    };\r\n    Utility.retrieve = function (clientObj, option) {\r\n        var shouldPolyfill = exports._internalConfig.alwaysPolyfillClientObjectRetrieveMethod;\r\n        if (!shouldPolyfill) {\r\n            shouldPolyfill = !Utility.isSetSupported(\"RichApiRuntime\", \"1.1\");\r\n        }\r\n        var result = new RetrieveResultImpl(clientObj, shouldPolyfill);\r\n        var queryOption = ClientRequestContext._parseQueryOption(option);\r\n        var action;\r\n        if (shouldPolyfill) {\r\n            action = ActionFactory.createQueryAction(clientObj.context, clientObj, queryOption);\r\n        }\r\n        else {\r\n            action = ActionFactory.createQueryAsJsonAction(clientObj.context, clientObj, queryOption);\r\n        }\r\n        clientObj.context._pendingRequest.addActionResultHandler(action, result);\r\n        return result;\r\n    };\r\n    Utility.retrieveAndSync = function (clientObj, option) {\r\n        var result = Utility.retrieve(clientObj, option);\r\n        return clientObj.context.sync().then(function () { return result; });\r\n    };\r\n    Utility.isSetSupported = function (apiSetName, apiSetVersion) {\r\n        if (typeof (window) !== \"undefined\" && window.Office && window.Office.context && window.Office.context.requirements) {\r\n            return window.Office.context.requirements.isSetSupported(apiSetName, apiSetVersion);\r\n        }\r\n        return true;\r\n    };\r\n    Utility._parseSelectExpand = function (select) {\r\n        var args = [];\r\n        if (!Utility.isNullOrEmptyString(select)) {\r\n            var propertyNames = select.split(\",\");\r\n            for (var i = 0; i < propertyNames.length; i++) {\r\n                var propertyName = propertyNames[i];\r\n                propertyName = sanitizeForAnyItemsSlash(propertyName.trim());\r\n                if (propertyName.length > 0) {\r\n                    args.push(propertyName);\r\n                }\r\n            }\r\n        }\r\n        return args;\r\n        function sanitizeForAnyItemsSlash(propertyName) {\r\n            var propertyNameLower = propertyName.toLowerCase();\r\n            if (propertyNameLower === \"items\" || propertyNameLower === \"items/\") {\r\n                return '*';\r\n            }\r\n            var itemsSlashLength = 6;\r\n            var isItemsSlashOrItemsDot = propertyNameLower.substr(0, itemsSlashLength) === \"items/\" ||\r\n                propertyNameLower.substr(0, itemsSlashLength) === \"items.\";\r\n            if (isItemsSlashOrItemsDot) {\r\n                propertyName = propertyName.substr(itemsSlashLength);\r\n            }\r\n            return propertyName.replace(new RegExp(\"[\\/\\.]items[\\/\\.]\", \"gi\"), \"/\");\r\n        }\r\n    };\r\n    Utility.toJson = function (clientObj, scalarProperties, navigationProperties, collectionItemsIfAny) {\r\n        var result = {};\r\n        for (var prop in scalarProperties) {\r\n            var value = scalarProperties[prop];\r\n            if (typeof value !== \"undefined\") {\r\n                result[prop] = value;\r\n            }\r\n        }\r\n        for (var prop in navigationProperties) {\r\n            var value = navigationProperties[prop];\r\n            if (typeof value !== \"undefined\") {\r\n                if (value[Utility.fieldName_isCollection] && (typeof value[Utility.fieldName_m__items] !== \"undefined\")) {\r\n                    result[prop] = value.toJSON()[\"items\"];\r\n                }\r\n                else {\r\n                    result[prop] = value.toJSON();\r\n                }\r\n            }\r\n        }\r\n        if (collectionItemsIfAny) {\r\n            result[\"items\"] = collectionItemsIfAny.map(function (item) { return item.toJSON(); });\r\n        }\r\n        return result;\r\n    };\r\n    Utility.throwError = function (resourceId, arg, errorLocation) {\r\n        throw new _Internal.RuntimeError({\r\n            code: resourceId,\r\n            message: Utility._getResourceString(resourceId, arg),\r\n            debugInfo: errorLocation ? { errorLocation: errorLocation } : undefined\r\n        });\r\n    };\r\n    Utility.createRuntimeError = function (code, message, location) {\r\n        return (new _Internal.RuntimeError({\r\n            code: code,\r\n            message: message,\r\n            debugInfo: { errorLocation: location }\r\n        }));\r\n    };\r\n    Utility._getResourceString = function (resourceId, arg) {\r\n        var ret;\r\n        if (typeof (window) !== \"undefined\" && window.Strings && window.Strings.OfficeOM) {\r\n            var stringName = \"L_\" + resourceId;\r\n            var stringValue = window.Strings.OfficeOM[stringName];\r\n            if (stringValue) {\r\n                ret = stringValue;\r\n            }\r\n        }\r\n        if (!ret) {\r\n            ret = ResourceStringValues[resourceId];\r\n        }\r\n        if (!ret) {\r\n            ret = resourceId;\r\n        }\r\n        if (!Utility.isNullOrUndefined(arg)) {\r\n            if (Array.isArray(arg)) {\r\n                var arrArg = arg;\r\n                ret = Utility._formatString(ret, arrArg);\r\n            }\r\n            else {\r\n                ret = ret.replace(\"{0}\", arg);\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    Utility._formatString = function (format, arrArg) {\r\n        return format.replace(/\\{\\d\\}/g, function (v) {\r\n            var position = parseInt(v.substr(1, v.length - 2));\r\n            if (position < arrArg.length) {\r\n                return arrArg[position];\r\n            }\r\n            else {\r\n                throw _Internal.RuntimeError._createInvalidArgError({ argumentName: \"format\" });\r\n            }\r\n        });\r\n    };\r\n    Utility.throwIfNotLoaded = function (propertyName, fieldValue, entityName, isNull) {\r\n        if (!isNull && Utility.isUndefined(fieldValue) && propertyName.charCodeAt(0) != Utility.s_underscoreCharCode) {\r\n            throw Utility.createPropertyNotLoadedException(entityName, propertyName);\r\n        }\r\n    };\r\n    Utility.createPropertyNotLoadedException = function (entityName, propertyName) {\r\n        return new _Internal.RuntimeError({\r\n            code: ErrorCodes.propertyNotLoaded,\r\n            message: Utility._getResourceString(ResourceStrings.propertyNotLoaded, propertyName),\r\n            debugInfo: entityName ? { errorLocation: entityName + \".\" + propertyName } : undefined\r\n        });\r\n    };\r\n    Utility.createCannotUpdateReadOnlyPropertyException = function (entityName, propertyName) {\r\n        return new _Internal.RuntimeError({\r\n            code: ErrorCodes.cannotUpdateReadOnlyProperty,\r\n            message: Utility._getResourceString(ResourceStrings.cannotUpdateReadOnlyProperty, propertyName),\r\n            debugInfo: entityName ? { errorLocation: entityName + \".\" + propertyName } : undefined\r\n        });\r\n    };\r\n    Utility.throwIfApiNotSupported = function (apiFullName, apiSetName, apiSetVersion, hostName) {\r\n        if (!Utility._doApiNotSupportedCheck) {\r\n            return;\r\n        }\r\n        if (!Utility.isSetSupported(apiSetName, apiSetVersion)) {\r\n            var message = Utility._getResourceString(ResourceStrings.apiNotFoundDetails, [apiFullName, apiSetName + \" \" + apiSetVersion, hostName]);\r\n            throw new _Internal.RuntimeError({\r\n                code: ErrorCodes.apiNotFound,\r\n                message: message,\r\n                debugInfo: { errorLocation: apiFullName }\r\n            });\r\n        }\r\n    };\r\n    Utility.getObjectPathExpression = function (objectPath) {\r\n        var ret = \"\";\r\n        while (objectPath) {\r\n            switch (objectPath.objectPathInfo.ObjectPathType) {\r\n                case 1:\r\n                    ret = ret;\r\n                    break;\r\n                case 2:\r\n                    ret = \"new()\" + (ret.length > 0 ? \".\" : \"\") + ret;\r\n                    break;\r\n                case 3:\r\n                    ret = Utility.normalizeName(objectPath.objectPathInfo.Name) + \"()\" + (ret.length > 0 ? \".\" : \"\") + ret;\r\n                    break;\r\n                case 4:\r\n                    ret = Utility.normalizeName(objectPath.objectPathInfo.Name) + (ret.length > 0 ? \".\" : \"\") + ret;\r\n                    break;\r\n                case 5:\r\n                    ret = \"getItem()\" + (ret.length > 0 ? \".\" : \"\") + ret;\r\n                    break;\r\n                case 6:\r\n                    ret = \"_reference()\" + (ret.length > 0 ? \".\" : \"\") + ret;\r\n                    break;\r\n            }\r\n            objectPath = objectPath.parentObjectPath;\r\n        }\r\n        return ret;\r\n    };\r\n    Utility._createPromiseFromResult = function (value) {\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            resolve(value);\r\n        });\r\n    };\r\n    Utility._createTimeoutPromise = function (timeout) {\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            setTimeout(function () {\r\n                resolve(null);\r\n            }, timeout);\r\n        });\r\n    };\r\n    Utility.promisify = function (action) {\r\n        return new CoreUtility.Promise(function (resolve, reject) {\r\n            var callback = function (result) {\r\n                if (result.status == \"failed\") {\r\n                    reject(result.error);\r\n                }\r\n                else {\r\n                    resolve(result.value);\r\n                }\r\n            };\r\n            action(callback);\r\n        });\r\n    };\r\n    Utility._addActionResultHandler = function (clientObj, action, resultHandler) {\r\n        clientObj.context._pendingRequest.addActionResultHandler(action, resultHandler);\r\n    };\r\n    Utility._handleNavigationPropertyResults = function (clientObj, objectValue, propertyNames) {\r\n        for (var i = 0; i < propertyNames.length - 1; i += 2) {\r\n            if (!Utility.isUndefined(objectValue[propertyNames[i + 1]])) {\r\n                clientObj[propertyNames[i]]._handleResult(objectValue[propertyNames[i + 1]]);\r\n            }\r\n        }\r\n    };\r\n    Utility.normalizeName = function (name) {\r\n        return name.substr(0, 1).toLowerCase() + name.substr(1);\r\n    };\r\n    Utility._isLocalDocumentUrl = function (url) {\r\n        return Utility._getLocalDocumentUrlPrefixLength(url) > 0;\r\n    };\r\n    Utility._getLocalDocumentUrlPrefixLength = function (url) {\r\n        var localDocumentPrefixes = [\"http://document.localhost\", \"https://document.localhost\", \"//document.localhost\"];\r\n        var urlLower = url.toLowerCase().trim();\r\n        for (var i = 0; i < localDocumentPrefixes.length; i++) {\r\n            if (urlLower === localDocumentPrefixes[i]) {\r\n                return localDocumentPrefixes[i].length;\r\n            }\r\n            else if (urlLower.substr(0, localDocumentPrefixes[i].length + 1) === localDocumentPrefixes[i] + \"/\") {\r\n                return localDocumentPrefixes[i].length + 1;\r\n            }\r\n        }\r\n        return 0;\r\n    };\r\n    Utility._validateLocalDocumentRequest = function (request) {\r\n        var index = Utility._getLocalDocumentUrlPrefixLength(request.url);\r\n        if (index <= 0) {\r\n            throw _Internal.RuntimeError._createInvalidArgError({\r\n                argumentName: \"request\"\r\n            });\r\n        }\r\n        var path = request.url.substr(index);\r\n        var pathLower = path.toLowerCase();\r\n        if (pathLower === \"_api\") {\r\n            path = \"\";\r\n        }\r\n        else if (pathLower.substr(0, \"_api/\".length) === \"_api/\") {\r\n            path = path.substr(\"_api/\".length);\r\n        }\r\n        return {\r\n            method: request.method,\r\n            url: path,\r\n            headers: request.headers,\r\n            body: request.body\r\n        };\r\n    };\r\n    Utility._buildRequestMessageSafeArray = function (request) {\r\n        var requestFlags = 0;\r\n        if (!Utility.isReadonlyRestRequest(request.method)) {\r\n            requestFlags = 1;\r\n        }\r\n        if (request.url.substr(0, Constants.processQuery.length).toLowerCase() === Constants.processQuery.toLowerCase()) {\r\n            var index = request.url.indexOf(\"?\");\r\n            if (index > 0) {\r\n                var queryString = request.url.substr(index + 1);\r\n                var parts = queryString.split(\"&\");\r\n                for (var i = 0; i < parts.length; i++) {\r\n                    var keyvalue = parts[i].split(\"=\");\r\n                    if (keyvalue[0].toLowerCase() === Constants.flags) {\r\n                        var flags = parseInt(keyvalue[1]);\r\n                        requestFlags = flags;\r\n                        requestFlags = requestFlags & 1;\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return RichApiMessageUtility.buildRequestMessageSafeArray(\"\", requestFlags, request.method, request.url, request.headers, request.body);\r\n    };\r\n    Utility._parseHttpResponseHeaders = function (allResponseHeaders) {\r\n        var responseHeaders = {};\r\n        if (!Utility.isNullOrEmptyString(allResponseHeaders)) {\r\n            var regex = new RegExp(\"\\r?\\n\");\r\n            var entries = allResponseHeaders.split(regex);\r\n            for (var i = 0; i < entries.length; i++) {\r\n                var entry = entries[i];\r\n                if (entry != null) {\r\n                    var index = entry.indexOf(':');\r\n                    if (index > 0) {\r\n                        var key = entry.substr(0, index);\r\n                        var value = entry.substr(index + 1);\r\n                        key = Utility.trim(key);\r\n                        value = Utility.trim(value);\r\n                        responseHeaders[key.toUpperCase()] = value;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return responseHeaders;\r\n    };\r\n    Utility._parseErrorResponse = function (responseInfo) {\r\n        var errorObj = null;\r\n        if (Utility.isPlainJsonObject(responseInfo.body)) {\r\n            errorObj = responseInfo.body;\r\n        }\r\n        else if (!Utility.isNullOrEmptyString(responseInfo.body)) {\r\n            var errorResponseBody = Utility.trim(responseInfo.body);\r\n            try {\r\n                errorObj = JSON.parse(errorResponseBody);\r\n            }\r\n            catch (e) {\r\n                Utility.log(\"Error when parse \" + errorResponseBody);\r\n            }\r\n        }\r\n        var errorMessage;\r\n        var errorCode;\r\n        if (!Utility.isNullOrUndefined(errorObj) && typeof (errorObj) === \"object\" && errorObj.error) {\r\n            errorCode = errorObj.error.code;\r\n            errorMessage = Utility._getResourceString(ResourceStrings.connectionFailureWithDetails, [responseInfo.statusCode.toString(), errorObj.error.code, errorObj.error.message]);\r\n        }\r\n        else {\r\n            errorMessage = Utility._getResourceString(ResourceStrings.connectionFailureWithStatus, responseInfo.statusCode.toString());\r\n        }\r\n        if (Utility.isNullOrEmptyString(errorCode)) {\r\n            errorCode = ErrorCodes.connectionFailure;\r\n        }\r\n        return { errorCode: errorCode, errorMessage: errorMessage };\r\n    };\r\n    Utility._copyHeaders = function (src, dest) {\r\n        if (src && dest) {\r\n            for (var key in src) {\r\n                dest[key] = src[key];\r\n            }\r\n        }\r\n    };\r\n    Utility._toCamelLowerCase = function (name) {\r\n        if (Utility.isNullOrEmptyString(name)) {\r\n            return name;\r\n        }\r\n        var index = 0;\r\n        while (index < name.length && name.charCodeAt(index) >= 65 && name.charCodeAt(index) <= 90) {\r\n            index++;\r\n        }\r\n        if (index < name.length) {\r\n            return name.substr(0, index).toLowerCase() + name.substr(index);\r\n        }\r\n        else {\r\n            return name.toLowerCase();\r\n        }\r\n    };\r\n    Utility._fixupApiFlags = function (flags) {\r\n        if (typeof (flags) === \"boolean\") {\r\n            if (flags) {\r\n                flags = 1;\r\n            }\r\n            else {\r\n                flags = 0;\r\n            }\r\n        }\r\n        return flags;\r\n    };\r\n    Utility.definePropertyThrowUnloadedException = function (obj, typeName, propertyName) {\r\n        Object.defineProperty(obj, propertyName, {\r\n            configurable: true,\r\n            enumerable: true,\r\n            get: function () {\r\n                throw Utility.createPropertyNotLoadedException(typeName, propertyName);\r\n            },\r\n            set: function () {\r\n                throw Utility.createCannotUpdateReadOnlyPropertyException(typeName, propertyName);\r\n            }\r\n        });\r\n    };\r\n    Utility.defineReadOnlyPropertyWithValue = function (obj, propertyName, value) {\r\n        Object.defineProperty(obj, propertyName, {\r\n            configurable: true,\r\n            enumerable: true,\r\n            get: function () {\r\n                return value;\r\n            },\r\n            set: function () {\r\n                throw Utility.createCannotUpdateReadOnlyPropertyException(null, propertyName);\r\n            }\r\n        });\r\n    };\r\n    Utility.processRetrieveResult = function (proxy, value, result, childItemCreateFunc) {\r\n        if (Utility.isNullOrUndefined(value)) {\r\n            return;\r\n        }\r\n        if (childItemCreateFunc) {\r\n            var data = value[Constants.itemsLowerCase];\r\n            if (Array.isArray(data)) {\r\n                var itemsResult = [];\r\n                for (var i = 0; i < data.length; i++) {\r\n                    var itemProxy = childItemCreateFunc(data[i], i);\r\n                    var itemResult = {};\r\n                    itemResult[Constants.proxy] = itemProxy;\r\n                    itemProxy._handleRetrieveResult(data[i], itemResult);\r\n                    itemsResult.push(itemResult);\r\n                }\r\n                Utility.defineReadOnlyPropertyWithValue(result, Constants.itemsLowerCase, itemsResult);\r\n            }\r\n        }\r\n        else {\r\n            var scalarPropertyNames = proxy[Constants.scalarPropertyNames];\r\n            var navigationPropertyNames = proxy[Constants.navigationPropertyNames];\r\n            var typeName = proxy[Constants.className];\r\n            if (scalarPropertyNames) {\r\n                for (var i = 0; i < scalarPropertyNames.length; i++) {\r\n                    var propName = scalarPropertyNames[i];\r\n                    var propValue = value[propName];\r\n                    if (Utility.isUndefined(propValue)) {\r\n                        Utility.definePropertyThrowUnloadedException(result, typeName, propName);\r\n                    }\r\n                    else {\r\n                        Utility.defineReadOnlyPropertyWithValue(result, propName, propValue);\r\n                    }\r\n                }\r\n            }\r\n            if (navigationPropertyNames) {\r\n                for (var i = 0; i < navigationPropertyNames.length; i++) {\r\n                    var propName = navigationPropertyNames[i];\r\n                    var propValue = value[propName];\r\n                    if (Utility.isUndefined(propValue)) {\r\n                        Utility.definePropertyThrowUnloadedException(result, typeName, propName);\r\n                    }\r\n                    else {\r\n                        var propProxy = proxy[propName];\r\n                        var propResult = {};\r\n                        propProxy._handleRetrieveResult(propValue, propResult);\r\n                        propResult[Constants.proxy] = propProxy;\r\n                        if (Array.isArray(propResult[Constants.itemsLowerCase])) {\r\n                            propResult = propResult[Constants.itemsLowerCase];\r\n                        }\r\n                        Utility.defineReadOnlyPropertyWithValue(result, propName, propResult);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    };\r\n    Utility.fieldName_m__items = \"m__items\";\r\n    Utility.fieldName_isCollection = \"_isCollection\";\r\n    Utility._logEnabled = false;\r\n    Utility._synchronousCleanup = false;\r\n    Utility._doApiNotSupportedCheck = false;\r\n    Utility.s_underscoreCharCode = \"_\".charCodeAt(0);\r\n    return Utility;\r\n}());\r\nexports.Utility = Utility;\r\n","/*\n    MICROSOFT SOFTWARE LICENSE TERMS\n    Use of this file is governed by the one of the following Microsoft developer terms:\n    * If you have a MSDN subscription, the Microsoft Developer Services Agreement at https://msdn.microsoft.com/en-US/cc300389 applies.\n    * If you don't have an MSDN subscription, the software license terms located at http://go.microsoft.com/fwlink/?LinkId=396798 apply.\n*/\n\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar OfficeExtension = require(\"./office.runtime\");\r\nvar react_native_dataservice_1 = require(\"@office-iss/react-native-dataservice\");\r\nvar RichApiBridgeImpl = (function () {\r\n    function RichApiBridgeImpl() {\r\n    }\r\n    RichApiBridgeImpl.prototype.sendMessageToHost = function (value) {\r\n        react_native_dataservice_1.DataServiceManager.InvokeNative('RichApiDataService', 'ProcessMessageToHost', value);\r\n    };\r\n    return RichApiBridgeImpl;\r\n}());\r\nvar RichApiBridge = new RichApiBridgeImpl();\r\nvar RichApiDataService = (function () {\r\n    function RichApiDataService() {\r\n    }\r\n    RichApiDataService.prototype.Invoke = function (methodName, value) {\r\n        if (methodName === 'ProcessMessageFromHost') {\r\n            if (RichApiBridge.onMessageFromHost) {\r\n                RichApiBridge.onMessageFromHost(value);\r\n            }\r\n        }\r\n    };\r\n    return RichApiDataService;\r\n}());\r\nreact_native_dataservice_1.ReactNativeReka.init();\r\nreact_native_dataservice_1.DataServiceManager.RegisterService('RichApiDataService', function () { return new RichApiDataService(); });\r\nOfficeExtension.HostBridge.init(RichApiBridge);\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = OfficePlatformGlobal.ReactNativeReka;","\"use strict\";\r\n// ------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by the TS2DS compiler.\r\n//     Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.\r\n// </auto-generated>\r\n// ------------------------------------------------------------------------------\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar reka_1 = require(\"@office-iss/reka\");\r\nreka_1.CustomTypeRegistry.registerTypeInfos({\r\n    'FileIO::FileInfo': {\r\n        docId: '$string',\r\n    },\r\n    'FileIO::Response': {\r\n        Result: '$string',\r\n    },\r\n    'FileIO::ConfigurationPayload': {\r\n        modelId: '$number',\r\n    },\r\n    'FileIO::ModelInputPayload': {\r\n        modelConstantInput: ['$indexer', '$number'],\r\n        relevantTcids: ['$array', '$number'],\r\n    },\r\n    'FileIO::ModelOutputPayload': {\r\n        output: '$boolean',\r\n        isModelFlightable: '$boolean',\r\n        calcDurationSec: '$number',\r\n    },\r\n    'FileIO::ConfigResponse': {\r\n        validConfig: '$boolean',\r\n        bundleVersion: '$string',\r\n    },\r\n});\r\nexports.ServiceInfos = {\r\n    NativeFileIOSave: ['FileIO::NativeFileIOSave', {\r\n            SaveFile: ['ReturnsPromiseMethod', 'FileIO::Response', ['FileIO::FileInfo']],\r\n        }],\r\n    NativeNotNow: ['FileIO::NativeNotNow', {\r\n            NotNow: ['ReturnsPromiseMethod', 'FileIO::Response', ['FileIO::FileInfo']],\r\n        }],\r\n    ModelEvaluationService: ['FileIO::ModelEvaluationService', {\r\n            initConfiguration: ['ReturnsPromiseMethod', 'FileIO::ConfigResponse', ['FileIO::ConfigurationPayload']],\r\n            evaluate: ['ReturnsPromiseMethod', 'FileIO::ModelOutputPayload', ['FileIO::ModelInputPayload']],\r\n        }],\r\n};\r\nexports.NativeServices = {\r\n    NativeFileIOSave: reka_1.RekaServiceRegistry.getNativeService(exports.ServiceInfos.NativeFileIOSave),\r\n    NativeNotNow: reka_1.RekaServiceRegistry.getNativeService(exports.ServiceInfos.NativeNotNow),\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nif ((global as any).__platformBundles !== undefined) {\r\n  const platformBundles = (global as any).__platformBundles.concat();\r\n  Reflect.deleteProperty(global, '__platformBundles');\r\n  for (let i = 0; i < platformBundles.length; ++i) {\r\n    console.log(`PB start ${i + 1}/${platformBundles.length}`);\r\n    (global as any).eval(platformBundles[i]);\r\n    console.log(`PB done  ${i + 1}/${platformBundles.length}`);\r\n  }\r\n}\r\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule Object.es6\n * @polyfill\n * @nolint\n */\n\n// WARNING: This is an optimized version that fails on hasOwnProperty checks\n// and non objects. It's not spec-compliant. It's a perf optimization.\n// This is only needed for iOS 8 and current Android JSC.\n\nObject.assign = function(target, sources) {\n  if (__DEV__) {\n    if (target == null) {\n      throw new TypeError('Object.assign target cannot be null or undefined');\n    }\n    if (typeof target !== 'object' && typeof target !== 'function') {\n      throw new TypeError(\n        'In this environment the target of assign MUST be an object. ' +\n          'This error is a performance optimization and not spec compliant.'\n      );\n    }\n  }\n\n  for (let nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n    const nextSource = arguments[nextIndex];\n    if (nextSource == null) {\n      continue;\n    }\n\n    if (__DEV__) {\n      if (typeof nextSource !== 'object' && typeof nextSource !== 'function') {\n        throw new TypeError(\n          'In this environment the sources for assign MUST be an object. ' +\n            'This error is a performance optimization and not spec compliant.'\n        );\n      }\n    }\n\n    // We don't currently support accessors nor proxies. Therefore this\n    // copy cannot throw. If we ever supported this then we must handle\n    // exceptions and side-effects.\n\n    for (const key in nextSource) {\n      if (__DEV__) {\n        const hasOwnProperty = Object.prototype.hasOwnProperty;\n        if (!hasOwnProperty.call(nextSource, key)) {\n          throw new TypeError(\n            'One of the sources for assign has an enumerable key on the ' +\n              'prototype chain. Are you trying to assign a prototype property? ' +\n              \"We don't allow it, as this is an edge case that we do not support. \" +\n              'This error is a performance optimization and not spec compliant.'\n          );\n        }\n      }\n      target[key] = nextSource[key];\n    }\n  }\n\n  return target;\n};\n\nObject.setPrototypeOf =\n  Object.setPrototypeOf ||\n  ((obj, proto) => {\n    // eslint-disable-next-line no-proto,no-param-reassign\n    obj.__proto__ = proto;\n    return obj;\n  });\n","/**\r\n * Copyright (c) 2015-present, Facebook, Inc.\r\n *\r\n * This source code is licensed under the MIT license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n * @providesModule console\r\n * @polyfill\r\n * @nolint\r\n * @format\r\n */\r\n\r\n/* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, one-var, prefer-const, no-control-regex, no-undef, no-console */\r\n\r\n/**\r\n * This pipes all of our console logging functions to native logging so that\r\n * JavaScript errors in required modules show up in Xcode via NSLog.\r\n */\r\nconst inspect = (function() {\r\n  // Copyright Joyent, Inc. and other Node contributors.\r\n  //\r\n  // Permission is hereby granted, free of charge, to any person obtaining a\r\n  // copy of this software and associated documentation files (the\r\n  // \"Software\"), to deal in the Software without restriction, including\r\n  // without limitation the rights to use, copy, modify, merge, publish,\r\n  // distribute, sublicense, and/or sell copies of the Software, and to permit\r\n  // persons to whom the Software is furnished to do so, subject to the\r\n  // following conditions:\r\n  //\r\n  // The above copyright notice and this permission notice shall be included\r\n  // in all copies or substantial portions of the Software.\r\n  //\r\n  // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\r\n  // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\r\n  // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\r\n  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\r\n  // USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n  //\r\n  // https://github.com/joyent/node/blob/master/lib/util.js\r\n\r\n  function inspect(obj, opts) {\r\n    const ctx = {\r\n      seen: [],\r\n      stylize: stylizeNoColor,\r\n    };\r\n    return formatValue(ctx, obj, opts.depth);\r\n  }\r\n\r\n  function stylizeNoColor(str, styleType) {\r\n    return str;\r\n  }\r\n\r\n  function arrayToHash(array) {\r\n    const hash = {};\r\n\r\n    array.forEach((val, idx) => {\r\n      hash[val] = true;\r\n    });\r\n\r\n    return hash;\r\n  }\r\n\r\n  function formatValue(ctx, value, recurseTimes) {\r\n    // Primitive types cannot have properties\r\n    const primitive = formatPrimitive(ctx, value);\r\n    if (primitive) {\r\n      return primitive;\r\n    }\r\n\r\n    // Look up the keys of the object.\r\n    const keys = Object.keys(value);\r\n    const visibleKeys = arrayToHash(keys);\r\n\r\n    // IE doesn't make error fields non-enumerable\r\n    // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\r\n    if (\r\n      isError(value) &&\r\n      (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)\r\n    ) {\r\n      return formatError(value);\r\n    }\r\n\r\n    // Some type of object without properties can be shortcutted.\r\n    if (keys.length === 0) {\r\n      if (isFunction(value)) {\r\n        const name = value.name ? `: ${value.name}` : '';\r\n        return ctx.stylize(`[Function${name}]`, 'special');\r\n      }\r\n      if (isRegExp(value)) {\r\n        return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\r\n      }\r\n      if (isDate(value)) {\r\n        return ctx.stylize(Date.prototype.toString.call(value), 'date');\r\n      }\r\n      if (isError(value)) {\r\n        return formatError(value);\r\n      }\r\n    }\r\n\r\n    let base = '',\r\n      array = false,\r\n      braces = ['{', '}'];\r\n\r\n    // Make Array say that they are Array\r\n    if (isArray(value)) {\r\n      array = true;\r\n      braces = ['[', ']'];\r\n    }\r\n\r\n    // Make functions say that they are functions\r\n    if (isFunction(value)) {\r\n      const n = value.name ? `: ${value.name}` : '';\r\n      base = ` [Function${n}]`;\r\n    }\r\n\r\n    // Make RegExps say that they are RegExps\r\n    if (isRegExp(value)) {\r\n      base = ` ${RegExp.prototype.toString.call(value)}`;\r\n    }\r\n\r\n    // Make dates with properties first say the date\r\n    if (isDate(value)) {\r\n      base = ` ${Date.prototype.toUTCString.call(value)}`;\r\n    }\r\n\r\n    // Make error with message first say the error\r\n    if (isError(value)) {\r\n      base = ` ${formatError(value)}`;\r\n    }\r\n\r\n    if (keys.length === 0 && (!array || value.length == 0)) {\r\n      return braces[0] + base + braces[1];\r\n    }\r\n\r\n    if (recurseTimes < 0) {\r\n      if (isRegExp(value)) {\r\n        return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\r\n      }\r\n      return ctx.stylize('[Object]', 'special');\r\n    }\r\n\r\n    ctx.seen.push(value);\r\n\r\n    let output;\r\n    if (array) {\r\n      output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\r\n    } else {\r\n      output = keys.map(key => {\r\n        return formatProperty(\r\n          ctx,\r\n          value,\r\n          recurseTimes,\r\n          visibleKeys,\r\n          key,\r\n          array\r\n        );\r\n      });\r\n    }\r\n\r\n    ctx.seen.pop();\r\n\r\n    return reduceToSingleString(output, base, braces);\r\n  }\r\n\r\n  function formatPrimitive(ctx, value) {\r\n    if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\r\n    if (isString(value)) {\r\n      const simple = `'${JSON.stringify(value)\r\n        .replace(/^\"|\"$/g, '')\r\n        .replace(/'/g, \"\\\\'\")\r\n        .replace(/\\\\\"/g, '\"')}'`;\r\n      return ctx.stylize(simple, 'string');\r\n    }\r\n    if (isNumber(value)) return ctx.stylize(`${value}`, 'number');\r\n    if (isBoolean(value)) return ctx.stylize(`${value}`, 'boolean');\r\n    // For some reason typeof null is \"object\", so special case here.\r\n    if (isNull(value)) return ctx.stylize('null', 'null');\r\n  }\r\n\r\n  function formatError(value) {\r\n    return `[${Error.prototype.toString.call(value)}]`;\r\n  }\r\n\r\n  function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\r\n    const output = [];\r\n    for (let i = 0, l = value.length; i < l; ++i) {\r\n      if (hasOwnProperty(value, String(i))) {\r\n        output.push(\r\n          formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true)\r\n        );\r\n      } else {\r\n        output.push('');\r\n      }\r\n    }\r\n    keys.forEach(key => {\r\n      if (!key.match(/^\\d+$/)) {\r\n        output.push(\r\n          formatProperty(ctx, value, recurseTimes, visibleKeys, key, true)\r\n        );\r\n      }\r\n    });\r\n    return output;\r\n  }\r\n\r\n  function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\r\n    let name, str, desc;\r\n    desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\r\n    if (desc.get) {\r\n      if (desc.set) {\r\n        str = ctx.stylize('[Getter/Setter]', 'special');\r\n      } else {\r\n        str = ctx.stylize('[Getter]', 'special');\r\n      }\r\n    } else if (desc.set) {\r\n      str = ctx.stylize('[Setter]', 'special');\r\n    }\r\n    if (!hasOwnProperty(visibleKeys, key)) {\r\n      name = `[${key}]`;\r\n    }\r\n    if (!str) {\r\n      if (ctx.seen.indexOf(desc.value) < 0) {\r\n        if (isNull(recurseTimes)) {\r\n          str = formatValue(ctx, desc.value, null);\r\n        } else {\r\n          str = formatValue(ctx, desc.value, recurseTimes - 1);\r\n        }\r\n        if (str.indexOf('\\n') > -1) {\r\n          if (array) {\r\n            str = str\r\n              .split('\\n')\r\n              .map(line => {\r\n                return `  ${line}`;\r\n              })\r\n              .join('\\n')\r\n              .substr(2);\r\n          } else {\r\n            str = `\\n${str\r\n              .split('\\n')\r\n              .map(line => {\r\n                return `   ${line}`;\r\n              })\r\n              .join('\\n')}`;\r\n          }\r\n        }\r\n      } else {\r\n        str = ctx.stylize('[Circular]', 'special');\r\n      }\r\n    }\r\n    if (isUndefined(name)) {\r\n      if (array && key.match(/^\\d+$/)) {\r\n        return str;\r\n      }\r\n      name = JSON.stringify(`${key}`);\r\n      if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\r\n        name = name.substr(1, name.length - 2);\r\n        name = ctx.stylize(name, 'name');\r\n      } else {\r\n        name = name\r\n          .replace(/'/g, \"\\\\'\")\r\n          .replace(/\\\\\"/g, '\"')\r\n          .replace(/(^\"|\"$)/g, \"'\");\r\n        name = ctx.stylize(name, 'string');\r\n      }\r\n    }\r\n\r\n    return `${name}: ${str}`;\r\n  }\r\n\r\n  function reduceToSingleString(output, base, braces) {\r\n    let numLinesEst = 0;\r\n    const length = output.reduce((prev, cur) => {\r\n      numLinesEst++;\r\n      if (cur.indexOf('\\n') >= 0) numLinesEst++;\r\n      return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\r\n    }, 0);\r\n\r\n    if (length > 60) {\r\n      return `${braces[0] + (base === '' ? '' : `${base}\\n `)} ${output.join(\r\n        ',\\n  '\r\n      )} ${braces[1]}`;\r\n    }\r\n\r\n    return `${braces[0] + base} ${output.join(', ')} ${braces[1]}`;\r\n  }\r\n\r\n  // NOTE: These type checking functions intentionally don't use `instanceof`\r\n  // because it is fragile and can be easily faked with `Object.create()`.\r\n  function isArray(ar) {\r\n    return Array.isArray(ar);\r\n  }\r\n\r\n  function isBoolean(arg) {\r\n    return typeof arg === 'boolean';\r\n  }\r\n\r\n  function isNull(arg) {\r\n    return arg === null;\r\n  }\r\n\r\n  function isNullOrUndefined(arg) {\r\n    return arg == null;\r\n  }\r\n\r\n  function isNumber(arg) {\r\n    return typeof arg === 'number';\r\n  }\r\n\r\n  function isString(arg) {\r\n    return typeof arg === 'string';\r\n  }\r\n\r\n  function isSymbol(arg) {\r\n    return typeof arg === 'symbol';\r\n  }\r\n\r\n  function isUndefined(arg) {\r\n    return arg === void 0;\r\n  }\r\n\r\n  function isRegExp(re) {\r\n    return isObject(re) && objectToString(re) === '[object RegExp]';\r\n  }\r\n\r\n  function isObject(arg) {\r\n    return typeof arg === 'object' && arg !== null;\r\n  }\r\n\r\n  function isDate(d) {\r\n    return isObject(d) && objectToString(d) === '[object Date]';\r\n  }\r\n\r\n  function isError(e) {\r\n    return (\r\n      isObject(e) &&\r\n      (objectToString(e) === '[object Error]' || e instanceof Error)\r\n    );\r\n  }\r\n\r\n  function isFunction(arg) {\r\n    return typeof arg === 'function';\r\n  }\r\n\r\n  function isPrimitive(arg) {\r\n    return (\r\n      arg === null ||\r\n      typeof arg === 'boolean' ||\r\n      typeof arg === 'number' ||\r\n      typeof arg === 'string' ||\r\n      typeof arg === 'symbol' || // ES6 symbol\r\n      typeof arg === 'undefined'\r\n    );\r\n  }\r\n\r\n  function objectToString(o) {\r\n    return Object.prototype.toString.call(o);\r\n  }\r\n\r\n  function hasOwnProperty(obj, prop) {\r\n    return Object.prototype.hasOwnProperty.call(obj, prop);\r\n  }\r\n\r\n  return inspect;\r\n})();\r\n\r\nconst OBJECT_COLUMN_NAME = '(index)';\r\nconst LOG_LEVELS = {\r\n  trace: 0,\r\n  info: 1,\r\n  warn: 2,\r\n  error: 3,\r\n};\r\nconst INSPECTOR_LEVELS = [];\r\nINSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug';\r\nINSPECTOR_LEVELS[LOG_LEVELS.info] = 'log';\r\nINSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning';\r\nINSPECTOR_LEVELS[LOG_LEVELS.error] = 'error';\r\n\r\n// Strip the inner function in getNativeLogFunction(), if in dev also\r\n// strip method printing to originalConsole.\r\nconst INSPECTOR_FRAMES_TO_SKIP = __DEV__ ? 2 : 1;\r\n\r\nfunction getNativeLogFunction(level) {\r\n  return function() {\r\n    let str;\r\n    if (arguments.length === 1 && typeof arguments[0] === 'string') {\r\n      str = arguments[0];\r\n    } else {\r\n      str = Array.prototype.map\r\n        .call(arguments, arg => {\r\n          return inspect(arg, { depth: 10 });\r\n        })\r\n        .join(', ');\r\n    }\r\n\r\n    let logLevel = level;\r\n    if (str.slice(0, 9) === 'Warning: ' && logLevel >= LOG_LEVELS.error) {\r\n      // React warnings use console.error so that a stack trace is shown,\r\n      // but we don't (currently) want these to show a redbox\r\n      // (Note: Logic duplicated in ExceptionsManager.js.)\r\n      logLevel = LOG_LEVELS.warn;\r\n    }\r\n    if (global.__inspectorLog) {\r\n      global.__inspectorLog(\r\n        INSPECTOR_LEVELS[logLevel],\r\n        str,\r\n        [].slice.call(arguments),\r\n        INSPECTOR_FRAMES_TO_SKIP\r\n      );\r\n    }\r\n    global.nativeLoggingHook(str, logLevel);\r\n  };\r\n}\r\n\r\nfunction repeat(element, n) {\r\n  return Array(...Array(n)).map(() => {\r\n    return element;\r\n  });\r\n}\r\n\r\nfunction consoleTablePolyfill(rows) {\r\n  // convert object -> array\r\n  if (!Array.isArray(rows)) {\r\n    const data = rows;\r\n    rows = [];\r\n    for (const key in data) {\r\n      if (data.hasOwnProperty(key)) {\r\n        const row = data[key];\r\n        row[OBJECT_COLUMN_NAME] = key;\r\n        rows.push(row);\r\n      }\r\n    }\r\n  }\r\n  if (rows.length === 0) {\r\n    global.nativeLoggingHook('', LOG_LEVELS.info);\r\n    return;\r\n  }\r\n\r\n  const columns = Object.keys(rows[0]).sort();\r\n  const stringRows = [];\r\n  const columnWidths = [];\r\n\r\n  // Convert each cell to a string. Also\r\n  // figure out max cell width for each column\r\n  columns.forEach((k, i) => {\r\n    columnWidths[i] = k.length;\r\n    for (let j = 0; j < rows.length; j++) {\r\n      const cellStr = (rows[j][k] || '?').toString();\r\n      stringRows[j] = stringRows[j] || [];\r\n      stringRows[j][i] = cellStr;\r\n      columnWidths[i] = Math.max(columnWidths[i], cellStr.length);\r\n    }\r\n  });\r\n\r\n  // Join all elements in the row into a single string with | separators\r\n  // (appends extra spaces to each cell to make separators  | aligned)\r\n  function joinRow(row, space) {\r\n    const cells = row.map((cell, i) => {\r\n      const extraSpaces = repeat(' ', columnWidths[i] - cell.length).join('');\r\n      return cell + extraSpaces;\r\n    });\r\n    space = space || ' ';\r\n    return cells.join(`${space}|${space}`);\r\n  }\r\n\r\n  const separators = columnWidths.map(columnWidth => {\r\n    return repeat('-', columnWidth).join('');\r\n  });\r\n  const separatorRow = joinRow(separators, '-');\r\n  const header = joinRow(columns);\r\n  const table = [header, separatorRow];\r\n\r\n  for (let i = 0; i < rows.length; i++) {\r\n    table.push(joinRow(stringRows[i]));\r\n  }\r\n\r\n  // Notice extra empty line at the beginning.\r\n  // Native logging hook adds \"RCTLog >\" at the front of every\r\n  // logged string, which would shift the header and screw up\r\n  // the table\r\n  global.nativeLoggingHook(`\\n${table.join('\\n')}`, LOG_LEVELS.info);\r\n}\r\n\r\nfunction consoleAssertPolyfill(expression, label) {\r\n  if (!expression) {\r\n    global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error);\r\n  }\r\n}\r\n\r\nif (global.nativeLoggingHook) {\r\n  const originalConsole = global.console;\r\n  global.console = {\r\n    error: getNativeLogFunction(LOG_LEVELS.error),\r\n    info: getNativeLogFunction(LOG_LEVELS.info),\r\n    log: getNativeLogFunction(LOG_LEVELS.info),\r\n    warn: getNativeLogFunction(LOG_LEVELS.warn),\r\n    trace: getNativeLogFunction(LOG_LEVELS.trace),\r\n    debug: getNativeLogFunction(LOG_LEVELS.trace),\r\n    table: consoleTablePolyfill,\r\n    assert: consoleAssertPolyfill,\r\n  };\r\n\r\n  // If available, also call the original `console` method since that is\r\n  // sometimes useful. Ex: on OS X, this will let you see rich output in\r\n  // the Safari Web Inspector console.\r\n  if (__DEV__ && originalConsole) {\r\n    // Preserve the original `console` as `originalConsole`\r\n    const descriptor = Object.getOwnPropertyDescriptor(global, 'console');\r\n    if (descriptor) {\r\n      Object.defineProperty(global, 'originalConsole', descriptor);\r\n    }\r\n\r\n    Object.keys(console).forEach(methodName => {\r\n      const reactNativeMethod = console[methodName];\r\n      if (originalConsole[methodName]) {\r\n        console[methodName] = function() {\r\n          originalConsole[methodName](...arguments);\r\n          reactNativeMethod.apply(console, arguments);\r\n        };\r\n      }\r\n    });\r\n  }\r\n} else if (!global.console) {\r\n  const log = global.print || function consoleLoggingStub() {};\r\n  global.console = {\r\n    error: log,\r\n    info: log,\r\n    log,\r\n    warn: log,\r\n    trace: log,\r\n    debug: log,\r\n    table: log,\r\n  };\r\n}\r\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule error-guard\n * @polyfill\n * @nolint\n */\n\nlet _inGuard = 0;\n\n/**\n * This is the error handler that is called when we encounter an exception\n * when loading a module. This will report any errors encountered before\n * ExceptionsManager is configured.\n */\nlet _globalHandler = function onError(e) {\n  throw e;\n};\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n */\nconst ErrorUtils = {\n  setGlobalHandler(fun) {\n    _globalHandler = fun;\n  },\n  getGlobalHandler() {\n    return _globalHandler;\n  },\n  reportError(error) {\n    _globalHandler && _globalHandler(error);\n  },\n  reportFatalError(error) {\n    _globalHandler && _globalHandler(error, true);\n  },\n  applyWithGuard(fun, context, args) {\n    try {\n      _inGuard++;\n      return fun.apply(context, args);\n    } catch (e) {\n      ErrorUtils.reportError(e);\n    } finally {\n      _inGuard--;\n    }\n    return null;\n  },\n  applyWithGuardIfNeeded(fun, context, args) {\n    if (ErrorUtils.inGuard()) {\n      return fun.apply(context, args);\n    }\n    ErrorUtils.applyWithGuard(fun, context, args);\n\n    return null;\n  },\n  inGuard() {\n    return _inGuard;\n  },\n  guard(fun, name, context) {\n    if (typeof fun !== 'function') {\n      console.warn('A function must be passed to ErrorUtils.guard, got ', fun);\n      return null;\n    }\n    name = name || fun.name || '<generated guard>';\n    function guarded() {\n      return ErrorUtils.applyWithGuard(\n        fun,\n        context || this,\n        arguments,\n        null,\n        name\n      );\n    }\n\n    return guarded;\n  },\n};\n\nglobal.ErrorUtils = ErrorUtils;\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule Number.es6\n * @polyfill\n * @nolint\n */\n\nif (Number.EPSILON === undefined) {\n  Object.defineProperty(Number, 'EPSILON', {\n    value: Math.pow(2, -52),\n  });\n}\nif (Number.MAX_SAFE_INTEGER === undefined) {\n  Object.defineProperty(Number, 'MAX_SAFE_INTEGER', {\n    value: Math.pow(2, 53) - 1,\n  });\n}\nif (Number.MIN_SAFE_INTEGER === undefined) {\n  Object.defineProperty(Number, 'MIN_SAFE_INTEGER', {\n    value: -(Math.pow(2, 53) - 1),\n  });\n}\nif (!Number.isNaN) {\n  // https://github.com/dherman/tc39-codex-wiki/blob/master/data/es6/number/index.md#polyfill-for-numberisnan\n  const globalIsNaN = global.isNaN;\n  Object.defineProperty(Number, 'isNaN', {\n    configurable: true,\n    enumerable: false,\n    value: function isNaN(value) {\n      return typeof value === 'number' && globalIsNaN(value);\n    },\n    writable: true,\n  });\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule String.prototype.es6\n * @polyfill\n * @nolint\n */\n\n/* eslint-disable no-extend-native, no-bitwise */\n\n/*\n * NOTE: We use (Number(x) || 0) to replace NaN values with zero.\n */\n\nif (!String.prototype.startsWith) {\n  String.prototype.startsWith = function(search) {\n    'use strict';\n\n    if (this == null) {\n      throw TypeError();\n    }\n    const string = String(this);\n    const pos = arguments.length > 1 ? Number(arguments[1]) || 0 : 0;\n    const start = Math.min(Math.max(pos, 0), string.length);\n    return string.indexOf(String(search), pos) === start;\n  };\n}\n\nif (!String.prototype.endsWith) {\n  String.prototype.endsWith = function(search) {\n    'use strict';\n\n    if (this == null) {\n      throw TypeError();\n    }\n    const string = String(this);\n    const stringLength = string.length;\n    const searchString = String(search);\n    const pos = arguments.length > 1 ? Number(arguments[1]) || 0 : stringLength;\n    const end = Math.min(Math.max(pos, 0), stringLength);\n    const start = end - searchString.length;\n    if (start < 0) {\n      return false;\n    }\n    return string.lastIndexOf(searchString, start) === start;\n  };\n}\n\nif (!String.prototype.repeat) {\n  String.prototype.repeat = function(count) {\n    'use strict';\n\n    if (this == null) {\n      throw TypeError();\n    }\n    let string = String(this);\n    count = Number(count) || 0;\n    if (count < 0 || count === Infinity) {\n      throw RangeError();\n    }\n    if (count === 1) {\n      return string;\n    }\n    let result = '';\n    while (count) {\n      if (count & 1) {\n        result += string;\n      }\n      if ((count >>= 1)) {\n        string += string;\n      }\n    }\n    return result;\n  };\n}\n\nif (!String.prototype.includes) {\n  String.prototype.includes = function(search, start) {\n    'use strict';\n\n    if (typeof start !== 'number') {\n      start = 0;\n    }\n\n    if (start + search.length > this.length) {\n      return false;\n    }\n    return this.indexOf(search, start) !== -1;\n  };\n}\n\nif (!String.prototype.codePointAt) {\n  String.prototype.codePointAt = function(position) {\n    if (this == null) {\n      throw TypeError();\n    }\n    const string = String(this);\n    const size = string.length;\n    // `ToInteger`\n    let index = position ? Number(position) : 0;\n    if (Number.isNaN(index)) {\n      index = 0;\n    }\n    // Account for out-of-bounds indices:\n    if (index < 0 || index >= size) {\n      return undefined;\n    }\n    // Get the first code unit\n    const first = string.charCodeAt(index);\n    let second;\n    if (\n      // check if it’s the start of a surrogate pair\n      first >= 0xd800 &&\n      first <= 0xdbff && // high surrogate\n      size > index + 1 // there is a next code unit\n    ) {\n      second = string.charCodeAt(index + 1);\n      if (second >= 0xdc00 && second <= 0xdfff) {\n        // low surrogate\n        // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000;\n      }\n    }\n    return first;\n  };\n}\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule Array.prototype.es6\n * @polyfill\n * @nolint\n */\n\n/* eslint-disable no-bitwise, no-extend-native, radix, no-self-compare */\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex\nfunction findIndex(predicate, context) {\n  if (this == null) {\n    throw new TypeError(\n      'Array.prototype.findIndex called on null or undefined'\n    );\n  }\n  if (typeof predicate !== 'function') {\n    throw new TypeError('predicate must be a function');\n  }\n  const list = Object(this);\n  const length = list.length >>> 0;\n  for (let i = 0; i < length; i++) {\n    if (predicate.call(context, list[i], i, list)) {\n      return i;\n    }\n  }\n  return -1;\n}\n\nif (!Array.prototype.findIndex) {\n  Object.defineProperty(Array.prototype, 'findIndex', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: findIndex,\n  });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\nif (!Array.prototype.find) {\n  Object.defineProperty(Array.prototype, 'find', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value(predicate, context) {\n      if (this == null) {\n        throw new TypeError('Array.prototype.find called on null or undefined');\n      }\n      const index = findIndex.call(this, predicate, context);\n      return index === -1 ? undefined : this[index];\n    },\n  });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes\nif (!Array.prototype.includes) {\n  Object.defineProperty(Array.prototype, 'includes', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value(searchElement) {\n      const O = Object(this);\n      const len = parseInt(O.length) || 0;\n      if (len === 0) {\n        return false;\n      }\n      const n = parseInt(arguments[1]) || 0;\n      let k;\n      if (n >= 0) {\n        k = n;\n      } else {\n        k = len + n;\n        if (k < 0) {\n          k = 0;\n        }\n      }\n      let currentElement;\n      while (k < len) {\n        currentElement = O[k];\n        if (\n          searchElement === currentElement ||\n          (searchElement !== searchElement && currentElement !== currentElement)\n        ) {\n          return true;\n        }\n        k++;\n      }\n      return false;\n    },\n  });\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule Array.es6\n * @polyfill\n * @nolint\n */\n\n/* eslint-disable consistent-this */\n\n/**\n * Creates an array from array like objects.\n *\n * https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from\n */\nif (!Array.from) {\n  Array.from = function(arrayLike /* , mapFn, thisArg */) {\n    if (arrayLike == null) {\n      throw new TypeError('Object is null or undefined');\n    }\n\n    // Optional args.\n    const mapFn = arguments[1];\n    const thisArg = arguments[2];\n\n    const C = this;\n    const items = Object(arrayLike);\n    const symbolIterator =\n      typeof Symbol === 'function' ? Symbol.iterator : '@@iterator';\n    const mapping = typeof mapFn === 'function';\n    const usingIterator = typeof items[symbolIterator] === 'function';\n    let key = 0;\n    let ret;\n    let value;\n\n    if (usingIterator) {\n      ret = typeof C === 'function' ? new C() : [];\n      const it = items[symbolIterator]();\n      let next;\n\n      while (!(next = it.next()).done) {\n        value = next.value;\n\n        if (mapping) {\n          value = mapFn.call(thisArg, value, key);\n        }\n\n        ret[key] = value;\n        key += 1;\n      }\n\n      ret.length = key;\n      return ret;\n    }\n\n    let len = items.length;\n    if (isNaN(len) || len < 0) {\n      len = 0;\n    }\n\n    ret = typeof C === 'function' ? new C(len) : new Array(len);\n\n    while (key < len) {\n      value = items[key];\n\n      if (mapping) {\n        value = mapFn.call(thisArg, value, key);\n      }\n\n      ret[key] = value;\n\n      key += 1;\n    }\n\n    ret.length = key;\n    return ret;\n  };\n}\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule Object.es7\n * @polyfill\n * @nolint\n */\n\n(function() {\n  'use strict';\n\n  const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n  /**\n   * Returns an array of the given object's own enumerable entries.\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n   */\n  if (typeof Object.entries !== 'function') {\n    Object.entries = function(object) {\n      // `null` and `undefined` values are not allowed.\n      if (object == null) {\n        throw new TypeError('Object.entries called on non-object');\n      }\n\n      const entries = [];\n      for (const key in object) {\n        if (hasOwnProperty.call(object, key)) {\n          entries.push([key, object[key]]);\n        }\n      }\n      return entries;\n    };\n  }\n\n  /**\n   * Returns an array of the given object's own enumerable entries.\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n   */\n  if (typeof Object.values !== 'function') {\n    Object.values = function(object) {\n      // `null` and `undefined` values are not allowed.\n      if (object == null) {\n        throw new TypeError('Object.values called on non-object');\n      }\n\n      const values = [];\n      for (const key in object) {\n        if (hasOwnProperty.call(object, key)) {\n          values.push(object[key]);\n        }\n      }\n      return values;\n    };\n  }\n})();\n","\"use strict\";\r\n// This is the win32 specific entry point to the SDX. -- The code here should be minimal\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/* tslint:enable:no-unused-variable */\r\nvar react_native_1 = require(\"react-native\");\r\nrequire(\"@microsoft/office-api/office.runtime.reactnative\");\r\nvar reka_react_native_1 = require(\"@office-iss/reka-react-native\");\r\nvar SavePrompt_1 = require(\"./SavePrompt\");\r\nvar ModelEvaluationService_1 = require(\"./SavePrompt/ModelEvaluationService\");\r\nrequire('@microsoft/office-api/office.runtime');\r\nreact_native_1.AppRegistry.registerComponent('SavePrompt', function () { return SavePrompt_1.SaveCallout; });\r\nreka_react_native_1.initReka(ModelEvaluationService_1.ModelEvaluationService);\r\n","module.exports = OfficePlatformGlobal.ReactNative.Components;","var scope = (typeof global !== \"undefined\" && global) ||\n            (typeof self !== \"undefined\" && self) ||\n            window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n  if (timeout) {\n    timeout.close();\n  }\n};\n\nfunction Timeout(id, clearFn) {\n  this._id = id;\n  this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n  this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n  clearTimeout(item._idleTimeoutId);\n\n  var msecs = item._idleTimeout;\n  if (msecs >= 0) {\n    item._idleTimeoutId = setTimeout(function onTimeout() {\n      if (item._onTimeout)\n        item._onTimeout();\n    }, msecs);\n  }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto.  Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n                       (typeof global !== \"undefined\" && global.setImmediate) ||\n                       (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n                         (typeof global !== \"undefined\" && global.clearImmediate) ||\n                         (this && this.clearImmediate);\n","(function (global, undefined) {\n    \"use strict\";\n\n    if (global.setImmediate) {\n        return;\n    }\n\n    var nextHandle = 1; // Spec says greater than zero\n    var tasksByHandle = {};\n    var currentlyRunningATask = false;\n    var doc = global.document;\n    var registerImmediate;\n\n    function setImmediate(callback) {\n      // Callback can either be a function or a string\n      if (typeof callback !== \"function\") {\n        callback = new Function(\"\" + callback);\n      }\n      // Copy function arguments\n      var args = new Array(arguments.length - 1);\n      for (var i = 0; i < args.length; i++) {\n          args[i] = arguments[i + 1];\n      }\n      // Store and register the task\n      var task = { callback: callback, args: args };\n      tasksByHandle[nextHandle] = task;\n      registerImmediate(nextHandle);\n      return nextHandle++;\n    }\n\n    function clearImmediate(handle) {\n        delete tasksByHandle[handle];\n    }\n\n    function run(task) {\n        var callback = task.callback;\n        var args = task.args;\n        switch (args.length) {\n        case 0:\n            callback();\n            break;\n        case 1:\n            callback(args[0]);\n            break;\n        case 2:\n            callback(args[0], args[1]);\n            break;\n        case 3:\n            callback(args[0], args[1], args[2]);\n            break;\n        default:\n            callback.apply(undefined, args);\n            break;\n        }\n    }\n\n    function runIfPresent(handle) {\n        // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n        // So if we're currently running a task, we'll need to delay this invocation.\n        if (currentlyRunningATask) {\n            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n            // \"too much recursion\" error.\n            setTimeout(runIfPresent, 0, handle);\n        } else {\n            var task = tasksByHandle[handle];\n            if (task) {\n                currentlyRunningATask = true;\n                try {\n                    run(task);\n                } finally {\n                    clearImmediate(handle);\n                    currentlyRunningATask = false;\n                }\n            }\n        }\n    }\n\n    function installNextTickImplementation() {\n        registerImmediate = function(handle) {\n            process.nextTick(function () { runIfPresent(handle); });\n        };\n    }\n\n    function canUsePostMessage() {\n        // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n        // where `global.postMessage` means something completely different and can't be used for this purpose.\n        if (global.postMessage && !global.importScripts) {\n            var postMessageIsAsynchronous = true;\n            var oldOnMessage = global.onmessage;\n            global.onmessage = function() {\n                postMessageIsAsynchronous = false;\n            };\n            global.postMessage(\"\", \"*\");\n            global.onmessage = oldOnMessage;\n            return postMessageIsAsynchronous;\n        }\n    }\n\n    function installPostMessageImplementation() {\n        // Installs an event handler on `global` for the `message` event: see\n        // * https://developer.mozilla.org/en/DOM/window.postMessage\n        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n        var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n        var onGlobalMessage = function(event) {\n            if (event.source === global &&\n                typeof event.data === \"string\" &&\n                event.data.indexOf(messagePrefix) === 0) {\n                runIfPresent(+event.data.slice(messagePrefix.length));\n            }\n        };\n\n        if (global.addEventListener) {\n            global.addEventListener(\"message\", onGlobalMessage, false);\n        } else {\n            global.attachEvent(\"onmessage\", onGlobalMessage);\n        }\n\n        registerImmediate = function(handle) {\n            global.postMessage(messagePrefix + handle, \"*\");\n        };\n    }\n\n    function installMessageChannelImplementation() {\n        var channel = new MessageChannel();\n        channel.port1.onmessage = function(event) {\n            var handle = event.data;\n            runIfPresent(handle);\n        };\n\n        registerImmediate = function(handle) {\n            channel.port2.postMessage(handle);\n        };\n    }\n\n    function installReadyStateChangeImplementation() {\n        var html = doc.documentElement;\n        registerImmediate = function(handle) {\n            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n            var script = doc.createElement(\"script\");\n            script.onreadystatechange = function () {\n                runIfPresent(handle);\n                script.onreadystatechange = null;\n                html.removeChild(script);\n                script = null;\n            };\n            html.appendChild(script);\n        };\n    }\n\n    function installSetTimeoutImplementation() {\n        registerImmediate = function(handle) {\n            setTimeout(runIfPresent, 0, handle);\n        };\n    }\n\n    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n    // Don't get fooled by e.g. browserify environments.\n    if ({}.toString.call(global.process) === \"[object process]\") {\n        // For Node.js before 0.9\n        installNextTickImplementation();\n\n    } else if (canUsePostMessage()) {\n        // For non-IE10 modern browsers\n        installPostMessageImplementation();\n\n    } else if (global.MessageChannel) {\n        // For web workers, where supported\n        installMessageChannelImplementation();\n\n    } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n        // For IE 6–8\n        installReadyStateChangeImplementation();\n\n    } else {\n        // For older browsers\n        installSetTimeoutImplementation();\n    }\n\n    attachTo.setImmediate = setImmediate;\n    attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","\"use strict\";\r\n// This is the win32 specific entry point to the SDX. -- The code here should be minimal\r\nvar __extends = (this && this.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/* tslint:disable:no-unused-variable */\r\nvar React = require(\"react\");\r\n/* tslint:enable:no-unused-variable */\r\nrequire(\"@microsoft/office-api/office.runtime.reactnative\");\r\nrequire('@microsoft/office-api/office.runtime');\r\nvar DefaultButton_1 = require(\"@office-iss/polyester/lib/common/DefaultButton\");\r\nvar Text_1 = require(\"@office-iss/polyester/lib/common/Text\");\r\nvar View_1 = require(\"@office-iss/polyester/lib/common/View\");\r\nvar StyleSheet_1 = require(\"@office-iss/polyester/lib/common/StyleSheet\");\r\nvar SavePrompt = require(\"./SavePrompt/SavePrompt.g\");\r\nvar strings = require('../assets/strings.resjson');\r\nvar SaveCallout = /** @class */ (function (_super) {\r\n    __extends(SaveCallout, _super);\r\n    function SaveCallout(props) {\r\n        var _this = _super.call(this, props) || this;\r\n        _this.saveButtonClicked = function () {\r\n            SavePrompt.NativeServices.NativeFileIOSave.SaveFile({ docId: _this.props.docId })\r\n                .then(function (value) {\r\n                _this.setState({ message: value.Result });\r\n                console.log('Calling Save callback successfully. Token returned:' + value.Result + '=');\r\n            })\r\n                .catch(function (err) {\r\n                console.log('Calling Save callback returned with error: ' + err.stack);\r\n            });\r\n        };\r\n        _this.notNowButtonClicked = function () {\r\n            SavePrompt.NativeServices.NativeNotNow.NotNow({ docId: _this.props.docId })\r\n                .then(function (value) {\r\n                _this.setState({ message: value.Result });\r\n                console.log('Calling Not Now callback successfully. Token returned:' + value.Result + '=');\r\n            })\r\n                .catch(function (err) {\r\n                console.log('Calling Not Now callback returned with error: ' + err.stack);\r\n            });\r\n        };\r\n        _this.state = { message: 'empty' };\r\n        return _this;\r\n    }\r\n    SaveCallout.prototype.render = function () {\r\n        return (React.createElement(View_1.View, { style: styles.outside },\r\n            React.createElement(Text_1.Text, { textStyle: \"LargeStandard\" }, strings.getString('calloutTitle')),\r\n            React.createElement(View_1.View, { style: styles.gap }),\r\n            React.createElement(Text_1.Text, null,\r\n                strings.getString('calloutText'),\r\n                \" \"),\r\n            React.createElement(View_1.View, { style: styles.gap }),\r\n            React.createElement(View_1.View, { style: styles.container },\r\n                React.createElement(DefaultButton_1.DefaultButton, { text: strings.getString('saveButtonText'), onClick: this.saveButtonClicked }),\r\n                React.createElement(View_1.View, { style: styles.space }),\r\n                React.createElement(DefaultButton_1.DefaultButton, { text: strings.getString('notNowButtonText'), onClick: this.notNowButtonClicked }))));\r\n    };\r\n    return SaveCallout;\r\n}(React.Component));\r\nexports.SaveCallout = SaveCallout;\r\nvar styles = {\r\n    container: StyleSheet_1.StyleSheet.createViewStyle({\r\n        flex: 1,\r\n        flexDirection: 'row',\r\n        justifyContent: 'flex-end',\r\n    }),\r\n    outside: StyleSheet_1.StyleSheet.createViewStyle({\r\n        bottom: 1,\r\n        padding: 6,\r\n        margin: 5,\r\n    }),\r\n    space: StyleSheet_1.StyleSheet.createViewStyle({\r\n        width: 8,\r\n    }),\r\n    gap: StyleSheet_1.StyleSheet.createViewStyle({\r\n        height: 4,\r\n    })\r\n};\r\n","module.exports = OfficePlatformGlobal.React;","module.exports = OfficePlatformGlobal.Ply.DefaultButton;","module.exports = OfficePlatformGlobal.Ply.Text;","module.exports = OfficePlatformGlobal.Ply.View;","module.exports = OfficePlatformGlobal.Ply.StyleSheet;","module.exports = OfficePlatformGlobal.Reka;","const ssr = require('@office-iss/sdx-string-resources');\nmodule.exports = ssr.StringResources.createLazyTable({\"location\":\"strings.resjson\"});","module.exports = OfficePlatformGlobal.SDX.StringResources;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar FileIO = require(\"./SavePrompt.g\");\r\nvar MlConfiguration_1 = require(\"./MlConfiguration\");\r\nvar ISavePromptModel_1 = require(\"./MLModels/ISavePromptModel\");\r\nvar SavePromptModelHeuristic_1 = require(\"./MLModels/SavePromptModelHeuristic\");\r\nvar SavePromptModelLR_1 = require(\"./MLModels/SavePromptModelLR\");\r\nvar SavePromptModelClickstream_1 = require(\"./MLModels/SavePromptModelClickstream\");\r\nvar SavePromptModelOnyx_1 = require(\"./MLModels/SavePromptModelOnyx\");\r\nvar ModelEvaluationService = /** @class */ (function () {\r\n    function ModelEvaluationService() {\r\n        this.SavePromptMLModel = null;\r\n    }\r\n    ModelEvaluationService.prototype.evaluate = function (modelInput) {\r\n        if (this.SavePromptMLModel === null) {\r\n            return Promise.resolve(MlConfiguration_1.getDefaultModelOutput());\r\n        }\r\n        if (!ISavePromptModel_1.checkCompatibility(this.SavePromptMLModel.getModelRequirements(), modelInput)) {\r\n            var configErrorOutput = MlConfiguration_1.getDefaultModelOutput();\r\n            configErrorOutput.isModelFlightable = false;\r\n            return Promise.resolve(configErrorOutput);\r\n        }\r\n        var startTime = Date.now();\r\n        var outputPayload = this.SavePromptMLModel.evaluate(modelInput);\r\n        var calcTime = Date.now() - startTime;\r\n        outputPayload.calcDurationSec = calcTime;\r\n        return Promise.resolve(outputPayload);\r\n    };\r\n    ModelEvaluationService.prototype.initConfiguration = function (configPayload) {\r\n        MlConfiguration_1.MLConfiguration.register(configPayload);\r\n        var modelID = MlConfiguration_1.MLConfiguration.getModelID();\r\n        var configResponse = {\r\n            validConfig: true,\r\n            bundleVersion: '1.0.0.0'\r\n        };\r\n        switch (modelID) {\r\n            case MlConfiguration_1.SavePromptModel.LR: {\r\n                this.SavePromptMLModel = new SavePromptModelLR_1.SavePromptModelLRImpl();\r\n                break;\r\n            }\r\n            case MlConfiguration_1.SavePromptModel.ClickStream: {\r\n                this.SavePromptMLModel = new SavePromptModelClickstream_1.SavePromptModelClickStreamImpl();\r\n                break;\r\n            }\r\n            case MlConfiguration_1.SavePromptModel.Onyx: {\r\n                this.SavePromptMLModel = new SavePromptModelOnyx_1.SavePromptModelOnyxImpl();\r\n                break;\r\n            }\r\n            case MlConfiguration_1.SavePromptModel.Heuristic: {\r\n                this.SavePromptMLModel = new SavePromptModelHeuristic_1.SavePromptModelHeuristicImpl();\r\n                break;\r\n            }\r\n            default: {\r\n                configResponse.validConfig = false;\r\n                break;\r\n            }\r\n        }\r\n        return Promise.resolve(configResponse);\r\n    };\r\n    ModelEvaluationService.ServiceInfo = FileIO.ServiceInfos.ModelEvaluationService;\r\n    return ModelEvaluationService;\r\n}());\r\nexports.ModelEvaluationService = ModelEvaluationService;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction checkCompatibility(requirements, modelInputPayload) {\r\n    for (var _i = 0, requirements_1 = requirements; _i < requirements_1.length; _i++) {\r\n        var key = requirements_1[_i];\r\n        if (!(key in modelInputPayload.modelConstantInput)) {\r\n            return false;\r\n        }\r\n    }\r\n    return true;\r\n}\r\nexports.checkCompatibility = checkCompatibility;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MlConfiguration_1 = require(\"../MlConfiguration\");\r\nvar SavePromptModelHeuristicImpl = /** @class */ (function () {\r\n    function SavePromptModelHeuristicImpl() {\r\n    }\r\n    SavePromptModelHeuristicImpl.prototype.getModelRequirements = function () {\r\n        return [MlConfiguration_1.ModelParameter.DwellTimeSec, MlConfiguration_1.ModelParameter.RowCount, MlConfiguration_1.ModelParameter.TileUpdateCount];\r\n    };\r\n    SavePromptModelHeuristicImpl.prototype.evaluate = function (modelInputPayload) {\r\n        var res = MlConfiguration_1.getDefaultModelOutput();\r\n        var modelConstants = modelInputPayload.modelConstantInput;\r\n        if (modelConstants[MlConfiguration_1.ModelParameter.RowCount] < 52 /* rowCountThreshold */) {\r\n            return res;\r\n        }\r\n        if (modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount] < 146 /* tileUpdateCountThreshold */) {\r\n            return res;\r\n        }\r\n        if (modelConstants[MlConfiguration_1.ModelParameter.DwellTimeSec] < 60 /* dwellTimeSecThreshold */) {\r\n            return res;\r\n        }\r\n        res.output = true;\r\n        return res;\r\n    };\r\n    return SavePromptModelHeuristicImpl;\r\n}());\r\nexports.SavePromptModelHeuristicImpl = SavePromptModelHeuristicImpl;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MlConfiguration_1 = require(\"../MlConfiguration\");\r\nvar SavePromptModelLRImpl = /** @class */ (function () {\r\n    function SavePromptModelLRImpl() {\r\n    }\r\n    SavePromptModelLRImpl.prototype.getModelRequirements = function () {\r\n        return [MlConfiguration_1.ModelParameter.DwellTimeSec, MlConfiguration_1.ModelParameter.RowCount, MlConfiguration_1.ModelParameter.TileUpdateCount];\r\n    };\r\n    SavePromptModelLRImpl.prototype.evaluate = function (modelInputPayload) {\r\n        var res = MlConfiguration_1.getDefaultModelOutput();\r\n        var modelConstants = modelInputPayload.modelConstantInput;\r\n        var dwellTimeHrs = modelConstants[MlConfiguration_1.ModelParameter.DwellTimeSec] / 3600.0;\r\n        if (dwellTimeHrs === 0) {\r\n            return res;\r\n        }\r\n        var tileUpdateRate = modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount] / dwellTimeHrs;\r\n        var threshold = 14.285950663717738;\r\n        var output = (0.01582433 * modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount]) +\r\n            (-0.02992947 * dwellTimeHrs) + (0.00025957 * modelConstants[MlConfiguration_1.ModelParameter.RowCount]) +\r\n            (-0.00069022 * tileUpdateRate) +\r\n            (-0.99775024);\r\n        if (output >= threshold) {\r\n            res.output = true;\r\n        }\r\n        return res;\r\n    };\r\n    return SavePromptModelLRImpl;\r\n}());\r\nexports.SavePromptModelLRImpl = SavePromptModelLRImpl;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MlConfiguration_1 = require(\"../MlConfiguration\");\r\nvar SavePromptModelClickStreamImpl = /** @class */ (function () {\r\n    function SavePromptModelClickStreamImpl() {\r\n        this.tcidToWeight = {\r\n            24: -1.3288369925779793,\r\n            768: 0.8288308468483366,\r\n            795: -1.273178170186842,\r\n            2521: -1.4574533693095872,\r\n            2626: -0.8023760403852735,\r\n            2799: 0.795099188397689,\r\n            3719: -1.1199206689708436,\r\n            3997: -0.8041372457110557,\r\n            5736: -0.8393742397453676,\r\n            5908: -1.230428584719355,\r\n            7035: -1.4001748573525037,\r\n            11323: -0.923789089850057,\r\n            12499: -1.0191671847061208,\r\n            12808: 1.0866703843329601,\r\n            13145: -0.805440472452837,\r\n            14767: 0.804483081317101,\r\n            14791: 0.8086062956132883,\r\n            15292: 0.9237440576419294,\r\n            16238: 1.003080676681458,\r\n            18074: 0.8434182149627534,\r\n            20802: -2.14110610345336,\r\n            24134: -1.2205327164872002,\r\n            27187: 0.8740641028617783,\r\n            27302: -1.1409566136789155,\r\n            27323: -0.9636398087590168\r\n        };\r\n    }\r\n    SavePromptModelClickStreamImpl.prototype.getModelRequirements = function () {\r\n        return [MlConfiguration_1.ModelParameter.DwellTimeSec, MlConfiguration_1.ModelParameter.RowCount, MlConfiguration_1.ModelParameter.TileUpdateCount, MlConfiguration_1.ModelParameter.RelevantTcidsExists];\r\n    };\r\n    SavePromptModelClickStreamImpl.prototype.evaluate = function (modelInputPayload) {\r\n        var res = MlConfiguration_1.getDefaultModelOutput();\r\n        var modelConstants = modelInputPayload.modelConstantInput;\r\n        var dwellTimeHrs = modelConstants[MlConfiguration_1.ModelParameter.DwellTimeSec] / 3600.0;\r\n        if (dwellTimeHrs === 0) {\r\n            return res;\r\n        }\r\n        var tileUpdateRate = modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount] / dwellTimeHrs;\r\n        // Using weights of noclickstream features obtained from jupyter notebook\r\n        var noClickstreamSignal = (3.84075809e-04 * modelConstants[MlConfiguration_1.ModelParameter.RowCount]) +\r\n            (6.94562125e-03 * modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount]) +\r\n            (-9.46702474e-03 * dwellTimeHrs) +\r\n            (1.81743748e-05 * tileUpdateRate);\r\n        /*\r\n        Initialising clickstream signal with number of clicks feature weighed by its weight\r\n        This weight has been obtained from jupyter notebook\r\n        */\r\n        var clickstreamSignal = -5.67784228e-02 * modelInputPayload.relevantTcids.length;\r\n        /* Using weight of respective TCIDs for clickstreamsignal from jupyter notebook */\r\n        for (var _i = 0, _a = modelInputPayload.relevantTcids; _i < _a.length; _i++) {\r\n            var tcid = _a[_i];\r\n            if (tcid in this.tcidToWeight) {\r\n                clickstreamSignal += this.tcidToWeight[tcid];\r\n            }\r\n        }\r\n        var threshold = 16248 /*clickstreamLRThreshold */ / 10.0e3;\r\n        /*\r\n        Coefficients have been calculated using scikit library for\r\n        Regression model. for details, refer jupyter notebook.\r\n        Adding the intercept value obtained from jupyter notebook\r\n        */\r\n        var output = clickstreamSignal + noClickstreamSignal + (-0.23831275);\r\n        if (output >= threshold) {\r\n            res.output = true;\r\n        }\r\n        return res;\r\n    };\r\n    return SavePromptModelClickStreamImpl;\r\n}());\r\nexports.SavePromptModelClickStreamImpl = SavePromptModelClickStreamImpl;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MlConfiguration_1 = require(\"../MlConfiguration\");\r\nvar SavePromptModelOnyxImpl = /** @class */ (function () {\r\n    function SavePromptModelOnyxImpl() {\r\n        this.tcidToWeight = {\r\n            19: -0.9634002655461523,\r\n            24: -1.6320642705216424,\r\n            795: -1.2616032096018865,\r\n            2521: -1.3165550392176244,\r\n            2799: 0.7772081792469913,\r\n            3719: -1.0500886124973445,\r\n            5736: -1.2813985472431204,\r\n            6920: 1.0602900051006168,\r\n            7035: -1.5295724715956758,\r\n            12499: -1.1640716749344764,\r\n            19139: -1.0939200022925253,\r\n            20802: -1.4124485909961755,\r\n            27302: -0.8096784986791372\r\n        };\r\n    }\r\n    SavePromptModelOnyxImpl.prototype.getModelRequirements = function () {\r\n        return [MlConfiguration_1.ModelParameter.DwellTimeSec, MlConfiguration_1.ModelParameter.RowCount, MlConfiguration_1.ModelParameter.TileUpdateCount, MlConfiguration_1.ModelParameter.RelevantTcidsExists];\r\n    };\r\n    SavePromptModelOnyxImpl.prototype.evaluate = function (modelInputPayload) {\r\n        var res = MlConfiguration_1.getDefaultModelOutput();\r\n        var modelConstants = modelInputPayload.modelConstantInput;\r\n        var dwellTimeHrs = modelConstants[MlConfiguration_1.ModelParameter.DwellTimeSec] / 3600.0;\r\n        if (dwellTimeHrs === 0) {\r\n            return res;\r\n        }\r\n        var tileUpdateRate = modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount] / dwellTimeHrs;\r\n        // Using weights of noclickstream features obtained from jupyter notebook\r\n        var noClickstreamSignal = (3.00133378e-04 * modelConstants[MlConfiguration_1.ModelParameter.RowCount]) +\r\n            (1.09039234e-02 * modelConstants[MlConfiguration_1.ModelParameter.TileUpdateCount]) +\r\n            (-3.13122907e-03 * dwellTimeHrs) +\r\n            (-2.12025020e-05 * tileUpdateRate);\r\n        /*\r\n        Initialising clickstream signal with number of clicks feature weighed by its weight\r\n        This weight has been obtained from jupyter notebook\r\n        */\r\n        var clickstreamSignal = -4.93733704e-02 * modelInputPayload.relevantTcids.length;\r\n        /* Using weight of respective TCIDs for clickstreamsignal from jupyter notebook */\r\n        for (var _i = 0, _a = modelInputPayload.relevantTcids; _i < _a.length; _i++) {\r\n            var tcid = _a[_i];\r\n            if (tcid in this.tcidToWeight) {\r\n                clickstreamSignal += this.tcidToWeight[tcid];\r\n            }\r\n        }\r\n        var threshold = 47079 /* onyxClickStreamThreshold */ / 1.0e4;\r\n        /*\r\n        Coefficients have been calculated using scikit library for\r\n        Regression model. for details, refer jupyter notebook.\r\n        Adding the intercept value obtained from jupyter notebook\r\n        */\r\n        var output = clickstreamSignal + noClickstreamSignal + (-0.98225566);\r\n        if (output >= threshold) {\r\n            res.output = true;\r\n        }\r\n        return res;\r\n    };\r\n    return SavePromptModelOnyxImpl;\r\n}());\r\nexports.SavePromptModelOnyxImpl = SavePromptModelOnyxImpl;\r\n"],"sourceRoot":""}