nkedList,
    error, fmt,
    sync::{
        mpsc::{self, Receiver, Sender, SyncSender},
        Arc,
    },
    thread,
};

pub struct ThreadPool<Payload: 'static + Send> {
    queue_tx: SyncSender<Signal<Payload>>,
    term_rx: Receiver<()>,
}

impl<Payload: 'static + Send> ThreadPool<Payload> {
    pub fn spawn<JobRunner>(size: usize, queue_size: usize, job_runner: JobRunner) -> Self
    where
        JobRunner: Fn(Payload) + 'static + Send + Sync,
    {
        let (queue_tx, queue_rx) = mpsc::sync_channel(queue_size);
        let (term_tx, term_rx) = mpsc::channel();

        WorkerMux::spawn(size, job_runner, queue_rx, term_tx);

        Self { queue_tx, term_rx }
    }

    pub fn enqueue(&self, payload: Payload) -> Result<(), ThreadPoolError> {
        match self.queue_tx.send(Signal::JOB(payload)) {
            Err(err) => Err(ThreadPoolError::QueueErr(err.to_string())),
            Ok(()) => Ok(()),
        }
    }

    pub fn terminate_and_join(&self) -> Result<(), ThreadPoolError> {
        match self.queue_tx.send(Signal::TERM) {
            Err(err) => Err(ThreadPoolError::TermError(err.to_string())),
            Ok(()) => match self.term_rx.recv() {
                Err(err) => panic!(
                    "Worker mux term tx closed before termination signal: {}",
                    err
                ),
                Ok(()) => Ok(()),
            },
        }
    }
}

#[derive(Debug)]
pub enum ThreadPoolError {
    QueueErr(String),
    TermError(String),
}

impl fmt::Display for ThreadPoolError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match *self {
            Self::QueueErr(ref err) => write!(f, "Error enqueuing worker job: {}", err),
            Self::TermError(ref err) => {
                write!(f, "Error enqueuing worker termination signal: {}", err)
            }
        }
    }
}

impl error::Error for ThreadPoolError {
    fn source(&self) -> Option<&(dyn error::Error + 'static)> {
        match *self {
            Self::QueueErr(_) => None,
            Self::TermError(_) => None,
        }
    }
}

struct WorkerMux {}

