/*! * MarchingSquaresJS * version 1.3.3 * https://github.com/RaumZeit/MarchingSquares.js * * @license GNU Affero General Public License. * Copyright (c) 2015-2019 Ronny Lorenz */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.MarchingSquaresJS=e.MarchingSquaresJS||{})}(this,function(e){"use strict";function m(e,t,n,a){var o;return a>=1,i++;a===1<>=1,s++;o===1<t||this.upperBound=t)&&a.push({x:this.x,y:this.y})),a},p.prototype.cellsBelowThreshold=function(e,t){var n=[];return t=void 0===t||t,this.lowerBound>e||(this.childA||this.childB||this.childC||this.childD?(this.childA&&(n=n.concat(this.childA.cellsBelowThreshold(e,t))),this.childB&&(n=n.concat(this.childB.cellsBelowThreshold(e,t))),this.childD&&(n=n.concat(this.childD.cellsBelowThreshold(e,t))),this.childC&&(n=n.concat(this.childC.cellsBelowThreshold(e,t)))):(t||this.upperBound>=e)&&n.push({x:this.x,y:this.y})),n};var V={square:function(e,t,n,a,o,r){r.polygons&&e.polygons.push([[0,0],[0,1],[1,1],[1,0]])},triangle_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,i],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,i],[l,0],[0,0]])},triangle_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[1,i],[1,0]])},triangle_tr:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[1,l],[i,1],[1,1]])},triangle_tl:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[0,i]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,i],[0,1],[l,1]])},tetragon_t:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[0,i]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,i],[0,1],[1,1],[1,l]])},tetragon_r:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[l,0],[i,1],[1,1],[1,0]])},tetragon_b:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[1,i],[1,0]])},tetragon_l:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[i,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[l,1],[i,0]])},tetragon_bl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[i,0]])},tetragon_br:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(n,a,r.minV,r.maxV),p=r.interpolate_b(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[1,p]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,s],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[1,p],[1,s],[i,0]])},tetragon_tr:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rb={path:[[1,p],[l,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}}),r.polygons&&e.polygons.push([[1,p],[l,1],[i,1],[1,s]])},tetragon_tl:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate_a(t,o,r.minV,r.maxV);r.polygons_full&&(e.edges.tr={path:[[i,1],[0,p]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[l,1]],move:{x:0,y:1,enter:"bl"}}),r.polygons&&e.polygons.push([[i,1],[0,p],[0,s],[l,1]])},tetragon_lr:function(e,t,n,a,o,r){var l=r.interpolate_a(t,o,r.minV,r.maxV),i=r.interpolate_b(t,o,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lt={path:[[0,i],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rb"}}),r.polygons&&e.polygons.push([[0,l],[0,i],[1,s],[1,p]])},tetragon_tb:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate_b(t,n,r.minV,r.maxV),p=r.interpolate_a(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.tr={path:[[i,1],[s,0]],move:{x:0,y:-1,enter:"tr"}},e.edges.bl={path:[[p,0],[l,1]],move:{x:0,y:1,enter:"bl"}}),r.polygons&&e.polygons.push([[p,0],[l,1],[i,1],[s,0]])},pentagon_tr:function(e,t,n,a,o,r){var l=r.interpolate(o,a,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[l,1],[1,i]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[l,1],[1,i],[1,0]])},pentagon_tl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[1,1],[1,0]])},pentagon_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,i],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[1,1],[1,i],[l,0]])},pentagon_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[i,0],[0,l]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[1,1],[1,0],[i,0]])},pentagon_tr_rl:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rt"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[i,1],[1,s],[1,p]])},pentagon_rb_bt:function(e,t,n,a,o,r){var l=r.interpolate(n,a,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,n,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.rt={path:[[1,l],[i,0]],move:{x:0,y:-1,enter:"tr"}},e.edges.bl={path:[[s,0],[p,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[p,1],[1,1],[1,l],[i,0],[s,0]])},pentagon_bl_lr:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[1,p],[1,0]])},pentagon_lt_tb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_a(o,a,r.minV,r.maxV),s=r.interpolate_b(o,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[s,1],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[s,1],[p,0]])},pentagon_bl_tb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(t,n,r.minV,r.maxV),p=r.interpolate_a(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[p,0],[0,l]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[i,1],[s,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[0,l],[0,1],[i,1],[s,0],[p,0]])},pentagon_lt_rl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,o,r.minV,r.maxV),i=r.interpolate_b(t,o,r.minV,r.maxV),s=r.interpolate(o,a,r.minV,r.maxV),p=r.interpolate(n,o,r.minV,r.maxV);r.polygons_full&&(e.edges.lt={path:[[0,i],[s,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,p],[0,l]],move:{x:-1,y:0,enter:"rb"}}),r.polygons&&e.polygons.push([[0,l],[0,i],[s,1],[1,1],[1,p]])},pentagon_tr_bt:function(e,t,n,a,o,r){var l=r.interpolate_a(o,a,r.minV,r.maxV),i=r.interpolate_b(o,a,r.minV,r.maxV),s=r.interpolate(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[p,0],[l,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,1],[i,1],[1,s],[1,0],[p,0]])},pentagon_rb_lr:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_b(n,a,r.minV,r.maxV),s=r.interpolate_a(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[1,i]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,s],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[1,i],[1,s],[p,0]])},hexagon_lt_tr:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate_a(o,a,r.minV,r.maxV),s=r.interpolate_b(o,a,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[s,1],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[s,1],[1,p],[1,0]])},hexagon_bl_lt:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[p,1]],move:{x:0,y:1,enter:"br"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[p,1],[1,1],[1,0]])},hexagon_bl_rb:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate(t,o,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rt"}},e.edges.rt={path:[[1,p],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,1],[1,1],[1,p],[i,0]])},hexagon_tr_rb:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate_b(n,a,r.minV,r.maxV),p=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.tl={path:[[i,1],[1,s]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,p],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,1],[i,1],[1,s],[1,p],[l,0]])},hexagon_lt_rb:function(e,t,n,a,o,r){var l=r.interpolate(t,o,r.minV,r.maxV),i=r.interpolate(o,a,r.minV,r.maxV),s=r.interpolate(n,a,r.minV,r.maxV),p=r.interpolate(t,n,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,l],[i,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,s],[p,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,l],[i,1],[1,1],[1,s],[p,0]])},hexagon_bl_tr:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV),s=r.interpolate(o,a,r.minV,r.maxV),p=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[s,1],[1,p]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,1],[s,1],[1,p],[1,0]])},heptagon_tr:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV),g=r.interpolate(o,a,r.minV,r.maxV),m=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[g,1]],move:{x:0,y:1,enter:"br"}},e.edges.rt={path:[[1,m],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[g,1],[1,1],[1,m],[i,0]])},heptagon_bl:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate(t,o,r.minV,r.maxV),s=r.interpolate_a(o,a,r.minV,r.maxV),p=r.interpolate_b(o,a,r.minV,r.maxV),g=r.interpolate_b(n,a,r.minV,r.maxV),m=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.lb={path:[[0,i],[s,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[p,1],[1,g]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,m],[l,0]],move:{x:0,y:-1,enter:"tl"}}),r.polygons&&e.polygons.push([[0,0],[0,i],[s,1],[p,1],[1,g],[1,m],[l,0]])},heptagon_tl:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate(t,o,r.minV,r.maxV),p=r.interpolate(o,a,r.minV,r.maxV),g=r.interpolate_b(n,a,r.minV,r.maxV),m=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rt"}},e.edges.tl={path:[[p,1],[1,g]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,m],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,1],[p,1],[1,g],[1,m],[i,0]])},heptagon_br:function(e,t,n,a,o,r){var l=r.interpolate(t,n,r.minV,r.maxV),i=r.interpolate_a(t,o,r.minV,r.maxV),s=r.interpolate_b(t,o,r.minV,r.maxV),p=r.interpolate_a(o,a,r.minV,r.maxV),g=r.interpolate_b(o,a,r.minV,r.maxV),m=r.interpolate(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.br={path:[[l,0],[0,i]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,s],[p,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[g,1],[1,m]],move:{x:1,y:0,enter:"lb"}}),r.polygons&&e.polygons.push([[l,0],[0,i],[0,s],[p,1],[g,1],[1,m],[1,0]])},octagon:function(e,t,n,a,o,r){var l=r.interpolate_a(t,n,r.minV,r.maxV),i=r.interpolate_b(t,n,r.minV,r.maxV),s=r.interpolate_a(t,o,r.minV,r.maxV),p=r.interpolate_b(t,o,r.minV,r.maxV),g=r.interpolate_a(o,a,r.minV,r.maxV),m=r.interpolate_b(o,a,r.minV,r.maxV),h=r.interpolate_b(n,a,r.minV,r.maxV),b=r.interpolate_a(n,a,r.minV,r.maxV);r.polygons_full&&(e.edges.bl={path:[[l,0],[0,s]],move:{x:-1,y:0,enter:"rb"}},e.edges.lt={path:[[0,p],[g,1]],move:{x:0,y:1,enter:"bl"}},e.edges.tr={path:[[m,1],[1,h]],move:{x:1,y:0,enter:"lt"}},e.edges.rb={path:[[1,b],[i,0]],move:{x:0,y:-1,enter:"tr"}}),r.polygons&&e.polygons.push([[l,0],[0,s],[0,p],[g,1],[m,1],[1,h],[1,b],[i,0]])}};function c(e,t,n,a,o,r){var l=(a+n+t+e)/4;return rn||e[i][o-1]n){a=!1;break}if(a&&(e[r-1][0]n||e[r-1][o-1]n)&&(a=!1),a)for(l=0;ln||e[r-1][l]n){a=!1;break}return a}(n,m.minV,m.maxV)&&(m.linearRing?N.push([[0,0],[0,q],[M,q],[M,0],[0,0]]):N.push([[0,0],[0,q],[M,q],[M,0]])),g.forEach(function(e,p){e.forEach(function(e,t){for(h=null,_=0;_<8;_++)if(h=T[_],"object"==typeof e.edges[h]){for(b=[],u=e.edges[h],x=h,d=t,f=!1,v=[(y=p)+u.path[0][0],t+u.path[0][1]],b.push(v);!f&&"object"==typeof(k=g[y][d]).edges[x];)if(u=k.edges[x],delete k.edges[x],(E=u.path[1])[0]+=y,E[1]+=d,b.push(E),x=u.move.enter,y+=u.move.x,d+=u.move.y,void 0===g[y]||void 0===g[y][d]){if(B=w=0,y===M)y--,w=0;else if(y<0)y++,w=2;else if(d===q)d--,w=3;else{if(!(d<0))throw new Error("Left the grid somewhere in the interior!");d++,w=1}if(y===p&&d===t&&w===j[h]){f=!0,x=h;break}for(;;){if(A=!1,4