devtools-protocol 0.0.1161029 → 0.0.1162774

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15710,6 +15710,7 @@
15710
15710
  "ch-ua-platform",
15711
15711
  "ch-ua-model",
15712
15712
  "ch-ua-mobile",
15713
+ "ch-ua-form-factor",
15713
15714
  "ch-ua-full-version",
15714
15715
  "ch-ua-full-version-list",
15715
15716
  "ch-ua-platform-version",
@@ -16660,14 +16661,12 @@
16660
16661
  "DocumentLoaded",
16661
16662
  "DedicatedWorkerOrWorklet",
16662
16663
  "OutstandingNetworkRequestOthers",
16663
- "OutstandingIndexedDBTransaction",
16664
16664
  "RequestedMIDIPermission",
16665
16665
  "RequestedAudioCapturePermission",
16666
16666
  "RequestedVideoCapturePermission",
16667
16667
  "RequestedBackForwardCacheBlockedSensors",
16668
16668
  "RequestedBackgroundWorkPermission",
16669
16669
  "BroadcastChannel",
16670
- "IndexedDBConnection",
16671
16670
  "WebXR",
16672
16671
  "SharedWorker",
16673
16672
  "WebLocks",
@@ -16829,6 +16828,13 @@
16829
16828
  "experimental": true,
16830
16829
  "optional": true,
16831
16830
  "type": "boolean"
16831
+ },
16832
+ {
16833
+ "name": "runImmediately",
16834
+ "description": "If true, runs the script immediately on existing execution contexts or worlds.\nDefault: false.",
16835
+ "experimental": true,
16836
+ "optional": true,
16837
+ "type": "boolean"
16832
16838
  }
16833
16839
  ],
16834
16840
  "returns": [
@@ -23644,6 +23650,14 @@
23644
23650
  {
23645
23651
  "name": "disabledByBatterySaver",
23646
23652
  "type": "boolean"
23653
+ },
23654
+ {
23655
+ "name": "disabledByHoldbackPrefetchSpeculationRules",
23656
+ "type": "boolean"
23657
+ },
23658
+ {
23659
+ "name": "disabledByHoldbackPrerenderSpeculationRules",
23660
+ "type": "boolean"
23647
23661
  }
23648
23662
  ]
23649
23663
  },
@@ -23671,6 +23685,10 @@
23671
23685
  {
23672
23686
  "name": "prefetchStatus",
23673
23687
  "$ref": "PrefetchStatus"
23688
+ },
23689
+ {
23690
+ "name": "requestId",
23691
+ "$ref": "Network.RequestId"
23674
23692
  }
23675
23693
  ]
23676
23694
  },
@@ -23690,6 +23708,12 @@
23690
23708
  "name": "prerenderStatus",
23691
23709
  "optional": true,
23692
23710
  "$ref": "PrerenderFinalStatus"
23711
+ },
23712
+ {
23713
+ "name": "disallowedMojoInterface",
23714
+ "description": "This is used to give users more information about the name of Mojo interface\nthat is incompatible with prerender and has caused the cancellation of the attempt.",
23715
+ "optional": true,
23716
+ "type": "string"
23693
23717
  }
23694
23718
  ]
23695
23719
  },
@@ -2180,6 +2180,12 @@
2180
2180
  "description": "Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.",
2181
2181
  "optional": true,
2182
2182
  "type": "integer"
2183
+ },
2184
+ {
2185
+ "name": "additionalParameters",
2186
+ "description": "Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM\nserialization via `maxNodeDepth: integer` and `includeShadowTree: \"none\" | \"open\" | \"all\"`.\nValues can be only of type string or integer.",
2187
+ "optional": true,
2188
+ "type": "object"
2183
2189
  }
2184
2190
  ]
2185
2191
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devtools-protocol",
3
- "version": "0.0.1161029",
3
+ "version": "0.0.1162774",
4
4
  "description": "The Chrome DevTools Protocol JSON",
5
5
  "repository": "https://github.com/ChromeDevTools/devtools-protocol",
6
6
  "author": "The Chromium Authors",
@@ -7336,6 +7336,7 @@ domain Page
7336
7336
  ch-ua-platform
7337
7337
  ch-ua-model
