core-js-compat 3.20.0 → 3.21.0

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.
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2021 Denis Pushkarev
1
+ Copyright (c) 2014-2022 Denis Pushkarev
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ![logo](https://user-images.githubusercontent.com/2213682/140570622-ea744c11-632e-4d9a-ba0a-70c390a1fdff.png)
1
+ ![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)
2
2
 
3
3
  [`core-js-compat` package](https://github.com/zloirock/core-js/tree/master/packages/core-js-compat) contains data about the necessity of [`core-js`](https://github.com/zloirock/core-js) modules and API for getting a list of required core-js modules by browserslist query.
4
4
 
@@ -9,7 +9,7 @@ const {
9
9
  } = require('core-js-compat')({
10
10
  targets: '> 2.5%', // browserslist query or object of minimum environment versions to support
11
11
  filter: /^(es|web)\./, // optional filter - string-prefix, regexp or list of modules
12
- version: '3.20', // used `core-js` version, by default - the latest
12
+ version: '3.21', // used `core-js` version, by default - the latest
13
13
  });
14
14
 
15
15
  console.log(targets);
@@ -94,9 +94,9 @@ require('core-js-compat/modules'); // => Array<ModuleName>
94
94
  require('core-js-compat').modules; // => Array<ModuleName>
95
95
 
96
96
  // the subset of modules which available in the passed `core-js` version:
97
- require('core-js-compat/get-modules-list-for-target-version')('3.20'); // => Array<ModuleName>
97
+ require('core-js-compat/get-modules-list-for-target-version')('3.21'); // => Array<ModuleName>
98
98
  // or
99
- require('core-js-compat').getModulesListForTargetVersion('3.20'); // => Array<ModuleName>
99
+ require('core-js-compat').getModulesListForTargetVersion('3.21'); // => Array<ModuleName>
100
100
  ```
101
101
 
102
102
  If you want to add new / update data about modules required for target engines, [follow this instruction](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md#updating-core-js-compat-data).
package/data.json CHANGED
@@ -230,6 +230,7 @@
230
230
  "ios": "15.0",
231
231
  "node": "16.11",
232
232
  "opera": "80",
233
+ "opera_mobile": "66",
233
234
  "safari": "15.0"
234
235
  },
235
236
  "es.error.to-string": {
@@ -244,6 +245,7 @@
244
245
  "node": "0.11.13",
245
246
  "opera": "20",
246
247
  "opera_mobile": "20",
248
+ "rhino": "1.7.14",
247
249
  "safari": "8.0",
248
250
  "samsung": "2.0"
249
251
  },
@@ -271,6 +273,7 @@
271
273
  "ios": "15.0",
272
274
  "node": "16.11",
273
275
  "opera": "80",
276
+ "opera_mobile": "66",
274
277
  "safari": "15.0"
275
278
  },
276
279
  "es.array.at": {
@@ -280,6 +283,7 @@
280
283
  "edge": "92",
281
284
  "electron": "14.0",
282
285
  "firefox": "90",
286
+ "ios": "15.4",
283
287
  "node": "16.6",
284
288
  "opera": "78",
285
289
  "opera_mobile": "65",
@@ -740,6 +744,7 @@
740
744
  "node": "0.11.9",
741
745
  "opera": "19",
742
746
  "opera_mobile": "19",
747
+ "rhino": "1.7.14",
743
748
  "safari": "7.1",
744
749
  "samsung": "2.0"
745
750
  },
@@ -981,6 +986,7 @@
981
986
  "node": "12.0",
982
987
  "opera": "58",
983
988
  "opera_mobile": "50",
989
+ "rhino": "1.7.14",
984
990
  "safari": "12.1",
985
991
  "samsung": "10.0"
986
992
  },
@@ -1321,6 +1327,7 @@
1321
1327
  "node": "0.11.13",
1322
1328
  "opera": "21",
1323
1329
  "opera_mobile": "21",
1330
+ "rhino": "1.7.14",
1324
1331
  "safari": "9.0",
1325
1332
  "samsung": "2.0"
1326
1333
  },
@@ -1425,6 +1432,7 @@
1425
1432
  "node": "0.11.13",
1426
1433
  "opera": "22",
1427
1434
  "opera_mobile": "22",
1435
+ "rhino": "1.7.14",
1428
1436
  "safari": "11.0",
1429
1437
  "samsung": "3.0"
1430
1438
  },
@@ -1439,6 +1447,7 @@
1439
1447
  "node": "0.11.13",
1440
1448
  "opera": "22",
1441
1449
  "opera_mobile": "22",
1450
+ "rhino": "1.7.14",
1442
1451
  "safari": "9.0",
1443
1452
  "samsung": "3.0"
1444
1453
  },
@@ -1453,6 +1462,7 @@
1453
1462
  "node": "6.5",
1454
1463
  "opera": "38",
1455
1464
  "opera_mobile": "38",
1465
+ "rhino": "1.7.14",
1456
1466
  "safari": "11",
1457
1467
  "samsung": "5.0"
1458
1468
  },
@@ -1534,38 +1544,38 @@
1534
1544
  "samsung": "8.0"
1535
1545
  },
1536
1546
  "es.object.define-properties": {
1537
- "android": "3.0",
1538
- "chrome": "5",
1547
+ "android": "37",
1548
+ "chrome": "37",
1539
1549
  "deno": "1.0",
1540
1550
  "edge": "12",
1541
1551
  "electron": "0.20",
1542
1552
  "firefox": "4",
1543
1553
  "ie": "9",
1544
1554
  "ios": "5.1",
1545
- "node": "0.1.27",
1555
+ "node": "0.11.15",
1546
1556
  "opera": "12",
1547
1557
  "opera_mobile": "12",
1548
1558
  "phantom": "2.0",
1549
1559
  "rhino": "1.7.13",
1550
1560
  "safari": "5.1",
1551
- "samsung": "1.0"
1561
+ "samsung": "3.0"
1552
1562
  },
1553
1563
  "es.object.define-property": {
1554
- "android": "3.0",
1555
- "chrome": "5",
1564
+ "android": "37",
1565
+ "chrome": "37",
1556
1566
  "deno": "1.0",
1557
1567
  "edge": "12",
1558
1568
  "electron": "0.20",
1559
1569
  "firefox": "4",
1560
1570
  "ie": "9",
1561
1571
  "ios": "5.1",
1562
- "node": "0.1.27",
1572
+ "node": "0.11.15",
1563
1573
  "opera": "12",
1564
1574
  "opera_mobile": "12",
1565
1575
  "phantom": "2.0",
1566
1576
  "rhino": "1.7.13",
1567
1577
  "safari": "5.1",
1568
- "samsung": "1.0"
1578
+ "samsung": "3.0"
1569
1579
  },
1570
1580
  "es.object.define-setter": {
1571
1581
  "android": "62",
@@ -1593,6 +1603,7 @@
1593
1603
  "node": "7.0",
1594
1604
  "opera": "41",
1595
1605
  "opera_mobile": "41",
1606
+ "rhino": "1.7.14",
1596
1607
  "safari": "10.1",
1597
1608
  "samsung": "6.0"
1598
1609
  },
@@ -1622,6 +1633,7 @@
1622
1633
  "node": "12.0",
1623
1634
  "opera": "60",
1624
1635
  "opera_mobile": "52",
1636
+ "rhino": "1.7.14",
1625
1637
  "safari": "12.1",
1626
1638
  "samsung": "11.0"
1627
1639
  },
@@ -1691,8 +1703,10 @@
1691
1703
  "edge": "93",
1692
1704
  "electron": "14.0",
1693
1705
  "firefox": "92",
1706
+ "ios": "15.4",
1694
1707
  "node": "16.9",
1695
1708
  "opera": "79",
1709
+ "opera_mobile": "66",
1696
1710
  "safari": "15.4"
1697
1711
  },
1698
1712
  "es.object.is": {
@@ -1871,6 +1885,7 @@
1871
1885
  "node": "7.0",
1872
1886
  "opera": "41",
1873
1887
  "opera_mobile": "41",
1888
+ "rhino": "1.7.14",
1874
1889
  "safari": "10.1",
1875
1890
  "samsung": "6.0"
1876
1891
  },
@@ -2278,6 +2293,7 @@
2278
2293
  "edge": "92",
2279
2294
  "electron": "14.0",
2280
2295
  "firefox": "90",
2296
+ "ios": "15.4",
2281
2297
  "node": "16.6",
2282
2298
  "opera": "78",
2283
2299
  "opera_mobile": "65",
@@ -2426,6 +2442,7 @@
2426
2442
  "node": "1.0",
2427
2443
  "opera": "28",
2428
2444
  "opera_mobile": "28",
2445
+ "rhino": "1.7.14",
2429
2446
  "safari": "9.0",
2430
2447
  "samsung": "3.4"
2431
2448
  },
@@ -2586,6 +2603,7 @@
2586
2603
  "opera": "15",
2587
2604
  "opera_mobile": "15",
2588
2605
  "phantom": "2.0",
2606
+ "rhino": "1.7.14",
2589
2607
  "safari": "6.0",
2590
2608
  "samsung": "1.0"
2591
2609
  },
@@ -2665,6 +2683,7 @@
2665
2683
  "opera": "15",
2666
2684
  "opera_mobile": "15",
2667
2685
  "phantom": "2.0",
2686
+ "rhino": "1.7.14",
2668
2687
  "safari": "6.0",
2669
2688
  "samsung": "1.0"
2670
2689
  },
@@ -2680,6 +2699,7 @@
2680
2699
  "opera": "15",
2681
2700
  "opera_mobile": "15",
2682
2701
  "phantom": "2.0",
2702
+ "rhino": "1.7.14",
2683
2703
  "safari": "6.0",
2684
2704
  "samsung": "1.0"
2685
2705
  },
@@ -2711,6 +2731,7 @@
2711
2731
  "opera": "15",
2712
2732
  "opera_mobile": "15",
2713
2733
  "phantom": "2.0",
2734
+ "rhino": "1.7.14",
2714
2735
  "safari": "6.0",
2715
2736
  "samsung": "1.0"
2716
2737
  },
@@ -2911,6 +2932,7 @@
2911
2932
  "edge": "92",
2912
2933
  "electron": "14.0",
2913
2934
  "firefox": "90",
2935
+ "ios": "15.4",
2914
2936
  "node": "16.6",
2915
2937
  "opera": "78",
2916
2938
  "opera_mobile": "65",
@@ -3170,18 +3192,17 @@
3170
3192
  "samsung": "5.0"
3171
3193
  },
3172
3194
  "es.typed-array.set": {
3173
- "android": "4.4",
3174
- "chrome": "26",
3175
- "deno": "1.0",
3176
- "edge": "13",
3177
- "electron": "0.20",
3178
- "firefox": "15",
3179
- "ios": "8.0",
3180
- "node": "0.11.0",
3181
- "opera": "16",
3182
- "opera_mobile": "16",
3183
- "safari": "7.1",
3184
- "samsung": "1.5"
3195
+ "android": "95",
3196
+ "chrome": "95",
3197
+ "deno": "1.15",
3198
+ "edge": "95",
3199
+ "electron": "16.0",
3200
+ "firefox": "54",
3201
+ "ios": "14.5",
3202
+ "node": "17.0",
3203
+ "opera": "81",
3204
+ "opera_mobile": "67",
3205
+ "safari": "14.1"
3185
3206
  },
3186
3207
  "es.typed-array.slice": {
3187
3208
  "android": "45",
@@ -3236,6 +3257,7 @@
3236
3257
  "node": "0.11.0",
3237
3258
  "opera": "16",
3238
3259
  "opera_mobile": "16",
3260
+ "rhino": "1.7.14",
3239
3261
  "safari": "7.1",
3240
3262
  "samsung": "1.5"
3241
3263
  },
@@ -3336,6 +3358,7 @@
3336
3358
  "edge": "92",
3337
3359
  "electron": "14.0",
3338
3360
  "firefox": "90",
3361
+ "ios": "15.4",
3339
3362
  "node": "16.6",
3340
3363
  "opera": "78",
3341
3364
  "opera_mobile": "65",
@@ -3350,6 +3373,7 @@
3350
3373
  "deno": "1.16",
3351
3374
  "edge": "97",
3352
3375
  "electron": "17.0",
3376
+ "ios": "15.4",
3353
3377
  "opera": "83",
3354
3378
  "safari": "15.4"
3355
3379
  },
@@ -3359,6 +3383,7 @@
3359
3383
  "deno": "1.16",
3360
3384
  "edge": "97",
3361
3385
  "electron": "17.0",
3386
+ "ios": "15.4",
3362
3387
  "opera": "83",
3363
3388
  "safari": "15.4"
3364
3389
  },
@@ -3403,6 +3428,7 @@
3403
3428
  "node": "12.0",
3404
3429
  "opera": "58",
3405
3430
  "opera_mobile": "50",
3431
+ "rhino": "1.7.14",
3406
3432
  "safari": "12.1",
3407
3433
  "samsung": "10.0"
3408
3434
  },
@@ -3463,8 +3489,10 @@
3463
3489
  "edge": "93",
3464
3490
  "electron": "14.0",
3465
3491
  "firefox": "92",
3492
+ "ios": "15.4",
3466
3493
  "node": "16.9",
3467
3494
  "opera": "79",
3495
+ "opera_mobile": "66",
3468
3496
  "safari": "15.4"
3469
3497
  },
3470
3498
  "esnext.object.iterate-entries": {},
@@ -3573,6 +3601,7 @@
3573
3601
  "edge": "92",
3574
3602
  "electron": "14.0",
3575
3603
  "firefox": "90",
3604
+ "ios": "15.4",
3576
3605
  "node": "16.6",
3577
3606
  "opera": "78",
3578
3607
  "opera_mobile": "65",
@@ -3587,6 +3616,7 @@
3587
3616
  "deno": "1.16",
3588
3617
  "edge": "97",
3589
3618
  "electron": "17.0",
3619
+ "ios": "15.4",
3590
3620
  "opera": "83",
3591
3621
  "safari": "15.4"
3592
3622
  },
@@ -3596,6 +3626,7 @@
3596
3626
  "deno": "1.16",
3597
3627
  "edge": "97",
3598
3628
  "electron": "17.0",
3629
+ "ios": "15.4",
3599
3630
  "opera": "83",
3600
3631
  "safari": "15.4"
3601
3632
  },
@@ -3614,6 +3645,34 @@
3614
3645
  "esnext.weak-set.delete-all": {},
3615
3646
  "esnext.weak-set.from": {},
3616
3647
  "esnext.weak-set.of": {},
3648
+ "web.atob": {
3649
+ "android": "37",
3650
+ "chrome": "34",
3651
+ "deno": "1.0",
3652
+ "edge": "13",
3653
+ "electron": "0.20",
3654
+ "firefox": "27",
3655
+ "ios": "10.3",
3656
+ "opera": "10.5",
3657
+ "opera_mobile": "10.5",
3658
+ "safari": "10.1",
3659
+ "samsung": "2.0"
3660
+ },
3661
+ "web.btoa": {
3662
+ "android": "3.0",
3663
+ "chrome": "4",
3664
+ "deno": "1.0",
3665
+ "edge": "12",
3666
+ "electron": "0.20",
3667
+ "firefox": "1",
3668
+ "ie": "10",
3669
+ "ios": "1.0",
3670
+ "opera": "10.5",
3671
+ "opera_mobile": "10.5",
3672
+ "phantom": "1.9",
3673
+ "safari": "3.0",
3674
+ "samsung": "1.0"
3675
+ },
3617
3676
  "web.dom-collections.for-each": {
3618
3677
  "android": "58",
3619
3678
  "chrome": "58",
package/entries.json CHANGED
@@ -382,6 +382,8 @@
382
382
  "esnext.weak-set.delete-all",
383
383
  "esnext.weak-set.from",
384
384
  "esnext.weak-set.of",
385
+ "web.atob",
386
+ "web.btoa",
385
387
  "web.dom-collections.for-each",
386
388
  "web.dom-collections.iterator",
387
389
  "web.dom-exception.constructor",
@@ -639,6 +641,8 @@
639
641
  "esnext.typed-array.find-last",
640
642
  "esnext.typed-array.find-last-index",
641
643
  "esnext.typed-array.group-by",
644
+ "web.atob",
645
+ "web.btoa",
642
646
  "web.dom-collections.for-each",
643
647
  "web.dom-collections.iterator",
644
648
  "web.dom-exception.constructor",
@@ -771,6 +775,7 @@
771
775
  ],
772
776
  "core-js/actual/array/group-by-to-map": [
773
777
  "es.map",
778
+ "es.object.to-string",
774
779
  "esnext.array.group-by-to-map"
775
780
  ],
776
781
  "core-js/actual/array/includes": [
@@ -912,6 +917,7 @@
912
917
  ],
913
918
  "core-js/actual/array/virtual/group-by-to-map": [
914
919
  "es.map",
920
+ "es.object.to-string",
915
921
  "esnext.array.group-by-to-map"
916
922
  ],
917
923
  "core-js/actual/array/virtual/includes": [
@@ -962,6 +968,22 @@
962
968
  "es.array.iterator",
963
969
  "es.object.to-string"
964
970
  ],
971
+ "core-js/actual/atob": [
972
+ "es.error.to-string",
973
+ "es.object.to-string",
974
+ "web.atob",
975
+ "web.dom-exception.constructor",
976
+ "web.dom-exception.stack",
977
+ "web.dom-exception.to-string-tag"
978
+ ],
979
+ "core-js/actual/btoa": [
980
+ "es.error.to-string",
981
+ "es.object.to-string",
982
+ "web.btoa",
983
+ "web.dom-exception.constructor",
984
+ "web.dom-exception.stack",
985
+ "web.dom-exception.to-string-tag"
986
+ ],
965
987
  "core-js/actual/clear-immediate": [
966
988
  "web.immediate"
967
989
  ],
@@ -1144,6 +1166,7 @@
1144
1166
  ],
1145
1167
  "core-js/actual/instance/group-by-to-map": [
1146
1168
  "es.map",
1169
+ "es.object.to-string",
1147
1170
  "esnext.array.group-by-to-map"
1148
1171
  ],
1149
1172
  "core-js/actual/instance/includes": [
@@ -4967,6 +4990,8 @@
4967
4990
  "esnext.weak-set.delete-all",
4968
4991
  "esnext.weak-set.from",
4969
4992
  "esnext.weak-set.of",
4993
+ "web.atob",
4994
+ "web.btoa",
4970
4995
  "web.dom-collections.for-each",
4971
4996
  "web.dom-collections.iterator",
4972
4997
  "web.dom-exception.constructor",
@@ -5126,6 +5151,7 @@
5126
5151
  ],
5127
5152
  "core-js/features/array/group-by-to-map": [
5128
5153
  "es.map",
5154
+ "es.object.to-string",
5129
5155
  "esnext.array.group-by-to-map"
5130
5156
  ],
5131
5157
  "core-js/features/array/includes": [
@@ -5305,6 +5331,7 @@
5305
5331
  ],
5306
5332
  "core-js/features/array/virtual/group-by-to-map": [
5307
5333
  "es.map",
5334
+ "es.object.to-string",
5308
5335
  "esnext.array.group-by-to-map"
5309
5336
  ],
5310
5337
  "core-js/features/array/virtual/includes": [
@@ -5477,6 +5504,14 @@
5477
5504
  "esnext.async-iterator.constructor",
5478
5505
  "esnext.async-iterator.to-array"
5479
5506
  ],
5507
+ "core-js/features/atob": [
5508
+ "es.error.to-string",
5509
+ "es.object.to-string",
5510
+ "web.atob",
5511
+ "web.dom-exception.constructor",
5512
+ "web.dom-exception.stack",
5513
+ "web.dom-exception.to-string-tag"
5514
+ ],
5480
5515
  "core-js/features/bigint": [
5481
5516
  "es.object.to-string",
5482
5517
  "esnext.bigint.range"
@@ -5485,6 +5520,14 @@
5485
5520
  "es.object.to-string",
5486
5521
  "esnext.bigint.range"
5487
5522
  ],
5523
+ "core-js/features/btoa": [
5524
+ "es.error.to-string",
5525
+ "es.object.to-string",
5526
+ "web.btoa",
5527
+ "web.dom-exception.constructor",
5528
+ "web.dom-exception.stack",
5529
+ "web.dom-exception.to-string-tag"
5530
+ ],
5488
5531
  "core-js/features/clear-immediate": [
5489
5532
  "web.immediate"
5490
5533
  ],
@@ -5703,6 +5746,7 @@
5703
5746
  ],
5704
5747
  "core-js/features/instance/group-by-to-map": [
5705
5748
  "es.map",
5749
+ "es.object.to-string",
5706
5750
  "esnext.array.group-by-to-map"
5707
5751
  ],
5708
5752
  "core-js/features/instance/includes": [
@@ -9030,6 +9074,12 @@
9030
9074
  "core-js/modules/esnext.weak-set.of": [
9031
9075
  "esnext.weak-set.of"
9032
9076
  ],
9077
+ "core-js/modules/web.atob": [
9078
+ "web.atob"
9079
+ ],
9080
+ "core-js/modules/web.btoa": [
9081
+ "web.btoa"
9082
+ ],
9033
9083
  "core-js/modules/web.dom-collections.for-each": [
9034
9084
  "web.dom-collections.for-each"
9035
9085
  ],
@@ -9759,6 +9809,8 @@
9759
9809
  "es.unescape",
9760
9810
  "es.weak-map",
9761
9811
  "es.weak-set",
9812
+ "web.atob",
9813
+ "web.btoa",
9762
9814
  "web.dom-collections.for-each",
9763
9815
  "web.dom-collections.iterator",
9764
9816
  "web.dom-exception.constructor",
@@ -10046,6 +10098,22 @@
10046
10098
  "es.array.iterator",
10047
10099
  "es.object.to-string"
10048
10100
  ],
10101
+ "core-js/stable/atob": [
10102
+ "es.error.to-string",
10103
+ "es.object.to-string",
10104
+ "web.atob",
10105
+ "web.dom-exception.constructor",
10106
+ "web.dom-exception.stack",
10107
+ "web.dom-exception.to-string-tag"
10108
+ ],
10109
+ "core-js/stable/btoa": [
10110
+ "es.error.to-string",
10111
+ "es.object.to-string",
10112
+ "web.btoa",
10113
+ "web.dom-exception.constructor",
10114
+ "web.dom-exception.stack",
10115
+ "web.dom-exception.to-string-tag"
10116
+ ],
10049
10117
  "core-js/stable/clear-immediate": [
10050
10118
  "web.immediate"
10051
10119
  ],
@@ -12360,6 +12428,8 @@
12360
12428
  "web.url-search-params"
12361
12429
  ],
12362
12430
  "core-js/web": [
12431
+ "web.atob",
12432
+ "web.btoa",
12363
12433
  "web.dom-collections.for-each",
12364
12434
  "web.dom-collections.iterator",
12365
12435
  "web.dom-exception.constructor",
@@ -426,5 +426,9 @@
426
426
  "web.dom-exception.stack",
427
427
  "web.dom-exception.to-string-tag",
428
428
  "web.structured-clone"
429
+ ],
430
+ "3.21": [
431
+ "web.atob",
432
+ "web.btoa"
429
433
  ]
430
434
  }
package/modules.json CHANGED
@@ -381,6 +381,8 @@
381
381
  "esnext.weak-set.delete-all",
382
382
  "esnext.weak-set.from",
383
383
  "esnext.weak-set.of",
384
+ "web.atob",
385
+ "web.btoa",
384
386
  "web.dom-collections.for-each",
385
387
  "web.dom-collections.iterator",
386
388
  "web.dom-exception.constructor",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js-compat",
3
3
  "description": "core-js compat",
4
- "version": "3.20.0",
4
+ "version": "3.21.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git",
@@ -17,5 +17,5 @@
17
17
  "url": "https://opencollective.com/core-js"
18
18
  },
19
19
  "license": "MIT",
20
- "gitHead": "29590d0f9f1ef51856b8498da76c316712ac7fae"
20
+ "gitHead": "32492dc5f55ea9bbd21b8fa8145cedd36d68c160"
21
21
  }