@evergis/api 3.0.210 → 3.0.212

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/dist/api.esm.js CHANGED
@@ -30,6 +30,9 @@ function _defineProperties(target, props) {
30
30
  function _createClass(Constructor, protoProps, staticProps) {
31
31
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
32
  if (staticProps) _defineProperties(Constructor, staticProps);
33
+ Object.defineProperty(Constructor, "prototype", {
34
+ writable: false
35
+ });
33
36
  return Constructor;
34
37
  }
35
38
 
@@ -63,6 +66,9 @@ function _inherits(subClass, superClass) {
63
66
  configurable: true
64
67
  }
65
68
  });
69
+ Object.defineProperty(subClass, "prototype", {
70
+ writable: false
71
+ });
66
72
  if (superClass) _setPrototypeOf(subClass, superClass);
67
73
  }
68
74
 
@@ -121,6 +127,8 @@ function _assertThisInitialized(self) {
121
127
  function _possibleConstructorReturn(self, call) {
122
128
  if (call && (typeof call === "object" || typeof call === "function")) {
123
129
  return call;
130
+ } else if (call !== void 0) {
131
+ throw new TypeError("Derived constructors may only return object or undefined");
124
132
  }
125
133
 
126
134
  return _assertThisInitialized(self);
@@ -154,7 +162,7 @@ function _superPropBase(object, property) {
154
162
  return object;
155
163
  }
156
164
 
157
- function _get(target, property, receiver) {
165
+ function _get() {
158
166
  if (typeof Reflect !== "undefined" && Reflect.get) {
159
167
  _get = Reflect.get;
160
168
  } else {
@@ -165,14 +173,14 @@ function _get(target, property, receiver) {
165
173
  var desc = Object.getOwnPropertyDescriptor(base, property);
166
174
 
167
175
  if (desc.get) {
168
- return desc.get.call(receiver);
176
+ return desc.get.call(arguments.length < 3 ? target : receiver);
169
177
  }
170
178
 
171
179
  return desc.value;
172
180
  };
173
181
  }
174
182
 
175
- return _get(target, property, receiver || target);
183
+ return _get.apply(this, arguments);
176
184
  }
177
185
 
178
186
  const API_USER_INFO_KEY = '@evergis/user-info';
@@ -5221,8 +5229,8 @@ let Notification = /*#__PURE__*/function (_NotificationService) {
5221
5229
  || event.code === 4002
5222
5230
  /* InvalidSession */
5223
5231
  ) {
5224
- _this.connectStatus = ConnectionStatus.SessionClosed;
5225
- } else if (_this.reconnectTries < _this.MAX_WS_RECONNECT_TRIES) {
5232
+ _this.connectStatus = ConnectionStatus.SessionClosed;
5233
+ } else if (_this.reconnectTries < _this.MAX_WS_RECONNECT_TRIES) {
5226
5234
  _this.connectStatus = ConnectionStatus.Break;
5227
5235
  _this.reconnectTries++;
5228
5236
 
@@ -6078,12 +6086,12 @@ let Resources = /*#__PURE__*/function () {
6078
6086
  }, {
6079
6087
  key: "getDependentNames",
6080
6088
  value: function getDependentNames(deps, depType) {
6081
- return deps.filter((_ref) => {
6089
+ return deps.filter(_ref => {
6082
6090
  let {
6083
6091
  type
6084
6092
  } = _ref;
6085
6093
  return type === depType;
6086
- }).map((_ref2) => {
6094
+ }).map(_ref2 => {
6087
6095
  let {
6088
6096
  name
6089
6097
  } = _ref2;
@@ -6539,7 +6547,7 @@ let Scheduler = /*#__PURE__*/function (_SchedulerService) {
6539
6547
  const taskProgress = await this.getTaskProgress(id);
6540
6548
  this.resolveTaskStatus(taskProgress, resolve, reject);
6541
6549
 
6542
- const taskResultCallback = async (_ref) => {
6550
+ const taskResultCallback = async _ref => {
6543
6551
  let {
6544
6552
  data
6545
6553
  } = _ref;
@@ -7688,6 +7696,7 @@ var UrlPath;
7688
7696
  const apiEventsByResponseStatus = {
7689
7697
  401: ApiEvent.Unauthorized
7690
7698
  };
7699
+ const SHARED_PORT = "8082";
7691
7700
  const URL_PATHS = /*#__PURE__*/Object.values(UrlPath);
7692
7701
  const DEFAULT_URL_PATH = URL_PATHS[0];
7693
7702
  let Api = /*#__PURE__*/function (_EventEmitter) {
@@ -7898,7 +7907,7 @@ let Api = /*#__PURE__*/function (_EventEmitter) {
7898
7907
  }, {
7899
7908
  key: "isPresentation",
7900
7909
  get: function get() {
7901
- return this.urlPath === UrlPath.Presentation;
7910
+ return this.urlPath === UrlPath.Presentation || window.location.port === SHARED_PORT;
7902
7911
  }
7903
7912
  }]);
7904
7913
 
@@ -8269,47 +8278,47 @@ function isFeatureLayer(layer) {
8269
8278
 
8270
8279
  /**
8271
8280
  *
8272
-
8281
+
8273
8282
  None
8274
-
8283
+
8275
8284
  Array
8276
-
8285
+
8277
8286
  Min
8278
-
8287
+
8279
8288
  Max
8280
-
8289
+
8281
8290
  Avg
8282
-
8291
+
8283
8292
  Sum
8284
-
8293
+
8285
8294
  Extent
8286
-
8295
+
8287
8296
  H3
8288
-
8297
+
8289
8298
  Count
8290
-
8299
+
8291
8300
  TotalCount
8292
-
8301
+
8293
8302
  DistinctCount
8294
-
8303
+
8295
8304
  First
8296
-
8305
+
8297
8306
  Last
8298
-
8307
+
8299
8308
  Median
8300
-
8309
+
8301
8310
  Mod
8302
-
8311
+
8303
8312
  StdDeviation
8304
-
8313
+
8305
8314
  SumOfProduct
8306
-
8315
+
8307
8316
  OnlyValue
8308
-
8317
+
8309
8318
  WeightedAvg
8310
-
8319
+
8311
8320
  DensityIndicators
8312
-
8321
+
8313
8322
  DividedSum
8314
8323
  */
8315
8324
  var AggregationFunction;
@@ -8339,13 +8348,13 @@ var AggregationFunction;
8339
8348
  })(AggregationFunction || (AggregationFunction = {}));
8340
8349
  /**
8341
8350
  *
8342
-
8351
+
8343
8352
  Unknown
8344
-
8353
+
8345
8354
  Icon
8346
-
8355
+
8347
8356
  PNG
8348
-
8357
+
8349
8358
  SVG
8350
8359
  */
8351
8360
 
@@ -8360,13 +8369,13 @@ var AttributeIconType;
8360
8369
  })(AttributeIconType || (AttributeIconType = {}));
8361
8370
  /**
8362
8371
  *
8363
-
8372
+
8364
8373
  None
8365
-
8374
+
8366
8375
  SelectFromHandBook
8367
-
8376
+
8368
8377
  SelectFromRange
8369
-
8378
+
8370
8379
  ViewHandBook
8371
8380
  */
8372
8381
 
@@ -8381,31 +8390,31 @@ var AttributeSelectorType;
8381
8390
  })(AttributeSelectorType || (AttributeSelectorType = {}));
8382
8391
  /**
8383
8392
  *
8384
-
8393
+
8385
8394
  Unknown
8386
-
8395
+
8387
8396
  String
8388
-
8397
+
8389
8398
  Int32
8390
-
8399
+
8391
8400
  Int64
8392
-
8401
+
8393
8402
  Double
8394
-
8403
+
8395
8404
  DateTime
8396
-
8405
+
8397
8406
  Boolean
8398
-
8407
+
8399
8408
  Point
8400
-
8409
+
8401
8410
  Polyline
8402
-
8411
+
8403
8412
  MultiPolygon
8404
-
8413
+
8405
8414
  Multipoint
8406
-
8415
+
8407
8416
  H3Index
8408
-
8417
+
8409
8418
  Json
8410
8419
  */
8411
8420
 
@@ -8431,9 +8440,9 @@ var AttributeType;
8431
8440
  * An authorization grant is a credential representing the resource
8432
8441
  owner's authorization (to access its protected resources) used by the
8433
8442
  client to obtain an access token.
8434
-
8443
+
8435
8444
  authorization_code
8436
-
8445
+
8437
8446
  refresh_token
8438
8447
  */
8439
8448
 
@@ -8446,19 +8455,19 @@ var AuthorizationGrant;
8446
8455
  })(AuthorizationGrant || (AuthorizationGrant = {}));
8447
8456
  /**
8448
8457
  *
8449
-
8458
+
8450
8459
  None
8451
-
8460
+
8452
8461
  Map
8453
-
8462
+
8454
8463
  Layer
8455
-
8464
+
8456
8465
  Table
8457
-
8466
+
8458
8467
  File
8459
-
8468
+
8460
8469
  TaskPrototype
8461
-
8470
+
8462
8471
  DataSource
8463
8472
  */
8464
8473
 
@@ -8476,15 +8485,15 @@ var CatalogResourceType;
8476
8485
  })(CatalogResourceType || (CatalogResourceType = {}));
8477
8486
  /**
8478
8487
  * Describes classification methods.
8479
-
8488
+
8480
8489
  none
8481
-
8490
+
8482
8491
  naturalBreaks
8483
-
8492
+
8484
8493
  equalInterval
8485
-
8494
+
8486
8495
  quantile
8487
-
8496
+
8488
8497
  unique
8489
8498
  */
8490
8499
 
@@ -8500,11 +8509,11 @@ var ClassificationType;
8500
8509
  })(ClassificationType || (ClassificationType = {}));
8501
8510
  /**
8502
8511
  *
8503
-
8512
+
8504
8513
  decimal
8505
-
8514
+
8506
8515
  dateTime
8507
-
8516
+
8508
8517
  text
8509
8518
  */
8510
8519
 
@@ -8518,55 +8527,55 @@ var ClassifyAttributeType;
8518
8527
  })(ClassifyAttributeType || (ClassifyAttributeType = {}));
