ss(this.markerClassName)) {
			return;
		}
		this._removeTarget(target[0]);
		target.removeClass(this.markerClassName).empty().removeData(this.propertyName);
	},

	/* Pause a countdown widget at the current time.
	   Stop it running but remember and display the current time.
	   @param  target  (element) the containing division */
	_pausePlugin: function(target) {
		this._hold(target, 'pause');
	},

	/* Pause a countdown widget at the current time.
	   Stop the display but keep the countdown running.
	   @param  target  (element) the containing division */
	_lapPlugin: function(target) {
		this._hold(target, 'lap');
	},

	/* Resume a paused countdown widget.
	   @param  target  (element) the containing division */
	_resumePlugin: function(target) {
		this._hold(target, null);
	},

	/* Pause or resume a countdown widget.
	   @param  target  (element) the containing division
	   @param  hold    (string) the new hold setting */
	_hold: function(target, hold) {
		var inst = $.data(target, this.propertyName);
		if (inst) {
			if (inst._hold == 'pause' && !hold) {
				inst._periods = inst._savePeriods;
				var sign = (inst._since ? '-' : '+');
				inst[inst._since ? '_since' : '_until'] =
					this._determineTime(sign + inst._periods[0] + 'y' +
						sign + inst._periods[1] + 'o' + sign + inst._periods[2] + 'w' +
						sign + inst._periods[3] + 'd' + sign + inst._periods[4] + 'h' +
						sign + inst._periods[5] + 'm' + sign + inst._periods[6] + 's');
				this._addTarget(target);
			}
			inst._hold = hold;
			inst._savePeriods = (hold == 'pause' ? inst._periods : null);
			$.data(target, this.propertyName, inst);
			this._updateCountdown(target, inst);
		}
	},

	/* Return the current time periods.
	   @param  target  (element) the containing division
	   @return  (number[7]) the current periods for the countdown */
	_getTimesPlugin: function(target) {
		var inst = $.data(target, this.propertyName);
		return (!inst ? null : (inst._hold == 'pause' ? inst._savePeriods : (!inst._hold ? inst._periods :
			this._calculatePeriods(inst, inst._show, inst.options.significant, new Date()))));
	},

	/* A time may be specified as an exact value or a relative one.
	   @param  setting      (string or number or Date) - the date/time value
	                        as a relative or absolute value
	   @param  defaultTime  (Date) the date/time to use if no other is supplied
	   @return  (Date) the corresponding date/time */
	_determineTime: function(setting, defaultTime) {
		var offsetNumeric = function(offset) { // e.g. +300, -2
			var time = new Date();
			time.setTime(time.getTime() + offset * 1000);
			return time;
		};
		var offsetString = function(offset) { // e.g. '+2d', '-4w', '+3h +30m'
			offset = offset.toLowerCase();
			var time = new Date();
			var year = time.getFullYear();
			var month = time.getMonth();
			var day = time.getDate();
			var hour = time.getHours();
			var minute = time.getMinutes();
			var second = time.getSeconds();
			var pattern = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;
			var matches = pattern.exec(offset);
			while (matches


no_depth_mask

    @torch.no_grad()
    def project_bev(self, pc, no_depth_mask, pc_feat, pc_sem):
        '''
        pc: (bs, N, 3)
        no_depth_mask: (bs, N)
        pc_feat: (bs, N, 768)
        '''
        bevs, ob_masks, sems, sem_masks = [], [], [], []

        for pc_i, no_depth_mask_i, pc_feat_i, pc_sem_i in zip(pc, no_depth_mask, pc_feat, pc_sem):
            # discretize point cloud
            vertex_to_rgb_ft = pc_feat_i.clone()
            vertex_to_map_xz = (pc_i[:, [0,2]]/self.map_res + (self.map_dim-1)/2).round()
            vertex_to_sem = pc_sem_i.clone()
            outside_mask = (vertex_to_map_xz[:, 0] >= self.map_dim) +\
                           (vertex_to_map_xz[:, 1] >= self.map_dim) +\
                           (vertex_to_map_xz[:, 0] < 0) +\
                           (vertex_to_map_xz[:, 1] < 0)
            above_mask = (pc_i[:, 1] >  0.5)
            mask = no_depth_mask_i | outside_mask | above_mask
            vertex_to_rgb_ft = vertex_to_rgb_ft[~mask]
            vertex_to_map_xz = vertex_to_map_xz[~mask]
            vertex_to_sem = vertex_to_sem[~mask]

            # scatter feat
            feat_index = (self.map_dim * vertex_to_map_xz[:, 1] + vertex_to_map_xz[:, 0]).long()
            flat_bev = scatter_mean(vertex_to_rgb_ft,
                                    feat_index,
                                    dim=0,
                                    dim_size=self.map_dim*self.map_dim)
            bev = flat_bev.reshape(self.map_dim, self.map_dim, 768)
            ob_mask = ~((bev.max(dim=-1)[0]==0) & (bev.min(dim=-1)[0]==0))
            bevs.append(bev)
            ob_masks.append(ob_mask)

            # scatter semantic label
            flat_sem = scatter_mean(vertex_to_sem,
                                    feat_index,
                                    dim=0,
                                    dim_size=self.map_dim*self.map_dim)
            sem = flat_sem.reshape(self.map_dim, self.map_dim, 40)
            sem[sem>0] = 1; sems.append(sem)
            sem_mask = (sem.sum(2) > 0); sem_masks.append(sem_mask)

        bevs = torch.stack(bevs, dim=0)
        ob_masks = torch.stack(ob_masks, dim=0)
        sems = torch.stack(sems, dim=0)
        sem_masks = torch.stack(sem_masks, dim=0)

        return bevs, ob_masks, sems, sem_masks


261f996e4a1e90738a003c24918aa0aadef2395a5a8cbecfe081f2b1e812012499f0ac9b62dbe7e17");
                yield return new(Key: "01020304", Msg: "68656c6c6f", Custom: "0102030405060708", Mac: "e5b7e950bd79fb025084c0d4398439db1554b0c2b4d801ae257bc301a3a867b47f206e3f8aceb6aa497ed9c8978415451f3db4bc285c2c765645590244954d26ced531f8892501e0069f3214ad97ad6a6fdbcc266c4493363e16273075ff89de9f5b6e114a82a22a0fd11ab22873c545d613ed3d77924995b9d0aa494bcf4d056459752063deec6efce7c0fe774d07440d6ac472c87e744a9129c40d1b1820c9f7fb7d2d6c55fb200356cd931120a512e5655a0598a37155");
                yield return new(Key: "01020304", Msg: "676f6f64627965", Custom: "0102030405060708", Mac: "42ca1ee3d2a5b99face4760adeaa83072ba6be9394a03cb4b1750692b84fff5d240ba1d91e0a76f6ec6983aceedf483addc20f970b124f045b755efa0103f322ff84c3bdddd4d76e54ccb20dff889196408f890a631d6265761d9378e58016707ad9bf1c47e646388f0756249e4b8bcfce0db59380e0efc997827b4f00c07f12a6048ffbfc85d5fb9f9161d2dd50708f44ce93268ded5d0752b8101b8fd3c3e19327c3c7a72830c4be7dc8588fcf3b0f794af11f8f395059");
                yield return new(Key: "01020304", Msg: "", Custom: "", Mac: "78ab48d16ecb5eec220a20dada08d6dcbdd7f2d5bac70161628f055d02ed492f834e4a2ba33ddb5fa178c280180f66b3f3cc0c32726f368b06d092b68f6dc8a0fef344794d59bd7fe9ea33a0ad8df6e978814a85e86ba841eba9990021a0b801e15ed3d6c48239f3972a544237743824ac0ad5253dbbe299a519b489f9b0adef5c73b7e4ae8bd3bee3758a48ffce0de875219a6e3d9bf661e55e32cedbb971ddef98ecb363cb4872821efd7d6988b01eec017ca21eeccc53483f1ee1edc3a7b02a9b911fd2e8dae8");
                yield return new(Key: "01020304", Msg: "68656c6c6f", Custom: "", Mac: "a532fa364fa7dfd7722f9f53490a293bfc5f833b98d1e2dbe93dd6a8d6fd894496ea1134d74c204b9d28e5c400d0b471eeb9e9bd11f6bf4211930022025a7d4f067140c30b8af15cf6af43d12e912d5bffe4a65a2ac115f8521a8299de7bab89ccac1d21bb2bcfcd1ce1221265cda5f080fb12f90488b458d230241a8eec775


t) {
        if (event.action) {
          OPENWORLD.Mob.randomwalk(sheep, 5, 0.05, 0.3,
              action: "walk",
              actionduration: 1,
              stopaction: "idle",
              reset: true
          );
        }
      });
    }

    // This is the sheep between the beach and lindos
    var roomSheep3= OPENWORLD.Room.createRoom(393.97, 316.09,
        soundpath: "sounds/field.mp3", volume: 0.05, randomsoundpath:"sounds/bah.mp3", randomsoundgap:50, exitroom: roomDefault); //THREE.Object3D();

    scene.add(roomSheep3 );
    OPENWORLD.Room.setDistanceTrigger( roomSheep3  , dist:8);

    // Create three sheep but there is no sheperd
    for (var i=0; i<3; i++) {
      var sheep = await OPENWORLD.Actor.copyActor(sheeporig);
      OPENWORLD.Space.worldToLocalSurfaceObjHide(
          sheep,
          OPENWORLD.Room.getX(roomSheep3) + 5 * (OPENWORLD.Math.random() - 0.5),
          OPENWORLD.Room.getY(roomSheep3) + 5 * (OPENWORLD.Math.random() - 0.5),
          0, 5);
      OPENWORLD.Space.objTurn(sheep.children[0], 0);

      scene.add(sheep);
      addnpc(sheep, "sheep", true,deathsoundpath: "sounds/bah.mp3");
      OPENWORLD.BaseObject.setDistanceTrigger(sheep, dist: 5);
      sheep.extra['trigger'].addEventListener('trigger', (THREE.Event event) {
        if (event.action) {
          OPENWORLD.Mob.randomwalk(sheep, 5, 0.05, 0.3,
              action: "walk",
              actionduration: 1,
              stopaction: "idle",
              reset: true
          );
        }
      });
    }

    // This is the room for the wild dog in the wilderness
    var roomWildDog= OPENWORLD.Room.createRoom(123.096,512.404,
        soundpath: "sounds/field.mp3", volume: 0.05, exitroom: roomDefault); //THREE.Object3D();
    scene.add(roomWildDog);
    Group wilddog = await OPENWORLD.Actor.createActor('assets/actors/wilddog.glb',
      shareanimations: dog,
      duration:3
    );
    wilddog.scale.set(0.005,0.005,0.005);
    OPENWORLD.Space.objTurn(wilddog.children[0],0);

    // If you get too near the wild dog it will attack you
    var wildpos=[OPENWORLD.Room.getX(roomWildDog)+5*(OPENWORLD.Math.random()-0.5), OPENWORLD.Room.getY(roomWildDog)+5*(OPENWORLD.Math.random()-0.5)];
    var wilddir=0.0;
    OPENWORLD.Space.worldToLocalSurfaceObjHide(
        wilddog,wildpos[0],wildpos[1] , 0,8);
    OPENWORLD.Space.objTurn(wilddog,wilddir);
    scene.add(wilddog);
    addnpc(wilddog, "wilddog", true,deathsoundpath: "sounds/yelp.mp3");
    OPENWORLD.BaseObject.setDistanceTrigger(wilddog, dist: 1);
    // OPENWORLD.Space.objTurn(boat2 ,180);
    wilddog.extra['trigger'].addEventListener('trigger', (THREE.Event event) {
      if (event.action) {
        Future.delayed(Duration(milliseconds: (OPENWORLD.Math.random()*5000).round()), () {
          actorAttack(wilddog,attackaction: "attack");
        });

      }
    });

    // If at a distance from the dog then will urinate or eat the meat
    OPENWORLD.Room.setDistanceTrigger( roomWildDog  ,


 32)

	}
}
package examples.tilemaps

import Phaser.*

class ReplaceTiles: State() {

	//var game = Phaser.Game(800, 600, Phaser.CANVAS, "phaser-example", object{ var  preload= preload;  var  create= create;  var  update= update;  var  render= render })

	override fun preload() {

	    game.load.tilemap("desert", "assets/tilemaps/maps/desert.json", null, Phaser.Tilemap.TILED_JSON)
	    game.load.image("tiles", "assets/tilemaps/tiles/tmw_desert_spacing.png")
	    game.load.image("car", "assets/sprites/car90.png")

	}

	lateinit var map:Tilemap
	lateinit var layer:TilemapLayer

	lateinit var cursors:CursorKeys
	lateinit var sprite:Sprite

	override fun create() {

	    game.physics.startSystem(Phaser.Physics.ARCADE)

	    map = game.add.tilemap("desert")

	    map.addTilesetImage("Desert", "tiles")

	    layer = map.createLayer("Ground")

	    layer.resizeWorld()

	    sprite = game.add.sprite(450, 80, "car")
	    sprite.anchor.setTo(0.5, 0.5)

	    game.physics.enable(sprite)

	    game.camera.follow(sprite)

	    cursors = game.input.keyboard.createCursorKeys()

	    game.input.onDown.add(this::replaceTiles, this)

	}

	fun replaceTiles() {

	    //  This will replace every instance of tile 31 (cactus plant) with tile 46 (the sign post).
	    //  It does this across the whole layer of the map unless a region is specified.

	    //  You can also pass in x, y, width, height values to control the area in which the replace happens

	    map.replace(31, 46)

	}

	override fun update() {

	    sprite.body.velocity.x = 0.0
	    sprite.body.velocity.y = 0.0
	    sprite.body.angularVelocity = 0

	    if (cursors.left.isDown)
	    {
	        sprite.body.angularVelocity = -200
	    }
	    else if (cursors.right.isDown)
	    {
	        sprite.body.angularVelocity = 200
	    }

	    if (cursors.up.isDown)
	    {
	        sprite.body.velocity.copyFrom(game.physics.arcade.velocityFromAngle(sprite.angle, 300))
	    }

	}

