chrome-devtools-frontend 1.0.1005672 → 1.0.1006124

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.
Files changed (99) hide show
  1. package/config/gni/devtools_grd_files.gni +1 -0
  2. package/front_end/core/i18n/locales/en-US.json +0 -3
  3. package/front_end/core/i18n/locales/en-XL.json +0 -3
  4. package/front_end/generated/InspectorBackendCommands.js +2 -3
  5. package/front_end/generated/SupportedCSSProperties.js +2 -1
  6. package/front_end/generated/protocol-mapping.d.ts +7 -4
  7. package/front_end/generated/protocol-proxy-api.d.ts +6 -3
  8. package/front_end/generated/protocol.ts +8 -9
  9. package/front_end/models/issues_manager/DeprecationIssue.ts +0 -10
  10. package/front_end/models/javascript_metadata/NativeFunctions.js +6219 -3985
  11. package/front_end/third_party/puppeteer/package/README.md +11 -11
  12. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +11 -2
  13. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
  14. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js +17 -4
  15. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js.map +1 -1
  16. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts +5 -1
  17. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  18. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +2 -2
  19. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  20. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +9 -0
  21. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
  22. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +19 -0
  23. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
  24. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +55 -0
  25. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
  26. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +71 -0
  27. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  28. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
  29. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js +3 -1
  30. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js.map +1 -1
  31. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js +2 -2
  32. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js.map +1 -1
  33. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts +6 -2
  34. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts.map +1 -1
  35. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js +7 -7
  36. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js.map +1 -1
  37. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  38. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  39. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  40. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +7 -5
  41. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  42. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  43. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +8 -1
  44. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  45. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +1 -1
  46. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +3 -1
  47. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  48. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +11 -2
  49. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
  50. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +17 -4
  51. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js.map +1 -1
  52. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +5 -1
  53. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  54. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +3 -3
  55. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  56. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +9 -0
  57. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
  58. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +19 -0
  59. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
  60. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +55 -0
  61. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
  62. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +71 -0
  63. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
  64. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +3 -1
  66. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +2 -2
  68. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +6 -2
  70. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -1
  71. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +7 -7
  72. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js.map +1 -1
  73. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  74. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  75. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
  76. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +7 -5
  77. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  78. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +8 -1
  80. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +3 -1
  83. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/types.d.ts +85 -3
  85. package/front_end/third_party/puppeteer/package/package.json +6 -6
  86. package/package.json +1 -1
  87. package/front_end/third_party/puppeteer/package/CHANGELOG.md +0 -290
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts +0 -17
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.d.ts.map +0 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js +0 -3
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/global.js.map +0 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/tsconfig.cjs.tsbuildinfo +0 -2575
  93. package/front_end/third_party/puppeteer/package/lib/cjs/vendor/tsconfig.cjs.tsbuildinfo +0 -1462
  94. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts +0 -17
  95. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.d.ts.map +0 -1
  96. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js +0 -2
  97. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/global.js.map +0 -1
  98. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/tsconfig.esm.tsbuildinfo +0 -2575
  99. package/front_end/third_party/puppeteer/package/lib/esm/vendor/tsconfig.esm.tsbuildinfo +0 -1462