8519
8528
  /**
8520
8529
  *
8521
-
8530
+
8522
8531
  Unknown
8523
-
8532
+
8524
8533
  SerializeError
8525
-
8534
+
8526
8535
  InvalidDataService
8527
-
8536
+
8528
8537
  InvalidConfiguration
8529
-
8538
+
8530
8539
  InvalidDataServiceName
8531
-
8540
+
8532
8541
  InvalidTableName
8533
-
8542
+
8534
8543
  InvalidLayerName
8535
-
8544
+
8536
8545
  ResourceNotFound
8537
-
8546
+
8538
8547
  InvalidCondition
8539
-
8548
+
8540
8549
  InvalidAttributes
8541
-
8550
+
8542
8551
  InvalidIdAttribute
8543
-
8552
+
8544
8553
  InvalidGeometryAttribute
8545
-
8554
+
8546
8555
  InvalidGeometryAttributeType
8547
-
8556
+
8548
8557
  InvalidColumnName
8549
-
8558
+
8550
8559
  InvalidIdColumnSettings
8551
-
8560
+
8552
8561
  ColumnNotExistsInTable
8553
-
8562
+
8554
8563
  InvalidStyle
8555
-
8564
+
8556
8565
  InvalidLayerType
8557
-
8566
+
8558
8567
  ColumnLoadingError
8559
-
8568
+
8560
8569
  InvalidAttributeFormat
8561
-
8570
+
8562
8571
  DataSourceNotFound
8563
-
8572
+
8564
8573
  DuplicateColumns
8565
-
8574
+
8566
8575
  DuplicateAttributes
8567
-
8576
+
8568
8577
  TableWithoutColumns
8569
-
8578
+
8570
8579
  InvalidTableReferenceConfiguration
8571
8580
  */