	override fun render() {

	    game.debug.text("Click to replace tiles", 32, 32, "rgb(0,0,0)")
	    game.debug.text("Tile X: " + layer.getTileX(sprite.x), 32, 48, "rgb(0,0,0)")
	    game.debug.text("Tile Y: " + layer.getTileY(sprite.y), 32, 64, "rgb(0,0,0)")

	}
}
package examples.tilemaps

import Phaser.*

class TileCallbacks: State() {

	//var game = Phaser.Game(800, 600, Phaser.AUTO, "phaser-example", object{ var  preload= preload;  var  create= create;  var  update= update;  var  render= render })

	override fun preload() {

	    game.load.tilemap("map", "assets/tilemaps/maps/tile_collision_test.json", null, Phaser.Tilemap.TILED_JSON)

	    game.load.image("ground_1x1", "assets/tilemaps/tiles/ground_1x1.png")
	    game.load.image("phaser", "assets/sprites/arrow.png")
	    game.load.spritesheet("coin", "assets/sprites/coin.png", 32, 32)

	}

	lateinit var map:Tilemap
	lateinit var layer:TilemapLa


QT_NO_OPENSSL
    void setSslConfiguration(const QSslConfiguration &config);
    void ignoreSslErrors(int channel = -1);
    void ignoreSslErrors(const QList<QSslError> &errors, int channel = -1);
#endif

private:
    Q_DECLARE_PRIVATE(QHttpNetworkConnection)
    Q_DISABLE_COPY(QHttpNetworkConnection)
    friend class QHttpNetworkReply;
    friend class QHttpNetworkReplyPrivate;
    friend class QHttpNetworkConnectionChannel;

    Q_PRIVATE_SLOT(d_func(), void _q_startNextRequest())
};

// private classes
typedef QPair<QHttpNetworkRequest, QHttpNetworkReply*> HttpMessagePair;

class QHttpNetworkConnectionPrivate : public QObjectPrivate
{
    Q_DECLARE_PUBLIC(QHttpNetworkConnection)
public:
    static const int defaultChannelCount;
    static const int defaultPipelineLength;
    static const int defaultRePipelineLength;

    enum ConnectionState {
        RunningState = 0,
        PausedState = 1,
    };

    QHttpNetworkConnectionPrivate(const QString &hostName, quint16 port, bool encrypt);
    QHttpNetworkConnectionPrivate(quint16 channelCount, const QString &hostName, quint16 port, bool encrypt);
    ~QHttpNetworkConnectionPrivate();
    void init();

    void pauseConnection();
    void resumeConnection();
    ConnectionState state;

    enum { ChunkSize = 4096 };

    int indexOf(QAbstractSocket *socket) const;

    QHttpNetworkReply *queueRequest(const QHttpNetworkRequest &request);
    void requeueRequest(const HttpMessagePair &pair); // e.g. after pipeline broke
    bool dequeueRequest(QAbstractSocket *socket);
    void prepareRequest(HttpMessagePair &request);
    QHttpNetworkRequest predictNextRequest();

    void fillPipeline(QAbstractSocket *socket);
    bool fillPipeline(QList<HttpMessagePair> &queue, QHttpNetworkConnectionChannel &channel);

    // read more HTTP body after the next event loop spin
    void readMoreLater(QHttpNetworkReply *reply);

    void copyCredentials(int fromChannel, QAuthenticator *auth, bool isProxy);

    // private slots
    void _q_startNextRequest(); // send the next request from the queue

    void createAuthorization(QAbstractSocket *socket, QHttpNetworkRequest &request);

    QString errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket *socket,
                        const QString &extraDetail = QString());

#ifndef QT_NO_COMPRESS
    bool expand(QAbstractSocket *socket, QHttpNetworkReply *reply, bool dataComplete);
#endif
    void removeReply(QHttpNetworkReply *reply);

    QString hostName;
    quint16 port;
    bool encrypt;

    const int channelCount;
    QHttpNetworkConnectionChannel *channels; // parallel connections to the server

    qint64 uncompressedBytesAvailable(const QHttpNetworkReply &reply) const;
    qint64 uncompressedBytesAvailableNextBlock(const QHttpNetworkReply &reply) const;

    void emitReplyError(QAbstractSocket *socket, QHttpNetworkReply *reply, QNetworkReply::NetworkError errorCode);
    bool handleAuthenticateChallenge(QAbstractSocket *socket, QHttpNetworkReply *reply, bool isProxy, bool &resend);

#ifndef QT_NO_NETWORKPROXY
    QNetworkProxy networkProxy;
    void emitProxyAuthenticationRequired(const QHttpNetworkConnectionChannel *chan, const QNetworkProxy &proxy, QAuthenticator* auth);
#endif

    //The request queues
    QList<HttpMessagePair> highPriorityQueue;
    QList<HttpMessagePair> lowPriorityQueue;

#ifndef QT_NO_BEARERMANAGEMENT
    QSharedPointer<QNetworkSession> networkSession;
#endif

    friend class QHttpNetworkConnectionChannel;
};

QT_END_NAMESPACE

#endif // QT_NO_HTTP

#endif


oord) => coord.split(',').map((n) => Number(n)))
    for (let i = 0; i < points.length - 1; i++) {
      const [from, to] = [
        adjustCoord(points[i] as [number, number], lowestPartX, lowestPartY),
        adjustCoord(
          points[i + 1] as [number, number],
          lowestPartX,
          lowestPartY
        ),
      ]
      if (from[0] === to[0]) {
        const down = from[1] - to[1] > 0
        for (
          let j = from[1];
          down ? j >= to[1] : j <= to[1];
          down ? j-- : j++
        ) {
          cave[j][from[0]] = CavePart.Rock
        }
      }
      if (from[1] === to[1]) {
        const downX = from[0] - to[0] > 0
        for (
          let j = from[0];
          downX ? j >= to[0] : j <= to[0];
          downX ? j-- : j++
        ) {
          cave[from[1]][j] = CavePart.Rock
        }
      }
    }
  })
  return cave
}

const printCave = (cave: Cave) => {
  let write = ''
  cave.forEach((caveLine) => {
    caveLine.forEach((cavePart) => {
      write += cavePart
    })
    write += '\n'
  })
  return write
}

const addSand = (cave: Cave): number => {
  const sandSource = adjustCoord([500, 0], lowestPartX, lowestPartY)
  if (cave[sandSource[1]][sandSource[0]] !== CavePart.Air) return -2
  cave[sandSource[1]][sandSource[0]] = CavePart.Sand
  const canMove = (x: number, y: number): number => {
    // if all space below sand is air
    if (
      cave
        .slice(y + 1)
        .map((i) => i[x])
        .every((i) => i === CavePart.Air)
    )
      return -2
    if (cave[y + 1]?.[x] === CavePart.Air) return 0
    if (cave[y + 1]?.[x - 1] === CavePart.Air) return -1
    if (cave[y + 1]?.[x + 1] === CavePart.Air) return +1
    return 2
  }
  let sandCoord = [sandSource[0], sandSource[1]]
  let movementOption = canMove(sandCoord[0], sandCoord[1])
  while (Math.abs(movementOption) !== 2) {
    cave[sandCoord[1]][sandCoord[0]] = CavePart.Air
    if (movementOption === 0) {
      cave[sandCoord[1] + 1][sandCoord[0]] = CavePart.Sand
      sandCoord = [sandCoord[0], sandCoord[1] + 1]
    }
    if (movementOption === -1) {
      cave[sandCoord[1] + 1][sandCoord[0] - 1] = CavePart.Sand
      sandCoord = [sandCoord[0] - 1, sandCoord[1] + 1]
    }
    if (movementOption === 1) {
      cave[sandCoord[1] + 1][sandCoord[0] + 1] = CavePart.Sand
      sandCoord = [sandCoord[0] + 1, sandCoord[1] + 1]
    }

    movementOption = canMove(sandCoord[0], sandCoord[1])
    if (movementOption === -2) cave[sandCoord[1]][sandCoord[0]] = CavePart.Air
  }
  return movementOption
}

export const countRestingSand = (input: string) => {
  const cave = processInput(input)
  console.log(printCave(cave))
  let sandResult = addSand(cave)
  let sandCount = 0
  while (sandResult !== -2) {
    sandCount++
    sandResult = addSand(cave)


 or GTF

VCF

GVCF

MAF

Output file

The format of output files depends on the input

Input_format

Output_format

BED

BED (Genome coordinates will be updated)

BAM

BAM (Genome coordinates, header section, all SAM flags, insert size will be updated)

CRAM

BAM (require pysam >= 0.8.2)

SAM

SAM (Genome coordinates, header section, all SAM flags, insert size will be updated)

Wiggle

BigWig

BigWig

BigWig

GFF

GFF (Genome coordinates will be updated to the target assembly)

GTF

GTF (Genome coordinates will be updated to the target assembly)

VCF

VCF (header section, Genome coordinates, reference alleles will be updated)

GVCF

GVCF (header section, Genome coordinates, reference alleles will be updated)

MAF

MAF (Genome coordinates and reference alleles will be updated)

Usage

Run CrossMap -h or CrossMap --help print help message

$ CrossMap -h

usage: CrossMap [-h] [-v]
                {bed,bam,gff,wig,bigwig,vcf,gvcf,maf,region,viewchain} ...

CrossMap (v0.7.0) is a program to convert (liftover) genome coordinates
between different reference assemblies (e.g., from human GRCh37/hg19 to
GRCh38/hg38 or vice versa). Supported file formats: BAM, BED, BigWig, CRAM,
GFF, GTF, GVCF, MAF (mutation annotation format), SAM, Wiggle, and VCF.

positional arguments:
  {bed,bam,gff,wig,bigwig,vcf,gvcf,maf,region,viewchain}
                        sub-command help
    bed                 converts BED, bedGraph or other BED-like files. Only


sage: ret ? '' : '邮箱格式不正确',
      ret
    };
  }
  // validate password
  if (type === 'password') {
    const ret = /^[0-9a-zA-Z]{6,16}$/.test(value);
    return {
      message: ret ? '' : '密码为6-16位的字母和数字',
      ret
    };
  }
  // validate verifyCode
  if (type === 'verifyCode') {
    const ret = /^[0-9]{6}$/.test(value);
    return {
      message: ret ? '' : '验证码为6位数字',
      ret
    };
  }
  // validate idCard
  if (type === 'idCard') {
    const ret = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value);
    return {
      message: ret ? '' : '身份证号格式不正确',
      ret
    };
  }
  // validate idCard
  if (type === 'bankNo') {
    return CheckBankNo(value);
  }
  //  validate username
  if (type === 'username') {
    const ret = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value);
    return {
      message: ret ? '' : '请输入中英文、汉字的用户名',
      ret
    };
  }
}

//检查银行卡号
function CheckBankNo(bankno) {
  bankno = bankno.replace(/\s/g, '');
  if (bankno == '') {
    return false;
  }
  if (bankno.length < 16 || bankno.length > 19) {
    return false;
  }
  const num = /^\d*$/; //全数字
  if (!num.exec(bankno)) {
    return false;
  }
  //开头6位
  const strBin =
    '10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99';
  if (strBin.indexOf(bankno.substring(0, 2)) == -1) {
    return false;
  }
  //Luhn校验
  if (!luhnCheck(bankno)) {
    return false;
  }
  return true;
}

