/*	$NetBSD: srt0.S,v 1.1 2001/09/27 10:14:49 minoura Exp $	*/

/*-
 * Copyright (c) 2001 Minoura Makoto
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 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 <m68k/asm.h>

ASENTRY(start)
	bra		start0
	.ascii		BOOT
	.byte		0x20
	.asciz		BOOT_VERS
	.even

/*
 * via stack:	(firstpa, physsize, esym)
 * via regs:	%d6:	bootdev
 *		%d7:	boothowto
 *  for /boot, only %d6 is used.
 */
start0:
	moveml		%sp@+,%d0-%d2
	lea		%pc@(


() && !current.isTerminating) {
      parent.children.remove(current.key)
      current = parent
    }
  }

  fun collections(prefix: List<Key>): List<List<Key>> {
    // 1
    var current = root

    prefix.forEach { element ->
      val child = current.children[element] ?: return emptyList()
      current = child
    }

    // 2
    return collections(prefix, current)
  }

  private fun collections(prefix: List<Key>, node: TrieNode<Key>?): List<List<Key>> {
    // 1
    val results = mutableListOf<List<Key>>()

    if (node?.isTerminating == true) {
      results.add(prefix)
    }

    // 2
    node?.children?.forEach { (key, node) ->
      results.addAll(collections(prefix + key, node))
    }

    return results
  }

}
/*
 * Copyright (c) 2021 Razeware LLC
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * Notwithstanding the foregoing, you may not use, copy, modify, merge, publish,
 * distribute, sublicense, create a derivative work, and/or sell copies of the
 * Software in any work that is designed, intended, or marketed for pedagogical or
 * instructional purposes related to programming, coding, application development,
 * or information technology.  Permission for such use, copying, modification,
 * merger, publication, distribution, sublicensing, creation of derivative works,
 * or sale is expressly withheld.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

interface Graph<T: Any> {

  fun createVertex(data: T): Vertex<T>
  fun addDirectedEdge(source: Vertex<T>, destination: Vertex<T>, weight: Double?)
  fun addUndirectedEdge(source: Vertex<T>, destination: Vertex<T>, weight: Double?) {
    addDirectedEdge(source, destination, weight)
    addDirectedEdge(destination, source, weight)
  }

  fun add(edge: EdgeType, source: Vertex<T>, destination: Vertex<T>, weight: Double?) {
    when (edge) {
      EdgeType.DIRECTED -> addDirectedEdge(source, destination, weight)
      EdgeType.UNDIRECTED -> addUndirectedEdge(source, destination, weight)
    }
  }

  fun edges(source: Vertex<T>): ArrayList<Edge<T>>
  fun weight(source: Vertex<T>, destination: Vertex<T>): Double?

  fun numberOfPaths(source: Vertex<T>, destination: Vertex<T>): Int {
    val numberOfPaths = Ref(0) // 1
    val visited: ArrayList<Vertex<T>> = arrayListOf() // 2
    paths(source, destination, visited, numberOfPaths) // 3
    return numberOfPaths.value
  }

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


:
/* 80375878 003714D8  80 7D 00 58 */	lwz r3, 0x58(r29)
/* 8037587C 003714DC  2C 03 00 00 */	cmpwi r3, 0
/* 80375880 003714E0  40 81 00 20 */	ble lbl_803758A0
/* 80375884 003714E4  34 03 FF FF */	addic. r0, r3, -1
/* 80375888 003714E8  90 1D 00 58 */	stw r0, 0x58(r29)
/* 8037588C 003714EC  40 81 00 14 */	ble lbl_803758A0
/* 80375890 003714F0  7F E3 FB 78 */	mr r3, r31
/* 80375894 003714F4  4B EF A1 91 */	bl OSUnlockMutex
/* 80375898 003714F8  38 60 00 01 */	li r3, 1
/* 8037589C 003714FC  48 00 00 68 */	b lbl_80375904
lbl_803758A0:
/* 803758A0 00371500  80 1D 00 54 */	lwz r0, 0x54(r29)
/* 803758A4 00371504  2C 00 00 00 */	cmpwi r0, 0
/* 803758A8 00371508  41 82 00 50 */	beq lbl_803758F8
/* 803758AC 0037150C  48 00 00 34 */	b lbl_803758E0
lbl_803758B0:
/* 803758B0 00371510  81 9D 00 00 */	lwz r12, 0(r29)
/* 803758B4 00371514  7F A3 EB 78 */	mr r3, r29
/* 803758B8 00371518  7F C4 F3 78 */	mr r4, r30
/* 803758BC 0037151C  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 803758C0 00371520  7D 89 03 A6 */	mtctr r12
/* 803758C4 00371524  4E 80 04 21 */	bctrl
/* 803758C8 00371528  2C 03 00 01 */	cmpwi r3, 1
/* 803758CC 0037152C  40 82 00 14 */	bne lbl_803758E0
/* 803758D0 00371530  7F E3 FB 78 */	mr r3, r31
/* 803758D4 00371534  4B EF A1 51 */	bl OSUnlockMutex
/* 803758D8 00371538  38 60 FF FF */	li r3, -1
/* 803758DC 0037153C  48 00 00 28 */	b lbl_80375904
lbl_803758E0:
/* 803758E0 00371540  80 1D 00 58 */	lwz r0, 0x58(r29)
/* 803758E4 00371544  2C 00 00 00 */	cmpwi r0, 0
/* 803758E8 00371548  40 82 00 10 */	bne lbl_803758F8
/* 803758EC 0037154C  88 1D 00 5E */	lbz r0, 0x5e(r29)
/* 803758F0 00371550  2C 00 00 00 */	cmpwi r0, 0
/* 803758F4 00371554  41 82 FF BC */	beq lbl_803758B0
lbl_803758F8:
/* 803758F8 00371558  7F E3 FB 78 */	mr r3, r31
/* 803758FC 0037155C  4B EF A1 29 */	bl OSUnlockMutex
/* 80375900 00371560  38 60 00 01 */	li r3, 1
lbl_80375904:
/* 80375904 00371564  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8037


🛳",
			"passenger_ship",
			new []{ "passenger_ship"},
			null,
			null,
			"Travel & Places",
			37,
			18,
			SkinVariationType.None,
			null,
			null);
		/// <summary>
		/// <see cref="Emoji"/> for `:ferry:` ⛴.
		/// </summary>
		public static readonly Emoji Ferry = new Emoji(
			"26F4-FE0F",
			null,
			"⛴",
			"ferry",
			new []{ "ferry"},
			null,
			null,
			"Travel & Places",
			48,
			42,
			SkinVariationType.None,
			null,
			null);
		/// <summary>
		/// <see cref="Emoji"/> for `:motor_boat:` 🛥.
		/// </summary>
		public static readonly Emoji MotorBoat = new Emoji(
			"1F6E5-FE0F",
			null,
			"🛥",
			"motor_boat",
			new []{ "motor_boat"},
			null,
			null,
			"Travel & Places",
			37,
			13,
			SkinVariationType.None,
			null,
			null);
		/// <summary>
		/// <see cref="Emoji"/> for `:ship:` 🚢.
		/// </summary>
		public static readonly Emoji Ship = new Emoji(
			"1F6A2",
			"SHIP",
			"🚢",
			"ship",
			new []{ "ship"},
			null,
			null,
			"Travel & Places",
			34,
			42,
			SkinVariationType.None,
			"ship",
			new []{ "boat", "passenger", "ship"});
		/// <summary>
		/// <see cref="Emoji"/> for `:airplane:` ✈.
		/// </summary>
		public static readonly Emoji Airplane = new Emoji(
			"2708-FE0F",
			"AIRPLANE",
			"✈",
			"airplane",
			new []{ "airplane"},
			null,
			null,
			"Travel & Places",
			49,
			16,
			SkinVariationType.None,
			null,
			null);
		/// <summary>
		/// <see cref="Emoji"/> for `:small_airplane:` 🛩.
		/// </summary>
		public static readonly Emoji SmallAirplane = new Emoji(
			"1F6E9-FE0F",
			null,
			"🛩",
			"small_airplane",
			new []{ "small_airplane"},
			null,
			null,
			"Travel & Places",
			37,
			14,
			SkinVariationType.None,
			null,
			null);
		/// <summary>
		/// <see cref="Emoji"/> for `:airplane_departure:` 🛫.
		/// </summary>
		public static readonly Emoji AirplaneDeparture = new Emoji(
			"1F6EB",
			"AIRPLANE DEPARTURE",
			"🛫",
			"airplane_departure",
			new []{ "airplane_departure"},
			null,
			null,
			"Travel & Places",
			37,
			15,
			SkinVariationType.None,
			"airplane departure",
			new []{ "aeroplane", "airplane", "check-in", "departure", "departures"});
		/// <summary>
		/// <see cref="Emoji"/> for `:airplane_arriving:` 🛬.
		/// </summary>
		public static readonly Emoji AirplaneArriving = new Emoji(
			"1F6EC",
			"AIRPLANE ARRIVING",
			"🛬",
			"airplane_arriving",
			new []{ "airplane_arriving"},
			n


se device.Windows:
		info = append(info, fmt.Sprintf("Windows NT %v.%v", os.MajorVersion, os.MinorVersion))
		if d.GetHardware().GetCPU().GetArchitecture().Bitness() == 64 {
			info = append(info, "x64")
		}
	case device.OSX:
		info = append(info, "Macintosh", fmt.Sprintf("Intel Mac OS X %v_%v_%v", os.MajorVersion, os.MinorVersion, os.PointVersion))

	case device.Linux:
		info = append(info, "Linux")

	case device.Android:
		info = append(info, "Linux", "U", fmt.Sprintf("Android %v.%v.%v", os.MajorVersion, os.MinorVersion, os.PointVersion))
		if os.Build != "" {
			info = append(info, "Build/"+os.Build)
		}
	}
	if len(info) > 0 {
		return fmt.Sprintf("%v (%v)", product, strings.Join(info, "; "))
	}
	return product
}
// Copyright (C) 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package git

import (
	"bytes"
	"context"
	"fmt"
	"strings"
)

type Status struct {
	NotUpdated                []string
	UpdatedInIndex            []string
	AddedToIndex              []string
	DeletedFromIndex          []string
	RenamedInIndex            []string
	CopiedInIndex             []string
	IndexAndWorkTreeMatches   []string
	WorkTreeChangedSinceIndex []string
	DeletedInWorkTree         []string
	UnmergedBothDeleted       []string
	UnmergedAddedByUs         []string
	UnmergedDeletedByThem     []string
	UnmergedAddedByThem       []string
	UnmergedDeletedByUs       []string
	UnmergedBothAdded         []string
	UnmergedBothModified      []string
	Untracked                 []string
	Ignored                   []string
}

// Clean returns true if the status is empty (no file changes).
func (s Status) Clean() bool {
	return len(s.NotUpdated) == 0 &&
		len(s.UpdatedInIndex) == 0 &&
		len(s.AddedToIndex) == 0 &&
		len(s.DeletedFromIndex) == 0 &&
		len(s.RenamedInIndex) == 0 &&
		len(s.CopiedInIndex) == 0 &&
		len(s.IndexAndWorkTreeMatches) == 0 &&
		len(s.WorkTreeChangedSinceIndex) == 0 &&
		len(s.DeletedInWorkTree) == 0 &&
		len(s.UnmergedBothDeleted) == 0 &&
		len(s.UnmergedAddedByUs) == 0 &&
		len(s.UnmergedDeletedByThem) == 0 &&
		len(s.UnmergedAddedByThem) == 0 &&
		len(s.UnmergedDeletedByUs) == 0 &&
		len(s.UnmergedBothAdded) == 0 &&
		len(s.UnmergedBothModified) == 0 &&
		len(s.Untracked) == 0 &&
		len(s.Ignored) == 0
}

func (s Status) String() string {
	b := bytes.Buffer{}
	append := func(name string, files []string) {
		if len(files) > 0 {
			b.WriteString(name)
			b.WriteString(": \n")
			for _, file := range files {
				b.WriteString("    ")
				b.WriteString(file)
				b.WriteString("\n")
			}
		}
	}
	append("Not


function add_sources_last(element, name, type) {
  do_add_source(element, name, 'unsupported/type');
  do_add_source(element, name, type);
  document.body.appendChild(element);
}

function add_sources_first(element, name, type) {
  do_add_source(element, name, type);
  do_add_source(element, name, 'unsupported/type');
  document.body.appendChild(element);
}

function late_add_sources_last(element, name, type) {
  document.body.appendChild(element);
  do_add_source(element, name, 'unsupported/type');
  do_add_source(element, name, type);
}

function late_add_sources_first(element, name, type) {
  document.body.appendChild(element);
  do_add_source(element, name, type);
  do_add_source(element, name, 'unsupported/type');
}

var nextTest  = 0;
var subtests = [
  maketest(add_source, 'unknown.raw', 'bogus/type', null)
];

var tmpVid = document.createElement('video');

for (var i = 0; i < gSmallTests.length; ++i) {
  var test = gSmallTests[i];
  var src = test.name;
  var type = test.type;

  if (!tmpVid.canPlayType(type))
    continue;

  // The following nested function hack is to ensure that 'test' is correctly
  // captured in the closure and we don't end up getting the value 'test'
  // had in the last iteration of the loop. I blame Brendan.
  var check = function(t) { return function (e) {
    checkMetadata(t.name, e, t);
  }}(test);

  var otherType = type.match(/^video\//) ? "audio/x-wav" : "video/ogg";
  subtests.push(maketest(set_src, src, null, check),
                maketest(add_source, src, null, check),
                maketest(add_source, src, type, check),
                maketest(add_sources_last, src, null, check),
                maketest(add_sources_first, src, type, check),

                // type hint matches a decoder, actual type matches different decoder
                maketest(add_source, src, otherType, check),
                maketest(add_source, 'unknown.raw', type, null),

                // should not start loading, type excludes it from media candiate list
                maketest(add_source, src, 'bogus/type', null),

                // element doesn't notice source children attached later, needs bug 462455 fixed
                maketest(late_add_sources_last, src, type, check),
                maketest(late_add_sources_first, src, type, check));
}

function startTest(t, token) {
  t(token);
}

manager.runTests(subtests, startTest);

</script>

<!DOCTYPE HTML>

  <title>Bug 495319 - playing back small audio files should fire timeupdate</title>

  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />

Mozilla Bug 495319


local CHARACTER_SET = {
	"b",
	"c",
	"d",
	"f",
	"g",
	"h",
	"j",
	"k",
	"m",
	"p",
	"q",
	"r",
	"t",
	"v",
	"w",
	"x",
	"y",
	"3",
	"4",
	"6",
	"7",
	"8",
	"9",
	"!",
	'"',
	"#",
	"$",
	"%",
	"&",
	"'",
	"(",
	")",
	"*",
	"+",
	",",
	"-",
	".",
	"/",
	":",
	";",
	"<",
	"=",
	">",
	"?",
	"@",
	"B",
	"C",
	"D",
	"F",
	"G",
	"H",
	"J",
	"K",
	"M",
	"P",
	"Q",
	"R",
	"T",
	"V",
	"W",
	"X",
	"Y",
	"[",
	"\\",
	"]",
	"^",
	"_",
	"`",
	"{",
	"|",
	"}",
	"~",
}

local characterKeys = {}
local characterValues = {}
for i, v in pairs(CHARACTER_SET) do
	characterKeys[v] = i - 1
	characterValues[i - 1] = v
end

local CHAR_COUNT = #CHARACTER_


题给饶漱石的复电

   日期：1950-8-28 作者：[待确定]

    饶漱石同志：

   你八月十七日来电关于土地改革委员会的意见，我们同意，并已将来电转中南、西北、西南各局。

   中  央八月二十八日

   附：

   饶漱石关于土改委员会工作问题给刘少奇的电报

   （一九五0年八月十七日）

    少奇同志：

   八月四日转来邓子恢同志关于如何运用土改委员会的电报，经研究后，有如下意见：

   （一）建立与健全县以上人民政府的土地改革委员会，以便充分利用政府的地位去领导农民运动，支持农民的正义斗争，孤立打击反抗破坏土改的分子，保证有秩序地进行土改，这是完全必须的。但由于土改是一场激烈的斗争，为了确保党与人民政府对土改的领导，土改委员会就必须是一个真正强有力的战斗的指挥机关。为此，它的组织成分及运用它的方法，不能与通常的统一战线机构或政府其他一般部门完全一样。

   甲、根据华东初步经验，人民政府中的土改委员会，应以农协的干部为主体，以党委的农委为骨干，再吸收一部分同情与支持土改的民主人士参加，省（区）以上的土改委员会中可以吸收较多的民主人士，专区及县的土改委员会则吸收三五个民主人士参加即可，不宜强调广泛吸收。因为在开明士绅及民主人士中，有时虽也有很多有益的意见，但一涉及土改具体工作，则很多是做不得的；同时，根据我们现有干部条件，对于这种情况是较难应付与较难掌握的；如勉强应付，则很可能不是在土委内部经常争辩不休，或是遇事迁就，因而在实际斗争的指挥上显得软弱无力，便是为了遂行斗争的指挥任务显得方式生硬，因而陷于被动，甚至有时反将关系搞坏。

   乙、有关土改原则、方针、政策、法令等重大问题，应由各级人民代表会议协商委员会和人民政府委员会去协商决定。协商决定后再交土改委员会执行，土改委员会对政府委员会直接负责。如果在执行过程中，尚有某些不同意见或争论，可提交协商会议或下一次人民代表会或政府委员会去讨论，这样做法，既能使各方面的意见在适当的场合充分发表，又能使作为土改指挥机关的土改委员


Hardware, GlobalHotkey } from "keysender";

const notepad = new Hardware(null, "Notepad"); // find Notepad handle by className and set it as workwindow

new GlobalHotkey({
  // register hotkey
  key: "f1",
  mode: "once",
  async action() {
    if (
      (notepad.workwindow.isOpen() || notepad.workwindow.refresh()) &&
      notepad.workwindow.isForeground()
    ) {
      notepad.workwindow.setView({ x: 0, y: 0 }); // move workwindow to top left corner of the screen

      const { width, height } = notepad.workwindow.getView();

      await notepad.mouse.humanMoveTo(width / 2, height / 2); // makes human similar mouse movement from current cursor position to middle of "Notepad" window

      await notepad.keyboard.printText("hello"); // instantly types "hello"

      await notepad.keyboard.sendKey("space", 50); // press key "space", await for 50 milliseconds, release key "space"

      await notepad.keyboard.sendKeys(["w", "o", "r", "l", "d"], [25, 50], 50);

      await notepad.keyboard.sendKey(["ctrl", "s"], 50); // press key combination "ctrl+s", await for 50 milliseconds, release key combination
    }
  },
});
```

---

## Api

- [Hardware or Virtual](#hardware-or-virtual)
  - [.keyboard](#keyboard)
    - [.sendKey](#sendkey)
    - [.toggleKey](#togglekey)
    - [.sendKeys](#sendkeys)
    - [.printText](#printtext)
  - [.mouse](#mouse)
    - [.click](#click)
    - [.toggle](#toggle)
    - [.moveTo](#moveto)
    - [.move](#move)
    - [.humanMoveTo](#humanmoveto)
    - [.scrollWheel](#scrollwheel)
    - [.getPos](#getpos)
  - [.workwindow](#workwindow)
    - [.set](#set)
    - [.get](#get)
    - [.refresh](#refresh)
    - [.setView](#setview)
    - [.getView](#getview)
    - [.setForeground](#setforeground)
    - [.isForeground](#isforeground)
    - [.isOpen](#isopen)
    - [.kill](#kill)
    - [.close](#close)
    - [.capture](#capture)
    - [.colorAt](#colorat)
  - [Interrupt method execution](#interrupt-method-execution)
- [GlobalHotkey](#globalhotkey)
  - [.stop](#stop)
  - [.reassignment](#reassignment)
  - [.unregister](#unregister)
  - [.delete](#delete)
  - [.state](#state)
  - [.isRunning](#isrunning)
  - [unregisterAll](#unregisterall)
  - [deleteAll](#deleteall)
- [LowLevelHook](#lowlevelhook)
  - [on](#on)
- [disableInput](#disableinput)
- [isButtonPressed](#isbuttonpressed)
- [textToImg](#texttoimg)
- [getAllWindows](#getallwindows)
- [getWindowChildren](#getwindowchildren)
- [getScreenSize](#getscreensize)
- [vkToString](#vktostring)
- [sleep](#sleep)
- [Available keyboard buttons](#keyboardbutton)

---

### Hardware or Virtual

```ts
/** Use entire desktop as workwindow */
constructor();
/** Use the first window with {handle} */
constructor(handle: number);
/**
 * Use the first window with {title} and/or {className} and sets it as current workwindow
 * */