8572
8581
 
@@ -8602,13 +8611,13 @@ var ConfigurationErrorEnum;
8602
8611
  })(ConfigurationErrorEnum || (ConfigurationErrorEnum = {}));
8603
8612
  /**
8604
8613
  *
8605
-
8614
+
8606
8615
  Postgres
8607
-
8616
+
8608
8617
  Trino
8609
-
8618
+
8610
8619
  S3
8611
-
8620
+
8612
8621
  GisServer
8613
8622
  */
8614
8623
 
@@ -8623,15 +8632,15 @@ var DataSourceType;
8623
8632
  })(DataSourceType || (DataSourceType = {}));
8624
8633
  /**
8625
8634
  * Type of the error.
8626
-
8635
+
8627
8636
  ResourceLimitExceeded
8628
-
8637
+
8629
8638
  ResourceNotFound
8630
-
8639
+
8631
8640
  InternalError
8632
-
8641
+
8633
8642
  BadRequest
8634
-
8643
+
8635
8644
  DuplicateContent
8636
8645
  */
8637
8646
 
@@ -8682,9 +8691,9 @@ var ErrorType;
8682
8691
  })(ErrorType || (ErrorType = {}));
8683
8692
  /**
8684
8693
  * Type of the feature.
8685
-
8694
+
8686
8695
  Unknown
8687
-
8696
+
8688
8697
  GeometricFeature
8689
8698
  */