//bankno为银行卡号
function luhnCheck(bankno) {
  var lastNum = bankno.substr(bankno.length - 1, 1); //取出最后一位（与luhn进行比较）

  var first15Num = bankno.substr(0, bankno.length - 1); //前15或18位
  var newArr = new Array();
  for (var i = first15Num.length - 1; i > -1; i--) {
    //前15或18位倒序存进数组
    newArr.push(first15Num.substr(i, 1));
  }
  var arrJiShu = new Array(); //奇数位*2的积 <9
  var arrJiShu2 = new Array(); //奇数位*2的积 >9

  var arrOuShu = new Array(); //偶数位数组
  for (var j = 0; j < newArr.length; j++) {
    if ((j + 1) % 2 == 1) {
      //奇数位
      if (parseInt(newArr[j]) * 2 < 9) arrJiShu.push(parseInt(newArr[j]) * 2);
      else arrJiShu2.push(parseInt(newArr[j]) * 2);
    } //偶数位
    else arrOuShu.push(newArr[j]);
  }

  var jishu_child1 = new Array(); //奇数位*2 >9 的分割之后的数组个位数
  var jishu_child2 = new Array(); //奇数位*2 >9 的分割之后的数组十位数
  for (var h = 0; h < arrJiShu2.length; h++) {


 Code restructure failed: missing block: B:91:0x022c, code lost:
        r0 = (okhttp3.internal.ws.RealWebSocket.Close) r0;
        kotlin.jvm.internal.Intrinsics.checkNotNull(r4);
        r4.writeClose(r0.getCode(), r0.getReason());
     */
    /* JADX WARNING: Code restructure failed: missing block: B:92:0x023c, code lost:
        r5 = r28;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:95:0x0242, code lost:
        if (((okhttp3.internal.ws.RealWebSocket.Streams) r5.element) == null) goto L_0x0275;
     */
    /* JADX WARNING: Code restructure failed: missing block: B:97:?, code lost:
        r2 = r15.listener;
        r6 = r15;
     */
    /* JADX WARNING: Exception block dominator not found, dom blocks: [] */
    /* JADX WARNING: Removed duplicated region for block: B:134:0x02e2  */
    /* JADX WARNING: Removed duplicated region for block: B:137:0x02ed  */
    /* JADX WARNING: Removed duplicated region for block: B:140:0x02f8  */
    /* Code decompiled incorrectly, please refer to instructions dump. */
    public final boolean writeOneFrame$okhttp() throws java.io.IOException {
        /*
            r32 = this;
            r15 = r32
            r1 = 0
            r2 = 0
            kotlin.jvm.internal.Ref$ObjectRef r0 = new kotlin.jvm.internal.Ref$ObjectRef
            r0.<init>()
            r3 = 0
            r0.element = r3
            r14 = r0
            kotlin.jvm.internal.Ref$IntRef r0 = new kotlin.jvm.internal.Ref$IntRef
            r0.<init>()
            r4 = -1
            r0.element = r4
            r13 = r0
            kotlin.jvm.internal.Ref$ObjectRef r0 = new kotlin.jvm.internal.Ref$ObjectRef
            r0.<init>()
            r5 = r3
            java.lang.String r5 = (java.lang.String) r5
            r0.element = r3
            r12 = r0
            kotlin.jvm.internal.Ref$ObjectRef r0 = new kotlin.jvm.internal.Ref$ObjectRef
            r0.<init>()
            r5 = r3
            okhttp3.internal.ws.RealWebSocket$Streams r5 = (okhttp3.internal.ws.RealWebSocket.Streams) r5
            r0.element = r3
            r11 = r0
            kotlin.jvm.internal.Ref$ObjectRef r0 = new kotlin.jvm.internal.Ref$ObjectRef
            r0.<init>()
            r5 = r3
            okhttp3.internal.ws.WebSocketReader r5 = (okhttp3.internal.ws.WebSocketReader) r5
            r0.element = r3
            r10 = r0
            kotlin.jvm.internal.Ref$ObjectRef r0 = new kotlin.jvm.internal.Ref$ObjectRef
            r0.<init>()
            r5 = r3
            okhttp3.internal.ws.WebSocketWriter r5 = (okhttp3.internal.ws.WebSocketWriter) r5
            r0.element = r3
            r9 = r0
            monitor-enter(r32)
            r0 = 0
            boolean r5 = r15.failed     // Catch:{ all -> 0x031a }
            r6 = 0
            if (r5 == 0) goto L_0x004c
            monitor-exit(r32)
            return r6
        L_0x004c:
            okhttp3


      if i + height_kernel_size > height:
            height_kernel_size = height - i - 1

        # print(f"i: {i}")
        # print(f"height_kernel_size: {height_kernel_size}")

        while (True):
            width_kernel_size = kernel_size

            # 만약 kernel이 이미지의 width를 초과하여 넘어간다면,
            # 이미지 내부만 처리되도록 width_kernel_size를 조절한다.
            if j + width_kernel_size > width:
                # print(f"j: {j}")
                # print(f"j+width_kernel_size: {j+width_kernel_size}, width: {width}")
                width_kernel_size = width - j - 1

            # print(f"width_kernel_size: {width_kernel_size}")

            kernel = image[i:i+height_kernel_size, j:j+width_kernel_size, :]
            flattend = kernel.reshape(-1, 3)
            np.random.shuffle(flattend)
            shuffled_kernel = flattend.reshape(height_kernel_size, width_kernel_size, 3)
            shuffled_image[i:i+height_kernel_size, j:j+width_kernel_size, :] = shuffled_kernel
            # print(f"shuffled_image.shape: {shuffled_image.shape}")

            # 현재 위치에 대해서 shuffle이 끝났으므로,
            # 같은 row에서 col의 위치인 j를 stride 만큼 옮겨준다.
            j += stride

            # j를 stride 만큼 옮겼을 때,
            # 만약 j가 width보다 크거나 같다면
            # 한 row에 대한 shuffle이 끝난 것이므로
            # inner while loop을 탈출한다.
            if j >= width:
                break

        # 한 row에 대해서 shuffle이 끝났으므로,
        # 다음 row로 넘어가기 위해 i를 stride 만큼 옮겨준다.
        i += stride

        j = 0

        # i를 stride 만큼 옮겼을 때,
        # 만약 i가 hieght보다 크거나 같다면
        # 모든 영역에 대한 shuffle이 끝난 것이므로
        # outer while loop을 탈출한다.
        if i >= height:
            break

    return shuffled_image

def shuffleFringingRowsPixels(corrected_fringing_rows):
    """
        2024.05.20, jdk
        전달받은 array의 모든 pixel을 random하게 섞는 함수
    """

    height, width, channels = corrected_fringing_rows.shape

    indicies = np.arange(height * width)
    np.random.shuffle(indicies)

    flattend = corrected_fringing_rows.reshape(-1, channels)
    # original array를 pixel만 유지한 채로 flatten한다.

    flattend = flattend[indicies]
    shuffled_array = flattend.reshape(height, width, channels)

    return shuffled_array

def calcBrightnessRatioByColumn(upper_brightness, lower_brightness, height):

    # 현재 column에서 pixel별로 가져야
    # 하는 밝기를 저장하는 list
    pixels_brightness = []
    diff = (upper_brightness - lower_brightness)/(height+1)

    # 각 픽셀이 가져야 하는 밝기를 저장
    for h in range(1, height+1):
        pixels_brightness.append(upper_brightness - h*diff)

    return pixels_brightness

def correctPixelsByLinearBrightness(corrected_fringing_rows, brightness_margin):
    """
        2024.05.20, jdk
        전달받은 array에 대해서 밝기 보정을 실시한다.
        위/아래로 세 픽셀은 밝기 판단용이다.
    """

    height, width, _ = corrected_fringing_rows.shape

    for w in range(width):

        upper_pixels = corrected_fringing_rows[0:brightness_margin, w, :]

        upper_r_mean = np.mean(upper_pixels[:, 0])
        upper_g_mean = np.mean(upper_pixels[:, 1])
        upper_b_mean = np.mean(upper_pixels[:, 2])

        rgb_mean = (upper_r_mean, upper_g_mean, upper_b_mean)
        rgb_mean = np.round(rgb_mean)

        upper_brightness = calcBrightness(rgb_mean)

        lower_pixels = corrected_fringing_rows[height-brightness_margin:height, w, :]

        lower_r_mean = np.mean(lower_pixels[:, 0])
        lower_g_mean = np.mean(lower_pixels[:, 1])
        lower_b_mean = np.mean(lower_pixels[:, 2])

        rgb_mean = (lower_r_mean, lower_g_mean, lower_b_mean)
        rgb_mean = np.round(rgb_mean)

        lower_brightness = calcBrightness(rgb_mean)

        area_height = (height-brightness_margin-1)*brightness_margin

        # pixel 별로 밝기의 비율을 저장하는 리스트
        pixels_brightness = calcBrightnessRatioByColumn(upper_brightness, lower_brightness, area_height)
        # print("brightness")
        # print(upper_brightness)
        # print(lower_brightness)
        # print(pixels_brightness)

        for h in range(brightness_margin, height-brightness_margin):
            # 이제 column에서 pixel 별 밝기의 값이 정해졌으므로,
            # 상대적인 비를 구하고 r, g, b값을 보정해 준다.
            cur_pixel_rgb = corrected_fringing_rows[h, w, :]
            cur_pixel_brightness = calcBrightness(cur_pixel_rgb)

            ratio = pixels_brightness[h-brightness_margin] / cur_pixel_brightness
            corrected_pixel_rgb = ratio*cur_pixel_rgb

            corrected_fringing_rows[h, w, :] = corrected_pixel_rgb

    return co


import cv2
import numpy as np
import math

histogramSize = 100

src = cv2.imread("photo.jpg")
# src = cv2.GaussianBlur(src, (5, 5), cv2.BORDER_DEFAULT)
src = cv2.bilateralFilter(src, 25, 75, 75)
cv2.imwrite("blur.png", src)

dst = cv2.Canny(src, 180, 250, None, 5, True)
dst = cv2.dilate(dst, None)
dst = cv2.erode(dst, None)
cv2.imwrite("canny.png", dst)

print(dst.shape)
cdst = cv2.cvtColor(dst, cv2.COLOR_GRAY2BGR)
cdst = np.zeros((dst.shape[0], dst.shape[1], 3), np.uint8)

linesP = cv2.HoughLinesP(dst, 1, np.pi / 180, 50, None, 20, 10)

lxi = []
lri = []
for i in range(int((dst.shape[0] + dst.shape[1]) / histogramSize) + 30):
    lxi.append(0)
for i in range(91):
    lri.append(0)

if linesP is not None:
    for i in range(0, len(linesP)):
        l = linesP[i][0]
        if (l[2] - l[0]) == 0 or math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180) <= 80:
            cv2.line(cdst, (l[0], l[1]), (l[2], l[3]), (255, 255, 255), 1, cv2.LINE_AA)

    for i in range(0, len(linesP)):
        l = linesP[i][0]
        if (l[2] - l[0]) == 0 or math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180) > 80:
            lxi[int((l[0] - (l[2] - l[0]) / (l[3] - l[1]) * l[1]) / histogramSize) + 20] += math.sqrt(l[2] - l[0]) * (
                    l[2] - l[0]) + (l[3] - l[1]) * (l[3] - l[1])
            lri[int(math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180))] += math.sqrt(l[2] - l[0]) * (
                    l[2] - l[0]) + (l[3] - l[1]) * (l[3] - l[1])

    while lri[-1] == 0:
        del lri[-1]
    while lxi[-1] == 0:
        del lxi[-1]

    frl = lri
    frli = frl.index(max(frl))
    fxl = lxi[:int(len(lxi) / 2)]
    fxli = fxl.index(max(fxl)) - 20

    dotLi = []

    for i in range(0, len(linesP)):
        l = linesP[i][0]
        if (l[2] - l[0]) == 0 or math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180) > 80:
            if math.fabs((l[0] - (l[2] - l[0]) / (l[3] - l[1]) * l[
                1]) - fxli * histogramSize) < histogramSize * 2 and math.fabs(
                int(math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180)) - frli) < 5:
                dotLi.append((l[1], l[0]))
                dotLi.append((l[3], l[2]))

    dotLi.sort()
    cv2.line(cdst, (dotLi[0][1], dotLi[0][0]), (dotLi[-1][1], dotLi[-1][0]), (0, 255, 0), 3, cv2.LINE_AA)

    dotLi = []
    fxl = lxi[int(len(lxi) / 2):]
    fxli = fxl.index(max(fxl)) + int(len(lxi) / 2) - 20

    for i in range(0, len(linesP)):
        l = linesP[i][0]
        if (l[2] - l[0]) == 0 or math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180) > 80:
            print(math.fabs((l[0] - (l[2] - l[0]) / (l[3] - l[1]) * l[
                1])))
            if math.fabs((l[0] - (l[2] - l[0]) / (l[3] - l[1]) * l[
                1]) - fxli * histogramSize) < histogramSize * 2 and math.fabs(
                int(math.fabs(math.atan((l[3] - l[1]) / (l[2] - l[0])) / math.pi * 180)) - frli) < 5:
                dotLi.append((l[1], l[0]))
                dotLi.append((l[3], l[2]))
    dotLi.sort()
    cv2.line(cdst, (dotLi[0][1], dotLi[0][0]), (dotLi[-1][1], dotLi[-1][0]), (0, 0, 255), 3, cv2.LINE_AA)

cv2.imwrite("Probabilistic.png", cdst)

cv2.waitKey()


/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "wedgeFvPatchFields.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

makePatchFields(wedge);

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace Foam

// ************************************************************************* //


 explicitly via setFrameSize().
       */
      unsigned int frameSize() const;

      /*!
       * Sets the size of the frame data portion.
       */
      void setFrameSize(unsigned int size);

      /*!
       * Returns the ID3v2 version of the header, as passed in from the
       * construction of the header or set via setVersion().
       */
      unsigned int version() const;

      /*!
       * Sets the ID3v2 version of the header, changing has impact on the
       * correct parsing/rendering of frame data.
       */
      void setVersion(unsigned int version);

      /*!
       * Returns the size of the frame header in bytes.
       */
      unsigned int size() const;

      /*!
       * Returns \c true if the flag for tag alter preservation is set.
       *
       * The semantics are a little backwards from what would seem natural
       * (setting the preservation flag to throw away the frame), but this
       * follows the ID3v2 standard.
       *
       * \see setTagAlterPreservation()
       */
      bool tagAlterPreservation() const;

      /*!
       * Sets the flag for preservation of this frame if the tag is set.  If
       * this is set to \c true the frame will not be written when the tag is
       * saved.
       *
       * The semantics are a little backwards from what would seem natural
       * (setting the preservation flag to throw away the frame), but this
       * follows the ID3v2 standard.
       *
       * \see tagAlterPreservation()
       */
      void setTagAlterPreservation(bool preserve);

      /*!
       * Returns \c true if the flag for file alter preservation is set.
       *
       * \note This flag is currently ignored internally in TagLib.
       */
      bool fileAlterPreservation() const;

      /*!
       * Returns \c true if the frame is meant to be read only.
       *
       * \note This flag is currently ignored internally in TagLib.
       */
      bool readOnly() const;

      /*!
       * Returns \c true if the flag for the grouping identity is set.
       *
       * \note This flag is currently ignored internally in TagLib.
       */
      bool groupingIdentity() const;

      /*!
       * Returns \c true if compression is enabled for this frame.
       *
       * \note This flag is currently ignored internally in TagLib.
       */
      bool compression() const;

      /*!
       * Returns \c true if encryption is enabled for this frame.
       *
       * \note This flag is currently ignored internally in TagLib.
       */
      bool encryption() const;

      /*!
       * Returns \c true if unsynchronisation is enabled for this frame.
       */
      bool unsynchronisation() const;

      /*!
       * Returns \c true if the flag for a data length indicator is set.
       */
      bool dataLengthIndicator() const;

      /*!
       * Render the Header back to binary format in a ByteVector.
       */
      ByteVector render() const;

    private:
      class HeaderPrivate;
      TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
      std::unique_ptr<HeaderPrivate> d;
    };

  }  // namespace ID3v2
}  // namespace TagLib

#endif


			{
							chunk.SetBlock(x, y, z, cBiome.TopBlock);

							chunk.SetBlock(x, y - 1, z, cBiome.Filling);
							chunk.SetBlock(x, y - 2, z, cBiome.Filling);
						}
					}

					foreach (var decorator in cBiome.Decorators)
					{
						decorator.Decorate(chunk, cBiome, x, z);
					}
					new OreDecorator().Decorate(chunk, cBiome, x, z); //Ores :)
					new BedrockDecorator().Decorate(chunk, cBiome, x, z); //Random bedrock :)
				}
			}

			new WaterDecorator().Decorate(chunk, new PlainsBiome()); //For now, ALWAYS use the water decorator on all chunks...
			_cavegen.GenerateCave(chunk);
			new LavaDecorator().Decorate(chunk, new PlainsBiome());
		}

		/*public override void SetBlock(Block block, Level level, bool broadcast)
		{
			ChunkColumn c;
			lock (ChunkCache)
			{
				if (
					!ChunkCache.TryGetValue(new Tuple<int, int>((int) block.Coordinates.X >> 4, (int) block.Coordinates.Z >> 4), out c))
					throw new Exception("No chunk found!");
			}

			c.SetBlock(((int) block.Coordinates.X & 0x0f), ((int) block.Coordinates.Y & 0x7f), ((int) block.Coordinates.Z & 0x0f),
				block);
			if (!broadcast) return;

			BlockChange.Broadcast(block, level);
		}*/

		public override Vector3 GetSpawnPoint()
		{
			return new Vector3(0, 82, 0);
		}

		public override void ClearCache()
		{
			lock (ChunkCache)
			{
				ChunkCache.Clear();
			}
		}
	}
}