impl WorkerMux {
    fn spawn<JobRunner, Payload: 'static + Send>(
        size: usize,
        job_runner: JobRunner,
        queue_rx: Receiver<Signal<Payload>>,
        term_tx: Sender<()>,
    ) -> Self
    where
        JobRunner: Fn(Payload) + 'static + Send + Sync,
    {
        let job_runner_arc: Arc<JobRunner> = Arc::new(job_runner);

        let (mux_tx, mux_rx) = mpsc::channel();

        let mut workers = Vec::with_capacity(size);
        for id in 0..size {
            workers.push(Worker::spawn(id, mux_tx.clone(), job_runner_arc.clone()));
        }

        thread::spawn(move || {
            let mut idle_workers: LinkedList<WorkerId> = LinkedList::new();

            loop {
                while idle_workers.is_empty() {
                    let report = WorkerMux::join_worker_report(&mux_rx);
                    match report.status {
                        WorkerStatus::IDLE => idle_workers.push_back(report.id),
                        WorkerStatus::TERM => {}
                    }
                }

                match WorkerMux::join_job_queue(&queue_rx) {
                    Signal::TERM => break,
                    Signal::JOB(payload) => {
                        let worker_id = idle_workers.pop_back().unwrap();
                        workers[worker_id].run_job(payload);
                    }
                }
            }


doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_SET_CD: u32 = 308u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_SET_DRIVE: u32 = 309u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_UNNAMED_RESOURCE: u32 = 298u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_UNRECOGNIZED_COMMAND: u32 = 261u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_UNRECOGNIZED_KEYWORD: u32 = 259u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_UNSUPPORTED_FUNCTION: u32 = 274u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_INPUTSINUSE: u32 = 322u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_INPUTSUNSUITABLE: u32 = 328u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_INPUTUNSPECIFIED: u32 = 325u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_OUTPUTSINUSE: u32 = 320u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_OUTPUTSUNSUITABLE: u32 = 326u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_OUTPUTUNSPECIFIED: u32 = 324u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_SETINPUTINUSE: u32 = 323u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_SETINPUTUNSUITABLE: u32 = 329u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_SETOUTPUTINUSE: u32 = 321u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIERR_WAVE_SETOUTPUTUNSUITABLE: u32 = 327u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOAUTOSIZEMOVIE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOAUTOSIZEWINDOW: u32 = 1u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOERRORDLG: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOMENU: u32 = 8u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOOPEN: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"]
pub const MCIWNDF_NOPLAYBAR: u32 = 2u32;
#[doc = "*Required features: `\"Win32_


890011c08d0120334afa038fd6b42975b9b.jpg@672w_378h_1c_!web-search-common-cover" alt="♥ 𝑯𝑶𝑻 1 0 0 % ♥" loading="lazy" onload></picture>

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewbox="0 0 24 24" width="24" height="24" fill="#ffffff" class="bili-video-card__stats--icon" data-v-62f526a6></svg>151.6万<svg class="bili-video-card__stats--icon" data-v-62f526a6><use xlink:href="#widget-video-danmaku"></use></svg>1384
01:50

♥ 𝑯𝑶𝑻 1 0 0 % ♥

<svg class="bili-video-card__info--author-ico mr_2" data-v-62f526a6><use xlink:href="#widget-up"></use></svg>阴角大王 · 2022-11-13

<p class="bili-video-card__skeleto


: Update user balances
    // USE: WithdrawDelegatorReward {}

    if info.funds.len() != 0 {
        return Err(TooManyFundsSent {});
    }

    let settings = SETTINGS.load(deps.storage).unwrap();

    let delegation = deps
        .querier
        .query_delegation(env.clone().contract.address, settings.clone().validator)
        .unwrap()
        .unwrap();
    let total_rewards = delegation.clone().accumulated_rewards[0].amount.u128();
    let total_delegation = delegation.clone().amount.amount.u128();
    let sub_msg = SubMsg::reply_on_success(
        WithdrawDelegatorReward {
            validator: settings.clone().validator,
        },
        CLAIM_REWARDS_SUB_MESSAGE_ID,
    );

    TOTAL_DELEGATION
        .save(deps.storage, &Uint128::new(total_delegation))
        .unwrap();
    TOTAL_REWARDS
        .save(deps.storage, &Uint128::new(total_rewards))
        .unwrap();
    Ok(Response::new().add_submessage(sub_msg))
}

fn execute_undelegate(
    deps: DepsMut,
    _env: Env,
    info: MessageInfo,
    amount: Coin,
) -> Result<Response, ContractError> {
    // TODO: This is what we need to do when undelegating
    // TODO: 1. Check no funds are sent
    // TODO: 2. Load user balance
    // TODO: 3. Check amount denom is settings staking denom
    // TODO: 4. Check withdrawal amount <= staked balance
    // TODO: 5. Update user's balance staked_amount - amount, liquid_amount + amount
    // TODO: 6. Send undelegate message

    if info.funds.len() != 0 {
        return Err(TooManyFundsSent {});
    }

    let settings = SETTINGS.load(deps.storage).unwrap();
    let mut user_balance = get_user_balance(deps.storage, info.sender.clone());

    if amount.denom.clone() != settings.staking_denom.clone() {
        return Err(IncorrectDenom {
            expected: settings.staking_denom.clone(),
            actual: amount.denom.clone(),
        });
    }

    if amount.amount.clone().is_zero() {
        return Err(InvalidUndelegate {});
    }

    if amount.amount.clone().u128() > user_balance.staked_amount.u128() {
        return Err(InsufficientBalance {});
    }

    // Update user's balance
    user_balance.staked_amount -= amount.clone().amount;
    user_balance.liquid_amount += amount.clone().amount;
    USER_BALANCES
        .save(deps.storage, info.sender.clone(), &user_balance)
        .unwrap();

    Ok(Response::new()
        .add_attribute("liquid_balance", user_balance.liquid_amount.to_string())
        .add_attribute("staked_balance", user_balance.staked_amount.to_string())
        .add_message(StakingMsg::Undelegate {
            validator: settings.validator.clone(),
            amount: amount.clone(),
        }))
}

#[cfg_attr(not(feature = "library"), entry_point)]
pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult<Binary> {
    match msg {
        QueryMsg::GetSettings {} => query_settings(deps, env),
        QueryMsg::GetUserBalance { address } => query_get_user_balance(deps, env, address),
    }
}

fn query_settings(deps: Deps, _env: Env) -> StdResult<Binary> {
    let settings = SETTINGS.load(deps.storage).unwrap();


using System.Collections.Generic;
using Rubberduck.CodeAnalysis.Inspections;

namespace Rubberduck.UI.Inspections
{
    public static class InspectionResultComparer
    {
        public static Comparer<IInspectionResult> InspectionType { get; } = new CompareByInspectionType();

        public static Comparer<IInspectionResult> Name { get; } = new CompareByInspectionName();

        public static Comparer<IInspectionResult> Location { get; } = new CompareByLocation();

        public static Comparer<IInspectionResult> Severity { get; } = new CompareBySeverity();
    }

    public class CompareByInspectionType : Comparer<IInspectionResult>
    {
        public override int Compare(IInspectionResult x, IInspectionResult y)
        {
            if (x == y)
            {
                return 0;
            }

            if (x?.Inspection?.InspectionType is null)
            {
                return -1;
            }

            return x.Inspection.InspectionType.CompareTo(y?.Inspection?.InspectionType);
        }
    }

    public class CompareByInspectionName : Comparer<IInspectionResult>
    {
        public override int Compare(IInspectionResult x, IInspectionResult y)
        {
            if (x == y)
            {
                return 0;
            }

            if (x?.Inspection?.Name is null)
            {
                return -1;
            }

            return x.I


/*
 * Copyright (c) 2000 Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp>
 * Copyright (c) 2001 Cameron Grant <cg@freebsd.org>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <dev/sound/pcm/sound.h>
#include <dev/sound/pcm/ac97.h>
#include <dev/sound/pci/ich.h>

#include <pci/pcireg.h>
#include <pci/pcivar.h>

SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.24 2002/08/19 16:03:56 orion Exp $");

/* -------------------------------------------------------------------- */

#define ICH_TIMEOUT 1000 /* semaphore timeout polling count */
#define ICH_DTBL_LENGTH 32
#define ICH_DEFAULT_BUFSZ 16384
#define ICH_MAX_BUFSZ 65536

#define SIS7012ID       0x70121039      /* SiS 7012 needs special handling */
#define ICH4ID		0x24c58086	/* ICH4 needs special handling too */

/* buffer descriptor */
struct ich_desc {
	volatile u_int32_t buffer;
	volatile u_int32_t length;
};

struct sc_info;

/* channel registers */
struct sc_chinfo {
	u_int32_t num:8, run:1, run_save:1;
	u_int32_t blksz, blkcnt, spd;
	u_int32_t regbase, spdreg;
	u_int32_t imask;
	u_int32_t civ;

	struct snd_dbuf *buffer;
	struct pcm_channel *channel;
	struct sc_info *parent;

	struct ich_desc *dtbl;
};

/* device private data */
struct sc_info {
	device_t dev;
	int hasvra, hasvrm, hasmic;
	unsigned int chnum, bufsz;
	int sample_size, swap_reg;

	struct resource *nambar, *nabmbar, *irq;
	int nambarid, nabmbarid, irqid;
	bus_space_tag_t nambart, nabmbart;
	bus_space_handle_t nambarh, nabmbarh;
	bus_dma_tag_t dmat;
	bus_dmamap_t dtmap;
	void *ih;

	struct ac97_info *codec;
	struct sc_chinfo ch[3];
	int ac97rate;
	struct ich_desc *dtbl;
	struct intr_config_hook	intrhook;
	int use_intrhook;
};

/* -------------------------------------------------------------------- */

static u_int32_t ich_fmt[] = {
	AFMT_STEREO | AFMT_S16_LE,
	0
};
static struct pcmchan_caps ich_vrcaps = {8000, 48000, ich_fmt, 0};
static struct pcmchan_caps ich_caps = {48000, 48000, ich_fmt, 0};

/* -------------------------------------------------------------------- */
/* Hardware */
static u_int32_t
ich_rd(struct sc_info *sc, int regno, int size)
{
	switch (size) {
	case 1:
		return bus_space_read_1(sc->nabmbart, sc->nabmbarh, regno);
	case 2:
		return bus_space_read_2(sc->nabmbart, sc->nabmbarh, regno);
	case 4:
		return bus_space_read_4(sc->nabmbart, sc->nabmbarh, regno);
	default:
		return 0xffffffff;
	}
}

static void
ich_wr(struct sc_info *sc, int regno, u_int32_t data, int size)
{
	switch (size) {
	case 1:
		bus_space_write_1(sc->nabmbart, sc->nabmbarh, regno, data);
		break;
	case 2:
		bus_space_write_2(sc->nabmbart, sc->nabmbarh, regno, data);
		break;
	case 4:
		bus_space_write_4(sc->nabmbart, sc->nabmbarh, regno, data);
		break;
	}
}

/* ac97 codec */
static int
ich_waitcd(void *devinfo)
{
	int i;
	u_int32_t data;
	struct sc_info *sc = (struct sc_info *)devinfo;

	for (i = 0; i < ICH_TIMEOUT; i++) {
		data = ich_rd(sc, ICH_REG_ACC_SEMA, 1);
		if ((data & 0x01) == 0)
			return 0;
	}
	device_printf(sc->dev, "CODEC semaphore timeout\n");
	return ETIMEDOUT;
}

static int
ich_rdcd(kobj_t obj, void *devinfo, int regno)
{
	struct sc_info *sc = (struct sc_info *)devinfo;

	regno &= 0xff;
	ich_waitcd(sc);

	return bus_space_read_2(s


,
  3,
  4,
  5,
  6
]''',
      );
    });
    test('spread in function call', () {
      final result = hetu.eval(r'''
        function someFunc(a, b) {
          return a + b
        }
        var list = [5, 6]
        someFunc(...list)
      ''');
      expect(
        result,
        11,
      );
    });
  });

  group('operators -', () {
    test('brackets', () {
      final result = hetu.eval(r'''
        3 - (2 * 3 - 5)
      ''');
      expect(
        result,
        2,
      );
    });
    test('null checker', () {
      final result = hetu.eval(r'''
        var kek = null
        if (kek == null || true) {
          'is null'
        } else {
          'eroor'
        }
      ''');
      expect(
        result,
        'is null',
      );
    });
    test('ternary operator', () {
      final result = hetu.eval(r'''
        (5 > 4 ? true ? 'certainly' : 'yeah' : 'ha') + ', Eva!'
      ''');
      expect(
        result,
        'certainly, Eva!',
      );
    });
    test('member and sub get', () {
      final result = hetu.eval(r'''
        class Ming {
          var first = 'tom'
        }
        class Member {
          var array = {'tom': 'kaine'}
          var name = Ming()
        }
        var m = Member()
        m.array[m.name.first]
      ''');
      expect(
        result,
        'kaine',
      );
    });
    test('complex assign', () {
      final result = hetu.eval(r'''
        var jimmy = {
          age: 17
        }
        jimmy.age -= 5 + 2
        jimmy.age *= 6
        jimmy.age += 3 * 4
      ''');
      expect(
        result,
        72,
      );
    });
  });
}
import 'package:test/test.dart';
import 'package:hetu_script/hetu_script.dart';
import 'package:hetu_script_dev_tools/hetu_script_dev_tools.dart';

void main() {
  final sourceContext = HTFileSystemResourceContext(root: 'script/');
  final hetu = Hetu(
    config: HetuConfig(
      printPerformanceStatistics: false,
    ),
    sourceContext: sourceContext,
  );
  hetu.init();

  group('module -', () {
    test('import test 1', () {
      final result = hetu.evalFile('import_test.ht', invoke: 'importTest');
      expect(
        result,
        87.5,
      );
    });
    test('import test 2', () {
      final result = hetu.evalFile('import_test2.ht', invoke: 'main');
      expect(
        result,
        'another hello!',
      );
    });
    test('recursive import', () {
      final result = hetu.evalFile('recursive2.ht', invoke: 'main');
      expect(
        result,
        'hello, r2, I\'m r1!',
      );
    });
    // test('const import', () {
    // hetu.evalFile('import_test4.hts');
    // expect(
    //   result,
    //   'hello, r2, I\'m r1!',
    // );
    // });
  });
}
import 'package:test/test.dart';
import 'package:youtube_explode_dart/youtube_explode_dart.dart';

import 'skip_gh.dart';

void main() {
  YoutubeExplode? yt;
  setUpAll(() {
    yt = YoutubeExp


# PROVA
# Desenvolva um programa em Python para calcular a média de notas de alunos em uma disciplina.
# O programa deve solicitar ao usuário o número de alunos e, em seguida, para cada
# aluno, pedir o nome e três notas. Utilize um loop 'for' para iterar sobre os alunos e suas notas.

# Além disso, implemente uma estrutura condicional para verificar se cada aluno foi
# aprovado ou reprovado, considerando que a média mínima para aprovação é 7.0. Exiba o nome
# do aluno, suas notas, média e a indicação de aprovação ou reprovação.

# Ao final, exiba a média geral da turma.

print('--------- School ---------')

al = 0
md = 0
c = 0
nt = 0

# q = int(input('Insira a quantidade de alunos: '))

while c < 3:
  al = input('Nome: ') # Nom
  while c < 3: # Para notas
    c += 1
    nt = float(input('Nota:'))
    nt += nt
    md = nt / c

  print(md)
  print(nt)


 match color {
				YELLOW => (3, (i32::MAX - 43 + depth as i32)), // Computer won, good
				RED => (3, i32::MIN + 43 - depth as i32),      // Human won, bad
			},
		};
	} else if depth == 0 {
		return (3, board.calculate_score(YELLOW));
	}

	if is_cpu_turn {
		let mut best_options = vec![(0, i32::MIN)];

		for col in board.get_columns().iter() {
			let mut copy_board = board.clone();

			if copy_board.drop(*col) == false {
				continue;
			}
			let new_value = minmax(copy_board, depth - 1, false).1;

			if new_value == best_options[0].1 {
				best_options.push((*col, new_value));
			} else if new_value > best_options[0].1 {
				best_options = vec![(*col, new_value)];
			}
		}

		*best_options.choose(&mut rand::thread_rng()).unwrap()
	} else {
		let mut best_options = vec![(0, i32::MAX)];

		for col in board.get_columns().iter() {
			let mut copy_board = board.clone();
			if copy_board.drop(*col) == false {
				continue;
			}

			let new_value = minmax(copy_board, depth - 1, true).1;

			if new_value == best_options[0].1 {
				best_options.push((*col, new_value));
			} else if new_value < best_options[0].1 {
				best_options = vec![(*col, new_value)];
			}
		}

		*best_options.choose(&mut rand::thread_rng()).unwrap()
	}
}

fn add(a: i64) -> Result<i64, String>{
    Ok(a+1)
}
fn div(a: i64)-> Result<i64, String> {
    if (a==0) {
        return Err(String::from("zero error"));
    }
    Ok(100/a)
}
fn main() {
    let a = 0;
    let b= add(a)
    .map( |x| x*2)
    .and_then( |x| {
        let b = x-2;
        let c = div(b);
        c
    })
    .map( |x| {
        x*2
    });
    println!("{:?}", b);
}use crate::traits::*;

pub fn when<R: Report>(f: impl Fn(&R) -> bool) -> impl for<'a> Fn(&'a R) -> Result<(), f64> {
    move |report| {
        if f(report) {
            Ok(())
        } else {
            Err(0.)
        }
    }
}
#![cfg_attr(not(feature = "std"), no_std)]

/// Edit this file to define custom logic or remove it if it is not needed.
/// Learn more about FRAME and the core library of Substrate FRAME pallets:
/// <https://docs.substrate.io/v3/runtime/frame>
pub use pallet::*;

#[cfg(test)]
mod mock;

#[cfg(test)]
mod tests;

#[cfg(feature = "runtime-benchmarks")]
mod benchmarking;

#[frame_support::pallet]
pub mod pallet {
	use frame_support::pallet_prelude::*;
	use frame_system::pallet_prelude::*;

	/// Configure the pallet by specifying the parameters and types on which it depends.
	#[pallet::config]
	pub trait Config: frame_system::Config {
		/// Because this pallet emits events, it depends on the runtime's definition of an event.
		type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
	}

	#[pallet::pallet]
	#[pallet::generate_store(pub(super) trait Store)]
	pub struct Pallet<T>(_);

	// The pallet's runtime storage items.
	// https://docs.substrate.io/v3/runtime/storage
	#[pallet::storage]
	#[pallet::getter(fn current_state)]
	// Learn more about declaring storage items:
	// https://docs.substrate.io/v3/runtime/storage#declaring-storage-items
	pub type


nceToPoint: function () {

		var v1 = new THREE.Vector3();

		return function ( point ) {

			var directionDistance = v1.subVectors( point, this.origin ).dot( this.direction );

			// point behind the ray

			if ( directionDistance < 0 ) {

				return this.origin.distanceTo( point );

			}

			v1.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );

			return v1.distanceTo( point );

		};

	}(),

	distanceSqToSegment: function ( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {

		// from http://www.geometrictools.com/LibMathematics/Distance/Wm5DistRay3Segment3.cpp
		// It returns the min distance between the ray and the segment
		// defined by v0 and v1
		// It can also set two optional targets :
		// - The closest point on the ray
		// - The closest point on the segment

		var segCenter = v0.clone().add( v1 ).multiplyScalar( 0.5 );
		var segDir = v1.clone().sub( v0 ).normalize();
		var segExtent = v0.distanceTo( v1 ) * 0.5;
		var diff = this.origin.clone().sub( segCenter );
		var a01 = - this.direction.dot( segDir );
		var b0 = diff.dot( this.direction );
		var b1 = - diff.dot( segDir );
		var c = diff.lengthSq();
		var det = Math.abs( 1 - a01 * a01 );
		var s0, s1, sqrDist, extDet;

		if ( det >= 0 ) {

			// The ray and segment are not parallel.

			s0 = a01 * b1 - b0;
			s1 = a01 * b0 - b1;
			extDet = segExtent * det;

			if ( s0 >= 0 ) {

				if ( s1 >= - extDet ) {

					if ( s1 <= extDet ) {

						// region 0
						// Minimum at interior points of ray and segment.

						var invDet = 1 / det;
						s0 *= invDet;
						s1 *= invDet;
						sqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;

					} else {

						// region 1

						s1 = segExtent;
						s0 = Math.max( 0, - ( a01 * s1 + b0 ) );
						sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;

					}

				} else {

					// region 5

					s1 = - segExtent;
					s0 = Math.max( 0, - ( a01 * s1 + b0 ) );
					sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;

				}

			} else {

				if ( s1 <= - extDet ) {

					// region 4

					s0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );
					s1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );
					sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;

				} else if ( s1 <= extDet ) {

					// region 3

					s0 = 0;
					s1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );
					sqrDist = s1 * ( s1 + 2 * b1 ) + c;

				} else {

					// region 2

					s0 = Math.max( 0, - ( a01 * segExtent + b0 ) );
					s1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );
					sqrDist = - s0 * s0 + s1 * (


 = reversed ? stack.peek().right : stack.peek().left;
        while (next != null) {
            stack.add(next);
            next = reversed ? stack.peek().right : stack.peek().left;
        }
    }
    public int getNext() {
        TreeNode resNode = stack.pop();
        TreeNode next = reversed ? resNode.left : resNode.right;
        if (next != null) {
            stack.add(next);
            dive();
        }
        return resNode.val;
    }

    public boolean hasNext() {
        return !stack.isEmpty();
    }
}
class Solution {
    public boolean twoSumBSTs(TreeNode root1, TreeNode root2, int target) {
        TreeIterator it1 = new TreeIterator(root1, false);
        TreeIterator it2 = new TreeIterator(root2, true);
        int v1 = it1.getNext();
        int v2 = it2.getNext();
        while (it1.hasNext() && it2.hasNext()) {
            int sum = v1 + v2;
            if (sum == target) {
                return true;
            } else if (sum < target) {
                v1 = it1.getNext();
            } else {
                v2 = it2.getNext();
            }
        }
        return v1 + v2 == target;
    }
}
class MyHashMap {

     private final static int SIZE = 1 << 13;
     private final static Random random = new Random();
     private int mask;
     private List<List<int[]>> buckets;

    /** Initialize your data structure here. */
    public MyHashMap() {
        mask = random.nextInt(SIZE);
        buckets = new ArrayList<>(SIZE);
        for (int i = 0; i < SIZE; i++) {
            buckets.add(new ArrayList<>());
        }
    }

    /** value will always be non-negative. */
    public void put(int key, int value) {
        List<int[]> bucket = getBucket(key);
        for (int[] pair : bucket) {
            if (pair[0] == key) {
                pair[1] = value;
                return;
            }
        }
        bucket.add(new int[] {key, value});
    }

    private List<int[]> getBucket(int key) {
        int bucket_id = (key ^ mask) % SIZE;
        return buckets.get(bucket_id);
    }

    /** Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key */
    public int get(int key) {
        for (int[] pair: getBucket(key)) {
            if (pair[0] == key) {
                return pair[1];
            }
        }
        return -1;
    }

    /** Removes the mapping of the specified value key if this map contains a mapping for the key */
    public void remove(int key) {
        List<int[]> bucket = getBucket(key);
        for (int i = 0; i < bucket.size(); i++) {
            if (bucket.get(i)[0] == key) {
                bucket.set(i, bucket.get(bucket.size() - 1));
                bucket.remove(bucket.size() - 1);
                break;
            }
        }
    }
}

/**
 * Your MyHashMap object will be instantiated and called as such:
 * MyHashMap obj = new MyHashMap();
 * obj.put(key,value);
 * int param_2 = obj.get(key);
 * obj.remove(key);
 */

class Solution {
    private int[] chargeTimes;
    private int[] runningCosts;
    private long sumRunningCosts = 0;
    private int k = 0;
    private TreeMap<Integer, Integer> chargeTimesInWindow = new TreeMap<>();

    private void init(int[] chargeTimes, int[] runningCosts) {
        this.chargeTimes = chargeTimes;
        this.runningCosts = runningCosts;
    }

    public int maximumRobot


 drm_i2c_encoder_prepare(struct drm_encoder *encoder)
{
	drm_i2c_encoder_dpms(encoder, DRM_MODE_DPMS_OFF);
}
EXPORT_SYMBOL(drm_i2c_encoder_prepare);

void drm_i2c_encoder_commit(struct drm_encoder *encoder)
{
	drm_i2c_encoder_dpms(encoder, DRM_MODE_DPMS_ON);
}
EXPORT_SYMBOL(drm_i2c_encoder_commit);

void drm_i2c_encoder_mode_set(struct drm_encoder *encoder,
		struct drm_display_mode *mode,
		struct drm_display_mode *adjusted_mode)
{
	get_slave_funcs(encoder)->mode_set(encoder, mode, adjusted_mode);
}
EXPORT_SYMBOL(drm_i2c_encoder_mode_set);

enum drm_connector_status drm_i2c_encoder_detect(struct drm_encoder *encoder,
	    struct drm_connector *connector)
{
	return get_slave_funcs(encoder)->detect(encoder, connector);
}
EXPORT_SYMBOL(drm_i2c_encoder_detect);

void drm_i2c_encoder_save(struct drm_encoder *encoder)
{
	get_slave_funcs(encoder)->save(encoder);
}
EXPORT_SYMBOL(drm_i2c_encoder_save);

void drm_i2c_encoder_restore(struct drm_encoder *encoder)
{
	get_slave_funcs(encoder)->restore(encoder);
}
EXPORT_SYMBOL(drm_i2c_encoder_restore);


_pcibios_Set_interrupt):
	move.l	d3,-(sp)
	moveq	#17,d3
	bra	_do_trap

SYM(emu_pcibios_Get_resource):
	move.l	d3,-(sp)
	moveq	#18,d3
	bra	_do_trap_d

SYM(emu_pcibios_Get_card_used):
	move.l	d3,-(sp)
	moveq	#19,d3
	bra	_do_trap_da

SYM(emu_pcibios_Set_card_used):
	move.l	d3,-(sp)
	moveq	#20,d3
	bra	_do_trap_da

SYM(emu_pcibios_Read_mem_byte):
	move.l	d3,-(sp)
	moveq	#21,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Read_mem_word):
	move.l	d3,-(sp)
	moveq	#22,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Read_mem_longword):
	move.l	d3,-(sp)
	moveq	#23,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Fast_read_mem_byte):
	move.l	d3,-(sp)
	moveq	#24,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Fast_read_mem_word):
	move.l	d3,-(sp)
	moveq	#25,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Fast_read_mem_longword):
	move.l	d3,-(sp)
	moveq	#26,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Write_mem_byte):
	move.l	d3,-(sp)
	moveq	#27,d3
	bra	_do_trap_ddd

SYM(emu_pcibios_Write_mem_word):
	move.l	d3,-(sp)
	moveq	#28,d3
	bra	_do_trap_ddd

SYM(emu_pcibios_Write_mem_longword):
	move.l	d3,-(sp)
	moveq	#29,d3
	bra	_do_trap_ddd

SYM(emu_pcibios_Read_io_byte):
	move.l	d3,-(sp)
	moveq	#30,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Read_io_word):
	move.l	d3,-(sp)
	moveq	#31,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Read_io_longword):
	move.l	d3,-(sp)
	moveq	#32,d3
	bra	_do_trap_dda

SYM(emu_pcibios_Fast_read_io_byte):
	move.l	d3,-(sp)
	moveq	#33,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Fast_read_io_word):
	move.l	d3,-(sp)
	moveq	#34,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Fast_read_io_longword):
	move.l	d3,-(sp)
	moveq	#35,d3
	bra	_do_trap_dd

SYM(emu_pcibios_Write_io_byte):
	move.l	d3,-(sp)
	moveq	#36,d3
	bra	_do_trap_ddd

SYM(emu_pcibios_Write_io_word):
	move.l	d3,-(sp)
	moveq	#37,d3
	bra	_do_t


| ( rem_lo >> 30 );
        rem_lo <<= 2;
        root   <<= 1;
        test_div = ( root << 1 ) + 1;

        if ( rem_hi >= test_div )
        {
          rem_hi -= test_div;
          root   += 1;
        }
      } while ( --count );
    }

    return (FT_Int32)root;
  }

#endif /* 0 */

  /* documentation is in ftcalc.h */

  FT_BASE_DEF( FT_Int )
  ft_corner_orientation( FT_Pos  in_x,
                         FT_Pos  in_y,
                         FT_Pos  out_x,
                         FT_Pos  out_y )
  {
#ifdef FT_LONG64

    FT_Int64  delta = (FT_Int64)in_x * out_y - (FT_Int64)in_y * out_x;

    return ( delta > 0 ) - ( delta < 0 );

#else

    FT_Int  result;

    if ( (FT_ULong)FT_ABS( in_x ) + (FT_ULong)FT_ABS( out_y ) <= 131071UL &&
         (FT_ULong)FT_ABS( in_y ) + (FT_ULong)FT_ABS( out_x ) <= 131071UL )
    {
      FT_Long  z1 = in_x * out_y;
      FT_Long  z2 = in_y * out_x;

      if ( z1 > z2 )
        result = +1;
      else if ( z1 < z2 )
        result = -1;
      else
        result = 0;
    }
    else /* products might overflow 32 bits */
    {
      FT_Int64  z1, z2;

      /* XXX: this function does not allow 64-bit arguments */
      ft_multo64( (FT_UInt32)in_x, (FT_UInt32)out_y, &z1 );
      ft_multo64( (FT_UInt32)in_y, (FT_UInt32)out_x, &z2 );

      if ( z1.hi > z2.hi )
        result = +1;
      else if ( z1.hi < z2.hi )
        result = -1;
      else if ( z1.lo > z2.lo )
        result = +1;
      else if ( z1.lo < z2.lo )
        result = -1;
      else
        result = 0;
    }

    /* XXX: only the sign of return value, +1/0/-1 must be used */
    return result;

#endif
  }

  /* documentation is in ftcalc.h */

  FT_BASE_DEF( FT_Int )
  ft_corner_is_flat( FT_Pos  in_x,
                     FT_Pos  in_y,
                     FT_Pos  out_x,
                     FT_Pos  out_y )
  {
    FT_Pos  ax = in_x + out_x;
    FT_Pos  ay = in_y + out_y;

    FT_Pos  d_in, d_out, d_hypot;

    /* The idea of this function is to compare the length of the */
    /* hypotenuse with the `in' and `out' length.  The `corner'  */
    /* represented by `in' and `out' is flat if the hypotenuse's */
    /* length isn't too large.                                   */
    /*                                                           */
    /* This approach has the advantage that the angle between    */
    /* `in' and `out' is not checked.  In case one of the two    */
    /* vectors is `dominant', this is, much larger than the      */
    /* other vector, we thus always have a flat corner.          */
    /*                                                           */
    /*                hypotenuse                                 */
    /*       x---------------------------x                       */
    /*        \                      /                           */
    /*         \                /                                */
    /*      in  \          /  out                                */
    /*           \    /                                          */
    /*            o                                              */
    /*              Point                                        */

    d_in    = FT_HYPOT(  in_x,  in_y );
    d_out   = FT_HYPOT( out_x, out_y );
    d_hypot = FT_HYPOT(    ax,    ay );

    /* now do a simple length comparison: */
    /*                                    */
    /*   d_in + d_out < 17/16 d_hypot     */

    return ( d_in + d_out - d_hypot ) < ( d_hypot >> 4 );
  }

/* END */


          print(result)
            select=input('是否继续翻译，y/n\n')
            if select=='y':
                continue
            else:
                exit()
    elif select=='2':
        print('翻译单个html\n')
        while True:
            sdir=input('请输入html文件路径：\n')
            tdir = input('请输入翻译后存放目录：\n')
            dest=input('请输入目标语言：\n')
            google_translatehtml(sdir,tdir,dest)
            select=input('是否继续翻译，y/n\n')
            if select=='y':
                continue
            else:
                exit()

    elif select=='3':
        print('翻译在线html页面\n')
        while True:
            url=input('请输入要翻译的html页面url：\n')
            tdir= input('请输入翻译后存放目录：\n')
            if tdir=='':
                tdir=os.getcwd()
            dest=input('请输入目标语言：\n')
            if dest=='':
                dest='zh-cn'
            google_translatehtml_url(url,tdir,dest)
            select=input('是否继续翻译，y/n\n')
            if select=='y':
                continue
            else:
                exit()
    elif select=='4':
        print('批量翻译html文档\n')
        sdir=input('请输入html文档源目录：\n')

        tdir = input('请输入翻译后存放目录：\n')
        google_translatehtmls(sdir,tdir, 'zh-cn')
    else:
        print('输入错误')

    # result=google_translate_text('hello world', 'zh-cn')
    # print(result)


.Safe(highWaterStamp), redact.Safe(i.OrigStamp))
		}
	}
	// Update info map.
	is.Infos[key] = i
	// Update the high water timestamp & min hops for the originating node.
	ratchetHighWaterStamp(is.highWaterStamps, i.NodeID, i.OrigStamp)
	changed := existingInfo == nil ||
		!bytes.Equal(existingInfo.Value.RawBytes, i.Value.RawBytes)
	is.processCallbacks(key, i.Value, i.OrigStamp, changed)
	return nil
}

// getHighWaterStamps returns a copy of the high water stamps map of
// gossip peer info maintained by this infostore. Does not modify
// the infoStore.
func (is *infoStore) getHighWaterStamps() map[roachpb.NodeID]int64 {
	copy := make(map[roachpb.NodeID]int64, len(is.highWaterStamps))
	for k, hws := range is.highWaterStamps {
		copy[k] = hws
	}
	return copy
}

// getHighWaterStampsWithDiff returns a copy of the high water stamps that are
// different from the ones provided in prevFull. It also returns a full map of
// updated high water stamps. The caller should use this in subsequent calls to
// this method.
func (is *infoStore) getHighWaterStampsWithDiff(
	prevFull map[roachpb.NodeID]int64,
) (newFull, diff map[roachpb.NodeID]int64) {
	diff = make(map[roachpb.NodeID]int64)
	for k, hws := range is.highWaterStamps {
		if prevFull[k] != hws {
			prevFull[k] = hws
			diff[k] = hws
		}
	}
	return prevFull, diff
}

// registerCallback registers a callback for a key pattern to be
// invoked whenever new info for a gossip key matching pattern is
// received. The callback method is invoked with the info key which
// matched pattern. Returns a function to unregister the callback.
// Note: the callback may fire after being unregistered.
func (is *infoStore) registerCallback(
	pattern string, method Callback, opts ...CallbackOption,
) func() {
	var matcher stringMatcher
	if pattern == ".*" {
		matcher = allMatcher{}
	} else {
		matcher = regexp.MustCompile(pattern)
	}
	cb := &callback{matcher: matcher, method: method}
	for _, opt := range opts {
		opt.apply(cb)
	}

	cb.cw = newCallbackWork()
	is.launchCallbackWorker(is.AmbientContext, cb.cw)
	is.callbacks = append(is.callbacks, cb)

	if err := is.visitInfos(func(key string, i *Info) error {
		if matcher.MatchString(key) {
			is.runCallbacks(key, i.Value, i.OrigStamp, cb)
		}
		return nil
	}, true /* deleteExpired */); err != nil {
		panic(err)
	}

	return func() {
		// Stop the callback worker's goroutine.
		cb.cw.stopperCh <- struct{}{}

		// Remove the callback from the list.
		for i, targetCB := range is.callbacks {
			if targetCB == cb {
				numCBs := len(is.callbacks)
				is.callbacks[i] = is.callbacks[numCBs-1]
				is.callbacks[numCBs-1] = nil // for GC
				is.callbacks = is.callbacks[:numCBs-1]
				break
			}
		}
	}
}

// processCallbacks processes callbacks for the specified key by
// matching each callback's regular expression against the key and invoking
// the corresponding callback method on a match.
func (is *infoStore) processCallbacks(
	key string, content roachpb.Value, origTimestamp int64, changed bool,
) {
	var callbacks []*callback
	for _, cb := range is.callbacks {
		if (changed || cb.redunda


3696400 219.3668471,315.3084269 219.8931905,316.3601340 220.2876399,317.1527891 220.6401790,317.8812346 220.9988814,318.5875389 221.3440246,319.2960574 221.8333883,320.3167668 222.6185890,321.9175757 223.0672752,322.8342214 220.2309378,325.4712386 217.3958330,328.1237546 216.8916774,327.1119016 216.5317424,326.3701714 216.1730400,325.6328694 214.9502470,323.1685536 214.3499444,321.9662863 213.6978703,320.6112448 213.2454862,319.6791002 212.9558124,319.0879301 212.5909468,318.3616987"/>
<polygon id="uswijs1660" fill="#EBECED" stroke="#FFFFFF" vector-effect="non-scaling-stroke" fill-rule="evenodd" data-district-id="4509" data-district_name="PHILADELPHIA WD 45 PCT 09" points="205.8988669,313.1053774 206.5373818,312.4854237 207.2510886,311.8234018 207.9586321,311.1215257 208.6674083,310.3997225 210.1441281,313.4064977 211.2054434,315.5364813 211.7441133,316.6214002 212.1558198,317.4782647 212.5909468,318.3616987 211.5320968,319.3890504 210.5570673,320.2237737 209.5610826,321.1249207 208.1916038,318.3484140 207.1512436,316.2184303 205.7041075,313.2957917 205.8988669,313.1053774"/>
<polygon id="uswijs1661" fill="#EBECED" stroke="#FFFFFF" vector-effect="non-scaling-stroke" fill-rule="evenodd" data-district-id="4510" data-district_name="PHILADELPHIA WD 45 PCT 10" points="209.3638580,309.6845617 210.0664709,308.9937562 210.7493613,308.3095930 211.4519742,307.6741406 212.1669137,306.9545515 212.8473389,306.2792448 214.2648912,304.8179255 214.3252913,305.0127681 215.8328274,308.0682539 214.3955526,309.3967261 213.6941723,310.0565339 212.9804655,310.7163417 212.2605954,311.4049331 211.5690764,312.0735974 210.8529043,312.7245487 210.1441281,313.4064977 208.6674083,310.3997225 209.3638580,309.6845617"/>
<polygon id="uswijs1662" fill="#EBECED" stroke="#FFFFFF" vector-effect="non-scaling-stroke" fill-rule="evenodd" data-district-id="4511" data-district_name="PHILADELPHIA WD 45 PCT 11" points="211.7909542,314.9873795 211.9154522,314.8656029 212.6217631,314.2013669 213.3120495,313.5349167 214.0454788,312.8773230 216.8620937,310.2159505 217.5375883,309.5649992 218.1539154,308.9959703 218.5200137,309.7443429 218.6358832,309.9878961 218.8417364,310.4417908 219.2435817,311.2477305 218.6543730,311.9186089 218.0528377,312.6293415 217.0704


rg.tmatesoft.svn.core.SVNErrorCode
import org.tmatesoft.svn.core.SVNException
import org.tmatesoft.svn.core.SVNURL
import org.tmatesoft.svn.core.internal.wc2.compat.SvnCodec
import org.tmatesoft.svn.core.wc.ISVNEventHandler
import org.tmatesoft.svn.core.wc.ISVNExternalsHandler
import org.tmatesoft.svn.core.wc.SVNClientManager
import org.tmatesoft.svn.core.wc.SVNEvent
import org.tmatesoft.svn.core.wc.SVNEventAction
import org.tmatesoft.svn.core.wc.SVNRevision
import org.tmatesoft.svn.core.wc.SVNStatusType
import org.tmatesoft.svn.core.wc.SVNUpdateClient
import org.tmatesoft.svn.core.wc2.SvnTarget

@Suppress("ALL")
open class SvnUpdateTask constructor(
    protected open val svnUrl: SVNURL,
    protected open val projectName: String,
    protected open val username: String,
    protected open val privateKey: String,
    protected open val passPhrase: String?,
    protected open val revision: SVNRevision,
    protected open val workspace: File,
    protected open val strategy: CodePullStrategy,
    protected open val update: Boolean,
    protected open val enableSubmodule: Boolean,
    protected open val svnDepth: SVNDepth,
    protected open val pipelineId: String,
    protected open val buildId: String,
    protected open val repositoryConfig: RepositoryConfig,
    protected open val svnVersion: SVNVersion?,
    protected open val svnRepo: CodeSvnRepository
) {
    companion object {
        private val SVN_ERROR_CODES_SHOULD_RETRY = HashSet<Int>()
        private val SVN_ERROR_CATEGORIES_SHOULD_RETRY = HashSet<Int>()

        init {
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.UNKNOWN.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.IO_ERROR.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.RA_SVN_CONNECTION_CLOSED.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.RA_SVN_IO_ERROR.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.RA_SVN_MALFORMED_DATA.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.APMOD_CONNECTION_ABORTED.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.BASE.code)
            SVN_ERROR_CODES_SHOULD_RETRY.add(SVNErrorCode.PLUGIN_LOAD_FAILURE.code)

            SVN_ERROR_CATEGORIES_SHOULD_RETRY.add(SVNErrorCode.IO_CATEGORY)
            SVN_ERROR_CATEGORIES_SHOULD_RETRY.add(SVNErrorCode.FS_CATEGORY)
            SVN_ERROR_CATEGORIES_SHOULD_RETRY.add(SVNErrorCode.RA_DAV_CATEGORY)
        }

        private val logger = LoggerFactory.getLogger(SvnUpdateTask::class.java)
    }

    private val commitResourceApi = ApiFactory.create(CommitSDKApi::class)

    protected open fun preUpdate() {}

    protected open fun cleanupWorkspace(workspace: File) {
        if (workspace.exists()) {
            LoggerService.addNormalLine("Clean up the workspace(${workspace.path})")
            Files.list(workspace.toPath()).forEach(DirectoryUtil::deleteRecursively)
            val deleteSuccess = true
            LoggerService.addNormalLine("delete the file: ${workspace.canonicalPath} ($deleteSuccess)")
        }
    }

    fun perform(): Map<String, String>? {
        val manager = SvnUtils.getClient


n(n),Con(n),Hmn(n)}break;case 2:switch(t.g){case 1:Con(n),RRn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Con(n),Hmn(n)}break;case 1:switch(t.g){case 2:Con(n),RRn(n);break;case 4:Con(n),nEn(n),Hmn(n);break;case 3:Con(n),nEn(n),Con(n),Hmn(n)}break;case 4:switch(t.g){case 2:nEn(n),Hmn(n);break;case 1:nEn(n),Con(n),Hmn(n);break;case 3:Con(n),RRn(n)}break;case 3:switch(t.g){case 2:Con(n),nEn(n),Hmn(n);break;case 1:Con(n),nEn(n),Con(n),Hmn(n);break;case 4:Con(n),RRn(n)}}return n}function Mzn(n,t){var e;if(n.d)throw Hp(new Fy((ED(Jat),AJn+Jat.k+$Jn)));if(!PC(n.a,t))throw Hp(new dy(LJn+t+NJn));if(t==n.c)return n;switch(e=n.c,n.c=t,e.g){case 0:switch(t.g){case 2:Zon(n);break;case 1:Pon(n),Zon(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 2:switch(t.g){case 1:Pon(n),KRn(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 1:switch(t.g){case 2:Pon(n),KRn(n);break;case 4:Pon(n),tEn(n),Zon(n);break;case 3:Pon(n),tEn(n),Pon(n),Zon(n)}break;case 4:switch(t.g){case 2:tEn(n),Zon(n);break;case 1:tEn(n),Pon(n),Zon(n);break;case 3:Pon(n),KRn(n)}break;case 3:switch(t.g){case 2:Pon(n),tEn(n),Zon(n);break;case 1:Pon(n),tEn(n),Pon(n),Zon(n);break;case 4:Pon(n),KRn(n)}}return n}function Szn(n,t,i){var r,c,a,u,o,s,f,l;for(s=new AL((!n.a&&(n.a=new eU(HOt,n,10,11)),n.a));s.e!=s.i.gc();)for(o=BB(kpn(s),33),c=new oz(ZL(dLn(o).a.Kc(),new h));dAn(c);){if(r=BB(U5(c),79),!r.b&&(r.b=new hK(NOt,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new hK(NOt,r,5,8)),r.c.i<=1)))throw Hp(new ck("Graph must not contain hyperedges."));if(!nAn(r)&&o!=PTn(BB(Wtn((!r.c&&(r


oded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("C=SE,O=Foo,CN=Test Testsson", msg.getRequestDN());
        assertEquals(null, msg.getRequestAltNames());
        assertEquals(null, msg.getPassword());

        // oid for unstructuredName, will be handles specially by EJBCA
        dn = new X500Name("CN=Test + 1.2.840.113549.1.9.2=AttrValue1");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.getPrivate(), null);

        msg = new PKCS10RequestMessage(basicpkcs10.toASN1Structure().getEncoded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("CN=Test,unstructuredName=AttrValue1", msg.getRequestDN());

        dn = new X500Name("CN=Test + 1.2.840.113549.1.9.2=AttrValue1 AttrValue2");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.getPrivate(), null);

        msg = new PKCS10RequestMessage(basicpkcs10.toASN1Structure().getEncoded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("CN=Test,unstructuredName=AttrValue1 AttrValue2", msg.getRequestDN());

        dn = new X500Name("CN=Test+1.2.840.113549.1.9.2=AttrValue1");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.getPrivate(), null);

        msg = new PKCS10RequestMessage(basicpkcs10.toASN1Structure().getEncoded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("CN=Test,unstructuredName=AttrValue1", msg.getRequestDN());

        dn = new X500Name("CN=Test+1.2.840.113549.1.9.2=AttrValue1 AttrValue2");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.getPrivate(), null);

        msg = new PKCS10RequestMessage(basicpkcs10.toASN1Structure().getEncoded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("CN=Test,unstructuredName=AttrValue1 AttrValue2", msg.getRequestDN());

        // Completely unknown oid
        dn = new X500Name("CN=Test + 1.2.840.113549.1.9.3=AttrValue1");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.getPrivate(), null);

        msg = new PKCS10RequestMessage(basicpkcs10.toASN1Structure().getEncoded());
        username = msg.getUsername();
        assertEquals("Test", username);
        assertEquals("CN=Test+1.2.840.113549.1.9.3=AttrValue1", msg.getRequestDN());

        dn = new X500Name("CN=Test + 1.2.840.113549.1.9.3=AttrValue1 AttrValue2");
        basicpkcs10 = CertTools.genPKCS10CertificationRequest("SHA1WithRSA", dn,
                keyPair.getPublic(), new DERSet(), keyPair.


                  ; source
				mov rdx, rdi                                      ; effect
				call #$(1) ]], {constructor}, [[ #ENDL
				jmp #L(Hook-CGameEffect::DecodeEffect()-Success)
			]]}
		end

		local vtblsize = _G["CGameEffect::vtbl"].sizeof
		local newvtbl = EEex_Malloc(vtblsize)
		EEex_Memcpy(newvtbl, EEex_Label("Data-CGameEffect::vftable"), vtblsize)

		EEex_WriteArgs(newvtbl, args, {
			{ "__vecDelDtor",  0  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "Copy",          1  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.DEFAULT, writeCopy(newvtbl) },
			{ "ApplyEffect",   2  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "ResolveEffect", 3  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "OnAdd",         4  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "OnAddSpecific", 5  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "OnLoad",        6  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "CheckSave",     7  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "UsesDice",      8  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "DisplayString", 9  * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
			{ "OnRemove",      10 * EEex_PtrSize, EEex_WriteType.JIT, EEex_WriteFailType.NOTHING                     },
		})

		return genDecode(writeConstructor(newvtbl))
	end

	--[[
	+----------------------------------------------------------------------------------------------------------------------+
	| New Opcode #400 (SetTemporaryAIScript)                                                                               |
	+----------------------------------------------------------------------------------------------------------------------+
	|   Temporarily set a script level and restore the old script when the effect is removed.                              |
	|   NOTE: This is dangerous! Script changes from any other mechanism will be lost when the effect expires.             |
	+----------------------------------------------------------------------------------------------------------------------+
	|   param2   -> Script level to set                                                                                |
	|   resource -> Script to set                                                                                |
	+----------------------------------------------------------------------------------------------------------------------+
	|   [EEex.dll] EEex::Opcode_Hook_SetTemporaryAIScript_ApplyEffect(pEffect: CGameEffect*, pSprite: CGameSprite*) -> int |
	|       return:                                                                                |
	|           ->  0 - Halt effect list processing                                                                        |


 * correctOrderDataDisplayed_WhenNavigateToMyAccountOrderSection
 *
 * The tests may fail because the hard-coded pauses were not enough.
 * This is the expected behavior showing that this is not the best practice.
 */
public class ProductPurchaseTests {
    private Driver driver;
    private static String purchaseEmail;
    private static String purchaseOrderNumber;
    private static Stopwatch stopwatch;

    @BeforeMethod
    public void testInit() {
        stopwatch = Stopwatch.createStarted();
        driver = new LoggingDriver(new WebCoreDriver());
        driver.start(Browser.CHROME);

        System.out.printf("end browser init: %d", stopwatch.elapsed(TimeUnit.SECONDS));
    }

    @AfterMethod
    public void testCleanup() {
        driver.quit();
        System.out.printf("afterTest: %d", stopwatch.elapsed(TimeUnit.SECONDS));
        stopwatch.stop();
    }

    @Test(priority = 1)
    public void completePurchaseSuccessfully_whenNewClient() throws InterruptedException {
        System.out.printf("start completePurchaseSuccessfully_whenNewClient: %d", stopwatch.elapsed(TimeUnit.SECONDS));
        driver.goToUrl("http://demos.bellatrix.solutions/");
        var addToCartFalcon9 = driver.findElement(By.cssSelector("[data-product_id*='28']"));
        addToCartFalcon9.click();
        var viewCartButton = driver.findElement(By.cssSelector("[class*='added_to_cart wc-forward']"));
        viewCartButton.click();

        var couponCodeTextField = driver.findElement(By.id("coupon_code"));
        couponCodeTextField.typeText("happybirthday");
        var applyCouponButton = driver.findElement(By.cssSelector("[value*='Apply coupon']"));
        applyCouponButton.click();
        Thread.sleep(4000);
        var messageAlert = driver.findElement(By.cssSelector("[class*='woocommerce-message']"));
        Assert.assertEquals(messageAlert.getText(), "Coupon code applied successfully.");

        var quantityBox = driver.findElement(By.cssSelector("[class*='input-text qty text']"));
        quantityBox.typeText("2");

        var updateCart = driver.findElement(By.cssSelector("[value*='Update cart']"));
        updateCart.click();
        Thread.sleep(4000);
        var totalSpan = driver.findElement(By.xpath("//*[@class='order-total']//span"));
        Assert.assertEquals("114.00€", totalSpan.getText());

        var proceedToCheckout = driver.findElement(By.cssSelector("[class*='checkout-button button alt wc-forward']"));
        proceedToCheckout.click();

        var billingFirstName = driver.findElement(By.id("billing_first_name"));
        billingFirstName.typeText("Anton");
        var billingLastName = driver.findElement(By.id("billing_last_name"));
        billingLastName.typeText("Angelov");
        var billingCompany = driver.findElement(By.id("billing_company"));
        billingCompany.typeText("Space Flowers");
        var billingCountryWrapper = driver.findElement(By.id("select2-billing_country-container"));
        billingCountryWrapper.click();
        var billingCountryFilter = driver.findElement(By.className("select2-search__field"));
        billingCountryFilter.typeText("Germany");
        var germanyOption = driver.findElement(By.xpath("//*[contains(text(),'Germany')]"));
        germanyOption.click();
        var billingAddress1 = driver.findElement(By.id("billing_address_1"));
        billingAddress1.typeText("1 Willi Brandt Avenue Tiergarten");
        var billingAddress2 = driver.findElement(By.id("billing_address_2"));
        billingAddress2.typeText("Lotzowplatz 17");
        var billingCity = driver.findElemen


= 0) {
    int l = r;
    while (l >= 0 and ip[r].S == ip[l].S) l--;
    l++;

    for (int i=l; i<=r; i++) {
      int RK = ip[i].F;
      {
        auto &up = dp2[i][0];
        int a1, a2, a3;
        up = (a1 = bjtSum2Down.qry(2*N) - bjtSum2Down.qry(RK));
        up += (a2 = tDown.qry(RK+1, 2*N));
        up -= (a3 = bjtDown.qry(RK) * (bjtSumDown.qry(2*N) - bjtSumDown.qry(RK))) % MOD;
        up = (up % MOD + MOD) % MOD;
        cout << a1 << ' ' << a2 << ' ' << a3  << ' ' << bjtSumDown.qry(2*N) << endl;
      }

      {
        auto &down = dp2[i][1];
        down = bjtSum2Up.qry(RK-1) - bjtSum2Up.qry(0);
        down -= tUp.qry(0, RK-1);
        down += bjtUp.qry(RK-1) * bjtSumUp.qry(RK-1) % MOD;
        down = (down % MOD + MOD) % MOD;
      }

      //cout << "i = " << i << ": " << dp[i][0] << ' ' << dp[i][1] << endl;
      cout << "i = " << i << ": " << dp2[i][0] << ' ' << dp2[i][1] << endl;
    }

    for (int i=l; i<=r; i++) {
      int RK = ip[i].F;
      bjtUp.add(RK, 1);
      bjtSumUp.add(RK, dp[i][0]);
      bjtSum2Up.add(RK, dp2[i][0]);

      bjtDown.add(RK, 1);
      bjtSumDown.add(RK, dp[i][1]);
      bjtSum2Down.add(RK, dp2[i][1]);

      tUp.add(0, RK+1, 1);
      tDown.add(0, RK, 1);
    }

    for (int i=l; i<=r; i++) {
      int RK = ip[i].F;
      tUp.addv(RK, dp[i][0] * bjtUp.qry(RK));
      tDown.addv(RK, dp[i][1] * bjtDown.qry(RK+1));
      tUp.adda(RK, dp[i][0]);
      tDown.adda(RK, dp[i][1]);
    }

    r = l-1;
  }
}

int main() {
  IOS;
  cin>>N;
  ls.init();
  ip.resize(N);
  for (int i=0; i<N; i++) {
    cin>>ip[i].S>>ip[i].F;
    ls.add(ip[i].F);
    ls.add(ip[i].S);
  }
  sort(ALL(ip));
  ls.make();
  for (auto &i: ip) {
    swap(i.F, i.S);
    i.F = ls.qry(i.F);
    i.S = ls.qry(i.S);
  }
  build_dp();
  for (int i=0; i<N; i++) {
    cout << dp[i][0] << ' ' << dp[i][1] << endl;
  }
  build_dp2();
  int ans = 0;
  REP(i,N) ans += dp2[i][0] + dp2[i][


return fmt.Errorf("failed to generate CI/CD files: %w", err)
	}

	ui.PrintSuccess("Full deployment suite generated successfully!")
	g.showDeploymentSummary(config)

	return nil
}

// generateSpecificDeployment generates specific deployment type
func (g *DeploymentGenerator) generateSpecificDeployment() error {
	deploymentType := models.DeploymentType(g.options.Type)

	ui.PrintStep(1, 2, fmt.Sprintf("Generating %s deployment...", deploymentType))

	config, err := g.getSpecificDeploymentConfig()
	if err != nil {
		return fmt.Errorf("failed to get deployment config: %w", err)
	}

	// Create directories
	if err := g.createDeploymentDirectories(); err != nil {
		return fmt.Errorf("failed to create deployment directories: %w", err)
	}

	ui.PrintStep(2, 2, "Creating deployment files...")

	switch deploymentType {
	case models.DockerDeployment:
		return g.generateDockerFiles(config)
	case models.KubernetesDeployment:
		return g.generateKubernetesFiles(config)
	case models.CloudDeployment:
		return g.generateCloudFiles(config)
	case models.CICDDeployment:
		return g.generateCICDFiles(config)
	}

	return fmt.Errorf("unsupported deployment type: %s", deploymentType)
}

// generateInteractiveDeployment handles interactive deployment generation
func (g *DeploymentGenerator) generateInteractiveDeployment() error {
	ui.PrintStep(1, 1, "Interactive deployment generation...")

	// Ask what to generate
	actionPrompt := promptui.Select{
		Label: ui.IconDocker + " What would you like to generate?",
		Items: []string{
			"Full deployment suite",
			"Docker configurations",
			"Kubernetes manifests",
			"Cloud deployment",
			"CI/CD pipelines",
		},
	}

	_, action, err := actionPrompt.Run()
	if err != nil {
		return err
	}

	switch action {
	case "Full deployment suite":
		g.options.FullSuite = true
		return g.generateFullDeploymentSuite()
	case "Docker configurations":
		g.options.Type = string(models.DockerDeployment)
		return g.generateInteractiveDocker()
	case "Kubernetes manifests":
		g.options.Type = string(models.KubernetesDeployment)
		return g.generateInteractiveKubernetes()
	case "Cloud deployment":
		g.options.Type = string(models.CloudDeployment)
		return g.generateInteractiveCloud()
	case "CI/CD pipelines":
		g.options.Type = string(models.CICDDeployment)
		return g.generateInteractiveCICD()
	}

	return nil
}

// generateInteractiveDocker handles interactive Docker generation
func (g *DeploymentGenerator) generateInteractiveDocker() error {
	// Multi-stage build
	multiStagePrompt := promptui.Select{
		Label: ui.IconBuild + " Use multi-stage build?",
		Items: []string{"Yes", "No"},
	}
	_, multiStageAnswer, _ := multiStagePrompt.Run()
	g.options.MultiStage = multiStageAnswer == "Yes"

	// Security hardening
	securityPrompt := promptui.Select{
		Label: ui.IconGear + " Enable security hardening?",
		Items: []string{"Yes", "No"},
	}
	_, securityAnswer, _ := securityPrompt.Run()
	g.options.Security = securityAnswer == "Yes"

	// Optimization
	optimizePrompt := promptui.Select{
		Label: ui.IconSpeed + " Enable image optimization?",
		Items: []string{"Yes", "No"},
	}
	_, optimizeAnswer, _ := optimizePrompt.Run()
	g.options.Optimize = optimizeAnswer == "Yes"

	return g.generateSpecificDeployment()
}

// generateInteractiveKubernetes hand


], "right", 2, 0)
                bframe ["toolbarPluginsLabel"..i].color = notInstalledColor

                DF:NewLabel(bframe, _, "$parentToolbarPluginsLabel2"..i, "toolbarPluginsLabel2"..i, pluginObject.__author)
                bframe ["toolbarPluginsLabel2"..i]:SetPoint("topleft", anchorFrame, "topleft", 180, y-4)
                bframe ["toolbarPluginsLabel2"..i].color = notInstalledColor

                DF:NewLabel(bframe, _, "$parentToolbarPluginsLabel3"..i, "toolbarPluginsLabel3"..i, pluginObject.__version)
                bframe ["toolbarPluginsLabel3"..i]:SetPoint("topleft", anchorFrame, "topleft", 290, y-4)
                bframe ["toolbarPluginsLabel3"..i].color = notInstalledColor

                local installButton = DF:CreateButton(bframe, function() Details:CopyPaste (allExistentRaidPlugins [o] [5]) end, 120, 20, "Install")
                installButton:SetTemplate(options_button_template)
                installButton:SetPoint("topleft", anchorFrame, "topleft", 510, y-0)

                i = i + 1
                y = y - 20
            end
        end

        y = y - 10

        -- solo
        DF:NewLabel(anchorFrame, _, "$parentSoloPluginsLabel", "soloLabel", Loc ["STRING_OPTIONS_PLUGINS_SOLO_ANCHOR"], "GameFontNormal", 16)
        anchorFrame.soloLabel:SetPoint("topleft", anchorFrame, "topleft", 10, y)

        y = y - 30

        do
            local descbar = anchorFrame:CreateTexture(nil, "artwork")
            descbar:SetTexture(.3, .3, .3, .8)
            descbar:SetPoint("topleft", anchorFrame, "topleft", 5, y+3)
            descbar:SetSize(650, 20)
            DF:NewLabel(anchorFrame, _, "$parentDescNameLabel3", "descNameLabel", Loc ["STRING_OPTIONS_PLUGINS_NAME"], "GameFontNormal", 12)
            anchorFrame.descNameLabel:SetPoint("topleft", anchorFrame, "topleft", 15, y)
            DF:NewLabel(anchorFrame, _, "$parentDescAuthorLabel3", "descAuthorLabel", Loc ["STRING_OPTIONS_PLUGINS_AUTHOR"], "GameFontNormal", 12)
            anchorFrame.descAuthorLabel:SetPoint("topleft", anchorFrame, "topleft", 180, y)
            DF:NewLabel(anchorFrame, _, "$parentDescVersionLabel3", "descVersionLabel", Loc ["STRING_OPTIONS_PLUGINS_VERSION"], "GameFontNormal", 12)
            anchorFrame.descVersionLabel:SetPoint("topleft", anchorFrame, "topleft", 290, y)
            DF:NewLabel(anchorFrame, _, "$parentDescEnabledLabel3", "descEnabledLabel", Loc ["STRING_ENABLED"], "GameFontNormal", 12)
            anchorFrame.descEnabledLabel:SetPoint("topleft", anchorFrame, "topleft", 400, y)
            DF:NewLabel(anchorFrame, _, "$parentDescOptionsLabel3", "descOptionsLabel", Loc ["STRING_OPTIONS_PLUGINS_OPTIONS"], "GameFontNormal", 12)
            anchorFrame.descOptionsLabel:SetPoint("topleft", anchorFrame, "topleft", 510, y)
        end

        y = y - 30

        local i = 1
        local allplugins_solo = Details.SoloTables.NameTable
        for absName, pluginObject in pairs(allplugins_solo) do

            local bframe = CreateFrame("frame", "OptionsPluginSoloBG", anchorFrame,"BackdropTemplate")
            bframe:SetSize(640, 20)
            bframe:SetPoint("topleft", anchorFrame, "topleft", 10, y)
            bframe:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = 1, right = 1, top = 0, bottom = 1}})
            bframe:SetBackdropColor


5 }, rot = { x = 0.0, y = 0.0, z = 0.0 }, level = 32, drop_tag = "鸟类" }
}

-- NPC
npcs = {
}

-- 装置
gadgets = {
}

-- 区域
regions = {
}

-- 触发器
triggers = {
}

-- 变量
variables = {
}

--================================================================
--
-- 初始化配置
--
--================================================================

-- 初始化时创建
init_config = {
	suite = 1,
	end_suite = 0,
	rand_suite = false
}

--================================================================
--
-- 小组配置
--
--================================================================

suites = {
	{
		-- suite_id = 1,
		-- description = ,
		monsters = { 177001, 177002, 177003, 177004, 177005 },
		gadgets = { },
		regions = { },
		triggers = { },
		rand_weight = 100
	}
}

--================================================================
--
-- 触发器
--
--================================================================


  {
                cmds[i].Execute();
                Debuger.LogVerbose("{0} End----------------", cmds[i].GetType().Name);
            }
        }

        #endregion
        //====================================================================

        protected abstract void Execute();
    }

    public class MvvmCommand<T>: MvvmCommandBase where T:MvvmCommandBase, new ()
    {
        protected MvvmViewModel m_vm;

        public static void Send(MvvmViewModel vm)
        {
            MvvmCommand<T> cmd = (new T()) as MvvmCommand<T>;
            cmd.m_vm = vm;

            Debuger.LogVerbose("{0} Begin--------------", typeof(T).Name);
            cmd.Execute();
            Debuger.LogVerbose("{0} End----------------", typeof(T).Name);
        }

        public static void SendAsync(MvvmViewModel vm)
        {
            MvvmCommand<T> cmd = (new T()) as MvvmCommand<T>;
            cmd.m_vm = vm;

            Debuger.LogVerbose("{0} Begin--------------", typeof(T).Name);
            PumpAsyncCommand(cmd);
        }

        protected override void Execute()
        {
            throw new NotImplementedException();
        }
    }
}


/ limitations under the License.
// </copyright>
// <author>Anton Angelov</author>
// <site>http://automatetheplanet.com/</site>

using BehavioursDesignPattern.Behaviours.Core;
using BehavioursDesignPattern.Pages.ItemPage;

namespace BehavioursDesignPattern.Behaviours;

public class ItemPageNavigationBehaviour : Behaviour
{
    private readonly ItemPage _itemPage;

    // This version is compatible only with UnityBehaviorEngine.
    public ItemPageNavigationBehaviour(ItemPage itemPage)
    {
        _itemPage = itemPage;
    }

    public override void PerformAct()
    {
        _itemPage.Navigate(PurchaseTestContext.ItemUrl);
    }
}


专业续写';
      case AIFeatureType.sceneBeatGeneration:
        return '场景节拍生成';
      case AIFeatureType.novelCompose:
        return '设定编排';
      case AIFeatureType.settingTreeGeneration:
        return '设定树生成';
    }
  }

  /// 获取英文显示名称
  String get englishName {
    switch (this) {
      case AIFeatureType.sceneToSummary:
        return 'Scene Beat Completions';
      case AIFeatureType.summaryToScene:
        return 'Summary Expansions';
      case AIFeatureType.textExpansion:
        return 'Text Expansion';
      case AIFeatureType.textRefactor:
        return 'Text Refactor';
      case AIFeatureType.textSummary:
        return 'Text Summary';
      case AIFeatureType.aiChat:
        return 'AI Chat';
      case AIFeatureType.novelGeneration:
        return 'Novel Generation';
      case AIFeatureType.professionalFictionContinuation:
        return 'Professional Fiction Continuation';
      case AIFeatureType.sceneBeatGeneration:
        return 'Scene Beat Generation';
      case AIFeatureType.novelCompose:
        return 'Novel Compose';
      case AIFeatureType.settingTreeGeneration:
        return 'Setting Tree Generation';
    }
  }
}

/// AIFeatureType工具类
class AIFeatureTypeHelper {
  /// 从API字符串解析枚举
  static AIFeatureType fromApiString(String apiString) {
    switch (apiString) {
      case 'SCENE_TO_SUMMARY':
        return AIFeatureType.sceneToSummary;
      case 'SUMMARY_TO_SCENE':
        return AIFeatureType.summaryToScene;
      case 'TEXT_EXPANSION':
        return AIFeatureType.textExpansion;
      case 'TEXT_REFACTOR':
        return AIFeatureType.textRefactor;
      case 'TEXT_SUMMARY':
        return AIFeatureType.textSummary;
      case 'AI_CHAT':
        return AIFeatureType.aiChat;
      case 'NOVEL_GENERATION':
        return AIFeatureType.novelGeneration;
      case 'PROFESSIONAL_FICTION_CONTINUATION':
        return AIFeatureType.professionalFictionContinuation;
      case 'SCENE_BEAT_GENERATION':
        return AIFeatureType.sceneBeatGeneration;
      case 'NOVEL_COMPOSE':
        return AIFeatureType.novelCompose;
      case 'SETTING_TREE_GENERATION':
        return AIFeatureType.settingTreeGeneration;
      default:
        // 尝试直接匹配枚举的名称
        try {
          return AIFeatureType.values.firstWhere(
            (t) => t.toString().split('.').last.toUpperCase() == apiString.toUpperCase()
          );
        } catch (e) {
          throw ArgumentError('未知的功能类型: $apiString');
        }
    }
  }

  /// 批量转换枚举列表为字符串列表
  static List<String> toApiStringList(Iterable<AIFeatureType> features) {
    return features.map((f) => f.toApiString()).toList();
  }

  /// 批量从字符串列表解析枚举列表
  static List<AIFeatureType> fromApiStringList(Iterable<String> apiStrings) {
    return apiStrings.map((s) => fromApiString(s)).toList();
  }

  /// 获取所有功能类型
  static List<AIFeatureType> get allFeatures => AIFeatureType.values;

  /// 获取功能类型的API路径格式
  static String toPathString(AIFeatureType featureType) {
    return featureType.toString().split('.').last;
  }
} part of 'novel_imp


: [
            { include: "#tag-stuff" },
            language ? {
                contentName: language,
                begin: "(>)",
                beginCaptures: {
                    1: { name: "punctuation.definition.tag.end.html" },
                },
                end: `(?=</${block}>)`,
                patterns: [
                    { include: language },
                ],
            } : {
                match: ">",
                captures: {
                    0: { name: "punctuation.definition.tag.end.html" },
                },
            },
        ],
    };
}
export interface Site {
     SiteID: number;
     Name: string;
}import { Colours } from '../models/colours.enum';

export class Player {
  // name is a string, results is an array of Result
  name: string;
  score: number;
  rolls: number[];
  colour: Colours;

  // TO(DONE)DO: receives a name and initialises the results array to an empty array
  constructor(_name: string) {
    this.name = _name;
    this.score= 0;
    this.rolls = [];
    this.colour = Colours.Brown;
  }

  // return the total number of rolls
  totalRolls(): number {
    return this.rolls.length;
  }
}
import { Prompt, IPromptFeatures, IPromptOptions, IPromptContext, Session  } from "botbuilder";

interface RcdaPromptContext<TOptions extends IPromptOptions> extends IPromptContext {
    options: TOptions;
}

export class RcdaPromptAdaptiveCard extends Prompt<IPromptFeatures> {

    constructor(features?: IPromptFeatures) {
        super({
            defaultRetryPrompt: "retry_adaptive_card",
            defaultRetryNamespace: "BotBuilder"
            // recognizeScore: 1.0
        });

        this.updateFeatures(features);

        // Default recognizer logic
        this.onRecognize((context, cb) => {

            const form = context.message.value;

            const isCurrentCard = form && form.rcdaAdaptiveCardId === context.dialogData.options.rcdaAdaptiveCardId;

            if (isCurrentCard && !this.features.disableRecognizer) {
                cb(null, 1.0, form);
            } else {
                cb(null, 0.0);
            }
        });

        this.onFormatMessage((session, text, speak, callback) => {
            const context = <RcdaPromptContext<IRcdaPromptAdaptiveCardOptions>>session.dialogData;
            const options = context.options;
            const turnZero = context.turns === 0 || context.isReprompt;
            const message = session.message.text

            if (!turnZero) {
                callback(null, null);
            } else {
              callback(null, null);
            }
        });

        // Add repeat intent handler
        this.matches('BotBuilder.RepeatIntent', (session) => {
            // Set to turn-0 and re-prompt.
            (<IPromptContext>session.dialogData).turns = 0;
            this.sendPrompt(session);
        });
    }
}

export interface IRcdaPromptAdaptiveCardOptions extends IPromptOptions {
    //TODO define options? specify whether can be re-submitted? can that be implemented here?
    rcdaAdaptiveCardId: string;
}// по мотивам https://gist.github.com/kethinov/6658166

let fs = require("fs");
let path = require("pat


                Ext.Array.each(response.result.data, function (rec) {
                    let version = 'not correctly installed';
                    let pkg = rec.Package;
                    if (rec.OldVersion && rec.OldVersion !== 'unknown') {
                        version = rec.OldVersion;
                    }
                    if (rec.ExtraInfo) {
                        text += `${pkg}: ${version} (${rec.ExtraInfo})\n`;
                    } else {
                        text += `${pkg}: ${version}\n`;
                    }
                });

                win.show();
                panel.update(Ext.htmlEncode(text));
            },
        });
    },

    initComponent: function () {
        var me = this;

        var node_command = function (cmd) {
            Proxmox.Utils.API2Request({
                params: { command: cmd },
                url: '/nodes/localhost/status',
                method: 'POST',
                waitMsgTarget: me,
                failure: function (response, opts) {
                    Ext.Msg.alert(gettext('Error'), response.htmlStatus);
                },
            });
        };

        var restartBtn = Ext.create('Proxmox.button.Button', {
            text: gettext('Reboot'),
            dangerous: true,
            confirmMsg: gettext('Reboot backup server?'),
            handler: function () {
                node_command('reboot');
            },
            iconCls: 'fa fa-undo',
        });

        var shutdownBtn = Ext.create('Proxmox.button.Button', {
            text: gettext('Shutdown'),
            dangerous: true,
            confirmMsg: gettext('Shutdown backup server?'),
            handler: function () {
                node_command('shutdown');
            },
            iconCls: 'fa fa-power-off',
        });

        var consoleBtn = Ext.create('Proxmox.button.Button', {
            text: gettext('Console'),
            iconCls: 'fa fa-terminal',
            handler: function () {
                Proxmox.Utils.openXtermJsViewer('shell', 0, Proxmox.NodeName);
            },
        });

        let version_btn = new Ext.Button({
            text: gettext('Package versions'),
            iconCls: 'fa fa-gift',
            handler: function () {
                Proxmox.Utils.checked_command(function () {
                    me.showVersions();
                });
            },
        });

        me.tbar = [
            version_btn,
            '-',
            consoleBtn,
            '-',
            restartBtn,
            shutdownBtn,
            '->',
            { xtype: 'proxmoxRRDTypeSelector' },
        ];

        var rrdstore = Ext.create('Proxmox.data.RRDStore', {
            rrdurl: '/api2/json/nodes/localhost/rrd',
            model: 'pve-rrd-node',
        });

        me.items = {
            xtype: 'container',
            itemId: 'itemcontainer',
            layout: 'column',
            minWidth: 700,
            listeners: {
                resize: function (panel) {
                    Proxmox.Utils.updateColumns(panel);
                },
            },
            defaults: {
                minHeight: 320,
                padding: 5,
                columnWidth: 1,
            },
            items: [
                {
                    xtype: 'proxmoxRRDChart',
                    title: gettext('CPU usage'),
                    fields: ['cpu', 'iowait'],
                    fieldTitles: [gettext('CPU usage'), gettext('IO wait')],
                    store: rrdstore,
                },
                {
                    xtype: 'proxmoxRRDChart',
                    title: gettext('Server load'),
                    fields: ['loadavg'],
                    fieldTitles: [gettext('Load average')],
                    store: rrdstore,


ild();

  _$V1WireGuardInterface _build() {
    _$V1WireGuardInterface _$result;
    try {
      _$result = _$v ??
          new _$V1WireGuardInterface._(
              privateKey: privateKey,
              listenPort: listenPort,
              ingressPort: ingressPort,
              firewallMark: firewallMark,
              address: _address?.build(),
              dns: _dns?.build(),
              mtu: mtu,
              table: table,
              preUp: preUp,
              postUp: postUp,
              preDown: preDown,
              postDown: postDown);
    } catch (_) {
      late String _$failedField;
      try {
        _$failedField = 'address';
        _address?.build();
        _$failedField = 'dns';
        _dns?.build();
      } catch (e) {
        throw new BuiltValueNestedFieldError(
            r'V1WireGuardInterface', _$failedField, e.toString());
      }
      rethrow;
    }
    replace(_$result);
    return _$result;
  }
}

// ignore_for_file: deprecated_member_use_from_same_package,type=lint
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'v1_server_config.dart';

// **************************************************************************
// BuiltValueGenerator
// **************************************************************************

class _$V1ServerConfig extends V1ServerConfig {
  @override
  final ServerConfigCluster? cluster;
  @override
  final ServerConfigImage? manager;
  @override
  final ServerConfigImage? wg;
  @override
  final V1ServerConfigCredentials? credentials;
  @override
  final bool? debug;

  factory _$V1ServerConfig([void Function(V1ServerConfigBuilder)? updates]) =>
      (new V1ServerConfigBuilder()..update(updates))._build();

  _$V1ServerConfig._(
      {this.cluster, this.manager, this.wg, this.credentials, this.debug})
      : super._();

  @override
  V1ServerConfig rebuild(void Function(V1ServerConfigBuilder) updates) =>
      (toBuilder()..update(updates)).build();

  @override
  V1ServerConfigBuilder toBuilder() =>
      new V1ServerConfigBuilder()..replace(this);

  @override
  bool operator ==(Object other) {
    if (identical(other, this)) return true;
    return other is V1ServerConfig &&
        cluster == other.cluster &&
        manager == other.manager &&
        wg == other.wg &&
        credentials == other.credentials &&
        debug == other.debug;
  }

  @override
  int get hashCode {
    var _$hash = 0;
    _$hash = $jc(_$hash, cluster.hashCode);
    _$hash = $jc(_$hash, manager.hashCode);
    _$hash = $jc(_$hash, wg.hashCode);
    _$hash = $jc(_$hash, credentials.hashCode);
    _$hash = $jc(_$hash, debug.hashCode);
    _$hash = $jf(_$hash);
    return _$hash;
  }

  @override
  String toString() {
    return (newBuiltValueToStringHelper(r'V1ServerConfig')
          ..add('cluster', cluster)
          ..add('manager', manager)
          ..add('wg', wg)
          ..add('credentials', credentials)
          ..add('debug', debug))
        .toString();
  }
}

class V1ServerConfigBuilder
    implements Builder<V1ServerConfig, V1ServerConfigBuilder> {
  _$V1ServerConfig? _$v;

  ServerConfigCluster


        LabelStr(s) | EscStr(s) | HtmlStr(s) => EscStr(s),
        }
    }
}

impl<'a> crate::GraphWalk<'a> for LabelledGraph {
    type Node = Node;
    type Edge = &'a Edge;
    type Subgraph = Subgraph;

    fn nodes(&'a self) -> crate::Nodes<'a, Node> {
        (0..self.node_labels.len()).collect()
    }

    fn edges(&'a self) -> crate::Edges<'a, &'a Edge> {
        self.edges.iter().collect()
    }

    fn source(&'a self, edge: &&'a Edge) -> Node {
        edge.from
    }

    fn target(&'a self, edge: &&'a Edge) -> Node {
        edge.to
    }

    fn subgraphs(&'a self) -> crate::Subgraphs<'a, Subgraph> {
        std::borrow::Cow::Owned((0..self.subgraphs.len()).collect::<Vec<_>>())
    }

    fn subgraph_nodes(&'a self, s: &Subgraph) -> crate::Nodes<'a, Node> {
        std::borrow::Cow::Borrowed(&self.subgraphs[*s])
    }
}

impl<'a> crate::GraphWalk<'a> for LabelledGraphWithEscStrs {
    type Node = Node;
    type Edge = &'a Edge;
    type Subgraph = ();

    fn nodes(&'a self) -> crate::Nodes<'a, Node> {
        self.graph.nodes()
    }

    fn edges(&'a self) -> crate::Edges<'a, &'a Edge> {
        self.graph.edges()
    }

    fn source(&'a self, edge: &&'a Edge) -> Node {
        edge.from
    }

    fn target(&'a self, edge: &&'a Edge) -> Node {
        edge.to
    }
}

fn test_input(g: LabelledGraph) -> crate::Result<String> {
    let mut writer = Vec::new();
    crate::render(&g, &mut writer)?;

    let mut s = String::new();
    std::io::Read::read_to_string(&mut &*writer, &mut s)?;

    Ok(s)
}

// All of the tests use raw-strings as the format for the expected outputs,
// so that you can cut-and-paste the content into a .dot file yourself to
// see what the graphviz visualizer would produce.

#[test]
fn empty_graph() {
    let labels: Trivial = NodeLabels::UnlabelledNodes(0);
    let r = test_input(LabelledGraph::new(
        "empty_graph",
        labels,
        vec![],
        vec![],
        None,
    ));

    assert_eq!(
        r.unwrap(),
        r#"digraph empty_graph {
}
"#
    );
}

#[test]
fn single_node() {
    let labels: Trivial = NodeLabels::UnlabelledNodes(1);
    let r = test_input(LabelledGraph::new(
        "single_node",
        labels,
        vec![],
        vec![],
        None,
    ));

    assert_eq!(
        r.unwrap(),
        r#"digraph single_node {
    N0[label="N0"];
}
"#
    );
}

#[test]
fn single_node_with_style() {
    let labels: Trivial = NodeLabels::UnlabelledNodes(1);
    let styles = Some(vec![crate::Style::Dashed]);
    let r = test_input(LabelledGraph::new(
        "single_node",
        labels,
        vec![],
        vec![],
        styles,
    ));

    assert_eq!(
        r.unwrap(),
        r#"digraph single_node {
    N0[label="N0"][style="dashed"];
}


.lua#L60-L68
function helpers.find_metric(metric_name, metrics_data)
    local m = {}
    for _, v in ipairs(metrics_data) do
        if v.metric_name == metric_name then
            table.insert(m, v)
        end
    end
    return #m > 0 and m or nil
end

-- Based on
-- https://github.com/tarantool/metrics/blob/eb35baf54f687c559420bef020e7a8a1fee57132/test/helper.lua#L64-L74
function helpers.set_metrics_export(cluster, export)
    local server = cluster.main_server
    return server.net_box:eval([[
        local cartridge = require('cartridge')
        local metrics = cartridge.service_get('metrics')
        local _, err = pcall(
            metrics.set_export, ...
        )
        return err
    ]], {export})
end

local function guess_metrics_version()
    local module = require('metrics')

    -- _VERSION was introduced in 0.16.0
    if module._VERSION ~= nil then
        return module._VERSION
    end

    if module.summary == nil then
        if module.set_global_labels ~= nil then
            return '0.1.8'
        end

        return '0.0.0'
    end

    if pcall(require, 'metrics.tarantool.average') ~= nil then
        if module.unregister_callback ~= nil then
            return '0.10.0'
        end

        if module.enable_cartridge_metrics ~= nil then
            return '0.6.0'
        end

        if module.summary ~= nil then
            return


idunt turpis felis nec libero. Nam vestibulum tempus ipsum. In hac habitasse platea dictumst. Nulla facilisi. Donec semper ligula. Donec commodo tortor in quam. Etiam massa. Ut tempus ligula eget tellus. Curabitur id velit ut velit varius commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Fusce ornare pellentesque libero. Nunc rhoncus. Suspendisse potenti. Ut consequat, leo eu accumsan vehicula, justo sem lobortis elit, ac sollicitudin ipsum neque nec ante.

Aliquam elementum mauris id sem. Vivamus varius, est ut nonummy consectetuer, nulla quam bibendum velit, ac gravida nisi felis sit amet urna. Aliquam nec risus. Maecenas lacinia purus ut velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sit amet dui vitae lacus fermentum sodales. Donec varius dapibus nisl. Praesent at velit id risus convallis bibendum. Aliquam felis nibh, rutrum nec, blandit non, mattis sit amet, magna. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam varius dignissim nibh. Quisque id orci ac ante hendrerit molestie. Aliquam malesuada enim non neque.

south - generally for informational stuff, also could be for status bar

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Cell Editing Grid Example</title>

    <link rel="stylesheet" type="text/css" href="../shared/example.css" />
    <link rel="stylesheet" type="text/css" href="../ux/css/CheckHeader.css" />

Cell Editing Grid Example

This example shows how to enable users to edit the contents of a grid.

Note that the js is not minified so it is readable. See cell-editing.js.

This example also illustrates how to scope ExtJS's CSS reset to only encapsulate each ExtJS Component rendered into a page to avoid interference with existing themes.

Note how this unordered list retains default styling while the unordered list in the "Light" dropdown is styled as a picker.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "h


d:before {
        bottom: 7px;
      }
    }
  }
  .coveo-advanced-filters {
    @include defaultRoundedBorder();
    display: inline-block;
    margin-bottom: 10px;
    padding: 6px 5px;
    &:hover {
      cursor: pointer;
    }
  }
  .coveo-online-help {
    @include clickable();
    float: right;
    width: 30px;
    height: 30px;
    text-align: right;
    font-weight: bold;
  }
  .coveo-delete {
    margin-left: 10px;
    &:hover {
      cursor: pointer;
    }
  }
  .coveo-delete-svg {
    width: 12px;
    height: 12px;
    .coveo-exclusion-svg {
      fill: $color-red;
    }
  }
  .coveo-edit {
    &:hover {
      cursor: pointer;
    }
  }
  .coveo-edit-svg {
    width: 13px;
    height: 13px;
    color: $color-greyish-teal-blue;
  }
  .coveo-advanced-filters-builder {
    display: none;
    position: relative;
    &.coveo-active {
      display: block;
    }
    form {
      overflow: hidden;
      padding: 10px;
      @include defaultRoundedBorder();
      @include display('flex');
      @include flex-wrap(wrap);
    }
    .coveo-input {
      width: 100%;
      margin-bottom: 10px;
    }
    .coveo-expression {
      @include flex-grow(2);
    }
    .coveo-caption,
    .coveo-expression {
      > div {
        height: 100%;
        width: 100%;
      }
    }
    .coveo-close-and-save {
      .coveo-save {
        @include clickable();
        position: absolute;
        top: 6px;
        right: 30px;
      }
      .coveo-close {
        @include clearButton('&');
        position: absolute;
        top: 6px;
        right: 10px;
      }
    }
    .coveo-save-svg {
      width: 14px;
      height: 12px;
      .coveo-hook-svg {
        fill: $color-greyish-teal-blue;
      }
    }
    .coveo-tab {
      min-height: 100px;
      width: 100%;
      optgroup {
        padding-left: 10px;
      }
    }
    input[type='submit'] {
      display: none;
    }
  }
}

.coveo-results-filter-preferences-breadcrumb {
  .coveo-title {
    @include breadcrumb-title();
  }
  .coveo-value {
    @include breadcrumb-value();
    .coveo-clear {
      @include breadcrumb-value-clear();
    }
  }
}
.CoveoSubscriptionsPanel {
  overflow: hidden;
  margin-top: 10px;
  display: none;
}

.coveo-modalBox.coveo-subscriptions-panel > .coveo-wrapper > .coveo-title {
  cursor: inherit;
}

.coveo-subscriptions-panel {
  > .coveo-wrapper {
    overflow: visible;
  }
  .coveo-body {
    max-height: 600px;
    min-width: 500px;
  }
  @media (max-width: 600px) {
    .coveo-body {
      min-width: inherit;
    }
  }
  .coveo-dropdown {
    margin: 0;
  }
  .coveo-subscriptions-panel-fail {
    padding: 10px


		NullCheck(L_15);
		VertexHelper_AddTriangle_mCC7AD55263B747D7653590BC9220D6369D168AF4(L_15, L_16, ((int32_t)il2cpp_codegen_add((int32_t)L_17, (int32_t)1)), ((int32_t)il2cpp_codegen_add((int32_t)L_18, (int32_t)2)), /*hidden argument*/NULL);
		// vertexHelper.AddTriangle(startIndex + 2, startIndex + 3, startIndex);
		VertexHelper_t27373EA2CF0F5810EC8CF873D0A6D6C0B23DAC3F * L_19 = ___vertexHelper0;
		int32_t L_20 = V_0;
		int32_t L_21 = V_0;
		int32_t L_22 = V_0;
		NullCheck(L_19);
		VertexHelper_AddTriangle_mCC7AD55263B747D7653590BC9220D6369D168AF4(L_19, ((int32_t)il2cpp_codegen_add((int32_t)L_20, (int32_t)2)), ((int32_t)il2cpp_codegen_add((int32_t)L_21, (int32_t)3)), L_22, /*hidden argument*/NULL);
		// }
		return;
	}
}
// System.Void UnityEngine.UI.Image::AddQuad(UnityEngine.UI.VertexHelper,UnityEngine.Vector2,UnityEngine.Vector2,UnityEngine.Color32,UnityEngine.Vector2,UnityEngine.Vector2)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void Image_AddQuad_m0A71218655EC3BA6C226556D470881A9CE46906F (VertexHelper_t27373EA2CF0F5810EC8CF873D0A6D6C0B23DAC3F * ___vertexHelper0, Vector2_tA85D2DD88578276CA8A8796756458277E72D073D  ___posMin1, Vector2_tA85D2DD88578276CA8A8796756458277E72D073D  ___posMax2, Color32_t23ABC4AE0E0BDFD2E22EE1FA0DA3904FFE5F6E23  ___color3, Vector2_tA85D2DD88578276CA8A8796756458277E72D073D  ___uvMin4, Vector2_tA85D2DD88578276CA8A8796756458277E72D073D  ___uvMax5, const RuntimeMethod* method)
{
	int32_t V_0 = 0;
	{
		// int startIndex = vertexHelper.currentVertCount;
		VertexHelper_t27373EA2CF0F5810EC8CF873D0A6D6C0B23DAC3F * L_0 = ___vertexHelper0;
		NullCheck(L_0);
		int32_t L_1 = VertexHelper_get_currentVertCount_m99ACD97A171FCB5046C7608CAD7399A8E0A6FD3F(L_0, /*hidden argument*/NULL);
		V_0 = L_1;
		// vertexHelper.AddVert(new Vector3(posMin.x, posMin.y, 0), color, new Vector2(uvMin.x, uvMin.y));
		VertexHelper_t27373EA2CF0F5810EC8CF873D0A6D6C0B23DAC3F * L_2 = ___vertexHelper0;
		Vector2_tA85D2DD88578276CA8A8796756458277E72D073D  L_3 = ___posMin1;
		float L_4


r>

Quick Reference

These quick guides will help you get started. For more detailed instructions check out the documentation.

Grid (_layout.scss)

								Mixin
								Usage

									@include container()

									Apply to an element wrapping the column structure

									@include columns($columns, $offset, $gutter)

									@include columns(8, 0, 0)

									@include responsive-columns($breakpoint, $columns, $offset, $gutter);

									Apply to overwrite default breakpoint columns

Grid Settings(_variables.scss)

Grid breakpoints and settings are set in _variables.scss

Grid Examples(_layout.scss)

						@include container()

							@include columns(3);

							@include columns(4);

							@include columns(5);

							@include columns(5, 2);

							@include columns(5);

							@include columns(9);

								@include columns(6);

								@include columns(6);

							@include columns(3);

								@include columns(9, 0, 10%);

								@include columns(3);

							@include columns(6);
							@include responsive-columns('mobile', 0.5);

								@include columns(6);
								@include responsive-columns('mobile', 0.5);

							@include columns(5, 0, 0);
							@include responsive-columns('mobile', 0.4, 0, 0);

							@include columns(7, 0, 0);
							@include responsive-columns('mobile', 0.6, 0, 0);


Spark Nilminer"] = "스파크 닐마이너",
    ["Hol'anyee Marshal"] = "홀라니에 마샬",
    ["Spraggle Frock"] = "스프래글 프록",
    ["Muigin"] = "무이긴",
    ["Shizzle"] = "쉬즐",
    ["Karna Remtravel"] = "카르나 렘트래블",
    ["A-Me 01"] = "에이미 01",
    ["Krakle"] = "크래클",
    ["Ringo"] = "링고 스타",
    ["Vish Kozus"] = "비쉬 코주스",
    ["Innkeeper Saelienne"] = "여관주인 셀리에네",
    ["Raedon Duskstriker"] = "라에돈 더스크스트라이커",
    ["Arch Druid Fandral Staghelm"] = "대드루이드 판드랄 스태그헬름",
    ["Jenal"] = "제날",
    ["Idriana"] = "이드리아나",
    ["Nafien"] = "나피엔",
    ["Donova Snowden"] = "도노바 스노우덴",
    ["Salfa"] = "살파",
    ["Ivy Leafrunner"] = "아이비 리프러너",
    ["Maybess Riverbreeze"] = "메이베스 리버브리즈",
    ["Captured Arko'narin"] = "사로잡힌 아르코나린",
    ["Winterfall Runner"] = "겨울눈 정찰꾼",
    ["Umi Rumplesnicker"] = "우미 럼플스니커",
    ["Felnok Steelspring"] = "펠노크 스틸스프링",
    ["Storm Shadowhoof"] = "스톰 섀도후프",
    ["Ursius"] = "우르시우스",
    ["Wynd Nightchaser"] = "윈드 나이트체이서",
    ["Jaron Stoneshaper"] = "야론 스톤셰이퍼",
    ["Witch Doctor Mau'ari"] = "의술사 마우아리",
    ["Brumeran"] = "브룸랜",
    ["Jessica Redpath"] = "제시카 레드패스",
    ["Gregor Greystone"] = "그레고르 그레이스톤",
    ["Jessir Moonbow"] = "제시르 문보우",
    ["Kelek Skykeeper"] = "켈레크 스카이키퍼",
    ["Remains of Trey Lightforge"] = "트레이 라이트포지의 유해",
    ["Lord Grayson Shadowbreaker"] = "그레이슨 섀도브레이커 경",
    ["King Varian Wrynn"] = "국왕 바리안 린",
    ["Master Mathias Shaw"] = "단장 마티�


StepVariable(DENSITY);

        // Generate the background mesh (done with the StructuredMeshGeneratorProcess)
        auto p_point_1 = Kratos::make_intrusive<Node>(1, -0.5, -0.5,  0.0);
        auto p_point_2 = Kratos::make_intrusive<Node>(2, -0.5,  0.5,  0.0);
        auto p_point_3 = Kratos::make_intrusive<Node>(3,  0.5,  0.5,  0.0);
        auto p_point_4 = Kratos::make_intrusive<Node>(4,  0.5, -0.5,  0.0);
        Quadrilateral2D4<Node> geometry(p_point_1, p_point_2, p_point_3, p_point_4);
        Parameters mesher_parameters(R"(
        {
            "number_of_divisions": 3,
            "element_name": "Element2D3N",
            "condition_name": "LineCondition"
        })");
        StructuredMeshGeneratorProcess(geometry, r_model_part, mesher_parameters).Execute();

        // Set the linear field (x+y) to be interpolated and the coordinates matrix
        const std::size_t n_nodes = r_model_part.NumberOfNodes();
        Matrix nodes_coords = ZeroMatrix(n_nodes, 3);
        std::size_t i = 0;
        for (auto& r_node : r_model_part.Nodes()) {
            nodes_coords(i,0) = r_node.X();
            nodes_coords(i,1) = r_node.Y();
            r_node.FastGetSolutionStepValue(DENSITY) = rAnalyticalSolutionFunction(r_node.Coordinates());
            ++i;
        }

        // Calculate the error of the MLS interpolation
        double val_error = 0.0;
        double val_dx_error = 0.0;
        double val_dy_error = 0.0;
        const double h = 1.0;
        array_1d<double,3> i_gauss_N;
        array_1d<double,3> i_gauss_coords;
        Vector MLS_N_container;
        Matrix MLS_DN_DX_container;
        for (auto& r_element : r_model_part.Elements()) {
            const auto& r_geom = r_element.GetGeometry();
            const auto N_container = r_geom.ShapeFunctionsValues(GeometryData::IntegrationMethod::GI_GAUSS_2);
            const std::size_t n_nodes = N_container.size1();
            const std::size_t n_gauss = N_container.size2();
            for (std::size_t i_gauss = 0; i_gauss < n_gauss; ++i_gauss) {
                // Get current Gauss pt. coordinates
                i_gauss_N = row(N_container, i_gauss);
                i_gauss_coords = ZeroVector(3);
                for (std::size_t i_node = 0; i_node < n_nodes; ++i_node) {
                    noalias(i_gauss_coords) += i_gauss_N[i_node] * r_geom[i_node].Coordinates();
                }

                // Calculate the MLS basis in the current Gauss pt.
                rMLSShapeFunctionsAndGradientsFunction(
                    nodes_coords,
                    i_gauss_coords,
                    h,
                    MLS_N_container,
                    MLS_DN_DX_container);

                // Calculate the MLS interpolation at current Gauss pt.
                double mls_val = 0.0;
                double mls_grad_x = 0.0;
                double mls_grad_y


SDKIOSWrap = {
		QueryRemoteConfig = 9576,
		Buy = 9552,
		DeleteAccount = 9558,
		GetDeviceID = 9537,
		_CreateAirisdk_AiriSDKIOS = 9533,
		LinkSocial = 9546,
		GetSafeArea = 9557,
		GetAgreementInfo = 9565,
		LoginWithAmazon = 9562,
		NewAccountLink = 9545,
		LoginWithGooglePlay = 9556,
		QuerySkuDetails = 9561,
		ClearAccountInfo = 9544,
		QuickLogin = 9543,
		RebornAccount = 9564,
		RequestStoreReview = 9568,
		SDKGetUID = 9573,
		SDKGetAccessToken = 9574,
		GoogleServerToServer = 9569,
		Register = 9532,
		VerificationCodeReq = 9549,
		IOSGrade = 9554,
		GetUnderAgeAgrement = 9566,
		UnlinkSocial = 9547,
		LoginWithMigrationCode = 9541,
		GetAgreement = 9559,
		LoginWithDevice = 9538,
		GetSDKRecommendedErrorMsg = 9575,
		GetShopAgreement = 9570,
		OnResume = 9535,
		ShowAiHelpFAQs = 9577,
		LoginWithGoogle = 9555,
		OnPause = 9536,
		IOSAppleSignInAvailable = 9572,
		MigrationCodeRequest = 9548,
		LoginWithApple = 9563,
		LoginWithSDK = 9542,
		ConfirmUnderAger = 9567,
		SystemShare = 9553,
		SetBirth = 9551,
		Init = 9534,
		SDKToClipboard = 9571,
		LoginWithTW = 9540,
		LoginWithFB = 9539,
		UserEventUpload = 9550,
		ConifrmAgreement = 9560
	},
	Airisdk_AiriSDKStandaloneWrap = {
		QueryRemoteConfig = 9622,
		GetDeviceID = 9584,
		DeleteAccount = 9605,
		LoginWithAmazon = 9609,
		_CreateAirisdk_AiriSDKStandalone = 9579,
		LinkSocial = 9593,
		GetSafeArea = 9604,
		GetAgreementInfo = 9612,
		Buy = 9599,
		NewAccountLink = 9592,
		LoginWithGooglePlay = 9603,
		QuerySkuDetails = 9608,
		ClearAccountInfo = 9591,
		QuickLogin = 9590,
		RebornAccount = 9611,
		RequestStoreReview = 9615,
		SDKGetUID = 9620,
		SDKGetAccessToken = 9621,
		GoogleServerToServer = 9616,
		Register = 9578,
		VerificationCodeReq = 9596,
		IOSGrade = 9601,
		GetUnderAgeAgrement = 9613,
		UserEventUpload = 9597,
		LoginWithMigrationCode = 9588,
		GetAgreement = 9606,
		LoginWithDevice = 9585,
		UnlinkSocial = 9594,
		GetShopAgreement = 9617,
		OnResume = 9581,
		ShowAiHelpFAQs = 9623,
		LoginWithGoogle = 9602,
		OnPause = 9582,
		IOSAppleSignInAvailable = 9619,
		MigrationCodeRequest = 9595,
		LoginWithApple = 9610,
		LoginWithSDK = 9589,
		ConfirmUnderAger = 9614,
		SystemShare = 9600,
		SetBirth = 9598,
		Init = 9580,
		SDKToClipboard = 9618,
		LoginWithTW = 9587,
		LoginWithFB = 9586,
		Dispose = 9583,
		ConifrmAgreement = 9607
	},
	Airisdk_AiriSDKUnityWrap = {
		Register = 9624,
		Dispose = 9628,
		GetSDKRecommendedErrorMsg = 9627,
		_CreateAirisdk_AiriSDKUnity = 9625,
		Init = 9626
	},
	Airisdk_BirthSetRetWrap = {