8690
8699
 
@@ -8697,11 +8706,11 @@ var FeatureType;
8697
8706
  })(FeatureType || (FeatureType = {}));
8698
8707
  /**
8699
8708
  * Sets whether font should be styled.
8700
-
8709
+
8701
8710
  normal
8702
-
8711
+
8703
8712
  oblique
8704
-
8713
+
8705
8714
  italic
8706
8715
  */
8707
8716
 
@@ -8715,27 +8724,27 @@ var FontStyle;
8715
8724
  })(FontStyle || (FontStyle = {}));
8716
8725
  /**
8717
8726
  * Specifies the weight (or boldness) of the font.
8718
-
8727
+
8719
8728
  Thin
8720
-
8729
+
8721
8730
  ExtraLight
8722
-
8731
+
8723
8732
  Light
8724
-
8733
+
8725
8734
  SemiLight
8726
-
8735
+
8727
8736
  Normal
8728
-
8737
+
8729
8738
  Medium
8730
-
8739
+
8731
8740
  DemiBold
8732
-
8741
+
8733
8742
  Bold
8734
-
8743
+
8735
8744
  ExtraBold
8736
-
8745
+
8737
8746
  Black
8738
-
8747
+
8739
8748
  ExtraBlack
8740
8749
  */
8741
8750
 
@@ -8757,17 +8766,17 @@ var FontWeight;
8757
8766
  })(FontWeight || (FontWeight = {}));
8758
8767
  /**
8759
8768
  *
8760
-
8769
+
8761
8770
  unknown
8762
-
8771
+
8763
8772
  point
8764
-
8773
+
8765
8774
  polyline
8766
-
8775
+
8767
8776
  multipolygon
8768
-
8777
+
8769
8778
  envelope
8770
-
8779
+
8771
8780
  multipoint
8772
8781
  */
8773
8782
 
@@ -8784,13 +8793,13 @@ var GeometryType;
8784
8793
  })(GeometryType || (GeometryType = {}));
8785
8794
  /**
8786
8795
  * Resource group.
8787
-
8796
+
8788
8797
  my
8789
-
8798
+
8790
8799
  role
8791
-
8800
+
8792
8801
  public
8793
-
8802
+
8794
8803
  all
8795
8804
  */
8796
8805
 
@@ -8805,13 +8814,13 @@ var Group;
8805
8814
  })(Group || (Group = {}));
8806
8815
  /**
8807
8816
  * Specifies the settings of line cap. This is applied to the beginning and end of each non-closed line.
8808
-
8817
+
8809
8818
  Flat
8810
-
8819
+
8811
8820
  Square
8812
-
8821
+
8813
8822
  Round
8814
-
8823
+
8815
8824
  Triangle
8816
8825
  */
8817
8826
 
@@ -8826,29 +8835,29 @@ var LineCapStyle;
8826
8835
  })(LineCapStyle || (LineCapStyle = {}));
8827
8836
  /**
8828
8837
  * Type of the line ending.
8829
-
8838
+
8830
8839
  none
8831
-
8840
+
8832
8841
  arrow
8833
-
8842
+
8834
8843
  filledArrow
8835
-
8844
+
8836
8845
  square
8837
-
8846
+
8838
8847
  filledSquare
8839
-
8848
+
8840
8849
  circle
8841
-
8850
+
8842
8851
  filledCircle
8843
-
8852
+
8844
8853
  diamond
8845
-
8854
+
8846
8855
  filledDiamond
8847
-
8856
+
8848
8857
  roundSquare
8849
-
8858
+
8850
8859
  filledRoundSquare
8851
-
8860
+
8852
8861
  svg
8853
8862
  */