erCount - 1

                    trackPointerId = event.getPointerId(actionIndex)
                    downX = event.getX(actionIndex)
                    downY = event.getY(actionIndex)
                    imageX = offsetX
                    imageY = offsetY
                }
            }
        }

        return true
    }
}
package com.hsicen.state

import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

/******====== 11.MutableState 和 mutableStateOf() ======******/
/**
 * 刷新：组合(Composition)、布局、绘制 -> Compose、布局、绘制
 *  组合过程：拼凑出界面实际内容(执行Compose代码过程)
 *  Compose/Composition -> ComposeView -> AndroidComposeView -> LayoutNode
 *
 *  过程：组合 Compose/Composition
 *  结果：组合 Composition
 *
 * MutableState -> StateObject -> StateRecord -> Compose  支持事务功能
 * 同一个变量存多个值，支持取消更新
 * 链表保存(StateRecord), StateObject.firstStateRecord 为头结点, StateRecord.next 保存下一个结点
 *
 *
 * SnapshotMutableStateImpl.next(StateStateRecord)  为链表的头结点
 * next.readable()/get函数 拿到链表头
 *  readObserver 记录变量在哪些地方被读了
 *  readable三个参数版本：遍历 StateRecord 链表，找到一个最新的、可用的 StateRecord
 *  将 StateRecord 记录并返回给外部调用者
 *
 * Recompose 重组
 * next.overwritable()/set函数
 *  withCurrent -> current -> readable 遍历 StateRecord 链表，找到一个最新的、可用的 StateRecord
 *  将获取到的 StateRecord 和当前 set 的值比较是否相同
 *  overwritable -> overwritableRecord -> 返回一个可用的 StateRecord
 *    1.snapshotId 相同，直接返回该 StateRecord
 *    2.不相同，newOverwritableRecord() 创建一个
 *  notifyWrite: writeObserver 将 readObserver 中记录标记为无效，在下一帧来临时进行刷新(Recompose)
 *
 * StateRecord：变量
 * Snapshot：整个状态的快照；可以对应多个 StateRecord；但一个 StateRecord 对应一个 Snapshot
 *  多线程同步，批量更新支持
 *  1.系统有多个 Snapshot 的时候，它们是有先后关系的
 *  2.同一个 StateObject 的每个 StateRecord 都有它们对应的 Snapshot 的 id.
 *    StateRecord 和 Snapshot 就算不直接对应，但只要 StateRecord 的 Snapshot 对另一个(Snapshot)是有效的，
 *    则另一个(Snapshot)就能读取到这个 StateRecord.
 *
 * 两个订阅过程：
 *  1.对 Snapshot 中读/写 StateObject 对象的订阅，分别订阅读和写，所以有两个接收者：readObserver 和 writeObserver
 *      发生时间：
 *          订阅：Snapshot 创建的时候
 *          通知：读和写的时候
 *  2.对【每一个】StateObject 的应用做订阅
 *      发生时间：
 *          订阅：第一个订阅的 readObserver 被调用（通知）的时候
 *          通


: 100%;
  width: 100%;
  z-index: 0;
  border: 0;
  pointer-events: none;
}

iframe {
  width: 100%;
  height: 100%;
}

@media (max-width: 600px) {
  .tvProviderImage {
    display: none;
  }
  .video-js.skin_spaced .vjs-fullscreen .icon-minimize,
  .icon-maximize {
    height: 30px !important;
  }
  .video-js.skin_spaced .vjs-fullscreen .icon-maximize,
  .icon-minimize {
    height: 30px !important;
  }
  .video-js.skin_spaced button.vjs-fullscreen-control.vjs-control.vjs-button > span.vjs-icon-placeholder::before {
    height: min-content;
  }
  .video-js.skin_spaced .vjs-seek-to-live-control.vjs-control {
    position: relative !important;
    right: 0em !important;
    bottom: 0 !important;
  }
  .video-js.skin_spaced .vjs-live-control {
    right: -1em !important;
    position: relative !important;
    bottom: 0 !important;
    font-size: 12px !important;
  }
  .video-js.skin_spaced button.vjs-slowmo-button {
    display: none;
  }
  .video-js.skin_spaced button.vjs-rewind-button {
    display: none;
  }
  .video-js.skin_spaced button.vjs-rewind-button > svg {
    height: 20px;
  }
  .video-js.skin_spaced .vjs-button {
    width: 4.8em;
  }
  .video-js.skin_spaced .widget-selection {
    display: none;
  }
  .video-js.skin_spaced .container {
    display: none !important;
  }
  .video-js.skin_spaced .vjs-control-bar {
    height: 4em !important;
  }
  .video-js.skin_spaced .vjs-button > .vjs-icon-placeholder:before {
    font-size: 2.5em;
    line-height: 1.5;
  }
  .video-js.skin_spaced .vjs-play-progress:before {
    font-size: 1.2em;
    position: absolute;
    right: -0.5em;
    z-index: 1;
  }
  .video-js.skin_spaced button.vjs-skip-button > svg {
    height: 20px;
  }
  .video-js.skin_spaced button.vjs-big-play-button {
    width: 50px !important;
    height: 50px !important;
    font-size: 2.1rem !important;
  }
  .video-js.skin_spaced .vjs-seek-to-live-control.vjs-control > span.vjs-icon-placeholder {
    display: block;
  }
  .stream-selector-icon > svg {
    width: 24px;
    height: 24px;
  }
  .video-js.skin_spaced.vjs-live .vjs-progress-control .vjs-progress-holder {
    margin: 0 12px 0 21px;
  }
  .video-js.skin_spaced .vjs-seek-to-live-text {
    font-size: 12px;
  }
  .video-js.skin_spaced .vjs-progress-control .vjs-progress-holder {
    margin: 0 0 0 20px;
  }
}
.video-js.skin_spaced.vjs-paused .vjs-big-play-button {
  width: 90px;
  height: 90px;
  display: flex;
  justify-content: center;


/* Tests for res_init in libresolv
   Copyright (C) 2004-2024 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

#undef gethostbyname

#include <mcheck.h>
#include <netdb.h>
#include <resolv.h>
#include <support/check.h>

void __libc_freeres (void);

static int
do_test (void)
{
  mtrace ();
  for (int i = 0; i < 20; ++i)
    {
      TEST_VERIFY_EXIT (res_init () == 0);
      if (gethostbyname ("www.gnu.org") == NULL)
	FAIL_EXIT1 ("%s\n", hstrerror (h_errno));
    }
  return 0;
}

#define TEST_FUNCTION do_test ()
#define TIMEOUT 30
/* This defines the `main' function and some more.  */
#include <test-skeleton.c>