constructor(title: string | null, className?: string | null);
/**


{ dependencies }
    end
end

function make_ptx_header(nvccPath, nvccHostCompilerVS, nvccHostCompilerFlags, nvccFlags, dependencies)
    make_nvcc_command(nvccPath, nvccHostCompilerVS, nvccHostCompilerFlags, nvccFlags, dependencies, true)
    buildcommands {
        "{MKDIR} %{cfg.objdir} ",
        bin2cPath .. " -st -c -p 0 " .. "%{cfg.objdir}/%{file.basename}.ptx > %{cfg.objdir}/%{file.basename}.ptx.h",
    }
end

-- Helper function to call in your project definition when you have .cu files to process.
-- This sets up the CUDA compilation for all files within your project using the correct rules for each configuration.
function add_cuda_dependencies()
    -- First the build rules for CUDA files
    setRuntimeToBeKitCompatible()

    filter { "files:**.cu", "system:windows", "configurations:debug" }
    make_nvcc_command(nvccPath, nvccHostCompilerVS, "/Od", "-g -G -allow-unsupported-compiler")
    filter { "files:**.cu", "system:windows", "configurations:release" }
    make_nvcc_command(nvccPath, nvccHostCompilerVS, "", "-allow-unsupported-compiler")
    filter { "files:**.cu", "system:linux", "configurations:debug" }
    make_nvcc_command(nvccPath, nvccHostCompilerVS, "-fPIC -g", "-g -G -allow-unsupported-compiler")
    filter { "files:**.cu", "system:linux", "configurations:release" }
    make_nvcc_command(nvccPath, nvccHostCompilerVS, "-fPIC", "-allow-unsupported-compiler")
    filter {}

    -- link against CUDA runtime static library.
    links { "cudart_static" }

    -- Add in the library directories
    filter { "system:linux" }
    -- lib dir stubs in case you link against 'cuda'.
    libdirs { cudaLibPathLinux .. "/stubs" }
    -- lib dir in case you link against 'cudart_static'.
    libdirs { cudaLibPathLinux }
    links { "cuda" }

    -- linking to cudart_static requires libpthread, libdl, and librt
    -- https://gitlab.kitware.com/cmake/cmake/-/issues/20249
    buildoptions { "-pthread" }
    links { "dl", "pthread", "rt" }
    filter { "system:windows" }
    libdirs { target_deps .. "/cuda/lib/x64" }
    links { "cuda" }
    filter {}

    -- CUDA-specific include directory
    includedirs { cudaIncludePath }
end

-- Define experience to test one particular extension.
-- @ext_name: Extension name.
-- @python_module: Python module name, if different from extension name. (optional)
function define_ext_test_experience(ext_name, args)
    local args = args or {}

    local python_module = get_value_or_default(args, "python_module", ext_name)
    local script_dir_token = (os.target() == "windows") and "%~dp0" or "$SCRIPT_DIR"
    local test_args = {
        "--empty", -- Start empty kit
        "--enable omni.kit.test", -- We always need omni.kit.test extension as testing framework
        "--/exts/omni.kit.test/testExtEnableProfiler=0",
        '--/exts/omni.kit.test/testExtArgs/0="--no-window"',
        '--/exts/omni.kit.test/testExtArgs/1="--allow-root"',
        "--/exts/omni.kit.test/runTestsAndQuit=true", -- Run tests and quit
        "--/exts/omni.kit.test/testExts/0='" .. python_module .. "'", -- O


onception
    {"413", "純血の胎児", "ハートを15個拾うと、天使 タイプの使い魔が永続付与 され、同時に、青ハートが 1個スポーンする#使い魔は最大5体まで付与#使い魔が上限に達しても、 青ハートはスポーンする"}, -- Immaculate Conception
    {"414", "オプションおかわり", "トレジャールームの アイテムを2つの候補 から選択できる"}, -- More Options
    {"415", "光の冠", "青ハート +2#空の赤ハートが無い時：#↑ 攻撃力 +100%#↑ 射程　 +5.25#↓ 弾速　 -0.3 王冠が青く輝き、涙が ダイヤに置き換わる#ダメージを受けると、 その部屋では効果が 無効になる"}, -- Crown of Light
    {"416", "深いポケット", "カード・ルーン・ピルを 2つまで保持可能になる"}, -- Deep Pockets
    {"417", "サキュバス", "オーラを放ちながら 部屋を飛び回る使い魔#オーラ内では攻撃力が 50%アップする#オーラは範囲内の敵に 攻撃力ｘ1.29ダメージ を毎秒与える"}, -- Succubus
    {"418", "フルーツケーキ", "涙にランダムな 特殊効果を付与"}, -- Fruit Cake
    {"419", "テレポート２．０", "未探索のランダムな 部屋にテレポートする#優先順位: {{Room}}>{{BossRoom}}>{{SuperSecretRoom}}>{{Shop}}>{{TreasureRoom}}>{{SacrificeRoom}}> {{DiceRoom}}>{{Library}}>{{CursedRoom}}>{{MiniBoss}}>{{ChallengeRoom}}{{BossRushRoom}}>{{IsaacsRoom}}{{BarrenRoom}}> {{ArcadeRoom}}>{{ChestRoom}}>{{SecretRoom}}>{{DevilRoom}}{{AngelRoom}}>{{ErrorRoom}}"}, -- Teleport 2.0
    {"420", "黒い粉", "円を描くように歩くと 床に五芒星のシンボルが 浮かび上がり、範囲内の 敵に毎秒25のダメージを 与える"}, -- Black Powder
    {"421", "インゲン豆", "おならで近くの敵に 5ダメージを与え、 チャーム状態にする"}, -- Kidney Bean
    {"422", "輝く砂時計", "時間を巻き戻し、一つ 前の部屋に、一つ前の 部屋の状態で戻る"}, -- Glowing Hour Glass
    {"423", "守護の輪", "光輪がアイザックを囲み、 範囲内の敵に攻撃力と 等しいダメージを毎秒 与える#光輪は敵の弾を30%の 確率で跳ね返す#跳ね返された涙は


Passed : The page contains two identical image links without context and with the same target

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title>Rgaa30 Test.6.4.4 Failed 06</title>

 Pour chaque page web, chaque
                lien identique de
                type composite a-t-il les mêmes fonction et destination ?

                 cliquez
                 cliquez

  cliquez <object data="data.png"> ici </object>

  CLIQUEZ <object data="data.png"> ICI </object>

Failed : The page contains two identical links without context and with different target

Two identical links with context are also present in the page

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title>Rgaa30 Test.4-11-2 Passed 01</title>

Rgaa30 Test.4-11-2 Passed 01

 Chaque
                média temporel pré-enregistré seulement vidéo vérifie-t-il, si nécessaire, une de ces conditions (
                hors cas particuliers) ?

 Il existe une audio-description étendue synchronisée

 Il existe une version alternative avec une audio-description étendue synchronisée

                 Passed.

<!DOCTYPE html


.js 18+** (for Node.js anchoring fallback)
- **Git**
- **Funded Coston2 wallet** (for anchoring)

## Quick Start

### 1. Install Dependencies

```bash
pip install -r requirements.txt
```

### 2. Environment Setup

Create a `.env` file:

```bash
# Required for anchoring
FLARE_RPC_URL=https://coston2-api.flare.network/ext/C/rpc
ANCHOR_CONTRACT_ADDR=0x262b1C649CE016717c62b9403E719C4801974CeF
ANCHOR_PRIVATE_KEY=0x<your_private_key_here>

# Optional
ANCHOR_LOOKBACK_BLOCKS=1000
STREAMLIT_ORIGIN=http://localhost:8501
```

### 3. Start the Server

```bash
uvicorn app.main:app --host 127.0.0.1 --port 8000 --reload
```

Server will be available at: http://127.0.0.1:8000

### 4. Test the Flow

#### Record a Tip (PowerShell)
```powershell
$body = @{
    tip_tx_hash = "0xabc123"
    chain = "coston2"
    amount = "0.001"
    currency = "FLR"
    sender_wallet = "0xSender"
    receiver_wallet = "0xReceiver"
    reference = "demo:tip:1"
} | ConvertTo-Json

$response = Invoke-RestMethod -Uri "http://127.0.0.1:8000/v1/iso/record-tip" -Method Post -ContentType "application/json" -Body $body
$receiptId = $response.receipt_id
Write-Host "Receipt ID: $receiptId"
```

#### Record a Tip (Linux/macOS)
```bash
curl -X POST http://127.0.0.1:8000/v1/iso/record-tip \
  -H "Content-Type: application/json" \
  -d '{
    "tip_tx_hash": "0xabc123",
    "chain": "coston2",
    "amount": "0.001",
    "currency": "FLR",
    "sender_wallet": "0xSender",
    "receiver_wallet": "0xReceiver",
    "reference": "demo:tip:1"
  }'
```

#### Get Receipt Status
```bash
curl http://127.0.0.1:8000/v1/iso/receipts/{receipt_id}
```

#### Verify with Bundle URL
```bash
curl -X POST http://127.0.0.1:8000/v1/iso/verify \
  -H "Content-Type: application/json" \
  -d '{"bundle_url": "http://127.0.0.1:8000/files/{receipt_id}/evidence.zip"}'
```

#### Verify with Bundle Hash
```bash
curl -X POST http://127.0.0.1:8000/v1/iso/verify \
  -H "Content-Type: application/json" \
  -d '{"bundle_hash": "0x..."}'
```

## API Endpoints

### Core Endpoints

- `POST /v1/iso/record-tip` - Record a new tip
- `GET /v1/iso/receipts/{id}` - Get receipt status and artifacts
- `POST /v1/iso/verify` - Verify bundle (supports both URL and hash)
- `GET /v1/health` - Health check

### Debug Endpoints

- `POST /v1/debug/anchor` - Direct anchor a bundle hash
- `GET /v1/iso/events/{id}` - Server-Sent Events stream

### UI Endpoints

- `GET /receipt/{id}` - Live receipt page
- `GET /embed/receipt?rid={id}` - Embeddable widget

## Streamlit Admin Panel

### Start Streamlit (Optional)
```bash
streamlit run streamlit_app.py --server.address 127.0.0.1 --server.port 8501
```

Access at: http://localhost:8501

Features:
- View receipt details
- Download artifacts
- Live receipt preview
- Embeddable widget testing

## Docker Support

### Using Docker Compose
```bash
docker compose up --build
```

Services:
- **A


26 -702 786 -732 1266 l-13 205 -2266 0 -2265 0 -12 -115z"/> </g> </svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center center;
  mask-position: center center;
  -webkit-mask-size: auto;
  mask-size: auto;
}
.main-slider-one__shape-three {
  width: 585px;
  height: 518px;
  position: absolute;
  left: -70px;
  bottom: -5px;
  background-color: RGBA(var(--eduhive-primary-rgb, 239, 128, 46), 0.07);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300.000000 339.000000"><g transform="translate(0.000000,339.000000) scale(0.050000,-0.050000)" stroke="none"> <path d="M3850 6769 c-33 -5 -141 -19 -240 -31 -2086 -261 -3681 -2160 -3603 -4288 32 -864 338 -1747 817 -2355 l59 -75 2559 0 2558 0 0 3177 0 3177 -155 66 c-598 252 -1486 399 -1995 329z"/> </g> </svg>');
  mask: url('data:image/svg+xml;utf8,<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300.000000 339.000000"><g transform="translate(0.000000,339.000000) scale(0.050000,-0.050000)" stroke="none"> <path d="M3850 6769 c-33 -5 -141 -19 -240 -31 -2086 -261 -3681 -2160 -3603 -4288 32 -864 338 -1747 817 -2355 l59 -75 2559 0 2558 0 0 3177 0 3177 -155 66 c-598 252 -1486 399 -1995 329z"/> </g> </svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center center;
  mask-position: center center;
  -webkit-mask-size: auto;
  mask-size: auto;
}
.main-slider-one__shape-four {
  position: absolute;
  right: 0;
  bottom: 80px;
  opacity: 0;
  transition: all 800ms ease;
  animation: moveHorizontal2 2s linear infinite;
}
@media (max-width: 767px) {
  .main-slider-one__shape-four {
    right: 60px;
    bottom: 60px;
  }
}
.main-slider-one .active .main-slider-one__content__shape {
  opacity: 1;
  top: 0;
  transition-delay: 500ms;
}
.main-slider-one .active .main-slider-one__sub-title,
.main-slider-one .active .main-slider-one__title,
.main-slider-one .active .main-slider-one__text {
  opacity: 1;
  transform: translateX(0);
}
.main-slider-one .active .main-slider-one__title {
  transition-delay: 700ms;
}
.main-slider-one .active .main-slider-one__title::before, .main-slider-one .active .main-slider-one__title::after {
  transition-delay: 2500ms;
}
.main-slider-one .active .main-slider-one__title::before {
  right: 0;
  bottom: 105%;
}
.main-slider-one .active .main-slider-one__title::after {
  top: 105%;
  right: 0;
}
.main-slider-one .active .main-slider-one__text {
  transition-delay: 1000ms;
}


?content="Hello world"
  //HTTP端口号为80     HTTPS端口号为443

  //请求报文: Request
  /**
   * 请求行：GET  /search(定位)  HTTP/1.1
   * Header：Host: www.baidu.com
   *         Content-Type: text/plain
   *         Content-Length: 21
   *
   * body body body body (提供给服务器的具体信息)
   * */

  //响应报文: Response
  /**
   * 状态行：HTTP/1.1  200  OK
   * Header：Host: www.baidu.com
   *         Content-Type: text/plain
   *         Content-Length: 21
   *
   * body body body body
   * */

  //请求方法(Request method)
  /**
   * GET：   获取资源，无body，参数拼接在path后面(@Path)          幂等性操作
   * POST：  增加或修改资源，有body，参数在body里(@Filed)
   * PUT：   修改资源，有body，参数写在body里(@Path, @Filed)      幂等性操作
   * DELETE: 删除资源，无body，参数拼接在path后面                 幂等性操作
   * HEAD：  和GET相同，但是响应中没有body，只有状态行和Header
   */

  //状态码(Response Status Code)：对响应结果做出类型化描述   方便开发调试
  /**
   * 1xx： 临时性消息  (100：继续发送 header -> Expect:100-continue)  (101：正在切换协议  header -> Upgrade: h2c)
   * 2xx： 成功       （200：成功；201：创建成功）
   * 3xx： 重定向     （301：永久移动；302：暂时移动；304：内容未改变）
   * 4xx： 客户端错误 （400：客户端请求错误；401：认证失败；403：被禁止访问；404：内容未找到）
   * 5xx： 服务器错误 （500：服务器内部错误；503：服务器不可用；504：网关超时）
   */

  //常见Header
  /**
   * 作用：HTTP消息的元数据(关于数据的数据)
   *
   * Host： 目标主机，不是用于寻址，是用于在目标服务器上定位子服务器的
   *        发送请求前：主机域名 -> DNS系统 -> IP地址
   *        虚拟主机：由于域名定位出来的IP都是指向大主机的，大主机需要用域名来定位子主机
   *
   * Content-Type：指定body的类型，主要有四种(没有默认值)
   *      text/html：body返回html文本
   *      application/x-www-form-urlencoded：提交普通表单，纯文字表单    @FormURLEncode  @Field(拼接在body中) @Query(拼接在path后面)
   *      multipart/form-data：二进制文件表单提交  利用boundary分割参数   @Multipart      @Part RequestBody.create()
   *      application/json：body提交json内容/返回json数据               @Body(有converter) 类对象   @RequestBody(无converter)
   *      image/jpeg：提交二进制内容(单文件上传/下载)   @Body  RequestBody.create()
   *      application/zip: 单文件上传/下载
   *
   * Content-Length： 23         body长度
   * Transfer-Encoding：chunked  分块传输，快速响应(服务器压力大时使用该策略)
   * Location：xxxxx   重定向地址
   * User-Agent：xxx   用户代理，区分是谁进行的访问，是什么平台，软件版本等相关信息
   *
   * 断点续传和多线程下载相关
   * Accept-Range: 65534   响应报文中出现，表示可以按字节范围


BPP;
	tjs_int HorizontalResolution;
	tjs_int VerticalResolution;
public:
	tTVPOnDisplayRotateInputEvent(tTJSNI_BaseWindow *win, tjs_int orientation, tjs_int rotate, tjs_int bpp, tjs_int hresolution, tjs_int vresolution ) :
		tTVPBaseInputEvent(win, Tag), Orientation(orientation), Rotate(rotate), BPP(bpp),
		HorizontalResolution(hresolution), VerticalResolution(vresolution) {};
	void Deliver() const
	{ ((tTJSNI_BaseWindow*)GetSource())->OnDisplayRotate( Orientation, Rotate, BPP, HorizontalResolution, VerticalResolution ); }
};

#endif


 Int, length: Int, timestamp: Long) {
    val data: ByteArray = ByteArray(length)
    val timestamp: Long

    init {
        if (buffer != null) {
            System.arraycopy(buffer, offset, data, 0, length)
        }
        this.timestamp = timestamp
    }
}/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.example.android.miditools.synth

/**
 * Very simple Attack, Decay, Sustain, Release envelope with linear ramps.
 *
 * Times are in seconds.
 */