@@ -1366,6 +1366,7 @@ grd_files_debug_sources = [
1366
1366
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js",
1367
1367
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js",
1368
1368
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js",
1369
+ "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkConditions.js",
1369
1370
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js",
1370
1371
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js",
1371
1372
  "front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js",
@@ -1382,9 +1382,6 @@
1382
1382
  "models/issues_manager/DeprecationIssue.ts | cssSelectorInternalMediaControlsOverlayCastButton": {
1383
1383
  "message": "The disableRemotePlayback attribute should be used in order to disable the default Cast integration instead of using -internal-media-controls-overlay-cast-button selector."
1384
1384
  },
1385
- "models/issues_manager/DeprecationIssue.ts | customCursorIntersectsViewport": {
1386
- "message": "Custom cursors with size greater than 32x32 DIP intersecting native UI is deprecated and will be removed."
1387
- },
1388
1385
  "models/issues_manager/DeprecationIssue.ts | deprecatedWithReplacement": {
1389
1386
  "message": "{PH1} is deprecated. Please use {PH2} instead."
1390
1387
  },
@@ -1382,9 +1382,6 @@
1382
1382
  "models/issues_manager/DeprecationIssue.ts | cssSelectorInternalMediaControlsOverlayCastButton": {
1383
1383
  "message": "T̂h́ê disableRemotePlayback át̂t́r̂íb̂út̂é ŝh́ôúl̂d́ b̂é ûśêd́ îń ôŕd̂ér̂ t́ô d́îśâb́l̂é t̂h́ê d́êf́âúl̂t́ Ĉáŝt́ îńt̂éĝŕât́îón̂ ín̂śt̂éâd́ ôf́ ûśîńĝ -internal-media-controls-overlay-cast-button śêĺêćt̂ór̂."
1384
1384
  },
1385
- "models/issues_manager/DeprecationIssue.ts | customCursorIntersectsViewport": {
1386
- "message": "Ĉúŝt́ôḿ ĉúr̂śôŕŝ ẃît́ĥ śîźê ǵr̂éât́êŕ t̂h́âń 32x̂32 D́ÎṔ îńt̂ér̂śêćt̂ín̂ǵ n̂át̂ív̂é ÛÍ îś d̂ép̂ŕêćât́êd́ âńd̂ ẃîĺl̂ b́ê ŕêḿôv́êd́."
1387
- },
1388
1385
  "models/issues_manager/DeprecationIssue.ts | deprecatedWithReplacement": {
1389
1386
  "message": "{PH1} îś d̂ép̂ŕêćât́êd́. P̂ĺêáŝé ûśê {PH2} ín̂śt̂éâd́."
1390
1387
  },
@@ -280,7 +280,6 @@ export function registerCommands(inspectorBackend) {
280
280
  CrossOriginWindowAlert: 'CrossOriginWindowAlert',
281
281
  CrossOriginWindowConfirm: 'CrossOriginWindowConfirm',
282
282
  CSSSelectorInternalMediaControlsOverlayCastButton: 'CSSSelectorInternalMediaControlsOverlayCastButton',
283
- CustomCursorIntersectsViewport: 'CustomCursorIntersectsViewport',
284
283
  DeprecationExample: 'DeprecationExample',
285
284
  DocumentDomainSettingWithoutOriginAgentClusterHeader: 'DocumentDomainSettingWithoutOriginAgentClusterHeader',
286
285
  EventPath: 'EventPath',
@@ -1061,8 +1060,6 @@ export function registerCommands(inspectorBackend) {
1061
1060
  {'name': 'key', 'type': 'string', 'optional': false}, {'name': 'value', 'type': 'string', 'optional': false}
1062
1061
  ],
1063
1062
  []);
1064
- inspectorBackend.registerCommand(
1065
- 'DOMStorage.getStorageKeyForFrame', [{'name': 'frameId', 'type': 'string', 'optional': false}], ['storageKey']);
1066
1063
 
1067
1064
  // Database.
1068
1065
  inspectorBackend.registerEvent('Database.addDatabase', ['database']);
@@ -2773,6 +2770,8 @@ export function registerCommands(inspectorBackend) {
2773
2770
  inspectorBackend.registerEvent('Storage.indexedDBContentUpdated', ['origin', 'databaseName', 'objectStoreName']);
2774
2771
  inspectorBackend.registerEvent('Storage.indexedDBListUpdated', ['origin']);
2775
2772
  inspectorBackend.registerEvent('Storage.interestGroupAccessed', ['accessTime', 'type', 'ownerOrigin', 'name']);
2773
+ inspectorBackend.registerCommand(
2774
+ 'Storage.getStorageKeyForFrame', [{'name': 'frameId', 'type': 'string', 'optional': false}], ['storageKey']);
2776
2775
  inspectorBackend.registerCommand(
2777
2776
  'Storage.clearDataForOrigin',
2778
2777
  [
@@ -617,7 +617,7 @@ export const generatedProperties = [
617
617
  {'longhands': ['overflow-x', 'overflow-y'], 'name': 'overflow'},
618
618
  {'name': 'overflow-anchor', 'inherited': false, 'keywords': ['visible', 'none', 'auto']},
619
619
  {'name': 'overflow-block'},
620
- {'name': 'overflow-clip-margin'},
620
+ {'name': 'overflow-clip-margin', 'keywords': ['border-box', 'content-box', 'padding-box']},
621
621
  {'name': 'overflow-inline'},
622
622
  {'name': 'overflow-wrap', 'inherited': true, 'keywords': ['normal', 'break-word', 'anywhere']},
623
623
  {'name': 'overflow-x', 'keywords': ['visible', 'hidden', 'scroll', 'auto', 'overlay', 'clip']},
@@ -1114,6 +1114,7 @@ export const generatedPropertyValues = {
1114
1114
  {'values': ['none', 'hidden', 'inset', 'groove', 'outset', 'ridge', 'dotted', 'dashed', 'solid', 'double']},
1115
1115
  'outline-width': {'values': ['thin', 'medium', 'thick']},
1116
1116
  'overflow-anchor': {'values': ['visible', 'none', 'auto']},
1117
+ 'overflow-clip-margin': {'values': ['border-box', 'content-box', 'padding-box']},
1117
1118
  'overflow-wrap': {'values': ['normal', 'break-word', 'anywhere']},
1118
1119
  'overflow-x': {'values': ['visible', 'hidden', 'scroll', 'auto', 'overlay', 'clip']},
1119
1120
  'overflow-y': {'values': ['visible', 'hidden', 'scroll', 'auto', 'overlay', 'clip']},
@@ -1464,10 +1464,6 @@ export namespace ProtocolMapping {
1464
1464
  'DOMStorage.removeDOMStorageItem':
1465
1465
  {paramsType: [Protocol.DOMStorage.RemoveDOMStorageItemRequest]; returnType: void;};
1466
1466
  'DOMStorage.setDOMStorageItem': {paramsType: [Protocol.DOMStorage.SetDOMStorageItemRequest]; returnType: void;};
1467
- 'DOMStorage.getStorageKeyForFrame': {
1468
- paramsType: [Protocol.DOMStorage.GetStorageKeyForFrameRequest];
1469
- returnType: Protocol.DOMStorage.GetStorageKeyForFrameResponse;
1470
- };
1471
1467
  /**
1472
1468
  * Disables database tracking, prevents database events from being sent to the client.
1473
1469
  */
@@ -2472,6 +2468,13 @@ export namespace ProtocolMapping {
2472
2468
  'ServiceWorker.unregister': {paramsType: [Protocol.ServiceWorker.UnregisterRequest]; returnType: void;};
2473
2469
  'ServiceWorker.updateRegistration':
2474
2470
  {paramsType: [Protocol.ServiceWorker.UpdateRegistrationRequest]; returnType: void;};
2471
+ /**
2472
+ * Returns a storage key given a frame id.
2473
+ */
2474
+ 'Storage.getStorageKeyForFrame': {
2475
+ paramsType: [Protocol.Storage.GetStorageKeyForFrameRequest];
2476
+ returnType: Protocol.Storage.GetStorageKeyForFrameResponse;
2477
+ };
2475
2478
  /**
2476
2479
  * Clears storage for origin.
2477
2480
  */
@@ -1280,9 +1280,6 @@ declare namespace ProtocolProxyApi {
1280
1280
 
1281
1281
  invoke_setDOMStorageItem(params: Protocol.DOMStorage.SetDOMStorageItemRequest):
1282
1282
  Promise<Protocol.ProtocolResponseWithError>;
1283
-
1284
- invoke_getStorageKeyForFrame(params: Protocol.DOMStorage.GetStorageKeyForFrameRequest):
1285
- Promise<Protocol.DOMStorage.GetStorageKeyForFrameResponse>;
1286
1283
  }
1287
1284
  export interface DOMStorageDispatcher {
1288
1285
  domStorageItemAdded(params: Protocol.DOMStorage.DomStorageItemAddedEvent): void;
@@ -2994,6 +2991,12 @@ declare namespace ProtocolProxyApi {
2994
2991
  }
2995
2992
 
2996
2993
  export interface StorageApi {
2994
+ /**
2995
+ * Returns a storage key given a frame id.
2996
+ */
2997
+ invoke_getStorageKeyForFrame(params: Protocol.Storage.GetStorageKeyForFrameRequest):
2998
+ Promise<Protocol.Storage.GetStorageKeyForFrameResponse>;
2999
+
2997
3000
  /**
2998
3001
  * Clears storage for origin.
2999
3002
  */
@@ -1027,7 +1027,6 @@ export namespace Audits {
1027
1027
  CrossOriginWindowAlert = 'CrossOriginWindowAlert',
1028
1028
  CrossOriginWindowConfirm = 'CrossOriginWindowConfirm',
1029
1029
  CSSSelectorInternalMediaControlsOverlayCastButton = 'CSSSelectorInternalMediaControlsOverlayCastButton',
1030
- CustomCursorIntersectsViewport = 'CustomCursorIntersectsViewport',
1031
1030
  DeprecationExample = 'DeprecationExample',
1032
1031
  DocumentDomainSettingWithoutOriginAgentClusterHeader = 'DocumentDomainSettingWithoutOriginAgentClusterHeader',
1033
1032
  EventPath = 'EventPath',
@@ -4978,14 +4977,6 @@ export namespace DOMStorage {
4978
4977
  value: string;
4979
4978
  }
4980
4979
 
4981
- export interface GetStorageKeyForFrameRequest {
4982
- frameId: Page.FrameId;
4983
- }
4984
-
4985
- export interface GetStorageKeyForFrameResponse extends ProtocolResponseWithError {
4986
- storageKey: SerializedStorageKey;
4987
- }
4988
-
4989
4980
  export interface DomStorageItemAddedEvent {
4990
4981
  storageId: StorageId;
4991
4982
  key: string;
@@ -12780,6 +12771,14 @@ export namespace Storage {
12780
12771
  adComponents: InterestGroupAd[];
12781
12772
  }
12782
12773
 
12774
+ export interface GetStorageKeyForFrameRequest {
12775
+ frameId: Page.FrameId;
12776
+ }
12777
+
12778
+ export interface GetStorageKeyForFrameResponse extends ProtocolResponseWithError {
12779
+ storageKey: SerializedStorageKey;
12780
+ }
12781
+
12783
12782
  export interface ClearDataForOriginRequest {
12784
12783
  /**
12785
12784
  * Security origin.
@@ -81,11 +81,6 @@ const UIStrings = {
81
81
  */
82
82
  cssSelectorInternalMediaControlsOverlayCastButton:
83
83
  'The `disableRemotePlayback` attribute should be used in order to disable the default Cast integration instead of using `-internal-media-controls-overlay-cast-button` selector.',
84
- /**
85
- * @description TODO(crbug.com/1320340): Description needed for translation
86
- */
87
- customCursorIntersectsViewport:
88
- 'Custom cursors with size greater than 32x32 DIP intersecting native UI is deprecated and will be removed.',
89
84
  /**
90
85
  * @description This message is shown when the example deprecated feature is used
91
86
  */
@@ -363,11 +358,6 @@ export class DeprecationIssue extends Issue {
363
358
  messageFunction = i18nLazyString(UIStrings.cssSelectorInternalMediaControlsOverlayCastButton);
364
359
  feature = 5714245488476160;
365
360
  break;
366
- case Protocol.Audits.DeprecationIssueType.CustomCursorIntersectsViewport:
367
- messageFunction = i18nLazyString(UIStrings.customCursorIntersectsViewport);
368
- feature = 5825971391299584;
369
- milestone = 75;
370
- break;
371
361
  case Protocol.Audits.DeprecationIssueType.DeprecationExample:
372
362
  messageFunction = i18nLazyString(UIStrings.deprecationExample);
373
363
  feature = 5684289032159232;