7338
7338
  ch-ua-mobile
7339
+ ch-ua-form-factor
7339
7340
  ch-ua-full-version
7340
7341
  ch-ua-full-version-list
7341
7342
  ch-ua-platform-version
@@ -7772,6 +7773,9 @@ domain Page
7772
7773
  # Specifies whether command line API should be available to the script, defaults
7773
7774
  # to false.
7774
7775
  experimental optional boolean includeCommandLineAPI
7776
+ # If true, runs the script immediately on existing execution contexts or worlds.
7777
+ # Default: false.
7778
+ experimental optional boolean runImmediately
7775
7779
  returns
7776
7780
  # Identifier of the added script.
7777
7781
  ScriptIdentifier identifier
@@ -8568,14 +8572,12 @@ domain Page
8568
8572
  DocumentLoaded
8569
8573
  DedicatedWorkerOrWorklet
8570
8574
  OutstandingNetworkRequestOthers
8571
- OutstandingIndexedDBTransaction
8572
8575
  RequestedMIDIPermission
8573
8576
  RequestedAudioCapturePermission
8574
8577
  RequestedVideoCapturePermission
8575
8578
  RequestedBackForwardCacheBlockedSensors
8576
8579
  RequestedBackgroundWorkPermission
8577
8580
  BroadcastChannel
8578
- IndexedDBConnection
8579
8581
  WebXR
8580
8582
  SharedWorker
8581
8583
  WebLocks
@@ -11165,6 +11167,8 @@ experimental domain Preload
11165
11167
  boolean disabledByPreference
11166
11168
  boolean disabledByDataSaver
11167
11169
  boolean disabledByBatterySaver
11170
+ boolean disabledByHoldbackPrefetchSpeculationRules
11171
+ boolean disabledByHoldbackPrerenderSpeculationRules
11168
11172
 
11169
11173
  # Preloading status values, see also PreloadingTriggeringOutcome. This
11170
11174
  # status is shared by prefetchStatusUpdated and prerenderStatusUpdated.
@@ -11228,6 +11232,7 @@ experimental domain Preload
11228
11232
  string prefetchUrl
11229
11233
  PreloadingStatus status
11230
11234
  PrefetchStatus prefetchStatus
11235
+ Network.RequestId requestId
11231
11236
 
11232
11237
  # Fired when a prerender attempt is updated.
11233
11238
  event prerenderStatusUpdated
@@ -11235,6 +11240,9 @@ experimental domain Preload
11235
11240
  PreloadingAttemptKey key
11236
11241
  PreloadingStatus status
11237
11242
  optional PrerenderFinalStatus prerenderStatus
11243
+ # This is used to give users more information about the name of Mojo interface
11244
+ # that is incompatible with prerender and has caused the cancellation of the attempt.
11245
+ optional string disallowedMojoInterface
11238
11246
 
11239
11247
  # Send a list of sources for all preloading attempts in a document.
11240
11248
  event preloadingAttemptSourcesUpdated
@@ -1034,6 +1034,11 @@ domain Runtime
1034
1034
  # Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.
1035
1035
  optional integer maxDepth
1036
1036
 
1037
+ # Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
1038
+ # serialization via `maxNodeDepth: integer` and `includeShadowTree: "none" | "open" | "all"`.
1039
+ # Values can be only of type string or integer.
1040
+ optional object additionalParameters
1041
+
1037
1042
  # Represents deep serialized value.
1038
1043
  type DeepSerializedValue extends object
1039
1044
  properties
@@ -1509,6 +1509,12 @@ export namespace Protocol {
1509
1509
  * Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.
1510
1510
  */
1511
1511
  maxDepth?: integer;
1512
+ /**
1513
+ * Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
1514
+ * serialization via `maxNodeDepth: integer` and `includeShadowTree: "none" | "open" | "all"`.
1515
+ * Values can be only of type string or integer.
1516
+ */
1517
+ additionalParameters?: any;
1512
1518
  }
1513
1519
 
