Exit Full View

Games Cupboard / gamescupboard-client / build / compileSync / main / productionExecutable / kotlin / kotlinx-serialization-kotlinx-serialization-json-js-ir.js

(function (root, factory) {
  if (typeof define === 'function' && define.amd)
    define(['exports', './kotlinx-serialization-kotlinx-serialization-core-js-ir.js', './kotlin-kotlin-stdlib-js-ir.js'], factory);
  else if (typeof exports === 'object')
    factory(module.exports, require('./kotlinx-serialization-kotlinx-serialization-core-js-ir.js'), require('./kotlin-kotlin-stdlib-js-ir.js'));
  else {
    if (typeof this['kotlinx-serialization-kotlinx-serialization-core-js-ir'] === 'undefined') {
      throw new Error("Error loading module 'kotlinx-serialization-kotlinx-serialization-json-js-ir'. Its dependency 'kotlinx-serialization-kotlinx-serialization-core-js-ir' was not found. Please, check whether 'kotlinx-serialization-kotlinx-serialization-core-js-ir' is loaded prior to 'kotlinx-serialization-kotlinx-serialization-json-js-ir'.");
    }
    if (typeof this['kotlin-kotlin-stdlib-js-ir'] === 'undefined') {
      throw new Error("Error loading module 'kotlinx-serialization-kotlinx-serialization-json-js-ir'. Its dependency 'kotlin-kotlin-stdlib-js-ir' was not found. Please, check whether 'kotlin-kotlin-stdlib-js-ir' is loaded prior to 'kotlinx-serialization-kotlinx-serialization-json-js-ir'.");
    }
    root['kotlinx-serialization-kotlinx-serialization-json-js-ir'] = factory(typeof this['kotlinx-serialization-kotlinx-serialization-json-js-ir'] === 'undefined' ? {} : this['kotlinx-serialization-kotlinx-serialization-json-js-ir'], this['kotlinx-serialization-kotlinx-serialization-core-js-ir'], this['kotlin-kotlin-stdlib-js-ir']);
  }
}(this, function (_, kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core, kotlin_kotlin) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var EmptySerializersModule = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j2;
  var objectMeta = kotlin_kotlin.$_$.wd;
  var StringFormat = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.p2;
  var classMeta = kotlin_kotlin.$_$.pc;
  var Annotation = kotlin_kotlin.$_$.mh;
  var Decoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.r1;
  var CompositeDecoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o1;
  var interfaceMeta = kotlin_kotlin.$_$.yc;
  var THROW_CCE = kotlin_kotlin.$_$.di;
  var equals = kotlin_kotlin.$_$.rc;
  var hashCode = kotlin_kotlin.$_$.xc;
  var joinToString$default = kotlin_kotlin.$_$.m;
  var List = kotlin_kotlin.$_$.x5;
  var Unit_getInstance = kotlin_kotlin.$_$.k5;
  var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.h2;
  var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.p3;
  var Map = kotlin_kotlin.$_$.z5;
  var toString = kotlin_kotlin.$_$.ae;
  var getKClassFromExpression = kotlin_kotlin.$_$.c;
  var getStringHashCode = kotlin_kotlin.$_$.wc;
  var LazyThreadSafetyMode_PUBLICATION_getInstance = kotlin_kotlin.$_$.g;
  var lazy = kotlin_kotlin.$_$.xi;
  var SerializerFactory = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g2;
  var toInt = kotlin_kotlin.$_$.rg;
  var toLong = kotlin_kotlin.$_$.wg;
  var toDouble = kotlin_kotlin.$_$.og;
  var toLongOrNull = kotlin_kotlin.$_$.vg;
  var toDoubleOrNull = kotlin_kotlin.$_$.ng;
  var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.s2;
  var SEALED_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h;
  var buildSerialDescriptor$default = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.a;
  var KSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l2;
  var ListSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.t;
  var SerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h1;
  var StringCompanionObject_getInstance = kotlin_kotlin.$_$.y4;
  var serializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.w;
  var MapSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.u;
  var STRING_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i;
  var ENUM_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k;
  var PrimitiveSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d1;
  var toULongOrNull = kotlin_kotlin.$_$.bh;
  var Companion_getInstance = kotlin_kotlin.$_$.i5;
  var serializer_0 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.a1;
  var _ULong___get_data__impl__fggpzb = kotlin_kotlin.$_$.l4;
  var ULong = kotlin_kotlin.$_$.ji;
  var isInterface = kotlin_kotlin.$_$.id;
  var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.x2;
  var lazy_0 = kotlin_kotlin.$_$.yi;
  var get_isNullable = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g1;
  var get_isInline = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f1;
  var get_annotations = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e1;
  var KProperty1 = kotlin_kotlin.$_$.ef;
  var getPropertyCallableRef = kotlin_kotlin.$_$.vc;
  var Encoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.v1;
  var CompositeEncoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.p1;
  var toLong_0 = kotlin_kotlin.$_$.yd;
  var _UInt___init__impl__l7qpdl = kotlin_kotlin.$_$.h4;
  var UInt__toString_impl_dbgl21 = kotlin_kotlin.$_$.j4;
  var _ULong___init__impl__c78o9k = kotlin_kotlin.$_$.k4;
  var ULong__toString_impl_f9au7k = kotlin_kotlin.$_$.m4;
  var _UByte___init__impl__g9hnc4 = kotlin_kotlin.$_$.d4;
  var UByte__toString_impl_v72jg = kotlin_kotlin.$_$.g4;
  var _UShort___init__impl__jigrne = kotlin_kotlin.$_$.n4;
  var UShort__toString_impl_edaoee = kotlin_kotlin.$_$.p4;
  var ElementMarker = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.y1;
  var captureStack = kotlin_kotlin.$_$.jc;
  var SerializationException = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o2;
  var SerializationException_init_$Init$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e;
  var charSequenceLength = kotlin_kotlin.$_$.nc;
  var charSequenceSubSequence = kotlin_kotlin.$_$.oc;
  var coerceAtLeast = kotlin_kotlin.$_$.me;
  var coerceAtMost = kotlin_kotlin.$_$.pe;
  var Companion_getInstance_0 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n;
  var SerializationException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.m1;
  var singleOrNull = kotlin_kotlin.$_$.t9;
  var arrayIterator = kotlin_kotlin.$_$.hc;
  var ensureNotNull = kotlin_kotlin.$_$.ri;
  var emptyMap = kotlin_kotlin.$_$.x7;
  var getValue = kotlin_kotlin.$_$.m8;
  var copyOf = kotlin_kotlin.$_$.o7;
  var copyOf_0 = kotlin_kotlin.$_$.p7;
  var fillArrayVal = kotlin_kotlin.$_$.tc;
  var LIST_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l;
  var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.v1;
  var DeepRecursiveFunction = kotlin_kotlin.$_$.qh;
  var invoke = kotlin_kotlin.$_$.si;
  var CoroutineImpl = kotlin_kotlin.$_$.yb;
  var DeepRecursiveScope = kotlin_kotlin.$_$.rh;
  var Unit = kotlin_kotlin.$_$.li;
  var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.gb;
  var SuspendFunction2 = kotlin_kotlin.$_$.bc;
  var AbstractPolymorphicSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.w1;
  var getKClass = kotlin_kotlin.$_$.d;
  var DeserializationStrategy = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k2;
  var isObject = kotlin_kotlin.$_$.ld;
  var findPolymorphicSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.q2;
  var SealedClassSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n2;
  var jsonCachedSerialNames = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h2;
  var ENUM = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i1;
  var PrimitiveKind = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c1;
  var PolymorphicKind = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b1;
  var AbstractDecoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.k1;
  var plus = kotlin_kotlin.$_$.aj;
  var MissingFieldException = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m2;
  var decodeSerializableElement$default = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b;
  var IllegalArgumentException = kotlin_kotlin.$_$.vh;
  var isFinite = kotlin_kotlin.$_$.ui;
  var isFinite_0 = kotlin_kotlin.$_$.ti;
  var charSequenceGet = kotlin_kotlin.$_$.mc;
  var decodeSequentially = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.n1;
  var decodeCollectionSize = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m1;
  var toUInt = kotlin_kotlin.$_$.ah;
  var _UInt___get_data__impl__f0vqqw = kotlin_kotlin.$_$.i4;
  var toULong = kotlin_kotlin.$_$.ch;
  var toUByte = kotlin_kotlin.$_$.zg;
  var _UByte___get_data__impl__jof9qr = kotlin_kotlin.$_$.e4;
  var toUShort = kotlin_kotlin.$_$.dh;
  var _UShort___get_data__impl__g0245 = kotlin_kotlin.$_$.o4;
  var decodeSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.q1;
  var AbstractEncoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.l1;
  var Char = kotlin_kotlin.$_$.nh;
  var toString_0 = kotlin_kotlin.$_$.y3;
  var encodeNotNullMark = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.t1;
  var beginCollection = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.s1;
  var encodeNullableSerializableValue = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.u1;
  var Companion_getInstance_1 = kotlin_kotlin.$_$.h5;
  var serializer_1 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.y;
  var Companion_getInstance_2 = kotlin_kotlin.$_$.g5;
  var serializer_2 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.z;
  var Companion_getInstance_3 = kotlin_kotlin.$_$.j5;
  var serializer_3 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.x;
  var setOf = kotlin_kotlin.$_$.s9;
  var numberToChar = kotlin_kotlin.$_$.sd;
  var Char__toInt_impl_vasixd = kotlin_kotlin.$_$.x3;
  var equals_0 = kotlin_kotlin.$_$.qf;
  var toByte = kotlin_kotlin.$_$.xd;
  var NamedValueDecoder = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.e2;
  var MAP_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.m;
  var IllegalArgumentException_init_$Create$_0 = kotlin_kotlin.$_$.q2;
  var ByteCompanionObject_getInstance = kotlin_kotlin.$_$.t4;
  var ShortCompanionObject_getInstance = kotlin_kotlin.$_$.x4;
  var toShort = kotlin_kotlin.$_$.zd;
  var single = kotlin_kotlin.$_$.hg;
  var emptySet = kotlin_kotlin.$_$.y7;
  var plus_0 = kotlin_kotlin.$_$.k9;
  var toList = kotlin_kotlin.$_$.na;
  var Enum = kotlin_kotlin.$_$.sh;
  var getContextualDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j1;
  var CONTEXTUAL_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.j;
  var last = kotlin_kotlin.$_$.a9;
  var removeLast = kotlin_kotlin.$_$.p9;
  var lastIndexOf$default = kotlin_kotlin.$_$.y;
  var Long = kotlin_kotlin.$_$.xh;
  var Char__minus_impl_a2frrh = kotlin_kotlin.$_$.s3;
  var Companion_getInstance_4 = kotlin_kotlin.$_$.e5;
  var charArray = kotlin_kotlin.$_$.lc;
  var indexOf$default = kotlin_kotlin.$_$.w;
  var StringBuilder_init_$Create$_0 = kotlin_kotlin.$_$.g2;
  var HashMap_init_$Create$ = kotlin_kotlin.$_$.o1;
  //endregion
  //region block: pre-declaration
  Default.prototype = Object.create(Json.prototype);
  Default.prototype.constructor = Default;
  JsonArray.prototype = Object.create(JsonElement.prototype);
  JsonArray.prototype.constructor = JsonArray;
  JsonObject.prototype = Object.create(JsonElement.prototype);
  JsonObject.prototype.constructor = JsonObject;
  JsonPrimitive.prototype = Object.create(JsonElement.prototype);
  JsonPrimitive.prototype.constructor = JsonPrimitive;
  JsonLiteral.prototype = Object.create(JsonPrimitive.prototype);
  JsonLiteral.prototype.constructor = JsonLiteral;
  JsonNull.prototype = Object.create(JsonPrimitive.prototype);
  JsonNull.prototype.constructor = JsonNull;
  ComposerForUnsignedNumbers.prototype = Object.create(Composer.prototype);
  ComposerForUnsignedNumbers.prototype.constructor = ComposerForUnsignedNumbers;
  ComposerWithPrettyPrint.prototype = Object.create(Composer.prototype);
  ComposerWithPrettyPrint.prototype.constructor = ComposerWithPrettyPrint;
  JsonException.prototype = Object.create(SerializationException.prototype);
  JsonException.prototype.constructor = JsonException;
  JsonEncodingException.prototype = Object.create(JsonException.prototype);
  JsonEncodingException.prototype.constructor = JsonEncodingException;
  JsonDecodingException.prototype = Object.create(JsonException.prototype);
  JsonDecodingException.prototype.constructor = JsonDecodingException;
  JsonTreeReader$readDeepRecursive$slambda.prototype = Object.create(CoroutineImpl.prototype);
  JsonTreeReader$readDeepRecursive$slambda.prototype.constructor = JsonTreeReader$readDeepRecursive$slambda;
  $readObjectCOROUTINE$0.prototype = Object.create(CoroutineImpl.prototype);
  $readObjectCOROUTINE$0.prototype.constructor = $readObjectCOROUTINE$0;
  StreamingJsonDecoder.prototype = Object.create(AbstractDecoder.prototype);
  StreamingJsonDecoder.prototype.constructor = StreamingJsonDecoder;
  JsonDecoderForUnsignedTypes.prototype = Object.create(AbstractDecoder.prototype);
  JsonDecoderForUnsignedTypes.prototype.constructor = JsonDecoderForUnsignedTypes;
  StreamingJsonEncoder.prototype = Object.create(AbstractEncoder.prototype);
  StreamingJsonEncoder.prototype.constructor = StreamingJsonEncoder;
  AbstractJsonTreeDecoder.prototype = Object.create(NamedValueDecoder.prototype);
  AbstractJsonTreeDecoder.prototype.constructor = AbstractJsonTreeDecoder;
  JsonTreeDecoder.prototype = Object.create(AbstractJsonTreeDecoder.prototype);
  JsonTreeDecoder.prototype.constructor = JsonTreeDecoder;
  JsonTreeListDecoder.prototype = Object.create(AbstractJsonTreeDecoder.prototype);
  JsonTreeListDecoder.prototype.constructor = JsonTreeListDecoder;
  JsonTreeMapDecoder.prototype = Object.create(JsonTreeDecoder.prototype);
  JsonTreeMapDecoder.prototype.constructor = JsonTreeMapDecoder;
  WriteMode.prototype = Object.create(Enum.prototype);
  WriteMode.prototype.constructor = WriteMode;
  StringJsonLexer.prototype = Object.create(AbstractJsonLexer.prototype);
  StringJsonLexer.prototype.constructor = StringJsonLexer;
  //endregion
  function Default() {
    Default_instance = this;
    Json.call(this, JsonConfiguration_init_$Create$(false, false, false, false, false, false, null, false, false, null, false, false, 4095, null), EmptySerializersModule());
  }
  Default.$metadata$ = objectMeta('Default', undefined, undefined, undefined, undefined, Json.prototype);
  var Default_instance;
  function Default_getInstance() {
    if (Default_instance == null)
      new Default();
    return Default_instance;
  }
  function Json(configuration, serializersModule) {
    Default_getInstance();
    this.m17_1 = configuration;
    this.n17_1 = serializersModule;
    this.o17_1 = new DescriptorSchemaCache();
  }
  Json.prototype.p17 = function () {
    return this.m17_1;
  };
  Json.prototype.cr = function () {
    return this.n17_1;
  };
  Json.prototype.br = function (serializer, value) {
    var result = new JsonToStringWriter();
    try {
      encodeByWriter(this, result, serializer, value);
      return result.toString();
    }finally {
      result.s17();
    }
  };
  Json.prototype.q17 = function (deserializer, string) {
    var lexer = new StringJsonLexer(string);
    var input = new StreamingJsonDecoder(this, WriteMode_OBJ_getInstance(), lexer, deserializer.bq(), null);
    var result = input.ht(deserializer);
    lexer.f18();
    return result;
  };
  Json.$metadata$ = classMeta('Json', [StringFormat]);
  function JsonClassDiscriminator() {
  }
  JsonClassDiscriminator.$metadata$ = classMeta('JsonClassDiscriminator', [Annotation]);
  function JsonNames() {
  }
  JsonNames.$metadata$ = classMeta('JsonNames', [Annotation]);
  function JsonConfiguration_init_$Init$(encodeDefaults, ignoreUnknownKeys, isLenient, allowStructuredMapKeys, prettyPrint, explicitNulls, prettyPrintIndent, coerceInputValues, useArrayPolymorphism, classDiscriminator, allowSpecialFloatingPointValues, useAlternativeNames, $mask0, $marker, $this) {
    if (!(($mask0 & 1) === 0))
      encodeDefaults = false;
    if (!(($mask0 & 2) === 0))
      ignoreUnknownKeys = false;
    if (!(($mask0 & 4) === 0))
      isLenient = false;
    if (!(($mask0 & 8) === 0))
      allowStructuredMapKeys = false;
    if (!(($mask0 & 16) === 0))
      prettyPrint = false;
    if (!(($mask0 & 32) === 0))
      explicitNulls = true;
    if (!(($mask0 & 64) === 0))
      prettyPrintIndent = '    ';
    if (!(($mask0 & 128) === 0))
      coerceInputValues = false;
    if (!(($mask0 & 256) === 0))
      useArrayPolymorphism = false;
    if (!(($mask0 & 512) === 0))
      classDiscriminator = 'type';
    if (!(($mask0 & 1024) === 0))
      allowSpecialFloatingPointValues = false;
    if (!(($mask0 & 2048) === 0))
      useAlternativeNames = true;
    JsonConfiguration.call($this, encodeDefaults, ignoreUnknownKeys, isLenient, allowStructuredMapKeys, prettyPrint, explicitNulls, prettyPrintIndent, coerceInputValues, useArrayPolymorphism, classDiscriminator, allowSpecialFloatingPointValues, useAlternativeNames);
    return $this;
  }
  function JsonConfiguration_init_$Create$(encodeDefaults, ignoreUnknownKeys, isLenient, allowStructuredMapKeys, prettyPrint, explicitNulls, prettyPrintIndent, coerceInputValues, useArrayPolymorphism, classDiscriminator, allowSpecialFloatingPointValues, useAlternativeNames, $mask0, $marker) {
    return JsonConfiguration_init_$Init$(encodeDefaults, ignoreUnknownKeys, isLenient, allowStructuredMapKeys, prettyPrint, explicitNulls, prettyPrintIndent, coerceInputValues, useArrayPolymorphism, classDiscriminator, allowSpecialFloatingPointValues, useAlternativeNames, $mask0, $marker, Object.create(JsonConfiguration.prototype));
  }
  function JsonConfiguration(encodeDefaults, ignoreUnknownKeys, isLenient, allowStructuredMapKeys, prettyPrint, explicitNulls, prettyPrintIndent, coerceInputValues, useArrayPolymorphism, classDiscriminator, allowSpecialFloatingPointValues, useAlternativeNames) {
    this.g18_1 = encodeDefaults;
    this.h18_1 = ignoreUnknownKeys;
    this.i18_1 = isLenient;
    this.j18_1 = allowStructuredMapKeys;
    this.k18_1 = prettyPrint;
    this.l18_1 = explicitNulls;
    this.m18_1 = prettyPrintIndent;
    this.n18_1 = coerceInputValues;
    this.o18_1 = useArrayPolymorphism;
    this.p18_1 = classDiscriminator;
    this.q18_1 = allowSpecialFloatingPointValues;
    this.r18_1 = useAlternativeNames;
  }
  JsonConfiguration.prototype.s18 = function () {
    return this.i18_1;
  };
  JsonConfiguration.prototype.t18 = function () {
    return this.m18_1;
  };
  JsonConfiguration.prototype.toString = function () {
    return 'JsonConfiguration(encodeDefaults=' + this.g18_1 + ', ignoreUnknownKeys=' + this.h18_1 + ', isLenient=' + this.i18_1 + ', ' + ('allowStructuredMapKeys=' + this.j18_1 + ', prettyPrint=' + this.k18_1 + ', explicitNulls=' + this.l18_1 + ', ') + ("prettyPrintIndent='" + this.m18_1 + "', coerceInputValues=" + this.n18_1 + ', useArrayPolymorphism=' + this.o18_1 + ', ') + ("classDiscriminator='" + this.p18_1 + "', allowSpecialFloatingPointValues=" + this.q18_1 + ')');
  };
  JsonConfiguration.$metadata$ = classMeta('JsonConfiguration');
  function JsonDecoder() {
  }
  JsonDecoder.$metadata$ = interfaceMeta('JsonDecoder', [Decoder, CompositeDecoder]);
  function Companion() {
    Companion_instance = this;
  }
  Companion.$metadata$ = objectMeta('Companion');
  var Companion_instance;
  function Companion_getInstance_5() {
    if (Companion_instance == null)
      new Companion();
    return Companion_instance;
  }
  function JsonElement() {
    Companion_getInstance_5();
  }
  JsonElement.$metadata$ = classMeta('JsonElement', undefined, undefined, {0: JsonElementSerializer_getInstance});
  function Companion_0() {
    Companion_instance_0 = this;
  }
  Companion_0.$metadata$ = objectMeta('Companion');
  var Companion_instance_0;
  function Companion_getInstance_6() {
    if (Companion_instance_0 == null)
      new Companion_0();
    return Companion_instance_0;
  }
  function JsonArray(content) {
    Companion_getInstance_6();
    JsonElement.call(this);
    this.w18_1 = content;
  }
  JsonArray.prototype.i = function () {
    return this.w18_1.i();
  };
  JsonArray.prototype.x18 = function (element) {
    return this.w18_1.r(element);
  };
  JsonArray.prototype.r = function (element) {
    if (!(element instanceof JsonElement))
      return false;
    return this.x18(element instanceof JsonElement ? element : THROW_CCE());
  };
  JsonArray.prototype.y18 = function (elements) {
    return this.w18_1.l2(elements);
  };
  JsonArray.prototype.l2 = function (elements) {
    return this.y18(elements);
  };
  JsonArray.prototype.m = function (index) {
    return this.w18_1.m(index);
  };
  JsonArray.prototype.z18 = function (element) {
    return this.w18_1.y(element);
  };
  JsonArray.prototype.y = function (element) {
    if (!(element instanceof JsonElement))
      return -1;
    return this.z18(element instanceof JsonElement ? element : THROW_CCE());
  };
  JsonArray.prototype.p = function () {
    return this.w18_1.p();
  };
  JsonArray.prototype.j = function () {
    return this.w18_1.j();
  };
  JsonArray.prototype.n = function (index) {
    return this.w18_1.n(index);
  };
  JsonArray.prototype.x = function (fromIndex, toIndex) {
    return this.w18_1.x(fromIndex, toIndex);
  };
  JsonArray.prototype.equals = function (other) {
    return equals(this.w18_1, other);
  };
  JsonArray.prototype.hashCode = function () {
    return hashCode(this.w18_1);
  };
  JsonArray.prototype.toString = function () {
    return joinToString$default(this.w18_1, ',', '[', ']', 0, null, null, 56, null);
  };
  JsonArray.$metadata$ = classMeta('JsonArray', [List], undefined, {0: JsonArraySerializer_getInstance}, undefined, JsonElement.prototype);
  function Companion_1() {
    Companion_instance_1 = this;
  }
  Companion_1.$metadata$ = objectMeta('Companion');
  var Companion_instance_1;
  function Companion_getInstance_7() {
    if (Companion_instance_1 == null)
      new Companion_1();
    return Companion_instance_1;
  }
  function JsonObject$toString$lambda(_name_for_destructuring_parameter_0__wldtmu) {
    var tmp$ret$0;
    // Inline function 'kotlin.collections.component1' call
    tmp$ret$0 = _name_for_destructuring_parameter_0__wldtmu.k1();
    var k = tmp$ret$0;
    var tmp$ret$1;
    // Inline function 'kotlin.collections.component2' call
    tmp$ret$1 = _name_for_destructuring_parameter_0__wldtmu.l1();
    var v = tmp$ret$1;
    var tmp$ret$3;
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.contracts.contract' call
    var tmp$ret$2;
    // Inline function 'kotlin.apply' call
    var tmp0_apply = StringBuilder_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlinx.serialization.json.JsonObject.toString.<anonymous>.<anonymous>' call
    printQuoted(tmp0_apply, k);
    tmp0_apply.g2(_Char___init__impl__6a9atx(58));
    tmp0_apply.fc(v);
    tmp$ret$2 = tmp0_apply;
    tmp$ret$3 = tmp$ret$2.toString();
    return tmp$ret$3;
  }
  function JsonObject(content) {
    Companion_getInstance_7();
    JsonElement.call(this);
    this.a19_1 = content;
  }
  JsonObject.prototype.j1 = function () {
    return this.a19_1.j1();
  };
  JsonObject.prototype.v3 = function () {
    return this.a19_1.v3();
  };
  JsonObject.prototype.i = function () {
    return this.a19_1.i();
  };
  JsonObject.prototype.b19 = function (key) {
    return this.a19_1.r3(key);
  };
  JsonObject.prototype.r3 = function (key) {
    if (!(!(key == null) ? typeof key === 'string' : false))
      return false;
    return this.b19((!(key == null) ? typeof key === 'string' : false) ? key : THROW_CCE());
  };
  JsonObject.prototype.c19 = function (key) {
    return this.a19_1.q(key);
  };
  JsonObject.prototype.q = function (key) {
    if (!(!(key == null) ? typeof key === 'string' : false))
      return null;
    return this.c19((!(key == null) ? typeof key === 'string' : false) ? key : THROW_CCE());
  };
  JsonObject.prototype.p = function () {
    return this.a19_1.p();
  };
  JsonObject.prototype.equals = function (other) {
    return equals(this.a19_1, other);
  };
  JsonObject.prototype.hashCode = function () {
    return hashCode(this.a19_1);
  };
  JsonObject.prototype.toString = function () {
    var tmp = this.a19_1.j1();
    return joinToString$default(tmp, ',', '{', '}', 0, null, JsonObject$toString$lambda, 24, null);
  };
  JsonObject.$metadata$ = classMeta('JsonObject', [Map], undefined, {0: JsonObjectSerializer_getInstance}, undefined, JsonElement.prototype);
  function Companion_2() {
    Companion_instance_2 = this;
  }
  Companion_2.$metadata$ = objectMeta('Companion');
  var Companion_instance_2;
  function Companion_getInstance_8() {
    if (Companion_instance_2 == null)
      new Companion_2();
    return Companion_instance_2;
  }
  function JsonPrimitive() {
    Companion_getInstance_8();
    JsonElement.call(this);
  }
  JsonPrimitive.prototype.toString = function () {
    return this.d19();
  };
  JsonPrimitive.$metadata$ = classMeta('JsonPrimitive', undefined, undefined, {0: JsonPrimitiveSerializer_getInstance}, undefined, JsonElement.prototype);
  function JsonLiteral(body, isString) {
    JsonPrimitive.call(this);
    this.e19_1 = isString;
    this.f19_1 = toString(body);
  }
  JsonLiteral.prototype.d19 = function () {
    return this.f19_1;
  };
  JsonLiteral.prototype.toString = function () {
    var tmp;
    if (this.e19_1) {
      var tmp$ret$1;
      // Inline function 'kotlin.text.buildString' call
      // Inline function 'kotlin.contracts.contract' call
      var tmp$ret$0;
      // Inline function 'kotlin.apply' call
      var tmp0_apply = StringBuilder_init_$Create$();
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.serialization.json.JsonLiteral.toString.<anonymous>' call
      printQuoted(tmp0_apply, this.f19_1);
      tmp$ret$0 = tmp0_apply;
      tmp$ret$1 = tmp$ret$0.toString();
      tmp = tmp$ret$1;
    } else {
      tmp = this.f19_1;
    }
    return tmp;
  };
  JsonLiteral.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (other == null ? true : !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (other instanceof JsonLiteral)
      other;
    else
      THROW_CCE();
    if (!(this.e19_1 === other.e19_1))
      return false;
    if (!(this.f19_1 === other.f19_1))
      return false;
    return true;
  };
  JsonLiteral.prototype.hashCode = function () {
    var result = this.e19_1 | 0;
    result = imul(31, result) + getStringHashCode(this.f19_1) | 0;
    return result;
  };
  JsonLiteral.$metadata$ = classMeta('JsonLiteral', undefined, undefined, undefined, undefined, JsonPrimitive.prototype);
  function JsonNull$$cachedSerializer$delegate$_anonymous__7w2ks1() {
    return JsonNullSerializer_getInstance();
  }
  function JsonNull() {
    JsonNull_instance = this;
    JsonPrimitive.call(this);
    this.g19_1 = 'null';
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.h19_1 = lazy(tmp_0, JsonNull$$cachedSerializer$delegate$_anonymous__7w2ks1);
  }
  JsonNull.prototype.d19 = function () {
    return this.g19_1;
  };
  JsonNull.prototype.i19 = function () {
    return this.h19_1.l1();
  };
  JsonNull.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  JsonNull.$metadata$ = objectMeta('JsonNull', [SerializerFactory], undefined, {0: JsonNullSerializer_getInstance}, undefined, JsonPrimitive.prototype);
  var JsonNull_instance;
  function JsonNull_getInstance() {
    if (JsonNull_instance == null)
      new JsonNull();
    return JsonNull_instance;
  }
  function JsonPrimitive_0(value) {
    if (value == null)
      return JsonNull_getInstance();
    return new JsonLiteral(value, true);
  }
  function get_booleanOrNull(_this__u8e3s4) {
    return toBooleanStrictOrNull(_this__u8e3s4.d19());
  }
  function get_int(_this__u8e3s4) {
    return toInt(_this__u8e3s4.d19());
  }
  function get_long(_this__u8e3s4) {
    return toLong(_this__u8e3s4.d19());
  }
  function get_float(_this__u8e3s4) {
    var tmp$ret$2;
    // Inline function 'kotlin.text.toFloat' call
    var tmp0_toFloat = _this__u8e3s4.d19();
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp0_unsafeCast = toDouble(tmp0_toFloat);
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_unsafeCast;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  }
  function get_double(_this__u8e3s4) {
    return toDouble(_this__u8e3s4.d19());
  }
  function get_contentOrNull(_this__u8e3s4) {
    var tmp;
    if (_this__u8e3s4 instanceof JsonNull) {
      tmp = null;
    } else {
      tmp = _this__u8e3s4.d19();
    }
    return tmp;
  }
  function get_longOrNull(_this__u8e3s4) {
    return toLongOrNull(_this__u8e3s4.d19());
  }
  function get_doubleOrNull(_this__u8e3s4) {
    return toDoubleOrNull(_this__u8e3s4.d19());
  }
  function get_jsonPrimitive(_this__u8e3s4) {
    var tmp0_elvis_lhs = _this__u8e3s4 instanceof JsonPrimitive ? _this__u8e3s4 : null;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      error(_this__u8e3s4, 'JsonPrimitive');
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function error(_this__u8e3s4, element) {
    throw IllegalArgumentException_init_$Create$('Element ' + getKClassFromExpression(_this__u8e3s4) + ' is not a ' + element);
  }
  function JsonElementSerializer$descriptor$lambda($this$buildSerialDescriptor) {
    var tmp = defer(JsonElementSerializer$descriptor$lambda$lambda);
    $this$buildSerialDescriptor.mq('JsonPrimitive', tmp, null, false, 12, null);
    var tmp_0 = defer(JsonElementSerializer$descriptor$lambda$lambda_0);
    $this$buildSerialDescriptor.mq('JsonNull', tmp_0, null, false, 12, null);
    var tmp_1 = defer(JsonElementSerializer$descriptor$lambda$lambda_1);
    $this$buildSerialDescriptor.mq('JsonLiteral', tmp_1, null, false, 12, null);
    var tmp_2 = defer(JsonElementSerializer$descriptor$lambda$lambda_2);
    $this$buildSerialDescriptor.mq('JsonObject', tmp_2, null, false, 12, null);
    var tmp_3 = defer(JsonElementSerializer$descriptor$lambda$lambda_3);
    $this$buildSerialDescriptor.mq('JsonArray', tmp_3, null, false, 12, null);
    return Unit_getInstance();
  }
  function JsonElementSerializer$descriptor$lambda$lambda() {
    return JsonPrimitiveSerializer_getInstance().j19_1;
  }
  function JsonElementSerializer$descriptor$lambda$lambda_0() {
    return JsonNullSerializer_getInstance().k19_1;
  }
  function JsonElementSerializer$descriptor$lambda$lambda_1() {
    return JsonLiteralSerializer_getInstance().l19_1;
  }
  function JsonElementSerializer$descriptor$lambda$lambda_2() {
    return JsonObjectSerializer_getInstance().m19_1;
  }
  function JsonElementSerializer$descriptor$lambda$lambda_3() {
    return JsonArraySerializer_getInstance().n19_1;
  }
  function JsonElementSerializer() {
    JsonElementSerializer_instance = this;
    var tmp = this;
    var tmp_0 = SEALED_getInstance();
    tmp.o19_1 = buildSerialDescriptor$default('kotlinx.serialization.json.JsonElement', tmp_0, [], JsonElementSerializer$descriptor$lambda, 4, null);
  }
  JsonElementSerializer.prototype.bq = function () {
    return this.o19_1;
  };
  JsonElementSerializer.prototype.p19 = function (encoder, value) {
    verify(encoder);
    var tmp0_subject = value;
    if (tmp0_subject instanceof JsonPrimitive) {
      encoder.xu(JsonPrimitiveSerializer_getInstance(), value);
    } else {
      if (tmp0_subject instanceof JsonObject) {
        encoder.xu(JsonObjectSerializer_getInstance(), value);
      } else {
        if (tmp0_subject instanceof JsonArray) {
          encoder.xu(JsonArraySerializer_getInstance(), value);
        }
      }
    }
  };
  JsonElementSerializer.prototype.cq = function (encoder, value) {
    return this.p19(encoder, value instanceof JsonElement ? value : THROW_CCE());
  };
  JsonElementSerializer.prototype.dq = function (decoder) {
    var input = asJsonDecoder(decoder);
    return input.v18();
  };
  JsonElementSerializer.$metadata$ = objectMeta('JsonElementSerializer', [KSerializer]);
  var JsonElementSerializer_instance;
  function JsonElementSerializer_getInstance() {
    if (JsonElementSerializer_instance == null)
      new JsonElementSerializer();
    return JsonElementSerializer_instance;
  }
  function JsonArrayDescriptor() {
    JsonArrayDescriptor_instance = this;
    this.q19_1 = ListSerializer(JsonElementSerializer_getInstance()).bq();
    this.r19_1 = 'kotlinx.serialization.json.JsonArray';
  }
  JsonArrayDescriptor.prototype.mr = function () {
    return this.q19_1.mr();
  };
  JsonArrayDescriptor.prototype.nr = function () {
    return this.q19_1.nr();
  };
  JsonArrayDescriptor.prototype.or = function () {
    return this.q19_1.or();
  };
  JsonArrayDescriptor.prototype.ir = function () {
    return this.q19_1.ir();
  };
  JsonArrayDescriptor.prototype.pr = function () {
    return this.q19_1.pr();
  };
  JsonArrayDescriptor.prototype.qr = function (index) {
    return this.q19_1.qr(index);
  };
  JsonArrayDescriptor.prototype.rr = function (index) {
    return this.q19_1.rr(index);
  };
  JsonArrayDescriptor.prototype.sr = function (name) {
    return this.q19_1.sr(name);
  };
  JsonArrayDescriptor.prototype.tr = function (index) {
    return this.q19_1.tr(index);
  };
  JsonArrayDescriptor.prototype.ur = function (index) {
    return this.q19_1.ur(index);
  };
  JsonArrayDescriptor.prototype.yq = function () {
    return this.r19_1;
  };
  JsonArrayDescriptor.$metadata$ = objectMeta('JsonArrayDescriptor', [SerialDescriptor]);
  var JsonArrayDescriptor_instance;
  function JsonArrayDescriptor_getInstance() {
    if (JsonArrayDescriptor_instance == null)
      new JsonArrayDescriptor();
    return JsonArrayDescriptor_instance;
  }
  function JsonArraySerializer() {
    JsonArraySerializer_instance = this;
    this.n19_1 = JsonArrayDescriptor_getInstance();
  }
  JsonArraySerializer.prototype.bq = function () {
    return this.n19_1;
  };
  JsonArraySerializer.prototype.s19 = function (encoder, value) {
    verify(encoder);
    ListSerializer(JsonElementSerializer_getInstance()).cq(encoder, value);
  };
  JsonArraySerializer.prototype.cq = function (encoder, value) {
    return this.s19(encoder, value instanceof JsonArray ? value : THROW_CCE());
  };
  JsonArraySerializer.prototype.dq = function (decoder) {
    verify_0(decoder);
    return new JsonArray(ListSerializer(JsonElementSerializer_getInstance()).dq(decoder));
  };
  JsonArraySerializer.$metadata$ = objectMeta('JsonArraySerializer', [KSerializer]);
  var JsonArraySerializer_instance;
  function JsonArraySerializer_getInstance() {
    if (JsonArraySerializer_instance == null)
      new JsonArraySerializer();
    return JsonArraySerializer_instance;
  }
  function JsonObjectDescriptor() {
    JsonObjectDescriptor_instance = this;
    this.t19_1 = MapSerializer(serializer(StringCompanionObject_getInstance()), JsonElementSerializer_getInstance()).bq();
    this.u19_1 = 'kotlinx.serialization.json.JsonObject';
  }
  JsonObjectDescriptor.prototype.mr = function () {
    return this.t19_1.mr();
  };
  JsonObjectDescriptor.prototype.nr = function () {
    return this.t19_1.nr();
  };
  JsonObjectDescriptor.prototype.or = function () {
    return this.t19_1.or();
  };
  JsonObjectDescriptor.prototype.ir = function () {
    return this.t19_1.ir();
  };
  JsonObjectDescriptor.prototype.pr = function () {
    return this.t19_1.pr();
  };
  JsonObjectDescriptor.prototype.qr = function (index) {
    return this.t19_1.qr(index);
  };
  JsonObjectDescriptor.prototype.rr = function (index) {
    return this.t19_1.rr(index);
  };
  JsonObjectDescriptor.prototype.sr = function (name) {
    return this.t19_1.sr(name);
  };
  JsonObjectDescriptor.prototype.tr = function (index) {
    return this.t19_1.tr(index);
  };
  JsonObjectDescriptor.prototype.ur = function (index) {
    return this.t19_1.ur(index);
  };
  JsonObjectDescriptor.prototype.yq = function () {
    return this.u19_1;
  };
  JsonObjectDescriptor.$metadata$ = objectMeta('JsonObjectDescriptor', [SerialDescriptor]);
  var JsonObjectDescriptor_instance;
  function JsonObjectDescriptor_getInstance() {
    if (JsonObjectDescriptor_instance == null)
      new JsonObjectDescriptor();
    return JsonObjectDescriptor_instance;
  }
  function JsonObjectSerializer() {
    JsonObjectSerializer_instance = this;
    this.m19_1 = JsonObjectDescriptor_getInstance();
  }
  JsonObjectSerializer.prototype.bq = function () {
    return this.m19_1;
  };
  JsonObjectSerializer.prototype.v19 = function (encoder, value) {
    verify(encoder);
    MapSerializer(serializer(StringCompanionObject_getInstance()), JsonElementSerializer_getInstance()).cq(encoder, value);
  };
  JsonObjectSerializer.prototype.cq = function (encoder, value) {
    return this.v19(encoder, value instanceof JsonObject ? value : THROW_CCE());
  };
  JsonObjectSerializer.prototype.dq = function (decoder) {
    verify_0(decoder);
    return new JsonObject(MapSerializer(serializer(StringCompanionObject_getInstance()), JsonElementSerializer_getInstance()).dq(decoder));
  };
  JsonObjectSerializer.$metadata$ = objectMeta('JsonObjectSerializer', [KSerializer]);
  var JsonObjectSerializer_instance;
  function JsonObjectSerializer_getInstance() {
    if (JsonObjectSerializer_instance == null)
      new JsonObjectSerializer();
    return JsonObjectSerializer_instance;
  }
  function JsonPrimitiveSerializer() {
    JsonPrimitiveSerializer_instance = this;
    var tmp = this;
    var tmp_0 = STRING_getInstance();
    tmp.j19_1 = buildSerialDescriptor$default('kotlinx.serialization.json.JsonPrimitive', tmp_0, [], null, 12, null);
  }
  JsonPrimitiveSerializer.prototype.bq = function () {
    return this.j19_1;
  };
  JsonPrimitiveSerializer.prototype.w19 = function (encoder, value) {
    verify(encoder);
    var tmp;
    if (value instanceof JsonNull) {
      encoder.xu(JsonNullSerializer_getInstance(), JsonNull_getInstance());
      tmp = Unit_getInstance();
    } else {
      var tmp_0 = JsonLiteralSerializer_getInstance();
      encoder.xu(tmp_0, value instanceof JsonLiteral ? value : THROW_CCE());
      tmp = Unit_getInstance();
    }
    return tmp;
  };
  JsonPrimitiveSerializer.prototype.cq = function (encoder, value) {
    return this.w19(encoder, value instanceof JsonPrimitive ? value : THROW_CCE());
  };
  JsonPrimitiveSerializer.prototype.dq = function (decoder) {
    var result = asJsonDecoder(decoder).v18();
    if (!(result instanceof JsonPrimitive))
      throw JsonDecodingException_0(-1, 'Unexpected JSON element, expected JsonPrimitive, had ' + getKClassFromExpression(result), toString(result));
    return result;
  };
  JsonPrimitiveSerializer.$metadata$ = objectMeta('JsonPrimitiveSerializer', [KSerializer]);
  var JsonPrimitiveSerializer_instance;
  function JsonPrimitiveSerializer_getInstance() {
    if (JsonPrimitiveSerializer_instance == null)
      new JsonPrimitiveSerializer();
    return JsonPrimitiveSerializer_instance;
  }
  function JsonNullSerializer() {
    JsonNullSerializer_instance = this;
    var tmp = this;
    var tmp_0 = ENUM_getInstance();
    tmp.k19_1 = buildSerialDescriptor$default('kotlinx.serialization.json.JsonNull', tmp_0, [], null, 12, null);
  }
  JsonNullSerializer.prototype.bq = function () {
    return this.k19_1;
  };
  JsonNullSerializer.prototype.x19 = function (encoder, value) {
    verify(encoder);
    encoder.bu();
  };
  JsonNullSerializer.prototype.cq = function (encoder, value) {
    return this.x19(encoder, value instanceof JsonNull ? value : THROW_CCE());
  };
  JsonNullSerializer.prototype.dq = function (decoder) {
    verify_0(decoder);
    if (decoder.ts()) {
      throw new JsonDecodingException("Expected 'null' literal");
    }
    decoder.us();
    return JsonNull_getInstance();
  };
  JsonNullSerializer.$metadata$ = objectMeta('JsonNullSerializer', [KSerializer]);
  var JsonNullSerializer_instance;
  function JsonNullSerializer_getInstance() {
    if (JsonNullSerializer_instance == null)
      new JsonNullSerializer();
    return JsonNullSerializer_instance;
  }
  function defer(deferred) {
    return new defer$1(deferred);
  }
  function JsonLiteralSerializer() {
    JsonLiteralSerializer_instance = this;
    this.l19_1 = PrimitiveSerialDescriptor('kotlinx.serialization.json.JsonLiteral', STRING_getInstance());
  }
  JsonLiteralSerializer.prototype.bq = function () {
    return this.l19_1;
  };
  JsonLiteralSerializer.prototype.y19 = function (encoder, value) {
    verify(encoder);
    if (value.e19_1) {
      return encoder.ku(value.f19_1);
    }
    var tmp0_safe_receiver = get_longOrNull(value);
    if (tmp0_safe_receiver == null)
      null;
    else {
      var tmp$ret$0;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return encoder.gu(tmp0_safe_receiver);
    }
    var tmp1_safe_receiver = toULongOrNull(value.f19_1);
    var tmp = tmp1_safe_receiver;
    if ((tmp == null ? null : new ULong(tmp)) == null)
      null;
    else {
      var tmp$ret$2;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      var tmp_0 = encoder.mu(serializer_0(Companion_getInstance()).bq());
      var tmp$ret$1;
      // Inline function 'kotlin.ULong.toLong' call
      tmp$ret$1 = _ULong___get_data__impl__fggpzb(tmp1_safe_receiver);
      tmp_0.gu(tmp$ret$1);
      return Unit_getInstance();
    }
    var tmp2_safe_receiver = get_doubleOrNull(value);
    if (tmp2_safe_receiver == null)
      null;
    else {
      var tmp$ret$3;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return encoder.iu(tmp2_safe_receiver);
    }
    var tmp3_safe_receiver = get_booleanOrNull(value);
    if (tmp3_safe_receiver == null)
      null;
    else {
      var tmp$ret$4;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return encoder.cu(tmp3_safe_receiver);
    }
    encoder.ku(value.f19_1);
  };
  JsonLiteralSerializer.prototype.cq = function (encoder, value) {
    return this.y19(encoder, value instanceof JsonLiteral ? value : THROW_CCE());
  };
  JsonLiteralSerializer.prototype.dq = function (decoder) {
    var result = asJsonDecoder(decoder).v18();
    if (!(result instanceof JsonLiteral))
      throw JsonDecodingException_0(-1, 'Unexpected JSON element, expected JsonLiteral, had ' + getKClassFromExpression(result), toString(result));
    return result;
  };
  JsonLiteralSerializer.$metadata$ = objectMeta('JsonLiteralSerializer', [KSerializer]);
  var JsonLiteralSerializer_instance;
  function JsonLiteralSerializer_getInstance() {
    if (JsonLiteralSerializer_instance == null)
      new JsonLiteralSerializer();
    return JsonLiteralSerializer_instance;
  }
  function verify(encoder) {
    asJsonEncoder(encoder);
  }
  function asJsonDecoder(_this__u8e3s4) {
    var tmp0_elvis_lhs = isInterface(_this__u8e3s4, JsonDecoder) ? _this__u8e3s4 : null;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw IllegalStateException_init_$Create$('This serializer can be used only with Json format.' + ('Expected Decoder to be JsonDecoder, got ' + getKClassFromExpression(_this__u8e3s4)));
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function verify_0(decoder) {
    asJsonDecoder(decoder);
  }
  function asJsonEncoder(_this__u8e3s4) {
    var tmp0_elvis_lhs = isInterface(_this__u8e3s4, JsonEncoder) ? _this__u8e3s4 : null;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw IllegalStateException_init_$Create$('This serializer can be used only with Json format.' + ('Expected Encoder to be JsonEncoder, got ' + getKClassFromExpression(_this__u8e3s4)));
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function _get_original__l7ku1m($this) {
    var tmp$ret$0;
    // Inline function 'kotlin.getValue' call
    var tmp0_getValue = original$factory();
    tmp$ret$0 = $this.z19_1.l1();
    return tmp$ret$0;
  }
  function defer$1($deferred) {
    this.z19_1 = lazy_0($deferred);
  }
  defer$1.prototype.yq = function () {
    return _get_original__l7ku1m(this).yq();
  };
  defer$1.prototype.pr = function () {
    return _get_original__l7ku1m(this).pr();
  };
  defer$1.prototype.nr = function () {
    return _get_original__l7ku1m(this).nr();
  };
  defer$1.prototype.tr = function (index) {
    return _get_original__l7ku1m(this).tr(index);
  };
  defer$1.prototype.sr = function (name) {
    return _get_original__l7ku1m(this).sr(name);
  };
  defer$1.prototype.qr = function (index) {
    return _get_original__l7ku1m(this).qr(index);
  };
  defer$1.prototype.rr = function (index) {
    return _get_original__l7ku1m(this).rr(index);
  };
  defer$1.prototype.ur = function (index) {
    return _get_original__l7ku1m(this).ur(index);
  };
  defer$1.$metadata$ = classMeta(undefined, [SerialDescriptor]);
  function original$factory() {
    return getPropertyCallableRef('original', 1, KProperty1, function (receiver) {
      return _get_original__l7ku1m(receiver);
    }, null);
  }
  function JsonEncoder() {
  }
  JsonEncoder.$metadata$ = interfaceMeta('JsonEncoder', [Encoder, CompositeEncoder]);
  function Composer(writer) {
    this.a1a_1 = writer;
    this.b1a_1 = true;
  }
  Composer.prototype.c1a = function () {
    this.b1a_1 = true;
  };
  Composer.prototype.d1a = function () {
    return Unit_getInstance();
  };
  Composer.prototype.e1a = function () {
    this.b1a_1 = false;
  };
  Composer.prototype.f1a = function () {
    return Unit_getInstance();
  };
  Composer.prototype.g1a = function (v) {
    return this.a1a_1.h1a(v);
  };
  Composer.prototype.i1a = function (v) {
    return this.a1a_1.j1a(v);
  };
  Composer.prototype.k1a = function (v) {
    return this.a1a_1.j1a(v.toString());
  };
  Composer.prototype.l1a = function (v) {
    return this.a1a_1.j1a(v.toString());
  };
  Composer.prototype.m1a = function (v) {
    return this.a1a_1.n1a(toLong_0(v));
  };
  Composer.prototype.o1a = function (v) {
    return this.a1a_1.n1a(toLong_0(v));
  };
  Composer.prototype.p1a = function (v) {
    return this.a1a_1.n1a(toLong_0(v));
  };
  Composer.prototype.q1a = function (v) {
    return this.a1a_1.n1a(v);
  };
  Composer.prototype.r1a = function (v) {
    return this.a1a_1.j1a(v.toString());
  };
  Composer.prototype.s1a = function (value) {
    return this.a1a_1.t1a(value);
  };
  Composer.$metadata$ = classMeta('Composer');
  function Composer_0(sb, json) {
    return json.m17_1.k18_1 ? new ComposerWithPrettyPrint(sb, json) : new Composer(sb);
  }
  function ComposerForUnsignedNumbers(writer, forceQuoting) {
    Composer.call(this, writer);
    this.w1a_1 = forceQuoting;
  }
  ComposerForUnsignedNumbers.prototype.p1a = function (v) {
    if (this.w1a_1) {
      var tmp$ret$0;
      // Inline function 'kotlin.toUInt' call
      tmp$ret$0 = _UInt___init__impl__l7qpdl(v);
      this.s1a(UInt__toString_impl_dbgl21(tmp$ret$0));
    } else {
      var tmp$ret$1;
      // Inline function 'kotlin.toUInt' call
      tmp$ret$1 = _UInt___init__impl__l7qpdl(v);
      this.i1a(UInt__toString_impl_dbgl21(tmp$ret$1));
    }
  };
  ComposerForUnsignedNumbers.prototype.q1a = function (v) {
    if (this.w1a_1) {
      var tmp$ret$0;
      // Inline function 'kotlin.toULong' call
      tmp$ret$0 = _ULong___init__impl__c78o9k(v);
      this.s1a(ULong__toString_impl_f9au7k(tmp$ret$0));
    } else {
      var tmp$ret$1;
      // Inline function 'kotlin.toULong' call
      tmp$ret$1 = _ULong___init__impl__c78o9k(v);
      this.i1a(ULong__toString_impl_f9au7k(tmp$ret$1));
    }
  };
  ComposerForUnsignedNumbers.prototype.m1a = function (v) {
    if (this.w1a_1) {
      var tmp$ret$0;
      // Inline function 'kotlin.toUByte' call
      tmp$ret$0 = _UByte___init__impl__g9hnc4(v);
      this.s1a(UByte__toString_impl_v72jg(tmp$ret$0));
    } else {
      var tmp$ret$1;
      // Inline function 'kotlin.toUByte' call
      tmp$ret$1 = _UByte___init__impl__g9hnc4(v);
      this.i1a(UByte__toString_impl_v72jg(tmp$ret$1));
    }
  };
  ComposerForUnsignedNumbers.prototype.o1a = function (v) {
    if (this.w1a_1) {
      var tmp$ret$0;
      // Inline function 'kotlin.toUShort' call
      tmp$ret$0 = _UShort___init__impl__jigrne(v);
      this.s1a(UShort__toString_impl_edaoee(tmp$ret$0));
    } else {
      var tmp$ret$1;
      // Inline function 'kotlin.toUShort' call
      tmp$ret$1 = _UShort___init__impl__jigrne(v);
      this.i1a(UShort__toString_impl_edaoee(tmp$ret$1));
    }
  };
  ComposerForUnsignedNumbers.$metadata$ = classMeta('ComposerForUnsignedNumbers', undefined, undefined, undefined, undefined, Composer.prototype);
  function ComposerWithPrettyPrint(writer, json) {
    Composer.call(this, writer);
    this.z1a_1 = json;
    this.a1b_1 = 0;
  }
  ComposerWithPrettyPrint.prototype.c1a = function () {
    this.b1a_1 = true;
    var tmp0_this = this;
    var tmp1 = tmp0_this.a1b_1;
    tmp0_this.a1b_1 = tmp1 + 1 | 0;
  };
  ComposerWithPrettyPrint.prototype.d1a = function () {
    var tmp0_this = this;
    var tmp1 = tmp0_this.a1b_1;
    tmp0_this.a1b_1 = tmp1 - 1 | 0;
  };
  ComposerWithPrettyPrint.prototype.e1a = function () {
    this.b1a_1 = false;
    this.i1a('\n');
    // Inline function 'kotlin.repeat' call
    var tmp0_repeat = this.a1b_1;
    // Inline function 'kotlin.contracts.contract' call
    var inductionVariable = 0;
    if (inductionVariable < tmp0_repeat)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        // Inline function 'kotlinx.serialization.json.internal.ComposerWithPrettyPrint.nextItem.<anonymous>' call
        this.i1a(this.z1a_1.m17_1.m18_1);
      }
       while (inductionVariable < tmp0_repeat);
  };
  ComposerWithPrettyPrint.prototype.f1a = function () {
    this.g1a(_Char___init__impl__6a9atx(32));
  };
  ComposerWithPrettyPrint.$metadata$ = classMeta('ComposerWithPrettyPrint', undefined, undefined, undefined, undefined, Composer.prototype);
  function readIfAbsent($this, descriptor, index) {
    $this.c1b_1 = !descriptor.ur(index) ? descriptor.rr(index).ir() : false;
    return $this.c1b_1;
  }
  function JsonElementMarker$readIfAbsent$ref($boundThis) {
    var l = function (p0, p1) {
      return readIfAbsent($boundThis, p0, p1);
    };
    l.callableName = 'readIfAbsent';
    return l;
  }
  function JsonElementMarker(descriptor) {
    var tmp = this;
    tmp.b1b_1 = new ElementMarker(descriptor, JsonElementMarker$readIfAbsent$ref(this));
    this.c1b_1 = false;
  }
  JsonElementMarker.prototype.dz = function (index) {
    this.b1b_1.dz(index);
  };
  JsonElementMarker.prototype.ez = function () {
    return this.b1b_1.ez();
  };
  JsonElementMarker.$metadata$ = classMeta('JsonElementMarker');
  function throwInvalidFloatingPointDecoded(_this__u8e3s4, result) {
    var tmp = 'Unexpected special floating-point value ' + toString(result) + '. By default, ' + 'non-finite floating point values are prohibited because they do not conform JSON specification';
    _this__u8e3s4.d1b(tmp, 0, get_specialFlowingValuesHint(), 2, null);
  }
  function JsonEncodingException(message) {
    JsonException.call(this, message);
    captureStack(this, JsonEncodingException);
  }
  JsonEncodingException.$metadata$ = classMeta('JsonEncodingException', undefined, undefined, undefined, undefined, JsonException.prototype);
  function InvalidKeyKindException(keyDescriptor) {
    return new JsonEncodingException("Value of type '" + keyDescriptor.yq() + "' can't be used in JSON as a key in the map. " + ("It should have either primitive or enum kind, but its kind is '" + keyDescriptor.pr() + "'.\n") + get_allowStructuredMapKeysHint());
  }
  function JsonDecodingException(message) {
    JsonException.call(this, message);
    captureStack(this, JsonDecodingException);
  }
  JsonDecodingException.$metadata$ = classMeta('JsonDecodingException', undefined, undefined, undefined, undefined, JsonException.prototype);
  function JsonDecodingException_0(offset, message, input) {
    return JsonDecodingException_1(offset, message + '\nJSON input: ' + minify(input, offset));
  }
  function InvalidFloatingPointDecoded(value, key, output) {
    return JsonDecodingException_1(-1, unexpectedFpErrorMessage(value, key, output));
  }
  function JsonDecodingException_1(offset, message) {
    return new JsonDecodingException(offset >= 0 ? 'Unexpected JSON token at offset ' + offset + ': ' + message : message);
  }
  function UnknownKeyException(key, input) {
    var tmp = "Encountered unknown key '" + key + "'.\n" + (get_ignoreUnknownKeysHint() + '\n');
    return JsonDecodingException_1(-1, tmp + ('Current input: ' + minify$default(input, 0, 1, null)));
  }
  function InvalidFloatingPointEncoded(value, output) {
    var tmp = 'Unexpected special floating-point value ' + toString(value) + '. By default, ' + 'non-finite floating point values are prohibited because they do not conform JSON specification. ' + (get_specialFlowingValuesHint() + '\n');
    return new JsonEncodingException(tmp + ('Current output: ' + minify$default(output, 0, 1, null)));
  }
  function JsonException(message) {
    SerializationException_init_$Init$(message, this);
    captureStack(this, JsonException);
  }
  JsonException.$metadata$ = classMeta('JsonException', undefined, undefined, undefined, undefined, SerializationException.prototype);
  function unexpectedFpErrorMessage(value, key, output) {
    var tmp = 'Unexpected special floating-point value ' + toString(value) + ' with key ' + key + '. By default, ' + 'non-finite floating point values are prohibited because they do not conform JSON specification. ' + (get_specialFlowingValuesHint() + '\n');
    return tmp + ('Current output: ' + minify$default(output, 0, 1, null));
  }
  function minify(_this__u8e3s4, offset) {
    if (charSequenceLength(_this__u8e3s4) < 200)
      return _this__u8e3s4;
    if (offset === -1) {
      var start = charSequenceLength(_this__u8e3s4) - 60 | 0;
      if (start <= 0)
        return _this__u8e3s4;
      var tmp$ret$0;
      // Inline function 'kotlin.text.substring' call
      var tmp0_substring = charSequenceLength(_this__u8e3s4);
      tmp$ret$0 = toString(charSequenceSubSequence(_this__u8e3s4, start, tmp0_substring));
      return '.....' + tmp$ret$0;
    }
    var start_0 = offset - 30 | 0;
    var end = offset + 30 | 0;
    var prefix = start_0 <= 0 ? '' : '.....';
    var suffix = end >= charSequenceLength(_this__u8e3s4) ? '' : '.....';
    var tmp$ret$1;
    // Inline function 'kotlin.text.substring' call
    var tmp1_substring = coerceAtLeast(start_0, 0);
    var tmp2_substring = coerceAtMost(end, charSequenceLength(_this__u8e3s4));
    tmp$ret$1 = toString(charSequenceSubSequence(_this__u8e3s4, tmp1_substring, tmp2_substring));
    return prefix + tmp$ret$1 + suffix;
  }
  function minify$default(_this__u8e3s4, offset, $mask0, $handler) {
    if (!(($mask0 & 1) === 0))
      offset = -1;
    return minify(_this__u8e3s4, offset);
  }
  function get_JsonAlternativeNamesKey() {
    init_properties_JsonNamesMap_kt_1j2xk2();
    return JsonAlternativeNamesKey;
  }
  var JsonAlternativeNamesKey;
  function tryCoerceValue(_this__u8e3s4, elementDescriptor, peekNull, peekString, onEnumCoercing) {
    init_properties_JsonNamesMap_kt_1j2xk2();
    if (!elementDescriptor.ir() ? peekNull() : false)
      return true;
    if (equals(elementDescriptor.pr(), ENUM_getInstance())) {
      var tmp0_elvis_lhs = peekString();
      var tmp;
      if (tmp0_elvis_lhs == null) {
        return false;
      } else {
        tmp = tmp0_elvis_lhs;
      }
      var enumValue = tmp;
      var enumIndex = getJsonNameIndex(elementDescriptor, _this__u8e3s4, enumValue);
      Companion_getInstance_0();
      if (enumIndex === -3) {
        onEnumCoercing();
        return true;
      }
    }
    return false;
  }
  function getJsonNameIndex(_this__u8e3s4, json, name) {
    init_properties_JsonNamesMap_kt_1j2xk2();
    var index = _this__u8e3s4.sr(name);
    Companion_getInstance_0();
    if (!(index === -3))
      return index;
    if (!json.m17_1.r18_1)
      return index;
    var tmp = get_schemaCache(json);
    var tmp_0 = get_JsonAlternativeNamesKey();
    var alternativeNamesMap = tmp.f1b(_this__u8e3s4, tmp_0, buildAlternativeNamesMap$ref(_this__u8e3s4));
    var tmp0_elvis_lhs = alternativeNamesMap.q(name);
    var tmp_1;
    if (tmp0_elvis_lhs == null) {
      Companion_getInstance_0();
      tmp_1 = -3;
    } else {
      tmp_1 = tmp0_elvis_lhs;
    }
    return tmp_1;
  }
  function getJsonNameIndexOrThrow(_this__u8e3s4, json, name, suffix) {
    init_properties_JsonNamesMap_kt_1j2xk2();
    var index = getJsonNameIndex(_this__u8e3s4, json, name);
    Companion_getInstance_0();
    if (index === -3)
      throw SerializationException_init_$Create$(_this__u8e3s4.yq() + " does not contain element with name '" + name + "'" + suffix);
    return index;
  }
  function getJsonNameIndexOrThrow$default(_this__u8e3s4, json, name, suffix, $mask0, $handler) {
    if (!(($mask0 & 4) === 0))
      suffix = '';
    return getJsonNameIndexOrThrow(_this__u8e3s4, json, name, suffix);
  }
  function buildAlternativeNamesMap(_this__u8e3s4) {
    init_properties_JsonNamesMap_kt_1j2xk2();
    var builder = null;
    var inductionVariable = 0;
    var last = _this__u8e3s4.nr();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp$ret$1;
        // Inline function 'kotlin.collections.filterIsInstance' call
        var tmp0_filterIsInstance = _this__u8e3s4.qr(i);
        var tmp$ret$0;
        // Inline function 'kotlin.collections.filterIsInstanceTo' call
        var tmp0_filterIsInstanceTo = ArrayList_init_$Create$();
        var tmp0_iterator = tmp0_filterIsInstance.j();
        while (tmp0_iterator.k()) {
          var element = tmp0_iterator.l();
          if (element instanceof JsonNames) {
            tmp0_filterIsInstanceTo.c(element);
          }
        }
        tmp$ret$0 = tmp0_filterIsInstanceTo;
        tmp$ret$1 = tmp$ret$0;
        var tmp1_safe_receiver = singleOrNull(tmp$ret$1);
        var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.g1b_1;
        if (tmp2_safe_receiver == null)
          null;
        else {
          // Inline function 'kotlin.collections.forEach' call
          var tmp0_iterator_0 = arrayIterator(tmp2_safe_receiver);
          while (tmp0_iterator_0.k()) {
            var element_0 = tmp0_iterator_0.l();
            // Inline function 'kotlinx.serialization.json.internal.buildAlternativeNamesMap.<anonymous>' call
            if (builder == null)
              builder = createMapForCache(_this__u8e3s4.nr());
            buildAlternativeNamesMap$putOrThrow(ensureNotNull(builder), _this__u8e3s4, element_0, i);
          }
        }
      }
       while (inductionVariable < last);
    var tmp3_elvis_lhs = builder;
    return tmp3_elvis_lhs == null ? emptyMap() : tmp3_elvis_lhs;
  }
  function buildAlternativeNamesMap$putOrThrow(_this__u8e3s4, $this_buildAlternativeNamesMap, name, index) {
    var tmp$ret$1;
    // Inline function 'kotlin.collections.contains' call
    var tmp$ret$0;
    // Inline function 'kotlin.collections.containsKey' call
    tmp$ret$0 = (isInterface(_this__u8e3s4, Map) ? _this__u8e3s4 : THROW_CCE()).r3(name);
    tmp$ret$1 = tmp$ret$0;
    if (tmp$ret$1) {
      throw new JsonException("The suggested name '" + name + "' for property " + $this_buildAlternativeNamesMap.tr(index) + ' is already one of the names for property ' + ($this_buildAlternativeNamesMap.tr(getValue(_this__u8e3s4, name)) + ' in ' + $this_buildAlternativeNamesMap));
    }
    // Inline function 'kotlin.collections.set' call
    _this__u8e3s4.a(name, index);
  }
  function buildAlternativeNamesMap$ref($boundThis) {
    var l = function () {
      return buildAlternativeNamesMap($boundThis);
    };
    l.callableName = 'buildAlternativeNamesMap';
    return l;
  }
  var properties_initialized_JsonNamesMap_kt_ljpf42;
  function init_properties_JsonNamesMap_kt_1j2xk2() {
    if (properties_initialized_JsonNamesMap_kt_ljpf42) {
    } else {
      properties_initialized_JsonNamesMap_kt_ljpf42 = true;
      JsonAlternativeNamesKey = new Key();
    }
  }
  function Tombstone() {
    Tombstone_instance = this;
  }
  Tombstone.$metadata$ = objectMeta('Tombstone');
  var Tombstone_instance;
  function Tombstone_getInstance() {
    if (Tombstone_instance == null)
      new Tombstone();
    return Tombstone_instance;
  }
  function resize($this) {
    var newSize = imul($this.j1b_1, 2);
    $this.h1b_1 = copyOf($this.h1b_1, newSize);
    $this.i1b_1 = copyOf_0($this.i1b_1, newSize);
  }
  function JsonPath() {
    var tmp = this;
    var tmp$ret$0;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp$ret$0 = fillArrayVal(Array(8), null);
    tmp.h1b_1 = tmp$ret$0;
    var tmp_0 = this;
    var tmp_1 = 0;
    var tmp_2 = 8;
    var tmp_3 = new Int32Array(tmp_2);
    while (tmp_1 < tmp_2) {
      var tmp_4 = tmp_1;
      var tmp$ret$1;
      // Inline function 'kotlinx.serialization.json.internal.JsonPath.indicies.<anonymous>' call
      tmp$ret$1 = -1;
      tmp_3[tmp_4] = tmp$ret$1;
      tmp_1 = tmp_1 + 1 | 0;
    }
    tmp_0.i1b_1 = tmp_3;
    this.j1b_1 = -1;
  }
  JsonPath.prototype.k1b = function (sd) {
    var tmp0_this = this;
    tmp0_this.j1b_1 = tmp0_this.j1b_1 + 1 | 0;
    var depth = tmp0_this.j1b_1;
    if (depth === this.h1b_1.length) {
      resize(this);
    }
    this.h1b_1[depth] = sd;
  };
  JsonPath.prototype.l1b = function (index) {
    this.i1b_1[this.j1b_1] = index;
  };
  JsonPath.prototype.m1b = function (key) {
    var tmp;
    if (!(this.i1b_1[this.j1b_1] === -2)) {
      var tmp0_this = this;
      tmp0_this.j1b_1 = tmp0_this.j1b_1 + 1 | 0;
      tmp = tmp0_this.j1b_1 === this.h1b_1.length;
    } else {
      tmp = false;
    }
    if (tmp) {
      resize(this);
    }
    this.h1b_1[this.j1b_1] = key;
    this.i1b_1[this.j1b_1] = -2;
  };
  JsonPath.prototype.n1b = function () {
    if (this.i1b_1[this.j1b_1] === -2) {
      this.h1b_1[this.j1b_1] = Tombstone_getInstance();
    }
  };
  JsonPath.prototype.o1b = function () {
    var depth = this.j1b_1;
    if (this.i1b_1[depth] === -2) {
      this.i1b_1[depth] = -1;
      var tmp0_this = this;
      var tmp1 = tmp0_this.j1b_1;
      tmp0_this.j1b_1 = tmp1 - 1 | 0;
    }
    if (!(this.j1b_1 === -1)) {
      var tmp2_this = this;
      var tmp3 = tmp2_this.j1b_1;
      tmp2_this.j1b_1 = tmp3 - 1 | 0;
    }
  };
  JsonPath.prototype.p1b = function () {
    var tmp$ret$1;
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.contracts.contract' call
    var tmp$ret$0;
    // Inline function 'kotlin.apply' call
    var tmp0_apply = StringBuilder_init_$Create$();
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlinx.serialization.json.internal.JsonPath.getPath.<anonymous>' call
    tmp0_apply.gc('$');
    // Inline function 'kotlin.repeat' call
    var tmp0_repeat = this.j1b_1 + 1 | 0;
    // Inline function 'kotlin.contracts.contract' call
    var inductionVariable = 0;
    if (inductionVariable < tmp0_repeat)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        // Inline function 'kotlinx.serialization.json.internal.JsonPath.getPath.<anonymous>.<anonymous>' call
        var element = this.h1b_1[index];
        if (!(element == null) ? isInterface(element, SerialDescriptor) : false) {
          if (equals(element.pr(), LIST_getInstance())) {
            if (!(this.i1b_1[index] === -1)) {
              tmp0_apply.gc('[');
              tmp0_apply.fc(this.i1b_1[index]);
              tmp0_apply.gc(']');
            }
          } else {
            var idx = this.i1b_1[index];
            if (idx >= 0) {
              tmp0_apply.gc('.');
              tmp0_apply.gc(element.tr(idx));
            }
          }
        } else {
          if (!(element === Tombstone_getInstance())) {
            tmp0_apply.gc('[');
            tmp0_apply.gc("'");
            tmp0_apply.fc(element);
            tmp0_apply.gc("'");
            tmp0_apply.gc(']');
          }
        }
      }
       while (inductionVariable < tmp0_repeat);
    tmp$ret$0 = tmp0_apply;
    tmp$ret$1 = tmp$ret$0.toString();
    return tmp$ret$1;
  };
  JsonPath.prototype.toString = function () {
    return this.p1b();
  };
  JsonPath.$metadata$ = classMeta('JsonPath');
  function encodeByWriter(_this__u8e3s4, writer, serializer, value) {
    var tmp = WriteMode_OBJ_getInstance();
    var tmp$ret$0;
    // Inline function 'kotlin.arrayOfNulls' call
    var tmp0_arrayOfNulls = values().length;
    tmp$ret$0 = fillArrayVal(Array(tmp0_arrayOfNulls), null);
    var encoder = StreamingJsonEncoder_init_$Create$(writer, _this__u8e3s4, tmp, tmp$ret$0);
    encoder.xu(serializer, value);
  }
  function JsonWriter() {
  }
  JsonWriter.$metadata$ = interfaceMeta('JsonWriter');
  function readObject($this) {
    var tmp$ret$2;
    // Inline function 'kotlinx.serialization.json.internal.JsonTreeReader.readObjectImpl' call
    var lastToken = $this.y1b_1.b1c(get_TC_BEGIN_OBJ());
    if ($this.y1b_1.c1c() === get_TC_COMMA()) {
      $this.y1b_1.d1b('Unexpected leading comma', 0, null, 6, null);
    }
    var tmp$ret$0;
    // Inline function 'kotlin.collections.linkedMapOf' call
    tmp$ret$0 = LinkedHashMap_init_$Create$();
    var result = tmp$ret$0;
    $l$loop: while ($this.y1b_1.d1c()) {
      var key = $this.z1b_1 ? $this.y1b_1.f1c() : $this.y1b_1.e1c();
      $this.y1b_1.b1c(get_TC_COLON());
      var tmp$ret$1;
      // Inline function 'kotlinx.serialization.json.internal.JsonTreeReader.readObject.<anonymous>' call
      tmp$ret$1 = $this.g1c();
      var element = tmp$ret$1;
      // Inline function 'kotlin.collections.set' call
      result.a(key, element);
      lastToken = $this.y1b_1.h1c();
      var tmp0_subject = lastToken;
      if (tmp0_subject === get_TC_COMMA())
      ;
      else if (tmp0_subject === get_TC_END_OBJ())
        break $l$loop;
      else {
        $this.y1b_1.d1b('Expected end of the object or comma', 0, null, 6, null);
      }
    }
    if (lastToken === get_TC_BEGIN_OBJ()) {
      $this.y1b_1.b1c(get_TC_END_OBJ());
    } else if (lastToken === get_TC_COMMA()) {
      $this.y1b_1.d1b('Unexpected trailing comma', 0, null, 6, null);
    }
    tmp$ret$2 = new JsonObject(result);
    return tmp$ret$2;
  }
  function readObject_0(_this__u8e3s4, $this, $cont) {
    var tmp = new $readObjectCOROUTINE$0($this, _this__u8e3s4, $cont);
    tmp.q7_1 = Unit_getInstance();
    tmp.r7_1 = null;
    return tmp.v7();
  }
  function readArray($this) {
    var lastToken = $this.y1b_1.h1c();
    if ($this.y1b_1.c1c() === get_TC_COMMA()) {
      $this.y1b_1.d1b('Unexpected leading comma', 0, null, 6, null);
    }
    var tmp$ret$0;
    // Inline function 'kotlin.collections.arrayListOf' call
    tmp$ret$0 = ArrayList_init_$Create$();
    var result = tmp$ret$0;
    while ($this.y1b_1.d1c()) {
      var element = $this.g1c();
      result.c(element);
      lastToken = $this.y1b_1.h1c();
      if (!(lastToken === get_TC_COMMA())) {
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonLexer.require' call
        var tmp0_require = $this.y1b_1;
        var tmp1_require = lastToken === get_TC_END_LIST();
        var tmp2_require = tmp0_require.b18_1;
        if (!tmp1_require) {
          var tmp$ret$1;
          // Inline function 'kotlinx.serialization.json.internal.JsonTreeReader.readArray.<anonymous>' call
          tmp$ret$1 = 'Expected end of the array or comma';
          var tmp = tmp$ret$1;
          tmp0_require.d1b(tmp, tmp2_require, null, 4, null);
        }
      }
    }
    if (lastToken === get_TC_BEGIN_LIST()) {
      $this.y1b_1.b1c(get_TC_END_LIST());
    } else if (lastToken === get_TC_COMMA()) {
      $this.y1b_1.d1b('Unexpected trailing comma', 0, null, 6, null);
    }
    return new JsonArray(result);
  }
  function readValue($this, isString) {
    var tmp;
    if ($this.z1b_1 ? true : !isString) {
      tmp = $this.y1b_1.f1c();
    } else {
      tmp = $this.y1b_1.e1c();
    }
    var string = tmp;
    if (!isString ? string === get_NULL() : false)
      return JsonNull_getInstance();
    return new JsonLiteral(string, isString);
  }
  function readDeepRecursive($this) {
    return invoke(new DeepRecursiveFunction(JsonTreeReader$readDeepRecursive$slambda_0($this, null)), Unit_getInstance());
  }
  function JsonTreeReader$readDeepRecursive$slambda(this$0, resultContinuation) {
    this.d1d_1 = this$0;
    CoroutineImpl.call(this, resultContinuation);
  }
  JsonTreeReader$readDeepRecursive$slambda.prototype.i1d = function ($this$$receiver, it, $cont) {
    var tmp = this.j1d($this$$receiver, it, $cont);
    tmp.q7_1 = Unit_getInstance();
    tmp.r7_1 = null;
    return tmp.v7();
  };
  JsonTreeReader$readDeepRecursive$slambda.prototype.uc = function (p1, p2, $cont) {
    var tmp = p1 instanceof DeepRecursiveScope ? p1 : THROW_CCE();
    return this.i1d(tmp, p2 instanceof Unit ? p2 : THROW_CCE(), $cont);
  };
  JsonTreeReader$readDeepRecursive$slambda.prototype.v7 = function () {
    var suspendResult = this.q7_1;
    $sm: do
      try {
        var tmp = this.o7_1;
        switch (tmp) {
          case 0:
            this.p7_1 = 3;
            this.g1d_1 = this.d1d_1.y1b_1.c1c();
            if (this.g1d_1 === get_TC_STRING()) {
              this.h1d_1 = readValue(this.d1d_1, true);
              this.o7_1 = 2;
              continue $sm;
            } else {
              if (this.g1d_1 === get_TC_OTHER()) {
                this.h1d_1 = readValue(this.d1d_1, false);
                this.o7_1 = 2;
                continue $sm;
              } else {
                if (this.g1d_1 === get_TC_BEGIN_OBJ()) {
                  this.o7_1 = 1;
                  suspendResult = readObject_0(this.e1d_1, this.d1d_1, this);
                  if (suspendResult === get_COROUTINE_SUSPENDED()) {
                    return suspendResult;
                  }
                  continue $sm;
                } else {
                  if (this.g1d_1 === get_TC_BEGIN_LIST()) {
                    this.h1d_1 = readArray(this.d1d_1);
                    this.o7_1 = 2;
                    continue $sm;
                  } else {
                    var tmp_0 = this;
                    this.d1d_1.y1b_1.d1b("Can't begin reading element, unexpected token", 0, null, 6, null);
                  }
                }
              }
            }

            break;
          case 1:
            this.h1d_1 = suspendResult;
            this.o7_1 = 2;
            continue $sm;
          case 2:
            return this.h1d_1;
          case 3:
            throw this.r7_1;
        }
      } catch ($p) {
        if (this.p7_1 === 3) {
          throw $p;
        } else {
          this.o7_1 = this.p7_1;
          this.r7_1 = $p;
        }
      }
     while (true);
  };
  JsonTreeReader$readDeepRecursive$slambda.prototype.j1d = function ($this$$receiver, it, completion) {
    var i = new JsonTreeReader$readDeepRecursive$slambda(this.d1d_1, completion);
    i.e1d_1 = $this$$receiver;
    i.f1d_1 = it;
    return i;
  };
  JsonTreeReader$readDeepRecursive$slambda.$metadata$ = classMeta('JsonTreeReader$readDeepRecursive$slambda', undefined, undefined, undefined, [2], CoroutineImpl.prototype);
  function JsonTreeReader$readDeepRecursive$slambda_0(this$0, resultContinuation) {
    var i = new JsonTreeReader$readDeepRecursive$slambda(this$0, resultContinuation);
    var l = function ($this$$receiver, it, $cont) {
      return i.i1d($this$$receiver, it, $cont);
    };
    l.$arity = 2;
    return l;
  }
  function $readObjectCOROUTINE$0(_this__u8e3s4, _this__u8e3s4_0, resultContinuation) {
    CoroutineImpl.call(this, resultContinuation);
    this.q1c_1 = _this__u8e3s4;
    this.r1c_1 = _this__u8e3s4_0;
  }
  $readObjectCOROUTINE$0.prototype.v7 = function () {
    var suspendResult = this.q7_1;
    $sm: do
      try {
        var tmp = this.o7_1;
        switch (tmp) {
          case 0:
            this.p7_1 = 5;
            this.s1c_1 = this.q1c_1.y1b_1.b1c(get_TC_BEGIN_OBJ());
            if (this.q1c_1.y1b_1.c1c() === get_TC_COMMA()) {
              this.q1c_1.y1b_1.d1b('Unexpected leading comma', 0, null, 6, null);
            }

            var tmp_0 = this;
            tmp_0.t1c_1 = LinkedHashMap_init_$Create$();
            this.o7_1 = 1;
            continue $sm;
          case 1:
            if (!this.q1c_1.y1b_1.d1c()) {
              this.o7_1 = 4;
              continue $sm;
            }

            this.u1c_1 = this.q1c_1.z1b_1 ? this.q1c_1.y1b_1.f1c() : this.q1c_1.y1b_1.e1c();
            this.q1c_1.y1b_1.b1c(get_TC_COLON());
            ;
            this.o7_1 = 2;
            suspendResult = this.r1c_1.mc(Unit_getInstance(), this);
            if (suspendResult === get_COROUTINE_SUSPENDED()) {
              return suspendResult;
            }

            continue $sm;
          case 2:
            var element = suspendResult;
            this.t1c_1.a(this.u1c_1, element);
            ;
            this.s1c_1 = this.q1c_1.y1b_1.h1c();
            var tmp0_subject = this.s1c_1;
            if (tmp0_subject === get_TC_COMMA()) {
              this.o7_1 = 3;
              continue $sm;
            } else {
              if (tmp0_subject === get_TC_END_OBJ()) {
                this.o7_1 = 4;
                continue $sm;
              } else {
                this.q1c_1.y1b_1.d1b('Expected end of the object or comma', 0, null, 6, null);
              }
            }

            break;
          case 3:
            this.o7_1 = 1;
            continue $sm;
          case 4:
            if (this.s1c_1 === get_TC_BEGIN_OBJ()) {
              this.q1c_1.y1b_1.b1c(get_TC_END_OBJ());
            } else if (this.s1c_1 === get_TC_COMMA()) {
              this.q1c_1.y1b_1.d1b('Unexpected trailing comma', 0, null, 6, null);
            }

            return new JsonObject(this.t1c_1);
          case 5:
            throw this.r7_1;
        }
      } catch ($p) {
        if (this.p7_1 === 5) {
          throw $p;
        } else {
          this.o7_1 = this.p7_1;
          this.r7_1 = $p;
        }
      }
     while (true);
  };
  $readObjectCOROUTINE$0.$metadata$ = classMeta('$readObjectCOROUTINE$0', undefined, undefined, undefined, undefined, CoroutineImpl.prototype);
  function JsonTreeReader(configuration, lexer) {
    this.y1b_1 = lexer;
    this.z1b_1 = configuration.i18_1;
    this.a1c_1 = 0;
  }
  JsonTreeReader.prototype.g1c = function () {
    var token = this.y1b_1.c1c();
    var tmp;
    if (token === get_TC_STRING()) {
      tmp = readValue(this, true);
    } else if (token === get_TC_OTHER()) {
      tmp = readValue(this, false);
    } else if (token === get_TC_BEGIN_OBJ()) {
      var tmp_0;
      var tmp0_this = this;
      tmp0_this.a1c_1 = tmp0_this.a1c_1 + 1 | 0;
      if (tmp0_this.a1c_1 === 200) {
        tmp_0 = readDeepRecursive(this);
      } else {
        tmp_0 = readObject(this);
      }
      var result = tmp_0;
      var tmp1_this = this;
      tmp1_this.a1c_1 = tmp1_this.a1c_1 - 1 | 0;
      tmp = result;
    } else if (token === get_TC_BEGIN_LIST()) {
      tmp = readArray(this);
    } else {
      var tmp_1 = 'Cannot begin reading element, unexpected token: ' + token;
      this.y1b_1.d1b(tmp_1, 0, null, 6, null);
    }
    return tmp;
  };
  JsonTreeReader.$metadata$ = classMeta('JsonTreeReader');
  function classDiscriminator(_this__u8e3s4, json) {
    var tmp0_iterator = _this__u8e3s4.mr().j();
    while (tmp0_iterator.k()) {
      var annotation = tmp0_iterator.l();
      if (annotation instanceof JsonClassDiscriminator)
        return annotation.k1d_1;
    }
    return json.m17_1.p18_1;
  }
  function decodeSerializableValuePolymorphic(_this__u8e3s4, deserializer) {
    var tmp;
    if (!(deserializer instanceof AbstractPolymorphicSerializer)) {
      tmp = true;
    } else {
      tmp = _this__u8e3s4.u18().m17_1.o18_1;
    }
    if (tmp) {
      return deserializer.dq(_this__u8e3s4);
    }
    var discriminator = classDiscriminator(deserializer.bq(), _this__u8e3s4.u18());
    var tmp$ret$0;
    // Inline function 'kotlinx.serialization.json.internal.cast' call
    var tmp0_cast = _this__u8e3s4.v18();
    var tmp1_cast = deserializer.bq();
    if (!(tmp0_cast instanceof JsonObject)) {
      throw JsonDecodingException_1(-1, 'Expected ' + getKClass(JsonObject) + ' as the serialized body of ' + tmp1_cast.yq() + ', but had ' + getKClassFromExpression(tmp0_cast));
    }
    tmp$ret$0 = tmp0_cast;
    var jsonTree = tmp$ret$0;
    var tmp0_safe_receiver = jsonTree.c19(discriminator);
    var tmp1_safe_receiver = tmp0_safe_receiver == null ? null : get_jsonPrimitive(tmp0_safe_receiver);
    var type = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.d19();
    var tmp2_elvis_lhs = deserializer.rq(_this__u8e3s4, type);
    var tmp_0;
    if (tmp2_elvis_lhs == null) {
      throwSerializerNotFound(type, jsonTree);
    } else {
      tmp_0 = tmp2_elvis_lhs;
    }
    var actualSerializer = tmp_0;
    var tmp_1 = _this__u8e3s4.u18();
    return readPolymorphicJson(tmp_1, discriminator, jsonTree, isInterface(actualSerializer, DeserializationStrategy) ? actualSerializer : THROW_CCE());
  }
  function encodePolymorphically(_this__u8e3s4, serializer, value, ifPolymorphic) {
    var tmp;
    if (!(serializer instanceof AbstractPolymorphicSerializer)) {
      tmp = true;
    } else {
      tmp = _this__u8e3s4.u18().m17_1.o18_1;
    }
    if (tmp) {
      serializer.cq(_this__u8e3s4, value);
      return Unit_getInstance();
    }
    var casted = serializer instanceof AbstractPolymorphicSerializer ? serializer : THROW_CCE();
    var baseClassDiscriminator = classDiscriminator(serializer.bq(), _this__u8e3s4.u18());
    var actualSerializer = findPolymorphicSerializer(casted, _this__u8e3s4, isObject(value) ? value : THROW_CCE());
    validateIfSealed$accessor$1ad0flx(casted, actualSerializer, baseClassDiscriminator);
    checkKind(actualSerializer.bq().pr());
    ifPolymorphic(baseClassDiscriminator);
    actualSerializer.cq(_this__u8e3s4, value);
  }
  function throwSerializerNotFound(type, jsonTree) {
    var suffix = type == null ? "missing class discriminator ('null')" : "class discriminator '" + type + "'";
    throw JsonDecodingException_0(-1, 'Polymorphic serializer was not found for ' + suffix, jsonTree.toString());
  }
  function validateIfSealed(serializer, actualSerializer, classDiscriminator) {
    if (!(serializer instanceof SealedClassSerializer))
      return Unit_getInstance();
    if (jsonCachedSerialNames(actualSerializer.bq()).r(classDiscriminator)) {
      var baseName = serializer.bq().yq();
      var actualName = actualSerializer.bq().yq();
      // Inline function 'kotlin.error' call
      var tmp0_error = "Sealed class '" + actualName + "' cannot be serialized as base class '" + baseName + "' because" + (" it has property name that conflicts with JSON class discriminator '" + classDiscriminator + "'. ") + 'You can either change class discriminator in JsonConfiguration, ' + 'rename property with @SerialName annotation or fall back to array polymorphism';
      throw IllegalStateException_init_$Create$(toString(tmp0_error));
    }
  }
  function checkKind(kind) {
    if (kind instanceof ENUM) {
      // Inline function 'kotlin.error' call
      throw IllegalStateException_init_$Create$("Enums cannot be serialized polymorphically with 'type' parameter. You can use 'JsonBuilder.useArrayPolymorphism' instead");
    }
    if (kind instanceof PrimitiveKind) {
      // Inline function 'kotlin.error' call
      throw IllegalStateException_init_$Create$("Primitives cannot be serialized polymorphically with 'type' parameter. You can use 'JsonBuilder.useArrayPolymorphism' instead");
    }
    if (kind instanceof PolymorphicKind) {
      // Inline function 'kotlin.error' call
      throw IllegalStateException_init_$Create$('Actual serializer for polymorphic cannot be polymorphic itself');
    }
  }
  function validateIfSealed$accessor$1ad0flx(serializer, actualSerializer, classDiscriminator) {
    return validateIfSealed(serializer, actualSerializer, classDiscriminator);
  }
  function Key() {
  }
  Key.$metadata$ = classMeta('Key');
  function DescriptorSchemaCache() {
    this.e1b_1 = createMapForCache(1);
  }
  DescriptorSchemaCache.prototype.l1d = function (descriptor, key, value) {
    // Inline function 'kotlin.collections.set' call
    var tmp$ret$1;
    // Inline function 'kotlin.collections.getOrPut' call
    var tmp0_getOrPut = this.e1b_1;
    var value_0 = tmp0_getOrPut.q(descriptor);
    var tmp;
    if (value_0 == null) {
      var tmp$ret$0;
      // Inline function 'kotlinx.serialization.json.internal.DescriptorSchemaCache.set.<anonymous>' call
      tmp$ret$0 = createMapForCache(1);
      var answer = tmp$ret$0;
      tmp0_getOrPut.a(descriptor, answer);
      tmp = answer;
    } else {
      tmp = value_0;
    }
    tmp$ret$1 = tmp;
    var tmp1_set = tmp$ret$1;
    var tmp2_set = key instanceof Key ? key : THROW_CCE();
    var tmp3_set = isObject(value) ? value : THROW_CCE();
    tmp1_set.a(tmp2_set, tmp3_set);
  };
  DescriptorSchemaCache.prototype.f1b = function (descriptor, key, defaultValue) {
    var tmp0_safe_receiver = this.m1d(descriptor, key);
    if (tmp0_safe_receiver == null)
      null;
    else {
      var tmp$ret$0;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      return tmp0_safe_receiver;
    }
    var value = defaultValue();
    this.l1d(descriptor, key, value);
    return value;
  };
  DescriptorSchemaCache.prototype.m1d = function (descriptor, key) {
    var tmp0_safe_receiver = this.e1b_1.q(descriptor);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      tmp = tmp0_safe_receiver.q(key instanceof Key ? key : THROW_CCE());
    }
    var tmp_0 = tmp;
    return isObject(tmp_0) ? tmp_0 : null;
  };
  DescriptorSchemaCache.$metadata$ = classMeta('DescriptorSchemaCache');
  function DiscriminatorHolder(discriminatorToSkip) {
    this.n1d_1 = discriminatorToSkip;
  }
  DiscriminatorHolder.$metadata$ = classMeta('DiscriminatorHolder');
  function trySkip(_this__u8e3s4, $this, unknownKey) {
    if (_this__u8e3s4 == null)
      return false;
    if (_this__u8e3s4.n1d_1 === unknownKey) {
      _this__u8e3s4.n1d_1 = null;
      return true;
    }
    return false;
  }
  function skipLeftoverElements($this, descriptor) {
    $l$loop: while (true) {
      var tmp = $this.xt(descriptor);
      Companion_getInstance_0();
      if (!!(tmp === -1)) {
        break $l$loop;
      }
    }
  }
  function checkLeadingComma($this) {
    if ($this.v17_1.c1c() === get_TC_COMMA()) {
      $this.v17_1.d1b('Unexpected leading comma', 0, null, 6, null);
    }
  }
  function decodeMapIndex($this) {
    var hasComma = false;
    var decodingKey = !(($this.x17_1 % 2 | 0) === 0);
    if (decodingKey) {
      if (!($this.x17_1 === -1)) {
        hasComma = $this.v17_1.p1d();
      }
    } else {
      $this.v17_1.o1d(get_COLON());
    }
    var tmp;
    if ($this.v17_1.d1c()) {
      if (decodingKey) {
        if ($this.x17_1 === -1) {
          // Inline function 'kotlinx.serialization.json.internal.AbstractJsonLexer.require' call
          var tmp0_require = $this.v17_1;
          var tmp1_require = !hasComma;
          var tmp2_require = tmp0_require.b18_1;
          if (!tmp1_require) {
            var tmp$ret$0;
            // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeMapIndex.<anonymous>' call
            tmp$ret$0 = 'Unexpected trailing comma';
            var tmp_0 = tmp$ret$0;
            tmp0_require.d1b(tmp_0, tmp2_require, null, 4, null);
          }
        } else {
          // Inline function 'kotlinx.serialization.json.internal.AbstractJsonLexer.require' call
          var tmp3_require = $this.v17_1;
          var tmp4_require = hasComma;
          var tmp5_require = tmp3_require.b18_1;
          if (!tmp4_require) {
            var tmp$ret$1;
            // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeMapIndex.<anonymous>' call
            tmp$ret$1 = 'Expected comma after the key-value pair';
            var tmp_1 = tmp$ret$1;
            tmp3_require.d1b(tmp_1, tmp5_require, null, 4, null);
          }
        }
      }
      var tmp0_this = $this;
      tmp0_this.x17_1 = tmp0_this.x17_1 + 1 | 0;
      tmp = tmp0_this.x17_1;
    } else {
      if (hasComma) {
        $this.v17_1.d1b("Expected '}', but had ',' instead", 0, null, 6, null);
      }
      Companion_getInstance_0();
      tmp = -1;
    }
    return tmp;
  }
  function coerceInputValue($this, descriptor, index) {
    var tmp$ret$1;
    $l$block_1: {
      // Inline function 'kotlinx.serialization.json.internal.tryCoerceValue' call
      var tmp0_tryCoerceValue = $this.t17_1;
      var tmp1_tryCoerceValue = descriptor.rr(index);
      var tmp;
      if (!tmp1_tryCoerceValue.ir()) {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.coerceInputValue.<anonymous>' call
        tmp$ret$0 = !$this.v17_1.q1d();
        tmp = tmp$ret$0;
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$1 = true;
        break $l$block_1;
      }
      if (equals(tmp1_tryCoerceValue.pr(), ENUM_getInstance())) {
        var tmp$ret$2;
        // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.coerceInputValue.<anonymous>' call
        tmp$ret$2 = $this.v17_1.r1d($this.z17_1.i18_1);
        var tmp0_elvis_lhs = tmp$ret$2;
        var tmp_0;
        if (tmp0_elvis_lhs == null) {
          tmp$ret$1 = false;
          break $l$block_1;
        } else {
          tmp_0 = tmp0_elvis_lhs;
        }
        var enumValue = tmp_0;
        var enumIndex = getJsonNameIndex(tmp1_tryCoerceValue, tmp0_tryCoerceValue, enumValue);
        Companion_getInstance_0();
        if (enumIndex === -3) {
          // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.coerceInputValue.<anonymous>' call
          $this.v17_1.e1c();
          tmp$ret$1 = true;
          break $l$block_1;
        }
      }
      tmp$ret$1 = false;
    }
    return tmp$ret$1;
  }
  function decodeObjectIndex($this, descriptor) {
    var hasComma = $this.v17_1.p1d();
    while ($this.v17_1.d1c()) {
      hasComma = false;
      var key = decodeStringKey($this);
      $this.v17_1.o1d(get_COLON());
      var index = getJsonNameIndex(descriptor, $this.t17_1, key);
      var tmp;
      Companion_getInstance_0();
      if (!(index === -3)) {
        var tmp_0;
        if ($this.z17_1.n18_1 ? coerceInputValue($this, descriptor, index) : false) {
          hasComma = $this.v17_1.p1d();
          tmp_0 = false;
        } else {
          var tmp0_safe_receiver = $this.a18_1;
          if (tmp0_safe_receiver == null)
            null;
          else {
            tmp0_safe_receiver.dz(index);
          }
          return index;
        }
        tmp = tmp_0;
      } else {
        tmp = true;
      }
      var isUnknown = tmp;
      if (isUnknown) {
        hasComma = handleUnknown($this, key);
      }
    }
    if (hasComma) {
      $this.v17_1.d1b('Unexpected trailing comma', 0, null, 6, null);
    }
    var tmp1_safe_receiver = $this.a18_1;
    var tmp2_elvis_lhs = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.ez();
    var tmp_1;
    if (tmp2_elvis_lhs == null) {
      Companion_getInstance_0();
      tmp_1 = -1;
    } else {
      tmp_1 = tmp2_elvis_lhs;
    }
    return tmp_1;
  }
  function handleUnknown($this, key) {
    if ($this.z17_1.h18_1 ? true : trySkip($this.y17_1, $this, key)) {
      $this.v17_1.t1d($this.z17_1.i18_1);
    } else {
      $this.v17_1.s1d(key);
    }
    return $this.v17_1.p1d();
  }
  function decodeListIndex($this) {
    var hasComma = $this.v17_1.p1d();
    var tmp;
    if ($this.v17_1.d1c()) {
      if (!($this.x17_1 === -1) ? !hasComma : false) {
        $this.v17_1.d1b('Expected end of the array or comma', 0, null, 6, null);
      }
      var tmp0_this = $this;
      tmp0_this.x17_1 = tmp0_this.x17_1 + 1 | 0;
      tmp = tmp0_this.x17_1;
    } else {
      if (hasComma) {
        $this.v17_1.d1b('Unexpected trailing comma', 0, null, 6, null);
      }
      Companion_getInstance_0();
      tmp = -1;
    }
    return tmp;
  }
  function decodeStringKey($this) {
    var tmp;
    if ($this.z17_1.i18_1) {
      tmp = $this.v17_1.v1d();
    } else {
      tmp = $this.v17_1.u1d();
    }
    return tmp;
  }
  function StreamingJsonDecoder(json, mode, lexer, descriptor, discriminatorHolder) {
    AbstractDecoder.call(this);
    this.t17_1 = json;
    this.u17_1 = mode;
    this.v17_1 = lexer;
    this.w17_1 = this.t17_1.cr();
    this.x17_1 = -1;
    this.y17_1 = discriminatorHolder;
    this.z17_1 = this.t17_1.m17_1;
    this.a18_1 = this.z17_1.l18_1 ? null : new JsonElementMarker(descriptor);
  }
  StreamingJsonDecoder.prototype.u18 = function () {
    return this.t17_1;
  };
  StreamingJsonDecoder.prototype.w1d = function () {
    return this.v17_1;
  };
  StreamingJsonDecoder.prototype.cr = function () {
    return this.w17_1;
  };
  StreamingJsonDecoder.prototype.v18 = function () {
    return (new JsonTreeReader(this.t17_1.m17_1, this.v17_1)).g1c();
  };
  StreamingJsonDecoder.prototype.ht = function (deserializer) {
    try {
      var tmp;
      if (!(deserializer instanceof AbstractPolymorphicSerializer)) {
        tmp = true;
      } else {
        tmp = this.t17_1.m17_1.o18_1;
      }
      if (tmp) {
        return deserializer.dq(this);
      }
      var discriminator = classDiscriminator(deserializer.bq(), this.t17_1);
      var type = this.v17_1.x1d(discriminator, this.z17_1.i18_1);
      var actualSerializer = null;
      if (!(type == null)) {
        actualSerializer = deserializer.rq(this, type);
      }
      if (actualSerializer == null) {
        return decodeSerializableValuePolymorphic(this, isInterface(deserializer, DeserializationStrategy) ? deserializer : THROW_CCE());
      }
      this.y17_1 = new DiscriminatorHolder(discriminator);
      var tmp_0 = actualSerializer.dq(this);
      var result = isObject(tmp_0) ? tmp_0 : THROW_CCE();
      return result;
    } catch ($p) {
      if ($p instanceof MissingFieldException) {
        throw new MissingFieldException($p.dr_1, plus($p.message, ' at path: ') + this.v17_1.c18_1.p1b(), $p);
      } else {
        throw $p;
      }
    }
  };
  StreamingJsonDecoder.prototype.it = function (descriptor) {
    var newMode = switchMode(this.t17_1, descriptor);
    this.v17_1.c18_1.k1b(descriptor);
    this.v17_1.o1d(newMode.a1e_1);
    checkLeadingComma(this);
    var tmp0_subject = newMode;
    var tmp0 = tmp0_subject.q2_1;
    var tmp;
    switch (tmp0) {
      case 1:
      case 2:
      case 3:
        tmp = new StreamingJsonDecoder(this.t17_1, newMode, this.v17_1, descriptor, this.y17_1);
        break;
      default:
        var tmp_0;
        if (this.u17_1.equals(newMode) ? this.t17_1.m17_1.l18_1 : false) {
          tmp_0 = this;
        } else {
          tmp_0 = new StreamingJsonDecoder(this.t17_1, newMode, this.v17_1, descriptor, this.y17_1);
        }

        tmp = tmp_0;
        break;
    }
    return tmp;
  };
  StreamingJsonDecoder.prototype.jt = function (descriptor) {
    if (this.t17_1.m17_1.h18_1 ? descriptor.nr() === 0 : false) {
      skipLeftoverElements(this, descriptor);
    }
    this.v17_1.o1d(this.u17_1.b1e_1);
    this.v17_1.c18_1.o1b();
  };
  StreamingJsonDecoder.prototype.ts = function () {
    var tmp;
    var tmp0_safe_receiver = this.a18_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.c1b_1;
    if (!(tmp1_elvis_lhs == null ? false : tmp1_elvis_lhs)) {
      tmp = this.v17_1.q1d();
    } else {
      tmp = false;
    }
    return tmp;
  };
  StreamingJsonDecoder.prototype.us = function () {
    return null;
  };
  StreamingJsonDecoder.prototype.tt = function (descriptor, index, deserializer, previousValue) {
    var isMapKey = this.u17_1.equals(WriteMode_MAP_getInstance()) ? (index & 1) === 0 : false;
    if (isMapKey) {
      this.v17_1.c18_1.n1b();
    }
    var value = AbstractDecoder.prototype.tt.call(this, descriptor, index, deserializer, previousValue);
    if (isMapKey) {
      this.v17_1.c18_1.m1b(value);
    }
    return value;
  };
  StreamingJsonDecoder.prototype.xt = function (descriptor) {
    var tmp0_subject = this.u17_1;
    var tmp0 = tmp0_subject.q2_1;
    {
      var index;
      switch (tmp0) {
        case 0:
          index = decodeObjectIndex(this, descriptor);
          break;
        case 2:
          index = decodeMapIndex(this);
          break;
        default:
          index = decodeListIndex(this);
          break;
      }
    }
    if (!this.u17_1.equals(WriteMode_MAP_getInstance())) {
      this.v17_1.c18_1.l1b(index);
    }
    return index;
  };
  StreamingJsonDecoder.prototype.vs = function () {
    var tmp;
    if (this.z17_1.i18_1) {
      tmp = this.v17_1.d1e();
    } else {
      tmp = this.v17_1.c1e();
    }
    return tmp;
  };
  StreamingJsonDecoder.prototype.ws = function () {
    var value = this.v17_1.e1e();
    if (!value.equals(toLong_0(value.ko()))) {
      var tmp = "Failed to parse byte for input '" + toString(value) + "'";
      this.v17_1.d1b(tmp, 0, null, 6, null);
    }
    return value.ko();
  };
  StreamingJsonDecoder.prototype.xs = function () {
    var value = this.v17_1.e1e();
    if (!value.equals(toLong_0(value.lo()))) {
      var tmp = "Failed to parse short for input '" + toString(value) + "'";
      this.v17_1.d1b(tmp, 0, null, 6, null);
    }
    return value.lo();
  };
  StreamingJsonDecoder.prototype.ys = function () {
    var value = this.v17_1.e1e();
    if (!value.equals(toLong_0(value.d2()))) {
      var tmp = "Failed to parse int for input '" + toString(value) + "'";
      this.v17_1.d1b(tmp, 0, null, 6, null);
    }
    return value.d2();
  };
  StreamingJsonDecoder.prototype.zs = function () {
    return this.v17_1.e1e();
  };
  StreamingJsonDecoder.prototype.at = function () {
    var tmp$ret$4;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.v17_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$3;
        // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeFloat.<anonymous>' call
        var tmp$ret$2;
        // Inline function 'kotlin.text.toFloat' call
        var tmp$ret$1;
        // Inline function 'kotlin.js.unsafeCast' call
        var tmp0_unsafeCast = toDouble(input);
        var tmp$ret$0;
        // Inline function 'kotlin.js.asDynamic' call
        tmp$ret$0 = tmp0_unsafeCast;
        tmp$ret$1 = tmp$ret$0;
        tmp$ret$2 = tmp$ret$1;
        tmp$ret$3 = tmp$ret$2;
        tmp$ret$4 = tmp$ret$3;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'float' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    var result = tmp$ret$4;
    var specialFp = this.t17_1.m17_1.q18_1;
    if (specialFp ? true : isFinite(result))
      return result;
    throwInvalidFloatingPointDecoded(this.v17_1, result);
  };
  StreamingJsonDecoder.prototype.bt = function () {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.v17_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeDouble.<anonymous>' call
        tmp$ret$0 = toDouble(input);
        tmp$ret$1 = tmp$ret$0;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'double' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    var result = tmp$ret$1;
    var specialFp = this.t17_1.m17_1.q18_1;
    if (specialFp ? true : isFinite_0(result))
      return result;
    throwInvalidFloatingPointDecoded(this.v17_1, result);
  };
  StreamingJsonDecoder.prototype.ct = function () {
    var string = this.v17_1.f1c();
    if (!(string.length === 1)) {
      var tmp = "Expected single char, but got '" + string + "'";
      this.v17_1.d1b(tmp, 0, null, 6, null);
    }
    return charSequenceGet(string, 0);
  };
  StreamingJsonDecoder.prototype.dt = function () {
    var tmp;
    if (this.z17_1.i18_1) {
      tmp = this.v17_1.v1d();
    } else {
      tmp = this.v17_1.e1c();
    }
    return tmp;
  };
  StreamingJsonDecoder.prototype.ft = function (descriptor) {
    return get_isUnsignedNumber(descriptor) ? new JsonDecoderForUnsignedTypes(this.v17_1, this.t17_1) : AbstractDecoder.prototype.ft.call(this, descriptor);
  };
  StreamingJsonDecoder.prototype.et = function (enumDescriptor) {
    return getJsonNameIndexOrThrow(enumDescriptor, this.t17_1, this.dt(), ' at path ' + this.v17_1.c18_1.p1b());
  };
  StreamingJsonDecoder.$metadata$ = classMeta('StreamingJsonDecoder', [JsonDecoder], undefined, undefined, undefined, AbstractDecoder.prototype);
  function parseString(_this__u8e3s4, expectedType, block) {
    var input = _this__u8e3s4.f1c();
    try {
      return block(input);
    } catch ($p) {
      if ($p instanceof IllegalArgumentException) {
        var tmp = "Failed to parse type '" + expectedType + "' for input '" + input + "'";
        _this__u8e3s4.d1b(tmp, 0, null, 6, null);
      } else {
        throw $p;
      }
    }
  }
  function JsonDecoderForUnsignedTypes(lexer, json) {
    AbstractDecoder.call(this);
    this.f1e_1 = lexer;
    this.g1e_1 = json.cr();
  }
  JsonDecoderForUnsignedTypes.prototype.cr = function () {
    return this.g1e_1;
  };
  JsonDecoderForUnsignedTypes.prototype.xt = function (descriptor) {
    throw IllegalStateException_init_$Create$('unsupported');
  };
  JsonDecoderForUnsignedTypes.prototype.ys = function () {
    var tmp$ret$2;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.f1e_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$1;
        // Inline function 'kotlinx.serialization.json.internal.JsonDecoderForUnsignedTypes.decodeInt.<anonymous>' call
        var tmp$ret$0;
        // Inline function 'kotlin.UInt.toInt' call
        var tmp0_toInt = toUInt(input);
        tmp$ret$0 = _UInt___get_data__impl__f0vqqw(tmp0_toInt);
        tmp$ret$1 = tmp$ret$0;
        tmp$ret$2 = tmp$ret$1;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'UInt' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$2;
  };
  JsonDecoderForUnsignedTypes.prototype.zs = function () {
    var tmp$ret$2;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.f1e_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$1;
        // Inline function 'kotlinx.serialization.json.internal.JsonDecoderForUnsignedTypes.decodeLong.<anonymous>' call
        var tmp$ret$0;
        // Inline function 'kotlin.ULong.toLong' call
        var tmp0_toLong = toULong(input);
        tmp$ret$0 = _ULong___get_data__impl__fggpzb(tmp0_toLong);
        tmp$ret$1 = tmp$ret$0;
        tmp$ret$2 = tmp$ret$1;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'ULong' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$2;
  };
  JsonDecoderForUnsignedTypes.prototype.ws = function () {
    var tmp$ret$2;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.f1e_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$1;
        // Inline function 'kotlinx.serialization.json.internal.JsonDecoderForUnsignedTypes.decodeByte.<anonymous>' call
        var tmp$ret$0;
        // Inline function 'kotlin.UByte.toByte' call
        var tmp0_toByte = toUByte(input);
        tmp$ret$0 = _UByte___get_data__impl__jof9qr(tmp0_toByte);
        tmp$ret$1 = tmp$ret$0;
        tmp$ret$2 = tmp$ret$1;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'UByte' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$2;
  };
  JsonDecoderForUnsignedTypes.prototype.xs = function () {
    var tmp$ret$2;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.parseString' call
      var tmp0_parseString = this.f1e_1;
      var input = tmp0_parseString.f1c();
      try {
        var tmp$ret$1;
        // Inline function 'kotlinx.serialization.json.internal.JsonDecoderForUnsignedTypes.decodeShort.<anonymous>' call
        var tmp$ret$0;
        // Inline function 'kotlin.UShort.toShort' call
        var tmp0_toShort = toUShort(input);
        tmp$ret$0 = _UShort___get_data__impl__g0245(tmp0_toShort);
        tmp$ret$1 = tmp$ret$0;
        tmp$ret$2 = tmp$ret$1;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          var tmp = "Failed to parse type 'UShort' for input '" + input + "'";
          tmp0_parseString.d1b(tmp, 0, null, 6, null);
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$2;
  };
  JsonDecoderForUnsignedTypes.$metadata$ = classMeta('JsonDecoderForUnsignedTypes', undefined, undefined, undefined, undefined, AbstractDecoder.prototype);
  function get_unsignedNumberDescriptors() {
    init_properties_StreamingJsonEncoder_kt_qkpchk();
    return unsignedNumberDescriptors;
  }
  var unsignedNumberDescriptors;
  function StreamingJsonEncoder_init_$Init$(output, json, mode, modeReuseCache, $this) {
    StreamingJsonEncoder.call($this, Composer_0(output, json), json, mode, modeReuseCache);
    return $this;
  }
  function StreamingJsonEncoder_init_$Create$(output, json, mode, modeReuseCache) {
    return StreamingJsonEncoder_init_$Init$(output, json, mode, modeReuseCache, Object.create(StreamingJsonEncoder.prototype));
  }
  function encodeTypeInfo($this, descriptor) {
    $this.q1b_1.e1a();
    $this.ku(ensureNotNull($this.x1b_1));
    $this.q1b_1.g1a(get_COLON());
    $this.q1b_1.f1a();
    $this.ku(descriptor.yq());
  }
  function composerForUnsignedNumbers($this) {
    var tmp;
    var tmp_0 = $this.q1b_1;
    if (tmp_0 instanceof ComposerForUnsignedNumbers) {
      tmp = $this.q1b_1;
    } else {
      tmp = new ComposerForUnsignedNumbers($this.q1b_1.a1a_1, $this.w1b_1);
    }
    return tmp;
  }
  function StreamingJsonEncoder(composer, json, mode, modeReuseCache) {
    AbstractEncoder.call(this);
    this.q1b_1 = composer;
    this.r1b_1 = json;
    this.s1b_1 = mode;
    this.t1b_1 = modeReuseCache;
    this.u1b_1 = this.r1b_1.cr();
    this.v1b_1 = this.r1b_1.m17_1;
    this.w1b_1 = false;
    this.x1b_1 = null;
    var i = this.s1b_1.q2_1;
    if (!(this.t1b_1 == null)) {
      if (!(this.t1b_1[i] === null) ? true : !(this.t1b_1[i] === this)) {
        this.t1b_1[i] = this;
      }
    }
  }
  StreamingJsonEncoder.prototype.u18 = function () {
    return this.r1b_1;
  };
  StreamingJsonEncoder.prototype.cr = function () {
    return this.u1b_1;
  };
  StreamingJsonEncoder.prototype.cv = function (descriptor, index) {
    return this.v1b_1.g18_1;
  };
  StreamingJsonEncoder.prototype.xu = function (serializer, value) {
    var tmp$ret$0;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.encodePolymorphically' call
      var tmp;
      if (!(serializer instanceof AbstractPolymorphicSerializer)) {
        tmp = true;
      } else {
        tmp = this.u18().m17_1.o18_1;
      }
      if (tmp) {
        serializer.cq(this, value);
        tmp$ret$0 = Unit_getInstance();
        break $l$block;
      }
      var casted = serializer instanceof AbstractPolymorphicSerializer ? serializer : THROW_CCE();
      var baseClassDiscriminator = classDiscriminator(serializer.bq(), this.u18());
      var actualSerializer = findPolymorphicSerializer(casted, this, isObject(value) ? value : THROW_CCE());
      validateIfSealed$accessor$1ad0flx(casted, actualSerializer, baseClassDiscriminator);
      checkKind(actualSerializer.bq().pr());
      // Inline function 'kotlinx.serialization.json.internal.StreamingJsonEncoder.encodeSerializableValue.<anonymous>' call
      this.x1b_1 = baseClassDiscriminator;
      actualSerializer.cq(this, value);
    }
  };
  StreamingJsonEncoder.prototype.it = function (descriptor) {
    var newMode = switchMode(this.r1b_1, descriptor);
    if (!equals(new Char(newMode.a1e_1), new Char(get_INVALID()))) {
      this.q1b_1.g1a(newMode.a1e_1);
      this.q1b_1.c1a();
    }
    if (!(this.x1b_1 == null)) {
      encodeTypeInfo(this, descriptor);
      this.x1b_1 = null;
    }
    if (this.s1b_1.equals(newMode)) {
      return this;
    }
    var tmp0_safe_receiver = this.t1b_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver[newMode.q2_1];
    return tmp1_elvis_lhs == null ? new StreamingJsonEncoder(this.q1b_1, this.r1b_1, newMode, this.t1b_1) : tmp1_elvis_lhs;
  };
  StreamingJsonEncoder.prototype.jt = function (descriptor) {
    if (!equals(new Char(this.s1b_1.b1e_1), new Char(get_INVALID()))) {
      this.q1b_1.d1a();
      this.q1b_1.e1a();
      this.q1b_1.g1a(this.s1b_1.b1e_1);
    }
  };
  StreamingJsonEncoder.prototype.zt = function (descriptor, index) {
    var tmp0_subject = this.s1b_1;
    var tmp0 = tmp0_subject.q2_1;
    switch (tmp0) {
      case 1:
        if (!this.q1b_1.b1a_1) {
          this.q1b_1.g1a(get_COMMA());
        }

        this.q1b_1.e1a();
        ;
        break;
      case 2:
        if (!this.q1b_1.b1a_1) {
          var tmp = this;
          var tmp_0;
          if ((index % 2 | 0) === 0) {
            this.q1b_1.g1a(get_COMMA());
            this.q1b_1.e1a();
            tmp_0 = true;
          } else {
            this.q1b_1.g1a(get_COLON());
            this.q1b_1.f1a();
            tmp_0 = false;
          }
          tmp.w1b_1 = tmp_0;
        } else {
          this.w1b_1 = true;
          this.q1b_1.e1a();
        }

        break;
      case 3:
        if (index === 0)
          this.w1b_1 = true;
        if (index === 1) {
          this.q1b_1.g1a(get_COMMA());
          this.q1b_1.f1a();
          this.w1b_1 = false;
        }

        break;
      default:
        if (!this.q1b_1.b1a_1) {
          this.q1b_1.g1a(get_COMMA());
        }

        this.q1b_1.e1a();
        this.ku(descriptor.tr(index));
        this.q1b_1.g1a(get_COLON());
        this.q1b_1.f1a();
        ;
        break;
    }
    return true;
  };
  StreamingJsonEncoder.prototype.yu = function (descriptor, index, serializer, value) {
    if (!(value == null) ? true : this.v1b_1.l18_1) {
      AbstractEncoder.prototype.yu.call(this, descriptor, index, serializer, value);
    }
  };
  StreamingJsonEncoder.prototype.mu = function (descriptor) {
    return get_isUnsignedNumber(descriptor) ? new StreamingJsonEncoder(composerForUnsignedNumbers(this), this.r1b_1, this.s1b_1, null) : AbstractEncoder.prototype.mu.call(this, descriptor);
  };
  StreamingJsonEncoder.prototype.bu = function () {
    this.q1b_1.i1a(get_NULL());
  };
  StreamingJsonEncoder.prototype.cu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.r1a(value);
    }
  };
  StreamingJsonEncoder.prototype.du = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.m1a(value);
    }
  };
  StreamingJsonEncoder.prototype.eu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.o1a(value);
    }
  };
  StreamingJsonEncoder.prototype.fu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.p1a(value);
    }
  };
  StreamingJsonEncoder.prototype.gu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.q1a(value);
    }
  };
  StreamingJsonEncoder.prototype.hu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.k1a(value);
    }
    if (!this.v1b_1.q18_1 ? !isFinite(value) : false) {
      throw InvalidFloatingPointEncoded(value, toString(this.q1b_1.a1a_1));
    }
  };
  StreamingJsonEncoder.prototype.iu = function (value) {
    if (this.w1b_1) {
      this.ku(value.toString());
    } else {
      this.q1b_1.l1a(value);
    }
    if (!this.v1b_1.q18_1 ? !isFinite_0(value) : false) {
      throw InvalidFloatingPointEncoded(value, toString(this.q1b_1.a1a_1));
    }
  };
  StreamingJsonEncoder.prototype.ju = function (value) {
    this.ku(toString_0(value));
  };
  StreamingJsonEncoder.prototype.ku = function (value) {
    return this.q1b_1.s1a(value);
  };
  StreamingJsonEncoder.prototype.lu = function (enumDescriptor, index) {
    this.ku(enumDescriptor.tr(index));
  };
  StreamingJsonEncoder.$metadata$ = classMeta('StreamingJsonEncoder', [JsonEncoder], undefined, undefined, undefined, AbstractEncoder.prototype);
  function get_isUnsignedNumber(_this__u8e3s4) {
    init_properties_StreamingJsonEncoder_kt_qkpchk();
    return _this__u8e3s4.or() ? get_unsignedNumberDescriptors().r(_this__u8e3s4) : false;
  }
  var properties_initialized_StreamingJsonEncoder_kt_6ifwwk;
  function init_properties_StreamingJsonEncoder_kt_qkpchk() {
    if (properties_initialized_StreamingJsonEncoder_kt_6ifwwk) {
    } else {
      properties_initialized_StreamingJsonEncoder_kt_6ifwwk = true;
      unsignedNumberDescriptors = setOf([serializer_1(Companion_getInstance_1()).bq(), serializer_0(Companion_getInstance()).bq(), serializer_2(Companion_getInstance_2()).bq(), serializer_3(Companion_getInstance_3()).bq()]);
    }
  }
  function get_ESCAPE_STRINGS() {
    init_properties_StringOps_kt_g67jhv();
    return ESCAPE_STRINGS;
  }
  var ESCAPE_STRINGS;
  var ESCAPE_MARKERS;
  function toHexChar(i) {
    init_properties_StringOps_kt_g67jhv();
    var d = i & 15;
    var tmp;
    if (d < 10) {
      var tmp$ret$0;
      // Inline function 'kotlin.code' call
      tmp$ret$0 = 48;
      tmp = numberToChar(d + tmp$ret$0 | 0);
    } else {
      var tmp_0 = d - 10 | 0;
      var tmp$ret$1;
      // Inline function 'kotlin.code' call
      tmp$ret$1 = 97;
      tmp = numberToChar(tmp_0 + tmp$ret$1 | 0);
    }
    return tmp;
  }
  function printQuoted(_this__u8e3s4, value) {
    init_properties_StringOps_kt_g67jhv();
    _this__u8e3s4.g2(get_STRING());
    var lastPos = 0;
    var inductionVariable = 0;
    var last = charSequenceLength(value) - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp$ret$0;
        // Inline function 'kotlin.code' call
        var tmp0__get_code__88qj9g = charSequenceGet(value, i);
        tmp$ret$0 = Char__toInt_impl_vasixd(tmp0__get_code__88qj9g);
        var c = tmp$ret$0;
        if (c < get_ESCAPE_STRINGS().length ? !(get_ESCAPE_STRINGS()[c] == null) : false) {
          _this__u8e3s4.xl(value, lastPos, i);
          _this__u8e3s4.gc(get_ESCAPE_STRINGS()[c]);
          lastPos = i + 1 | 0;
        }
      }
       while (inductionVariable <= last);
    if (!(lastPos === 0)) {
      _this__u8e3s4.xl(value, lastPos, value.length);
    } else {
      _this__u8e3s4.gc(value);
    }
    _this__u8e3s4.g2(get_STRING());
  }
  function toBooleanStrictOrNull(_this__u8e3s4) {
    init_properties_StringOps_kt_g67jhv();
    return equals_0(_this__u8e3s4, 'true', true) ? true : equals_0(_this__u8e3s4, 'false', true) ? false : null;
  }
  var properties_initialized_StringOps_kt_wzaea7;
  function init_properties_StringOps_kt_g67jhv() {
    if (properties_initialized_StringOps_kt_wzaea7) {
    } else {
      properties_initialized_StringOps_kt_wzaea7 = true;
      var tmp$ret$7;
      // Inline function 'kotlin.apply' call
      var tmp$ret$0;
      // Inline function 'kotlin.arrayOfNulls' call
      tmp$ret$0 = fillArrayVal(Array(93), null);
      var tmp0_apply = tmp$ret$0;
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.serialization.json.internal.ESCAPE_STRINGS.<anonymous>' call
      var inductionVariable = 0;
      if (inductionVariable <= 31)
        do {
          var c = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var c1 = toHexChar(c >> 12);
          var c2 = toHexChar(c >> 8);
          var c3 = toHexChar(c >> 4);
          var c4 = toHexChar(c);
          tmp0_apply[c] = '\\u' + new Char(c1) + new Char(c2) + new Char(c3) + new Char(c4);
        }
         while (inductionVariable <= 31);
      var tmp$ret$1;
      // Inline function 'kotlin.code' call
      tmp$ret$1 = 34;
      tmp0_apply[tmp$ret$1] = '\\"';
      var tmp$ret$2;
      // Inline function 'kotlin.code' call
      tmp$ret$2 = 92;
      tmp0_apply[tmp$ret$2] = '\\\\';
      var tmp$ret$3;
      // Inline function 'kotlin.code' call
      tmp$ret$3 = 9;
      tmp0_apply[tmp$ret$3] = '\\t';
      var tmp$ret$4;
      // Inline function 'kotlin.code' call
      tmp$ret$4 = 8;
      tmp0_apply[tmp$ret$4] = '\\b';
      var tmp$ret$5;
      // Inline function 'kotlin.code' call
      tmp$ret$5 = 10;
      tmp0_apply[tmp$ret$5] = '\\n';
      var tmp$ret$6;
      // Inline function 'kotlin.code' call
      tmp$ret$6 = 13;
      tmp0_apply[tmp$ret$6] = '\\r';
      tmp0_apply[12] = '\\f';
      tmp$ret$7 = tmp0_apply;
      ESCAPE_STRINGS = tmp$ret$7;
      var tmp$ret$13;
      // Inline function 'kotlin.apply' call
      var tmp0_apply_0 = new Int8Array(93);
      // Inline function 'kotlin.contracts.contract' call
      // Inline function 'kotlinx.serialization.json.internal.ESCAPE_MARKERS.<anonymous>' call
      var inductionVariable_0 = 0;
      if (inductionVariable_0 <= 31)
        do {
          var c_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          tmp0_apply_0[c_0] = 1;
        }
         while (inductionVariable_0 <= 31);
      var tmp$ret$0_0;
      // Inline function 'kotlin.code' call
      tmp$ret$0_0 = 34;
      var tmp = tmp$ret$0_0;
      var tmp$ret$1_0;
      // Inline function 'kotlin.code' call
      tmp$ret$1_0 = 34;
      tmp0_apply_0[tmp] = toByte(tmp$ret$1_0);
      var tmp$ret$2_0;
      // Inline function 'kotlin.code' call
      tmp$ret$2_0 = 92;
      var tmp_0 = tmp$ret$2_0;
      var tmp$ret$3_0;
      // Inline function 'kotlin.code' call
      tmp$ret$3_0 = 92;
      tmp0_apply_0[tmp_0] = toByte(tmp$ret$3_0);
      var tmp$ret$4_0;
      // Inline function 'kotlin.code' call
      tmp$ret$4_0 = 9;
      var tmp_1 = tmp$ret$4_0;
      var tmp$ret$5_0;
      // Inline function 'kotlin.code' call
      tmp$ret$5_0 = 116;
      tmp0_apply_0[tmp_1] = toByte(tmp$ret$5_0);
      var tmp$ret$6_0;
      // Inline function 'kotlin.code' call
      tmp$ret$6_0 = 8;
      var tmp_2 = tmp$ret$6_0;
      var tmp$ret$7_0;
      // Inline function 'kotlin.code' call
      tmp$ret$7_0 = 98;
      tmp0_apply_0[tmp_2] = toByte(tmp$ret$7_0);
      var tmp$ret$8;
      // Inline function 'kotlin.code' call
      tmp$ret$8 = 10;
      var tmp_3 = tmp$ret$8;
      var tmp$ret$9;
      // Inline function 'kotlin.code' call
      tmp$ret$9 = 110;
      tmp0_apply_0[tmp_3] = toByte(tmp$ret$9);
      var tmp$ret$10;
      // Inline function 'kotlin.code' call
      tmp$ret$10 = 13;
      var tmp_4 = tmp$ret$10;
      var tmp$ret$11;
      // Inline function 'kotlin.code' call
      tmp$ret$11 = 114;
      tmp0_apply_0[tmp_4] = toByte(tmp$ret$11);
      var tmp$ret$12;
      // Inline function 'kotlin.code' call
      tmp$ret$12 = 102;
      tmp0_apply_0[12] = toByte(tmp$ret$12);
      tmp$ret$13 = tmp0_apply_0;
      ESCAPE_MARKERS = tmp$ret$13;
    }
  }
  function currentObject($this) {
    var tmp0_safe_receiver = $this.f15();
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      var tmp$ret$1;
      // Inline function 'kotlin.let' call
      // Inline function 'kotlin.contracts.contract' call
      var tmp$ret$0;
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.currentObject.<anonymous>' call
      tmp$ret$0 = $this.m1e(tmp0_safe_receiver);
      tmp$ret$1 = tmp$ret$0;
      tmp = tmp$ret$1;
    }
    var tmp1_elvis_lhs = tmp;
    return tmp1_elvis_lhs == null ? $this.l1() : tmp1_elvis_lhs;
  }
  function unparsedPrimitive($this, primitive) {
    throw JsonDecodingException_0(-1, "Failed to parse '" + primitive + "'", toString(currentObject($this)));
  }
  function asLiteral(_this__u8e3s4, $this, type) {
    var tmp0_elvis_lhs = _this__u8e3s4 instanceof JsonLiteral ? _this__u8e3s4 : null;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw JsonDecodingException_1(-1, "Unexpected 'null' when " + type + ' was expected');
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  function AbstractJsonTreeDecoder(json, value) {
    NamedValueDecoder.call(this);
    this.j1e_1 = json;
    this.k1e_1 = value;
    this.l1e_1 = this.u18().m17_1;
  }
  AbstractJsonTreeDecoder.prototype.u18 = function () {
    return this.j1e_1;
  };
  AbstractJsonTreeDecoder.prototype.l1 = function () {
    return this.k1e_1;
  };
  AbstractJsonTreeDecoder.prototype.cr = function () {
    return this.u18().cr();
  };
  AbstractJsonTreeDecoder.prototype.v18 = function () {
    return currentObject(this);
  };
  AbstractJsonTreeDecoder.prototype.ht = function (deserializer) {
    return decodeSerializableValuePolymorphic(this, deserializer);
  };
  AbstractJsonTreeDecoder.prototype.g15 = function (parentName, childName) {
    return childName;
  };
  AbstractJsonTreeDecoder.prototype.it = function (descriptor) {
    var currentObject_0 = currentObject(this);
    var tmp0_subject = descriptor.pr();
    var tmp;
    var tmp_0;
    if (equals(tmp0_subject, LIST_getInstance())) {
      tmp_0 = true;
    } else {
      tmp_0 = tmp0_subject instanceof PolymorphicKind;
    }
    if (tmp_0) {
      var tmp_1 = this.u18();
      var tmp$ret$0;
      // Inline function 'kotlinx.serialization.json.internal.cast' call
      if (!(currentObject_0 instanceof JsonArray)) {
        throw JsonDecodingException_1(-1, 'Expected ' + getKClass(JsonArray) + ' as the serialized body of ' + descriptor.yq() + ', but had ' + getKClassFromExpression(currentObject_0));
      }
      tmp$ret$0 = currentObject_0;
      tmp = new JsonTreeListDecoder(tmp_1, tmp$ret$0);
    } else {
      if (equals(tmp0_subject, MAP_getInstance())) {
        var tmp$ret$5;
        // Inline function 'kotlinx.serialization.json.internal.selectMapMode' call
        var tmp0_selectMapMode = this.u18();
        var keyDescriptor = carrierDescriptor(descriptor.rr(0), tmp0_selectMapMode.cr());
        var keyKind = keyDescriptor.pr();
        var tmp_2;
        var tmp_3;
        if (keyKind instanceof PrimitiveKind) {
          tmp_3 = true;
        } else {
          tmp_3 = equals(keyKind, ENUM_getInstance());
        }
        if (tmp_3) {
          var tmp$ret$2;
          // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.beginStructure.<anonymous>' call
          var tmp_4 = this.u18();
          var tmp$ret$1;
          // Inline function 'kotlinx.serialization.json.internal.cast' call
          if (!(currentObject_0 instanceof JsonObject)) {
            throw JsonDecodingException_1(-1, 'Expected ' + getKClass(JsonObject) + ' as the serialized body of ' + descriptor.yq() + ', but had ' + getKClassFromExpression(currentObject_0));
          }
          tmp$ret$1 = currentObject_0;
          tmp$ret$2 = new JsonTreeMapDecoder(tmp_4, tmp$ret$1);
          tmp_2 = tmp$ret$2;
        } else {
          if (tmp0_selectMapMode.m17_1.j18_1) {
            var tmp$ret$4;
            // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.beginStructure.<anonymous>' call
            var tmp_5 = this.u18();
            var tmp$ret$3;
            // Inline function 'kotlinx.serialization.json.internal.cast' call
            if (!(currentObject_0 instanceof JsonArray)) {
              throw JsonDecodingException_1(-1, 'Expected ' + getKClass(JsonArray) + ' as the serialized body of ' + descriptor.yq() + ', but had ' + getKClassFromExpression(currentObject_0));
            }
            tmp$ret$3 = currentObject_0;
            tmp$ret$4 = new JsonTreeListDecoder(tmp_5, tmp$ret$3);
            tmp_2 = tmp$ret$4;
          } else {
            throw InvalidKeyKindException(keyDescriptor);
          }
        }
        tmp$ret$5 = tmp_2;
        tmp = tmp$ret$5;
      } else {
        var tmp_6 = this.u18();
        var tmp$ret$6;
        // Inline function 'kotlinx.serialization.json.internal.cast' call
        if (!(currentObject_0 instanceof JsonObject)) {
          throw JsonDecodingException_1(-1, 'Expected ' + getKClass(JsonObject) + ' as the serialized body of ' + descriptor.yq() + ', but had ' + getKClassFromExpression(currentObject_0));
        }
        tmp$ret$6 = currentObject_0;
        var tmp_7 = tmp$ret$6;
        tmp = JsonTreeDecoder_init_$Create$(tmp_6, tmp_7, null, null, 12, null);
      }
    }
    return tmp;
  };
  AbstractJsonTreeDecoder.prototype.jt = function (descriptor) {
  };
  AbstractJsonTreeDecoder.prototype.ts = function () {
    var tmp = currentObject(this);
    return !(tmp instanceof JsonNull);
  };
  AbstractJsonTreeDecoder.prototype.n1e = function (tag) {
    var currentElement = this.m1e(tag);
    var tmp0_elvis_lhs = currentElement instanceof JsonPrimitive ? currentElement : null;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      throw JsonDecodingException_0(-1, 'Expected JsonPrimitive at ' + tag + ', found ' + currentElement, toString(currentObject(this)));
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  };
  AbstractJsonTreeDecoder.prototype.o1e = function (tag, enumDescriptor) {
    var tmp = this.u18();
    var tmp_0 = this.n1e(tag).d19();
    return getJsonNameIndexOrThrow$default(enumDescriptor, tmp, tmp_0, null, 4, null);
  };
  AbstractJsonTreeDecoder.prototype.s15 = function (tag, enumDescriptor) {
    return this.o1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE(), enumDescriptor);
  };
  AbstractJsonTreeDecoder.prototype.p1e = function (tag) {
    return !(this.m1e(tag) === JsonNull_getInstance());
  };
  AbstractJsonTreeDecoder.prototype.i15 = function (tag) {
    return this.p1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.q1e = function (tag) {
    var value = this.n1e(tag);
    if (!this.u18().m17_1.i18_1) {
      var literal = asLiteral(value, this, 'boolean');
      if (literal.e19_1)
        throw JsonDecodingException_0(-1, "Boolean literal for key '" + tag + "' should be unquoted.\n" + get_lenientHint(), toString(currentObject(this)));
    }
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedBoolean.<anonymous>' call
        var tmp0_elvis_lhs = get_booleanOrNull(value);
        var tmp;
        if (tmp0_elvis_lhs == null) {
          throw IllegalArgumentException_init_$Create$_0();
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$0 = tmp;
        var tmp0_elvis_lhs_0 = tmp$ret$0;
        var tmp_0;
        if (tmp0_elvis_lhs_0 == null) {
          unparsedPrimitive(this, 'boolean');
        } else {
          tmp_0 = tmp0_elvis_lhs_0;
        }
        tmp$ret$1 = tmp_0;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'boolean');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.j15 = function (tag) {
    return this.q1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.r1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedByte.<anonymous>' call
        var result = get_int(tmp0_primitive);
        var tmp;
        var containsLower = ByteCompanionObject_getInstance().df_1;
        if (result <= ByteCompanionObject_getInstance().ef_1 ? containsLower <= result : false) {
          tmp = toByte(result);
        } else {
          tmp = null;
        }
        tmp$ret$0 = tmp;
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp_0;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'byte');
        } else {
          tmp_0 = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp_0;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'byte');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.k15 = function (tag) {
    return this.r1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.s1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedShort.<anonymous>' call
        var result = get_int(tmp0_primitive);
        var tmp;
        var containsLower = ShortCompanionObject_getInstance().lf_1;
        if (result <= ShortCompanionObject_getInstance().mf_1 ? containsLower <= result : false) {
          tmp = toShort(result);
        } else {
          tmp = null;
        }
        tmp$ret$0 = tmp;
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp_0;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'short');
        } else {
          tmp_0 = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp_0;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'short');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.l15 = function (tag) {
    return this.s1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.t1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedInt.<anonymous>' call
        tmp$ret$0 = get_int(tmp0_primitive);
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'int');
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'int');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.m15 = function (tag) {
    return this.t1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.u1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedLong.<anonymous>' call
        tmp$ret$0 = get_long(tmp0_primitive);
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'long');
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'long');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.n15 = function (tag) {
    return this.u1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.v1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedFloat.<anonymous>' call
        tmp$ret$0 = get_float(tmp0_primitive);
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'float');
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'float');
        } else {
          throw $p;
        }
      }
    }
    var result = tmp$ret$1;
    var specialFp = this.u18().m17_1.q18_1;
    if (specialFp ? true : isFinite(result))
      return result;
    throw InvalidFloatingPointDecoded(result, tag, toString(currentObject(this)));
  };
  AbstractJsonTreeDecoder.prototype.o15 = function (tag) {
    return this.v1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.w1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedDouble.<anonymous>' call
        tmp$ret$0 = get_double(tmp0_primitive);
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp;
        if (tmp0_elvis_lhs == null) {
          unparsedPrimitive(this, 'double');
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'double');
        } else {
          throw $p;
        }
      }
    }
    var result = tmp$ret$1;
    var specialFp = this.u18().m17_1.q18_1;
    if (specialFp ? true : isFinite_0(result))
      return result;
    throw InvalidFloatingPointDecoded(result, tag, toString(currentObject(this)));
  };
  AbstractJsonTreeDecoder.prototype.p15 = function (tag) {
    return this.w1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.x1e = function (tag) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.primitive' call
      var tmp0_primitive = this.n1e(tag);
      try {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeTaggedChar.<anonymous>' call
        tmp$ret$0 = single(tmp0_primitive.d19());
        var tmp0_elvis_lhs = tmp$ret$0;
        var tmp;
        var tmp_0 = tmp0_elvis_lhs;
        if ((tmp_0 == null ? null : new Char(tmp_0)) == null) {
          unparsedPrimitive(this, 'char');
        } else {
          tmp = tmp0_elvis_lhs;
        }
        tmp$ret$1 = tmp;
        break $l$block;
      } catch ($p) {
        if ($p instanceof IllegalArgumentException) {
          unparsedPrimitive(this, 'char');
        } else {
          throw $p;
        }
      }
    }
    return tmp$ret$1;
  };
  AbstractJsonTreeDecoder.prototype.q15 = function (tag) {
    return this.x1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.y1e = function (tag) {
    var value = this.n1e(tag);
    if (!this.u18().m17_1.i18_1) {
      var literal = asLiteral(value, this, 'string');
      if (!literal.e19_1)
        throw JsonDecodingException_0(-1, "String literal for key '" + tag + "' should be quoted.\n" + get_lenientHint(), toString(currentObject(this)));
    }
    if (value instanceof JsonNull)
      throw JsonDecodingException_0(-1, "Unexpected 'null' value instead of string literal", toString(currentObject(this)));
    return value.d19();
  };
  AbstractJsonTreeDecoder.prototype.r15 = function (tag) {
    return this.y1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE());
  };
  AbstractJsonTreeDecoder.prototype.z1e = function (tag, inlineDescriptor) {
    return get_isUnsignedNumber(inlineDescriptor) ? new JsonDecoderForUnsignedTypes(new StringJsonLexer(this.n1e(tag).d19()), this.u18()) : NamedValueDecoder.prototype.t15.call(this, tag, inlineDescriptor);
  };
  AbstractJsonTreeDecoder.prototype.t15 = function (tag, inlineDescriptor) {
    return this.z1e((!(tag == null) ? typeof tag === 'string' : false) ? tag : THROW_CCE(), inlineDescriptor);
  };
  AbstractJsonTreeDecoder.$metadata$ = classMeta('AbstractJsonTreeDecoder', [JsonDecoder], undefined, undefined, undefined, NamedValueDecoder.prototype);
  function JsonTreeDecoder_init_$Init$(json, value, polyDiscriminator, polyDescriptor, $mask0, $marker, $this) {
    if (!(($mask0 & 4) === 0))
      polyDiscriminator = null;
    if (!(($mask0 & 8) === 0))
      polyDescriptor = null;
    JsonTreeDecoder.call($this, json, value, polyDiscriminator, polyDescriptor);
    return $this;
  }
  function JsonTreeDecoder_init_$Create$(json, value, polyDiscriminator, polyDescriptor, $mask0, $marker) {
    return JsonTreeDecoder_init_$Init$(json, value, polyDiscriminator, polyDescriptor, $mask0, $marker, Object.create(JsonTreeDecoder.prototype));
  }
  function coerceInputValue_0($this, descriptor, index, tag) {
    var tmp$ret$1;
    $l$block_1: {
      // Inline function 'kotlinx.serialization.json.internal.tryCoerceValue' call
      var tmp0_tryCoerceValue = $this.u18();
      var tmp1_tryCoerceValue = descriptor.rr(index);
      var tmp;
      if (!tmp1_tryCoerceValue.ir()) {
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.JsonTreeDecoder.coerceInputValue.<anonymous>' call
        var tmp_0 = $this.m1e(tag);
        tmp$ret$0 = tmp_0 instanceof JsonNull;
        tmp = tmp$ret$0;
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$1 = true;
        break $l$block_1;
      }
      if (equals(tmp1_tryCoerceValue.pr(), ENUM_getInstance())) {
        var tmp$ret$2;
        // Inline function 'kotlinx.serialization.json.internal.JsonTreeDecoder.coerceInputValue.<anonymous>' call
        var tmp_1 = $this.m1e(tag);
        var tmp0_safe_receiver = tmp_1 instanceof JsonPrimitive ? tmp_1 : null;
        tmp$ret$2 = tmp0_safe_receiver == null ? null : get_contentOrNull(tmp0_safe_receiver);
        var tmp0_elvis_lhs = tmp$ret$2;
        var tmp_2;
        if (tmp0_elvis_lhs == null) {
          tmp$ret$1 = false;
          break $l$block_1;
        } else {
          tmp_2 = tmp0_elvis_lhs;
        }
        var enumValue = tmp_2;
        var enumIndex = getJsonNameIndex(tmp1_tryCoerceValue, tmp0_tryCoerceValue, enumValue);
        Companion_getInstance_0();
        if (enumIndex === -3) {
          var tmp$ret$3;
          // Inline function 'kotlinx.serialization.json.internal.tryCoerceValue.<anonymous>' call
          tmp$ret$3 = Unit_getInstance();
          tmp$ret$1 = true;
          break $l$block_1;
        }
      }
      tmp$ret$1 = false;
    }
    return tmp$ret$1;
  }
  function absenceIsNull($this, descriptor, index) {
    $this.j1f_1 = (!$this.u18().m17_1.l18_1 ? !descriptor.ur(index) : false) ? descriptor.rr(index).ir() : false;
    return $this.j1f_1;
  }
  function buildAlternativeNamesMap$ref_0($boundThis) {
    var l = function () {
      return buildAlternativeNamesMap($boundThis);
    };
    l.callableName = 'buildAlternativeNamesMap';
    return l;
  }
  function JsonTreeDecoder(json, value, polyDiscriminator, polyDescriptor) {
    AbstractJsonTreeDecoder.call(this, json, value);
    this.f1f_1 = value;
    this.g1f_1 = polyDiscriminator;
    this.h1f_1 = polyDescriptor;
    this.i1f_1 = 0;
    this.j1f_1 = false;
  }
  JsonTreeDecoder.prototype.l1 = function () {
    return this.f1f_1;
  };
  JsonTreeDecoder.prototype.xt = function (descriptor) {
    while (this.i1f_1 < descriptor.nr()) {
      var tmp0_this = this;
      var tmp1 = tmp0_this.i1f_1;
      tmp0_this.i1f_1 = tmp1 + 1 | 0;
      var name = this.a15(descriptor, tmp1);
      var index = this.i1f_1 - 1 | 0;
      this.j1f_1 = false;
      var tmp;
      var tmp_0;
      var tmp$ret$1;
      // Inline function 'kotlin.collections.contains' call
      var tmp0_contains = this.l1();
      var tmp$ret$0;
      // Inline function 'kotlin.collections.containsKey' call
      tmp$ret$0 = (isInterface(tmp0_contains, Map) ? tmp0_contains : THROW_CCE()).r3(name);
      tmp$ret$1 = tmp$ret$0;
      if (tmp$ret$1) {
        tmp_0 = true;
      } else {
        tmp_0 = absenceIsNull(this, descriptor, index);
      }
      if (tmp_0) {
        tmp = !this.l1e_1.n18_1 ? true : !coerceInputValue_0(this, descriptor, index, name);
      } else {
        tmp = false;
      }
      if (tmp) {
        return index;
      }
    }
    Companion_getInstance_0();
    return -1;
  };
  JsonTreeDecoder.prototype.ts = function () {
    return !this.j1f_1 ? AbstractJsonTreeDecoder.prototype.ts.call(this) : false;
  };
  JsonTreeDecoder.prototype.b15 = function (desc, index) {
    var mainName = desc.tr(index);
    if (!this.l1e_1.r18_1)
      return mainName;
    if (this.l1().v3().r(mainName))
      return mainName;
    var tmp = get_schemaCache(this.u18());
    var tmp_0 = get_JsonAlternativeNamesKey();
    var alternativeNamesMap = tmp.f1b(desc, tmp_0, buildAlternativeNamesMap$ref_0(desc));
    var tmp$ret$2;
    // Inline function 'kotlin.collections.find' call
    var tmp0_find = this.l1().v3();
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.collections.firstOrNull' call
      var tmp0_iterator = tmp0_find.j();
      while (tmp0_iterator.k()) {
        var element = tmp0_iterator.l();
        var tmp$ret$0;
        // Inline function 'kotlinx.serialization.json.internal.JsonTreeDecoder.elementName.<anonymous>' call
        tmp$ret$0 = alternativeNamesMap.q(element) === index;
        if (tmp$ret$0) {
          tmp$ret$1 = element;
          break $l$block;
        }
      }
      tmp$ret$1 = null;
    }
    tmp$ret$2 = tmp$ret$1;
    var nameInObject = tmp$ret$2;
    var tmp0_elvis_lhs = nameInObject;
    return tmp0_elvis_lhs == null ? mainName : tmp0_elvis_lhs;
  };
  JsonTreeDecoder.prototype.m1e = function (tag) {
    return getValue(this.l1(), tag);
  };
  JsonTreeDecoder.prototype.it = function (descriptor) {
    if (descriptor === this.h1f_1)
      return this;
    return AbstractJsonTreeDecoder.prototype.it.call(this, descriptor);
  };
  JsonTreeDecoder.prototype.jt = function (descriptor) {
    var tmp;
    if (this.l1e_1.h18_1) {
      tmp = true;
    } else {
      var tmp_0 = descriptor.pr();
      tmp = tmp_0 instanceof PolymorphicKind;
    }
    if (tmp)
      return Unit_getInstance();
    var tmp_1;
    if (!this.l1e_1.r18_1) {
      tmp_1 = jsonCachedSerialNames(descriptor);
    } else {
      var tmp_2 = jsonCachedSerialNames(descriptor);
      var tmp$ret$0;
      // Inline function 'kotlin.collections.orEmpty' call
      var tmp0_safe_receiver = get_schemaCache(this.u18()).m1d(descriptor, get_JsonAlternativeNamesKey());
      var tmp0_orEmpty = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.v3();
      var tmp0_elvis_lhs = tmp0_orEmpty;
      tmp$ret$0 = tmp0_elvis_lhs == null ? emptySet() : tmp0_elvis_lhs;
      tmp_1 = plus_0(tmp_2, tmp$ret$0);
    }
    var names = tmp_1;
    var tmp1_iterator = this.l1().v3().j();
    while (tmp1_iterator.k()) {
      var key = tmp1_iterator.l();
      if (!names.r(key) ? !(key === this.g1f_1) : false) {
        throw UnknownKeyException(key, this.l1().toString());
      }
    }
  };
  JsonTreeDecoder.$metadata$ = classMeta('JsonTreeDecoder', undefined, undefined, undefined, undefined, AbstractJsonTreeDecoder.prototype);
  function JsonTreeListDecoder(json, value) {
    AbstractJsonTreeDecoder.call(this, json, value);
    this.p1f_1 = value;
    this.q1f_1 = this.p1f_1.i();
    this.r1f_1 = -1;
  }
  JsonTreeListDecoder.prototype.l1 = function () {
    return this.p1f_1;
  };
  JsonTreeListDecoder.prototype.b15 = function (desc, index) {
    return index.toString();
  };
  JsonTreeListDecoder.prototype.m1e = function (tag) {
    return this.p1f_1.m(toInt(tag));
  };
  JsonTreeListDecoder.prototype.xt = function (descriptor) {
    while (this.r1f_1 < (this.q1f_1 - 1 | 0)) {
      var tmp0_this = this;
      var tmp1 = tmp0_this.r1f_1;
      tmp0_this.r1f_1 = tmp1 + 1 | 0;
      return this.r1f_1;
    }
    Companion_getInstance_0();
    return -1;
  };
  JsonTreeListDecoder.$metadata$ = classMeta('JsonTreeListDecoder', undefined, undefined, undefined, undefined, AbstractJsonTreeDecoder.prototype);
  function JsonTreeMapDecoder(json, value) {
    JsonTreeDecoder_init_$Init$(json, value, null, null, 12, null, this);
    this.c1g_1 = value;
    this.d1g_1 = toList(this.c1g_1.v3());
    this.e1g_1 = imul(this.d1g_1.i(), 2);
    this.f1g_1 = -1;
  }
  JsonTreeMapDecoder.prototype.l1 = function () {
    return this.c1g_1;
  };
  JsonTreeMapDecoder.prototype.b15 = function (desc, index) {
    var i = index / 2 | 0;
    return this.d1g_1.m(i);
  };
  JsonTreeMapDecoder.prototype.xt = function (descriptor) {
    while (this.f1g_1 < (this.e1g_1 - 1 | 0)) {
      var tmp0_this = this;
      var tmp1 = tmp0_this.f1g_1;
      tmp0_this.f1g_1 = tmp1 + 1 | 0;
      return this.f1g_1;
    }
    Companion_getInstance_0();
    return -1;
  };
  JsonTreeMapDecoder.prototype.m1e = function (tag) {
    return (this.f1g_1 % 2 | 0) === 0 ? JsonPrimitive_0(tag) : getValue(this.c1g_1, tag);
  };
  JsonTreeMapDecoder.prototype.jt = function (descriptor) {
  };
  JsonTreeMapDecoder.$metadata$ = classMeta('JsonTreeMapDecoder', undefined, undefined, undefined, undefined, JsonTreeDecoder.prototype);
  function readPolymorphicJson(_this__u8e3s4, discriminator, element, deserializer) {
    return (new JsonTreeDecoder(_this__u8e3s4, element, discriminator, deserializer.bq())).ht(deserializer);
  }
  var WriteMode_OBJ_instance;
  var WriteMode_LIST_instance;
  var WriteMode_MAP_instance;
  var WriteMode_POLY_OBJ_instance;
  function values() {
    return [WriteMode_OBJ_getInstance(), WriteMode_LIST_getInstance(), WriteMode_MAP_getInstance(), WriteMode_POLY_OBJ_getInstance()];
  }
  var WriteMode_entriesInitialized;
  function WriteMode_initEntries() {
    if (WriteMode_entriesInitialized)
      return Unit_getInstance();
    WriteMode_entriesInitialized = true;
    WriteMode_OBJ_instance = new WriteMode('OBJ', 0, get_BEGIN_OBJ(), get_END_OBJ());
    WriteMode_LIST_instance = new WriteMode('LIST', 1, get_BEGIN_LIST(), get_END_LIST());
    WriteMode_MAP_instance = new WriteMode('MAP', 2, get_BEGIN_OBJ(), get_END_OBJ());
    WriteMode_POLY_OBJ_instance = new WriteMode('POLY_OBJ', 3, get_BEGIN_LIST(), get_END_LIST());
  }
  function WriteMode(name, ordinal, begin, end) {
    Enum.call(this, name, ordinal);
    this.a1e_1 = begin;
    this.b1e_1 = end;
  }
  WriteMode.$metadata$ = classMeta('WriteMode', undefined, undefined, undefined, undefined, Enum.prototype);
  function switchMode(_this__u8e3s4, desc) {
    var tmp0_subject = desc.pr();
    var tmp;
    if (tmp0_subject instanceof PolymorphicKind) {
      tmp = WriteMode_POLY_OBJ_getInstance();
    } else {
      if (equals(tmp0_subject, LIST_getInstance())) {
        tmp = WriteMode_LIST_getInstance();
      } else {
        if (equals(tmp0_subject, MAP_getInstance())) {
          var tmp$ret$2;
          // Inline function 'kotlinx.serialization.json.internal.selectMapMode' call
          var keyDescriptor = carrierDescriptor(desc.rr(0), _this__u8e3s4.cr());
          var keyKind = keyDescriptor.pr();
          var tmp_0;
          var tmp_1;
          if (keyKind instanceof PrimitiveKind) {
            tmp_1 = true;
          } else {
            tmp_1 = equals(keyKind, ENUM_getInstance());
          }
          if (tmp_1) {
            var tmp$ret$0;
            // Inline function 'kotlinx.serialization.json.internal.switchMode.<anonymous>' call
            tmp$ret$0 = WriteMode_MAP_getInstance();
            tmp_0 = tmp$ret$0;
          } else {
            if (_this__u8e3s4.m17_1.j18_1) {
              var tmp$ret$1;
              // Inline function 'kotlinx.serialization.json.internal.switchMode.<anonymous>' call
              tmp$ret$1 = WriteMode_LIST_getInstance();
              tmp_0 = tmp$ret$1;
            } else {
              throw InvalidKeyKindException(keyDescriptor);
            }
          }
          tmp$ret$2 = tmp_0;
          tmp = tmp$ret$2;
        } else {
          tmp = WriteMode_OBJ_getInstance();
        }
      }
    }
    return tmp;
  }
  function selectMapMode(_this__u8e3s4, mapDescriptor, ifMap, ifList) {
    var keyDescriptor = carrierDescriptor(mapDescriptor.rr(0), _this__u8e3s4.cr());
    var keyKind = keyDescriptor.pr();
    var tmp;
    var tmp_0;
    if (keyKind instanceof PrimitiveKind) {
      tmp_0 = true;
    } else {
      tmp_0 = equals(keyKind, ENUM_getInstance());
    }
    if (tmp_0) {
      tmp = ifMap();
    } else {
      if (_this__u8e3s4.m17_1.j18_1) {
        tmp = ifList();
      } else {
        throw InvalidKeyKindException(keyDescriptor);
      }
    }
    return tmp;
  }
  function carrierDescriptor(_this__u8e3s4, module_0) {
    var tmp;
    if (equals(_this__u8e3s4.pr(), CONTEXTUAL_getInstance())) {
      var tmp0_safe_receiver = getContextualDescriptor(module_0, _this__u8e3s4);
      var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : carrierDescriptor(tmp0_safe_receiver, module_0);
      tmp = tmp1_elvis_lhs == null ? _this__u8e3s4 : tmp1_elvis_lhs;
    } else if (_this__u8e3s4.or()) {
      tmp = carrierDescriptor(_this__u8e3s4.rr(0), module_0);
    } else {
      tmp = _this__u8e3s4;
    }
    return tmp;
  }
  function WriteMode_OBJ_getInstance() {
    WriteMode_initEntries();
    return WriteMode_OBJ_instance;
  }
  function WriteMode_LIST_getInstance() {
    WriteMode_initEntries();
    return WriteMode_LIST_instance;
  }
  function WriteMode_MAP_getInstance() {
    WriteMode_initEntries();
    return WriteMode_MAP_instance;
  }
  function WriteMode_POLY_OBJ_getInstance() {
    WriteMode_initEntries();
    return WriteMode_POLY_OBJ_instance;
  }
  function appendEscape($this, lastPosition, current) {
    $this.g1g(lastPosition, current);
    return appendEsc($this, current + 1 | 0);
  }
  function decodedString($this, lastPosition, currentPosition) {
    $this.g1g(lastPosition, currentPosition);
    var result = $this.e18_1.toString();
    $this.e18_1.yl(0);
    return result;
  }
  function takePeeked($this) {
    var tmp$ret$0;
    // Inline function 'kotlin.also' call
    var tmp0_also = ensureNotNull($this.d18_1);
    // Inline function 'kotlin.contracts.contract' call
    // Inline function 'kotlinx.serialization.json.internal.AbstractJsonLexer.takePeeked.<anonymous>' call
    $this.d18_1 = null;
    tmp$ret$0 = tmp0_also;
    return tmp$ret$0;
  }
  function wasUnquotedString($this) {
    return !equals(new Char(charSequenceGet($this.h1g(), $this.b18_1 - 1 | 0)), new Char(_Char___init__impl__6a9atx(34)));
  }
  function appendEsc($this, startPosition) {
    var currentPosition = startPosition;
    currentPosition = $this.i1g(currentPosition);
    if (currentPosition === -1) {
      $this.d1b('Expected escape sequence to continue, got EOF', 0, null, 6, null);
    }
    var tmp = $this.h1g();
    var tmp0 = currentPosition;
    currentPosition = tmp0 + 1 | 0;
    var currentChar = charSequenceGet(tmp, tmp0);
    if (equals(new Char(currentChar), new Char(_Char___init__impl__6a9atx(117)))) {
      return appendHex($this, $this.h1g(), currentPosition);
    }
    var tmp$ret$0;
    // Inline function 'kotlin.code' call
    tmp$ret$0 = Char__toInt_impl_vasixd(currentChar);
    var c = escapeToChar(tmp$ret$0);
    if (equals(new Char(c), new Char(_Char___init__impl__6a9atx(0)))) {
      var tmp_0 = "Invalid escaped char '" + new Char(currentChar) + "'";
      $this.d1b(tmp_0, 0, null, 6, null);
    }
    $this.e18_1.g2(c);
    return currentPosition;
  }
  function appendHex($this, source, startPos) {
    if ((startPos + 4 | 0) >= charSequenceLength(source)) {
      $this.b18_1 = startPos;
      $this.j1g();
      if (($this.b18_1 + 4 | 0) >= charSequenceLength(source)) {
        $this.d1b('Unexpected EOF during unicode escape', 0, null, 6, null);
      }
      return appendHex($this, source, $this.b18_1);
    }
    $this.e18_1.g2(numberToChar((((fromHexChar($this, source, startPos) << 12) + (fromHexChar($this, source, startPos + 1 | 0) << 8) | 0) + (fromHexChar($this, source, startPos + 2 | 0) << 4) | 0) + fromHexChar($this, source, startPos + 3 | 0) | 0));
    return startPos + 4 | 0;
  }
  function fromHexChar($this, source, currentPosition) {
    var character = charSequenceGet(source, currentPosition);
    var tmp;
    if (_Char___init__impl__6a9atx(48) <= character ? character <= _Char___init__impl__6a9atx(57) : false) {
      var tmp$ret$0;
      // Inline function 'kotlin.code' call
      tmp$ret$0 = Char__toInt_impl_vasixd(character);
      var tmp_0 = tmp$ret$0;
      var tmp$ret$1;
      // Inline function 'kotlin.code' call
      tmp$ret$1 = 48;
      tmp = tmp_0 - tmp$ret$1 | 0;
    } else if (_Char___init__impl__6a9atx(97) <= character ? character <= _Char___init__impl__6a9atx(102) : false) {
      var tmp$ret$2;
      // Inline function 'kotlin.code' call
      tmp$ret$2 = Char__toInt_impl_vasixd(character);
      var tmp_1 = tmp$ret$2;
      var tmp$ret$3;
      // Inline function 'kotlin.code' call
      tmp$ret$3 = 97;
      tmp = (tmp_1 - tmp$ret$3 | 0) + 10 | 0;
    } else if (_Char___init__impl__6a9atx(65) <= character ? character <= _Char___init__impl__6a9atx(70) : false) {
      var tmp$ret$4;
      // Inline function 'kotlin.code' call
      tmp$ret$4 = Char__toInt_impl_vasixd(character);
      var tmp_2 = tmp$ret$4;
      var tmp$ret$5;
      // Inline function 'kotlin.code' call
      tmp$ret$5 = 65;
      tmp = (tmp_2 - tmp$ret$5 | 0) + 10 | 0;
    } else {
      var tmp_3 = "Invalid toHexChar char '" + new Char(character) + "' in unicode escape";
      $this.d1b(tmp_3, 0, null, 6, null);
    }
    return tmp;
  }
  function consumeBoolean($this, start) {
    var current = $this.i1g(start);
    if (current >= charSequenceLength($this.h1g()) ? true : current === -1) {
      $this.d1b('EOF', 0, null, 6, null);
    }
    var tmp$ret$0;
    // Inline function 'kotlin.code' call
    var tmp = $this.h1g();
    var tmp0 = current;
    current = tmp0 + 1 | 0;
    var tmp0__get_code__88qj9g = charSequenceGet(tmp, tmp0);
    tmp$ret$0 = Char__toInt_impl_vasixd(tmp0__get_code__88qj9g);
    var tmp1_subject = tmp$ret$0 | 32;
    var tmp_0;
    var tmp$ret$1;
    // Inline function 'kotlin.code' call
    tmp$ret$1 = 116;
    if (tmp1_subject === tmp$ret$1) {
      consumeBooleanLiteral($this, 'rue', current);
      tmp_0 = true;
    } else {
      var tmp$ret$2;
      // Inline function 'kotlin.code' call
      tmp$ret$2 = 102;
      if (tmp1_subject === tmp$ret$2) {
        consumeBooleanLiteral($this, 'alse', current);
        tmp_0 = false;
      } else {
        var tmp_1 = "Expected valid boolean literal prefix, but had '" + $this.f1c() + "'";
        $this.d1b(tmp_1, 0, null, 6, null);
      }
    }
    return tmp_0;
  }
  function consumeBooleanLiteral($this, literalSuffix, current) {
    if ((charSequenceLength($this.h1g()) - current | 0) < literalSuffix.length) {
      $this.d1b('Unexpected end of boolean literal', 0, null, 6, null);
    }
    var inductionVariable = 0;
    var last = charSequenceLength(literalSuffix) - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var expected = charSequenceGet(literalSuffix, i);
        var actual = charSequenceGet($this.h1g(), current + i | 0);
        var tmp$ret$0;
        // Inline function 'kotlin.code' call
        tmp$ret$0 = Char__toInt_impl_vasixd(expected);
        var tmp = tmp$ret$0;
        var tmp$ret$1;
        // Inline function 'kotlin.code' call
        tmp$ret$1 = Char__toInt_impl_vasixd(actual);
        if (!(tmp === (tmp$ret$1 | 32))) {
          var tmp_0 = "Expected valid boolean literal prefix, but had '" + $this.f1c() + "'";
          $this.d1b(tmp_0, 0, null, 6, null);
        }
      }
       while (inductionVariable <= last);
    $this.b18_1 = current + literalSuffix.length | 0;
  }
  function AbstractJsonLexer() {
    this.b18_1 = 0;
    this.c18_1 = new JsonPath();
    this.d18_1 = null;
    this.e18_1 = StringBuilder_init_$Create$();
  }
  AbstractJsonLexer.prototype.j1g = function () {
  };
  AbstractJsonLexer.prototype.k1g = function (c) {
    var tmp0_subject = c;
    return (((equals(new Char(tmp0_subject), new Char(_Char___init__impl__6a9atx(125))) ? true : equals(new Char(tmp0_subject), new Char(_Char___init__impl__6a9atx(93)))) ? true : equals(new Char(tmp0_subject), new Char(_Char___init__impl__6a9atx(58)))) ? true : equals(new Char(tmp0_subject), new Char(_Char___init__impl__6a9atx(44)))) ? false : true;
  };
  AbstractJsonLexer.prototype.f18 = function () {
    var nextToken = this.h1c();
    if (!(nextToken === 10)) {
      var tmp = 'Expected EOF after parsing, but had ' + new Char(charSequenceGet(this.h1g(), this.b18_1 - 1 | 0)) + ' instead';
      this.d1b(tmp, 0, null, 6, null);
    }
  };
  AbstractJsonLexer.prototype.b1c = function (expected) {
    var token = this.h1c();
    if (!(token === expected)) {
      this.l1g(expected);
    }
    return token;
  };
  AbstractJsonLexer.prototype.o1d = function (expected) {
    this.j1g();
    var source = this.h1g();
    var cpos = this.b18_1;
    $l$loop_0: while (true) {
      cpos = this.i1g(cpos);
      if (cpos === -1)
        break $l$loop_0;
      var tmp0 = cpos;
      cpos = tmp0 + 1 | 0;
      var c = charSequenceGet(source, tmp0);
      if (((equals(new Char(c), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(9))))
        continue $l$loop_0;
      this.b18_1 = cpos;
      if (equals(new Char(c), new Char(expected)))
        return Unit_getInstance();
      this.m1g(expected);
    }
    this.b18_1 = cpos;
    this.m1g(expected);
  };
  AbstractJsonLexer.prototype.m1g = function (expected) {
    var tmp0_this = this;
    tmp0_this.b18_1 = tmp0_this.b18_1 - 1 | 0;
    if ((this.b18_1 >= 0 ? equals(new Char(expected), new Char(_Char___init__impl__6a9atx(34))) : false) ? this.f1c() === 'null' : false) {
      this.n1g("Expected string literal but 'null' literal was found", this.b18_1 - 4 | 0, "Use 'coerceInputValues = true' in 'Json {}` builder to coerce nulls to default values.");
    }
    this.l1g(charToTokenClass(expected));
  };
  AbstractJsonLexer.prototype.l1g = function (expectedToken) {
    var tmp0_subject = expectedToken;
    var expected = tmp0_subject === 1 ? "quotation mark '\"'" : tmp0_subject === 4 ? "comma ','" : tmp0_subject === 5 ? "colon ':'" : tmp0_subject === 6 ? "start of the object '{'" : tmp0_subject === 7 ? "end of the object '}'" : tmp0_subject === 8 ? "start of the array '['" : tmp0_subject === 9 ? "end of the array ']'" : 'valid token';
    var s = (this.b18_1 === charSequenceLength(this.h1g()) ? true : this.b18_1 <= 0) ? 'EOF' : toString_0(charSequenceGet(this.h1g(), this.b18_1 - 1 | 0));
    var tmp = 'Expected ' + expected + ", but had '" + s + "' instead";
    var tmp_0 = this.b18_1 - 1 | 0;
    this.d1b(tmp, tmp_0, null, 4, null);
  };
  AbstractJsonLexer.prototype.c1c = function () {
    var source = this.h1g();
    var cpos = this.b18_1;
    $l$loop_0: while (true) {
      cpos = this.i1g(cpos);
      if (cpos === -1)
        break $l$loop_0;
      var ch = charSequenceGet(source, cpos);
      if (((equals(new Char(ch), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(ch), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(ch), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(ch), new Char(_Char___init__impl__6a9atx(9)))) {
        cpos = cpos + 1 | 0;
        continue $l$loop_0;
      }
      this.b18_1 = cpos;
      return charToTokenClass(ch);
    }
    this.b18_1 = cpos;
    return 10;
  };
  AbstractJsonLexer.prototype.q1d = function () {
    var current = this.o1g();
    current = this.i1g(current);
    var len = charSequenceLength(this.h1g()) - current | 0;
    if (len < 4 ? true : current === -1)
      return true;
    var inductionVariable = 0;
    if (inductionVariable <= 3)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (!equals(new Char(charSequenceGet('null', i)), new Char(charSequenceGet(this.h1g(), current + i | 0))))
          return true;
      }
       while (inductionVariable <= 3);
    if (len > 4 ? charToTokenClass(charSequenceGet(this.h1g(), current + 4 | 0)) === 0 : false)
      return true;
    this.b18_1 = current + 4 | 0;
    return false;
  };
  AbstractJsonLexer.prototype.o1g = function () {
    var current = this.b18_1;
    $l$loop_0: while (true) {
      current = this.i1g(current);
      if (current === -1)
        break $l$loop_0;
      var c = charSequenceGet(this.h1g(), current);
      if (((equals(new Char(c), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(9)))) {
        current = current + 1 | 0;
      } else {
        break $l$loop_0;
      }
    }
    this.b18_1 = current;
    return current;
  };
  AbstractJsonLexer.prototype.r1d = function (isLenient) {
    var token = this.c1c();
    var tmp;
    if (isLenient) {
      if (!(token === 1) ? !(token === 0) : false)
        return null;
      tmp = this.f1c();
    } else {
      if (!(token === 1))
        return null;
      tmp = this.e1c();
    }
    var string = tmp;
    this.d18_1 = string;
    return string;
  };
  AbstractJsonLexer.prototype.p1g = function (startPos, endPos) {
    var tmp$ret$0;
    // Inline function 'kotlin.text.substring' call
    var tmp0_substring = this.h1g();
    tmp$ret$0 = toString(charSequenceSubSequence(tmp0_substring, startPos, endPos));
    return tmp$ret$0;
  };
  AbstractJsonLexer.prototype.e1c = function () {
    if (!(this.d18_1 == null)) {
      return takePeeked(this);
    }
    return this.u1d();
  };
  AbstractJsonLexer.prototype.consumeString2 = function (source, startPosition, current) {
    var currentPosition = current;
    var lastPosition = startPosition;
    var char = charSequenceGet(source, currentPosition);
    var usedAppend = false;
    while (!equals(new Char(char), new Char(_Char___init__impl__6a9atx(34)))) {
      if (equals(new Char(char), new Char(_Char___init__impl__6a9atx(92)))) {
        usedAppend = true;
        currentPosition = this.i1g(appendEscape(this, lastPosition, currentPosition));
        if (currentPosition === -1) {
          var tmp = currentPosition;
          this.d1b('EOF', tmp, null, 4, null);
        }
        lastPosition = currentPosition;
      } else {
        currentPosition = currentPosition + 1 | 0;
        if (currentPosition >= charSequenceLength(source)) {
          usedAppend = true;
          this.g1g(lastPosition, currentPosition);
          currentPosition = this.i1g(currentPosition);
          if (currentPosition === -1) {
            var tmp_0 = currentPosition;
            this.d1b('EOF', tmp_0, null, 4, null);
          }
          lastPosition = currentPosition;
        }
      }
      char = charSequenceGet(source, currentPosition);
    }
    var tmp_1;
    if (!usedAppend) {
      tmp_1 = this.p1g(lastPosition, currentPosition);
    } else {
      tmp_1 = decodedString(this, lastPosition, currentPosition);
    }
    var string = tmp_1;
    this.b18_1 = currentPosition + 1 | 0;
    return string;
  };
  AbstractJsonLexer.prototype.v1d = function () {
    var result = this.f1c();
    if (result === 'null' ? wasUnquotedString(this) : false) {
      this.d1b("Unexpected 'null' value instead of string literal", 0, null, 6, null);
    }
    return result;
  };
  AbstractJsonLexer.prototype.f1c = function () {
    if (!(this.d18_1 == null)) {
      return takePeeked(this);
    }
    var current = this.o1g();
    if (current >= charSequenceLength(this.h1g()) ? true : current === -1) {
      var tmp = current;
      this.d1b('EOF', tmp, null, 4, null);
    }
    var token = charToTokenClass(charSequenceGet(this.h1g(), current));
    if (token === 1) {
      return this.e1c();
    }
    if (!(token === 0)) {
      var tmp_0 = 'Expected beginning of the string, but got ' + new Char(charSequenceGet(this.h1g(), current));
      this.d1b(tmp_0, 0, null, 6, null);
    }
    var usedAppend = false;
    while (charToTokenClass(charSequenceGet(this.h1g(), current)) === 0) {
      current = current + 1 | 0;
      if (current >= charSequenceLength(this.h1g())) {
        usedAppend = true;
        this.g1g(this.b18_1, current);
        var eof = this.i1g(current);
        if (eof === -1) {
          this.b18_1 = current;
          return decodedString(this, 0, 0);
        } else {
          current = eof;
        }
      }
    }
    var tmp_1;
    if (!usedAppend) {
      tmp_1 = this.p1g(this.b18_1, current);
    } else {
      tmp_1 = decodedString(this, this.b18_1, current);
    }
    var result = tmp_1;
    this.b18_1 = current;
    return result;
  };
  AbstractJsonLexer.prototype.g1g = function (fromIndex, toIndex) {
    this.e18_1.xl(this.h1g(), fromIndex, toIndex);
  };
  AbstractJsonLexer.prototype.q1g = function (condition, position, message) {
    if (!condition) {
      var tmp = message();
      this.d1b(tmp, position, null, 4, null);
    }
  };
  AbstractJsonLexer.prototype.t1d = function (allowLenientStrings) {
    var tmp$ret$0;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp$ret$0 = ArrayList_init_$Create$();
    var tokenStack = tmp$ret$0;
    var lastToken = this.c1c();
    if (!(lastToken === 8) ? !(lastToken === 6) : false) {
      this.f1c();
      return Unit_getInstance();
    }
    $l$loop: while (true) {
      lastToken = this.c1c();
      if (lastToken === 1) {
        if (allowLenientStrings) {
          this.f1c();
        } else {
          this.u1d();
        }
        continue $l$loop;
      }
      var tmp0_subject = lastToken;
      if (tmp0_subject === 8 ? true : tmp0_subject === 6) {
        tokenStack.c(lastToken);
      } else if (tmp0_subject === 9) {
        if (!(last(tokenStack) === 8))
          throw JsonDecodingException_0(this.b18_1, 'found ] instead of } at path: ' + this.c18_1, this.h1g());
        removeLast(tokenStack);
      } else if (tmp0_subject === 7) {
        if (!(last(tokenStack) === 6))
          throw JsonDecodingException_0(this.b18_1, 'found } instead of ] at path: ' + this.c18_1, this.h1g());
        removeLast(tokenStack);
      } else if (tmp0_subject === 10) {
        this.d1b('Unexpected end of input due to malformed JSON during ignoring unknown keys', 0, null, 6, null);
      }
      this.h1c();
      if (tokenStack.i() === 0)
        return Unit_getInstance();
    }
  };
  AbstractJsonLexer.prototype.toString = function () {
    return "JsonReader(source='" + this.h1g() + "', currentPosition=" + this.b18_1 + ')';
  };
  AbstractJsonLexer.prototype.s1d = function (key) {
    var processed = this.p1g(0, this.b18_1);
    var lastIndexOf = lastIndexOf$default(processed, key, 0, false, 6, null);
    this.n1g("Encountered an unknown key '" + key + "'", lastIndexOf, "Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys.");
  };
  AbstractJsonLexer.prototype.n1g = function (message, position, hint) {
    var tmp;
    var tmp$ret$0;
    // Inline function 'kotlin.text.isEmpty' call
    tmp$ret$0 = charSequenceLength(hint) === 0;
    if (tmp$ret$0) {
      tmp = '';
    } else {
      tmp = '\n' + hint;
    }
    var hintMessage = tmp;
    throw JsonDecodingException_0(position, message + ' at path: ' + this.c18_1.p1b() + hintMessage, this.h1g());
  };
  AbstractJsonLexer.prototype.d1b = function (message, position, hint, $mask0, $handler) {
    if (!(($mask0 & 2) === 0))
      position = this.b18_1;
    if (!(($mask0 & 4) === 0))
      hint = '';
    return this.n1g(message, position, hint);
  };
  AbstractJsonLexer.prototype.e1e = function () {
    var current = this.o1g();
    current = this.i1g(current);
    if (current >= charSequenceLength(this.h1g()) ? true : current === -1) {
      this.d1b('EOF', 0, null, 6, null);
    }
    var tmp;
    if (equals(new Char(charSequenceGet(this.h1g(), current)), new Char(_Char___init__impl__6a9atx(34)))) {
      current = current + 1 | 0;
      if (current === charSequenceLength(this.h1g())) {
        this.d1b('EOF', 0, null, 6, null);
      }
      tmp = true;
    } else {
      tmp = false;
    }
    var hasQuotation = tmp;
    var accumulator = new Long(0, 0);
    var isNegative = false;
    var start = current;
    var hasChars = true;
    $l$loop_0: while (hasChars) {
      var ch = charSequenceGet(this.h1g(), current);
      if (equals(new Char(ch), new Char(_Char___init__impl__6a9atx(45)))) {
        if (!(current === start)) {
          this.d1b("Unexpected symbol '-' in numeric literal", 0, null, 6, null);
        }
        isNegative = true;
        current = current + 1 | 0;
        continue $l$loop_0;
      }
      var token = charToTokenClass(ch);
      if (!(token === 0))
        break $l$loop_0;
      current = current + 1 | 0;
      hasChars = !(current === charSequenceLength(this.h1g()));
      var digit = Char__minus_impl_a2frrh(ch, _Char___init__impl__6a9atx(48));
      if (!(0 <= digit ? digit <= 9 : false)) {
        var tmp_0 = "Unexpected symbol '" + new Char(ch) + "' in numeric literal";
        this.d1b(tmp_0, 0, null, 6, null);
      }
      var tmp$ret$1;
      // Inline function 'kotlin.Long.minus' call
      var tmp$ret$0;
      // Inline function 'kotlin.Long.times' call
      var tmp0_times = accumulator;
      tmp$ret$0 = tmp0_times.sa(new Long(10, 0));
      var tmp1_minus = tmp$ret$0;
      tmp$ret$1 = tmp1_minus.a2(toLong_0(digit));
      accumulator = tmp$ret$1;
      if (accumulator.x1(new Long(0, 0)) > 0) {
        this.d1b('Numeric value overflow', 0, null, 6, null);
      }
    }
    if (start === current ? true : isNegative ? start === (current - 1 | 0) : false) {
      this.d1b('Expected numeric literal', 0, null, 6, null);
    }
    if (hasQuotation) {
      if (!hasChars) {
        this.d1b('EOF', 0, null, 6, null);
      }
      if (!equals(new Char(charSequenceGet(this.h1g(), current)), new Char(_Char___init__impl__6a9atx(34)))) {
        this.d1b('Expected closing quotation mark', 0, null, 6, null);
      }
      current = current + 1 | 0;
    }
    this.b18_1 = current;
    var tmp_1;
    if (isNegative) {
      tmp_1 = accumulator;
    } else {
      var tmp_2 = accumulator;
      Companion_getInstance_4();
      if (!tmp_2.equals(new Long(0, -2147483648))) {
        tmp_1 = accumulator.u8();
      } else {
        this.d1b('Numeric value overflow', 0, null, 6, null);
      }
    }
    return tmp_1;
  };
  AbstractJsonLexer.prototype.c1e = function () {
    return consumeBoolean(this, this.o1g());
  };
  AbstractJsonLexer.prototype.d1e = function () {
    var current = this.o1g();
    if (current === charSequenceLength(this.h1g())) {
      this.d1b('EOF', 0, null, 6, null);
    }
    var tmp;
    if (equals(new Char(charSequenceGet(this.h1g(), current)), new Char(_Char___init__impl__6a9atx(34)))) {
      current = current + 1 | 0;
      tmp = true;
    } else {
      tmp = false;
    }
    var hasQuotation = tmp;
    var result = consumeBoolean(this, current);
    if (hasQuotation) {
      if (this.b18_1 === charSequenceLength(this.h1g())) {
        this.d1b('EOF', 0, null, 6, null);
      }
      if (!equals(new Char(charSequenceGet(this.h1g(), this.b18_1)), new Char(_Char___init__impl__6a9atx(34)))) {
        this.d1b('Expected closing quotation mark', 0, null, 6, null);
      }
      var tmp0_this = this;
      tmp0_this.b18_1 = tmp0_this.b18_1 + 1 | 0;
    }
    return result;
  };
  AbstractJsonLexer.$metadata$ = classMeta('AbstractJsonLexer');
  function charToTokenClass(c) {
    var tmp;
    var tmp$ret$0;
    // Inline function 'kotlin.code' call
    tmp$ret$0 = Char__toInt_impl_vasixd(c);
    if (tmp$ret$0 < 126) {
      var tmp_0 = CharMappings_getInstance().s1g_1;
      var tmp$ret$1;
      // Inline function 'kotlin.code' call
      tmp$ret$1 = Char__toInt_impl_vasixd(c);
      tmp = tmp_0[tmp$ret$1];
    } else {
      tmp = 0;
    }
    return tmp;
  }
  function get_TC_WHITESPACE() {
    return TC_WHITESPACE;
  }
  var TC_WHITESPACE;
  function get_TC_EOF() {
    return TC_EOF;
  }
  var TC_EOF;
  function get_STRING() {
    return STRING;
  }
  var STRING;
  function get_TC_STRING() {
    return TC_STRING;
  }
  var TC_STRING;
  function get_STRING_ESC() {
    return STRING_ESC;
  }
  var STRING_ESC;
  function get_TC_BEGIN_OBJ() {
    return TC_BEGIN_OBJ;
  }
  var TC_BEGIN_OBJ;
  function get_TC_COLON() {
    return TC_COLON;
  }
  var TC_COLON;
  function get_TC_COMMA() {
    return TC_COMMA;
  }
  var TC_COMMA;
  function get_COLON() {
    return COLON;
  }
  var COLON;
  function get_BEGIN_OBJ() {
    return BEGIN_OBJ;
  }
  var BEGIN_OBJ;
  function get_END_OBJ() {
    return END_OBJ;
  }
  var END_OBJ;
  function get_BEGIN_LIST() {
    return BEGIN_LIST;
  }
  var BEGIN_LIST;
  function get_END_LIST() {
    return END_LIST;
  }
  var END_LIST;
  function get_lenientHint() {
    return lenientHint;
  }
  var lenientHint;
  function get_INVALID() {
    return INVALID;
  }
  var INVALID;
  function get_COMMA() {
    return COMMA;
  }
  var COMMA;
  function get_NULL() {
    return NULL;
  }
  var NULL;
  function get_TC_END_OBJ() {
    return TC_END_OBJ;
  }
  var TC_END_OBJ;
  function get_TC_BEGIN_LIST() {
    return TC_BEGIN_LIST;
  }
  var TC_BEGIN_LIST;
  function get_TC_END_LIST() {
    return TC_END_LIST;
  }
  var TC_END_LIST;
  function get_TC_OTHER() {
    return TC_OTHER;
  }
  var TC_OTHER;
  function escapeToChar(c) {
    return c < 117 ? CharMappings_getInstance().r1g_1[c] : _Char___init__impl__6a9atx(0);
  }
  function get_ignoreUnknownKeysHint() {
    return ignoreUnknownKeysHint;
  }
  var ignoreUnknownKeysHint;
  function initEscape($this) {
    var inductionVariable = 0;
    if (inductionVariable <= 31)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        initC2ESC($this, i, _Char___init__impl__6a9atx(117));
      }
       while (inductionVariable <= 31);
    initC2ESC($this, 8, _Char___init__impl__6a9atx(98));
    initC2ESC($this, 9, _Char___init__impl__6a9atx(116));
    initC2ESC($this, 10, _Char___init__impl__6a9atx(110));
    initC2ESC($this, 12, _Char___init__impl__6a9atx(102));
    initC2ESC($this, 13, _Char___init__impl__6a9atx(114));
    initC2ESC_0($this, _Char___init__impl__6a9atx(47), _Char___init__impl__6a9atx(47));
    initC2ESC_0($this, _Char___init__impl__6a9atx(34), _Char___init__impl__6a9atx(34));
    initC2ESC_0($this, _Char___init__impl__6a9atx(92), _Char___init__impl__6a9atx(92));
  }
  function initCharToToken($this) {
    var inductionVariable = 0;
    if (inductionVariable <= 32)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        initC2TC($this, i, 127);
      }
       while (inductionVariable <= 32);
    initC2TC($this, 9, 3);
    initC2TC($this, 10, 3);
    initC2TC($this, 13, 3);
    initC2TC($this, 32, 3);
    initC2TC_0($this, _Char___init__impl__6a9atx(44), 4);
    initC2TC_0($this, _Char___init__impl__6a9atx(58), 5);
    initC2TC_0($this, _Char___init__impl__6a9atx(123), 6);
    initC2TC_0($this, _Char___init__impl__6a9atx(125), 7);
    initC2TC_0($this, _Char___init__impl__6a9atx(91), 8);
    initC2TC_0($this, _Char___init__impl__6a9atx(93), 9);
    initC2TC_0($this, _Char___init__impl__6a9atx(34), 1);
    initC2TC_0($this, _Char___init__impl__6a9atx(92), 2);
  }
  function initC2ESC($this, c, esc) {
    if (!equals(new Char(esc), new Char(_Char___init__impl__6a9atx(117)))) {
      var tmp$ret$0;
      // Inline function 'kotlin.code' call
      tmp$ret$0 = Char__toInt_impl_vasixd(esc);
      $this.r1g_1[tmp$ret$0] = numberToChar(c);
    }
  }
  function initC2ESC_0($this, c, esc) {
    var tmp$ret$0;
    // Inline function 'kotlin.code' call
    tmp$ret$0 = Char__toInt_impl_vasixd(c);
    return initC2ESC($this, tmp$ret$0, esc);
  }
  function initC2TC($this, c, cl) {
    $this.s1g_1[c] = cl;
  }
  function initC2TC_0($this, c, cl) {
    var tmp$ret$0;
    // Inline function 'kotlin.code' call
    tmp$ret$0 = Char__toInt_impl_vasixd(c);
    return initC2TC($this, tmp$ret$0, cl);
  }
  function CharMappings() {
    CharMappings_instance = this;
    this.r1g_1 = charArray(117);
    this.s1g_1 = new Int8Array(126);
    initEscape(this);
    initCharToToken(this);
  }
  CharMappings.$metadata$ = objectMeta('CharMappings');
  var CharMappings_instance;
  function CharMappings_getInstance() {
    if (CharMappings_instance == null)
      new CharMappings();
    return CharMappings_instance;
  }
  function get_specialFlowingValuesHint() {
    return specialFlowingValuesHint;
  }
  var specialFlowingValuesHint;
  function get_allowStructuredMapKeysHint() {
    return allowStructuredMapKeysHint;
  }
  var allowStructuredMapKeysHint;
  function StringJsonLexer(source) {
    AbstractJsonLexer.call(this);
    this.x1g_1 = source;
  }
  StringJsonLexer.prototype.h1g = function () {
    return this.x1g_1;
  };
  StringJsonLexer.prototype.i1g = function (position) {
    return position < this.x1g_1.length ? position : -1;
  };
  StringJsonLexer.prototype.h1c = function () {
    var source = this.x1g_1;
    $l$loop: while (!(this.b18_1 === -1) ? this.b18_1 < source.length : false) {
      var tmp0_this = this;
      var tmp1 = tmp0_this.b18_1;
      tmp0_this.b18_1 = tmp1 + 1 | 0;
      var ch = charSequenceGet(source, tmp1);
      var tc = charToTokenClass(ch);
      var tmp;
      if (tc === get_TC_WHITESPACE()) {
        continue $l$loop;
      } else {
        tmp = tc;
      }
      return tmp;
    }
    return get_TC_EOF();
  };
  StringJsonLexer.prototype.p1d = function () {
    var current = this.o1g();
    if (current === this.x1g_1.length ? true : current === -1)
      return false;
    if (equals(new Char(charSequenceGet(this.x1g_1, current)), new Char(_Char___init__impl__6a9atx(44)))) {
      var tmp0_this = this;
      tmp0_this.b18_1 = tmp0_this.b18_1 + 1 | 0;
      return true;
    }
    return false;
  };
  StringJsonLexer.prototype.d1c = function () {
    var current = this.b18_1;
    if (current === -1)
      return false;
    $l$loop: while (current < this.x1g_1.length) {
      var c = charSequenceGet(this.x1g_1, current);
      if (((equals(new Char(c), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(9)))) {
        current = current + 1 | 0;
        continue $l$loop;
      }
      this.b18_1 = current;
      return this.k1g(c);
    }
    this.b18_1 = current;
    return false;
  };
  StringJsonLexer.prototype.o1g = function () {
    var current = this.b18_1;
    if (current === -1)
      return current;
    $l$loop: while (current < this.x1g_1.length) {
      var c = charSequenceGet(this.x1g_1, current);
      if (((equals(new Char(c), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(9)))) {
        current = current + 1 | 0;
      } else {
        break $l$loop;
      }
    }
    this.b18_1 = current;
    return current;
  };
  StringJsonLexer.prototype.o1d = function (expected) {
    if (this.b18_1 === -1) {
      this.m1g(expected);
    }
    var source = this.x1g_1;
    $l$loop: while (this.b18_1 < source.length) {
      var tmp0_this = this;
      var tmp1 = tmp0_this.b18_1;
      tmp0_this.b18_1 = tmp1 + 1 | 0;
      var c = charSequenceGet(source, tmp1);
      if (((equals(new Char(c), new Char(_Char___init__impl__6a9atx(32))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(10)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(13)))) ? true : equals(new Char(c), new Char(_Char___init__impl__6a9atx(9))))
        continue $l$loop;
      if (equals(new Char(c), new Char(expected)))
        return Unit_getInstance();
      this.m1g(expected);
    }
    this.m1g(expected);
  };
  StringJsonLexer.prototype.u1d = function () {
    this.o1d(get_STRING());
    var current = this.b18_1;
    var tmp = _Char___init__impl__6a9atx(34);
    var closingQuote = indexOf$default(this.x1g_1, tmp, current, false, 4, null);
    if (closingQuote === -1) {
      this.l1g(get_TC_STRING());
    }
    var inductionVariable = current;
    if (inductionVariable < closingQuote)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (equals(new Char(charSequenceGet(this.x1g_1, i)), new Char(get_STRING_ESC()))) {
          return this.consumeString2(this.x1g_1, this.b18_1, i);
        }
      }
       while (inductionVariable < closingQuote);
    this.b18_1 = closingQuote + 1 | 0;
    var tmp$ret$1;
    // Inline function 'kotlin.text.substring' call
    var tmp0_substring = this.x1g_1;
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_substring;
    tmp$ret$1 = tmp$ret$0.substring(current, closingQuote);
    return tmp$ret$1;
  };
  StringJsonLexer.prototype.x1d = function (keyToMatch, isLenient) {
    var positionSnapshot = this.b18_1;
    try {
      if (!(this.h1c() === get_TC_BEGIN_OBJ()))
        return null;
      var firstKey = isLenient ? this.u1d() : this.v1d();
      if (firstKey === keyToMatch) {
        if (!(this.h1c() === get_TC_COLON()))
          return null;
        var result = isLenient ? this.e1c() : this.v1d();
        return result;
      }
      return null;
    }finally {
      this.b18_1 = positionSnapshot;
    }
  };
  StringJsonLexer.$metadata$ = classMeta('StringJsonLexer', undefined, undefined, undefined, undefined, AbstractJsonLexer.prototype);
  function get_schemaCache(_this__u8e3s4) {
    return _this__u8e3s4.o17_1;
  }
  function JsonToStringWriter() {
    this.r17_1 = StringBuilder_init_$Create$_0(128);
  }
  JsonToStringWriter.prototype.n1a = function (value) {
    this.r17_1.fc(value);
  };
  JsonToStringWriter.prototype.h1a = function (char) {
    this.r17_1.g2(char);
  };
  JsonToStringWriter.prototype.j1a = function (text) {
    this.r17_1.gc(text);
  };
  JsonToStringWriter.prototype.t1a = function (text) {
    printQuoted(this.r17_1, text);
  };
  JsonToStringWriter.prototype.s17 = function () {
    this.r17_1.zl();
  };
  JsonToStringWriter.prototype.toString = function () {
    return this.r17_1.toString();
  };
  JsonToStringWriter.$metadata$ = classMeta('JsonToStringWriter', [JsonWriter]);
  function createMapForCache(initialCapacity) {
    return HashMap_init_$Create$(initialCapacity);
  }
  //region block: post-declaration
  defer$1.prototype.ir = get_isNullable;
  defer$1.prototype.or = get_isInline;
  defer$1.prototype.mr = get_annotations;
  StreamingJsonDecoder.prototype.ut = decodeSerializableElement$default;
  StreamingJsonDecoder.prototype.wt = decodeSequentially;
  StreamingJsonDecoder.prototype.yt = decodeCollectionSize;
  JsonDecoderForUnsignedTypes.prototype.ht = decodeSerializableValue;
  JsonDecoderForUnsignedTypes.prototype.ut = decodeSerializableElement$default;
  JsonDecoderForUnsignedTypes.prototype.wt = decodeSequentially;
  JsonDecoderForUnsignedTypes.prototype.yt = decodeCollectionSize;
  StreamingJsonEncoder.prototype.av = encodeNotNullMark;
  StreamingJsonEncoder.prototype.bv = beginCollection;
  StreamingJsonEncoder.prototype.zu = encodeNullableSerializableValue;
  AbstractJsonTreeDecoder.prototype.ut = decodeSerializableElement$default;
  AbstractJsonTreeDecoder.prototype.wt = decodeSequentially;
  AbstractJsonTreeDecoder.prototype.yt = decodeCollectionSize;
  JsonTreeDecoder.prototype.ut = decodeSerializableElement$default;
  JsonTreeDecoder.prototype.wt = decodeSequentially;
  JsonTreeDecoder.prototype.yt = decodeCollectionSize;
  JsonTreeListDecoder.prototype.ut = decodeSerializableElement$default;
  JsonTreeListDecoder.prototype.wt = decodeSequentially;
  JsonTreeListDecoder.prototype.yt = decodeCollectionSize;
  JsonTreeMapDecoder.prototype.ut = decodeSerializableElement$default;
  JsonTreeMapDecoder.prototype.wt = decodeSequentially;
  JsonTreeMapDecoder.prototype.yt = decodeCollectionSize;
  //endregion
  //region block: init
  TC_WHITESPACE = 3;
  TC_EOF = 10;
  STRING = _Char___init__impl__6a9atx(34);
  TC_STRING = 1;
  STRING_ESC = _Char___init__impl__6a9atx(92);
  TC_BEGIN_OBJ = 6;
  TC_COLON = 5;
  TC_COMMA = 4;
  COLON = _Char___init__impl__6a9atx(58);
  BEGIN_OBJ = _Char___init__impl__6a9atx(123);
  END_OBJ = _Char___init__impl__6a9atx(125);
  BEGIN_LIST = _Char___init__impl__6a9atx(91);
  END_LIST = _Char___init__impl__6a9atx(93);
  lenientHint = "Use 'isLenient = true' in 'Json {}` builder to accept non-compliant JSON.";
  INVALID = _Char___init__impl__6a9atx(0);
  COMMA = _Char___init__impl__6a9atx(44);
  NULL = 'null';
  TC_END_OBJ = 7;
  TC_BEGIN_LIST = 8;
  TC_END_LIST = 9;
  TC_OTHER = 0;
  ignoreUnknownKeysHint = "Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys.";
  specialFlowingValuesHint = "It is possible to deserialize them using 'JsonBuilder.allowSpecialFloatingPointValues = true'";
  allowStructuredMapKeysHint = "Use 'allowStructuredMapKeys = true' in 'Json {}' builder to convert such maps to [key1, value1, key2, value2,...] arrays.";
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = Default_getInstance;
  //endregion
  return _;
}));

//# sourceMappingURL=kotlinx-serialization-kotlinx-serialization-json-js-ir.js.map