�，之前我也有进行过相当的学习。',	'70070136',	'1',	''},
{'700701',	'700701',	'',	'37',	'19',	'点击在设施的角色',	'这是很考验耐心的工作。',	'70070137',	'1',	''},
{'700701',	'700701',	'',	'38',	'20',	'生日',	'我不是很了解地球人的习惯，像这种纪念日还有很多吗？至少我理解了今天对你来说是个十分重要的日子。在这个时刻是要说“生日快乐”对吧？',	'70070138',	'',	''},
{'700701',	'700701',	'',	'39',	'',	'召唤时',	'好了，上吧，戈里刻的斗士！',	'70070139',	'',	''},
{'601901',	'601901',	'',	'',	'',	'',	'',	'',	'',	''},
{'601901',	'601901',	'',	'1',	'1',	'游戏开始',	'CrossCore。',	'60190101',	'1',	''},
{'601901',	'601901',	'',	'2',	'2',	'获得',	'报到之后就可以留在这里了对吧？太好了，我想在这里得到许多勋章与嘉奖。战功不论大小，我都是会照单全收的。',	'60190102',	'1',	''},
{'601901',	'601901',	'',	'3',	'3',	'出击',	'又可以积累战功了~',	'60190103',	'1',	''},
{'601901',	'601901',	'',	'4',	'4',	'行动开始',	'是会动的战功，我是不会放走他们的~',	'60190104',	'1',	''},
{'601901',	'601901',	'',	'5',	'',	'攻击1',	'吼。',	'60190105',	'1',	''},
{'601901',	'601901',	'',	'6',	'',	'攻击2',	'哈。',	'60190106',	'1',	''},
{'601901',	'601901',	'',	'7',	'',	'攻击3',	'喝。',	'60190107',	'1',	''},
{'601901',	'601901',	'',	'8',	'',	'攻击4',	'哼。',	'60190108',	'1',	''},
{'601901',	'601901',	'',	'9',	'',	'技能1',	'斩击！',	'60190109',	'1',	''},
{'601901',	'601901',	'',	'10',	'',	'技能2',	'逆光而上吧，大家。',	'60190110',	'1',	''},
{'601901',	'601901',	'',	'11',	'',	'必杀（发动时）',	'我是不会让同伴受到伤害的——',	'60190111',	'1',	''},
{'601901',	'601901',	''


2 32 0 1 1 -64 0z"],
    "shield-heart": [512, 512, [], "e574", "M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"],
    "card-heart": [384, 512, [], "e3eb", "M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM80 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0L97.9 264.6C86.5 253.1 80 237.5 80 221.3z"],
    "lightbulb-cfl-on": [640, 512, [], "e5a7", "M351 24.2c4.3 17.1-6.1 34.5-23.3 38.8l-128 32c-17.1 4.3-34.5-6.1-38.8-23.3s6.1-34.5 23.3-38.8l128-32c17.1-4.3 34.5 6.1 38.8 23.3zM455.8 127l-256 64c-17.1 4.3-34.5-6.1-38.8-23.3s6.1-34.5 23.3-38.8l256-64c17.1-4.3 34.5 6.1 38.8 23.3s-6.1 34.5-23.3 38.8zM479 184.2c4.3 17.1-6.1 34.5-23.3 38.8l-256 64c-17.1 4.3-34.5-6.1-38.8-23.3s6.1-34.5 23.3-38.8l256-64c17.1-4.3 34.5 6.1 38.8 23.3zM256 384V306l48-12v90h80c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H352c0 17.7-14.3 32-32 32s-32-14.3-32-32H256c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm199.8-65l-64 16L384 337v47H336V308.7c0-.5 0-.9 0-1.4


	FFont *font = FFont::FindFont (name);
	if (font == NULL)
	{
		int lump = -1;

		lump = Wads.CheckNumForFullName(name, true);

		if (lump != -1)
		{
			uint32 head;
			{
				FWadLump lumpy = Wads.OpenLumpNum (lump);
				lumpy.Read (&head, 4);
			}
			if ((head & MAKE_ID(255,255,255,0)) == MAKE_ID('F','O','N',0) ||
				head == MAKE_ID(0xE1,0xE6,0xD5,0x1A))
			{
				font = new FSingleLumpFont (name, lump);
			}
		}
		if (font == NULL)
		{
			FTextureID picnum = TexMan.CheckForTexture (name, FTexture::TEX_Any);
			if (picnum.isValid())
			{
				font = new FSinglePicFont (name);
			}
		}
	}
	return font;
}

//==========================================================================
//
// FFont :: FFont
//
// Loads a multi-texture font.
//
//==========================================================================

FFont::FFont (const char *name, const char *nametemplate, int first, int count, int start, int fdlump, int spacewidth)
{
	int i;
	FTextureID lump;
	char buffer[12];
	FTexture **charlumps;
	int maxyoffs;
	bool doomtemplate = gameinfo.gametype & GAME_DoomChex ? strncmp (nametemplate, "STCFN", 5) == 0 : false;
	bool stcfn121 = false;

	Lump = fdlump;
	Chars = new CharData[count];
	charlumps = new FTexture *[count];
	PatchRemap = new BYTE[256];
	FirstChar = first;
	LastChar = first + count - 1;
	FontHeight = 0;
	GlobalKerning = false;
	Name = copystring (name);
	Next = FirstFont;
	FirstFont = this;
	Cursor = '_';

	maxyoffs = 0;

	for (i = 0; i < count; i++)
	{
		charlumps[i] = NULL;
		mysnprintf (buffer, countof(buffer), nametemplate, i + start);

		lump = TexMan.CheckForTexture(buffer, FTexture::TEX_MiscPatch);
		if (doomtemplate && lump.isValid() && i + start == 121)
		{ // HACKHACK: Don't load STCFN121 in doom(2), because
		  // it's not really a lower-case 'y' but a '|'.
		  // Because a lot of wads with their own font seem to foolishly
		  // copy STCFN121 and make it a '|' themselves, wads must
		  // provide STCFN120 (x) and STCFN122 (z) for STCFN121 to load as a 'y'.
			if (!TexMan.CheckForTexture("STCFN120", FTexture::TEX_MiscPatch).isValid() ||
				!TexMan.CheckForTexture("STCFN122", FTexture::TEX_MiscPatch).isValid())
			{
				// insert the incorrectly named '|' graphic in its correct position.
				if (count > 124-start) charlumps[124-start] = TexMan[lump];
				lump.SetInvalid();
				stcfn121 = true;
			}
		}

		if (lump.isValid())
		{
			FTexture *pic = TexMan[lump];
			if (pic != NULL)
			{
				// set the lump here only if it represents a valid texture
				if (i != 124-start || !stcfn121)
					charlumps[i] = pic;

				int height = pic->GetScaledHeight();
				int yoffs = pic->GetScaledTopOffset();

				if (yoffs > maxyoffs)
				{
					maxyoffs = yoffs;
				}
				height += abs (yoffs);
				if (height > FontHeight)
				{
					FontHeight = height;
				}
			}
		}

		if (charlumps[i] != NULL)
		{
			Chars[i].Pic =


"},
[4588] = {"Артур Мур","Учитель кожевничества"},
[4589] = {"Джозеф Мур","Товары для кожевников"},
[4590] = {"Джонатан Чамберс","Торговец сумками"},
[4591] = {"Мэри Эдрас","Учитель первой помощи"},
[4592] = {"Натаниэль Стинвик","Торговец метательным оружием"},
[4593] = {"Кристоф Уокер","Наставник воинов"},
[4594] = {"Анжела Куртас","Наставница воинов"},
[4595] = {"Балтус Птицелов","Наставник воинов"},
[4596] = {"Джеймс ван Брюнт","Учитель кузнечного дела"},
[4597] = {"Самуэль ван Брюнт","Товары для кузнецов"},
[4598] = {"Бром Килиан","Учитель горного дела"},
[4599] = {"Сара Килиан","Товары для горного дела"},
[4600] = {"Джеффри Хартвелл","Торговец оружием"},
[4601] = {"Фрэнсис Элиот","Торговец оружием"},
[4602] = {"Бенидж Феннер","Торговец оружием"},
[4603] = {"Николас Этвуд","Торговец огнестрельным оружием"},
[4604] = {"Эбигейл Сойер","Торговка луками"},
[4605] = {"Базиль Фрай","Ученик кузнеца"},
[4606] = {"Эльталисте","Наставница жрецов"},
[4607] = {"Отец Ланкастер","Наставник жрецов"},
[4608] = {"Отец Лазарус","Наставник жрецов"},
[4609] = {"Доктор Марш","Ученик алхимика"},
[4610] = {"Алжернон","Товары для алхимиков"},
[4611] = {"Доктор Герберт Галси","Учитель алхимии"},
[4612] = {"Бойл",nil},
[4613] = {"Кристофер Дракул","Регистратор гильдий"},
[4614] = {"Марта Альестар","Учительница травничества"},
[4615] = {"Катрина Альестар","Товары для травников"},
[4616] = {"Лавиния Кроу","Учительница наложения чар"},
[4617] = {"Таддеус Уэбб","Товары для наложения чар"},
[4618] = {"Мартек Изгой",nil},
[4619] = {"Гелтарис",nil},
[4620] = {"Фобид","Комментатор"},
[4621] = {"Ребальд Йорглун",nil},
[4623] = {"Иглостраж-воитель",nil},
[4624] = {"Костолом из Пиратской Бухты",nil},
[4625] = {"Хранительница чертогов Мертвой Головы",nil},
[4626] = {"Страж Чоу",nil},
[4627] = {"Демон Бездны Аругала",nil},
[4629] = {"[Deprecated for 4.x]


事件到達。你可以選擇合適的連線視窗 —— 例如，如果點選與搜尋之間的時間間隔在一小時內，你可能會選擇連線兩者。

請注意，在點選事件中嵌入搜尋詳情與事件連線並不一樣：這樣做的話，只有當用戶點選了一個搜尋結果時你才能知道，而那些沒有點選的搜尋就無能為力了。為了衡量搜尋質量，你需要準確的點選率，為此搜尋事件和點選事件兩者都是必要的。

為了實現這種型別的連線，流處理器需要維護 **狀態**：例如，按會話 ID 索引最近一小時內發生的所有事件。無論何時發生搜尋事件或點選事件，都會被新增到合適的索引中，而流處理器也會檢查另一個索引是否有具有相同會話 ID 的事件到達。如果有匹配事件就會發出一個表示搜尋結果被點選的事件；如果搜尋事件直到過期都沒看見有匹配的點選事件，就會發出一個表示搜尋結果未被點選的事件。

#### 流表連線（流擴充）

在 “[示例：使用者活動事件分析](/v1/ch10#示例：使用者活動事件分析)”（[圖 10-2](/v1/ddia_1002.png)）中，我們看到了連線兩個資料集的批處理作業示例：一組使用者活動事件和一個使用者檔案資料庫。將使用者活動事件視為流，並在流處理器中連續執行相同的連線是很自然的想法：輸入是包含使用者 ID 的活動事件流，而輸出還是活動事件流，但其中使用者 ID 已經被擴充套件為使用者的檔案資訊。這個過程有時被稱為使用資料庫的資訊來 **擴充（enriching）** 活動事件。

要執行此連線，流處理器需要一次處理一個活動事件，在資料庫中查詢事件的使用者 ID，並將檔案資訊新增到活動事件中。資料庫查詢可以透過查詢遠端資料庫來實現。但正如在 “[示例：使用者活動事件分析](/v1/ch10#示例：使用者活動事件分析)” 一節中討論的，此類遠端查詢可能會很慢，並且有可能導致資料庫過載【75】。

另一種方法是將資料庫副本


Lebens",
[45557] = "Schärpe der uralten Kraft",
[45558] = "Kordel der weißen Dämmerung",
[45559] = "Plattenstiefel des Schlachtenlords",
[45560] = "Stachelbewehrte Todesbringer",
[45561] = "Treter des Schicksals",
[45562] = "Stiefel aus lebendigen Schuppen",
[45563] = "Geerdete Stiefel",
[45564] = "Schleicher der Stille",
[45565] = "Stiefel der winterlichen Ausdauer",
[45566] = "Schuhe des Zauberwerfers",
[45567] = "Schuhe des Retters",
[45568] = "[PH] Bridle of the Argent Charger",
[45570] = "Armbrust der Himmelsschmiede",
[45574] = "Wappenrock von Sturmwind",
[45577] = "Wappenrock von Eisenschmiede",
[45578] = "Wappenrock von Gnomeregan",
[45579] = "Wappenrock von Darnassus",
[45580] = "Wappenrock der Exodar",
[45581] = "Wappenrock von Orgrimmar",
[45582] = "Wappenrock von Sen'jin",
[45583] = "Wappenrock von Unterstadt",
[45584] = "Wappenrock von Donnerfels",
[45585] = "Wappenrock von Silbermond",
[45586] = "Widder aus Eisenschmiede",
[45587] = "Bollwerk von Algalon",
[45588] = "Tuch des Himmelsgeborenen",
[45589] = "Roboschreiter aus Gnomeregan",
[45590] = "Elekk aus der Exodar",
[45591] = "Darnassischer Nachtsäbler",
[45592] = "Kodo aus Donnerfels",
[45593] = "Raptor der Dunkelspeere",
[45594] = "Beinplatten der endlosen Leere",
[45595] = "Wolf aus Orgrimmar",
[45596] = "Falkenschreiter aus Silbermond",
[45597] = "Schlachtross der Verlassenen",
[45599] = "Sabatons der leblosen Nacht",
[45601] = "Glyphe 'Berserker'",
[45602] = "Glyphe 'Wildwuchs'",
[45603] = "Glyphe 'Pflege'",
[45604] = "Glyphe 'Wildes Brüllen'",
[45605] = "Daschals Biss",
[45606] = "Fetisch aus Sen'jin",
[45607] = "Fangzahn des Vergessens",
[45608] = "Branns Siegelring",
[45609] = "Kometenschweif",
[45610] = "Allumfassender Blick",
[45611] = "Solarbindungen",
[45612] = "Konstellas",
[45613] = "Traumbinder",
[45614] = "Sternenlichtkreis",
[45615] = "Treter des Ebenenwandlers",
[45616] = "Sternenbesetzte Umklammerung",
[45617] = "Kosmos",
[45618] = "Sonnenglimmerumhang",
[45619] = "Bindungen des Sternenwächters",
[45620] = "Sternensplitterschneide",
[45621] = "Elixier der schwachen Präzision",
[45622] = "Glyphe 'Monsun'",
[45623] = "Glyphe 'Baumrinde'",
[45624] = "Emblem der Eroberung",
[45625] = "Glyphe 'Schimärenschuss'",
[45626] = "Spinnenseidentuch",
[45627] = "Amulett des klare


/*
 * Copyright (C) 2009-2016 Realtek Semiconductor Corp.
 * All Rights Reserved.
 *
 * This program is the proprietary software of Realtek Semiconductor
 * Corporation and/or its licensors, and only be used, duplicated,
 * modified or distributed under the authorized license from Realtek.
 *
 * ANY USE OF THE SOFTWARE OTHER THAN AS AUTHORIZED UNDER
 * THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
 *
 * $Revision: 81289 $
 * $Date: 2017-08-15 20:45:44 +0800 (Tue, 15 Aug 2017) $
 *
 * Purpose : The data for setting MAC Serdes parameters
 *
 * Feature : The data struct of  MAC Serdes parameters
 *
 */

#ifndef __DAL_CYPRESS_SDS_H__
#define __DAL_CYPRESS_SDS_H__

#include <dal/dal_mapper.h>

/* Function Name:
 *      dal_cypress_sdsMapper_init
 * Description:
 *      Hook SerDes module of the specified device.
 * Input:
 *      unit - unit id
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK
 *      RT_ERR_FAILED
 * Note:
 *      Must Hook SerDes module before calling any port APIs.
 */
extern int32
dal_cypress_sdsMapper_init(dal_mapper_t *pMapper);

/* Function Name:
 *      dal_cypress_sds_init
 * Description:
 *      Initialize switch module of the specified device.
 * Input:
 *      unit          - unit id
 * Output:
 *      None
 * Return:
 *      RT_ERR_OK
 *      RT_ERR_FAILED
 * Note:
 *      1. Module must be initialized before using all of APIs in this module
 */
extern int32
dal_cypress_sds_init(uint32 unit);

/* Function Name:
 *      dal_cypress_sds_symErr_get
 * Description:
 *      Get the SerDes symbol error count.
 * Input:
 *      unit      - unit id
 *      unit      - SerDes id
 * Output:
 *      info      - symbol error count information
 * Return:
 *      RT_ERR_OK
 *      RT_ERR_FAILED
 *      RT_ERR_NOT_INIT     - The module is not initial
 *      RT_ERR_NULL_POINTER - input parameter may be null pointer
 * Note:
 *      None
 */
extern int32
dal_cypress_sds_symErr_get(uint32 unit, uint32 sds, rtk_sds_symErr_t *info);

/* Function Name:
 *      dal_cypress_sds_linkSts_get
 * Description:
 *      Get the SerDes link status.
 * Input:
 *      unit      - unit id
 *      sds       - SerDes id
 * Output:
 *      info      - link status information
 * Return:
 *      RT_ERR_OK
 *      RT_ERR_FAILED
 *      RT_ERR_NOT_INIT     - The module is not initial
 *      RT_ERR_NULL_POINTER - input parameter may be null pointer
 * Note:
 *      None
 */
extern int32
dal_cypress_sds_linkSts_get(uint32 unit, uint32 sds, rtk_sds_linkSts_t *info);

#endif /* __DAL_CYPRESS_SDS_H__ */


, mock.Anything, mock.Anything).Return(metric, nil, nil).Once()
			s.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true).Once()
			s.r.(*mockAgentsRegistry).On("IsConnected", nodeExporterID).Return(true).Once()

			res, err := s.ListNodes(ctx, &managementv1.ListNodesRequest{
				NodeType: inventoryv1.NodeType_NODE_TYPE_GENERIC_NODE,
			})
			require.NoError(t, err)

			expected := &managementv1.ListNodesResponse{
				Nodes: []*managementv1.UniversalNode{
					{
						NodeId:        "pmm-server",
						NodeType:      "generic",
						NodeName:      "pmm-server",
						MachineId:     "",
						Distro:        "",
						NodeModel:     "",
						ContainerId:   "",
						ContainerName: "",
						Address:       "127.0.0.1",
						Region:        "",
						Az:            "",
						CustomLabels:  nil,
						CreatedAt:     timestamppb.New(now),
						UpdatedAt:     timestamppb.New(now),
						Agents: []*managementv1.UniversalNode_Agent{
							{
								AgentId:     nodeExporterID,
								AgentType:   "node_exporter",
								Status:      "AGENT_STATUS_UNKNOWN",
								IsConnected: true,
							},
							{
								AgentId:     models.PMMServerAgentID,
								AgentType:   "pmm-agent",
								Status:      "",
								IsConnected: true,
							},
						},
						Services: []*managementv1.UniversalNode_Service{
							{
								ServiceId:   postgresqlServiceID,
								ServiceType: "postgresql",
								ServiceName: "pmm-server-postgresql",
							},
						},
						Status: managementv1.UniversalNode_STATUS_UP,
					},
				},
			}

			assert.Equal(t, expected, res)
		})
	})

	t.Run("GetNode", func(t *testing.T) {
		now := models.Now()

		setup := func(t *testing.T) (context.Context, *ManagementService, func(t *testing.T)) {
			t.Helper()

			origNowF := models.Now
			models.Now = func() time.Time {
				return now
			}
			ctx := logger.Set(context.Background(), t.Name())
			uuid.SetRand(&tests.IDReader{})

			sqlDB := testdb.Open(t, models.SetupFixtures, nil)
			db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf))

			ar := &mockAgentsRegistry{}
			ar.Test(t)

			vmdb := &mockPrometheusService{}
			vmdb.Test(t)

			state := &mockAgentsStateUpdater{}
			state.Test(t)

			cc := &mockConnectionChecker{}
			cc.Test(t)

			sib := &mockServiceInfoBroker{}
			sib.Test(t)

			vc := &mockVersionCache{}
			vc.Test(t)

			grafanaClient := &mockGrafanaClient{}
			grafanaClient.Test(t)

			vmClient := &mockVictoriaMetricsClient{}
			vmClient.Test(t)

			s := NewManagementService(db, ar, state, cc, sib, vmdb, vc, grafanaClient, vmClient)

			teardown := func(t *testing.T) {
				t.Helper()
				models.Now = origNowF
				uuid.SetRand(nil)

				require.NoError(t, sqlDB.Close())

				ar.AssertExpectations(t)
				state.AssertExpectations(t)
				cc.AssertExpectations(t)
				sib.AssertExpectations(t)
				vmdb.AssertExpectations(t)
				vc.AssertExpectations(t)
				grafanaClient.AssertExpectations(t


omment {
	color: #80a0ff;
	font-style: italic;
}

.sh_darkblue .sh_sourceCode .sh_number {
	color: #42cad9;
}

.sh_darkblue .sh_sourceCode .sh_preproc {
	color: #ff80ff;
}

.sh_darkblue .sh_sourceCode .sh_symbol {
	color: #d8e91b;
	font-weight: bold;
}

.sh_darkblue .sh_sourceCode .sh_function {
	color: #fff;
	font-weight: bold;
}

.sh_darkblue .sh_sourceCode .sh_cbracket {
	color: #d8e91b;
	font-weight: bold;
}

.sh_darkblue .sh_sourceCode .sh_url {
	color: #ffa0a0;
}

.sh_darkblue .sh_sourceCode .sh_date {
	color: #ffff60;
}

.sh_darkblue .sh_sourceCode .sh_time {
	color: #ffff60;
}

.sh_darkblue .sh_sourceCode .sh_file {
	color: #ffff60;
}

.sh_darkblue .sh_sourceCode .sh_ip {
	color: #ffa0a0;
}

.sh_darkblue .sh_sourceCode .sh_name {
	color: #ffa0a0;
}

.sh_darkblue .sh_sourceCode .sh_variable {
	color: #26e0e7;
}

.sh_darkblue .sh_sourceCode .sh_oldfile {
	color: #ffa500;
}

.sh_darkblue .sh_sourceCode .sh_newfile {
	color: #ffa0a0;
}

.sh_darkblue .sh_sourceCode .sh_difflines {
	color: #ffff60;
}

.sh_darkblue .sh_sourceCode .sh_selector {
	color: #26e0e7;
}

.sh_darkblue .sh_sourceCode .sh_property {
	color: #ffff60;
}

.sh_darkblue .sh_sourceCode .sh_value {
	color: #ffa0a0;
}.snippet-wrap ol.snippet-num > li:before {
	border-right: 1px solid #EEE;
}

.sh_desert .sh_sourceCode {
	background-color: #af947e;
	color: #fffdec;
}

.sh_desert .sh_sourceCode .sh_keyword {
	color: #fef8bc;
	font-weight: bold;
}

.sh_desert .sh_sourceCode .sh_type {
	color: #fef8bc;
}

.sh_desert .sh_sourceCode .sh_string {
	color: #f6f647;
}

.sh_desert .sh_sourceCode .sh_regexp {
	color: #f6f647;
}

.sh_desert .sh_sourceCode .sh_specialchar {
	color: #f6f647;
}

.sh_desert .sh_sourceCode .sh_comment {
	color: #a00000;
	font-style: italic;
}

.sh_desert .sh_sourceCode .sh_number {
	color: #3e3f25;
}

.sh_desert .sh_sourceCode .sh_preproc {
	color: #833914;
}

.sh_desert .sh_sourceCode .sh_symbol {
	color: #66574f;
}

.sh_desert .sh_sourceCode .sh_function {
	color: #f3d266;
	font-weight: bold;
}

.sh_desert .sh_sourceCode .sh_cbracket {
	color: #66574f;
}

.sh_desert .sh_source


one(NetworkWhitelistEntry, routeProvider.parameters['whitelistid']).then((cidr) {
                    this.cidr = cidr;
                    _as_loaded = true;
                });
            });
        }
    }

    void deleteEntry() {
        this.store.delete(this.cidr).then((_) {
            router.go('settings', {});
        });
    }

}
part of security_monkey;