class EnvelopeADSR(private val mSampleRate: Int) : SynthUnit() {
    private var mAttackRate = 0f
    private var mReleaseRate = 0f
    private var mSustainLevel = 0f
    private var mDecayRate = 0f
    private var mCurrent = 0f
    private var mState = IDLE
    private fun setAttackTime(inTime: Float) {
        var time = inTime
        if (time < MIN_TIME) time = MIN_TIME
        mAttackRate = 1.0f / (mSampleRate * time)
    }

    private fun setDecayTime(inTime: Float) {
        var time = inTime
        if (time < MIN_TIME) time = MIN_TIME
        mDecayRate = 1.0f / (mSampleRate * time)
    }

    private fun setSustainLevel(inLevel: Float) {
        var level = inLevel
        if (level < 0.0f) level = 0.0f
        mSustainLevel = level
    }

    private fun setReleaseTime(inTime: Float) {
        var time = inTime
        if (time < MIN_TIME) time = MIN_TIME
        mReleaseRate = 1.0f / (mSampleRate * time)
    }

    fun on() {
        mState = ATTACK
    }

    fun off() {
        mState = RELEASE
    }

    override fun render(): Float {
        when (mState) {
            ATTACK -> {
                mCurrent += mAttackRate
                if (mCurrent > 1.0f) {
                    mCurrent = 1.0f
                    mState = DECAY
                }
            }
            DECAY -> {
                mCurrent -= mDecayRate
                if (mCurrent < mSustainLevel) {
                    mCurrent = mSustainLevel
                    mState = SUSTAIN
                }
            }
            RELEASE -> {
                mCurrent -= mReleaseRate
                if (mCurrent < 0.0f) {
                    mCurrent = 0.0f
                    mState = FINISHED
                }
            }
        }
        return mCurrent
    }

