Use newer version of fernflower and remove __xx names

This commit is contained in:
Lucas
2019-07-04 23:51:52 +02:00
parent 1f2a9b21d6
commit a8d801d830
294 changed files with 27369 additions and 27322 deletions

View File

@@ -49,12 +49,12 @@ public final class NetSocket extends AbstractSocket implements Runnable {
@ObfuscatedGetter(
intValue = -738185459
)
int __l;
int field632;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = 2057244853
)
int __e;
int field633;
@ObfuscatedName("x")
@Export("exceptionWriting")
boolean exceptionWriting;
@@ -62,25 +62,25 @@ public final class NetSocket extends AbstractSocket implements Runnable {
@ObfuscatedGetter(
intValue = -1644762957
)
final int __d;
final int field634;
@ObfuscatedName("k")
@ObfuscatedGetter(
intValue = -782964015
)
final int __k;
final int field635;
@ObfuscatedSignature(
signature = "(Ljava/net/Socket;Lfz;I)V"
)
public NetSocket(Socket var1, TaskHandler var2, int var3) throws IOException {
this.isClosed = false;
this.__l = 0;
this.__e = 0;
this.field632 = 0;
this.field633 = 0;
this.exceptionWriting = false;
this.taskHandler = var2;
this.socket = var1;
this.__d = var3;
this.__k = var3 - 100;
this.field634 = var3;
this.field635 = var3 - 100;
this.socket.setSoTimeout(30000);
this.socket.setTcpNoDelay(true);
this.socket.setReceiveBufferSize(65536);
@@ -96,7 +96,7 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("isAvailable")
public boolean isAvailable(int var1) throws IOException {
return this.isClosed?false:this.inputStream.available() >= var1;
return this.isClosed ? false : this.inputStream.available() >= var1;
}
@ObfuscatedName("q")
@@ -106,7 +106,7 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("available")
public int available() throws IOException {
return this.isClosed?0:this.inputStream.available();
return this.isClosed ? 0 : this.inputStream.available();
}
@ObfuscatedName("w")
@@ -116,7 +116,7 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("readUnsignedByte")
public int readUnsignedByte() throws IOException {
return this.isClosed?0:this.inputStream.read();
return this.isClosed ? 0 : this.inputStream.read();
}
@ObfuscatedName("o")
@@ -126,14 +126,14 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("read")
public int read(byte[] var1, int var2, int var3) throws IOException {
if(this.isClosed) {
if (this.isClosed) {
return 0;
} else {
int var4;
int var5;
for(var4 = var3; var3 > 0; var3 -= var5) {
for (var4 = var3; var3 > 0; var3 -= var5) {
var5 = this.inputStream.read(var1, var2, var3);
if(var5 <= 0) {
if (var5 <= 0) {
throw new EOFException();
}
@@ -161,28 +161,28 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("close")
public void close() {
if(!this.isClosed) {
if (!this.isClosed) {
synchronized(this) {
this.isClosed = true;
this.notifyAll();
}
if(this.task != null) {
while(this.task.status == 0) {
if (this.task != null) {
while (this.task.status == 0) {
class203.method4010(1L);
}
if(this.task.status == 1) {
if (this.task.status == 1) {
try {
((Thread)this.task.result).join();
} catch (InterruptedException var3) {
;
}
}
}
this.task = null;
}
}
@ObfuscatedName("ay")
@@ -192,106 +192,105 @@ public final class NetSocket extends AbstractSocket implements Runnable {
)
@Export("write0")
void write0(byte[] var1, int var2, int var3) throws IOException {
if(!this.isClosed) {
if(this.exceptionWriting) {
if (!this.isClosed) {
if (this.exceptionWriting) {
this.exceptionWriting = false;
throw new IOException();
} else {
if(this.array == null) {
this.array = new byte[this.__d];
}
if (this.array == null) {
this.array = new byte[this.field634];
}
synchronized(this) {
for (int var5 = 0; var5 < var3; ++var5) {
this.array[this.field633] = var1[var5 + var2];
this.field633 = (this.field633 + 1) % this.field634;
if ((this.field635 + this.field632) % this.field634 == this.field633) {
throw new IOException();
}
}
synchronized(this) {
for(int var5 = 0; var5 < var3; ++var5) {
this.array[this.__e] = var1[var5 + var2];
this.__e = (this.__e + 1) % this.__d;
if((this.__k + this.__l) % this.__d == this.__e) {
throw new IOException();
}
}
if(this.task == null) {
this.task = this.taskHandler.newThreadTask(this, 3);
}
this.notifyAll();
if (this.task == null) {
this.task = this.taskHandler.newThreadTask(this, 3);
}
this.notifyAll();
}
}
}
@Export("run")
@ObfuscatedName("run")
public void run() {
try {
while(true) {
while (true) {
label84: {
int var1;
int var2;
synchronized(this) {
if(this.__e == this.__l) {
if(this.isClosed) {
if (this.field633 == this.field632) {
if (this.isClosed) {
break label84;
}
try {
this.wait();
} catch (InterruptedException var10) {
;
} catch (InterruptedException var9) {
}
}
var2 = this.__l;
if(this.__e >= this.__l) {
var1 = this.__e - this.__l;
var2 = this.field632;
if (this.field633 >= this.field632) {
var1 = this.field633 - this.field632;
} else {
var1 = this.__d - this.__l;
var1 = this.field634 - this.field632;
}
}
if(var1 <= 0) {
if (var1 <= 0) {
continue;
}
try {
this.outputStream.write(this.array, var2, var1);
} catch (IOException var9) {
} catch (IOException var8) {
this.exceptionWriting = true;
}
this.__l = (var1 + this.__l) % this.__d;
this.field632 = (var1 + this.field632) % this.field634;
try {
if(this.__e == this.__l) {
if (this.field633 == this.field632) {
this.outputStream.flush();
}
} catch (IOException var8) {
} catch (IOException var7) {
this.exceptionWriting = true;
}
continue;
}
try {
if(this.inputStream != null) {
if (this.inputStream != null) {
this.inputStream.close();
}
if(this.outputStream != null) {
if (this.outputStream != null) {
this.outputStream.close();
}
if(this.socket != null) {
if (this.socket != null) {
this.socket.close();
}
} catch (IOException var7) {
;
} catch (IOException var6) {
}
this.array = null;
break;
}
} catch (Exception var12) {
NpcDefinition.sendStackTrace((String)null, var12);
} catch (Exception var11) {
NPCDefinition.sendStackTrace((String)null, var11);
}
}
@@ -308,227 +307,227 @@ public final class NetSocket extends AbstractSocket implements Runnable {
garbageValue = "-98"
)
@Export("calculateRoute")
public static int calculateRoute(int srcX, int srcY, int srcSize, RouteStrategy strategy, CollisionMap collisionMap, boolean var5, int[] bufferX, int[] bufferY) {
int graphBaseX;
for(int var8 = 0; var8 < 128; ++var8) {
for(graphBaseX = 0; graphBaseX < 128; ++graphBaseX) {
class178.directions[var8][graphBaseX] = 0;
class178.distances[var8][graphBaseX] = 99999999;
public static int calculateRoute(int var0, int var1, int var2, RouteStrategy var3, CollisionMap var4, boolean var5, int[] var6, int[] var7) {
int var8;
int var9;
for (var9 = 0; var9 < 128; ++var9) {
for (var8 = 0; var8 < 128; ++var8) {
class178.directions[var9][var8] = 0;
class178.distances[var9][var8] = 99999999;
}
}
int graphBaseY;
int endX;
byte var13;
int lowestDistance;
int var10;
byte var11;
int var12;
int var13;
int var14;
int var15;
int approxDestY;
int approxDestSizeY;
int checkX;
int checkY;
boolean found;
int endY;
int lowestCost;
int approxDestX;
if(srcSize == 1) {
graphBaseY = srcX;
endX = srcY;
byte var12 = 64;
var13 = 64;
lowestDistance = srcX - var12;
var15 = srcY - var13;
class178.directions[var12][var13] = 99;
class178.distances[var12][var13] = 0;
byte var16 = 0;
approxDestY = 0;
class178.bufferX[var16] = srcX;
approxDestX = var16 + 1;
class178.bufferY[var16] = srcY;
int[][] var18 = collisionMap.flags;
int var16;
int var17;
boolean var18;
int var19;
int var20;
int var21;
byte var22;
if (var2 == 1) {
var9 = var0;
var10 = var1;
var22 = 64;
var11 = 64;
var12 = var0 - var22;
var13 = var1 - var11;
class178.directions[var22][var11] = 99;
class178.distances[var22][var11] = 0;
byte var23 = 0;
var14 = 0;
class178.bufferX[var23] = var0;
var21 = var23 + 1;
class178.bufferY[var23] = var1;
int[][] var24 = var4.flags;
boolean var29;
while(true) {
if(approxDestX == approxDestY) {
WidgetGroupParent.__bx_o = graphBaseY;
UrlRequester.__eo_u = endX;
var29 = false;
break;
boolean var25;
label226: {
while (var21 != var14) {
var9 = class178.bufferX[var14];
var10 = class178.bufferY[var14];
var14 = var14 + 1 & 4095;
var19 = var9 - var12;
var20 = var10 - var13;
var15 = var9 - var4.xInset;
var16 = var10 - var4.yInset;
if (var3.vmethod3644(1, var9, var10, var4)) {
WidgetGroupParent.field986 = var9;
UrlRequester.field929 = var10;
var25 = true;
break label226;
}
var17 = class178.distances[var19][var20] + 1;
if (var19 > 0 && class178.directions[var19 - 1][var20] == 0 && (var24[var15 - 1][var16] & 19136776) == 0) {
class178.bufferX[var21] = var9 - 1;
class178.bufferY[var21] = var10;
var21 = var21 + 1 & 4095;
class178.directions[var19 - 1][var20] = 2;
class178.distances[var19 - 1][var20] = var17;
}
if (var19 < 127 && class178.directions[var19 + 1][var20] == 0 && (var24[var15 + 1][var16] & 19136896) == 0) {
class178.bufferX[var21] = var9 + 1;
class178.bufferY[var21] = var10;
var21 = var21 + 1 & 4095;
class178.directions[var19 + 1][var20] = 8;
class178.distances[var19 + 1][var20] = var17;
}
if (var20 > 0 && class178.directions[var19][var20 - 1] == 0 && (var24[var15][var16 - 1] & 19136770) == 0) {
class178.bufferX[var21] = var9;
class178.bufferY[var21] = var10 - 1;
var21 = var21 + 1 & 4095;
class178.directions[var19][var20 - 1] = 1;
class178.distances[var19][var20 - 1] = var17;
}
if (var20 < 127 && class178.directions[var19][var20 + 1] == 0 && (var24[var15][var16 + 1] & 19136800) == 0) {
class178.bufferX[var21] = var9;
class178.bufferY[var21] = var10 + 1;
var21 = var21 + 1 & 4095;
class178.directions[var19][var20 + 1] = 4;
class178.distances[var19][var20 + 1] = var17;
}
if (var19 > 0 && var20 > 0 && class178.directions[var19 - 1][var20 - 1] == 0 && (var24[var15 - 1][var16 - 1] & 19136782) == 0 && (var24[var15 - 1][var16] & 19136776) == 0 && (var24[var15][var16 - 1] & 19136770) == 0) {
class178.bufferX[var21] = var9 - 1;
class178.bufferY[var21] = var10 - 1;
var21 = var21 + 1 & 4095;
class178.directions[var19 - 1][var20 - 1] = 3;
class178.distances[var19 - 1][var20 - 1] = var17;
}
if (var19 < 127 && var20 > 0 && class178.directions[var19 + 1][var20 - 1] == 0 && (var24[var15 + 1][var16 - 1] & 19136899) == 0 && (var24[var15 + 1][var16] & 19136896) == 0 && (var24[var15][var16 - 1] & 19136770) == 0) {
class178.bufferX[var21] = var9 + 1;
class178.bufferY[var21] = var10 - 1;
var21 = var21 + 1 & 4095;
class178.directions[var19 + 1][var20 - 1] = 9;
class178.distances[var19 + 1][var20 - 1] = var17;
}
if (var19 > 0 && var20 < 127 && class178.directions[var19 - 1][var20 + 1] == 0 && (var24[var15 - 1][var16 + 1] & 19136824) == 0 && (var24[var15 - 1][var16] & 19136776) == 0 && (var24[var15][var16 + 1] & 19136800) == 0) {
class178.bufferX[var21] = var9 - 1;
class178.bufferY[var21] = var10 + 1;
var21 = var21 + 1 & 4095;
class178.directions[var19 - 1][var20 + 1] = 6;
class178.distances[var19 - 1][var20 + 1] = var17;
}
if (var19 < 127 && var20 < 127 && class178.directions[var19 + 1][var20 + 1] == 0 && (var24[var15 + 1][var16 + 1] & 19136992) == 0 && (var24[var15 + 1][var16] & 19136896) == 0 && (var24[var15][var16 + 1] & 19136800) == 0) {
class178.bufferX[var21] = var9 + 1;
class178.bufferY[var21] = var10 + 1;
var21 = var21 + 1 & 4095;
class178.directions[var19 + 1][var20 + 1] = 12;
class178.distances[var19 + 1][var20 + 1] = var17;
}
}
graphBaseY = class178.bufferX[approxDestY];
endX = class178.bufferY[approxDestY];
approxDestY = approxDestY + 1 & 4095;
endY = graphBaseY - lowestDistance;
lowestCost = endX - var15;
approxDestSizeY = graphBaseY - collisionMap.xInset;
checkX = endX - collisionMap.yInset;
if(strategy.vmethod3644(1, graphBaseY, endX, collisionMap)) {
WidgetGroupParent.__bx_o = graphBaseY;
UrlRequester.__eo_u = endX;
var29 = true;
break;
}
checkY = class178.distances[endY][lowestCost] + 1;
if(endY > 0 && class178.directions[endY - 1][lowestCost] == 0 && (var18[approxDestSizeY - 1][checkX] & 19136776) == 0) {
class178.bufferX[approxDestX] = graphBaseY - 1;
class178.bufferY[approxDestX] = endX;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY - 1][lowestCost] = 2;
class178.distances[endY - 1][lowestCost] = checkY;
}
if(endY < 127 && class178.directions[endY + 1][lowestCost] == 0 && (var18[approxDestSizeY + 1][checkX] & 19136896) == 0) {
class178.bufferX[approxDestX] = graphBaseY + 1;
class178.bufferY[approxDestX] = endX;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY + 1][lowestCost] = 8;
class178.distances[endY + 1][lowestCost] = checkY;
}
if(lowestCost > 0 && class178.directions[endY][lowestCost - 1] == 0 && (var18[approxDestSizeY][checkX - 1] & 19136770) == 0) {
class178.bufferX[approxDestX] = graphBaseY;
class178.bufferY[approxDestX] = endX - 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY][lowestCost - 1] = 1;
class178.distances[endY][lowestCost - 1] = checkY;
}
if(lowestCost < 127 && class178.directions[endY][lowestCost + 1] == 0 && (var18[approxDestSizeY][checkX + 1] & 19136800) == 0) {
class178.bufferX[approxDestX] = graphBaseY;
class178.bufferY[approxDestX] = endX + 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY][lowestCost + 1] = 4;
class178.distances[endY][lowestCost + 1] = checkY;
}
if(endY > 0 && lowestCost > 0 && class178.directions[endY - 1][lowestCost - 1] == 0 && (var18[approxDestSizeY - 1][checkX - 1] & 19136782) == 0 && (var18[approxDestSizeY - 1][checkX] & 19136776) == 0 && (var18[approxDestSizeY][checkX - 1] & 19136770) == 0) {
class178.bufferX[approxDestX] = graphBaseY - 1;
class178.bufferY[approxDestX] = endX - 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY - 1][lowestCost - 1] = 3;
class178.distances[endY - 1][lowestCost - 1] = checkY;
}
if(endY < 127 && lowestCost > 0 && class178.directions[endY + 1][lowestCost - 1] == 0 && (var18[approxDestSizeY + 1][checkX - 1] & 19136899) == 0 && (var18[approxDestSizeY + 1][checkX] & 19136896) == 0 && (var18[approxDestSizeY][checkX - 1] & 19136770) == 0) {
class178.bufferX[approxDestX] = graphBaseY + 1;
class178.bufferY[approxDestX] = endX - 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY + 1][lowestCost - 1] = 9;
class178.distances[endY + 1][lowestCost - 1] = checkY;
}
if(endY > 0 && lowestCost < 127 && class178.directions[endY - 1][lowestCost + 1] == 0 && (var18[approxDestSizeY - 1][checkX + 1] & 19136824) == 0 && (var18[approxDestSizeY - 1][checkX] & 19136776) == 0 && (var18[approxDestSizeY][checkX + 1] & 19136800) == 0) {
class178.bufferX[approxDestX] = graphBaseY - 1;
class178.bufferY[approxDestX] = endX + 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY - 1][lowestCost + 1] = 6;
class178.distances[endY - 1][lowestCost + 1] = checkY;
}
if(endY < 127 && lowestCost < 127 && class178.directions[endY + 1][lowestCost + 1] == 0 && (var18[approxDestSizeY + 1][checkX + 1] & 19136992) == 0 && (var18[approxDestSizeY + 1][checkX] & 19136896) == 0 && (var18[approxDestSizeY][checkX + 1] & 19136800) == 0) {
class178.bufferX[approxDestX] = graphBaseY + 1;
class178.bufferY[approxDestX] = endX + 1;
approxDestX = approxDestX + 1 & 4095;
class178.directions[endY + 1][lowestCost + 1] = 12;
class178.distances[endY + 1][lowestCost + 1] = checkY;
}
WidgetGroupParent.field986 = var9;
UrlRequester.field929 = var10;
var25 = false;
}
found = var29; // Vars are weird above here cause that's an inlined method
} else if(srcSize == 2) {
found = WorldMapSection2.method593(srcX, srcY, strategy, collisionMap);
var18 = var25;
} else if (var2 == 2) {
var18 = WorldMapSection2.method593(var0, var1, var3, var4);
} else {
found = IndexStore.method3585(srcX, srcY, srcSize, strategy, collisionMap);
var18 = IndexStore.method3585(var0, var1, var2, var3, var4);
}
graphBaseX = srcX - 64;
graphBaseY = srcY - 64;
endX = WidgetGroupParent.__bx_o;
endY = UrlRequester.__eo_u;
if(!found) {
lowestCost = Integer.MAX_VALUE;
lowestDistance = Integer.MAX_VALUE;
byte alternativeRouteRange = 10;
approxDestX = strategy.approxDestinationX;
approxDestY = strategy.approxDestinationY;
int approxDestSizeX = strategy.approxDestinationSizeX;
approxDestSizeY = strategy.approxDestinationSizeY;
var8 = var0 - 64;
var9 = var1 - 64;
var10 = WidgetGroupParent.field986;
var19 = UrlRequester.field929;
if (!var18) {
var20 = Integer.MAX_VALUE;
var12 = Integer.MAX_VALUE;
var22 = 10;
var21 = var3.approxDestinationX;
var14 = var3.approxDestinationY;
int var29 = var3.approxDestinationSizeX;
var15 = var3.approxDestinationSizeY;
for(checkX = approxDestX - alternativeRouteRange; checkX <= alternativeRouteRange + approxDestX; ++checkX) {
for(checkY = approxDestY - alternativeRouteRange; checkY <= approxDestY + alternativeRouteRange; ++checkY) {
int graphX = checkX - graphBaseX;
int graphY = checkY - graphBaseY;
if(graphX >= 0 && graphY >= 0 && graphX < 128 && graphY < 128 && class178.distances[graphX][graphY] < 100) {
int deltaX = 0;
if(checkX < approxDestX) {
deltaX = approxDestX - checkX;
} else if(checkX > approxDestSizeX + approxDestX - 1) {
deltaX = checkX - (approxDestSizeX + approxDestX - 1);
for (var16 = var21 - var22; var16 <= var22 + var21; ++var16) {
for (var17 = var14 - var22; var17 <= var14 + var22; ++var17) {
int var30 = var16 - var8;
int var31 = var17 - var9;
if (var30 >= 0 && var31 >= 0 && var30 < 128 && var31 < 128 && class178.distances[var30][var31] < 100) {
int var26 = 0;
if (var16 < var21) {
var26 = var21 - var16;
} else if (var16 > var29 + var21 - 1) {
var26 = var16 - (var29 + var21 - 1);
}
int deltaY = 0;
if(checkY < approxDestY) {
deltaY = approxDestY - checkY;
} else if(checkY > approxDestSizeY + approxDestY - 1) {
deltaY = checkY - (approxDestSizeY + approxDestY - 1);
int var27 = 0;
if (var17 < var14) {
var27 = var14 - var17;
} else if (var17 > var15 + var14 - 1) {
var27 = var17 - (var15 + var14 - 1);
}
int cost = deltaY * deltaY + deltaX * deltaX;
if(cost < lowestCost || cost == lowestCost && class178.distances[graphX][graphY] < lowestDistance) {
lowestCost = cost;
lowestDistance = class178.distances[graphX][graphY];
endX = checkX;
endY = checkY;
int var28 = var27 * var27 + var26 * var26;
if (var28 < var20 || var28 == var20 && class178.distances[var30][var31] < var12) {
var20 = var28;
var12 = class178.distances[var30][var31];
var10 = var16;
var19 = var17;
}
}
}
}
if(lowestCost == Integer.MAX_VALUE) {
if (var20 == Integer.MAX_VALUE) {
return -1;
}
}
if(srcX == endX && endY == srcY) {
if (var0 == var10 && var19 == var1) {
return 0;
} else { // Inlined again after this I think
var13 = 0;
class178.bufferX[var13] = endX;
lowestCost = var13 + 1;
class178.bufferY[var13] = endY;
} else {
var11 = 0;
class178.bufferX[var11] = var10;
var20 = var11 + 1;
class178.bufferY[var11] = var19;
for(lowestDistance = var15 = class178.directions[endX - graphBaseX][endY - graphBaseY]; srcX != endX || endY != srcY; lowestDistance = class178.directions[endX - graphBaseX][endY - graphBaseY]) {
if(lowestDistance != var15) {
var15 = lowestDistance;
class178.bufferX[lowestCost] = endX;
class178.bufferY[lowestCost++] = endY;
for (var12 = var13 = class178.directions[var10 - var8][var19 - var9]; var0 != var10 || var19 != var1; var12 = class178.directions[var10 - var8][var19 - var9]) {
if (var12 != var13) {
var13 = var12;
class178.bufferX[var20] = var10;
class178.bufferY[var20++] = var19;
}
if((lowestDistance & 2) != 0) {
++endX;
} else if((lowestDistance & 8) != 0) {
--endX;
if ((var12 & 2) != 0) {
++var10;
} else if ((var12 & 8) != 0) {
--var10;
}
if((lowestDistance & 1) != 0) {
++endY;
} else if((lowestDistance & 4) != 0) {
--endY;
if ((var12 & 1) != 0) {
++var19;
} else if ((var12 & 4) != 0) {
--var19;
}
}
approxDestX = 0;
var21 = 0;
while(lowestCost-- > 0) {
bufferX[approxDestX] = class178.bufferX[lowestCost];
bufferY[approxDestX++] = class178.bufferY[lowestCost];
if(approxDestX >= bufferX.length) {
while (var20-- > 0) {
var6[var21] = class178.bufferX[var20];
var7[var21++] = class178.bufferY[var20];
if (var21 >= var6.length) {
break;
}
}
return approxDestX;
return var21;
}
}
@@ -538,9 +537,9 @@ public final class NetSocket extends AbstractSocket implements Runnable {
garbageValue = "-590103687"
)
public static boolean method3537(AbstractIndexCache var0, AbstractIndexCache var1, AbstractIndexCache var2, MidiPcmStream var3) {
class1.__f_m = var0;
class214.__hf_f = var1;
class214.__hf_q = var2;
class1.field1105 = var0;
class214.field1127 = var1;
class214.field1128 = var2;
class214.midiPcmStream = var3;
return true;
}