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
JavaScript
'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