8854
8863
 
@@ -8871,11 +8880,11 @@ var LineEndingType;
8871
8880
  })(LineEndingType || (LineEndingType = {}));
8872
8881
  /**
8873
8882
  * Specifies the settings of lines join. This is applied to corners in lines and rectangles.
8874
-
8883
+
8875
8884
  Miter
8876
-
8885
+
8877
8886
  Bevel
8878
-
8887
+
8879
8888
  Round
8880
8889
  */
8881
8890
 
@@ -8889,15 +8898,15 @@ var LineJoinType;
8889
8898
  })(LineJoinType || (LineJoinType = {}));
8890
8899
  /**
8891
8900
  *
8892
-
8901
+
8893
8902
  Unknown
8894
-
8903
+
8895
8904
  union
8896
-
8905
+
8897
8906
  intersection
8898
-
8907
+
8899
8908
  subtraction
8900
-
8909
+
8901
8910
  symDifference
8902
8911
  */
8903
8912
 
@@ -8913,11 +8922,11 @@ var Operation;
8913
8922
  })(Operation || (Operation = {}));
8914
8923
  /**
8915
8924
  * Filter exists resources by owner.
8916
-
8925
+
8917
8926
  My
8918
-
8927
+
8919
8928
  Shared
8920
-
8929
+
8921
8930
  Public
8922
8931
  */
8923
8932
 
@@ -8931,9 +8940,9 @@ var OwnerFilter;
8931
8940
  })(OwnerFilter || (OwnerFilter = {}));
8932
8941
  /**
8933
8942
  * Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed.
8934
-
8943
+
8935
8944
  xyz
8936
-
8945
+
8937
8946
  tms
8938
8947
  */
8939
8948
 
@@ -8946,19 +8955,19 @@ var PbfSchema;
8946
8955
  })(PbfSchema || (PbfSchema = {}));
8947
8956
  /**
8948
8957
  *
8949
-
8958
+
8950
8959
  none
8951
-
8960
+
8952
8961
  configure
8953
-
8962
+
8954
8963
  write
8955
-
8964
+
8956
8965
  read
8957
-
8966
+
8958
8967
  read,configure
8959
-
8968
+
8960
8969
  read,write
8961
-
8970
+
8962
8971
  read,write,configure
8963
8972
  */
8964
8973
 
@@ -8976,19 +8985,19 @@ var Permissions;
8976
8985
  })(Permissions || (Permissions = {}));
8977
8986
  /**
8978
8987
  * Type of the authorization policy.
8979
-
8988
+
8980
8989
  Unknown
8981
-
8990
+
8982
8991
  CreateTable
8983
-
8992
+
8984
8993
  CreateLayer
8985
-
8994
+
8986
8995
  CreateProject
8987
-
8996
+
8988
8997
  MaxFeaturesInOneTable
8989
-
8998
+
8990
8999
  MaxObjectsToExport
8991
-
9000
+
8992
9001
  MaxUploadContentSize
8993
9002
  */
8994
9003
 
@@ -9006,11 +9015,11 @@ var PolicyType;
9006
9015
  })(PolicyType || (PolicyType = {}));
9007
9016
  /**
9008
9017
  * Stream quality.
9009
-
9018
+
9010
9019
  Low
9011
-
9020
+
9012
9021
  Medium
9013
-
9022
+
9014
9023
  High
9015
9024
  */
9016
9025
 
@@ -9024,15 +9033,15 @@ var Quality;
9024
9033
  })(Quality || (Quality = {}));
9025
9034
  /**
9026
9035
  * Resources types filter.
9027
-
9036
+
9028
9037
  RemoteTileService
9029
-
9038
+
9030
9039
  ProxyService
9031
-
9040
+
9032
9041
  PostgresLayerService
9033
-
9042
+
9034
9043
  QueryLayerService
9035
-
9044
+
9036
9045
  TileCatalogTable
9037
9046
  */
9038
9047
 
@@ -9048,19 +9057,19 @@ var ResourceSubTypeFilter;
9048
9057
  })(ResourceSubTypeFilter || (ResourceSubTypeFilter = {}));