    val isDone: Boolean
        get() = mState == FINISHED

    companion object {
        private const val IDLE = 0
        private const val ATTACK = 1
        private const val DECAY = 2
        private const val SUSTAIN = 3
        private const val RELEASE = 4
        private const val FINISHED = 5
        private const val MIN_TIME = 0.001f
    }

    init {
        setAttackTime(0.003f)
        setDecayTime(0.08f)
        setSustainLevel(0.3f)
        setReleaseTi


ed formats are: "
						+ DELEGATES.keySet().stream().sorted().toList(), IGamlIssue.UNKNOWN_ARGUMENT, TO);
			}

			if (!isAFile && format == null && to != null) {
				desc.info(
						"'save' will use the extension of the file to determine its format. If you are unsure about this, please specify the format of the file using the 'format:' facet",
						IGamlIssue.UNKNOWN_ARGUMENT);
			}

			if (!isAFile && format != null && to != null) {
				String id = format.literalValue();
				// maybe it can represent a string ?
				if (!DELEGATES.containsKey(id) && format.getGamlType() != Types.STRING) {
					desc.error(
							"Unknown file format. Accepted formats are: "
									+ DELEGATES.keySet().stream().sorted().toList(),
							IGamlIssue.UNKNOWN_ARGUMENT, FORMAT);
					return;
				}
				if (ext != null && !id.equals(ext) && !areSynonyms(ext, id)) {
					desc.info("The extension of the file and the format differ. Make sure they are compatible",
							IGamlIssue.CONFLICTING_FACETS);
				}

			}

			if (bufferingStrategy != null && ! BufferingController.BUFFERING_STRATEGIES.contains(bufferingStrategy.literalValue())) {
				desc.error("The value for buffering must be '" + BufferingController.NO_BUFFERING +"', '" + BufferingController.PER_CYCLE_BUFFERING + "', '" + BufferingController.PER_AGENT + "'" + "' or '" + BufferingController.PER_SIMULATION_BUFFERING +"'.",
						IGamlIssue.WRONG_TYPE);
			}

			// Starting from here we validate the attributes, other validations must be done before
			if (att == null) return;

			final boolean isMap = att instanceof MapExpression;
			if (!isMap && !att.getGamlType().isTranslatableInto(Types.LIST.of(Types.STRING))) {
				desc.error("attributes must be expressed as a map<string, unknown> or as a list<string>",
						IGamlIssue.WRONG_TYPE, ATTRIBUTES);
				return;
			}
			if (isMap) {
				final MapExpression map = (MapExpression) att;
				if (map.getGamlType().getKeyType() != Types.STRING) {
					desc.error(
							"The type of the keys of the attributes map must be string. These will be used for naming the attributes in the file",
							IGamlIssue.WRONG_TYPE, ATTRIBUTES);
					return;
				}
			}

			if (ext != null && format == null && !"shp".equals(ext) && !"json".equals(ext) && !"geojson".equals(ext) || format != null
					&& !"shp".equals(format.literalValue()) && !"geojson".equals(format.literalValue()) && !"json".equals(format.literalValue())) {
				desc.warning("Attributes can only be defined for shape, geojson or json files", IGamlIssue.WRONG_TYPE,
						ATTRIBUTES);
			}

			/** The t. */
			final IType<?> t = dataType.getContentType();

			/** The species. */
			final SpeciesDescription species = t.getSpecies();

			if (species == null) {
				if (isMap) {
					desc.error("Attributes of geometries can only be specified with a list of attribute names",
							IGamlIssue.UNKNOWN_FACET, ATTRIBUTES);
				}
				// Error deactivated for fixing #2982.
				// desc.error("Attributes can only be saved for agents", IGamlIssue.UNKNOWN_FACET,
				// att == null ? WITH : ATTRIBUTES);
			}

		}

		/**
		 * Are synonyms.
		 *
		 * @author Alexis Drogoul (alexis.drogoul@ird.fr)
		 * @param ext
		 *            the ext
		 * @param id
		 *            the id
		 * @return true, if successful
		 * @date 13 oct. 2023
		 */
		private boolean areSynonyms(f


==null?e9:n.gp(n).b
if(b1==null)b1=0
f0=o.h(0,B.af)
b2=f0==null?e9:f0.gp(f0).b
if(b2==null)b2=0
f0=s.h(0,o.h(0,B.ae))
f0.toString
n=s.h(0,o.h(0,B.af))
n.toString
b3=Math.max(0,Math.max(f0,n)-b0)
n=s.h(0,o.h(0,B.ae))
n.toString
f0=s.h(0,o.h(0,B.af))
f0.toString
b4=Math.max(0,Math.max(b1-n,b2-f0)-(a9-b0))
f0=o.h(0,B.S)
b5=f0==null?e9:f0.gp(f0).b
if(b5==null)b5=0
f0=o.h(0,B.ag)
b6=f0==null?e9:f0.gp(f0).b
if(b6==null)b6=0
b7=Math.max(b5,b6)
f0=e8.C
n=f0.a
b8=Math.max(b7,a1+n.b+b3+a9+b4+n.d+j)
f0=f0.x
f0.toString
if(!f0)f0=!1
else f0=!0
b9=f0?0:48
c0=q-a5
c1=Math.min(Math.max(b8,b9),c0)
c2=b9>b8?(b9-b8)/2:0
c3=Math.max(0,b8-c0)
f0=e8.L
f0=e8.gyO()?B.w9:B.wa
c4=(f0.a+1)/2
c5=b3-c3*(1-c4)
f0=e8.C.a
c6=f0.b+a1+b0+c5+c2+i
c7=c1-(f0.gbs(f0)+f0.gbw(f0))-a1-j-(b3+a9+b4)
c8=c6+c7*c4
j=e8.L
f0=e8.gyO()?B.w9:B.wa
c9=e8.a_J(c6,b0+c5/2+(c1-(2+a9))/2,c6+c7,f0)
if(o.h(0,B.V)!=null){f0=s.h(0,o.h(0,B.V))
f0.toString
d0=c1+8+f0
f0=o.h(0,B.V)
d1=f0.gp(f0).b+8}else{d0=0
d1=0}if(a3){f0=s.h(0,o.h(0,B.a7))
f0.toString
d2=c1+8+f0
d3=a4}else{d2=0
d3=0}d4=Math.max(d0,d2)
d5=Math.max(d1,d3)
d6=o.h(0,B.bp)
if(d6!=null){f0=o.h(0,B.R)
d6.bI(A.ko(c1,r-(f0==null?B.m:f0.gp(f0)).a),!0)
switch(e8.W.a){case 0:d7=0
break
case 1:f0=o.h(0,B.R)
d7=(f0==null?B.m:f0.gp(f0)).a
break
default:d7=e9}f0=d6.b
f0.to


bl->it_map = NULL;

	kfree(tbl);

	set_pci_iommu(dev->bus, NULL);

	/* Can't free bootmem allocated memory after system is up :-( */
	bus_info[dev->bus->number].tce_space = NULL;
}

static void calgary_dump_error_regs(struct iommu_table *tbl)
{
	void __iomem *bbar = tbl->bbar;
	void __iomem *target;
	u32 csr, plssr;

	target = calgary_reg(bbar, phb_offset(tbl->it_busno) | PHB_CSR_OFFSET);
	csr = be32_to_cpu(readl(target));

	target = calgary_reg(bbar, phb_offset(tbl->it_busno) | PHB_PLSSR_OFFSET);
	plssr = be32_to_cpu(readl(target));

	/* If no error, the agent ID in the CSR is not valid */
	pr_emerg("DMA error on Calgary PHB 0x%x, 0x%08x@CSR 0x%08x@PLSSR\n",
		 tbl->it_busno, csr, plssr);
}

static void calioc2_dump_error_regs(struct iommu_table *tbl)
{
	void __iomem *bbar = tbl->bbar;
	u32 csr, csmr, plssr, mck, rcstat;
	void __iomem *target;
	unsigned long phboff = phb_offset(tbl->it_busno);
	unsigned long erroff;
	u32 errregs[7];
	int i;

	/* dump CSR */
	target = calgary_reg(bbar, phboff | PHB_CSR_OFFSET);
	csr = be32_to_cpu(readl(target));
	/* dump PLSSR */
	target = calgary_reg(bbar, phboff | PHB_PLSSR_OFFSET);
	plssr = be32_to_cpu(readl(target));
	/* dump CSMR */
	target = calgary_reg(bbar, phboff | 0x290);
	csmr = be32_to_cpu(readl(target));
	/* dump mck */
	target = calgary_reg(bbar, phboff | 0x800);
	mck = be32_to_cpu(readl(target));

	pr_emerg("DMA error on CalIOC2 PHB 0x%x\n", tbl->it_busno);

	pr_emerg("0x%08x@CSR 0x%08x@PLSSR 0x%08x@CSMR 0x%08x@MCK\n",
		 csr, plssr, csmr, mck);

	/* dump rest of error regs */
	pr_emerg("");
	for (i = 0; i < ARRAY_SIZE(errregs); i++) {
		/* err regs are at 0x810 - 0x870 */
		erroff = (0x810 + (i * 0x10));
		target = calgary_reg(bbar, phboff | erroff);
		errregs[i] = be32_to_cpu(readl(target));
		pr_cont("0x%08x@0x%lx ", errregs[i], erroff);
	}
	pr_cont("\n");

	/* root complex status */
	target = calgary_reg(bbar, phboff | PHB_ROOT_COMPLEX_STATUS);
	rcstat = be32_to_cpu(readl(target));
	printk(KERN_EMERG "Calgary: 0x%08x@0x%x\n", rcstat,
	       PHB_ROOT_COMPLEX_STATUS);
}

static void calgary_watchdog(unsigned long data)
{
	struct pci_dev *dev = (struct pci_dev *)data;
	struct iommu_table *tbl = pci_iommu(dev->bus);
	void __iomem *bbar = tbl->bbar;
	u32 val32;
	void __iomem *target;

	target = calgary_reg(bbar, phb_offset(tbl->it_busno) | PHB_CSR_OFFSET);
	val32 = be32_to_cpu(readl(target));

	/* If no error, the agent ID in the CSR is not valid */
	if (val32 & CSR_AGENT_MASK) {
		tbl->chip_ops->dump_error_regs(tbl);

		/* reset error */
		writel(0, target);

		/* Disable bus that caused the error */
		target = calgary_reg(bbar, phb_offset(tbl->it_busno) |
				     PHB_CONFIG_RW_OFFSET);
		val32 = be32_to_cpu(readl(target));
		val32 |= PHB_SLOT_DISABLE;
		writel(cpu_to_be32(val32), target);
		readl(target); /* flush */
	} else {
		/* Reset the timer */
		mod_timer(&tbl->watchdog_timer, jiffies + 2 * HZ);
	}
}

static void __init calgary_set_split_completion_timeout(void __iomem *bbar,
	unsigned char busnum, unsigned long timeout)
{
	u64 val64;
	void __iomem *target;
	unsigned int phb_shift = ~0; /* silence gcc */
	u64 mask;

	switch (busno_to_phbid(busnum)) {
	case 0: phb_shift = (63 - 19);
		break;
	case 1: phb_shift = (63 - 23);
		break;
	case 2: phb_shift = (63 - 27);
		break;
	case 3: phb_shift = (63 - 35);
		break;
	default:
		BUG_ON(busno_to_phbid(busnum));
	}

	target = calgary_reg(bbar, CALGARY_CONFIG_REG);
	val64 = be64_to_cpu(readq(target));

	/* zero out this PHB's timer bits */
	mask = ~(0xFUL << phb_shift);
	val64 &= mask;
	val64 |= (timeout << phb_shift);
	writeq(cpu_to_be64(val64), target);
	readq(target); /* flush */
}

static void __init calioc2_handle_quirks(struct iommu_table *tbl, struct pci_dev *dev)
{
	unsigned char busnum = dev->bus->number;
	void __iomem *bbar = tbl->bbar;
	void __iomem *target;
	u32 val;

	/*
	 * CalIOC2 designers recommend setting bit 8 in 0xnDB0 to 1
	 */
	target = calgary_reg(bbar, phb_offset(busnum) | PHB_SAVIOR_L2);
	val = cpu_to_be32(readl(target));
	val |= 0x00800000;
	writel(cpu_to_be32(val), target);
}

static void __init calgary_handle_quirks(struct iommu_table *tbl, struct pci_dev *dev)
{
	unsigned char busnum = dev->bus->number;

	/*
	 * Give split completion a longer timeout on bus 1 for aic94xx
	 * http://bugzilla.kernel.org/show_bug.cgi?id=7180
	 */
	if (is_calgary(dev->device) && (busnum == 1))
		calgary_set_split_completion_timeout(tbl->bbar, busnum,
						     CCR_2SEC_TIMEOUT);
}

static void __init calgary


der(default)]",
    );

    config
        .compile_protos(
            &["../../proto/graplinc/grapl/api/graph/v1beta1/types.proto"],
            &["../../proto/"],
        )
        .unwrap_or_else(|e| panic!("protobuf compilation failed: {}", e));
}
<filename>src/main.rs
use cargo_clone;
use clap::{App, AppSettings, Arg, SubCommand};
use env_logger::{Builder, Target};
use std::{env, io::Write, process::exit};