1514
1520
  export const enum DeepSerializedValueType {
@@ -12631,7 +12637,7 @@ export namespace Protocol {
12631
12637
  * All Permissions Policy features. This enum should match the one defined
12632
12638
  * in third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5.
12633
12639
  */
12634
- export type PermissionsPolicyFeature = ('accelerometer' | 'ambient-light-sensor' | 'attribution-reporting' | 'autoplay' | 'bluetooth' | 'browsing-topics' | 'camera' | 'ch-dpr' | 'ch-device-memory' | 'ch-downlink' | 'ch-ect' | 'ch-prefers-color-scheme' | 'ch-prefers-reduced-motion' | 'ch-rtt' | 'ch-save-data' | 'ch-ua' | 'ch-ua-arch' | 'ch-ua-bitness' | 'ch-ua-platform' | 'ch-ua-model' | 'ch-ua-mobile' | 'ch-ua-full-version' | 'ch-ua-full-version-list' | 'ch-ua-platform-version' | 'ch-ua-wow64' | 'ch-viewport-height' | 'ch-viewport-width' | 'ch-width' | 'clipboard-read' | 'clipboard-write' | 'compute-pressure' | 'cross-origin-isolated' | 'direct-sockets' | 'display-capture' | 'document-domain' | 'encrypted-media' | 'execution-while-out-of-viewport' | 'execution-while-not-rendered' | 'focus-without-user-activation' | 'fullscreen' | 'frobulate' | 'gamepad' | 'geolocation' | 'gyroscope' | 'hid' | 'identity-credentials-get' | 'idle-detection' | 'interest-cohort' | 'join-ad-interest-group' | 'keyboard-map' | 'local-fonts' | 'magnetometer' | 'microphone' | 'midi' | 'otp-credentials' | 'payment' | 'picture-in-picture' | 'private-aggregation' | 'private-state-token-issuance' | 'private-state-token-redemption' | 'publickey-credentials-get' | 'run-ad-auction' | 'screen-wake-lock' | 'serial' | 'shared-autofill' | 'shared-storage' | 'shared-storage-select-url' | 'smart-card' | 'storage-access' | 'sync-xhr' | 'unload' | 'usb' | 'vertical-scroll' | 'web-share' | 'window-management' | 'window-placement' | 'xr-spatial-tracking');
12640
+ export type PermissionsPolicyFeature = ('accelerometer' | 'ambient-light-sensor' | 'attribution-reporting' | 'autoplay' | 'bluetooth' | 'browsing-topics' | 'camera' | 'ch-dpr' | 'ch-device-memory' | 'ch-downlink' | 'ch-ect' | 'ch-prefers-color-scheme' | 'ch-prefers-reduced-motion' | 'ch-rtt' | 'ch-save-data' | 'ch-ua' | 'ch-ua-arch' | 'ch-ua-bitness' | 'ch-ua-platform' | 'ch-ua-model' | 'ch-ua-mobile' | 'ch-ua-form-factor' | 'ch-ua-full-version' | 'ch-ua-full-version-list' | 'ch-ua-platform-version' | 'ch-ua-wow64' | 'ch-viewport-height' | 'ch-viewport-width' | 'ch-width' | 'clipboard-read' | 'clipboard-write' | 'compute-pressure' | 'cross-origin-isolated' | 'direct-sockets' | 'display-capture' | 'document-domain' | 'encrypted-media' | 'execution-while-out-of-viewport' | 'execution-while-not-rendered' | 'focus-without-user-activation' | 'fullscreen' | 'frobulate' | 'gamepad' | 'geolocation' | 'gyroscope' | 'hid' | 'identity-credentials-get' | 'idle-detection' | 'interest-cohort' | 'join-ad-interest-group' | 'keyboard-map' | 'local-fonts' | 'magnetometer' | 'microphone' | 'midi' | 'otp-credentials' | 'payment' | 'picture-in-picture' | 'private-aggregation' | 'private-state-token-issuance' | 'private-state-token-redemption' | 'publickey-credentials-get' | 'run-ad-auction' | 'screen-wake-lock' | 'serial' | 'shared-autofill' | 'shared-storage' | 'shared-storage-select-url' | 'smart-card' | 'storage-access' | 'sync-xhr' | 'unload' | 'usb' | 'vertical-scroll' | 'web-share' | 'window-management' | 'window-placement' | 'xr-spatial-tracking');
12635
12641
 
12636
12642
  /**
12637
12643
  * Reason for a permissions policy feature to be disabled.
@@ -13135,7 +13141,7 @@ export namespace Protocol {
13135
13141
  /**
13136
13142
  * List of not restored reasons for back-forward cache.
13137
13143
  */
13138
- export type BackForwardCacheNotRestoredReason = ('NotPrimaryMainFrame' | 'BackForwardCacheDisabled' | 'RelatedActiveContentsExist' | 'HTTPStatusNotOK' | 'SchemeNotHTTPOrHTTPS' | 'Loading' | 'WasGrantedMediaAccess' | 'DisableForRenderFrameHostCalled' | 'DomainNotAllowed' | 'HTTPMethodNotGET' | 'SubframeIsNavigating' | 'Timeout' | 'CacheLimit' | 'JavaScriptExecution' | 'RendererProcessKilled' | 'RendererProcessCrashed' | 'SchedulerTrackedFeatureUsed' | 'ConflictingBrowsingInstance' | 'CacheFlushed' | 'ServiceWorkerVersionActivation' | 'SessionRestored' | 'ServiceWorkerPostMessage' | 'EnteredBackForwardCacheBeforeServiceWorkerHostAdded' | 'RenderFrameHostReused_SameSite' | 'RenderFrameHostReused_CrossSite' | 'ServiceWorkerClaim' | 'IgnoreEventAndEvict' | 'HaveInnerContents' | 'TimeoutPuttingInCache' | 'BackForwardCacheDisabledByLowMemory' | 'BackForwardCacheDisabledByCommandLine' | 'NetworkRequestDatapipeDrainedAsBytesConsumer' | 'NetworkRequestRedirected' | 'NetworkRequestTimeout' | 'NetworkExceedsBufferLimit' | 'NavigationCancelledWhileRestoring' | 'NotMostRecentNavigationEntry' | 'BackForwardCacheDisabledForPrerender' | 'UserAgentOverrideDiffers' | 'ForegroundCacheLimit' | 'BrowsingInstanceNotSwapped' | 'BackForwardCacheDisabledForDelegate' | 'UnloadHandlerExistsInMainFrame' | 'UnloadHandlerExistsInSubFrame' | 'ServiceWorkerUnregistration' | 'CacheControlNoStore' | 'CacheControlNoStoreCookieModified' | 'CacheControlNoStoreHTTPOnlyCookieModified' | 'NoResponseHead' | 'Unknown' | 'ActivationNavigationsDisallowedForBug1234857' | 'ErrorDocument' | 'FencedFramesEmbedder' | 'CookieDisabled' | 'HTTPAuthRequired' | 'WebSocket' | 'WebTransport' | 'WebRTC' | 'MainResourceHasCacheControlNoStore' | 'MainResourceHasCacheControlNoCache' | 'SubresourceHasCacheControlNoStore' | 'SubresourceHasCacheControlNoCache' | 'ContainsPlugins' | 'DocumentLoaded' | 'DedicatedWorkerOrWorklet' | 'OutstandingNetworkRequestOthers' | 'OutstandingIndexedDBTransaction' | 'RequestedMIDIPermission' | 'RequestedAudioCapturePermission' | 'RequestedVideoCapturePermission' | 'RequestedBackForwardCacheBlockedSensors' | 'RequestedBackgroundWorkPermission' | 'BroadcastChannel' | 'IndexedDBConnection' | 'WebXR' | 'SharedWorker' | 'WebLocks' | 'WebHID' | 'WebShare' | 'RequestedStorageAccessGrant' | 'WebNfc' | 'OutstandingNetworkRequestFetch' | 'OutstandingNetworkRequestXHR' | 'AppBanner' | 'Printing' | 'WebDatabase' | 'PictureInPicture' | 'Portal' | 'SpeechRecognizer' | 'IdleManager' | 'PaymentManager' | 'SpeechSynthesis' | 'KeyboardLock' | 'WebOTPService' | 'OutstandingNetworkRequestDirectSocket' | 'InjectedJavascript' | 'InjectedStyleSheet' | 'KeepaliveRequest' | 'IndexedDBEvent' | 'Dummy' | 'JsNetworkRequestReceivedCacheControlNoStoreResource' | 'WebRTCSticky' | 'WebTransportSticky' | 'WebSocketSticky' | 'ContentSecurityHandler' | 'ContentWebAuthenticationAPI' | 'ContentFileChooser' | 'ContentSerial' | 'ContentFileSystemAccess' | 'ContentMediaDevicesDispatcherHost' | 'ContentWebBluetooth' | 'ContentWebUSB' | 'ContentMediaSessionService' | 'ContentScreenReader' | 'EmbedderPopupBlockerTabHelper' | 'EmbedderSafeBrowsingTriggeredPopupBlocker' | 'EmbedderSafeBrowsingThreatDetails' | 'EmbedderAppBannerManager' | 'EmbedderDomDistillerViewerSource' | 'EmbedderDomDistillerSelfDeletingRequestDelegate' | 'EmbedderOomInterventionTabHelper' | 'EmbedderOfflinePage' | 'EmbedderChromePasswordManagerClientBindCredentialManager' | 'EmbedderPermissionRequestManager' | 'EmbedderModalDialog' | 'EmbedderExtensions' | 'EmbedderExtensionMessaging' | 'EmbedderExtensionMessagingForOpenPort' | 'EmbedderExtensionSentMessageToCachedFrame');
13144
+ export type BackForwardCacheNotRestoredReason = ('NotPrimaryMainFrame' | 'BackForwardCacheDisabled' | 'RelatedActiveContentsExist' | 'HTTPStatusNotOK' | 'SchemeNotHTTPOrHTTPS' | 'Loading' | 'WasGrantedMediaAccess' | 'DisableForRenderFrameHostCalled' | 'DomainNotAllowed' | 'HTTPMethodNotGET' | 'SubframeIsNavigating' | 'Timeout' | 'CacheLimit' | 'JavaScriptExecution' | 'RendererProcessKilled' | 'RendererProcessCrashed' | 'SchedulerTrackedFeatureUsed' | 'ConflictingBrowsingInstance' | 'CacheFlushed' | 'ServiceWorkerVersionActivation' | 'SessionRestored' | 'ServiceWorkerPostMessage' | 'EnteredBackForwardCacheBeforeServiceWorkerHostAdded' | 'RenderFrameHostReused_SameSite' | 'RenderFrameHostReused_CrossSite' | 'ServiceWorkerClaim' | 'IgnoreEventAndEvict' | 'HaveInnerContents' | 'TimeoutPuttingInCache' | 'BackForwardCacheDisabledByLowMemory' | 'BackForwardCacheDisabledByCommandLine' | 'NetworkRequestDatapipeDrainedAsBytesConsumer' | 'NetworkRequestRedirected' | 'NetworkRequestTimeout' | 'NetworkExceedsBufferLimit' | 'NavigationCancelledWhileRestoring' | 'NotMostRecentNavigationEntry' | 'BackForwardCacheDisabledForPrerender' | 'UserAgentOverrideDiffers' | 'ForegroundCacheLimit' | 'BrowsingInstanceNotSwapped' | 'BackForwardCacheDisabledForDelegate' | 'UnloadHandlerExistsInMainFrame' | 'UnloadHandlerExistsInSubFrame' | 'ServiceWorkerUnregistration' | 'CacheControlNoStore' | 'CacheControlNoStoreCookieModified' | 'CacheControlNoStoreHTTPOnlyCookieModified' | 'NoResponseHead' | 'Unknown' | 'ActivationNavigationsDisallowedForBug1234857' | 'ErrorDocument' | 'FencedFramesEmbedder' | 'CookieDisabled' | 'HTTPAuthRequired' | 'WebSocket' | 'WebTransport' | 'WebRTC' | 'MainResourceHasCacheControlNoStore' | 'MainResourceHasCacheControlNoCache' | 'SubresourceHasCacheControlNoStore' | 'SubresourceHasCacheControlNoCache' | 'ContainsPlugins' | 'DocumentLoaded' | 'DedicatedWorkerOrWorklet' | 'OutstandingNetworkRequestOthers' | 'RequestedMIDIPermission' | 'RequestedAudioCapturePermission' | 'RequestedVideoCapturePermission' | 'RequestedBackForwardCacheBlockedSensors' | 'RequestedBackgroundWorkPermission' | 'BroadcastChannel' | 'WebXR' | 'SharedWorker' | 'WebLocks' | 'WebHID' | 'WebShare' | 'RequestedStorageAccessGrant' | 'WebNfc' | 'OutstandingNetworkRequestFetch' | 'OutstandingNetworkRequestXHR' | 'AppBanner' | 'Printing' | 'WebDatabase' | 'PictureInPicture' | 'Portal' | 'SpeechRecognizer' | 'IdleManager' | 'PaymentManager' | 'SpeechSynthesis' | 'KeyboardLock' | 'WebOTPService' | 'OutstandingNetworkRequestDirectSocket' | 'InjectedJavascript' | 'InjectedStyleSheet' | 'KeepaliveRequest' | 'IndexedDBEvent' | 'Dummy' | 'JsNetworkRequestReceivedCacheControlNoStoreResource' | 'WebRTCSticky' | 'WebTransportSticky' | 'WebSocketSticky' | 'ContentSecurityHandler' | 'ContentWebAuthenticationAPI' | 'ContentFileChooser' | 'ContentSerial' | 'ContentFileSystemAccess' | 'ContentMediaDevicesDispatcherHost' | 'ContentWebBluetooth' | 'ContentWebUSB' | 'ContentMediaSessionService' | 'ContentScreenReader' | 'EmbedderPopupBlockerTabHelper' | 'EmbedderSafeBrowsingTriggeredPopupBlocker' | 'EmbedderSafeBrowsingThreatDetails' | 'EmbedderAppBannerManager' | 'EmbedderDomDistillerViewerSource' | 'EmbedderDomDistillerSelfDeletingRequestDelegate' | 'EmbedderOomInterventionTabHelper' | 'EmbedderOfflinePage' | 'EmbedderChromePasswordManagerClientBindCredentialManager' | 'EmbedderPermissionRequestManager' | 'EmbedderModalDialog' | 'EmbedderExtensions' | 'EmbedderExtensionMessaging' | 'EmbedderExtensionMessagingForOpenPort' | 'EmbedderExtensionSentMessageToCachedFrame');
13139
13145
 
13140
13146
  /**
13141
13147
  * Types of not restored reasons for back-forward cache.
@@ -13198,6 +13204,11 @@ export namespace Protocol {
13198
13204
  * to false.
13199
13205
  */
13200
13206
  includeCommandLineAPI?: boolean;
13207
+ /**
13208
+ * If true, runs the script immediately on existing execution contexts or worlds.
13209
+ * Default: false.
13210
+ */
13211
+ runImmediately?: boolean;
13201
13212
  }
13202
13213
 
13203
13214
  export interface AddScriptToEvaluateOnNewDocumentResponse {
@@ -17340,6 +17351,8 @@ export namespace Protocol {
17340
17351
  disabledByPreference: boolean;
17341
17352
  disabledByDataSaver: boolean;
17342
17353
  disabledByBatterySaver: boolean;
17354
+ disabledByHoldbackPrefetchSpeculationRules: boolean;
17355
+ disabledByHoldbackPrerenderSpeculationRules: boolean;
17343
17356
  }
17344
17357
 
17345
17358
  /**
@@ -17354,6 +17367,7 @@ export namespace Protocol {
17354
17367
  prefetchUrl: string;
17355
17368
  status: PreloadingStatus;
17356
17369
  prefetchStatus: PrefetchStatus;
17370
+ requestId: Network.RequestId;
17357
17371
  }
17358
17372
 
17359
17373
  /**
@@ -17363,6 +17377,11 @@ export namespace Protocol {
17363
17377
  key: PreloadingAttemptKey;
17364
17378
  status: PreloadingStatus;
17365
17379
  prerenderStatus?: PrerenderFinalStatus;
17380
+ /**
17381
+ * This is used to give users more information about the name of Mojo interface
17382
+ * that is incompatible with prerender and has caused the cancellation of the attempt.
17383
+ */
17384
+ disallowedMojoInterface?: string;
17366
17385
  }
17367
17386
 
17368
17387
  /**