@Component(
    selector: 'revision-table',
    templateUrl: 'packages/security_monkey/component/revision_table_component/revision_table_component.html',
    //cssUrl: const ['/css/bootstrap.min.css'],
    useShadowDom: false
)
class RevisionTableComponent extends PaginatedTable implements DetachAware {
    List<Revision> revisions;
    RouteProvider routeProvider;
    Router router;
    ObjectStore store;
    bool constructor_complete = false;
    bool _autorefresh = false;
    Timer autorefresh_timer;

    @override
    void detach() {
        if (autorefresh_timer != null) {
            autorefresh_timer.cancel();
            autorefresh_timer = null;
        }
    }

    Map<String, String> filter_params = {
        'regions': '',
        'technologies': '',
        'accounts': '',
        'accounttypes': '',
        'names': '',
        'arns': '',
        'active': null,
        'searchconfig': null,
        'page': '1',
        'count': '25'
    };

    RevisionTableComponent(this.routeProvider, this.router, this.store) {
        filter_params = map_from_url(filter_params, this.routeProvider);

        /// The AngularUI Pagination tries to correct the currentPage value
        /// to page 1 when the API server hasn't yet responded with results.
        /// To fix, don't set the currentPage variable until we have received
        /// a response from the API server containing totalItems.
        store.list(Revision, params: filter_params).then((revisions) {
            super.setPaginationData(revisions.meta);
            this.revisions = revisions;
            super.is_loaded = true;
            super.items_per_page = filter_params['count'];
            super.currentPage = int.parse(filter_params['page']);
            constructor_complete = true;
        });
    }

    void list() {
        if (!constructor_complete) {
            return;
        }
        super.is_loaded = false;
        if (filter_params['page'] != super.currentPage.toString() || filter_params['count'] != super.items_per_page) {
            filter_params['page'] = super.currentPage.toString();
            filter_params['count'] = super.items_per_page;
            this.pushFilterRoutes();
        } else {
            print("Loading Filtered Data.");
            store.list(Revision, params: filter_params).then((revisions) {
                super.setPaginationData(revisions.meta);
                this.revisions = revisions;
                super.is_loaded = true;
            });
        }
    }

    void pushFilterRoutes() {
        filter_params = map_to_url(filter_params);
        print("Pushing revision_table_component filter routes: $filter_params");
        router.go('revisions', filter_params);
    }

    get autorefresh => _autorefresh;
    set autorefresh(bool ar) {
        _autorefresh = ar;
        if (_autorefresh) {
            autorefresh_timer = new Timer.periodic(new Duration(seconds: 30), (_) {
                this.list();
            });
        } else {
            autorefresh_timer.cancel();
            autorefresh_timer = null;


 - rgb(1,2,3);
    color: rgba(1,2,3, 0.5) * rgba(3,4,5, 0.5);
    color: rgba(10,15,20, 0.5) / rgba(2,2,2, 0.5);

    color: rgba(1,2,3, 0.5) * 2;
    color: rgba(1,2,3, 0.5) / 2;
    color: rgba(1,2,3, 0.5) + 2;
    color: rgba(1,2,3, 0.5) - 2;

    color: blue + 34;

    color: #fff == #000;
    color: #fff == #fff;

    color: #fff != #000;
    color: #fff != #fff;
}

#preserve {
    hello: what -going;
    hello: what - going;
}

#strings {
    hello: what -going;

    hello: what +going;
    hello: what+going;
    hello: what+ going;
    hello: what + going;

    hello: "what" + going;
    hello: going + "what";
    hello: "what" + "what";
}

#negation {
    $num: 100;
    a: -$num + 40;
    b: 10 -$num;
    b: 10 - $num;
}

#bools-fail {
    and: false and two;
    and: one and two;
    and: one and false;

    or: false or two;
    or: one or two;
    or: one or false;
}

#bools {
    and: (false and two);
    and: (one and two);
    and: (one and false);
    and: (null and two);

    or: (false or two);
    or: (one or two);
    or: (one or false);
    or: (null or two);
}

#nots-fail {
    not: not true + 2;
    not: not false;
    not: not 0;
    not: not 1;
    not: not "";
    not: not hello;
}

#nots {
    not: (not true) + 2;
    not: (not false);
    not: (not 0);
    not: (not 1);
    not: (not "");
    not: (not hello);
    not: (not null);
}

#string-test {
    str: hi == "hi";
    str: hi == "no";
    str: 'yes' == 'yes';

    $var1: "hello";
    $var2: hello;

    str: "#{$var1}" == '#{$var2}';

    str: xhello#{$var1}x == "x#{$var2}hellox"; // xhellohellofalse

    str: unit(10px) == px;
}

#special {
  cancel-unit: (10px / 10px);
}

// not expecting unary
$form-spacing: 1em;

.row .a { margin: 0-$form-spacing / 2; }
.row .b { margin: 0- $form-spacing / 2; }
.row .c { margin: 0 - $form-spacing / 2; }
.row .d { margin: 0 -$form-spacing / 2; }
.row .e { margin: 0 (-$form-spacing / 2); }

.alt .a { margin: 0-1em / 2; }
.alt .b { margin: 0- 1em / 2; }
.alt .c { margin: 0 - 1em / 2; }
.alt .d { margin: 0 -1em / 2; }
.alt .e { margin: 0 (-1em / 2); }

.row .f { margin: 0-$form-spacing * 2; }
.row .g { margin: 0- $form-spacing * 2; }
.row .h { margin: 0 - $form-spacing * 2; }
.row .i { margin: 0 -$form-spacing * 2; }
.row .j { margin: 0 (-$form-spacing * 2); }


import pandas as pd

data = pd.read_csv(r"C:\Users\adapa\OneDrive\Desktop\THUB\CSV Files\walmart.csv")

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()

cols = ['Stay_In_Current_City_Years','Product_ID','Gender','City_Category','Age']

for i in cols:
    data[i] = le.fit_transform(data[i])

x = data.iloc[ : , :-1].values
y = data.iloc[ : ,-1].values

from sklearn.model_selection import train_test_split

xtrain,xtest,ytrain,ytest = train_test_split(x,y,test_size=0.3,random_state=800)

from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=200)

model.fit(xtrain,ytrain)

ypred = model.predict(xtest)

from sklearn.metrics import mean_absolute_error

rscore =mean_absolute_error(ytest,ypred)

print(rscore)