#[macro_use]
extern crate log;
use log::LevelFilter;

fn start_logging() {
    // Start the logger
    let mut builder = Builder::from_default_env();

    // Enable logging and set custom output for the app if there is no other logging levels specified
    if env::var("RUST_LOG").is_err() {
        env::set_var("RUST_LOG", "cargo_clone");
        builder
            .target(Target::Stdout)
            .format(|buf, record| {
                // Simply write the line without any additional content
                writeln!(buf, "{}", record.args())
            })
            .filter(None, LevelFilter::Info);
    }

    builder.init();
}

fn main() {
    start_logging();

    let matches = App::new("cargo-clone")
        .version(clap::crate_version!())
        .bin_name("cargo")
        .setting(AppSettings::GlobalVersion)
        .setting(AppSettings::SubcommandRequired)
        .setting(AppSettings::ColoredHelp)
        .subcommand(
            SubCommand::with_name("clone")
                .about("Clone a package from crates.io.")
                .setting(AppSettings::AllowLeadingHyphen)
                .setting(AppSettings::ColoredHelp)
                .arg(
                    Arg::with_name("method")
                        .long("method")
                        .takes_value(true)
                        .possible_values(&["crate", "git", "hg", "pijul", "fossil", "auto"])
                        .default_value("auto")
                        .help("Method to fetch package."),
                )
                .arg(
                    Arg::with_name("name")
                        .required(true)
                        .help("Package name to clone."),
                )
                .arg(
                    Arg::with_name("version")
                        .long("version")
                        .takes_value(true)
                        .help("Version to download."),
                )
                .arg(
                    Arg::with_name("extra")
                        .allow_hyphen_values(true)
                        .multiple(true)
                        .help("Additional arguments passed to clone command."),
                ),
        )
        .get_matches();
    let submatches = matches
        .subcommand_matches("clone")
        .expect("Expected `clone` subcommand.");

    let method = submatches.value_of("method").unwrap();
    let name = submatches.value_of("name").unwrap();
    let version = submatches.value_of("version");
    let extra: Vec<&str> = submatches
        .values_of("extra")
        .map_or_else(Vec::new, |e| e.collect());

    let cloner = cargo_clone::Cloner::new();
    let result = cloner.clone(
        // UNWRAP: The argument parser should guarantee only sane values get passed here
        cargo_clone::CloneMethodKind::from(method


        int x = read();
        if(x)
            ++A[map[x]];
    }
    powPoly(n, m);
    printf("%d\n", B[x]);
    return 0;
}
#include <algorithm>
#include <cstdio>
#include <cstring>
int read() {
    int res = 0, c;
    do
        c = getchar();
    while(c < '0' || c > '9');
    while('0' <= c && c <= '9') {
        res = res * 10 + c - '0';
        c = getchar();
    }
    return res;
}
const int size = 100005;
typedef double FT;
struct Edge {
    int to, nxt, w;
    FT rw;
} E[size * 2];
int last[size], cnt = 0;
void addEdge(int u, int v, int w) {
    ++cnt;
    E[cnt].to = v, E[cnt].nxt = last[u], E[cnt].w = w;
    last[u] = cnt;
}
int crt, tsiz, msiz, siz[size];
bool vis[size];
void getRootImpl(int u, int p) {
    siz[u] = 1;
    int csiz = 0;
    for(int i = last[u]; i; i = E[i].nxt) {
        int v = E[i].to;
        if(v != p && !vis[v]) {
            getRootImpl(v, u);
            siz[u] += siz[v];
            csiz = std::max(csiz, siz[v]);
        }
    }
    csiz = std::max(csiz, tsiz - siz[u]);
    if(csiz < msiz)
        msiz = csiz, crt = u;
}
int getRoot(int u, int usiz) {
    msiz = 1 << 30, tsiz = usiz;
    getRootImpl(u, 0);
    return crt;
}
const FT inf = 1e20;
int L, U;
FT ans, A[size], B[size];
int maxlenA = 0, maxlenB = 0, ansLen;
void updateAns(int len, FT res) {
    if(res > ans)
        ansLen = len, ans = res;
}
void doClearA() {
    for(int i = 1; i <= maxlenA; ++i)
        A[i] = -inf;
    maxlenA = 0;
}
void doClearB() {
    for(int i = 1; i <= maxlenB; ++i)
        B[i] = -inf;
    maxlenB = 0;
}
void DFS(int u, int p, int len, FT w) {
    if(len >= L)
        updateAns(len, w);
    if(len < U) {
        A[len] = std::max(A[len], w);
        maxlenA = std::max(maxlenA, len);
        for(int i = last[u]; i; i = E[i].nxt) {
            int v = E[i].to;
            if(v != p && !vis[v])
                DFS(v, u, len + 1, w + E[i].rw);
        }
    }
}
int q[size];
void dp() {
    int b = 1, e = 0, r = maxlenB;
    for(int i = 1; i <= maxlenA; ++i) {
        while(b <= e && q[b] > U - i)
            ++b;
        while(r >= std::max(L - i, 1)) {
            while(b <= e && B[q[e]] <= B[r])
                --e;
            q[++e] = r;
            --r;
        }
        if(b <= e)
            updateAns(i + q[b], A[i] + B[q[b]]);
    }
}
void solve(int u) {
    for(int i = last[u]; i; i = E[i].


 value === 'object') {
        // Recurse into object
        this.stringToDate(value);
      }
    }
  }
}
export type CommandOpts = {
  cwd: string;
  configFilePath?: string;
};

export type CreatedPathsBase = {
  // "tsx" stands for `.ts(x)`s generated by GraphQL code generator as intermediate artifacts
  tsxRelPath: string;
  tsxFullPath: string;
  // "dts" stands for `.d.ts`s generated by graphql-let
  dtsRelPath: string;
  dtsFullPath: string;
};

export type CodegenContextBase<
  type extends 'document-import' | 'schema-import' | 'gql-call' | 'load-call'
> = {
  type: type;
  gqlHash: string;
  // If true, cache is fresh, so we don't need to generate new one.
  skip: boolean;
};

/**
 * Assumes `.graphql`s and `.graphqls`s
 */
export type FileImportCreatedPaths = CreatedPathsBase & {
  gqlRelPath: string;
  gqlFullPath: string;
};

/**
 * Assumes `gql(`query {}`)` calls in `.ts(x)`s
 */
export type GqlCallCreatedPaths = CreatedPathsBase & {
  srcRelPath: string;
  srcFullPath: string;
};

export type SchemaImportCodegenContext = CodegenContextBase<'schema-import'> &
  CreatedPathsBase;

export type DocumentImportCodegenContext = CodegenContextBase<'document-import'> &
  FileImportCreatedPaths;

export type GqlCallCodegenContext = {
  type: 'gql-call';
  gqlContent: string;
  resolvedGqlContent: string;
  dependantFullPaths: string[];
} & CodegenContextBase<'gql-call'> &
  GqlCallCreatedPaths;

export type LoadCallCodegenContext = {
  type: 'load-call';
  gqlPathFragment: string; // load(gqlPathFragment)
  srcRelPath: string;
  srcFullPath: string;
  gqlRelPath: string;
  gqlFullPath: string;
  dependantFullPaths: string[];
} & CodegenContextBase<'load-call'> &
  CreatedPathsBase;

export type CodegenContext =
  | SchemaImportCodegenContext
  | DocumentImportCodegenContext
  | GqlCallCodegenContext
  | LoadCallCodegenContext;

export function isAllSkip(codegenContext: CodegenContext[]): boolean {
  for (const { skip } of codegenContext) if (!skip) return false;
  return true;
}

export type BabelOptions = {
  configFilePath?: string;
};

