              else
                {
                    EXPECT_LT(map, asset.m_chunkCount);
                    EXPECT_GE(map, asset.m_graph.m_nodeCount);
                    ++subsupportChunkCount;
                }
            }
            EXPECT_EQ(supportChunkCount, asset.m_graph.m_nodeCount);
            EXPECT_EQ(subsupportChunkCount, a.getLowerSupportChunkCount() - asset.m_graph.m_nodeCount);

            // Release asset
            NvBlastAssetRelease(asset, free, nullptr);
        }
    }
}
#endif

TEST_F(APITest, NoBondsSausage)
{
    // create asset
    const NvBlastChunkDesc c_chunks[4] =
    {
        // centroid           volume parent idx     flags                         ID
        { { 0.0f, 0.0f, 0.0f }, 0.0f, UINT32_MAX, NvBlastChunkDesc::NoFlags, 0 },
        { { 0.0f, 0.0f, 0.0f }, 0.0f, 0, NvBlastChunkDesc::SupportFlag, 1 },
        { { 0.0f, 0.0f, 0.0f }, 0.0f, 1, NvBlastChunkDesc::NoFlags, 2 },
        { { 0.0f, 0.0f, 0.0f }, 0.0f, 2, NvBlastChunkDesc::NoFlags, 3 }
    };

    NvBlastAssetDesc assetDesc;
    assetDesc.chunkCount = 4;
    assetDesc.chunkDescs = c_chunks;
    assetDesc.bondCount = 0;
    assetDesc.bondDescs = nullptr;

    std::vector<char> scratch((size_t)NvBlastGetRequiredScratchForCreateAsset(&assetDesc, messageLog));
    void* amem = alignedZeroedAlloc(NvBlastGetAssetMemorySize(&assetDesc, messageLog));
    NvBlastAsset* asset = NvBlastCreateAsset(amem, &assetDesc, scratch.data(), messageLog);
    const NvBlastChunk* chunks = NvBlastAssetGetChunks(asset, messageLog);
    EXPECT_TRUE(asset != nullptr);

    // create actor
    NvBlastActorDesc actorDesc;
    actorDesc.initialBondHealths = actorDesc.initialSupportChunkHealths = nullptr;
    actorDesc.uniformInitialBondHealth = actorDesc.uniformInitialLowerSupportChunkHealth = 1.0f;
    void* fmem = alignedZeroedAlloc(NvBlastAssetGetFamilyMemorySize(asset, messageLog));
    NvBlastFamily* family = NvBlastAssetCreateFamily(fmem, asset, messageLog);
    scratch.resize((size_t)NvBlastFamilyGetRequiredScratchForCreateFirstActor(family, messageLog));
    NvBlastActor* actor = NvBlastFamilyCreateFirstActor(family, &actorDesc, scratch.data(), messageLog);
    EXPECT_TRUE(actor != nullptr);

    // check visible chunk
    {
        EXPECT_EQ(NvBlastActorGetVisibleChunkCount(actor, messageLog), 1);
        uint32_t chunkIndex;
        NvBlastActorGetVisibleChunkIndices(&chunkIndex, 1, actor, messageLog);
        EXPECT_EQ(chunks[chunkIndex].userData, 0);
    }

    // damage
    NvBlastExtRadialDamageDesc damage = {
        10.0f,                  // compressive
        { 0.0f, 0.0f, 0.0f },   // position
        4.0f,                   // min radius - maximum damage
        6.0f                    // max radius - zero damage
    };

    NvBlastBondFractureData outBondFracture[2];
    NvBlastChunkFractureData outChunkFracture[2];

    NvBlastFractureBuffers events;
    events.bondFractureCount = 2;
    events.bondFractures = outBondFracture;
    events.chunkFractureCount = 2;
    events.chunkFractures = outChunkFracture;

    NvBlastExtProgramParams programParams = { &damage, nullptr };

    NvBlastDamageProgram program = {
        NvBl


.RPG
  L3_2 = L3_2.Client
  L3_2 = L3_2.MonoInControlButton
  L4_2 = "Root/MinusBtn"
  L1_2 = L


cakk.api.resolver

import org.mockito.InjectMocks
import org.mockito.Mockito
import org.mockito.Mockito.doReturn
import org.springframework.core.MethodParameter

import io.kotest.matchers.shouldBe

import com.cakk.api.annotation.AccessToken
import com.cakk.api.common.annotation.TestWithDisplayName
import com.cakk.api.common.base.MockitoTest

internal class AccessTokenResolverTest : MockitoTest() {

    @InjectMocks
    private lateinit var accessTokenResolver: AccessTokenResolver

    @TestWithDisplayName("supportsParameter 메서드는 RefreshToken 어노테이션이 붙은 String 타입의 파라미터를 지원한다.")
    fun supportsParameter() {
        // given
        val parameter = Mockito.mock(MethodParameter::class.java)

        doReturn(true).`when`(parameter).hasParameterAnnotation(AccessToken::class.java)
        doReturn(String::class.java).`when`(parameter).parameterType

        // when
        val result = accessTokenResolver.supportsParameter(parameter)

        // then
		result shouldBe true
    }

    @TestWithDisplayName("String 타입이 아닌 경우, false를 반환한다.")
    fun supportsParameter2() {
        // given
        val parameter = Mockito.mock(MethodParameter::class.java)

        doReturn(true).`when`(parameter).hasParameterAnnotation(AccessToken::class.java)
        doReturn(Int::class.java).`when`(parameter).parameterType

        // when
        val result = accessTokenResolver.supportsParameter(parameter)

        // then
		result shouldBe false
    }
}
package com.cakk.api.provider

import java.io.IOException
import java.security.GeneralSecurityException

import org.junit.jupiter.api.Assertions
import org.mockito.InjectMocks
import org.mockito.Mock
import org.mockito.Mockito

import net.jqwik.api.Arbitraries

import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier

import org.mockito.Mockito.*

import io.kotest.assertions.throwables.shouldThrow
import io.kotest.matchers.shouldBe

import com.cakk.api.common.annotation.TestWithDisplayName
import com.cakk.api.common.base.MockitoTest
import com.cakk.api.common.fixture.FixtureCommon.getStringFixtureBw
import com.cakk.api.common.fixture.createMockGoogleIdToken
import com.cakk.api.provider.oauth.GoogleAuthProvider
import com.cakk.common.enums.ReturnCode
import com.cakk.common.exception.CakkException

internal class GoogleAuthProviderTest : MockitoTest() {

	@InjectMocks
	private lateinit var googleAuthProvider: GoogleAuthProvider

	@Mock
	private lateinit var googleIdTokenVerifier: GoogleIdTokenVerifier

	private val idToken = "eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.payload.signature"

	@TestWithDisplayName("id token으로 제공자 id를 가져온다.")
	fun getProviderId() {
		// given
		val providerId = getStringFixtureBw(5, 10).sample()
		val mockGoogleIdToken = createMockGoogleIdToken(providerId)

		doReturn(mockGoogleIdToken).`when`(googleIdTokenVerifier).verify(idToken)

		// when & then
		googleAuthProvider.getProviderId(idToken)

		verify(googleIdTokenVerifier, times(1)).verify(idToken)
	}

	@TestWithDisplayName("google id token이 null이면 서버 외부 에러를 던진다.")
	fun getProviderId2() {
		// given
		doReturn(null).`when`(googleIdTokenVerifier).verify(idToken)

		// when
		val exception = shouldThrow<CakkException> {
			googleAuthProvider.getProviderId(idToken)
		}


Rc> => bitxor@BitXor);

impl Mul<ExprRc> for f64 {
    type Output = ExprRc;

    #[inline]
    fn mul(self, rhs: ExprRc) -> Self::Output {
        ExprRc::from(self) * rhs
    }
}

impl Div for ExprRc {
    type Output = Result<Self, String>;

    #[inline]
    fn div(self, rhs: Self) -> Self::Output {
        Ok((Op::Div, self.0, rhs.0).valid()?.simplify())
    }
}

impl Div<ExprRc> for i8 {
    type Output = Result<ExprRc, String>;

    #[inline]
    fn div(self, rhs: ExprRc) -> Self::Output {
        ExprRc::from(self) / rhs
    }
}

// Note that here we interpret x^a as taking x to the a-th power.
#[macro_export]
macro_rules! impl_bitxor_expr {
    ($t:ty) => {
        impl BitXor<$t> for ExprRc {
            type Output = Self;

            #[inline]
            fn bitxor(self, rhs: $t) -> Self::Output {
                self ^ Self::from(rhs)
            }
        }
    };
}

impl_bitxor_expr!(i8);
impl_bitxor_expr!(f64);

// Note that we interpret `self >> rhs` as the chain rule:
// `d(rhs)/dx * self` where `self` is assumed to be the derivative of an outer function
impl Shr for ExprRc {
    type Output = Result<Self, String>;

    #[allow(clippy::suspicious_arithmetic_impl)]
    fn shr(self, rhs: Self) -> Self::Output {
        use Expr::*;
        let expr = match (self.borrow(), rhs.borrow()) {
            (Const(_) | Var(_), _) => self,
            (_, Const(_) | Var(_)) => self,
            _ => rhs.diff()? * self,
        };
        Ok(expr)
    }
}

// Data conversions

impl From<f64> for Expr {
    fn from(v: f64) -> Self {
        Self::Const(v)
    }
}

impl From<i8> for Expr {
    fn from(v: i8) -> Self {
        Self::Const(v as f64)
    }
}

impl From<ExprRc> for Expr {
    fn from(e: ExprRc) -> Self {
        (*e).clone()
    }
}

impl From<(Op, Expr, Expr)> for Expr {
    fn from(e: (Op, Expr, Expr)) -> Self {
        let (op, lhs, rhs) = e;
        Self::Binary(OpExpr {
            lhs: lhs.into(),
            op,
            rhs: rhs.into(),
        })
    }
}

impl From<(Op, Rc<Expr>, Rc<Expr>)> for Expr {
    fn from(e: (Op, Rc<Expr>, Rc<Expr>)) -> Self {
        let (op, lhs, rhs) = e;
        Self::Binary(OpExpr { lhs, op, rhs })
    }
}

impl From<FuncExpr> for ExprRc {
    fn from(e: FuncExpr) -> Self {
        Expr::Unary(e).into()
    }
}

impl From<&FuncExpr> for ExprRc {
    fn from(e: &FuncExpr) -> Self {
        e.clone().into()
    }
}

impl From<OpExpr> for ExprRc {
    fn from(e: OpExpr) -> Self {
        Expr::Binary(e).into()
    }
}

impl From<ExprRc> for Rc<Expr>


import tkinter as tk
from tkinter import filedialog
from tkinter import *
from PIL import ImageTk, Image

import numpy
#load the trained model to classify sign
from keras.models import load_model
model = load_model('traffic_classifier.h5')

#dictionary to label all traffic signs class.
classes = { 1:'Speed limit (20km/h)',
            2:'Speed limit (30km/h)',
            3:'Speed limit (50km/h)',
            4:'Speed limit (60km/h)',
            5:'Speed limit (70km/h)',
            6:'Speed limit (80km/h)',
            7:'End of speed limit (80km/h)',
            8:'Speed limit (100km/h)',
            9:'Speed limit (120km/h)',
           10:'No passing',
           11:'No passing veh over 3.5 tons',
           12:'Right-of-way at intersection',
           13:'Priority road',
           14:'Yield',
           15:'Stop',
           16:'No vehicles',
           17:'Veh > 3.5 tons prohibited',
           18:'No entry',
           19:'General caution',
           20:'Dangerous curve left',
           21:'Dangerous curve right',
           22:'Double curve',
           23:'Bumpy road',
           24:'Slippery road',
           25:'Road narrows on the right',
           26:'Road work',
           27:'Traffic signals',
           28:'Pedestrians',
           29:'Children crossing',
           30:'Bicycles crossing',
           31:'Beware of ice/snow',
           32:'Wild animals crossing',
           33:'End speed + passing limits',
           34:'Turn right ahead',
           35:'Turn left ahead',
           36:'Ahead only',
           37:'Go straight or right',
           38:'Go straight or left',
           39:'Keep right',
           40:'Keep left',
           41:'Roundabout mandatory',
           42:'End of no passing',
           43:'End no passing veh > 3.5 tons' }

#initialise GUI
top=tk.Tk()
top.geometry('800x600')
top.title('Traffic sign classification')
top.configure(background='#CDCDCD')

label=Label(top,background='#CDCDCD', font=('arial',15,'bold'))
sign_image = Label(top)

def classify(file_path):
    global label_packed
    image = Image.open(file_path)
    image = image.resize((30,30))
    image = numpy.expand_dims(image, axis=0)
    image = numpy.array(image)
    print(image.shape)
    pred = model.predict_classes([image])[0]
    sign = classes[pred+1]
    print(sign)
    label.configure(foreground='#011638', text=sign)

def show_classify_button(file_path):
    classify_b=Button(top,text="Classify Image",command=lambda: classify(file_path),padx=10,pady=5)
    classify_b.configure(background='#364156', foreground='white',font=('arial',10,'bold'))
    classify_b.place(relx=0.79,rely=0.46)

def upload_image():
    try:
        file_path=filedialog.askopenfilename()
        uploaded=Image.open(file_path)
        uploaded.thumbnail(((top.winfo_width()/2.25),(top.winfo_height()/2.25)))
        im=ImageTk.PhotoImage(uploaded)

        sign_image.configure(image=im)
        sign_image.image=im
        label.configure(text='')
        show_classify_button(file_path)
    except:
        pass

upload=Button(top,text="Upload an image",command=upload_image,padx=10,pady=5)
upload.configure(background='#364156', foreground='white',font=('arial',10,'bold'))

upload.pack(side=BOTTOM,pady=50)
sign_image.pack(side=BOTTOM,expand=True)
label.pack(side=BOTTOM,expand=True)
heading = Label(top, text="Know Your Traffic Sign",pady=20, font=('arial',20,'bold'))
heading.configure(background='#CDCDCD',foreground='#364156')
heading.pack()
top.mainloop()


toBuf Message 类型
		private static msgTypes = {};		// 根据 msgId 找到 Message 类型全名
		public static meta;
		private static root;

		public static init() {
			return this.loadMeta().then(() => {
				return this.loadAll();
			}).then(() => {
				return this.process("", this.meta);
			}).then(() => {
				console.log("Protocol.init@finish");
				return Promise.resolve();
			});
		}

		private static loadMeta() {
			return new Promise((resolve, reject) => {
				Laya.loader.load("res/pb/meta.json", Laya.Handler.create(this, () => {
					Protocol.meta = Laya.loader.getRes("res/pb/meta.json");
					console.log("Protocol.loadMeta@finish");
					resolve();
				}), null, Laya.Loader.JSON);
			});
		}

		private static loadAll() {
			return new Promise((resolve, reject) => {
				// 浏览器加载时，保证import路径正确
				// Search include paths when resolving imports
				// https://github.com/dcodeIO/protobuf.js/blob/master/src/root.js#L54
				// https://github.com/dcodeIO/protobuf.js/issues/368
				//var PbRoot = new this.ProtoBuf.Root();
				var PbRoot = new Laya.Browser.window.protobuf.Root();
				PbRoot.resolvePath = (origin, target) => {
					//console.log("Protocol.loadAll", origin, "-", target);
					//let path = target.indexOf("res/pb/") > -1?target:"res/pb/" + target;
					//return Laya.Browser.onWeiXin?"game/" + path:path;
					return target.indexOf("res/pb/") > -1?target:"res/pb/" + target;
				};
				console.log("Protocol.loadAll@start");
				PbRoot.load(this.meta.fileNames, (err, root) => {
					if (err) {
						console.error("Protocol.loadAll@err", err);
						reject();
						return;
					}
					Protocol.root = root;
					resolve();
				});
			});
		}

		private static process(pkgName, obj) {
			for(let key in obj) {
				//console.log("Protocol.process", typeof obj[key]);
				switch(typeof obj[key]) {
				case "number":
					Protocol.processProto(pkgName, key, obj[key]);
					break;
				case "object":
					let subPkgName = (pkgName=="")?key:pkgName+"."+key;
					Protocol.process(subPkgName, obj[key]);
					break;
				}
			}
		}

		private static processProto(pkgName, msgName, msgId) {
			let msgType = (pkgName=="")?msgName:pkgName+"."+msgName;
			try {
				const pbMsg = this.root.lookupType(msgType);
				this.pbMessaages[msgId] = pbMsg;
				this.msgTypes[msgId] = msgType;
				console.log("Protocol.processProto@finish", msgType, msgId);
			} catch(e) {
				console.error("Protocol.processProto@lookupType", msgType, msgId, e);
			}
		}

		public static getMsgType(msgId) {
			return this.msgTypes[msgId];
		}

		public static getEnum(enumName) {
			return this.root.lookupEnum(enumName);
		}

		/**
		 * 将 JS 消息对象用 Protobuf 编码
		 *
		 * @param msgId
		 * @param properties
		 *
		 * @return 1 不支持的消息ID；2 消息内容不正确
		 *
		 */
		public static encodeMessage(msgId, properties) {
			let PbMessage = this.pbMessaages[msgId];
			if(PbMessage === undefined || PbMessage === null) {
				console.error("Protocol.encodeMessage@unsupported message ID", msgId);
				return 1;
			}

			var err = PbMessage.verify(properties);
			if(err) {
				console.error("Protoco


concat())
    }

    /// Write to a file inside the chunk
    pub fn write_raw(&mut self, name: &str, text: &str) -> Result<()> {
        let mut f = File::create(self.make_path(name))?;
        f.write_all(text.as_bytes())?;
        // Ensure the file is closed before we write the journal, to reduce
        // the chances that `mrp` sees the journal entry before the file content
        // has be sync'ed.  This can be an issue on nfs systems.
        drop(f);
        self.update_journal(name)?;
        Ok(())
    }

    /// Update the Martian journal -- so that Martian knows what we've updated
    fn update_journal_main(&mut self, name: &str, force: bool) -> Result<()> {
        let journal_name = if self.stage_type != "main" {
            format!("{}_{}", self.stage_type, name)
        } else {
            name.to_string()
        };

        if !self.cache.contains(name) || force {
            let run_file = format!("{}.{}", self.run_file, journal_name);
            let tmp_run_file = run_file.clone() + ".tmp";

            {
                let mut f = File::create(&tmp_run_file)?;
                f.write_all(make_timestamp_now().as_bytes())?;
            };
            rename(&tmp_run_file, &run_file)?;
            self.cache.insert(journal_name);
        }

        Ok(())
    }

    fn update_journal(&mut self, name: &str) -> Result<()> {
        self.update_journal_main(name, false)
    }

    /// Write JSON to a chunk file
    pub(crate) fn write_json_obj(&mut self, name: &str, object: &JsonDict) -> Result<()> {
        // Serialize using `json::encode`
        let obj = json!(object.clone());
        let encoded = serde_json::to_string_pretty(&obj)?;
        self.write_raw(name, &encoded)?;
        Ok(())
    }

    pub(crate) fn decode<T: Sized + DeserializeOwned>(&self, name: &str) -> Result<T> {
        Self::_decode(self.make_path(name))
    }

    fn _decode<T: Sized + DeserializeOwned>(file: PathBuf) -> Result<T> {
        let buf = Self::_read_buf_err(&file)?;
        serde_json::from_str(&buf).map_err(
            #[cold]
            |e| Self::_format_buf_err(buf, e, file, type_name::<T>()),
        )
    }

    fn _read_buf_err(file: &Path) -> Result<String> {
        std::fs::read_to_string(&file).map_err(
            #[cold]
            |e| {
                let context = format!("Failed to read file {:?} due to {}:", file, e);
                Error::new(e).context(context)
            },
        )
    }

    #[cold]
    fn _format_buf_err(
        buf: String,
        e: serde_json::Error,
        file: PathBuf,
        tname: &'static str,
    ) -> Error {
        // Non-generic so that we don't generate copy of this code for every
        // type we `_decode` into.  This is a slight hack to improve compile
        // times.
        let buf_lines: Vec<_> = buf
            .lines()
            .enumerate()
            .map(|(i, line)| format!("{:>4}: {}", i + 1, line))
            .collect();
        let context = format!(
            "The martian-rust adapter failed while deserializing the file {:?} as {} due to the \
            following error:\n\n{}\n\nThis typically happens when one or more fields in the \
            struct {} cannot be built


random_numbers    # ... 生成了同样的数字序列。
                  #
                  # 在什么情况下重复一个随机化序列会有用？

echo; echo

SEED=2
RANDOM=$SEED      # 用不同的种子再试一次 ...
echo "Random seed = $SEED"
random_numbers    # ... 生成了不同的数字序列。

echo; echo

# RANDOM=$$  利用脚本的进程 ID 设置 RANDOM 的种子。
# 同样也可以利用 'time' 或是 'date' 命令设置 RANDOM 的种子。

# 更花哨一点的 ...
SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }'| sed s/^0*//)
#  从 /dev/urandom （系统的伪随机设备文件）中
#+ 获取伪随机输出，
#+ 然后通过 "od" 转换为可打印八进制字符行，
#+ 然后 "awk" 命令会检索出一个数字作为种子，
#+ 最后用 "sed" 命令删除数字前面所有的前置 0。
RANDOM=$SEED
echo "Random seed = $SEED"
random_numbers

echo; echo

exit 0
```

{% hint style="info" %}

伪设备文件 `/dev/urandom` 提供了比 `$RANDOM` 变量更随机化的伪随机数。命令 `dd if=/dev/urandom of=targetfile bs=1 count=XXX` 将会创建一个包含均匀分布的伪随机数的文件。但是想要在脚本中将这些随机数赋值给变量需要做一些变通，比如使用命令 [`od`]() 进行过滤（参照上面的样例以及 [样例 16-14]() 和 [样例 A-36]()）或者使用管道导入命令 [md5sum]() 中（参照 [样例 36-16]()）。

当然也有其他在脚本中生成伪随机数的方法。比如 `Awk` 命令就提供了这样一种非常简易的方法。

#### 样例 9-17. 使用 [`awk`]() 命令生成伪随机数

```bash
#!/bin/bash
#  random2.sh: 返回大小在 0 - 1 内，
#+ 精度为小数点后 6 位的伪随机数。例如：0.822725
#  使用 awk rand() 函数。

AWKSCRIPT=' { srand(); print rand() } '
#           传递给 awk 的命令或参数
# 注意 srand() 重置了 awk 的随机数生成种子。

echo -n "Random number between 0 and 1 = "

echo | awk "$AWKSCRIPT"
# 如果省略 'echo' 将会发生什么？

exit 0

# 练习：
# ---------

# 1) 使用循环结构，输出 10 个不同的随机数。
#      （提示：你必须在每次循环中使用 srand() 函数重置种子以获得不同的随机数种子。
#+       如果你省略了这一步会发生什么？）

# 2) 利用整型乘数作为随机数的缩放因子，
#+   生成大小在 10 到 100 之间的随机数。

# 3) 内容与练习 #2 相同，只是这次生成随机整数。
```

同样，命令 [`date`]() 可以用于 [生成整型随机数序列]()。

{% endhint %}

## 注记

{% hint style="info" %}
真正的“随机性”，就其存在而言，只存在于一些类似放射性衰变这样还未被完


mpty()) {
									context.getReviewList().stream().filter(rl -> rl.getIdentifier().equals(finalMatchedLevel.getIdentifier())).findFirst().get().setHasBackgroundImage(true);
								}
								if (hasTeaserImage && context.getReviewList().isEmpty()) {
									reviewList.stream().filter(rl -> rl.getIdentifier().equals(finalMatchedLevel.getIdentifier())).findFirst().get().setHasTeaserImage(true);
								} else if (hasTeaserImage && !context.getReviewList().isEmpty()) {
									context.getReviewList().stream().filter(rl -> rl.getIdentifier().equals(finalMatchedLevel.getIdentifier())).findFirst().get().setHasTeaserImage(true);
								}
							}

							allOk = createTaxonomyLevelToImageMap(zipEntry, matchedLevel);
							if (!allOk) {
								return false;
							}
						} else {
							uploadFileEl.setErrorKey("import.taxonomy.error.no.match");
							return false;
						}
					}

					zis.closeEntry();
					zipEntry = zis.getNextEntry();
				}

				if (!taxonomyLevelToImage.isEmpty()) {
					context.setTaxonomyLevelToImageMap(taxonomyLevelToImage);
					if (!reviewList.isEmpty() && context.getReviewList().isEmpty()) {
						context.setReviewList(reviewList);
					}
					if (!updatedLevels.isEmpty()) {
						context.setTaxonomyLevelUpdateList(updatedLevels);
					}
				}

			} catch (IOException e) {
				allOk = false;
				log.error("Error processing Zip-File as Stream: {}", e.getMessage());
				uploadFileEl.reset();
				uploadFileEl.setErrorKey(ERROR_MEDIA_ZIP_UPLOAD);
			}
			return allOk;
		}

		private boolean createTaxonomyLevelToImageMap(ZipEntry zipEntry, TaxonomyLevel matchedLevel) {
			boolean allOk = true;
			if (!zipEntry.isDirectory()) {
				Map<String, File> destinationToImage = new HashMap<>();
				String destination;
				String fileName;

				try (ZipFile zipFile = new ZipFile(uploadFileEl.getUploadFile())) {

					InputStream in = zipFile.getInputStream(zipEntry);
					File image;

					if (zipEntry.getName().contains(BACKGROUND)) {
						fileName = zipEntry.getName().replaceAll(".+background/", "");
						destination = BACKGROUND;
					} else if (zipEntry.getName().contains(TEASER)) {
						fileName = zipEntry.getName().replaceAll(".+teaser/", "");
						destination = TEASER;
					} else {
						uploadFileEl.reset();
						uploadFileEl.setErrorKey("import.taxonomy.error.wrong.structure");
						return false;
					}

					if (IMAGE_MIME_TYPES.contains(WebappHelper.getMimeType(fileName))) {
						uploadFileEl.clearError();
						image = new File(WebappHelper.getTmpDir() + "/" + fileName);
						if (image.length() / 1024 < 5025 && destination.equals(BACKGROUND)
						|| image.length() / 1024 < 2049 && destination.equals(TEASER)) {
							FileUtils.copyInputStreamToFile(in, image);
						} else {
							uploadFileEl.reset();
							uploadFileEl.setErrorKey("import.taxonomy.error.image", fileName);
							return false;
						}
					} else {
						uploadFileEl.reset();
						uploadFileEl.setErrorKey("error.mimetype");
						return false;
					}

					if (taxonomyLevelToImage.get(matchedLevel) != null) {
						taxonomyLevelToImage.get(matchedLevel).put(destination, image);
					} else {
						destinationToImage.put(destination, image);
						taxonomyLevelToImage.put(matchedLevel, destinationToImage);
					}

				} catch (IOException e) {
					log.error("Error processing Zip-File: {}", e.getMessage());
					uploadFileEl.reset();
					uploadFileEl.setErrorKey(ERROR_MEDIA_ZIP_UPLOAD);
				}
			}
			return allOk;
		}

		@Override
		protected void formOK(UserRequest ure


 'utc' });
      endDate = luxon.DateTime.fromISO(queryObject.end, { zone: 'utc' });
    }

    let aircraftCount = 10;
    if ('aircraftCount' in queryObject) {
      aircraftCount = Number.parseInt(queryObject.aircraftCount);
    }

    let flightCount = 20;
    if ('flightCount' in queryObject) {
      flightCount = Number.parseInt(queryObject.flightCount);
    }

    const flights = GenerateFlights(
      aircraftCount,
      flightCount,
      startDate,
      endDate
    );
    response.send(flights);
  };
}

function GenerateFlights(
  aircraftCount: number,
  flightsCount: number,
  start: luxon.DateTime,
  end: luxon.DateTime
) {
  console.log(
    'Generating ' +
      aircraftCount +
      ' aircraft with ' +
      flightsCount +
      ' flights from ' +
      start.toString() +
      ' to ' +
      end.toString()
  );

  let flights = new Array<Flight>();
  let aircrafts = new Array<String>();
  var aircraftModels = ['747-400', 'A320-500'];

  for (var i = 0; i < aircraftCount; i++) {
    let aircraft_registration =
      'N' + faker.datatype.number({ min: 100, max: 999 }) + 'VT';

    // don't allow the same aircraft twice
    while (aircrafts.includes(aircraft_registration)) {
      aircraft_registration =
        'N' + faker.datatype.number({ min: 100, max: 999 }) + 'VT';
    }
    aircrafts.push(aircraft_registration);

    const aircraftModel =
      aircraftModels[Math.floor(Math.random() * aircraftModels.length)];

    //initialize the first flight
    let lastFlight = new Flight(faker.datatype.number({ min: 100, max: 9999 }));
    lastFlight.id = faker.datatype.number({ min: 100, max: 9999 }) + i * 10000;
    lastFlight.arrival_airport = new Airport().random();
    lastFlight.estimated_time_arrival = start.minus({ hours: 4 });

    for (var j = 0; j < flightsCount; j++) {
      let thisFlight: Flight = new Flight(lastFlight.id + 1);
      thisFlight.aircraft_registration = aircraft_registration;
      thisFlight.aircraft_model = aircraftModel;
      thisFlight.departure_airport = lastFlight.arrival_airport;
      thisFlight.arrival_airport = new Airport().random();

      //don't allow the aircraft to depart and arrive in the same location
      while (
        thisFlight.arrival_airport.iata == thisFlight.departure_airport.iata
      ) {
        thisFlight.arrival_airport = new Airport().random();
      }

      //add random between 1-6 for ground
      thisFlight.estimated_time_departure = lastFlight.estimated_time_arrival.plus(
        { hours: faker.datatype.number({ min: 1, max: 6 }) }
      );

      //add random between 3-12 for flight
      thisFlight.estimated_time_arrival = thisFlight.estimated_time_departure.plus(
        { hours: faker.datatype.number({ min: 3, max: 12 }) }
      );
      thisFlight.distance = thisFlight.departure_airport.distanceBetween(
        thisFlight.arrival_airport
      );

      //add 2 crewmembers
      thisFlight.crewmembers.push(new Crewmember().random());
      thisFlight.crewmembers.push(new Crewmember().random());

      //make sure the 2 aren't the same
      wh


1em;width:calc(100% - 2.5em)}.filepond--media-preview .playhead{background:#fff;border-radius:50%;height:13px;margin-top:-5px;width:13px}.filepond--media-preview-wrapper{background:#00000003;border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0}.filepond--media-preview-wrapper:before{background:linear-gradient(180deg,#000,#0000);content:" ";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#00000000",GradientType=0);height:2em;position:absolute;width:100%;z-index:3}.filepond--media-preview{display:block;height:100%;position:relative;transform-origin:center center;width:100%;will-change:transform,opacity;z-index:1}.filepond--media-preview audio,.filepond--media-preview video{width:100%;will-change:transform}.filepond--root{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:0}.filepond--root:is(.dark *){--tw-ring-color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.05)}.filepond--root[data-disabled=disabled]{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.filepond--root[data-disabled=disabled]:is(.dark *){--tw-ring-color:hsla(0,0%,100%,.1);background-color:transparent}.filepond--panel-root{background-color:transparent}.filepond--drop-label label{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;padding:.75rem!important}.filepond--drop-label label:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.filepond--label-action{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity,1));font-weight:500;text-decoration-line:none;transition-duration:75ms;transition-property:color,background-color,border-color


rn}for(const e of Object.keys(t)){jt.debug("Checking key",e);if(e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Te.has(e)||t[e]==null){jt.debug("sanitize deleting key: ",e);delete t[e];continue}if(typeof t[e]==="object"){jt.debug("sanitizing object",e);we(t[e]);continue}const r=["themeCSS","fontFamily","altFontFamily"];for(const i of r){if(e.includes(i)){jt.debug("sanitizing css option",e);t[e]=Se(t[e])}}}if(t.themeVariables){for(const e of Object.keys(t.themeVariables)){const r=t.themeVariables[e];if((r==null?void 0:r.match)&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)){t.themeVariables[e]=""}}}jt.debug("After sanitization",t)};const Se=t=>{let e=0;let r=0;for(const i of t){if(e<r){return"{ /* ERROR: Unbalanced CSS */ }"}if(i==="{"){e++}else if(i==="}"){r++}}if(e!==r){return"{ /* ERROR: Unbalanced CSS */ }"}return t};const Be=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;const Fe=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;const Le=/\s*%%.*\n/gm;class Ee extends Error{constructor(t){super(t);this.name="UnknownDiagramError"}}const Me={};const Oe=function(t,e){t=t.replace(Be,"").replace(Fe,"").replace(Le,"\n");for(const[r,{detector:i}]of Object.entries(Me)){const n=i(t,e);if(n){return r}}throw new Ee(`No diagram type detected matching given configuration for text: ${t}`)};const Ie=(...t)=>{for(const{id:e,detector:r,loader:i}of t){ze(e,r,i)}};const ze=(t,e,r)=>{if(Me[t]){jt.error(`Detector with key ${t} already exists`)}else{Me[t]={detector:e,loader:r}}jt.debug(`Detector with key ${t} added${r?" with loader":""}`)};const qe=t=>Me[t].loader;const De=(t,e,{depth:r=2,clobber:i=false}={})=>{const n={depth:r,clobber:i};if(Array.isArray(e)&&!Array.isArray(t)){e.forEach((e=>De(t,e,n)));return t}else if(Array.isArray(e)&&Array.isArray(t)){e.forEach((e=>{if(!t.includes(e)){t.push(e)}}));return t}if(t===void 0||r<=0){if(t!==void 0&&t!==null&&typeof t==="object"&&typeof e==="object"){return Object.assign(t,e)}else{return e}}if(e!==void 0&&typeof t==="object"&&typeof e==="object"){Object.keys(e).forEach((n=>{if(typeof e[n]==="object"&&(t[n]===void 0||typeof t[n]==="object")){if(t[n]===void 0){t[n]=Array.isArray(e[n])?[]:{}}t[n]=De(t[n],e[n],{depth:r-1,clobber:i})}else if(i||typeof t[n]!=="object"&&typeof e[n]!=="object"){t[n]=e[n]}}))}return t};const Ne=De;const je="";const Pe={curveBasis:a.qrM,curveBasisClosed:a.Yu4,curveBasisOpen:a.IA3,curveBumpX:a.Wi0,curveBumpY:a.PGM,curveBundle:a.OEq,curveCardinalClosed:a.olC,curveCardinalOpen:a.IrU,curveCardinal:a.y8u,curveCatmullRomClosed:a.Q7f,curveCatmullRomOpen:a.cVp,curveCatmullRom:a.oDi,curveLinear:a.lUB,curveLinearClosed:a.Lx9,curveMonotoneX:a.nVG,curveMonotoneY:a.uxU,curveNatural:a.Xf2,curveStep:a.GZz,curveStepAfter:a.UPb,


UI_DOC_SEE_ALSO` to work. It would also be automatically added to
   > `TUI_DOC_TITLE` for browser tab title when navigating to that route.

5. Create pages.

   _Module:_

   ```ts
   import {TuiAddonDoc} from '@taiga-ui/addon-doc';

   @Component({
     standalone: true,
     imports: [TuiAddonDoc, SuperComponent],
   })
   export class App {}
   ```

   _Component:_

   ```ts
   // ..

   @Component({
     standalone: true,
     selector: 'super',
     templateUrl: './super.component.html',
   })
   export class Super {
     // Keys would be used as tabs for code example
     readonly example = {
       // import a file as a string
       TypeScript: import('./examples/1/index.ts?raw'),
       HTML: import('./examples/1/index.html?raw'),
     };

     readonly inputVariants = ['input 1', 'input 2'];
   }
   ```

   > You can use any tool to import a file as a string. For example, you can use
   > [Webpack Asset Modules](https://webpack.js.org/guides/asset-modules/).

   _Template:_

   ```html
   <tui-doc-page
     header="Super"
     package="SUPER-PACKAGE"
     deprecated
   >
     <ng-template pageTab>
       <!-- default tab name would be used -->
       This would be the content of a first tab

       <tui-doc-example
         id="basic-example"
         heading="Example of usage"
         [content]="example"
       >
         <example-1></example-1>
       </tui-doc-example>
     </ng-template>

     <ng-template pageTab="Documentation">
       <tui-doc-demo>
         <super-component [input]="input"></super-component>
       </tui-doc-demo>
       <tui-doc-documentation>
         <ng-template
           documentationPropertyName="input"
           documentationPropertyMode="input"
           documentationPropertyType="T"
           [documentationPropertyValues]="inputVariants"
           [(documentationPropertyValue)]="input"
         >
           Some input
         </ng-template>
       </tui-doc-documentation>
     </ng-template>
   </tui-doc-page>
   ```
![Logo](https://raw.githubusercontent.com/Taiizor/ReaLTaiizor/develop/.images/Logo.png)

![Dot-Net-Framework-Version](https://img.shields.io/badge/.NET%20Framework-%3E%3D4.8-blue)
![Dot-Net-Core-Version](https://img.shields.io/badge/.NET%20Core-%3E%3D3.1-blue)
![Dot-Net-Version](https://img.shields.io/badge/.NET-%3E%3D6.0-blue)
![C-Sharp-Version](https://img.shields.io/badge/C%23-Preview-blue.svg)
[![IDE-Version](https://img.shields.io/badge/IDE-VS2022-blue.svg)](https://visualstudio.microsoft.com/downloads)
[![NuGet-Version](https://img.shields.io/nuget/v/ReaLTaiizor.svg?label=NuGet)](https://www.nuget.org/packages/ReaLTaiizor)
[![NuGet-Download](https://img.shields.io/nuget/dt/ReaLTaiizor?label=Download)](https://www.nuget.org/api/v2/package/ReaLTaiizor)

[![.NET](https://github.com/Taiizor/ReaLTaiizor/actions/workflows/dotnet.yml/badge.svg)](https://github.com/Taiizor/ReaLTaiizor/actions/workflows/dotnet.yml)
[![CodeQL](https://gith


quiv="content-type" content="text/html; charset=utf-8">
  <title>Page not found at {{ request.path_info }}</title>
  <meta name="robots" content="NONE,NOARCHIVE">

Page not found (404)

    {% if reason and resolved %}
{{ reason }}
{% endif %}

        Request Method:
        {{ request.META.REQUEST_METHOD }}

        Request URL:
        {{ request.build_absolute_uri }}

      {% if raising_view_name %}

        Raised by:
        {{ raising_view_name }}

      {% endif %}

    {% if urlpatterns %}

      Using the URLconf defined in {{ urlconf }},
      Django tried these URL patterns, in this order:

        {% for pattern in urlpatterns %}

            {% for pat in pattern %}
                {{ pat.pattern }}
                {% if forloop.last and pat.name %}[name='{{ pat.name }}']{% endif %}
            {% endfor %}

        {% endfor %}

        {% if request_path %}
          The current path, {{ request_path }},
        {% else %}
          The empty path
        {% endif %}
        {% if resolved %}matched the last one.{% else %}didn’t match any of these.{% endif %}

    {% endif %}

      You’re seeing this error because you have DEBUG = True in
      your Django settings file. Change that to False, and Django
      will display a standard 404 page.

{% include 'django/forms/widgets/multiwidget.html' %}
{% include "django/forms/widgets/input.html" %}
{% include 'django/forms/widgets/multiwidget.html' %}
{% for widget in widget.subwidgets -%}{% include widget.template_name %}{%- endfor %}
{% include "django/forms/widgets/input.html" %}
{% include "django/forms/widgets/input.html" %}
{% include "django/forms/widgets/multiple_input.html" %}
{% include "django/forms/widgets/multiwidget.html" %}
{% include "django/forms/widgets/input.html"


e){return p.noHighlightRe.test(e)}function d(e,t,r,n){let a="",o="";"object"==typeof t?(a=e,r=t.ignoreIllegals,o=t.language,n=void 0):(Y("10.7.0","highlight(lang, code, ...args) has been deprecated."),Y("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),o=e,a=t);const s={code:a,language:o};A("before:highlight",s);const i=s.result?s.result:h(s.language,s.code,r,n);return i.code=s.code,A("after:highlight",i),i}function h(e,r,n,i){function c(e,t){const r=x.case_insensitive?t[0].toLowerCase():t[0];return Object.prototype.hasOwnProperty.call(e.keywords,r)&&e.keywords[r]}function u(){null!=_.subLanguage?function(){if(""===k)return;let e=null;if("string"==typeof _.subLanguage){if(!t[_.subLanguage])return void j.addText(k);e=h(_.subLanguage,k,!0,A[_.subLanguage]),A[_.subLanguage]=e.top}else e=m(k,_.subLanguage.length?_.subLanguage:null);_.relevance>0&&(O+=e.relevance),j.addSublanguage(e.emitter,e.language)}():function(){if(!_.keywords)return void j.addText(k);let e=0;_.keywordPatternRe.lastIndex=0;let t=_.keywordPatternRe.exec(k),r="";for(;t;){r+=k.substring(e,t.index);const n=c(_,t);if(n){const[e,a]=n;if(j.addText(r),r="",O+=a,e.startsWith("_"))r+=t[0];else{const r=x.classNameAliases[e]||e;j.addKeyword(t[0],r)}}else r+=t[0];e=_.keywordPatternRe.lastIndex,t=_.keywordPatternRe.exec(k)}r+=k.substr(e),j.addText(r)}(),k=""}function f(e){return e.className&&j.openNode(x.classNameAliases[e.className]||e.className),_=Object.create(e,{parent:{value:_}}),_}function d(e,t,r){let n=function(e,t){const r=e&&e.exec(t);return r&&0===r.index}(e.endRe,r);if(n){if(e["on:end"]){const r=new a(e);e["on:end"](t,r),r.isMatchIgnored&&(n=!1)}if(n){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return d(e.parent,t,r)}function v(e){return 0===_.matcher.regexIndex?(k+=e[0],1):(P=!0,0)}function g(e){const t=e[0],r=e.rule,n=new a(r),o=[r.__beforeBegin,r["on:begin"]];for(const r of o)if(r&&(r(e,n),n.isMatchIgnored))return v(t);return r&&r.endSameAsBegin&&(r.endRe=new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?k+=t:(r.excludeBegin&&(k+=t),u(),r.returnBegin||r.excludeBegin||(k=t)),f(r),r.returnBegin?0:t.length}function y(e){const t=e[0],n=r.substr(e.index),a=d(_,e,n);if(!a)return te;const o=_;o


/udp/rmt'},
	{'34525/6/411','ip6/tcp/rmt'},
	{'34525/17/411','ip6/udp/rmt'},
	{'2048/6/412','ip/tcp/synoptics-trap'},
	{'2048/17/412','ip/udp/synoptics-trap'},
	{'34525/6/412','ip6/tcp/synoptics-trap'},
	{'34525/17/412','ip6/udp/synoptics-trap'},
	{'2048/6/413','ip/tcp/smsp'},
	{'2048/17/413','ip/udp/smsp'},
	{'34525/6/413','ip6/tcp/smsp'},
	{'34525/17/413','ip6/udp/smsp'},
	{'2048/6/414','ip/tcp/infoseek'},
	{'2048/17/414','ip/udp/infoseek'},
	{'34525/6/414','ip6/tcp/infoseek'},
	{'34525/17/414','ip6/udp/infoseek'},
	{'2048/6/415','ip/tcp/bnet'},
	{'2048/17/415','ip/udp/bnet'},
	{'34525/6/415','ip6/tcp/bnet'},
	{'34525/17/415','ip6/udp/bnet'},
	{'2048/6/416','ip/tcp/silverplatter'},
	{'2048/17/416','ip/udp/silverplatter'},
	{'34525/6/416','ip6/tcp/silverplatter'},
	{'34525/17/416','ip6/udp/silverplatter'},
	{'2048/6/417','ip/tcp/onmux'},
	{'2048/17/417','ip/udp/onmux'},
	{'34525/6/417','ip6/tcp/onmux'},
	{'34525/17/417','ip6/udp/onmux'},
	{'2048/6/418','ip/tcp/hyper-g'},
	{'2048/17/418','ip/udp/hyper-g'},
	{'34525/6/418','ip6/tcp/hyper-g'},
	{'34525/17/418','ip6/udp/hyper-g'},
	{'2048/6/419','ip/tcp/ariel1'},
	{'2048/17/419','ip/udp/ariel1'},
	{'34525/6/419','ip6/tcp/ariel1'},
	{'34525/17/419','ip6/udp/ariel1'},
	{'2048/6/420','ip/tcp/smpte'},
	{'2048/17/420','ip/udp/smpte'},
	{'34525/6/420','ip6/tcp/smpte'},
	{'34525/17/420','ip6/udp/smpte'},
	{'2048/6/421','ip/tcp/ariel2'},
	{'2048/17/421','ip/udp/ariel2'},
	{'34525/6/421','ip6/tcp/ariel2'},
	{'34525/17/421','ip6/udp/ariel2'},
	{'2048/6/422','ip/tcp/ariel3'},
	{'2048/17/422','ip/udp/ariel3'},
	{'34525/6/422','ip6/tcp/ariel3'},
	{'34525/17/422','ip6/udp/ariel3'},
	{'2048/6/423','ip/tcp/opc-job-start'},
	{'2048/17/423','ip/udp/opc-job-start'},
	{'34525/6/423','ip6/tcp/opc-job-start'},
	{'34525/17/423','ip6/udp/opc-job-start'},
	{'2048/6/424','ip/tcp/opc-job-tra


2 + 5,	"p3 fire 3"},

	{"P4 Coin",		    BIT_DIGITAL,	nWolfUnitJoy3 + 8,	"p4 coin"},
	{"P4 Start",		BIT_DIGITAL,	nWolfUnitJoy3 + 10,	"p4 start"},
	{"P4 Up",		    BIT_DIGITAL,	nWolfUnitJoy2 + 8,	"p4 up"},
	{"P4 Down",		    BIT_DIGITAL,	nWolfUnitJoy2 + 9,	"p4 down"},
	{"P4 Left",		    BIT_DIGITAL,	nWolfUnitJoy2 + 10,	"p4 left"},
	{"P4 Right",		BIT_DIGITAL,	nWolfUnitJoy2 + 11,	"p4 right"},
	{"P4 Button 1",		BIT_DIGITAL,	nWolfUnitJoy2 + 14,	"p4 fire 1"},
	{"P4 Button 2",		BIT_DIGITAL,	nWolfUnitJoy2 + 12,	"p4 fire 2"},
	{"P4 Button 3",		BIT_DIGITAL,	nWolfUnitJoy2 + 13,	"p4 fire 3"},

	{"Reset",		    BIT_DIGITAL,	&DrvReset,	        "reset"},
	{"Service",		    BIT_DIGITAL,	nWolfUnitJoy3 + 6,	"service"},
	{"Tilt",		    BIT_DIGITAL,	nWolfUnitJoy3 + 3,	"tilt"},
	{"Dip A",		    BIT_DIPSWITCH,	nWolfUnitDSW + 0,	"dip"},
	{"Dip B",		    BIT_DIPSWITCH,	nWolfUnitDSW + 1,	"dip"},
	{"Dip C",		    BIT_DIPSWITCH,	nWolfUnitDSW + 2,	"dip"},
};

STDINPUTINFO(Nbahangt)

static struct BurnDIPInfo NbahangtDIPList[]=
{
	{0x27, 0xff, 0xff, 0x7d, NULL		},
	{0x28, 0xff, 0xff, 0x7f, NULL		},
	{0x29, 0xff, 0xff, 0x10, NULL		},

	{0   , 0xfe, 0   ,    2, "Test Switch"		},
	{0x27, 0x01, 0x01, 0x01, "Off"		},
	{0x27, 0x01, 0x01, 0x00, "On"		},

	{0   , 0xfe, 0   ,    2, "Powerup Test"		},
	{0x27, 0x01, 0x02, 0x00, "Off"		},
	{0x27, 0x01, 0x02, 0x02, "On"		},

	{0   , 0xfe, 0   ,    2, "Bill Validator"		},
	{0x27, 0x01, 0x40, 0x40, "Off"		},
	{0x27, 0x01, 0x40, 0x00, "On"		},

	{0   , 0xfe, 0   ,    2, "Cabinet"		},
	{0x27, 0x01, 0x80, 0x00, "2-player"		},
	{0x27, 0x01, 0x80, 0x80, "4-player"		},

	{0   , 0xfe, 0   ,    3, "Counters"		},
	{0x28, 0x01, 0x03, 0x03, "One, 1/1"		},
	{0x28, 0x01, 0x03, 0x02, "One, Totalizing"		},
	{0x28, 0x01, 0x03, 0x01, "Two, 1/1"		},

	{0   , 0xfe, 0   ,    3, "Country"		},
	{0x28, 0x01, 0x0c, 0x0c, "USA"		},
	{0x28, 0x01, 0x0c, 0x08, "French"		},


isEmpty) {
      return [];
    }
    var list = this as dynamic;
    var shape = <int>[];
    while (list is List) {
      shape.add(list.length);
      list = list.elementAt(0);
    }
    return shape;
  }

  /// Flatten this list, [T] is element type
  List<T> flatten<T>() {
    var flat = <T>[];
    forEach((e) {
      if (e is List) {
        flat.addAll(e.flatten());
      } else if (e is T) {
        flat.add(e);
      }
    });
    return flat;
  }

  /// Get the element type of a nested list
  dynamic element() {
    var list = this as dynamic;
    while (list is List && !_isTypedList(list)) {
      list = list.elementAt(0);
    }
    return list;
  }

  /// Check if list is a typed list
  bool _isTypedList(dynamic list) {
    // VAD only uses these typed lists:
    return list is Float32List || // Audio frames and model states
        list is Int64List || // Tensor dimensions
        list is Int16List || // Audio conversion
        list is Uint8List; // Raw byte data
  }
}
// ignore_for_file: public_member_api_docs

import 'dart:ffi' as ffi;
import 'dart:typed_data';
import 'package:flutter/services.dart';

import 'package:ffi/ffi.dart';
import 'package:vad/src/platform/native/bindings/onnxruntime_bindings_generated.dart'
    as bg;
import 'package:vad/src/platform/native/onnxruntime/ort_env.dart';
import 'package:vad/src/platform/native/onnxruntime/ort_status.dart';
import 'package:vad/src/platform/native/onnxruntime/ort_value.dart';
import 'package:vad/src/platform/native/onnxruntime/ort_isolate_session.dart';

class OrtSession {
  late ffi.Pointer<bg.OrtSession> _ptr;
  late int _inputCount;
  late List<String> _inputNames;
  late int _outputCount;
  late List<String> _outputNames;
  OrtIsolateSession? _isolateSession;

  int get address => _ptr.address;
  int get inputCount => _inputCount;
  List<String> get inputNames => _inputNames;
  int get outputCount => _outputCount;
  List<String> get outputNames => _outputNames;

  /// Creates a session from buffer.
  OrtSession.fromBuffer(Uint8List modelBuffer, OrtSessionOptions options) {
    final pp = calloc<ffi.Pointer<bg.OrtSession>>();
    final size = modelBuffer.length;
    final bufferPtr = calloc<ffi.Uint8>(size);
    bufferPtr.asTypedList(size).setRange(0, size, modelBuffer);
    final statusPtr = OrtEnv.instance.ortApiPtr.ref.CreateSessionFromArray
            .asFunction<
                bg.OrtStatusPtr Function(
                    ffi.Pointer<bg.OrtEnv>,
                    ffi.Pointer<ffi.Void>,
                    int,
                    ffi.Pointer<bg.OrtSessionOptions>,
                    ffi.Pointer<ffi.Pointer<bg.OrtSession>>)>()(
        OrtEnv.instance.ptr, bufferPtr.cast(), size, options._ptr, pp);
    OrtStatus.checkOrtStatus(statusPtr);
    _ptr = pp.value;
    calloc.free(pp);
    calloc.free(bufferPtr);
    _init();
  }

  /// Creates a session from a pointer's address.
  OrtSession.fromAddress(int address) {
    _ptr = ffi.Pointer.fromAddress(address);
    _init();
  }

  void _init() {
    _inputCount = _getInputCount();
    _inputNames = _getInputNames();
    _outp


", "\xE0", "\u0101", "\u0105", "\xE5", "\xE3", "\xE6", "b", "c", "\u0107", "\u010D", "\xE7", "\u010B", "d", "\xF0", "\u010F", "\u0111", "e", "\xE9", "\u011B", "\xEA", "\xEB", "\u0117", "\xE8", "\u0113", "\u0119", "f", "g", "\u011F", "\u0123", "\u0121", "h", "\u0127", "i", "\xED", "\xEE", "\xEF", "\xEC", "\u012B", "\u012F", "j", "\u0135", "k", "\u0137", "l", "\u013A", "\u013E", "\u013C", "\u0142", "m", "n", "\u0144", "\u0148", "\u0146", "\u014B", "\xF1", "o", "\xF3", "\xF4", "\xF6", "\xF2", "\u0151", "\u014D", "\xF8", "\xF5", "\u0153", "p", "\xFE", "q", "r", "\u0155", "\u0159", "\u0157", "s", "\u015B", "\u0161", "\u015F", "\u0219", "t", "\u0167", "\u0165", "\u0163", "\u021B", "u", "\xFA", "\xFB", "\xFC", "\xF9", "\u0171", "\u016B", "\u0173", "\u016F", "v", "w", "\u1E83", "\u0175", "\u1E85", "\u1E81", "x", "y", "\xFD", "\u0177", "\xFF", "\u1EF3", "z", "\u017A", "\u017E", "\u017C", "\u02DC"] }, { tag: "sups", coverage: ["1", "2", "3", "\xB9", "\xB2", "\xB3"] }], "GF;Imbue": [{ tag: "cpsp" }, { tag: "kern" }, { tag: "mark" }, { tag: "mkmk" }, { tag: "aalt", coverage: ["\xC1", "\u0102", "\u1EAE", "\u1EB6", "\u1EB0", "\u1EB2", "\u1EB4", "\xC2", "\u1EA4", "\u1EAC", "\u1EA6", "\u1EA8", "\u1EAA", "\xC4", "\u1EA0", "\xC0", "\u1EA2", "\u0100", "\u0104", "\xC5", "\xC3", "\xC6", "B", "C", "\u0106", "\u010C", "\xC7", "\u1E08", "\u010A", "D", "\u010E", "\u0110", "E", "\xC9", "\u011A", "\xCA", "\u1EBE", "\u1EC6", "\u1EC0", "\u1EC2", "\u1EC4", "\xCB", "\u0116", "\u1EB8", "\xC8", "\u1EBA", "\u0112", "\u0118", "\u1EBC", "F", "G", "\u011E", "\u0122", "\u0120", "H", "\u0126", "I", "\xCD", "\xCE", "\xCF", "\u0130", "\u1ECA", "\xCC", "\u1EC8", "\u012A", "\u012E", "\u0128", "J", "K", "\u0136", "L", "\u01C7", "\u0139", "\u013D", "\u013B", "\u01C8", "\u0141", "M", "N", "\u01CA", "\u0143", "\u0147", "\u0145", "\u01CB", "\xD1", "\xD3", "\xD4", "\u1ED0", "\u1ED8", "\u1ED2", "\u1ED4", "\u1ED6", "\xD6", "\u1ECC", "\xD2", "\u1ECE", "\u01A0", "\u1


		end
	end
	ACK.array = octets
	new_codec('array', { encoding='string', zentype='a' })
end)

When("create '' from '' in ''", function(dest, key_name, obj_name)
	empty(dest)
	local obj, obj_codec = have(obj_name)
	local key, key_enc = mayhave(key_name)
	if key then
		if key_enc.encoding == "string" then
			key = key:str()
		elseif key_enc.encoding == "integer" then
			key = key:decimal()
		end
	else
		key = key_name
	end
	if obj_codec.zentype == 'a' then
		local key_num = tonumber(key)
		zencode_assert(#obj >= key_num, "Element "..key_num.." does not exists in array "..obj_name)
		ACK[dest] = obj[key_num]
	elseif obj_codec.zentype == 'd' then
		zencode_assert(obj[key], "Element "..key.." does not exists in dictionary "..obj_name)
		ACK[dest] = obj[key]
	else
		error("Last object must be an array or dictionary, found instead: "..obj_codec.zentype)
	end
	new_codec(dest, {encoding = obj_codec.encoding})
end)


DataCompressionType & CCTileDataCompressionType.None) != 0)
            {
                currentXmlTileIndex = 0;
            }
        }

        void ParseObjectEndElement()
        {
            currentParentElement = CCTileMapProperty.None;
        }

        void


َبِّي ۚ إِنَّ رَبِّي غَفُورٌ رَحِيمٌ',
    54: 'وَقَالَ الْمَلِكُ ائْتُونِي بِهِ أَسْتَخْلِصْهُ لِنَفْسِي ۖ فَلَمَّا كَلَّمَهُ قَالَ إِنَّكَ الْيَوْمَ لَدَيْنَا مَكِينٌ أَمِينٌ',
    55: 'قَالَ اجْعَلْنِي عَلَىٰ خَزَائِنِ الْأَرْضِ ۖ إِنِّي حَفِيظٌ عَلِيمٌ',
    56: 'وَكَذَٰلِكَ مَكَّنَّا لِيُوسُفَ فِي الْأَرْضِ يَتَبَوَّأُ مِنْهَا حَيْثُ يَشَاءُ ۚ نُصِيبُ بِرَحْمَتِنَا مَنْ نَشَاءُ ۖ وَلَا نُضِيعُ أَجْرَ الْمُحْسِنِينَ',
    57: 'وَلَأَجْرُ الْآخِرَةِ خَيْرٌ لِلَّذِينَ آمَنُوا وَكَانُوا يَتَّقُونَ',
    58: 'وَجَاءَ إِخْوَةُ يُوسُفَ فَدَخَلُوا عَلَيْهِ فَعَرَفَهُمْ وَهُمْ لَهُ مُنْكِرُونَ',
    59: 'وَلَمَّا جَهَّزَهُمْ بِجَهَازِهِمْ قَالَ ائْتُونِي بِأَخٍ لَكُمْ مِنْ أَبِيكُمْ ۚ أَلَا تَرَوْنَ أَنِّي أُوفِي الْكَيْلَ وَأَنَا خَيْرُ الْمُنْزِلِينَ',
    60: 'فَإِنْ لَمْ تَأْتُونِي بِهِ فَلَا كَيْلَ لَكُمْ عِنْدِي وَلَا تَقْرَبُونِ',
    61: 'قَالُوا سَنُرَاوِدُ عَنْهُ أَبَاهُ وَإِنَّا لَفَاعِلُونَ',
    62: 'وَقَالَ لِفِتْيَانِهِ اجْعَلُوا ب�


with_str("info")?      // Write all error, warn, and info messages
//! #     .log_to_file(FileSpec::default().directory(std::env::temp_dir()))
//!       // ...
//!       .adaptive_format_for_stderr(AdaptiveFormat::Default)
//!       .adaptive_format_for_stdout(AdaptiveFormat::Default)
//!       .format_for_files(default_format)
//!       .format_for_writer(default_format)
//! #     .start()?;
//! # error!("This is an error message");
//! # warn!("This is a warning");
//! # info!("This is an info message");
//! # debug!("This is a debug message - you must not see it!");
//! # trace!("This is a trace message - you must not see it!");
//! #  run()
//! # }
//! # fn run() -> Result<(), Box<dyn std::error::Error>> {Ok(())}
//! # }
//! ```
//!
//! ## Use a fixed log file, and truncate or append the file on each program start
//!
//! With [`Logger::log_to_file`](crate::Logger::log_to_file) and without rotation,
//! `flexi_logger` uses by default files with a timestamp in the name, like
//! `foo_2020-11-16_08-37-44.log` (for a program called `foo`), which are quite unique for each
//! program start.
//!
//! With [`FileSpec::suppress_timestamp`](crate::FileSpec::suppress_timestamp)
//! you get a simple fixed filename, like `foo.log`.
//!
//! In that case, a restart of the program will truncate an existing log file.
//!
//! Use additionally [`Logger::append`](crate::Logger::append)
//! to append the logs of each new run to the existing file.
//!
//! ```rust
//! # use flexi_logger::{FileSpec, Logger};
//! # use log::{debug, error, info, trace, warn};
//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
//! Logger::try_with_str("info")? // Write all error, warn, and info messages
//!     // use a simple filename without a timestamp
//!     .log_to_file(
//!         FileSpec::default().suppress_timestamp()
//! #           .directory(std::env::temp_dir())
//!     )
//!     // do not truncate the log file when the program is restarted
//!     .append()
//!     .start()?;
//!
//! # error!("This is an error message");
//! # warn!("This is a warning");
//! # info!("This is an info message");
//! # debug!("This is a debug message - you must not see it!");
//! # trace!("This is a trace message - you must not see it!");
//! #  run()
//! # }
//! # fn run() -> Result<(), Box<dyn std::error::Error>> {Ok(())}
//! ```
//!
//! ## Rotate the log file
//!
//! With rotation, the logs are always written to a file
//! with the infix `rCURRENT`, like e.g. `foo_rCURRENT.log`.
//!
//! [`Logger::rotate`](crate::Logger::rotate)
//! takes three enum arguments that define its behavior:
//!
//! - [`Criterion`](crate::Criterion)
//!    - with [`Criterion::Age`](crate::Criterion::Age) the rotation happens
//!      when the clock switches to a new day, hour, minute, or second
//!    - with [`Criterion::Size`](crate::Criterion::Size) the rotation happens
//!      when the current log file exceeds the specified limit
//!    - with [`Criterion::AgeOrSize`](crate::Criterion::AgeOrSize) the rotation happens
//!      when either of the two limits is reached
//!
//! - [`Naming`](crate::Naming)<br>The c


);
        appendNetwork(rId, rTxt);
    }

    if(percent(demicm.ADD_WEBGL_PER)) {
        var rId = randId(true, false, true);
        try {
            appendWebGL(rId, rTxt);
        } catch(e) {
            writeFileCM("fuzzlog",'// WebGL Crash: ' + e.message);
            demicm.WEBGL_PER = 0;
        }
    } else {
        demicm.WEBGL_PER = 0;
    }

    if(percent(demicm.ADD_CANVAS2D_PER)) {
        var rId = randId(true, false, true);
        appendCanvas2D(rId, rTxt);
    } else {
        demicm.CANVAS2D_PER = 0;
    }
}

function constructBaseTree() {
    var htmlIds = [0];
    var headIds = [1];
    var bodyIds = [2];
    var dangleIds = [];

    var totalRat = demicm.BODY_RATIO + demicm.HEAD_RATIO + demicm.HTML_RATIO + demicm.DANGLE_RATIO;
    var noRefIds = [];

    for (var i = 0; i < demicm.INI_ELEM_NUM; i++) {
        var rTag = randItem(demicm.strictTags);
        if (!inArr(demicm.idTags, rTag)) {
            demicm.idTags.push(rTag);
        }

        var insId = id.length;
        writeFileCM("fuzzlog",'id_' + insId + ' = document.createElement("' + rTag + '");');
        id[insId] = document.createElement(rTag);

        if (percent(demicm.NO_REF_ELEM_PER)) {
            noRefIds.push(insId);
        } else {
            writeFileCM("fuzzlog",'id_' + insId + '.id = ' + insId + ';');
            id[insId].id = insId;
        }

        // Get random parentNode id
        var rRat = rand(totalRat);
        if ((rRat -= demicm.BODY_RATIO) < 0) {
            // Body elems
            var rId = randItem(bodyIds);
            bodyIds.push(insId);
        } else if ((rRat -= demicm.HEAD_RATIO) < 0) {
            // Head elems
            var rId = randItem(headIds);
            headIds.push(insId);
        } else if ((rRat -= demicm.HTML_RATIO) < 0) {
            // HTML elems
            var rId = randItem(htmlIds);
            htmlIds.push(insId);
        } else {
            // Dangling elems
            var rId = randItem(dangleIds);
            dangleIds.push(insId);
            if (rId == null) {
                continue;
            }
        }

        writeFileCM("fuzzlog",'id_' + rId + '.appendChild(id_' + insId + ');');
        id[rId].appendChild(id[insId]);
    }

    for (var i = 0; i < noRefIds.length; i++) {
        writeFileCM("fuzzlog",'id_' + noRefIds[i] + ' = null;');
        id[noRefIds[i]] = null;
    }
}

function constructDOMTree() {
    // Add document, body, head to id[]
    demicm.idTags = ['body', 'head'];

    writeFileCM("fuzzlog",'id_0 = document.documentElement;');
    id[0] = document.documentElement;
    writeFileCM("fuzzlog",'document.documentElement.id = 0;');
    document.documentElement.id = 0;

    writeFileCM("fuzzlog",'id_1 = document.head


    aliases: ['purge', 'clear', 'remove'],
    permLevel: 'Moderator',
};

export const help = {
    category: 'Chat',
    description: 'Delete user / channel messages',
    usage: 'delete 50 or delete @user 50',
};
import Exception from '../../Exceptions/Exception';
import { INumberValue } from './Integers.types';
import { ensureInt } from "./ensureInt";
import Result from '../../Result/Result';
import { IResult } from '../../Result/_types';

export default class Int32 extends Number implements INumberValue
{
    /** The largest number that can be represented. Equal to 2,147,483,647. */
    public static readonly maxValue: number = 2147483647;

    /** The lowest number that can be represented. Equal to -2,147,483,648. */
    public static readonly minValue: number = -2147483648;

    readonly #value: number;

    constructor(value: number)
    {
        super(value);
        ensureInt(value, Int32.minValue, Int32.maxValue);
        this.#value = value;
    }

    [Symbol.toPrimitive](): number
    {
        return this.valueOf();
    }

    public valueOf(): number
    {
        return this.#value.valueOf() & 0xFFFFFFFF;
    }

    public static parse(value: string): Int32
    {
        const int = parseInt(value);
        return new Int32(int);
    }

    public static tryParse(value: string): IResult<Int32>
    {
        const int = parseInt(value);
        try
        {
            ensureInt(int, Int32.minValue, Int32.maxValue);
            return Result.ok(new Int32(int));
        }
        catch (ex)
        {
            if (ex instanceof Exception)
            {
                return Result.fail(ex.message);
            }
            else if (ex instanceof Error)
            {
                return Result.fail(ex.message);
            }

            else
            {
                return Result.fail(`${ex}`);
            }
        }
    }
}
function sliced(S, start, end) {
    return S.slice(start, end);
}

let S="The NorthCap University";
console.log(sliced(S,5,7));import { Component, Input, Output, EventEmitter } from '@angular/core';

import { WorkItem } from './my-work-item';

@Component({
  selector: 'app-work-table',
  templateUrl: 'my-work-table.html'
})

export class MyWorkTableComponent {
  @Input() workItems: WorkItem[];
  @Output() selected = new EventEmitter();
  @Output() newed = new EventEmitter();
  sortedWorkItems: WorkItem[];
  sortOrder = true;
  sortedColumn = 'workId';

  /**
   * sortWorkItems - sort based on column clicked, toggle between ascending/descending
   *  return negative if the first item is smaller;
   *  positive if it it's larger, or if it's zero if they're equal.
   */
  sortWorkItems(col) {
    this.sortedColumn = col;
    this.sortOrder = !this.sortOrder;
    this.sortedWorkItems = this.workItems.slice(0);

    if (this.sortOrder) { // ascending
      this.sortedWorkItems.sort((left, right): number => {
        if (left[col] < right[col]) {
          return -1;
        }
        if (left[col] > right[col]) {
          return 1;
        }
        return 0;
      });
    } else { // descending
      this.sortedWorkItems.sort((left, right): number => {
        if (left[col] > right[col]) {
          return -1;
        }


: "anyID"}}}},
			eidPermissions: []openrtb_ext.ExtRequestPrebidDataEidPermission{
				{Source: "source2", Bidders: []string{"otherBidder"}},
			},
			expectedUserEids: []openrtb2.EID{{Source: "source1", UIDs: []openrtb2.UID{{ID: "anyID"}}}},
		},
		{
			description: "Denied",
			userEids:    []openrtb2.EID{{Source: "source1", UIDs: []openrtb2.UID{{ID: "anyID"}}}},
			eidPermissions: []openrtb_ext.ExtRequestPrebidDataEidPermission{
				{Source: "source1", Bidders: []string{"otherBidder"}},
			},
			expectedUserEids: nil,
		},
		{
			description: "Mix Of Allowed By Specific Bidder, Allowed By Lack Of Matching Source, Denied",
			userEids: []openrtb2.EID{
				{Source: "source1", UIDs: []openrtb2.UID{{ID: "anyID1"}}},
				{Source: "source2", UIDs: []openrtb2.UID{{ID: "anyID2"}}},
				{Source: "source3", UIDs: []openrtb2.UID{{ID: "anyID3"}}},
			},
			eidPermissions: []openrtb_ext.ExtRequestPrebidDataEidPermission{
				{Source: "source1", Bidders: []string{"bidderA"}},
				{Source: "source3", Bidders: []string{"otherBidder"}},
			},
			expectedUserEids: []openrtb2.EID{
				{Source: "source1", UIDs: []openrtb2.UID{{ID: "anyID1"}}},
				{Source: "source2", UIDs: []openrtb2.UID{{ID: "anyID2"}}},
			},
		},
	}

	for _, test := range testCases {
		t.Run(test.description, func(t *testing.T) {
			request := &openrtb2.BidRequest{
				User: &openrtb2.User{EIDs: test.userEids},
			}

			reqWrapper := openrtb_ext.RequestWrapper{BidRequest: request}
			re, _ := reqWrapper.GetRequestExt()
			re.SetPrebid(&openrtb_ext.ExtRequestPrebid{
				Data: &openrtb_ext.ExtRequestPrebidData{
					EidPermissions: test.eidPermissions,
				},
			})

			expectedRequest := &openrtb2.BidRequest{
				User: &openrtb2.User{EIDs: test.expectedUserEids},
			}

			resultErr := removeUnpermissionedEids(&reqWrapper, bidder)
			assert.NoError(t, resultErr, test.description)
			assert.Equal(t, expectedRequest, reqWrapper.BidRequest)
		})
	}
}

func TestGetDebugInfo(t *testing.T) {
	type testInput struct {
		debugEnabledOrOverridden bool
		accountDebugFlag         bool
	}
	type testOut struct {
		responseDebugAllow bool
		accountDebugAllow  bool
		debugLog           *DebugLog
	}
	type testCase struct {
		in       testInput
		expected testOut
	}

	testGroups := []struct {
		description   string
		isTestRequest int8
		testCases     []testCase
	}{
		{
			description:   "Bid request doesn't call for debug info",
			isTestRequest: 0,
			testCases: []testCase{
				{
					testInput{debugEnabledOrOverridden: false, accountDebugFlag: false},
					testOut{
						responseDebugAllow: false,
						accountDebugAllow:  false,
						debugLog:           &DebugLog{Enabled: false},
					},
				},
				{
					testInput{debugEnabledOrOverridden: false, accountDebugFlag: true},
					testOut{
						responseDebugAllow: false,
						accountDebugAllow:  false,
						debugLog:           &DebugLog{Enabled: true},
					},
				},
				{
					testInput{debugEnabledO


       //      vec3 pos           |  vec3 normals     |    vec2 texcoords      |   vec2 lightcoord  |   vec2 tileCoords
                        (x + 0) * 2, h_b[0], (y + 1) * 2, 0.0f, 0.0f, 1.0f, tile.textureStart[2], tile.textureEnd[2], lu1, lv2, 0, 0,
                        (x + 0) * 2, h_a[2], (y + 1) * 2, 0.0f, 0.0f, 1.0f, tile.textureStart[0], tile.textureEnd[0], lu1, lv1, 0, 0,
                        (x + 1) * 2, h_a[3], (y + 1) * 2, 0.0f, 0.0f, 1.0f, tile.textureStart[1], tile.textureEnd[1], lu2, lv1, 0, 0,
                        (x + 1) * 2, h_b[1], (y + 1) * 2, 0.0f, 0.0f, 1.0f, tile.textureStart[3], tile.textureEnd[3], lu2, lv2, 0, 0,

                    });
                    }

                    // Check tile right
                    if (cellA.tileRight > -1 && x + 1 < gnd.width) {
                        var tile = gnd.tiles[cellA.tileRight];

                        var cellB = gnd.surfaces[x + 1 + y * gnd.width];
                        var h_b = cellB.height;

                        meshData.AddRange(new float[] {
                        //      vec3 pos           |  vec3 normals    |    vec2 texcoords      |   vec2 lightcoord   |    vec2 tileCoords
                        (x + 1) * 2, h_a[1], (y + 0) * 2, 1, 0, 0, tile.textureStart[1], tile.textureEnd[1], lu2, lv1, 0, 0,
                        (x + 1) * 2, h_a[3], (y + 1) * 2, 1, 0, 0, tile.textureStart[0], tile.textureEnd[0], lu1, lv1, 0, 0,
                        (x + 1) * 2, h_b[0], (y + 0) * 2, 1, 0, 0, tile.textureStart[3], tile.textureEnd[3], lu2, lv2, 0, 0,
                        //(x + 1) * 2, h_b[0], (y + 0) * 2, 1.0f, 0.0f, 0.0f, tile.textureStart[3], tile.textureEnd[3], lu2, lv2, 0, 0,
                        (x + 1) * 2, h_b[2], (y + 1) * 2, 1, 0, 0, tile.textureStart[2], tile.textureEnd[2], lu1, lv2, 0, 0,
                        //(x + 1) * 2, h_a[3], (y + 1) * 2, 1.0f, 0.0f, 0.0f, tile.textureStart[0], tile.textureEnd[0], lu1, lv1, 0, 0
                    });
                    }
                }
            }

            var mesh = new GND.Mesh();

            mesh.width = gnd.width;
            mesh.height = gnd.height;
            mesh.textures = gnd.textures;

            mesh.lightmap = CreateLightmapImage(gnd);
            mesh.tileColor = CreateTilesColorImage(gnd);
            //mesh.shadowMap = CreateShadowmapData(gnd);

            mesh.mesh = meshData.ToArray();
            mesh.meshVertCount = meshData.Count / 12;

            mesh.waterMesh = waterMeshData.ToArray();
            mesh.waterVertCount = waterMeshData.Count / 5;

            return mesh;
        }
    }
}


teSmartContract(TxMempoolEntry mempoolEntry)
        {
            // This coinview object can be altered by consensus whilst we're mining.
            // If this occurred, we would be mining on top of the wrong tip anyway, so
            // it's okay to throw a ConsensusError which is handled by the miner, and continue.

            GetSenderResult getSenderResult = this.senderRetriever.GetSender(mempoolEntry.Transaction, this.coinView, this.inBlock.Select(x => x.Transaction).ToList());
            if (!getSenderResult.Success)
                throw new ConsensusErrorException(new ConsensusError("sc-block-assembler-addcontracttoblock", getSenderResult.Error));

            IContractTransactionContext transactionContext = new ContractTransactionContext((ulong)this.height, this.coinbaseAddress, mempoolEntry.Fee, getSenderResult.Sender, mempoolEntry.Transaction);
            IContractExecutor executor = this.executorFactory.CreateExecutor(this.stateSnapshot, transactionContext);
            IContractExecutionResult result = executor.Execute(transactionContext);
            Result<ContractTxData> deserializedCallData = this.callDataSerializer.Deserialize(transactionContext.Data);

            this.blockGasConsumed += result.GasConsumed;

            // Store all fields. We will reuse these in CoinviewRule.
            var receipt = new Receipt(
                new uint256(this.stateSnapshot.Root),
                result.GasConsumed,
                result.Logs.ToArray(),
                transactionContext.TransactionHash,
                transactionContext.Sender,
                result.To,
                result.NewContractAddress,
                !result.Revert,
                result.Return?.ToString(),
                result.ErrorMessage,
                deserializedCallData.Value.GasPrice,
                transactionContext.TxOutValue,
                deserializedCallData.Value.IsCreateContract ? null : deserializedCallData.Value.MethodName);

            this.receipts.Add(receipt);

            return result;
        }
    }
}


);
    }
}
<reponame>nntp4/databend<filename>common/planners/src/plan_read_datasource.rs
// Copyright 2020 <NAME>.
//
// 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.

use std::sync::Arc;

use common_datavalues::DataSchema;
use common_datavalues::DataSchemaRef;
use common_metatypes::MetaId;
use common_metatypes::MetaVersion;

use crate::Expression;
use crate::Extras;
use crate::Partitions;
use crate::ScanPlan;
use crate::Statistics;

// TODO: Delete the scan plan field, but it depends on plan_parser:L394
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq)]
pub struct ReadDataSourcePlan {
    // TODO encapsulate these 5 fields into TableInfo
    pub db: String,
    pub table: String,
    pub table_id: MetaId,
    pub table_version: Option<MetaVersion>,
    pub schema: DataSchemaRef,

    pub parts: Partitions,
    pub statistics: Statistics,
    pub description: String,
    pub scan_plan: Arc<ScanPlan>,
    pub remote: bool,

    pub tbl_args: Option<Vec<Expression>>,
    pub push_downs: Option<Extras>,
}

impl ReadDataSourcePlan {
    pub fn empty(table_id: u64, table_version: Option<u64>) -> ReadDataSourcePlan {
        ReadDataSourcePlan {
            db: "".to_string(),
            table: "".to_string(),
            table_id,
            table_version,
            schema: Arc::from(DataSchema::empty()),
            parts: vec![],
            statistics: Statistics::default(),
            description: "".to_string(),
            scan_plan: Arc::new(ScanPlan::with_table_id(table_id, table_version)),
            remote: false,
            tbl_args: None,
            push_downs: None,
        }
    }

    pub fn schema(&self) -> DataSchemaRef {
        self.schema.clone()
    }
}
use warp::Filter;

#[tokio::main]
async fn main() {
    let hello = warp::path!("hello" / String)
        .map(|name| format!("Hello, {}!", name));
    let health = warp::path!(".within" / "health")
        .map(|| "OK");
    let routes = hello.or(health);

    warp::serve(routes)
        .run(([0, 0, 0, 0], 3030))
        .await;
}
<filename>src/tag.rs
use crate::{Error, Result};
use alloc::string::ToString;
use rusticata_macros::newtype_enum;

/// BER/DER Tag as defined in X.680 section 8.4
///
/// X.690 doesn't specify the maximum tag size so we're assuming that people
/// aren't going to need anything more than a u32.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Tag(pub u32);

newtype_enum! {
impl display Tag {
    EndOfContent = 0,
    Boolean = 1,
    Integer = 2,
    BitString = 3,
    OctetString = 4,
    Null = 5,
    Oid = 6,
    ObjectDescriptor = 7,
    External = 8,
    RealType = 9,
    Enumerated = 10,
    EmbeddedPdv = 11,
    Utf8String = 12,
    RelativeOid = 13,

    Sequence = 16,
    Set = 17,
    NumericString = 18,
    PrintableString = 19,
    T61String = 20,
    TeletexString = 20,
    VideotexString = 21,

    Ia5String = 22,
    UtcTime = 23,


        prenom: string,
        nomDeFamille: string
    }
    age?: number,
    moral?: string,
    objet?: string,
    parler?: () => void
    adoucir?: () => void
}

// 1
let vieille_dame: Person = {
    nom: {
        prenom: "Jeanne",
        nomDeFamille: "Calment"
    },
    age: 122,
    moral: "mal",
    objet: "canne"
}

// 2
vieille_dame.parler = function() {
    switch (this.moral) {
        case 'mal':
            alert("Vous me dérangez et le frappe avec son objet");
            break;
        case 'bien':
            alert(`bonjour ${vieil_homme.nom.prenom} ${vieil_homme.nom.nomDeFamille}`);
    }
}

// 3
let vieil_homme: Person = {
    nom: {
        prenom: "Michel",
        nomDeFamille: "Fugain"
    },
    adoucir() {
        vieille_dame.moral = "bien";
    }
}

vieille_dame.parler();
vieil_homme.adoucir();
vieille_dame.parler();
import { Entity, PrimaryGeneratedColumn, Column,
  OneToOne, JoinColumn } from 'typeorm'

const NULL = {nullable: true, default:null }
@Entity()
export class Notification {

    @PrimaryGeneratedColumn()
    id: number

    @Column()
    title: string

    @Column()
    text: string

    @Column({type:'datetime', default: () => 'CURRENT_TIMESTAMP'})
    created_at: Date

    @Column('datetime', NULL)
    updated_at: Date
}

(function () {

    // closures
    // =================================

    function createCounter() {
        var count = 0;

        // closure
        return function () {

            console.log(count++);
        }
    }

    var counter = createCounter();

    counter(); // logs 0
    counter(); // logs 1
    counter(); // logs 2

    // we learned, that js is lexical scoped,
    // so our counter has access to variable 'count'
    // and can change 'count'

    var anotherCounter = createCounter();

    anotherCounter(); // logs ??? what do you think?

}());

/*
 * Copyright © HatioLab Inc. All rights reserved.
 */

import { clonedeep } from '../../../src/util'
import { cloneDeep } from 'lodash'

import { expect } from 'chai'

describe('clonedeep', () => {

  describe('test for simple object', () => {

    var source;

    beforeEach(() => {
      source = { a: 32, b: 'abc' };
    });

    it('복사된 오브젝트의 Key의 종류와 값, 그리고 갯수가 같아야 한다.', () => {
      var cloned = clonedeep(source);

      expect(cloned.a).to.equal(32);
      expect(cloned.b).to.equal('abc');

      expect(cloned).to.include.keys('a');
      expect(cloned).to.include.keys('b');

      expect(Object.keys(cloned).length).to.equal(2);
    });

    it('Object.assign()을 사용한 방법보다 빨라야한다.', () => {
      var t0 = Date.now();
      for (let i = 0; i < 50000; i++) {
        let cloned = clonedeep(source);
      }
      var t1 = Date.now();
      var perf_clone = t1 - t0;

      t0 = Date.now();
      for (let i = 0; i < 50000; i++) {
        let cloned = cloneDeep(source);
      }


00000;}
-->
</style>

Vol. 3D 41-5

SGX INSTRUCTION REFERENCES

ENCLS—Execute an Enclave System Function of Specified Leaf Number

Instruction Operand Encoding

Description

The ENCLS instruction invokes the specified privileged Intel SGX leaf function for managing and debugging
enclaves. Software specifies the leaf function by setting the appropriate value in the register EAX as input. The
registers RBX, RCX, and RDX have leaf-specific purpose, and may act as input, as output, or may be unused. In 64-
bit mode, the instruction ignores upper 32 bits of the RAX register.
The ENCLS instruction produces an invalid-opcode exception (#UD) if CR0.PE = 0 or RFLAGS.VM = 1, or if it is
executed in system-management mode (SMM). Additionally, any attempt to execute the instruction when CPL > 0
results in #UD. The instruction produces a general-protection exception (#GP) if CR0.PG = 0 or if an attempt is
made to invoke an undefined leaf function.
In VMX non-root operation, execution of ENCLS may cause a VM exit if the “enable ENCLS exiting” VM-execution
control is 1. In this case, execution of individual leaf functions of ENCLS is governed by the ENCLS-exiting bitmap <br


highlight.active>a:after{border-left-color:#f2f6f9;-moz-border-left-colors:#f2f6f9}.no-skin .nav-list li li.highlight.active>a{background-color:#f2f6f9}.no-skin .nav-list li li.highlight.active.open>a{background-color:#FFF}.no-skin .nav-list li li.highlight.active.open>a:hover{background-color:#f1f5f9}@media (min-width:992px){.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active>a:after{display:block;content:"";position:absolute;left:0;top:auto;right:auto;bottom:-2px;left:50%;margin-left:-7px;border-color:transparent;-moz-border-right-colors:none;-moz-border-left-colors:none;-moz-border-top-colors:none;border-width:8px 7px;border-bottom-color:#FFF;-moz-border-bottom-colors:#FFF}.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active>a:before{content:"";position:absolute;display:block;left:0;top:auto;right:auto;bottom:-1px;left:50%;margin-left:-7px;border-width:8px;border-color:transparent;-moz-border-right-colors:none;-moz-border-left-colors:none;-moz-border-top-colors:none;border-bottom-color:#74add7;-moz-border-bottom-colors:#74add7}.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active:hover>a:after,.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active.hover-show>a:after,.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active:hover>a:before,.no-skin .sidebar.h-sidebar .nav-list>li.highlight.active.hover-show>a:before{display:none}}@media (min-width:992px){.sidebar.compact .nav-list li.highlight.active>a:after,.sidebar.compact .nav-list li.highlight.active>a:before{display:none}.sidebar.compact.menu-min .nav-list li.highlight.active>a:after,.sidebar.compact.menu-min .nav-list li.highlight.active>a:before{display:block}}@media (min-width:992px){.sidebar.h-sidebar .nav-list li.highlight.active>a:after,.sidebar.h-sidebar .nav-list li.highlight.active>a:before{display:block;border-width:8px!important;-moz-border-left-colors:none!important;-moz-border-right-colors:none!important;border-left-color:transparent!important;border-right-color:transparent!important}.sidebar.h-sidebar .nav-list>li.highlight.active:hover>a:after,.sidebar.h-sidebar .nav-list>li.highlight.active:hover>a:before{display:none!important}}.sidebar-scroll .nav-list>li.active.highlight>a:after,.sidebar-scroll .nav-list>li.active.highlight>a:before{display:none!important}.onpage-help-backdrop{position:absolute;z-index:99990;top:0;bottom:0;left:0;right:0;background-color:#000;filter:alpha(opacity=5);background-color:rgba(0,0,0,.05)}.onpage-help-section{display:block;position:absolute;z-index:100000;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4DFFFFFF', endColorstr='#4DFFFFFF', GradientType=0);background-color:rgba(255,255,255,.3);border:1px dashed #8BBCD3;border-radius:4px;transition:background-color .2s,border-color .2s;


MyEnum2);
      sut["MyEnum2"] = MyEnum.B;
      Aver.IsTrue(MyEnum.B == sut.MyEnum2);
    }

    [Run]
    public void IntArray1()
    {
      var sut = new Typed();
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray1"], null);
      Aver.IsNull(sut.IntArray1);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray1"], new int[] { 1, 2, 3 });
      Aver.AreArraysEquivalent(new int[] { 1, 2, 3 }, sut.IntArray1);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray1"], null);
      Aver.IsNull(sut.IntArray1);
      sut["IntArray1"] = null;
      Aver.IsNull(sut.IntArray1);
      sut["IntArray1"] = new int[] { 2, 1, 2, 3 };
      Aver.AreArraysEquivalent(new int[] { 2, 1, 2, 3 }, sut.IntArray1);
    }

    [Run]
    public void IntArray2()
    {
      var sut = new Typed();
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray2"], null);
      Aver.IsNull(sut.IntArray2);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray2"], new int?[] { 1, null, 7, 1 });
      Aver.AreArraysEquivalent(new int?[] { 1, null, 7, 1 }, sut.IntArray2);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["IntArray2"], null);
      Aver.IsNull(sut.IntArray2);
      sut["IntArray2"] = null;
      Aver.IsNull(sut.IntArray2);
      sut["IntArray2"] = new int?[] { 2, 1, 2, null, null, -5 };
      Aver.AreArraysEquivalent(new int?[] { 2, 1, 2, null, null, -5 }, sut.IntArray2);
    }

    [Run]
    public void Typed1()
    {
      var sut = new Typed();
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["Typed1"], null);
      Aver.IsNull(sut.Typed1);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["Typed1"], new Typed { String1 = "abc" });
      Aver.AreEqual("abc", sut.Typed1.String1);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["Typed1"], null);
      Aver.IsNull(sut.Typed1);
      sut["Typed1"] = null;
      Aver.IsNull(sut.Typed1);
      sut["Typed1"] = new Typed { String1 = "def" };
      Aver.AreEqual("def", sut.Typed1.String1);
    }

    [Run]
    public void TypedArray1()
    {
      var sut = new Typed();
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["TypedArray1"], null);
      Aver.IsNull(sut.Typed1);
      sut.SetFieldValue(Schema.GetForTypedDoc<Typed>()["TypedArray1"], new[] { new Typed { String1 = "ab


local awful = require("awful")
local wibox = require("wibox")
local beautiful = require("beautiful")
local helpers = require("helpers")

local color = require("ui.theme.colors")
local utils = require("ui.bar.utils")

local widgets = {
    get_layoutbox  = require("ui.bar.widgets.layoutbox"),
    get_tasklist    = require("ui.bar.widgets.tasks"),
    get_taglist    = require("ui.bar.widgets.tags"),
    dashboard      = require("ui.bar.widgets.dashboard"),
    systray        = require("ui.bar.widgets.systray"),
    battery        = require("ui.bar.widgets.battery"),
    clock          = require("ui.bar.widgets.clock"),
    music          = require("ui.bar.widgets.music"),
}

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

-- Wibar

screen.connect_signal("request::desktop_decoration", function(s)
    -- Tags
    awful.tag({'', '', '', '', '', '', '', '', ''}, s, awful.layout.layouts[1] )

    -- Create the wibox
    s.wibox = awful.wibar({
        position = "top",
        type     = "toolbar",
        screen   = s,
        width    = s.geometry.width - beautiful.useless_gap * 4,
        height   = beautiful.bar_height,
        margins = { top = beautiful.useless_gap },
        bg       = color["base"],


 0x71, 0x29, 0xff, 0x30, 0xf8, 0xfd, 0x78, 0xf9, 0x8d, 0xbb, 0xfb, 0x7a, 0x61,
	0x6f, 0x5f, 0x2f, 0xdc, 0xdf, 0xd7, 0x0b, 0x0f, 0xf7, 0xf5, 0xc2, 0xa7, 0x63, 0x5d, 0xf9, 0x76,
	0xac, 0x17, 0xee, 0x8e, 0x75, 0x65, 0x6f, 0xac, 0x2b, 0xbf, 0x8d, 0x75, 0xe5, 0xf7, 0xb1, 0x5e,
	0x78, 0x38, 0xd6, 0x95, 0xaf, 0x0e, 0xf4, 0xc2, 0xde, 0x81, 0x5e, 0xb8, 0x7f, 0xa0, 0x17, 0xfe,
	0xfe, 0xf9, 0xc1, 0x1d, 0xb5, 0xf8, 0xd9, 0xaf, 0x0f, 0xee, 0xa8, 0xf2, 0x9f, 0x80, 0xed, 0x92,
	0xf8, 0x71, 0x7b, 0xf1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x9e, 0xae, 0xef, 0x52, 0x10,
	0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// HandleAuthnZServiceClient is the client API for HandleAuthnZService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type HandleAuthnZServiceClient interface {
	// HandleAuthnZ is called by Mixer at request-time to deliver 'authnz' instances to the backend.
	HandleAuthnZ(ctx context.Context, in *HandleAuthnZRequest, opts ...grpc.CallOption) (*HandleAuthnZResponse, error)
}

type handleAuthnZServiceClient struct {
	cc *grpc.ClientConn
}

func NewHandleAuthnZServiceClient(cc *grpc.ClientConn) HandleAuthnZServiceClient {
	return &handleAuthnZServiceClient{cc}
}

func (c *handleAuthnZServiceClient) HandleAuthnZ(ctx context.Context, in *HandleAuthnZRequest, opts ...grpc.CallOption) (*HandleAuthnZResponse, error) {
	out := new(HandleAuthnZResponse)


                this.uriBuilder.Append('&');
            }
            else
            {
                this.uriBuilder.Append('?');
                this.hasParams = true;
            }

            AppendComponent(name, this.encoding, this.uriBuilder);
            if (value != null)
            {
                this.uriBuilder.Append('=');
                AppendComponent(value, this.encoding, this.uriBuilder);
            }
        }

        public override string ToString() => this.uriBuilder.ToString();

        static void AppendComponent(string s, Encoding encoding, StringBuilder sb)
        {
            s = UrlEncoder.Encode(s, encoding);
            // replace all '+' with "%20"
            int idx = s.IndexOf('+');
            if (idx == -1)
            {
                sb.Append(s);
                return;
            }
            sb.Append(s, 0, idx).Append("%20");
            int size = s.Length;
            idx++;
            for (; idx < size; idx++)
            {
                char c = s[idx];
                if (c != '+')
                {
                    sb.Append(c);
                }
                else
                {
                    sb.Append("%20");
                }
            }
        }
    }
}


public class MultiItemCans extends MultiItemRandomWithCompat implements IItemRottable {
	public MultiItemCans(String aModID, String aUnlocalized) {
		super(aModID, aUnlocalized);
		setCreativeTab(new CreativeTab(getUnlocalizedName(), "GregTech: Cans", this, (short)74));
	}

	@Override
	public void addItems() {
		IL.Food_Can_Undefined_1.set(addItem(    1, "Tiny Food Can (Unknown)"      , "", new FoodStat( 2, 0.1F,  5, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 1), TC.stack(TC.FABRICO, 1))); CR.remove(last());
		IL.Food_Can_Undefined_2.set(addItem(    2, "Small Food Can (Unknown)"     , "", new FoodStat( 4, 0.2F, 10, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 1), TC.stack(TC.FABRICO, 1))); CR.remove(last());
		IL.Food_Can_Undefined_3.set(addItem(    3, "Tall Food Can (Unknown)"      , "", new FoodStat( 6, 0.3F, 15, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 2), TC.stack(TC.FABRICO, 1))); CR.remove(last());
		IL.Food_Can_Undefined_4.set(addItem(    4, "Wide Food Can (Unknown)"      , "", new FoodStat( 8, 0.4F, 20, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 2), TC.stack(TC.FABRICO, 1))); CR.remove(last());
		IL.Food_Can_Undefined_5.set(addItem(    5, "Large Food Can (Unknown)"     , "", new FoodStat(10, 0.5F, 25, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 3), TC.stack(TC.FABRICO, 1))); CR.remove(last());
		IL.Food_Can_Undefined_6.set(addItem(    6, "Huge Food Can (Unknown)"      , "", new FoodStat(12, 0.6F, 30, C+37, 0.10F,  0,  0,  0,  0,  0, EnumAction.eat, NI, F, F, F, T), TC.stack(TC.FAMES, 3), TC.stack(TC.FABRICO, 1))); CR.remove(last());

		IL.Food_Can_Rotten_1   .set(addItem(   11, "Tiny Food Can (Rotten)"       , "", new FoodStat( 2, 0.1F,  5, C+37, 0.10F,  4,  0,  4,  4,  0, EnumAction.eat, NI, F, F, T, T, Potion.hunger.id, 300, 0, 40), TC.stack(TC.FAMES, 1), TC.stack(TC.FABRICO, 1), TD.Creative.HIDDEN)); CR.remove(last()); Sandwiches.INGREDIENTS.put(last(), (byte)29);
		IL.Food_Can_Rotten_2   .set(addItem(   12, "Small Food Can (Rotten)"      , "", new FoodStat( 4, 0.


D0,A0
	MOVE.L	(A0),D0
	MOVE.L	D0,A3
L134:
L132:
	MOVE.L	A3,-(A7)
	MOVE	#13,-(A7)
	MOVE	#68,-(A7)
	MOVE	#134,-(A7)
	JSR	F052_aaoz_(PC)
	ADDA	#10,A7
	MOVE	#59,-(A7)
	MOVE	#111,-(A7)
	MOVE	D6,-(A7)
	JSR	F332_xxxx_(PC)
	ADDQ.L	#6,A7
DATA SEG "s!"
	DATA 43 4F 4D 45 53 54 49 42 4C 45 00 00
CODE SEG "player"
	LEA	s!+194(A4),A0
	MOVE.L	A0,-64(A6)
DATA SEG "s!"
	DATA 45 4D 50 4F 49 53 4F 4E 4E 45 00 00
CODE SEG "player"
	LEA	s!+206(A4),A0
	MOVE.L	A0,-60(A6)
DATA SEG "s!"
	DATA 42 52 49 53 45 00
CODE SEG "player"
	LEA	s!+218(A4),A0
	MOVE.L	A0,-56(A6)
DATA SEG "s!"
	DATA 4D 41 55 44 49 54 00 00
CODE SEG "player"
	LEA	s!+224(A4),A0
	MOVE.L	A0,-52(A6)
	MOVE	#87,G422_i_Obj(A4)
	MOVE	-74(A6),D0
L135:
	CMP	#5,D0
	BEQ.S	L136
	BRA.S	L138
L136:
	MOVE	#14,D5
	MOVE.L	A2,D4
	MOVE.L	D4,A0
	MOVE	2(A0),D4
	AND	#256,D4
	LSR	#8,D4
	ASL	#3,D4
	MOVE.L	A2,D1
	MOVE.L	D1,A0
	MOVE	2(A0),D1
	AND	#512,D1
	LSR	#1,D1
	LSR	#8,D1
	ASL	#1,D1
	OR	D1,D4
	MOVE.L	A2,D1
	MOVE.L	D1,A0
	MOVE	2(A0),D1
	AND	#16384,D1
	LSR	#6,D1
	LSR	#8,D1
	ASL	#2,D1
	OR	D1,D4
	CMPI	#4,D6
	BCS.S	L140
	CMPI	#7,D6
	BHI.S	L140
	MOVE.L	A2,D0
	MOVE.L	D0,A0
	MOVE	2(A0),D0
	AND	#15360,D0
	LSR	#2,D0
	LSR	#8,D0
	CMPI	#0,D0
	BNE.S	L140
DATA SEG "s!"
	DATA 28 43 4F 4E 53 55 4D 45 29 00
CODE SEG "player"
	PEA	s!+232(A4)
	JSR	F335_xxxx_(PC)
	ADDQ.L	#4,A7
L140:
	BRA	L137(PC)
	BRA.S	L139
L138:
	CMP	#6,D0
	BEQ.S	L139
	BRA.S	L141
L139:
	MOVE	#12,D5
	MOVE.L	A2,D4
	MO


Color" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M40.5 42.5h-33a2.006 2.006 0 01-2-2v-33a2.006 2.006 0 012-2h33a2.006 2.006 0 012 2v33a2.006 2.006 0 01-2 2Z"/><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M30.24 20.413v4.426a2.682 2.682 0 002.682 2.683h0a2.682 2.682 0 002.683-2.683v-4.426m0 4.426v2.682"/><circle cx="38.42" cy="17.127" r=".75" fill="currentColor"/><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M38.42 20.413v7.108M20.646 18.2v7.98a1.341 1.341 0 001.341 1.341h.403m-3.152-7.108h2.816m-8.331 6.237 4.024-2.683-4.024-2.682M8.359 26.65l4.023-2.683-4.023-2.682m16.379 2.682h2.682"/></svg>';
  static const String tumblr =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M18.51 4.5h10.18v5.85h6v10.18h-6v11.24c0 .94.7 1.49 1.74 1.45 1.77-.11 3.72-.28 3.72-.28l1.33 10.25a32.1 32.1 0 01-6.83.19 12.23 12.23 0 01-7.21-4 12.6 12.6 0 01-2.93-7.72V20.53h-6V10.35h6Z"/></svg>';
  static const String tunein_radio =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"><rect width="24" height="14" x="4.5" y="19" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" rx="1"/><rect width="15" height="14" x="28.5" y="15" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" rx="1"/><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M23.429 29.071H26.5m-3.071-6.142H26.5M23.429 26h2.002m-2.002-3.071v6.142M6.5 22.929h4.069m-2.035 6.142v-6.142m9.252 6.142v-6.142l4.069 6.142v-6.142m-9.712.001v4.106a2.034 2.034 0 004.069 0V22.93m16.865-4.001v6.142m1.777 0v-6.142l4.069 6.142v-6.142"/></svg>';
  static const String tuner =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="


c_Training_-_Grenade
--      ["Nah, probably everyone was just stupid."] = "", -- A_Space_Adventure:final
--      ["Name"] = "", -- A_Classic_Fairytale:queen
--      ["Nancy Screw"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:queen
--      ["Napalm"] = "", -- Construction_Mode
--      ["Napalm Rocket"] = "", -- Continental_supplies
--      ["Napalm rocket: [Fire a bomb with napalm!]"] = "", -- Continental_supplies
--      ["Naranja Jed"] = "", -- A_Space_Adventure:fruit01
--      ["Naughty Ninja"] = "", -- User_Mission_-_Dangerous_Ducklings
--      ["Near a PAotH base on the moon ..."] = "", -- A_Space_Adventure:moon01
--      ["Near Secret Base 17 of PAotH in the rural Hogland ..."] = "", -- A_Space_Adventure:cosmos
--      ["nemo"] = "", --
--      ["Neutralize your enemies and be careful!"] = "", -- A_Space_Adventure:moon01
--      ["New barrels per turn: %d"] = "", -- Tumbler
--      ["New clan record: %.1fs"] = "", -- Racer, TechRacer
	["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ",
--      ["New mines per turn: %d"] = "", -- Tumbler
--      ["New race record: %.1fs"] = "", -- Racer, TechRacer
--      ["Newton and the Hammock"] = "", -- User_Mission_-_Newton_and_the_Hammock
--      ["Next target is ready!"] = "", -- Basic_Training_-_Flying_Saucer
--      ["Next time you play \"Searching in the dust\" you'll have an RC plane available."] = "", -- A_Space_Adventure:desert03
--      ["Nice!"] = "", -- A_Space_Adventure:cosmos
--      ["Nicely done, meatbags!"] = "", -- A_Classic_Fairytale:enemy
--      ["Nice! Now hurry and get down! You have to rescue my friends!"] = "", -- A_Space_Adventure:moon01
--      ["Nice, then I should get the part as soon as possible!"] = "", -- A_Space_Adventure:ice01
--      ["Nice work!"] = "", -- A_Classic_Fairytale:enemy
--      ["Nice work, meatbags!"] = "", -- A_Classic_Fairytale:queen
--      ["Nice work, %s!"] = "", -- A_Classic_Fairytale:dragon
--      ["Nilarian"] = "", -- A_Classic_Fairytale:queen
--      ["Ninja"] = "", -- Battalion, HedgeEditor, The_Specialists
--      ["Ninpo"] = "", --
--      ["Nobody Laugh"] = "", -- User_Mission_-_Nobody_Laugh
--      ["Nobody managed to finish the race. What a shame!"] = "", -- Racer, TechRacer
--      ["Nobody takes walks every day!"] = "", -- A_Classic_Fairytale:epil
--      ["No continent selected"] = "", -- Continental_supplies
--      ["No, I am afraid I had to travel light."] = "", -- A_Space_Adventure:moon01
--      ["No, I came back to help you out..."] = "", -- A_Classic_Fairytale:shadow
--      ["No...I wonder where they disappeared?!"] = "", -- A_Classic_Fairytale:journey
--      ["Nom-Nom"] = "", -- A_Classic_Fairytale:journey
--      ["NomNom"] = "", -- A_Classic_Fairytale:united
--      ["No Multi-Use: Once you used an ammo, you can’t take it again in this turn"] = "", -- Highlander
--      ["Noo, Thanta has to stay alive!"] = "", -- A_Space_Adventure:ice01
--      ["Nope. It was one fast


966.499 8.804-.1 12.17-2.085 2.966-1.747 4.057-4.738 4.457-8.542.28-2.654.236-5.882.187-9.603a541.08 541.08 0 01-.035-3.061A3.502 3.502 0 0042 15.5v-6a3.5 3.5 0 10-7 0v6a3.501 3.501 0 002.507 3.357c.009 1.125.023 2.2.037 3.226v.001c.049 3.651.09 6.694-.177 9.224-.377 3.58-1.34 5.766-3.483 7.028-2.88 1.697-7.237 2.285-10.905 1.823-1.827-.23-3.389-.71-4.462-1.366-.434-.265-.765-.542-1.006-.828 1.824-.103 3.605-.433 5.053-1.022 1.778-.723 3.389-1.999 3.435-4.014A7.002 7.002 0 0026 19.071v-5.949h-.003C26 13.082 26 13.041 26 13c0-2.761-4.477-5-10-5S6 10.239 6 13Zm12 13a7.001 7.001 0 005.997 6.929c-.044.778-.673 1.545-2.186 2.161-1.525.621-3.632.933-5.8.909a20.927 20.927 0 01-.92-.031V17.98c.3.013.603.02.909.02 3.271 0 6.175-.785 8-2v3.07A7.001 7.001 0 0018 26Zm4.177-11.253C23.774 13.948 24 13.215 24 13c0-.215-.226-.948-1.823-1.747C20.699 10.515 18.518 10 16 10s-4.7.515-6.177 1.253C8.226 12.052 8 12.785 8 13c0 .215.226.948 1.823 1.747C11.301 15.485 13.482 16 16 16s4.7-.515 6.177-1.253ZM25 21.5l-1.5 5 1.5 2 1.5-2-1.5-5Z" clip-rule="evenodd"/></svg>';
  static const String blood_pressure_monitor_outline =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"><g fill="currentColor"><path d="m23.5 26.5 1.5-5 1.5 5-1.5 2-1.5-2Z"/><path fill-rule="evenodd" d="M39.508 18.853A3.502 3.502 0 0042 15.5v-6a3.5 3.5 0 10-7 0v6a3.501 3.501 0 002.507 3.357c.009 1.125.023 2.2.037 3.226v.001c.049 3.651.09 6.694-.177 9.224-.377 3.58-1.34 5.766-3.483 7.028-2.88 1.697-7.237 2.285-10.905 1.823-1.827-.23-3.389-.71-4.462-1.366-.434-.265-.765-.542-1.006-.828 1.824-.103 3.605-.433 5.053-1.022 1.778-.723 3.389-1.999 3.435-4.014A7.002 7.002 0 0026 19.071v-5.949h-.003C26 13.082 26 13.041 26 13c0-2.761-4.477-5-10-5S6 10.239 6 13c0 .04.001.082.003.122H6V32.84c0 1.985 1.665 3.253 3.43 3.985


9px 12px0 0.020px,10px 12px0 0.020px,11px 12px0 0.020px,12px 12px0 0.020px,13px 12px0 0.020px,14px 12px0 0.020px #fff,15px 12px0 0.020px,16px 12px0 0.020px,2px 13px0 0.020px,3px 13px0 0.020px #fff,4px 13px0 0.020px,5px 13px0 0.020px #fff,6px 13px0 0.020px,7px 13px0 0.020px,8px 13px0 0.020px,9px 13px0 0.020px,10px 13px0 0.020px,11px 13px0 0.020px,12px 13px0 0.020px,13px 13px0 0.020px #fff,14px 13px0 0.020px,15px 13px0 0.020px,16px 13px0 0.020px,2px 14px0 0.020px,3px 14px0 0.020px #fff,4px 14px0 0.020px #fff,5px 14px0 0.020px,6px 14px0 0.020px #fff,7px 14px0 0.020px #fff,8px 14px0 0.020px #fff,9px 14px0 0.020px #fff,10px 14px0 0.020px #fff,11px 14px0 0.020px #fff,12px 14px0 0.020px #fff,13px 14px0 0.020px,14px 14px0 0.020px,15px 14px0 0.020px,3px 15px0 0.020px,4px 15px0 0.020px,5px 15px0 0.020px,6px 15px0 0.020px,7px 15px0 0.020px,8px 15px0 0.020px,9px 15px0 0.020px,10px 15px0 0.020px,11px 15px0 0.020px,12px 15px0 0.020px,13px 15px0 0.020px,14px 15px0 0.020px;
  }
}

.nes-icon.gmail::before {
  width: 1px;
  height: 1px;
  color: #eeecec;
  box-shadow: 2px 3px#fd2b2b,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px,15px 3px#fd2b2b,1px 4px#fd2b2b,2px 4px#fd2b2b,3px 4px#fd2b2b,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px#fd2b2b,15px 4px#fd2b2b,16px 4px#fd2b2b,1px 5px#fd2b2b,2px 5px#fd2b2b,3px 5px#fd2b2b,4px 5px#fd2b2b,5px 5px,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px#fd2b2b,14px 5px#fd2b2b,15px 5px#fd2b2b,16px 5px#fd2b2b,1px 6px#fd2b2b,2px 6px#fd2b2b,3px 6px,4px 6px#fd2b2b,5px 6px#fd2b2b,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px


C12AKUT
TC130ATA
TC150HP
TC150RC
TC150SLH
TC18M
TC19MYS
TC1ALH
TC1BW
TC1E
TC1ELH
TC1GLH
TC1HLH
TC1ILH
TC1KLH
TC1LZ
TC1RLH
TC1SWAT
TC1WUC
TC1YLH
TC2009UC
TC2010C
TC2010CCA
TC2010CCE
TC2010CCI
TC2010PSG
TC2010WUC
TC21BSR
TC25SG
TC2ALH
TC2BK
TC2C
TC2DOL
TC2ELH
TC2FLH
TC2IYK
TC2J
TC2SLH
TC2SWAT
TC2WUC
TC2X
TC2YF
TC2ZLH
TC3BLH
TC3HQ
TC3LHW
TC3MR
TC3TC
TC3WUC
TC40TRT
TC470PDZ
TC4LHW
TC57A
TC57ALAY
TC6BLH
TC6CLH
TC6GLH
TC6ILH
TC6JAM
TC6KLH
TC6LHW
TC70ATA
TC7C
TC7LHW
TC7SWAT
TC7T
TC7TC
TC7VLH
TC7WUC
TC7X
TC7YLH
TC7ZLH
TC800NH
TC800YOM
TC80ESK
TC85TC
TC88TC
TC90A
TC90AA
TC99K
TC99Y
TC9HLH
TC9KLH
TC9WUC
TE2M
TF/DG0ERS
TF/DL1FMK/P
TF/DL2VFR
TF/DL2VFR/P
TF/DL3PS
TF/DL4LQM
TF/G0TSM
TF/G4ELZ/P
TF/G4VXE
TF/GM3YOR
TF/LA9DL
TF/M0SCH
TF/OK7GU
TF/ON6KE
TF/OZ1CX
TF/SM1TDE
TF/VE2XAA
TF1/DL2VFR
TF1SS
TF1VG
TF2AO
TF2CL
TF2CL/5
TF2CT
TF2MSN
TF2R
TF2WLC
TF3/DL3KWF
TF3/DL3KWR
TF3AM
TF3AO
TF3ARI
TF3CL
TF3DC
TF3EE
TF3EJ
TF3EO
TF3G
TF3GB
TF3HZ
TF3KE
TF3KX
TF3KX/1
TF3KX/2
TF3KX/5
TF3LJ
TF3MA
TF3PPN
TF3RB
TF3TTY
TF3US
TF3VG
TF3VGT
TF3WX
TF3Y
TF3Y/P
TF3YH
TF3YH/2
TF3YH/OX
TF3YHN
TF5B
TF5BW
TF60VG
TF6JZ
TF7/DL2VFR
TF8SM
TF8TTY
TFAD7U
TG/EA4KT
TG0AA
TG4AOR
TG8NSM
TG9/F5UKV
TG9/KW2P
TG9ADQ
TG9ADV
TG9AFX
TG9AHM
TG9AKH
TG9AKH/HC
TG9ALJ
TG9AMH
TG9ANF
TG9AOO
TG9ATG
TG9ATX
TG9AUO
TG9AVU
TG9AWS
TG9AXF
TG9IIN
TG9IIN/7
TG9NATX
TG9SM
TI1R
TI2/NA7U
TI2CLX
TI2DLL
TI2ENB
TI2ERS
TI2HAS
TI2HMJ
TI2JCY
TI2KAC
TI2PI
TI2RDI
TI2SSO
TI2TL
TI2UNA
TI2VW
TI3/AB4