PSR_c, r0
ffff0964:	e12fff1e 	bx	lr
ffff0968:	e59f1ddc 	ldr	r1, [pc, #3548]	; 0xffff174c
ffff096c:	e5c10042 	strb	r0, [r1, #66]	; 0x42
ffff0970:	e12fff1e 	bx	lr
ffff0974:	e59f0dd0 	ldr	r0, [pc, #3536]	; 0xffff174c
ffff0978:	e5d00042 	ldrb	r0, [r0, #66]	; 0x42
ffff097c:	e12fff1e 	bx	lr
ffff0980:	e3a01012 	mov	r1, #18
ffff0984:	e5c01000 	strb	r1, [r0]
ffff0988:	e3a01001 	mov	r1, #1
ffff098c:	e5c01001 	strb	r1, [r0, #1]
ffff0990:	e3a01e11 	mov	r1, #272	; 0x110
ffff0994:	e1c010b2 	strh	r1, [r0, #2]
ffff0998:	e3a01000 	mov	r1, #0
ffff099c:	e5c01004 	strb	r1, [r0, #4]
ffff09a0:	e5c01005 	strb	r1, [r0, #5]
ffff09a4:	e5c01006 	strb	r1, [r0, #6]
ffff09a8:	e3a01040 	mov	r1, #64	; 0x40
ffff09ac:	e5c01007 	strb	r1, [r0, #7]
ffff09b0:	e3011f3a 	movw	r1, #7994	; 0x1f3a
ffff09b4:	e1c010b8 	strh	r1, [r0, #8]
ffff09b8:	e30e1fe8 	movw	r1, #61416	; 0xefe8
ffff09bc:	e1c010ba 	strh	r1, [r0, #10]
ffff09c0:	e30012b3 	movw	r1, #691	; 0x2b3
ffff09c4:	e1c010bc 	strh	r1, [r0, #12]
ffff09c8:	e3a01000 	mov	r1, #0
ffff09cc:	e5c0100e 	strb	r1, [r0, #14]
ffff09d0:	e5c0100f 	strb	r1, [r0, #15]
ffff09d4:	e5c01010 	strb	r1, [r0, #16]
ffff09d8:	e3a01001 	mov	r1, #1
ffff09dc:	e5c01011 	strb	r1, [r0, #17]
ffff09e0:	e12fff1e 	bx	lr
ffff09e4:	e3a0100a 	mov	r1, #10
ffff09e8:	e5c01000 	strb	r1, [r0]
ffff09ec:	e3a01002 	mov	r1, #2
ffff09f0:	e5c01001 	strb	r1, [r0, #1]
ffff09f4:	e3a01020 	mov	r1, #32
ffff09f8:	e1c010b2 	strh	r1, [r0, #2]
ffff09fc:	e3a01001 	mov	r1, #1
ffff0a00:


-----------------------------------------
-- Spell: Stoneskin
-----------------------------------------
-- http://wiki.ffxiclopedia.org/wiki/Stoneskin
-- Max 350 damage absorbed
-- (before cap bonus gear, with no settings.lua adjustment)
require("scripts/globals/magic")
require("scripts/globals/msg")
require("scripts/globals/status")
require("scripts/globals/utils")
-----------------------------------------

function onMagicCastingCheck(caster, target, spell)
    return 0
end

function onSpellCast(caster, target, spell)
    local pMod = caster:getSkillLevel(dsp.skill.ENHANCING_MAGIC) / 3 + caster:getStat(dsp.mod.MND)
    local pAbs = 0
    local pEquipMods = caster:getMod(dsp.mod.STONESKIN_BONUS_HP)
    local duration = 300
    if pMod < 80 then
        pAbs = pMod
    el


, 2 /* TPIDRURW */
	ldr	r2, [r0], #4
	mcr	p15, 0, r2, c13, c0, 3 /* TPIDRURO */
	ldr	r2, [r0], #4
	mcr	p15, 0, r2, c13, c0, 4 /* TPIDRPRW */
.endm

/**
 * CP15 restore context
 *
 * @param	r0 - cp15 context pointer
 *
 * @retval
 */
.global cp15_restore
.func cp15_restore
	@ void cp15_restore(struct cp15_regs * p_cp15_context);
cp15_restore:
	@ Move to NS
	scr_nsbit_set r2
	@ restore c15 context
	restore_cp15_context
	@ Move back to secure
	scr_nsbit_clear r2
	bx	lr
.endfunc


2nyjzvOfAft3pOD39_0LW0PM2ctwC7jcLgmnYqec_ADPGj4gsipenOmdY4gLMva8wL1D8tvP9i2Fa1TLTRJ-3TE9MTgjD_Yh" alt="ͼ 뷭ǽ">

ʴӻĨųһкۼ2013-12-14
ų֮󣬳༭ɾ԰ټƵųйصűͼӻĨųһкۼٷ糯վһСʱ֮ųΪ±ɾᵽų±༭
йٷվͨһй·ͨ硣ݻ⹫˾Renesysṩݣʻ201311Σĺͱֱж46Ӻ16ӡ

1984ͬѧַӦᡣƵİϷ쳯ϴ綼ɡ뿴ǰĲġPSƬ

Σѵĳ

ų⴦ͻԳʾ  @ ʱ
Ȼ : һгʵļӪ

<img src="../../images/2013/12/T9cljtHpVQwO0x5g0PYmJlMj8rezsRcAu7X9wl812qpuzEGz8HM1EMV00L3RLaaGWXAk8n31NRRHqY1UjPVknBog


OfPaths) // 3
    return numberOfPaths.value
  }

  fun paths(source: Vertex<T>, destination: Vertex<T>, visited: ArrayList<Vertex<T>>, pathCount: Ref<Int>) {
    visited.add(source) // 1
    if (source == destination) { // 2
      pathCount.value += 1
    } else {
      val neighbors = edges(source) // 3
      neighbors.forEach { edge ->
        // 4
        if (!visited.contains(edge.destination)) {
          paths(edge.destination, destination, visited, pathCount)
        }
      }
    }
    // 5
    visited.remove(source)
  }

  fun breadthFirstSearch(source: Vertex<T>): ArrayList<Vertex<T>> {
    val queue = QueueStack<Vertex<T>>()
    val enqueued = ArrayList<Vertex<T>>()
    val visited = ArrayList<Vertex<T>>()
    queue.enqueue(source) // 1
    enqueued.add(source)
    while (true) {
      val vertex = queue.dequeue() ?: break // 2
      visited.add(vertex) // 3
      val neighborEdges = edges(vertex) // 4
      neighborEdges.forEach {
        if (!enqueued.contains(it.destination)) { // 5
          queue.enqueue(it.destination)
          enqueued.add(it.destination)
        }
      }
    }
    return visited
  }

  fun depthFirstSearch(source: Vertex<T>): ArrayList<Vertex<T>> {
    val stack = StackImpl<Vertex<T>>()
    val visited = arrayListOf<Vertex<T>>()
    val pushed = mutableSetOf<Vertex<T>>()

    stack.push(source)
    pushed.add(source)
    visited.add(source)

    outer@ while (true) {
      if (stack.isEmpty) break

      val vertex = stack.peek()!!
      val neighbors = edges(vertex)

      if (neighbors.isEmpty()) {
        stack.pop()
        continue
      }

      for (i in 0 until neighbors.size) {
        val destination = neighbors[i].destination
        if (destination !in pushed) {
          stack.push(destination)
          pushed.add(destination)
          visited.add(destination)
          continue@outer
        }
      }
      stack.pop()
    }

    return visited
  }

  // Solution 2
  fun depthFirstSearchRecursive(start: Vertex<T>): ArrayList<Vertex<T>> {
    val visited = arrayListOf<Vertex<T>>()
    val pushed = mutableSetOf<Vertex<T>>()

    depthFirstSearch(start, visited, pushed)

    return visited
  }

  fun depthFirstSearch(
    source: Vertex<T>,
    visited: ArrayList<Vertex<T>>,
    pushed: MutableSet<Vertex<T>>
  ) {
    pushed.add(source)
    visited.add(source)

    val neighbors = edges(source)
    neighbors.forEach {
      if (it.destination !in pushed) {
        depthFirstSearch(it.destination, visited, pushed)
      }
    }
  }

  // Solution 3
  fun hasCycle(source: Vertex<T>): Boolean {
    val pushed = mutableSetOf<Vertex<T>>()
    return hasCycle(source, pushed)
  }

  fun hasCycle(source: Vertex<T>, pushed: MutableSet<Vertex<T>>): Boolean {
    pushed.add(source)

    val neighbors = edges(source)
    neighbors.forEach {
      if (it.destination !in pushed && hasCycle(it.destination, pushed)) {
        return true
      } else if (it.destination in pushed) {
        return true
      }
    }

    pushed.remove(source)
    return false
  }

}

enum class EdgeType {
  DIRECTED,
  UNDIRECTED
}/*
 * Copyright (c) 2021 Razeware LLC
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software,


 outIsoMsg.dump(System.out, " ");
// final ISOMsg inTrailerIsoMsg = getNonNetworkInMsg(channel);
// inTrailerIsoMsg.dump(System.out, " ");
// if (functionalTest) {
// validateApplicationLogs(outIsoMsg, inTrailerIsoMsg, getEndOfLogFile(),
// dataRow);
// }
// validateInboundMessage(outIsoMsg, inTrailerIsoMsg, dataRow);
// }
//
// // convert inbound message to pojo
// return bufToPojo(inIsoMsg);
// }
//
// // Get a non-network in message from the given channel. This is needed
// // because the network message
// // can potentially come in between the outbound and inbound message
// private static ISOMsg getNonNetworkInMsg(BaseChannel channel) throws
// ISOException, IOException {
// ISOMsg inIsoMsg = channel.receive();
// while (inIsoMsg.getMTI().startsWith("08")) {
// inIsoMsg = channel.receive();
// }
// return inIsoMsg;
// }
//
// private static void validateApplicationLogs(ISOMsg outIsoMsg, ISOMsg
// inIsoMsg, List<String> logs, FDR8583Data dataRow) throws ISOException {
// final String stan = (String) inIsoMsg.getValue(11);
// try {
// final FDRFunctionalTest functionalTests = new FDRFunctionalTest();
// for (final String line : logs) {
// if (line.contains(stan) && line.contains("message_type\":\"" +
// functionalTests.getMessageType(outIsoMsg.getMTI()))) {
// if (line.contains("PaymentValidationRequest")) {
// final String text = line.substring(line.indexOf("{"));
// System.out.println("PaymentValidationRequest" + text);
// functionalTests.validatePaymentValidationRequest(outIsoMsg, new
// JSONObject(text));
// } else if (line.contains("MessageBrokerAsyncHandler")) {
// final String text = line.substring(line.indexOf("{"));
// System.out.println("MessageBrokerAsyncHandler" + text);
// functionalTests.validateSwitchCanonicalObject(outIsoMsg, new
// JSONObject(text), false, dataRow);
// } else if (line.contains("ResponseMapper")) {
// final String text = line.substring(line.indexOf("{"));
// System.out.println("ResponseMapper" + text);
// functionalTests.validateSwitchCanonicalObject(inIsoMsg, new JSONObject(text),
// true, dataRow);
// }
// }
// }
// } catch (final JSONException e) {
// e.printStackTrace();
// }
// }
//
// private static void validateInboundMessage(ISOMsg outIsoMsg, ISOMsg inIsoMsg,
// FDR8583Data dataRow) {
// if (inIsoMsg == null) {
// throw new RuntimeException("Invalid inIsoMsg");
// }
// BluefinAsserts.assertTrue(true, String.format("Verifying response for message
// - [%s] = Response MTI [%s], STAN - [%s]", outIsoMsg.getString(0),
// inIsoMsg.getString(0), inIsoMsg.getString(11)));
// // if (inIsoMsg.getString(0).equals("0110") ||
// // inIsoMsg.getString(0).equals("0210")) {
// // BluefinAsserts.assertTrue(inIsoMsg.getString(38) != null,
// // "Auth Code returned");
// // }
// // BluefinAsserts.assertEquals(inIsoMsg.getString(39),
// // dataRow.getIn39ResponseCode(), "Verify Response Code");
// if (checkMissingField) {
// final String missingFieldsString = getResponse(inIsoMsg.getStri


 ObservableList) {
    _upgradeObservableList(collection, owner);
  }
}

void _upgradeObservableMap(ObservableMap map, ServiceObjectOwner owner) {
  map.forEach((k, v) {
    if ((v is ObservableMap) && _isServiceMap(v)) {
      map[k] = owner.getFromMap(v);
    } else if (v is ObservableList) {
      _upgradeObservableList(v, owner);
    } else if (v is ObservableMap) {
      _upgradeObservableMap(v, owner);
    }
  });
}

void _upgradeObservableList(ObservableList list, ServiceObjectOwner owner) {
  for (var i = 0; i < list.length; i++) {
    var v = list[i];
    if ((v is ObservableMap) && _isServiceMap(v)) {
      list[i] = owner.getFromMap(v);
    } else if (v is ObservableList) {
      _upgradeObservableList(v, owner);
    } else if (v is ObservableMap) {
      _upgradeObservableMap(v, owner);
    }
  }
}
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// VMOptions=--optimization_counter_threshold=10

import "package:expect/expect.dart";

// This test tries to verify that we produce the correct stack trace when
// throwing exceptions even when functions are inlined.
// The test invokes a bunch of functions and then does a throw. There is a
// catch at the outer function which uses the stack trace produced to return
// a string. The test then verifies that the stack trace contains each
// method in the invocation chain. The test is run during warmup to ensure
// unoptimized code produces the correct result and is then run
// in a loop to ensure optimization kicks in and some inlining is done.
// Note: it appears that functions which have a throw are not inlined (func4)
//       and functions that have try/catch in them are not optimized (func1).
//       func2 is not inlined as func1 has not been optimized.

class Test {
  String func1(var k) {
    try {
      for (var i = 0; i <= 50; i++) {
        func2(i * k);
      }
      return "";
    } catch (e, stacktrace) {
      var result = e + stacktrace.toString();
      return result;
    }
  }
  int func2(var i) {
    var result = 0;
    for (var k = 0; k <= 10; k++) {
      result += func3(i + k);
    }
    return result;
  }
  int func3(var i) {
    var result = 0;
    for (var l = 0; l <= 1; l++) {
      result += func4(i + l);
    }
    return result;
  }
  int func4(var i) {
    var result = 0;
    for (var j = 0; j <= 10; j++) {
      result += func5(i + j);
    }
    return result;
  }
  int func5(var i) {
    if (i >= 520) throw "show me inlined functions";
    return i;
  }
}

main() {
  var x = new Test();
  var result = x.func1(100000);
  Expect.isTrue(result.contains("show me inlined functions"));
  Expect.isTrue(result.contains("Test.func1"));
  Expect.isTrue(result.contains("Test.func2"));
  Expect.isTrue(result.contains("Test.func3"));
  Expect.isTrue(result.contains("Test.func4"));
  Expect.isTrue(result.contains("Test.func"));
  for (var i = 0; i <= 10; i++) {
    result = x.func1(i);
  }
  Expect.isTrue(result.contains("show me inlined functions"));
  Expect.isTrue(result.contains("Test.func1"));
  Expect.isTrue(result.contains("Test.func2"));
  Ex


 QString & > (argspec_0);
  decl->set_return<void > ();
}

static void _call_emitter_objectNameChanged_4567 (const qt_gsi::GenericMethod * /*decl*/, void *cls, gsi::SerialArgs &args, gsi::SerialArgs & /*ret*/)
{
  __SUPPRESS_UNUSED_WARNING(args);
  tl::Heap heap;
  const QString &arg1 = gsi::arg_reader<const QString & >() (args, heap);
  ((QCameraFeedbackControl_Adaptor *)cls)->emitter_QCameraFeedbackControl_objectNameChanged_4567 (arg1);
}

// exposed int QCameraFeedbackControl::receivers(const char *signal)

static void _init_fp_receivers_c1731 (qt_gsi::GenericMethod *decl)
{
  static gsi::ArgSpecBase argspec_0 ("signal");
  decl->add_arg<const char * > (argspec_0);
  decl->set_return<int > ();
}

static void _call_fp_receivers_c1731 (const qt_gsi::GenericMethod * /*decl*/, void *cls, gsi::SerialArgs &args, gsi::SerialArgs &ret)
{
  __SUPPRESS_UNUSED_WARNING(args);
  tl::Heap heap;
  const char *arg1 = gsi::arg_reader<const char * >() (args, heap);
  ret.write<int > ((int)((QCameraFeedbackControl_Adaptor *)cls)->fp_QCameraFeedbackControl_receivers_c1731 (arg1));
}

// void QCameraFeedbackControl::resetEventFeedback(QCameraFeedbackControl::EventType)

static void _init_cbs_resetEventFeedback_3660_0 (qt_gsi::GenericMethod *decl)
{
  static gsi::ArgSpecBase argspec_0 ("arg1");
  decl->add_arg<const qt_gsi::Converter<QCameraFeedbackControl::EventType>::target_type & > (argspec_0);
  decl->set_return<void > ();
}

static void _call_cbs_resetEventFeedback_3660_0 (const qt_gsi::GenericMethod * /*decl*/, void *cls, gsi::SerialArgs &args, gsi::SerialArgs &ret)
{
  __SUPPRESS_UNUSED_WARNING(args);
  tl::Heap heap;
  const qt_gsi::Converter<QCameraFeedbackControl::EventType>::target_type & arg1 = args.read<const qt_gsi::Converter<QCameraFeedbackControl::EventType>::target_type & > (heap);
  __SUPPRESS_UNUSED_WARNING(ret);
  ((QCameraFeedbackControl_Adaptor *)cls)->cbs_resetEventFeedback_3660_0 (arg1);
}

static void _set_callback_cbs_resetEventFeedback_3660_0 (void *cls, const gsi::Callback &cb)
{
  ((QCameraFeedbackControl_Adaptor *)cls)->cb_resetEventFeedback_3660_0 = cb;
}

// exposed QObject *QCameraFeedbackControl::sender()

static void _init_fp_sender_c0 (qt_gsi::GenericMethod *decl)
{
  decl->set_return<QObject * > ();
}

static void _call_fp_sender_c0 (const qt_gsi::GenericMethod * /*decl*/, void *cls, gsi::SerialArgs &args, gsi::SerialArgs &ret)
{
  __SUPPRESS_UNUSED_WARNING(args);
  ret.write<QObject * > ((QObject *)((QCameraFeedbackControl_Adaptor *)cls)->fp_QCameraFeedbackControl_sender_c0 ());
}

// exposed int QCameraFeedbackControl::senderSignalIndex()

static void _init_fp_senderSignalIndex_c0 (qt_gsi::GenericMethod *decl)
{
  decl->set_return<int > ();
}

static void _call_fp_senderSignalInd


                ? Container()
                : Text(scheduleEntry.details),
          ],
        ),
      ),
    );
  }
}
import 'package:dhbwstudentapp/common/util/cancellation_token.dart';
import 'package:dhbwstudentapp/schedule/service/mannheim/mannheim_course_response_parser.dart';
import 'package:dhbwstudentapp/schedule/service/schedule_source.dart';
import 'package:http/http.dart';
import 'package:http_client_helper/http_client_helper.dart' as http;

class Course {
  final String name;
  final String title;
  final String icalUrl;
  final String scheduleId;

  Course(this.name, this.icalUrl, this.title, this.scheduleId);
}

class MannheimCourseScraper {
  Future<List<Course>> loadCourses([
    CancellationToken cancellationToken,
  ]) async {
    if (cancellationToken == null) cancellationToken = CancellationToken();

    var coursesPage = await _makeRequest(
      Uri.parse("https://vorlesungsplan.dhbw-mannheim.de/ical.php"),
      cancellationToken,
    );

    return MannheimCourseResponseParser().parseCoursePage(coursesPage.body);
  }

  Future<Response> _makeRequest(
      Uri uri, CancellationToken cancellationToken) async {
    var requestCancellationToken = http.CancellationToken();

    try {
      cancellationToken.setCancellationCallback(() {
        requestCancellationToken.cancel();
      });

      var response = await http.HttpClientHelper.get(uri,
          cancelToken: requestCancellationToken);

      if (response == null && !requestCancellationToken.isCanceled)
        throw ServiceRequestFailed("Http request failed!");

      return response;
    } on http.OperationCanceledError catch (_) {
      throw OperationCancelledException();
    } catch (ex) {
      if (!requestCancellationToken.isCanceled) rethrow;
    } finally {
      cancellationToken.setCancellationCallback(null);
    }

    return null;
  }
}
import 'package:flutter/material.dart';

TextStyle textStyleDailyScheduleEntryWidgetProfessor(BuildContext context) =>
    Theme.of(context).textTheme.subtitle2;

TextStyle textStyleDailyScheduleEntryWidgetTitle(BuildContext context) =>
    Theme.of(context)
        .textTheme
        .headline4
        .copyWith(color: Theme.of(context).textTheme.headline6.color);

TextStyle textStyleDailyScheduleEntryWidgetType(BuildContext context) =>
    Theme.of(context).textTheme.bodyText2.copyWith(
          fontWeight: FontWeight.w300,
          letterSpacing: 0.15,
        );

TextStyle textStyleDailyScheduleEntryWidgetTimeStart(BuildContext context) =>
    Theme.of(context).textTheme.headline5.copyWith(
          fontWeight: FontWeight.w600,
          letterSpacing: 0.15,
        );

TextStyle textStyleDailyScheduleEntryWidgetTimeEnd(BuildContext context) =>
    Theme.of(context).textTheme.subtitle2;

TextStyle textStyleDailyScheduleCurrentDate(BuildContext context) =>
    Theme.of(context).textTheme.headline4.copyWith(
          color: Theme.of(context).textTheme.headline5.color,
        );
TextStyle textStyleDailyScheduleNoEntries(BuildContext context) =>
    Theme.of(context).textTheme.headline5;

TextStyle textStyleScheduleEntryWidgetTitle(BuildContext context) =>
    Theme.of(context).textTheme.bodyText1.copyWith(
          fontWeight: FontWeight.normal,
        );

TextStyle textStyleScheduleEntryBottomPageTitle(BuildContext context) =>
    Theme.of(context).textTheme.subtitle2;

TextStyle textStyleScheduleEntryBottomPa


identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;

@$core.Deprecated('Use postalAddressDescriptor instead')
const PostalAddress$json = {
  '1': 'PostalAddress',
  '2': [
    {'1': 'revision', '3': 1, '4': 1, '5': 5, '10': 'revision'},
    {'1': 'region_code', '3': 2, '4': 1, '5': 9, '10': 'regionCode'},
    {'1': 'language_code', '3': 3, '4': 1, '5': 9, '10': 'languageCode'},
    {'1': 'postal_code', '3': 4, '4': 1, '5': 9, '10': 'postalCode'},
    {'1': 'sorting_code', '3': 5, '4': 1, '5': 9, '10': 'sortingCode'},
    {'1': 'administrative_area', '3': 6, '4': 1, '5': 9, '10': 'administrativeArea'},
    {'1': 'locality', '3': 7, '4': 1, '5': 9, '10': 'locality'},
    {'1': 'sublocality', '3': 8, '4': 1, '5': 9, '10': 'sublocality'},
    {'1': 'address_lines', '3': 9, '4': 3, '5': 9, '10': 'addressLines'},
    {'1': 'recipients', '3': 10, '4': 3, '5': 9, '10': 'recipients'},
    {'1': 'organization', '3': 11, '4': 1, '5': 9, '10': 'organization'},
  ],
};

/// Descriptor for `PostalAddress`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List postalAddressDescriptor = $convert.base64Decode(
    'Cg1Qb3N0YWxBZGRyZXNzEhoKCHJldmlzaW9uGAEgASgFUghyZXZpc2lvbhIfCgtyZWdpb25fY2'
    '9kZRgCIAEoCVIKcmVnaW9uQ29kZRIjCg1sYW5ndWFnZV9jb2RlGAMgASgJUgxsYW5ndWFnZUNv'
    'ZGUSHwoLcG9zdGFsX2NvZGUYBCABKAlSCnBvc3RhbENvZGUSIQoMc29ydGluZ19jb2RlGAUgAS'
    'gJUgtzb3J0aW5nQ29kZRIvChNhZG1pbmlzdHJhdGl2ZV9hcmVhGAYgASgJUhJhZG1pbmlzdHJh'
    'dGl2ZUFyZWESGgoIbG9jYWxpdHkYByABKAlSCGxvY2FsaXR5EiAKC3N1YmxvY2FsaXR5GAggAS'
    'gJUgtzdWJsb2NhbGl0eRIjCg1hZGRyZXNzX2xpbmVzGAkgAygJUgxhZGRyZXNzTGluZXMSHgoK'
    'cmVjaXBpZW50cxgKIAMoCVIKcmVjaXBpZW50cxIiCgxvcmdhbml6YXRpb24YCyABKAlSDG9yZ2'
    'FuaXphdGlvbg==');

//
//  Generated code. Do not modify.
//  source: google/type/localized_text.proto
//
// @dart = 2.12

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:convert' as $convert;
import 'dart:core' as $core;
import 'dart:typed_data' as $typed_data;

@$core.Deprecated('Use localizedTextDescriptor instead')
const LocalizedText$json = {
  '1': 'LocalizedText',
  '2': [
    {'1': 'text', '3': 1,


tServer.STUNEnable">STUNEnable is false, the host and port portions of the URL MUST represent the local IP address and port on which the CPE is listening for UDP Connection Request messages.
The second form of this parameter MAY be used only if the port value is equal to "80".

-

1.0

UDPConnectionRequestAddressNotificationLimit

unsignedInt

W

The minimum time, in seconds, between Active Notifications resulting from changes to the UDPConnectionRequestAddress (if Active Notification is enabled).

-

1.0

STUNEnable

boolean

W

Enables or disables the use of STUN by the CPE.  This applies only to the use of STUN in association with the ACS to allow UDP Connection Requests.

-

1.0

STUNServerAddress

string(:256)

W

Host name or IP address of the STUN server for the CPE to send Binding Requests if STUN is enabled via STUNEnable.
If an empty string and STUNEnable is true, the CPE MUST use the address of the ACS extracted from the host portion of the ACS URL.

-

1.0

STUNServerPort

unsignedInt(0:65535)

W

Port number of the STUN server for the CPE to send Binding Requests if STUN is enabled via STUNEnable.
By default, this SHOULD be the equal to the default STUN port, 3478.

-

1.0

STUNUsername

string(:256)

W

If not an empty string, the value of the STUN USERNAME attribute to be used in Binding Requests (only if


# Python bytecode 2.7 (decompiled from Python 2.7)
# Embedded file name: scripts/client/gui/Scaleform/daapi/view/lobby/exchange/ExchangeWindow.py
from gui import SystemMessages
from gui.ClientUpdateManager import g_clientUpdateManager
from gui.Scaleform.daapi.view.meta.ExchangeWindowMeta import ExchangeWindowMeta
from gui.shared.gui_items.processors.common import GoldToCreditsExchanger
from gui.shared.utils import decorators
from gui.shared.money import Currency
from helpers import dependency
from skeletons.gui.game_control import IWalletController
from skeletons.gui.shared import IItemsCache

class ExchangeWindow(ExchangeWindowMeta):
    itemsCache = dependency.descriptor(IItemsCache)
    wallet = dependency.descriptor(IWalletController)

    def __init__(self, ctx):
        super(ExchangeWindow, self).__init__()
        self.currencyValue = ctx.get('currencyValue', 0)

    def _populate(self):
        super(ExchangeWindow, self)._populate()
        stats = self.itemsCache.items.stats
        self.as_setPrimaryCurrencyS(stats.actualGold)
        self.as_setSecondaryCurrencyS(stats.actualCredits)
        self.as_exchangeRateS({'value': self.itemsCache.items.shop.defaults.exchangeRate,
         'actionValue': self.itemsCache.items.shop.exchangeRate,
         'actionMode': True})
        self.as_setWalletStatusS(self.wallet.componentsStatuses)
        self.as_setDefaultPrimaryCurrencyValueS(self.currencyValue)

    @decorators.adisp_process('transferMoney')
    def exchange(self, gold):
        result = yield GoldToCreditsExchanger(gold).request()
        if result and result.userMsg:
            SystemMessages.pushI18nMessage(result.userMsg, type=result.sysMsgType)
            self.onWindowClose()

    def _subscribe(self):
        g_clientUpdateManager.addCurrencyCallback(Currency.CREDITS, self.__setCreditsCallBack)
        g_clientUpdateManager.addCurrencyCallback(Currency.GOLD, self._setGoldCallBack)
        g_clientUpdateManager.addCallbacks({'shop.exchangeRate': self.__setExchangeRateCallBack})
        self.wallet.onWalletStatusChanged += self.__setWalletCallback
        self.itemsCache.onSyncCompleted += self.__setExchangeRateCallBack

    def __setExchangeRateCallBack(self, *args):
        self.as_exchangeRateS({'value': self.itemsCache.items.shop.defaults.exchangeRate,
         'actionValue': self.itemsCache.items.shop.exchangeRate,
         'actionMode': True})

    def __setCreditsCallBack(self, credit):
        self.as_setSecondaryCurrencyS(credit)

    def __setWalletCallback(self, status):
        self.as_setPrimaryCurrencyS(self.itemsCache.items.stats.actualGold)
        self.as_setWalletStatusS(status)

    def onWindowClose(self):
        self.destroy()

    def _dispose(self):
        self.itemsCache.onSyncCompleted -= self.__setExchangeRateCallBack
        self.wallet.onWalletStatusChanged -= self.__setWalletCallback
        g_clientUpdateManager.removeObjectCallbacks(self)
        super(ExchangeWindow, self)._dispose()


0);
	}

	ret = nouveau_bo_validate(nvbo, false, false);
	if (unlikely(ret == -EBUSY || ret == -ERESTARTSYS))
		return VM_FAULT_NOPAGE;
	else if (unlikely(ret))
		return VM_FAULT_SIGBUS;

	ttm_bo_move_to_lru_tail_unlocked(bo);
	return 0;
}

static int
nouveau_ttm_tt_populate(struct ttm_device *bdev,
			struct ttm_tt *ttm, struct ttm_operation_ctx *ctx)
{
	struct ttm_tt *ttm_dma = (void *)ttm;
	struct nouveau_drm *drm;
	struct device *dev;
	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);

	if (ttm_tt_is_populated(ttm))
		return 0;

	if (slave && ttm->sg) {
		drm_prime_sg_to_dma_addr_array(ttm->sg, ttm_dma->dma_address,
					       ttm->num_pages);
		return 0;
	}

	drm = nouveau_bdev(bdev);
	dev = drm->dev->dev;

	return ttm_pool_alloc(&drm->ttm.bdev.pool, ttm, ctx);
}

static void
nouveau_ttm_tt_unpopulate(struct ttm_device *bdev,
			  struct ttm_tt *ttm)
{
	struct nouveau_drm *drm;
	struct device *dev;
	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);

	if (slave)
		return;

	drm = nouveau_bdev(bdev);
	dev = drm->dev->dev;

	return ttm_pool_free(&drm->ttm.bdev.pool, ttm);
}

static void
nouveau_ttm_tt_destroy(struct ttm_device *bdev,
		       struct ttm_tt *ttm)
{
#if IS_ENABLED(CONFIG_AGP)
	struct nouveau_drm *drm = nouveau_bdev(bdev);
	if (drm->agp.bridge) {
		ttm_agp_unbind(ttm);
		ttm_tt_destroy_common(bdev, ttm);
		ttm_agp_destroy(ttm);
		return;
	}
#endif
	nouveau_sgdma_destroy(bdev, ttm);
}

void
nouveau_bo_fence(struct nouveau_bo *nvbo, struct nouveau_fence *fence, bool exclusive)
{
	struct dma_resv *resv = nvbo->bo.base.resv;

	if (exclusive)
		dma_resv_add_excl_fence(resv, &fence->base);
	else if (fence)
		dma_resv_add_shared_fence(resv, &fence->base);
}

static void
nouveau_bo_delete_mem_notify(struct ttm_buffer_object *bo)
{
	nouveau_bo_move_ntfy(bo, NULL);
}

struct ttm_device_funcs nouveau_bo_driver = {
	.ttm_tt_create = &nouveau_ttm_tt_create,
	.ttm_tt_populate = &nouveau_ttm_tt_populate,
	.ttm_tt_unpopulate = &nouveau_ttm_tt_unpopulate,
	.ttm_tt_destroy = &nouveau_ttm_tt_destroy,
	.eviction_valuable = ttm_bo_eviction_valuable,
	.evict_flags = nouveau_bo_evict_flags,
	.delete_mem_notify = nouveau_bo_delete_mem_notify,
	.move = nouveau_bo_move,
	.io_mem_reserve = &nouveau_ttm_io_mem_reserve,
	.io_mem_free = &nouveau_ttm_io_mem_free,
};