9049
9058
  /**
9050
9059
  *
9051
-
9060
+
9052
9061
  Unknown
9053
-
9062
+
9054
9063
  table
9055
-
9064
+
9056
9065
  layer
9057
-
9066
+
9058
9067
  project
9059
-
9068
+
9060
9069
  file
9061
-
9070
+
9062
9071
  feature
9063
-
9072
+
9064
9073
  tag
9065
9074
  */
9066
9075
 
@@ -9078,21 +9087,21 @@ var ResourceType;
9078
9087
  })(ResourceType || (ResourceType = {}));
9079
9088
  /**
9080
9089
  * Resources types filter.
9081
-
9090
+
9082
9091
  Map
9083
-
9092
+
9084
9093
  Layer
9085
-
9094
+
9086
9095
  Table
9087
-
9096
+
9088
9097
  RasterCatalog
9089
-
9098
+
9090
9099
  ProxyService
9091
-
9100
+
9092
9101
  RemoteTileService
9093
-
9102
+
9094
9103
  File
9095
-
9104
+
9096
9105
  DataSource
9097
9106
  */
9098
9107
 
@@ -9119,9 +9128,9 @@ var ResourceTypeLink;
9119
9128
  })(ResourceTypeLink || (ResourceTypeLink = {}));
9120
9129
  /**
9121
9130
  * Response type.
9122
-
9131
+
9123
9132
  code
9124
-
9133
+
9125
9134
  token
9126
9135
  */
9127
9136
 
@@ -9134,21 +9143,21 @@ var ResponseType;
9134
9143
  })(ResponseType || (ResponseType = {}));
9135
9144
  /**
9136
9145
  * Status of the server task.
9137
-
9146
+
9138
9147
  None
9139
-
9148
+
9140
9149
  Scheduled
9141
-
9150
+
9142
9151
  Planning
9143
-
9152
+
9144
9153
  Executing
9145
-
9154
+
9146
9155
  Completed
9147
-
9156
+
9148
9157
  Failed
9149
-
9158
+
9150
9159
  Canceled
9151
-
9160
+
9152
9161
  Timeout
9153
9162
  */
9154
9163
 
@@ -9167,11 +9176,11 @@ var ServerTaskStatus;
9167
9176
  })(ServerTaskStatus || (ServerTaskStatus = {}));
9168
9177
  /**
9169
9178
  *
9170
-
9179
+
9171
9180
  Basic
9172
-
9181
+
9173
9182
  PreserveTopology
9174
-
9183
+
9175
9184
  VW
9176
9185
  */
9177
9186
 
@@ -9185,13 +9194,13 @@ var SimplifyType;
9185
9194
  })(SimplifyType || (SimplifyType = {}));
9186
9195
  /**
9187
9196
  *
9188
-
9197
+
9189
9198
  None
9190
-
9199
+
9191
9200
  Image
9192
-
9201
+
9193
9202
  PkkCode
9194
-
9203
+
9195
9204
  Attachments
9196
9205
  */
9197
9206
 
@@ -9206,9 +9215,9 @@ var StringSubType;
9206
9215
  })(StringSubType || (StringSubType = {}));
9207
9216
  /**
9208
9217
  * Task owner group.
9209
-
9218
+
9210
9219
  my
9211
-
9220
+
9212
9221
  all
9213
9222
  */
9214
9223
 
@@ -9221,13 +9230,13 @@ var TaskGroup;
9221
9230
  })(TaskGroup || (TaskGroup = {}));
9222
9231
  /**
9223
9232
  * Sets the horizontal alignment of text.
9224
-
9233
+
9225
9234
  right
9226
-
9235
+
9227
9236
  left
9228
-
9237
+
9229
9238
  center
9230
-
9239
+
9231
9240
  justified
9232
9241
  */
9233
9242
 
@@ -9242,11 +9251,11 @@ var TextAlignment;
9242
9251
  })(TextAlignment || (TextAlignment = {}));
9243
9252
  /**
9244
9253
  * Sets the vertical alignment of text.
9245
-
9254
+
9246
9255
  top
9247
-
9256
+
9248
9257
  bottom
9249
-
9258
+
9250
9259
  middle
9251
9260
  */
9252
9261