export function getSchemaImportContext(codegenContext: CodegenContext[]) {
  const context = codegenContext.find(({ type }) => type === 'schema-import');
  if (!context) throw new Error('"schema-import" context must appear');
  return context;
}
/*namespace Rakete {
    export let spitzenAuswahl: Spitze[] = [
        { form: "Viereckig", preis: 0, bildurl: "Bilder/Spitzen/Viereck.png" },
        { form: "Rund", preis: 0, bildurl: "Bilder/Spitzen/Kreis.png" },
        { form: "Dreieckig", preis: 0, bildurl: "Bilder/Spitzen/Dreieck.png" }
    ];

    let mySpitze: Spitze[] = spitzenAuswahl;
    let myJSON: string = JSON.stringify(mySpitze);
    console.log(myJSON);

    export let rumpfAuswahl: Rumpf[] = [
        { form: "Viereckig", preis: 0, bildurl: "Bilder/Ruempfe/Viereck.png" },
        { form: "Rund", preis: 0, bildurl: "Bilder/Ruempfe/Kreis.png" },
        { form: "Dreieckig", preis: 0, bildurl: "Bilder/Ruempfe/Dreieck.png" }
    ];

    let myRumpf: Rumpf[] = rumpfAuswahl;
    let myJSON1: string = JSON.stringify(myRumpf);
    console.log(myJSON1);

    export let antriebAuswahl: Antrieb[] = [
        { form: "Viereckig", preis: 0, bildurl: "Bilder/Antriebe/Viereck.png" },
        { form: "Ru


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

#include "SubscriptionToCourseForm.hpp"
#include "Student.hpp"
#include "Course.hpp"

#include "ex01.inc"

SubscriptionToCourseForm::SubscriptionToCourseForm()
  : Form(FormType::SubscriptionToCourse), course_(nullptr), student_(nullptr) {
  if (DEBUG)
    std::cout << GREEN << "[NEW]" << YELLOW << "[SubscriptionToCourseForm]\t" << ENDC << std::endl;
}

SubscriptionToCourseForm::~SubscriptionToCourseForm() {
  if (DEBUG)
    std::cout << RED << "[DESTROY]" << YELLOW << "[SubscriptionToCourseForm]\t" << ENDC << std::endl;
}

void SubscriptionToCourseForm::FillCourseAndStudent(std::shared_ptr<Course> course, std::shared_ptr<Student> student) {
  course_ = course;
  student_ = student;
}

void SubscriptionToCourseForm::Execute() {
  if (Errors() == 0) {
    course_->Subscribe(student_);
    if (DEBUG)
      std::cout << *this << GREEN << " [EXECUTE]\t" << ENDC << std::endl;
  } else {
    std::cout << RED << "[" << YELLOW << "Warning" << RED << " EXECUTE]" << ENDC << *this << " is not valid :(" << std::endl;
  }
}

unsigned SubscriptionToCourseForm::Errors() {
  unsigned errors = 0;

  if (!HasCourse())
    errors++;
  if (!HasStudent())
    errors++;
  return errors;
}

const std::vector<std::string> SubscriptionToCourseForm::ErrorsList() {
  std::vector<std::string> errors;

  if (!HasCourse())
    errors.push_back("Must have a valid course");
  if (!HasStudent())
    errors.push_back("Must have a valid student");
  return errors;
}

bool SubscriptionToCourseForm::HasCourse() {
  return course_ != nullptr;
}

bool SubscriptionToCourseForm::HasStudent() {
  return student_ != nullptr;
}
std::ostream& operator<<(std::ostream& s, const SubscriptionToCourseForm& sc) {
    s << BLUE << "[SubscriptionToCourseForm]" << ENDC << *(dynamic_cast<const Form*>(&sc));
  return (s);
}

//***************************//
//*Template by pulgamecanica*//
//***************************//

#include "Person.hpp"
#include "Room.hpp"

#include "ex01.inc"

Person::Person(const std::string & name): name_(name){
  if (DEBUG)
    std::cout << GREEN << "[NEW]" << YELLOW << "[Person]\t" << ENDC << name_ << std::endl;
}

Person::~Person() {
  if (DEBUG)
    std::cout << RED << "[DESTROY]" << YELLOW << "[Person]\t" << ENDC << name_ << std::endl;
}

const std::string & Person::GetName() const {
  return name_;
}

void Person::SetCurrentRoom(std::shared_ptr<Room> room) {
  if (current_room_.lock() == room) {
    std::cout << RED << "[" << YELLOW << "Warning" << RED << " SET CURRENT ROOM]" << ENDC << *this << " Cannot enter the same room where you are." << std::endl;
  } else {
    current_room_ = room;
    if (DEBUG)
      std::cout << *this << GREEN << " [SET CURRENT ROOM]\t" << ENDC << *room << std::endl;
  }
}

void Person::ClearCurrentRoom() {
  if (current_room_.expired()) { // If you are not in a room
    std::cout << RED << "[" << YELLOW << "Warning" << RED << " SET CURRENT ROOM]" << ENDC << *this << " Cannot exit a room where you are not." << std::endl;
  } else {
    current_room_.reset();
    if (DEBUG)
      std::


n

plugins {
    kotlin("jvm")
}

kotlin {
    explicitApi()

    compilerOptions {
        apiVersion.set(KotlinVersion.KOTLIN_1_8)
        languageVersion.set(KotlinVersion.KOTLIN_2_2)
    }

    java {
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_1_8)

            // Generate default methods for implementations in interfaces.
            // Not needed from Kotlin 2.2? See https://youtrack.jetbrains.com/issue/KT-71768
            freeCompilerArgs.add("-Xjvm-default=all-compatibility")
        }
    }
}

tasks.withType<JavaCompile>().configureEach {
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
}

tasks.register<Jar>("sourcesJar") {
    archiveClassifier.set("sources")
    from(sourceSets.main.get().allSource)
}
/*

   Copyright 2021-2025 Michael Strasser.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

*/

package io.klogging.slf4j

import io.klogging.Level.DEBUG
import io.klogging.Level.ERROR
import io.klogging.Level.INFO
import io.klogging.Level.NONE
import io.klogging.Level.TRACE
import io.klogging.Level.WARN
import io.klogging.logger
import io.klogging.noCoLogger
import io.kotest.core.spec.style.DescribeSpec
import io.kotest.datatest.withData
import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.maps.shouldContainExactly
import io.kotest.matchers.maps.shouldHaveSize
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import org.slf4j.LoggerFactory
import org.slf4j.MDC
import kotlin.random.Random

@Suppress("TOO_MANY_LINES_IN_LAMBDA", "PARAMETER_NAME_IN_OUTER_LAMBDA")
class NoCoLoggerWrapperTest :
    DescribeSpec({
        describe("NoCoLoggerWrapper") {

            describe("logs at level") {
                it("`TRACE`") {
                    val saved = savedEvents()
                    LoggerFactory.getLogger(randomString()).trace(randomString())

                    saved shouldHaveSize 1
                    saved.first().level shouldBe TRACE
                }
                it("`DEBUG`") {
                    val saved = savedEvents()
                    LoggerFactory.getLogger(randomString()).trace(randomString())

                    saved shouldHaveSize 1
                    saved.first().level shouldBe TRACE
                }
                it("`INFO`") {
                    val saved = savedEvents()
                    LoggerFactory.getLogger(randomString()).info(randomString())

                    saved shouldHaveSize 1
                    saved.first().level shouldBe INFO
                }
                it("`WARN`") {
                    val saved = savedEvents()
                    LoggerFactory.getLogger(randomString()).warn(randomString())

                    saved shouldHaveSize 1
                    saved.first().level shouldBe WARN
                }
                it("`ERROR`") {
                    val saved = savedEvents()
                    LoggerFactory.getLogger(randomString()).error(randomString())

                    saved shouldHaveSize 1
                    saved.first().level shouldBe ERROR
                }
            }

            describe("uses minimum log level") {
                it("`DEBUG`") {
                    val saved = savedEvents(min


velation 13:11 says; "And I beheld another beast coming up out of the earth; and he had "2 HORNS" (horns=rulers, ie-- 2 presidents) and he {both horns} exercises ALL THE AUTHORITY of the 1st {666} Beast before him, and causes the earth and them which dwell therein to worship the 1st beast..."

Since William Clinton = 666, and is called the "1st Beast" (not horn)...  what authority did he have?  He was president of the U.S.!  Therefore, the "2 horns" in Rev. 13:11 are said to have the SAME AUTHORITY the 666 Beast held (ie--presidents), and that the "2nd horn" of the "Other Beast" would cause the world to worship the 1st beast whose name = 666.

The 666 Beast was at first, only president of the U.S., and he cannot become the WORLD RULER, until the "2nd Horn" of the "Other Beast" rises!  If Obama is that "2nd Horn", then he would be the one with the authority to command the world to worship the 666 Beast (of which William Clinton equals).

We all know the "UNUSUAL" circumstances of Bush's election to President! And we all know the "PROFOUND" events that QUICKLY BEGAN TO HAPPEN!!! Not the least of which was the "HORROR OF 911"!!! Then, soon followed the "WAR IN AFGHANISTAN"...followed quickly by the "GLOBAL TERROR WAR"!!! Then--(one of the main agendas)--"THE WAR ON IRAQ"!!! (Which is all Biblical! See Rev. 17 & 18.) So we see that since the election of Bush--the ENTIRE WORLD has been thrown into a deceptive "GLOBAL TERROR WAR"! But, in this scenario, Bush would only be the "1st horn" of the "2 horns".  The President after Bush would be the "2nd horn", to usher in the '666 Antichrist'.

NOTE:  Barack Obama (1st Black pres.) and this developing "Economic Crisis" bears a NOTABLE resemblance to the "3RD HORSEMAN" of Revelation 6 (which also depicts a food/economic crisis and a black horse).

Rev. 6:5,6 says; "...I heard the 3rd beast say, Come and see. And I beheld and lo a BLACK horse; and...a pair of balances in his hand... A measure of wheat for a penny, and three measures of barley for a penny;..."  (This will lead to the 'mark of the beast in order to buy and sell'.)

The 4th Horseman depicts the '1st (666) Beast' taking full control (accompanied by the False Prophet).

TvF OUTREACH P.O. BOX 42002 LAS VEGAS, NV 89116   TvFoutreach@webtv.net

LIBERTY LOST

(A summary compiled by F. Gregory Anderson)

There are powerful men seeking to destroy the basic foundations of our liberty. They have been quite successful in their plans so far. They are disrupting the family, corrupting our governments destroying morality, and attacking religious faith and religious freedom.

Their objective is to "...eliminate liberty--economic, political, and religious--and establish in its place the most widespread and complete totalitarian system ever to oppress mankind. These men have been working under such perfect disguise that many Americans have not been able to recognize them or their methods." ["Freeman Digest" May, 1978 p.53.] They scheme and plan, manipulate and destroy. They use crime and murder, lies and fear. They are not bound by law, for they control most of the judgment seats.

With enough study, it is possible to learn the goals of these power brokers from their own documents. Their goal is worldwide control with themselves in charge. They fully intend to control all governments, control the money, control the military, control the courts, destroy all religions except those that actually teach evil rather than good, and control access to food and medicine.

They have a large measure of control over many of these things


ousWindow = name;
        }
        System.out.printf("Opened %sUI\n", name);
    }

    private static void setDefault(javax.swing.JFrame window) {
        window.setVisible(true);
        window.setResizable(false);
    }
}
package com.dragunwf.app.UserInterface;

import com.dragunwf.app.Misc.Data;
import com.dragunwf.app.Misc.Student;
import com.dragunwf.app.Misc.WindowManager;

import javax.swing.DefaultListModel;
import com.dragunwf.app.Misc.WindowManager;

public class ViewStudents extends javax.swing.JFrame {

    /**
     * Creates new form StudentListMenu
     */
    public ViewStudents() {
        initComponents();
        DefaultListModel<String> model = new DefaultListModel<>();
        for (int i = 0, n = Data.getStudents().size(); i < n; i++) {
            Student student = Data.getStudents().get(i);
            String name = student.getName();
            double gwa = student.getGWA();
            System.out.println(name);
            model.add(i, String.format("%s | GWA: %s\n", name, gwa));
        }
        studentList.setModel(model);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTable2 = new javax.swing.JTable();
        jButton1 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        titleLabel = new javax.swing.JLabel();
        studentScrollPane = new javax.swing.JScrollPane();
        studentList = new javax.swing.JList<>();
        backButton = new javax.swing.JButton();

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jTable2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(jTable2);

        jButton1.setText("jButton1");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

        titleLabel.setFont(new java.awt.Font("Segoe UI", 0, 22)); // NOI18N
        titleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        titleLabel.setText("Students Applying...");
        titleLabel.setToolTipText("");

        studentScrollPane.setViewportBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

        studentList.setModel(new javax.swing.AbstractListModel<String>() {
            String[] strings = { "1. Marc | GWA: 1.0", "2. Jack | GWA: 2.25", " " };
            public int getSize() { return strings.length; }
            public String getElementAt(int i) { return strings


gemdos	Dcreate                 ;
	pea	.fuldir                 ;
	gemdos	Dcreate                 ;
	pea	.subdir                 ;
	gemdos	Dcreate                 ;

	clr.w	-(sp)                   ; Create files
	pea	.filerw                 ;
	gemdos	Fcreate                 ;
	clr.w	-(sp)                   ;
	pea	.filena                 ;
	gemdos	Fcreate                 ;
	clr.w	-(sp)                   ;
	pea	.filero                 ;
	gemdos	Fcreate                 ;

	clr.w	-(sp)                   ; Set file attributes
	move.w	#1,-(sp)                ;
	pea	.filena                 ;
	gemdos	Fattrib                 ;
	move.w	#1,-(sp)                ;
	move.w	#1,-(sp)                ;
	pea	.filero                 ;
	gemdos	Fattrib                 ;

	unlk	a6                      ; Free all calls at once

	rts

.clean	link	a6,#0                   ;

	move.w	drive,-(sp)             ; Switch to test drive
	gemdos	Dsetdrv                 ;

	pea	.root                   ; Dsetpath '\'
	gemdos	Dsetpath                ;

	clr.w	-(sp)                   ; Disable read-only flag
	move.w	#1,-(sp)                ;
	pea	.filero                 ;
	gemdos	Fattrib                 ;

	pea	.filero                 ; Delete files
	gemdos	Fdelete                 ;
	pea	.filena                 ;
	gemdos	Fdelete                 ;
	pea	.filerw                 ;
	gemdos	Fdelete                 ;

	pea	.subdir                 ; Delete directories
	gemdos	Ddelete                 ;
	pea	.fuldir                 ;
	gemdos	Ddelete                 ;
	pea	.topdir                 ;
	gemdos	Ddelete                 ;

	cmp.l	#EACCDN,d0              ; Check if the directory is clean
	beq	abort                   ; Abort if not

	unlk	a6                      ; Free all calls at once

	rts

	; Sample test matrix

;.name_:
;	dc.b	'',0
;	even
;
;.do_:
;
;	rts
;
;.mx_:
;	dc.l	ALOGD0,.root
;	dc.l	ALOGD0,.topdir
;	dc.l	ALOGD0,.fuldir
;	dc.l	ALOGD0,.subdir
;	dc.l	ALOGD0,absdir
;	dc.l	ALOGD0,absfile
;	dc.l	ALOGD0,.filerw
;	dc.l	ALOGD0,.filena
;	dc.l	ALOGD0,.filero
;
;	dc.l	ALOGD0,.fulrel
;	dc.l	ALOGD0,.subre


cion(31,"Need a coffe"));
    this.canciones.push( new Cancion(16,"Descanso please"));
    this.canciones.push( new Cancion(1756,"Angular again o no"));
  }

}
export const baseContrastColors = [
  "#e54040",
  "#32a9dc",
  "#2ee329",
  "#7126a1",
  "#e38f0f",
  "#3d811a",
  "#ffea00",
  "#2d2d2d",
  "#da42a6",
  "#a44e0c",
];

export const getColorFromString = (text: string): string => {
  const SEED = 16777215;
  const FACTOR = 49979693;

  let b = 1;
  let d = 0;
  let f = 1;

  if (text.length > 0) {
    for (let i = 0; i < text.length; i++) {
      text[i].charCodeAt(0) > d && (d = text[i].charCodeAt(0));
      f = parseInt(String(SEED / d));
      b = (b + text[i].charCodeAt(0) * f * FACTOR) % SEED;
    }
  }

  let hex = ((b * text.length) % SEED).toString(16);
  hex = hex.padEnd(6, hex);
  return `#${hex}`;
};

export const hexToRGB = (hex: string): string => {
  if (hex.length != 7) return "0, 0, 0";
  const r = parseInt(hex.slice(1, 3), 16);
  const g = parseInt(hex.slice(3, 5), 16);
  const b = parseInt(hex.slice(5, 7), 16);
  return `${r}, ${g}, ${b}`;
};

export const getContrastColor = (value: string) => {
  let hex = value.replace("#", "").trim();

  // convert 3-digit hex to 6-digits.
  if (hex.length === 3) {
    hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
  }

  if (hex.length !== 6) throw new Error("Invalid HEX color.");

  const r = parseInt(hex.slice(0, 2), 16);
  const g = parseInt(hex.slice(2, 4), 16);
  const b = parseInt(hex.slice(4, 6), 16);
  const yiq = ((r*299)+(g*587)+(b*114))/1000;
  return yiq >= 128 ? "#000000" : "#FFFFFF";
};
import { response } from 'express'
import connection from '../connection/Connection'

interface DTOUser{

name : string,
email : string,
friend ?: string

}

export default class CreateUserService{

       async execute({name, email, friend = ''}: DTOUser ){

          const instance = connection.model('persons')

          if(name.length <= 2){

            throw new Error('Use a name longer than 2 letters ')

          }

          if(!name){

            throw new Error('Please complete field User')

          }

          if(!email){

            throw new Error('Please complete field Email')

          }

          const finded = await instance.find( {email: email} ).limit(1).select({email: 1})
          console.log('v',finded.length)

          if(finded.length > 0){

            throw new Error('E-mail already registered')
          }

           const newUser =  new instance({
              name,
              email,
              friend
             })

             await newUser.save()

          return newUser

        }
}import { Extent2d } from "../domain/extent2d";

export class WcsUrlOptions {
   constructor(public options: any) {}

   get resolutionY() {
      return  this.options.resolutionY ? this.options.resolutionY : Math


s-Control-Allow-Methods: undefined', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: true,
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Methods')).toEqual('GET');
  });

  test('Access-Control-Allow-Methods: array', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: true,
          methods: ['GET', 'POST', 'OPTIONS'],
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Methods')).toEqual('GET,POST,OPTIONS');
  });

  test('Access-Control-Allow-Methods: wildcard', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: true,
          methods: '*',
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Methods')).toEqual('*');
  });

  test('Access-Control-Allow-Origin: true', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: true,
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Origin')).toEqual('https://httpbin.org');
  });

  test('Access-Control-Allow-Origin: false', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: false,
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.has('Access-Control-Allow-Origin')).toBeFalsy();
  });

  test('Access-Control-Allow-Origin: array', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: [
            'https://httpbin.org',
            'http://example.com',
          ],
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Origin')).toEqual('https://httpbin.org');
  });

  test('Access-Control-Allow-Origin: wildcard', () => {
    const context: Context = {
      ...baseContext,
      options: {
        upstream: {
          domain: 'httpbin.org',
        },
        cors: {
          origin: '*',
        },
      },
    };
    useCORS(context, () => null);
    expect(context.response.headers.get('Access-Control-Allow-Origin')).toEqual('*');
  });
});
import os from 'os';

