UNPKG

elkjs

Version:

Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.

1,506 lines (1,378 loc) 4.77 MB
'use strict'; // -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- var $wnd; if (typeof window !== 'undefined') $wnd = window else if (typeof global !== 'undefined') $wnd = global // nodejs else if (typeof self !== 'undefined') $wnd = self // web worker var $moduleName, $moduleBase; // -------------- WORKAROUND STRICT MODE, SEE #127 -------------- var _xblockexpression; // -------------- GENERATED CODE -------------- var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {204:1, 51:1}, $intern_4 = {204:1, 51:1, 128:1}, $intern_5 = {229:1, 3:1}, $intern_6 = {51:1}, $intern_7 = {85:1}, $intern_8 = {20:1, 31:1, 16:1}, $intern_9 = 2063, $intern_10 = {20:1, 31:1, 16:1, 21:1}, $intern_11 = {85:1, 139:1, 133:1}, $intern_12 = {20:1, 31:1, 16:1, 21:1, 87:1}, $intern_13 = {20:1, 31:1, 16:1, 277:1, 21:1, 87:1}, $intern_14 = {51:1, 128:1}, $intern_15 = {358:1, 44:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {159:1}, $intern_19 = {41:1}, $intern_20 = {202:1}, $intern_21 = {l:4194303, m:4194303, h:524287}, $intern_22 = {253:1, 3:1, 34:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 16:1}, $intern_25 = {3:1, 20:1, 31:1, 16:1}, $intern_26 = {306:1, 3:1, 20:1, 31:1, 16:1, 15:1, 59:1}, $intern_27 = {3:1, 4:1, 5:1, 173:1}, $intern_28 = {3:1, 85:1}, $intern_29 = {20:1, 16:1, 21:1}, $intern_30 = {3:1, 20:1, 31:1, 16:1, 21:1}, $intern_31 = {20:1, 16:1, 21:1, 87:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 173:1}, $intern_35 = 1024, $intern_36 = 1073741824, $intern_37 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_38 = {20:1, 31:1, 56:1, 16:1, 15:1}, $intern_39 = {20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_40 = {46:1}, $intern_41 = {380:1}, $intern_42 = 1.0E-4, $intern_43 = -2147483648, $intern_44 = {3:1, 103:1, 63:1, 82:1}, $intern_45 = {201:1, 3:1, 4:1}, $intern_46 = 1000, $intern_47 = 65535, $intern_48 = 1900, $intern_49 = {53:1, 3:1, 4:1}, $intern_50 = {3:1, 4:1, 34:1, 206:1}, $intern_51 = 4194303, $intern_52 = 1048575, $intern_53 = 524288, $intern_54 = 4194304, $intern_55 = 17592186044416, $intern_56 = 1000000000, $intern_57 = -17592186044416, $intern_58 = {3:1, 103:1, 77:1, 63:1, 82:1}, $intern_59 = {3:1, 295:1, 82:1}, $intern_60 = Infinity, $intern_61 = -Infinity, $intern_62 = 4096, $intern_63 = {3:1, 4:1, 376:1}, $intern_64 = 65536, $intern_65 = 55296, $intern_66 = {109:1, 3:1, 4:1}, $intern_67 = 100000, $intern_68 = 0.3010299956639812, $intern_69 = 4294967295, $intern_70 = {44:1}, $intern_71 = {3:1, 4:1, 20:1, 31:1, 56:1, 13:1, 16:1, 15:1, 59:1}, $intern_72 = {3:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_73 = {20:1, 16:1, 15:1}, $intern_74 = {3:1, 50:1}, $intern_75 = {189:1}, $intern_76 = {3:1, 4:1, 85:1}, $intern_77 = {3:1, 4:1, 20:1, 31:1, 16:1, 49:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1}, $intern_85 = {3:1, 34:1, 22:1, 303:1}, $intern_86 = {3:1, 4:1, 5:1, 856:1}, $intern_87 = {533:1, 687:1}, $intern_88 = {50:1}, $intern_89 = {178:1, 46:1}, $intern_90 = {134:1}, $intern_91 = {183:1, 3:1, 4:1}, $intern_92 = {217:1, 336:1}, $intern_93 = {3:1, 4:1, 5:1, 603:1}, $intern_94 = 0.01, $intern_95 = {3:1, 96:1, 137:1}, $intern_96 = {205:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 198:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 100:1, 115:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 126:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 150:1, 100:1, 115:1}, $intern_105 = {47:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 482:1, 150:1, 100:1, 115:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 150:1, 199:1, 210:1, 100:1, 115:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 150:1, 2042:1, 210:1, 100:1, 115:1}, $intern_109 = {3:1, 4:1, 140:1, 214:1, 423:1}, $intern_110 = {3:1, 4:1, 107:1, 214:1, 423:1}, $intern_111 = {230:1}, $intern_112 = {3:1, 4:1, 5:1, 601:1}, $intern_113 = {106:1, 47:1}, $intern_114 = {413:1, 230:1}, $intern_115 = {846:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 854:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 0.10000000149011612, $intern_124 = -1.7976931348623157E308, $intern_125 = {3:1, 6:1, 4:1, 5:1, 534:1, 100:1, 115:1}, $intern_126 = 6.283185307179586, $intern_127 = 4.9E-324, $intern_128 = {3:1, 4:1, 5:1, 100:1}, $intern_129 = 5.497787143782138, $intern_130 = 3.9269908169872414, $intern_131 = 2.356194490192345, $intern_132 = {341:1}, $intern_133 = {294:1}, $intern_134 = 0.05, $intern_135 = 1.2999999523162842, $intern_136 = {3:1, 34:1, 22:1, 347:1}, $intern_137 = {94:1, 93:1}, $intern_138 = 32768, $intern_139 = {110:1, 94:1, 93:1, 58:1, 54:1, 99:1}, $intern_140 = {195:1, 3:1, 4:1}, $intern_141 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1}, $intern_142 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 51:1, 15:1, 59:1, 70:1, 66:1, 61:1, 596:1}, $intern_143 = {424:1, 686:1}, $intern_144 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1}, $intern_145 = {378:1, 152:1}, $intern_146 = {3:1, 4:1, 5:1, 129:1}, $intern_147 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 61:1}, $intern_148 = {3:1, 6:1, 4:1, 5:1, 198:1}, $intern_149 = {3:1, 4:1, 5:1, 173:1, 379:1}, $intern_150 = {79:1}, $intern_151 = {3:1, 20:1, 16:1, 15:1, 61:1, 597:1, 79:1, 71:1, 97:1}, $intern_152 = 8192, $intern_153 = 2048, $intern_154 = {3:1, 4:1, 5:1, 254:1}, $intern_155 = {3:1, 4:1, 5:1, 688:1}, $intern_156 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1, 71:1}, $intern_157 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 59:1, 70:1, 66:1, 61:1, 79:1, 71:1, 97:1}, $intern_158 = {3:1, 4:1, 5:1, 689:1}, $intern_159 = {3:1, 4:1, 20:1, 31:1, 56:1, 16:1, 15:1, 70:1, 61:1, 79:1, 71:1, 97:1}, $intern_160 = {20:1, 31:1, 56:1, 16:1, 15:1, 61:1, 71:1}, $intern_161 = {51:1, 128:1, 287:1}, $intern_162 = {76:1, 343:1}, $intern_163 = 1352, $intern_164 = -32768, $intern_165 = {57:1}, $intern_166 = {3:1, 4:1, 5:1, 124:1}, $intern_167 = {94:1, 93:1, 599:1, 2034:1}, $intern_168 = 1114111, $intern_169 = {3:1, 122:1}, $intern_170 = {3:1, 4:1, 5:1, 381:1}; var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; function setGwtProperty(propertyName, propertyValue){ typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); } function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ ensureModuleInit(); var initFnList = initFnList_0; $moduleName = modName; $moduleBase = modBase; permutationId = softPermutationId; function initializeModules(){ for (var i = 0; i < initFnList.length; i++) { initFnList[i](); } } if (errFn) { try { $entry(initializeModules)(); } catch (e) { errFn(modName, e); } } else { $entry(initializeModules)(); } } function ensureModuleInit(){ initFnList_0 == null && (initFnList_0 = []); } function addInitFunctions(){ ensureModuleInit(); var initFnList = initFnList_0; for (var i = 0; i < arguments.length; i++) { initFnList.push(arguments[i]); } } function typeMarkerFn(){ } function toString_40(object){ var number; if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); } return object.toString(); } function portableObjCreate(obj){ function F(){ } ; F.prototype = obj || {}; return new F; } function makeLambdaFunction(samMethod, ctor, ctorArguments){ var lambda = function(){ return samMethod.apply(lambda, arguments); } ; ctor.apply(lambda, ctorArguments); return lambda; } function emptyMethod(){ } function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ var prototypesByTypeId = prototypesByTypeId_0, superPrototype; var prototype_0 = prototypesByTypeId[typeId]; var clazz = prototype_0 instanceof Array?prototype_0[0]:null; if (prototype_0 && !clazz) { _ = prototype_0; } else { _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); _.castableTypeMap = castableTypeMap; !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); prototypesByTypeId[typeId] = _; } for (var i = 3; i < arguments.length; ++i) { arguments[i].prototype = _; } clazz && (_.___clazz = clazz); } $wnd.goog = $wnd.goog || {}; $wnd.goog.global = $wnd.goog.global || $wnd; prototypesByTypeId_0 = {}; function $equals(this$static, other){ return maskUndefined(this$static) === maskUndefined(other); } function Object_0(){ } function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); } function getClass__Ljava_lang_Class___devirtual$(this$static){ return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; } function hashCode__I__devirtual$(this$static){ return instanceOfString(this$static)?$hashCode_2(this$static):instanceOfDouble(this$static)?$hashCode_1(this$static):instanceOfBoolean(this$static)?$hashCode_0(this$static):hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getObjectIdentityHashCode(this$static):$hashCode(this$static); } defineClass(1, null, {}, Object_0); _.equals_0 = function equals(other){ return $equals(this, other); } ; _.getClass_0 = function getClass_0(){ return this.___clazz; } ; _.hashCode_1 = function hashCode_0(){ return getObjectIdentityHashCode(this); } ; _.toString_0 = function toString_1(){ var number; return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); } ; _.equals = function(other){ return this.equals_0(other); } ; _.hashCode = function(){ return this.hashCode_1(); } ; _.toString = function(){ return this.toString_0(); } ; function canCast(src_0, dstId){ if (instanceOfString(src_0)) { return !!stringCastMap[dstId]; } else if (src_0.castableTypeMap) { return !!src_0.castableTypeMap[dstId]; } else if (instanceOfDouble(src_0)) { return !!doubleCastMap[dstId]; } else if (instanceOfBoolean(src_0)) { return !!booleanCastMap[dstId]; } return false; } function castTo(src_0, dstId){ checkCriticalType(src_0 == null || canCast(src_0, dstId)); return src_0; } function castToArray(src_0){ var elementTypeCategory; checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); return src_0; } function castToBoolean(src_0){ checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); return src_0; } function castToDouble(src_0){ checkCriticalType(src_0 == null || instanceOfDouble(src_0)); return src_0; } function castToJso(src_0){ checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); return src_0; } function castToString(src_0){ checkCriticalType(src_0 == null || instanceOfString(src_0)); return src_0; } function charToString(x_0){ return String.fromCharCode(x_0); } function hasJavaObjectVirtualDispatch(src_0){ return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; } function instanceOf(src_0, dstId){ return src_0 != null && canCast(src_0, dstId); } function instanceOfBoolean(src_0){ return typeof src_0 === 'boolean'; } function instanceOfDouble(src_0){ return typeof src_0 === 'number'; } function instanceOfJso(src_0){ return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); } function instanceOfString(src_0){ return typeof src_0 === 'string'; } function isJsObjectOrFunction(src_0){ return typeof src_0 === 'object' || typeof src_0 === 'function'; } function maskUndefined(src_0){ return src_0 == null?null:src_0; } function round_int(x_0){ return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; } function throwClassCastExceptionUnlessNull(o){ checkCriticalType(o == null); return o; } var booleanCastMap, doubleCastMap, stringCastMap; function $ensureNamesAreInitialized(this$static){ if (this$static.typeName != null) { return; } initializeNames(this$static); } function $getEnumConstants(this$static){ return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); } function $getName(this$static){ $ensureNamesAreInitialized(this$static); return this$static.typeName; } function $toString_5(this$static){ return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); } function Class(){ ++nextSequentialId; this.typeName = null; this.simpleName = null; this.packageName = null; this.compoundName = null; this.canonicalName = null; this.typeId = null; this.arrayLiterals = null; } function createClassObject(packageName, compoundClassName){ var clazz; clazz = new Class; clazz.packageName = packageName; clazz.compoundName = compoundClassName; return clazz; } function createForClass(packageName, compoundClassName, typeId){ var clazz; clazz = createClassObject(packageName, compoundClassName); maybeSetClassLiteral(typeId, clazz); return clazz; } function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ var clazz; clazz = createClassObject(packageName, compoundClassName); maybeSetClassLiteral(typeId, clazz); clazz.modifiers = enumConstantsFunc?8:0; clazz.enumSuperclass = superclass; clazz.enumConstantsFunc = enumConstantsFunc; clazz.enumValueOfFunc = enumValueOfFunc; return clazz; } function createForInterface(packageName, compoundClassName){ var clazz; clazz = createClassObject(packageName, compoundClassName); clazz.modifiers = 2; return clazz; } function createForPrimitive(className, primitiveTypeId){ var clazz; clazz = createClassObject('', className); clazz.typeId = primitiveTypeId; clazz.modifiers = 1; return clazz; } function getClassLiteralForArray_0(leafClass, dimensions){ var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); } function getPrototypeForClass(clazz){ if (clazz.isPrimitive()) { return null; } var typeId = clazz.typeId; return prototypesByTypeId_0[typeId]; } function initializeNames(clazz){ if (clazz.isArray_1()) { var componentType = clazz.componentType; componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); clazz.canonicalName = componentType.getCanonicalName() + '[]'; clazz.simpleName = componentType.getSimpleName() + '[]'; return; } var packageName = clazz.packageName; var compoundName = clazz.compoundName; compoundName = compoundName.split('/'); clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); clazz.simpleName = compoundName[compoundName.length - 1]; } function join_0(separator, strings){ var i = 0; while (!strings[i] || strings[i] == '') { i++; } var result = strings[i++]; for (; i < strings.length; i++) { if (!strings[i] || strings[i] == '') { continue; } result += separator + strings[i]; } return result; } function maybeSetClassLiteral(typeId, clazz){ var proto; if (!typeId) { return; } clazz.typeId = typeId; var prototype_0 = getPrototypeForClass(clazz); if (!prototype_0) { prototypesByTypeId_0[typeId] = [clazz]; return; } prototype_0.___clazz = clazz; } defineClass(296, 1, {296:1, 2124:1}, Class); _.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ var clazz; clazz = new Class; clazz.modifiers = 4; dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); return clazz; } ; _.getCanonicalName = function getCanonicalName(){ $ensureNamesAreInitialized(this); return this.canonicalName; } ; _.getName = function getName(){ return $getName(this); } ; _.getSimpleName = function getSimpleName(){ return $ensureNamesAreInitialized(this) , this.simpleName; } ; _.isArray_1 = function isArray_1(){ return (this.modifiers & 4) != 0; } ; _.isPrimitive = function isPrimitive(){ return (this.modifiers & 1) != 0; } ; _.toString_0 = function toString_44(){ return $toString_5(this); } ; _.modifiers = 0; var nextSequentialId = 1; var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 296); defineClass(2096, 1, $intern_1); var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 2096); function $clinit_Absent(){ $clinit_Absent = emptyMethod; INSTANCE = new Absent; } function Absent(){ } defineClass(1191, 2096, $intern_1, Absent); _.equals_0 = function equals_0(object){ return object === this; } ; _.hashCode_1 = function hashCode_1(){ return 2040732332; } ; _.toString_0 = function toString_2(){ return 'Optional.absent()'; } ; _.transform = function transform(function_0){ checkNotNull(function_0); return $clinit_Absent() , INSTANCE; } ; var INSTANCE; var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1191); function $appendTo(this$static, appendable, parts){ checkNotNull(appendable); if (parts.hasNext_0()) { $append_7(appendable, $toString(parts.next_1())); while (parts.hasNext_0()) { $append_7(appendable, this$static.separator); $append_7(appendable, $toString(parts.next_1())); } } return appendable; } function $appendTo_0(this$static, builder, parts){ var impossible; try { $appendTo(this$static, builder, parts); } catch ($e0) { $e0 = toJava($e0); if (instanceOf($e0, 606)) { impossible = $e0; throw toJs(new AssertionError_0(impossible)); } else throw toJs($e0); } return builder; } function $join(this$static, parts){ return $appendTo_0(this$static, new StringBuilder, parts).string; } function $toString(part){ requireNonNull(part); return instanceOf(part, 483)?castTo(part, 483):toString_40(part); } function Joiner(){ this.separator = castToString(checkNotNull(', ')); } defineClass(636, 1, {}, Joiner); var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 636); function equal(a, b){ return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); } function badElementIndex(index_0, size_0){ if (index_0 < 0) { return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0)])); } else if (size_0 < 0) { throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); } else { return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_3(index_0), valueOf_3(size_0)])); } } function badPositionIndex(index_0, size_0, desc){ if (index_0 < 0) { return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0)])); } else if (size_0 < 0) { throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); } else { return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_3(index_0), valueOf_3(size_0)])); } } function badPositionIndexes(start_0, end, size_0){ if (start_0 < 0 || start_0 > size_0) { return badPositionIndex(start_0, size_0, 'start index'); } if (end < 0 || end > size_0) { return badPositionIndex(end, size_0, 'end index'); } return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_3(end), valueOf_3(start_0)])); } function checkArgument(expression){ if (!expression) { throw toJs(new IllegalArgumentException); } } function checkArgument_0(expression, errorMessage){ if (!expression) { throw toJs(new IllegalArgumentException_0(errorMessage)); } } function checkArgument_1(b, p1){ if (!b) { throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); } } function checkArgument_2(b, errorMessageTemplate, p1, p2){ if (!b) { throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); } } function checkElementIndex(index_0, size_0){ if (index_0 < 0 || index_0 >= size_0) { throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); } return index_0; } function checkNotNull(reference){ if (reference == null) { throw toJs(new NullPointerException); } return reference; } function checkNotNull_0(reference, errorMessage){ if (reference == null) { throw toJs(new NullPointerException_0(errorMessage)); } return reference; } function checkPositionIndex(index_0, size_0){ if (index_0 < 0 || index_0 > size_0) { throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); } return index_0; } function checkPositionIndexes(start_0, end, size_0){ if (start_0 < 0 || end < start_0 || end > size_0) { throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); } } function checkState(expression){ if (!expression) { throw toJs(new IllegalStateException); } } function checkState_0(expression){ if (!expression) { throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); } } var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); function toStringHelper(components){ var builder, first, o, o$iterator; builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); first = true; for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); first || (builder.string += ',' , builder); builder.string += '' + o; first = false; } return (builder.string += ')' , builder).string; } function $apply(this$static, t){ var i; for (i = 0; i < this$static.components.array.length; i++) { if (!castTo($get_12(this$static.components, i), 178).apply_1(t)) { return false; } } return true; } function Predicates$AndPredicate(components){ this.components = components; } defineClass(589, 1, {178:1, 589:1, 3:1, 46:1}, Predicates$AndPredicate); _.test_0 = function test_0(input_0){ return $apply(this, input_0); } ; _.apply_1 = function apply_1(t){ return $apply(this, t); } ; _.equals_0 = function equals_1(obj){ var that; if (instanceOf(obj, 589)) { that = castTo(obj, 589); return $equals_2(this.components, that.components); } return false; } ; _.hashCode_1 = function hashCode_2(){ return hashCode_49(this.components) + 306654252; } ; _.toString_0 = function toString_3(){ return toStringHelper(this.components); } ; var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 589); function Present(reference){ this.reference = reference; } defineClass(419, 2096, {419:1, 3:1}, Present); _.equals_0 = function equals_2(object){ var other; if (instanceOf(object, 419)) { other = castTo(object, 419); return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); } return false; } ; _.hashCode_1 = function hashCode_3(){ return 1502476572 + hashCode__I__devirtual$(this.reference); } ; _.toString_0 = function toString_4(){ return 'Optional.of(' + this.reference + ')'; } ; _.transform = function transform_0(function_0){ return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); } ; var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 419); function lenientFormat(template, args){ var builder, i, i0, placeholderStart, templateStart; template = template == null?'null':(checkCriticalNotNull(template) , template); for (i0 = 0; i0 < args.length; i0++) { args[i0] = lenientToString(args[i0]); } builder = new StringBuilder_0; templateStart = 0; i = 0; while (i < args.length) { placeholderStart = template.indexOf('%s', templateStart); if (placeholderStart == -1) { break; } builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); $append_10(builder, args[i++]); templateStart = placeholderStart + 2; } $append_9(builder, template, templateStart, template.length); if (i < args.length) { builder.string += ' ['; $append_10(builder, args[i++]); while (i < args.length) { builder.string += ', '; $append_10(builder, args[i++]); } builder.string += ']'; } return builder.string; } function lenientToString(o){ var e, number, objectToString; if (o == null) { return 'null'; } try { return toString_40(o); } catch ($e0) { $e0 = toJava($e0); if (instanceOf($e0, 103)) { e = $e0; objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; } else throw toJs($e0); } } function $forEachRemaining(this$static, consumer){ checkCriticalNotNull(consumer); while (this$static.hasNext_0()) { consumer.accept(this$static.next_1()); } } function $remove_21(){ throw toJs(new UnsupportedOperationException); } function $remove(){ throw toJs(new UnsupportedOperationException); } defineClass(204, 1, $intern_3); _.forEachRemaining = function forEachRemaining(consumer){ $forEachRemaining(this, consumer); } ; _.remove = function remove_0(){ $remove(); } ; var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 204); defineClass(2076, 204, $intern_4); _.remove = function remove_1(){ $remove(); } ; _.add_1 = function add_1(e){ throw toJs(new UnsupportedOperationException); } ; _.set_1 = function set_1(e){ throw toJs(new UnsupportedOperationException); } ; var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 2076); function AbstractIndexedListIterator(size_0){ AbstractIndexedListIterator_0.call(this, size_0, 0); } function AbstractIndexedListIterator_0(size_0, position){ checkPositionIndex(position, size_0); this.size_0 = size_0; this.position = position; } defineClass(399, 2076, $intern_4); _.hasNext_0 = function hasNext(){ return this.position < this.size_0; } ; _.hasPrevious = function hasPrevious(){ return this.position > 0; } ; _.next_1 = function next_0(){ if (this.position >= this.size_0) { throw toJs(new NoSuchElementException); } return this.get_0(this.position++); } ; _.nextIndex_0 = function nextIndex_0(){ return this.position; } ; _.previous_0 = function previous_0(){ if (this.position <= 0) { throw toJs(new NoSuchElementException); } return this.get_0(--this.position); } ; _.previousIndex = function previousIndex(){ return this.position - 1; } ; _.position = 0; _.size_0 = 0; var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 399); function $hasNext(this$static){ checkState(this$static.state != 3); switch (this$static.state) { case 2: return false; case 0: return true; } return $tryToComputeNext(this$static); } function $next(this$static){ var result; if (!$hasNext(this$static)) { throw toJs(new NoSuchElementException); } this$static.state = 1; result = this$static.next_0; this$static.next_0 = null; return result; } function $tryToComputeNext(this$static){ this$static.state = 3; this$static.next_0 = this$static.computeNext(); if (this$static.state != 2) { this$static.state = 0; return true; } return false; } defineClass(713, 204, $intern_3); _.hasNext_0 = function hasNext_0(){ return $hasNext(this); } ; _.next_1 = function next_1(){ return $next(this); } ; _.state = 1; var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 713); function $containsEntry(this$static, key, value_0){ var collection; collection = castTo(this$static.asMap_0().get_3(key), 16); return !!collection && collection.contains(value_0); } function $containsValue(this$static, value_0){ var collection, collection$iterator; for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { collection = castTo(collection$iterator.next_1(), 16); if (collection.contains(value_0)) { return true; } } return false; } function $keySet(this$static){ var result; result = this$static.keySet; return !result?(this$static.keySet = this$static.createKeySet()):result; } function $keys(this$static){ var result; result = this$static.keys_0; return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; } function $remove_0(this$static, key, value_0){ var collection; collection = castTo(this$static.asMap_0().get_3(key), 16); return !!collection && collection.remove_1(value_0); } defineClass(2084, 1, {229:1}); _.asMap_0 = function asMap(){ var result; return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; } ; _.equals_0 = function equals_3(object){ return equalsImpl_1(this, object); } ; _.hashCode_1 = function hashCode_4(){ return hashCode__I__devirtual$(this.asMap_0()); } ; _.isEmpty = function isEmpty(){ return this.size_1() == 0; } ; _.keySet_0 = function keySet_0(){ return $keySet(this); } ; _.toString_0 = function toString_5(){ return toString_40(this.asMap_0()); } ; var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 2084); function $clear(this$static){ var collection, collection$iterator; for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { collection = castTo(collection$iterator.next_1(), 16); collection.clear_0(); } this$static.map_0.clear_0(); this$static.totalSize = 0; } function $containsKey(this$static, key){ return this$static.map_0.containsKey(key); } function $entries(this$static){ var result; return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; } function $get(this$static, key){ var collection; collection = castTo(this$static.map_0.get_3(key), 16); !collection && (collection = this$static.createCollection_0(key)); return this$static.wrapCollection(key, collection); } function $put(this$static, key, value_0){ var collection; collection = castTo(this$static.map_0.get_3(key), 16); if (!collection) { collection = this$static.createCollection_0(key); if (collection.add_2(value_0)) { ++this$static.totalSize; this$static.map_0.put(key, collection); return true; } else { throw toJs(new AssertionError_0('New Collection violated the Collection spec')); } } else if (collection.add_2(value_0)) { ++this$static.totalSize; return true; } else { return false; } } function $removeAll(this$static, key){ var collection, output; collection = castTo(this$static.map_0.remove_0(key), 16); if (!collection) { return this$static.createUnmodifiableEmptyCollection(); } output = this$static.createCollection(); output.addAll(collection); this$static.totalSize -= collection.size_1(); collection.clear_0(); return this$static.unmodifiableCollectionSubclass(output); } function $removeValuesForKey(this$static, key){ var collection, count; collection = castTo(safeRemove_0(this$static.map_0, key), 16); if (collection) { count = collection.size_1(); collection.clear_0(); this$static.totalSize -= count; } } function $values(this$static){ var result; return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; } function $wrapList(this$static, key, list, ancestor){ return instanceOf(list, 59)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); } function AbstractMapBasedMultimap(map_0){ checkArgument(map_0.isEmpty()); this.map_0 = map_0; } function iteratorOrListIterator(collection){ return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); } function lambda$1(keyToValueCollectionEntry_0){ var key, valueCollection; key = keyToValueCollectionEntry_0.getKey(); valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 16); return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); } defineClass(742, 2084, $intern_5); _.clear_0 = function clear_0(){ $clear(this); } ; _.containsKey = function containsKey(key){ return $containsKey(this, key); } ; _.createAsMap = function createAsMap(){ return new AbstractMapBasedMultimap$AsMap(this, this.map_0); } ; _.createCollection_0 = function createCollection(key){ return this.createCollection(); } ; _.createKeySet = function createKeySet(){ return new AbstractMapBasedMultimap$KeySet(this, this.map_0); } ; _.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ return this.unmodifiableCollectionSubclass(this.createCollection()); } ; _.entryIterator = function entryIterator_0(){ return new AbstractMapBasedMultimap$2(this); } ; _.entrySpliterator = function entrySpliterator_0(){ return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); } ; _.get_1 = function get_0(key){ return $get(this, key); } ; _.removeAll = function removeAll(key){ return $removeAll(this, key); } ; _.size_1 = function size_1(){ return this.totalSize; } ; _.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); } ; _.valueIterator_0 = function valueIterator(){ return new AbstractMapBasedMultimap$1(this); } ; _.valueSpliterator = function valueSpliterator(){ return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); } ; _.wrapCollection = function wrapCollection(key, collection){ return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); } ; _.totalSize = 0; var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 742); function $asMap(this$static){ var result; return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; } defineClass(1696, 742, $intern_5); _.createCollection = function createCollection_0(){ return new ArrayList_0(this.expectedValuesPerKey); } ; _.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; } ; _.get_1 = function get_1(key){ return castTo($get(this, key), 15); } ; _.removeAll = function removeAll_0(key){ return castTo($removeAll(this, key), 15); } ; _.asMap_0 = function asMap_0(){ return $asMap(this); } ; _.equals_0 = function equals_4(object){ return equalsImpl_1(this, object); } ; _.get_2 = function get_2(key){ return castTo($get(this, key), 15); } ; _.removeAll_0 = function removeAll_1(key){ return castTo($removeAll(this, key), 15); } ; _.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ return unmodifiableList(castTo(collection, 15)); } ; _.wrapCollection = function wrapCollection_0(key, collection){ return $wrapList(this, key, castTo(collection, 15), null); } ; var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1696); function AbstractMapBasedMultimap$Itr(this$0){ this.this$01 = this$0; this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); this.key = null; this.collection = null; this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); } defineClass(748, 1, $intern_6); _.forEachRemaining = function forEachRemaining_0(consumer){ $forEachRemaining(this, consumer); } ; _.hasNext_0 = function hasNext_1(){ return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); } ; _.next_1 = function next_2(){ var mapEntry; if (!this.valueIterator.hasNext_0()) { mapEntry = castTo(this.keyIterator.next_1(), 44); this.key = mapEntry.getKey(); this.collection = castTo(mapEntry.getValue(), 16); this.valueIterator = this.collection.iterator_0(); } return this.output(this.key, this.valueIterator.next_1()); } ; _.remove = function remove_2(){ this.valueIterator.remove(); castTo(requireNonNull(this.collection), 16).isEmpty() && this.keyIterator.remove(); --this.this$01.totalSize; } ; var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 748); function AbstractMapBasedMultimap$1(this$0){ AbstractMapBasedMultimap$Itr.call(this, this$0); } defineClass(1129, 748, $intern_6, AbstractMapBasedMultimap$1); _.output = function output_0(key, value_0){ return value_0; } ; var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1129); function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ } defineClass(1130, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); _.apply_0 = function apply_2(arg0){ return castTo(arg0, 16).spliterator_0(); } ; var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1130); function AbstractMapBasedMultimap$2(this$0){ AbstractMapBasedMultimap$Itr.call(this, this$0); } defineClass(1131, 748, $intern_6, AbstractMapBasedMultimap$2); _.output = function output_1(key, value_0){ return new ImmutableEntry(key, value_0); } ; var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1131); function $forEach_2(this$static, consumer){ var entry, entry$iterator; checkCriticalNotNull(consumer); for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { entry = castTo(entry$iterator.next_1(), 44); consumer.accept_1(entry.getKey(), entry.getValue()); } } function $merge(this$static, key, value_0, remappingFunction){ var currentValue, newValue; checkCriticalNotNull(remappingFunction); checkCriticalNotNull(value_0); currentValue = this$static.get_3(key); newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 16)); newValue == null?this$static.remove_0(key):this$static.put(key, newValue); return newValue; } var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); function $containsEntry_0(this$static, entry){ var key, ourValue, value_0; key = entry.getKey(); value_0 = entry.getValue(); ourValue = this$static.get_3(key); if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { return false; } if (ourValue == null && !this$static.containsKey(key)) { return false; } return true; } function $implFindEntry(this$static, key, remove){ var entry, iter, k; for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { entry = castTo(iter.next_1(), 44); k = entry.getKey(); if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { if (remove) { entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); iter.remove(); } return entry; } } return null; } function $putAll(this$static, map_0){ var e, e$iterator; checkCriticalNotNull(map_0); for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { e = castTo(e$iterator.next_1(), 44); this$static.put(e.getKey(), e.getValue()); } } function $toString_0(this$static){ var entry, entry$iterator, joiner; joiner = new StringJoiner(', ', '{', '}'); for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { entry = castTo(entry$iterator.next_1(), 44); $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); } return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); } function $toString_1(this$static, o){ return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); } function getEntryKeyOrNull(entry){ return !entry?null:entry.key; } function getEntryValueOrNull(entry){ return !entry?null:entry.getValue(); } defineClass(2065, 1, $intern_7); _.forEach = function forEach(consumer){ $forEach_2(this, consumer); } ; _.merge = function merge(key, value_0, remappingFunction){ return $merge(this, key, value_0, remappingFunction); } ; _.clear_0 = function clear_1(){ this.entrySet_0().clear_0(); } ; _.containsEntry = function containsEntry(entry){ return $containsEntry_0(this, entry); } ; _.containsKey = function containsKey_0(key){ return !!$implFindEntry(this, key, false); } ; _.containsValue = function containsValue(value_0){ var entry, entry$iterator, v; for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { entry = castTo(entry$iterator.next_1(), 44); v = entry.getValue(); if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { return true; } } return false; } ; _.equals_0 = function equals_5(obj){ var entry, entry$iterator, otherMap; if (obj === this) { return true; } if (!instanceOf(obj, 85)) { return false; } otherMap = castTo(obj, 85); if (this.size_1() != otherMap.size_1()) { return false; } for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { entry = castTo(entry$iterator.next_1(), 44); if (!this.containsEntry(entry)) { return false; } } return true; } ; _.get_3 = function get_3(key){ return getEntryValueOrNull($implFindEntry(this, key, false)); } ; _.hashCode_1 = function hashCode_5(){ return hashCode_48(this.entrySet_0()); } ; _.isEmpty = function isEmpty_0(){ return this.size_1() == 0; } ; _.keySet_0 = function keySet_1(){ return new AbstractMap$1(this); } ; _.put = function put(key, value_0){ throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); } ; _.putAll = function putAll(map_0){ $putAll(this, map_0); } ; _.remove_0 = function remove_3(key){ return getEntryValueOrNull($implFindEntry(this, key, true)); } ; _.size_1 = function size_2(){ return this.entrySet_0().size_1(); } ; _.toString_0 = function toString_6(){ return $toString_0(this); } ; _.values_0 = function values_1(){ return new AbstractMap$2(this); } ; var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 2065); function $entrySet(this$static){ var result; result = this$static.entrySet; return !result?(this$static.entrySet = this$static.createEntrySet()):result; } defineClass(2085, 2065, $intern_7); _.createKeySet = function createKeySet_0(){ return new Maps$KeySet(this); } ; _.entrySet_0 = function entrySet(){ return $entrySet(this); } ; _.keySet_0 = function keySet_2(){ var result; result = this.keySet; return !result?(this.keySet = this.createKeySet()):result; } ; _.values_0 = function values_2(){ var result; result = this.values; return !result?(this.values = new Maps$Values(this)):result; } ; var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 2085); function $get_0(this$static, key){ var collection, k; collection = castTo(safeGet(this$static.submap, key), 16); if (!collection) { return null; } k = key; return this$static.this$01_1.wrapCollection(k, collection); } function $remove_1(this$static, key){ var collection, output; collection = castTo(this$static.submap.remove_0(key), 16); if (!collection) { return null; } output = this$static.this$01_1.createCollection(); output.addAll(collection); this$static.this$01_1.totalSize -= collection.size_1(); collection.clear_0(); return output; } function $wrapEntry(this$static, entry){ var key; key = entry.getKey(); return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 16))); } function AbstractMapBasedMultimap$AsMap(this$0, submap){ this.this$01_1 = this$0; this.submap = submap; } defineClass(402, 2085, $intern_7, AbstractMapBasedMultimap$AsMap); _.get_3 = function get_4(key){ return $get_0(this, key); } ; _.remove_0 = function remove_4(key){ return $remove_1(this, key); } ; _.clear_0 = function clear_2(){ this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); } ; _.containsKey = function containsKey_1(key){ return safeContainsKey(this.submap, key); } ; _.createEntrySet_0 = function createEntrySet(){ return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); } ; _.createEntrySet = function(){ return this.createEntrySet_0(); } ; _.equals_0 = function equals_6(object){ return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); } ; _.hashCode_1 = function hashCode_6(){ return hashCode__I__devirtual$(this.submap); } ; _.keySet_0 = function keySet_3(){ return this.this$01_1.keySet_0(); } ; _.size_1 = function size_3(){ return this.submap.size_1(); } ; _.toString_0 = function toString_7(){ return toString_40(this.submap); } ; var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 402); function $forEach_0(this$static, action){ var t, t$iterator; checkCriticalNotNull(action); for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { t = t$iterator.next_1(); action.accept(t); } } var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); function $addAll(this$static, c){ var changed, e, e$iterator; checkCriticalNotNull(c); changed = false; for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { e = e$iterator.next_1(); changed = changed | this$static.add_2(e); } return changed; } function $advanceToFind(this$stati