export interface IOptions {
  /**
   * @description 基本目录
   * @default process.cwd()
   */
  baseDir?: string;
  /**
   * @description tsconfig.json 配置文件
   * @default tsconfig.json
   */
  tsConfig?: string;
  /**
   * @description
   * @default false
   */
  removeComments?: boolean;
  /**
   * @description 模块前缀(默认使用项目名称或者自定义)


dString;
        const char* inputString = STRING_c_str(input);
        size_t inputLen = strlen(inputString);
        if ((decodedStringSize = calculateDecodedStringSize(inputString, inputLen)) == 0)
        {
            LogError("URL_Decode:: Invalid input string");
            result = NULL;
        }
        else if ((decodedString = (char*)malloc(decodedStringSize)) == NULL)
        {
            LogError("URL_Decode:: MALLOC failure on decode.");
            result = NULL;
        }
        else
        {
            createDecodedString(inputString, inputLen, decodedString);
            result = STRING_new_with_memory(decodedString);
            if (result == NULL)
            {
                LogError("URL_Decode:: MALLOC failure on decode");
                free(decodedString);
            }
        }
    }
    return result;
}


s a WebSocket connection
```
ws://localhost:3014/channel?channel_reserve=-1&host=localhost&initiator_amount=8&initiator_id=ak_mLjWgLbapr5CiVD2Q248aS2TQj9itXnoPv5tteXvZaJ8tdD2C&keep_running=false&lock_period=10&port=13179&protocol=json-rpc&push_amount=1&responder_amount=4&responder_id=ak_26jAbCjYM16ppbhFG6PCQhv6HkwRAri7QNJfoEtb1R8amLscpt&role=initiator
```

#### initiator <--- node
```javascript
{
  "channel_id": null,
  "error": {
    "code": 3,
    "data": [
      {
        "code": 105,
        "message": "Value too low"
      }
    ],
    "message": "Rejected",
    "request": {}
  },
  "id": null,
  "jsonrpc": "2.0",
  "version": 1
}
```

#### initiator closes WebSocket connection

#### responder opens a WebSocket connection
```
ws://localhost:3014/channel?channel_reserve=-1&host=localhost&initiator_amount=8&initiator_id=ak_mLjWgLbapr5CiVD2Q248aS2TQj9itXnoPv5tteXvZaJ8tdD2C&keep_running=false&lock_period=10&port=13179&protocol=json-rpc&push_amount=1&responder_amount=4&responder_id=ak_26jAbCjYM16ppbhFG6PCQhv6HkwRAri7QNJfoEtb1R8amLscpt&role=responder
```

#### responder <--- node
```javascript
{
  "channel_id": null,
  "error": {
    "code": 3,
    "data": [
      {
        "code": 105,
        "message": "Value too low"
      }
    ],
    "message": "Rejected",
    "request": {}
  },
  "id": null,
  "jsonrpc": "2.0",
  "version": 1
}
```

#### responder closes WebSocket connection

#### initiator opens a WebSocket connection
```
ws://localhost:3014/channel?channel_reserve=2&host=localhost&initiator_amount=8&initiator_id=ak_mLjWgLbapr5CiVD2Q248aS2TQj9itXnoPv5tteXvZaJ8tdD2C&keep_running=false&lock_period=10&port=13179&protocol=json-rpc&push_amount=-1&responder_amount=4&responder_id=ak_26jAbCjYM16ppbhFG6PCQhv6HkwRAri7QNJfoEtb1R8amLscpt&role=initiator
```

#### initiator <--- node
```javascript
{
  "channel_id": null,
  "error": {
    "code": 3,
    "data": [
      {
        "code": 105,
        "message": "Value too low"
      }
    ],
    "message": "Rejected",
    "request": {}
  },
  "id": null,
  "jsonrpc": "2.0",
  "version": 1
}
```

#### initiator closes WebSocket connection

#### responder opens a WebSocket connection
```
ws://localhost:3014/channel?channel_reserve=2&host=localhost&initiator_amount=8&initiator_id=ak_mLjWgLbapr5CiVD2Q248aS2TQj9itXnoPv5tteXvZaJ8tdD2C&keep_running=false&lock_period=10&port=13179&protocol=json-rpc&push_amount=-1&responder_amount=4&responder_id=ak_26jAbCjYM16ppbhFG6PCQhv6Hkw


Можно ли восстановить резервные копии, сделанные главным администратором?  По умолчанию владельцы виртуальных серверов могут восстанавливать только те резервные копии, которые они сделали сами. Однако, если этот параметр изменен на Да , резервные копии, сделанные главным администратором ( <tt>root</tt> ), также могут быть восстановлены владельцами домена. Естественно, это относится только к их собственным доменам.
 Эту опцию следует включать только в том случае, если вы уверены, что все места назначения резервных копий безопасны, поскольку восстановление резервной копии, созданной ненадежным пользователем, может поставить под угрозу безопасность системы.
 Настройки выбора пользователя и каталога  Webmin предоставляет стандартное всплывающее окно выбора пользователя и каталога, которое можно настроить для предоставления доступа некоторым или всем пользователям или каталогам. Значения по умолчанию, как правило, относительно ограничены и разрешают доступ только пользователям в домене, принадлежащем учетной записи владельца домена, а также каталогам и файлам, принадлежащим группе владельцев домена. Если вы хотите явно настроить эти параметры, выберите «Параметры ниже». Будьте осторожны с этими параметрами, так как очень легко предоставить привилегии, которые не должны быть предоставлены недоверенному пользователю. Подстановка переменных происходит для следующих связанных параметров, поэтому можно указать ${USER} для выбора пользователя, которому принадлежит домен, или ${HOME}, например, для выбора домашнего каталога владельца домена. Toplu Sunucu Oluşturma  Bu sayfa, bir metin dosyasından aynı anda birden fazla sanal sunucu oluşturmanıza olanak tanır. Bu dosya her satırda bir sunucu listelemeli ve her satır aşağıdaki biçime sahip olmalıdır:
 <tt>domain : description : password :[ username ]:[ parent-domain ]:[ ip-address ]:[ alias-domain ]</tt>
 Alanların anlamları:

 alan adı
 Foo.com gibi oluşturulacak sanal sunucunun etki alanı adı.
 açıklama
 Joe'nun Web


 width) * 4;
        r = input[idx + 0];
        g = input[idx + 1];
        b = input[idx + 2];
        stride = strideDistribution();

        theta = randomScalar(0, Math.PI * 2);
        thetaDecay = 0;
        thetaDecayDecay = randomScalar(0.0001, 0.001);
        particles[i] = { x, y, stride, theta, thetaDecay, thetaDecayDecay, r, g, b };
      }

      const idx = (Math.trunc(x) + Math.trunc(y) * width) * 4;

      // linear gradient [ 0 .. 1 .. 0 ] for path coloring
      const exposure = 1 - Math.abs(1 - j / (iterations - 1) * 2);
      output[idx + 0] += exposure * r;
      output[idx + 1] += exposure * g;
      output[idx + 2] += exposure * b;

      // compute the luminance and introduce chaos
      let luminance = getLuminance(input[idx + 0], input[idx + 1], input[idx + 2]);
      luminance = luminance * Math.PI * 2 * period + theta;

      // update orbit
      particles[i].theta += thetaDecay;
      particles[i].thetaDecay += thetaDecayDecay;

      // modulo + negative number correction
      x = (x + Math.sin(luminance) * stride) % width;
      x = (x + width) % width;
      y = (y + Math.cos(luminance) * stride) % height;
      y = (y + height) % height;

      particles[i].x = x;
      particles[i].y = y;
    }

    onIterationFinished(output, j);
  }
  return output;
};
/// <reference path="Item.ts" />

namespace Estella.Example.AirHockey {

    export class ItemMallet extends Item implements IItemMallet {

        private _clientForceVector: number = ++this.lastAttributeId;
        private _clientForceModifier: number = ++this.lastAttributeId;
        private _moveToPosition: number = ++this.lastAttributeId;

        protected createBody(): Matter.Body {
            let body = Matter.Bodies.circle(0, 0, this.getRadius(), { restitution: 0, density: 0.001, friction: 0, frictionAir: 0.1, frictionStatic: 0.5, inertia: Infinity, label: ItemMallet.name });
            return body;
        }

        public getRadius(): number {
            return 30;
        }

        public getMoveToPosition(): IVector {
            return VectorHelper.parse(this.attributeList.get(this._moveToPosition));
        }

        public setMoveToPosition(position: IVector): void {
            this.attributeList.set(this._moveToPosition, position);
        }
    }

    export module ItemMallet {
        export const type = ModuleInfo.name + '.' + ItemMallet.name;
    }
}import { Entity, genId, id } from './entity'

interface Comment extends Entity {
  content: string
  createdAt: Date
  authorId: id
  postId: id
}

const comments: Comment[] = []

const getCommentsByPost = (postId: id) =>
  comments.filter((c) => c.postId === postId)

const getCommentsByUser = (userId: id) =>
  comments.filter((c) => c.authorId === userId)

const addComment = (authorId: id, postId: id, content: string) => {
  const newComment: Comment = {
    id: genId(),
    content,
    createdAt: new Date(),
    authorId,
    postId,
  }
  comments.push(newComment)
  return newComment
}

export { Comment, getCommentsByPost, getCommentsByUser, addComment }
function sum(...a: number[]): number {
    return a.reduce((acc, val) => acc + val, 0);


":2}]',	'',	'2',	'',	'',	'',	'',	'',	'',	'',	'',	'1044314',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1044314',	'',	'我支持涅毒的意见。',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'3033001',	'',	'',	'2',	'',	'白鳍',	'Baiji',	'[{"id":3033001,"pos":2,"enter":2}]',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1044315',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1044315',	'',	'我也赞成涅毒的意见！',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'4017001',	'',	'',	'2',	'',	'闪电',	'Lightning',	'[{"id":4017001,"pos":2,"enter":2}]',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1044316',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1044316',	'',	'嗯……我觉得涅毒说得对。',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'2008001',	'',	'',	'2',	'',	'旋律',	'Melody',	'[{"id":2008001,"pos":2,"enter":2}]',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1044317',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1044317',	'',	'你们不能抹杀我的意识！我、我是“研者”的成员，我可以为你们提供你们想要的一切资料——',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'9417001',	'',	'',	'2',	'',	'毒祸魇使',	'Poisonous Emissary',	'[{"id":9417001,"pos":2,"enter":2}]',	'',	'1',	'',	'',	'',	'',	'',	'',	'',	'',	'1044318',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1044318',	'',	'地、地球人！你肯定很想知道，我们打算利用地球做什么吧？我们有一个计划，为了实现那个计划，我们派了一个人在地球上潜伏……',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'9417001


ilable":"申し訳ありません、現在サービスを利用することができません","notInDic":"辞書にありません","oneChange":"スペルチェック完了: １語句変更されました","progress":"スペルチェック処理中...","title":"スペルチェック","toolbar":"スペルチェック"}};/*
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.lang['hr']={"editor":"Bogati uređivač teksta, %1","editorPanel":"Ploča Bogatog Uređivača Teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoć","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Flash","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"Dugački opis URL","cssClass":"Klase stilova","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Poništi","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veličine","generalTab":"Općenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj.","confirmNewPage":"Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"Odredište","targetNew":"Novi prozor (_blank)","targetTop":"Vršni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Središnje","alignJustify":"Blok poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","alignNone":"None","invalidValue":"Neispravna vrijednost.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Vrijednost


o, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

//! # Parameters:
//! - `private_key`: The private key used in key agreement.
//! - `public_key`: The public key used in key agreement.
//!
//! # Errors:
//! An error will be returned if:
//! - The `key_agreement()` operation results in an all-zero output.
//!
//! # Security:
//! - Multiple different `private_key`/`public_key` pairs can produce the same shared key. Therefore,
//! using the resulting `SharedKey`, directly from `key_agreement()`, is not recommended. This is handled
//! automatically in [`orion::kex`].
//! - To securely generate a strong key, use [`PrivateKey::generate()`].
//!
//! # Recommendation:
//! - It is recommended to use [`orion::kex`] when possible.
//!
//! # Example:
//! ```rust
//! use orion::hazardous::ecc::x25519::{PrivateKey, PublicKey, SharedKey, key_agreement};
//! use core::convert::TryFrom;
//!
//! // Alice generates a private key and computes the corresponding public key
//! let alice_sk = PrivateKey::generate();
//! let alice_pk = PublicKey::try_from(&alice_sk)?;
//!
//! // Bob does the same
//! let bob_sk = PrivateKey::generate();
//! let bob_pk = PublicKey::try_from(&bob_sk)?;
//!
//! // They both compute a shared key using the others public key
//! let alice_shared = key_agreement(&alice_sk, &bob_pk)?;
//! let bob_shared = key_agreement(&bob_sk, &alice_pk)?;
//!
//! assert_eq!(alice_shared, bob_shared);
//! # Ok::<(), orion::errors::UnknownCryptoError>(())
//! ```
//! [`PrivateKey::generate()`]: crate::hazardous::ecc::x25519::PrivateKey::generate
//! [`orion::kex`]: crate::kex

use super::fiat_curve25519_u64;
use crate::errors::UnknownCryptoError;
use crate::util::secure_cmp;
use core::ops::{Add, Mul, Sub};

/// The size of a public key used in X25519.
pub const PUBLIC_KEY_SIZE: usize = 32;

/// The size of a private key used in X25519.
pub const PRIVATE_KEY_SIZE: usize = 32;

/// The size of a shared key used in X25519.
pub const SHARED_KEY_SIZE: usize = 32;

/// u-coordinate of the base point.
const BASEPOINT: [u8; 32] = [
    9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
];

/// The result of computing a shared secret with a low order point.
const LOW_ORDER_POINT_RESULT: [u8; 32] = [0u8; 32];

#[derive(Clone, Copy, Debug)]
/// Represent an element in the curve field.
struct FieldElement([u64; 5]);

impl Eq for FieldElement {}

impl PartialEq for FieldElement {
    fn eq(&self, other: &Self) -> bool {
        use subtle::ConstantTimeEq;
        self.as_bytes().ct_eq(&other.as_bytes()).into()
    }
}

/// The function fiat_25519_carry_mul multiplies two field elements and reduces the result.
impl Mul for FieldElement {
    type Output = Self;

    fn mul(self, rhs: Self


;
            if (hour === 0) hour = 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            hour = this.getHours() % 12;
            if (hour === 0) hour = 12;
            ret.append(hour);
            break;
        case "HH":
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            ret.append(this.getHours());
            break;
        case "mm":
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            ret.append(this.getMinutes());
            break;
        case "ss":
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            ret.append(this.getSeconds());
            break;
        case "tt":
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator);
            break;
        case "t":
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0));
            break;
        case "f":
            ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2));
            break;
        case "fff":
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            hour = this.getTimezoneOffset() / 60;
            ret.append(((hour <= 0) ? '+' : '-') + Math.floor(Math.abs(hour)));
            break;
        case "zz":
            hour = this.getTimezoneOffset() / 60;
            ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            hour = this.getTimezoneOffset() / 60;
            ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
                dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
            break;
        }
    }
    return ret.toString();
}

Number.__typeName = 'Number';
Number.__class = true;
Number.parseLocale = function Number$parseLocale(value) {
    /// <summary locid="M:J#Number.parseLocale" />
    /// <param name="value" type="String"></param>
    /// <returns type="Number"></returns>
    var e = Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant = function Number$parseInvariant(value) {
    /// <summary locid="M:J#Number.parseInvariant" />
    /// <param name="value" type="String"></param>
    /// <returns type="Number"></returns>
    var e = Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse = function Number$_parse(value, cultureInfo) {
    value = value.trim();

    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }
    var numFormat = cultureInfo.numberFormat;
    var signInfo = Number._parseNumberNegativePattern(value, numFormat, numFormat.NumberNegativePattern);
    var sign = signInfo[0];
    var num = signInfo[1];


return e}var o=t("./vectortilefeature.js");e.exports=n,n.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new o(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":548}],550:[function(t,e,r){"use strict";function n(t,e){return"object"==typeof e&&null!==e||(e={}),i(t,e.canvas||a,e.context||o,e)}e.exports=n;var i=t("./lib/vtext"),a=null,o=null;"undefined"!=typeof document&&(a=document.createElement("canvas"),a.width=8192,a.height=1024,o=a.getContext("2d"))},{"./lib/vtext":551}],551:[function(t,e,r){"use strict";function n(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l<s;++l)for(var u=t[l],c=0;c<2;++c)a[c]=0|Math.min(a[c],u[c]),o[c]=0|Math.max(o[c],u[c]);var h=0;switch(n){case"center":h=-.5*(a[0]+o[0]);break;case"right":case"end":h=-o[0];break;case"left":case"start":h=-a[0];break;default:throw new Error("vectorize-text: Unrecognized textAlign: '"+n+"'")}var f=0;switch(i){case"hanging":case"top":f=-a[1];break;case"middle":f=-.5*(a[1]+o[1]);break;case"alphabetic":case"ideographic":f=-3*r;break;case"bottom":f=-o[1];break;default:throw new Error("vectorize-text: Unrecoginized textBaseline: '"+i+"'")}var d=1/r;return"lineHeight"in e?d*=+e.lineHeight:"width"in e?d=e.width/(o[0]-a[0]):"height"in e&&(d=e.height/(o[1]-a[1])),t.map(function(t){return[d*(t[0]+h),d*(t[1]+f)]})}function i(t,e,r,n){var i=0|Math.ceil(e.measureText(r).width+2*n);if(i>8192)throw new Error("vectorize-text: String too long (sorry, this will get fixed later)");var a=3*n;t.height<a&&(t.height=a),e.fillStyle="#000",e.fillRect(0,0,t.width,t.height),e.fillStyle="#fff",e.fillText(r,n,2*n);var o=e.getImageData(0,0,i,a);return c(o.data,[a,i,4]).pick(-1,-1,0).transpose(1,0)}function a(t,e){var r=u(t,128);return e?h(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function o(t,e,r,i){var o=a(t,i),s=n(o.positions,e,r),l=o.edges,u="ccw"===e.orientation;if(f(s,l),e.polygons||e.polygon||e.polyline){for(var c=p(l,s