 (var i = 0; i < times + 1; i++) {
//     value.add(i);
//   }

//   return c.future;
// }

Future<int> miniStream() {
  final c = Completer<int>();

  final value = MiniStream<int>();
  final timer = Stopwatch();
  timer.start();

  value.listen((v) {
    if (times == v) {
      timer.stop();
      printValue(
          """$v listeners notified | [MINI_STREAM] time: ${timer.elapsedMicroseconds}ms""");
      c.complete(timer.elapsedMicroseconds);
    }
  });

  for (var i = 0; i < times + 1; i++) {
    value.add(i);
  }

  return c.future;
}

void main() {
  test('percentage test', () {
    printValue('============================================');
    printValue('PERCENTAGE TEST');

    const referenceValue = 200;
    const requestedValue = 100;

    printValue('''
referenceValue is ${calculePercentage(referenceValue, requestedValue)}% more than requestedValue''');
    expect(calculePercentage(referenceValue, requestedValue), 100);
  });
  test('run benchmarks from ValueNotifier', () async {
    times = 30;
    printValue('============================================');
    printValue('VALUE_NOTIFIER X GETX_VALUE TEST');
    printValue('-----------');
    await getValue();
    await valueNotifier();
    printValue('-----------');

    times = 30000;
    final getx = await getValue();
    final dart = await valueNotifier();
    printValue('-----------');

    printValue('ValueNotifier delay $dart ms to made $times requests');
    printValue('GetValue delay $getx ms to made $times requests');
    printValue('-----------');
    printValue('''
GetValue is ${calculePercentage(dart, getx).round()}% faster than Default ValueNotifier with $times requests''');
  });

  test('run benchmarks from Streams', () async {
    times = 30;
    printValue('============================================');
    printValue('DART STREAM X GET_STREAM X GET_MINI_STREAM TEST');
    printValue('-----------');
    // var getx = await getStream();
    var mini = await miniStream();
    var dart = await stream();
    printValue('-----------');
    printValue('''
GetStream is ${calculePercentage(dart, mini).round()}% faster than Default Stream with $times requests''');
    printValue('-----------');

    times = 30000;
    dart = await stream();
    // getx = await getStream();
    mini = await miniStream();

    times = 60000;
    dart = await stream();
    // getx = await getStream();
    mini = await miniStream();
    printValue('-----------');
    printValue('dart_stream delay $dart ms to made $times requests');
    // printValue('getx_stream delay $getx ms to made $times requests');
    printValue('getx_mini_stream delay $mini ms to made $times requests');
    printValue('-----------');
    printValue('''
GetStream is ${calculePercentage(dart, mini).round()}% faster than Default Stream with $times requests''');
  });
}

int calculePercentage(int dart, int getx) {
  return (dart / getx * 100).round() - 100;
}
/// GetX by default disposes unused controllers from memory,
/// Through different behaviors.
/// SmartManagement.full
/// [SmartManagement.full] is the default one. Dispose classes that are
/// not being used and were not set to be permanent. In the majority
/// of the cases you will want to keep this config untouched.
/// If you new to Get


JkHEZMQmRUpMyYmsQBRAZGxFbGV/wIGbHHhQoYMLQQKCiDglJQAKBpIbIBC4ZRQkzhZ3DioRAmOjQIoWeDk3zFSDIAsWLCBWSxdURgwUjBh5QmZU6ApmqLAoc4pGEhwwMSKgj9HkARBmBQB1kJCDzQksDBF2KZOUwAg4tcIQ4IOMj+ZQkWIKyMAFBJg+zSMlq2AAxYSUHi7ShAwgTJG6Kxb6JnCn8LCNQoEACH5BAUKAFMALAAAAAAaABoAAAf/gFOCgwAng1MBUYcGh42HKTsmg1JShAMBjo4hDkWMU5SDUVIEmY0CIDVCggKVUwVSAgeljT0OLBBTrFMPA1IIsyOHCiwOE4iKCFIDjQUFgw0hFoMxOR+HBBKeUwyiy4IXDQ0TzlMijtoElAIKgwU24ToYGLMHEZS4jlIfIaClAFEBAMz6NFCQwIIIS3HYsGHBAg4JEQlgJSXACocOV0QURUmKooggBUGYF7KRAg0JoAxsVuqAhQQJOnws1SsKg0YMKMC0IGuKtkGMFFAkNehkBXYGLx0KMOAgBEoRek5BGmrUsSnpZgJIdNDRq1ifKh1gRc5gKV6+BPVLNuABQraDFHQJ6vWrIDZtcn1KIFrwZ6JFmQIBADs=")}/* Copyright 2009, 2015 Red Hat, Inc.
 *
 * Portions adapted from Mx's data/style/default.css
 *   Copyright 2009 Intel Corporation
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU Lesser General Public License,
 * version 2.1, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
 * more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
 */
stage {
  color: #A9B1D6;
  font-size: 1em;
}

.shell-link {
  transition-duration: 100ms;
  border-radius: 2px;
  color: #7aa2f7;
}

.shell-link:hover {
  background-color: rgba(61, 137, 201, 0.08);
  color: #7aa2f7;
}

.shell-link:active {
  transition-duration: 200ms;
  background-color: rgba(61, 137


erforderlich sind, ausgew\u00e4hlt werden, und muss nachweisen k\u00f6nnen, dass es alle folgenden Bedingungen erf\u00fcllt:\na) es verf\u00fcgt \u00fcber besondere Fachkenntnisse und Kompetenzen sowie \u00fcber wissenschaftliches oder technisches Fachwissen auf dem Gebiet der KI;\nb) es ist von Anbietern von KI-Systemen oder KI-Modellen mit allgemeinem Verwendungszweck unabh\u00e4ngig;\nc) es ist in der Lage, T\u00e4tigkeiten sorgf\u00e4ltig, pr\u00e4zise und objektiv auszuf\u00fchren.\nDie Kommission legt in Absprache mit dem KI-Gremium die Anzahl der Sachverst\u00e4ndigen des Gremiums nach Ma\u00dfgabe der jeweiligen Erfordernisse fest und sorgt f\u00fcr eine ausgewogene Vertretung der Geschlechter und eine gerechte geografische Verteilung.\n(3) Das wissenschaftliche Gremium ber\u00e4t und unterst\u00fctzt das B\u00fcro f\u00fcr K\u00fcnstliche Intelligenz, insbesondere in Bezug auf folgende Aufgaben:\na) Unterst\u00fctzung bei der Durchf\u00fchrung und Durchsetzung dieser Verordnung in Bezug auf KI-Modelle und -Systeme mit allgemeinem Verwendungszweck, insbesondere indem es\ni) das B\u00fcro f\u00fcr K\u00fcnstliche Intelligenz im Einklang mit Artikel 90 vor m\u00f6glichen systemischen Risiken von KI-Modellen mit allgemeinem Verwendungszweck auf Unionsebene warnt;\nii) einen Beitrag zur Entwicklung von Instrumenten und Methoden f\u00fcr die Bewertung der F\u00e4higkeiten von KI-Modellen und -Systemen mit allgemeinem Verwendungszweck, auch durch Benchmarks, leistet;\niii) Beratung \u00fcber die Einstufung von KI-Modellen mit allgemeinem Verwendungszweck mit systemischem Risiko anbietet;\niv) Beratung \u00fcber die Einstufung verschiedener KI-Modelle und -Systeme mit allgemeinem Verwendungszweck anbietet;\nv) einen Beitrag zur Entwicklung von Instrumenten und Mustern leistet;\nb) Unterst\u00fctzung der Arbeit der Markt\u00fcberwachungsbeh\u00f6rden auf deren Ersuchen;\nc) Unterst\u00fctzung grenz\u00fcberschreitender Markt\u00fcberwachungst\u00e4tigkeiten gem\u00e4\u00df Artikel 74 Absatz 11, ohne dass die Befugnisse der Markt\u00fcberwachungsbeh\u00f6rden ber\u00fchrt werden;\nd) Unterst\u00fctzung des B\u00fcros f\u00fcr K\u00fcnstliche Intelligenz bei der Wahrnehmung seiner Aufgaben im Rahmen des Schutzklauselverfahrens der Union gem\u00e4\u00df Artikel 81. (4) Die Sachverst\u00e4ndigen des wissenschaftlichen Gremiums f\u00fchren ihre Aufgaben nach den Grunds\u00e4tzen der Unparteilichkeit und der Objektivit\u00e4t aus und gew\u00e4hrleisten die Vertraulichkeit der Informationen und Daten, in deren Besitz sie bei der Au..."}, {"color": {"background": "SpringGreen


/******************************************************************************
 *
 * Copyright(c)2019 Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * 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.
 *
 *****************************************************************************/
#ifndef _PHL_P2PPS_DEF_H_
#define _PHL_P2PPS_DEF_H_
#ifdef RTW_WKARD_P2PPS_REFINE
#ifdef CONFIG_PHL_P2PPS

struct rtw_phl_noa_info {
	u8 en_desc_num;
	u8 paused;
	struct rtw_phl_noa_desc noa_desc[MAX_NOA_DESC];
	struct rtw_phl_opps_desc opps_desc;
};

struct rtw_phl_p2pps_info {
	struct phl_info_t *phl_info;
	struct rtw_phl_p2pps_ops ops;
	_os_lock p2pps_lock;
	struct rtw_phl_noa_info noa_info[MAX_WIFI_ROLE_NUMBER];
};
#endif
#endif
#endif


--crm-c-danger: var(--crm-c-red-dark);
  --crm-c-danger-text: var(--crm-c-text-light);
  --crm-c-danger-light: var(--crm-c-red-light);
  --crm-c-danger-on-page-bg: #5d0d20;
  --crm-c-info: var(--crm-c-blue-dark);
  --crm-c-info-text: var(--crm-c-text-light);
  --crm-c-info-light: var(--crm-c-blue-light);
  --crm-c-info-on-page-bg: var(--crm-c-info);
/* Shadows */
  --crm-block-shadow: unset;
  --crm-popup-shadow: 0 3px 18px 0 rgba(48,40,40,.25);
  --crm-bottom-shadow: 0 0 16px 1px rgba(0,0,0,.1);
  --crm-body-inset: unset;
/* Sizes */
  --crm-roundness: 0.25rem;
  --crm-xs: 0.1rem;
  --crm-xs1: 0.125rem;
  --crm-xs2: 0.15rem;
  --crm-s: 0.25rem;
  --crm-s1: 0.275rem;
  --crm-s2: 0.325rem;
  --crm-s3: 0.375rem;
  --crm-m: 0.5rem;
  --crm-m1: 0.625rem;
  --crm-m2: 0.75rem;
  --crm-m3: 0.875rem;
  --crm-r: 1rem;
  --crm-r1: 1.125rem;
  --crm-r2: 1.25rem;
  --crm-r3: 1.375rem;
  --crm-r4: 1.5rem;
  --crm-l: 2rem;
  --crm-xl: 3rem;
  --crm-xxl: 4rem;
  --crm-big-input: 15em;
  --crm-huge-input: 25em;
  --crm-padding-reg: var(--crm-r);
  --crm-padding-small: var(--crm-s);
  --crm-padding-inset: var(--crm-m);
  --crm-page-padding: var(--crm-xl); /* Margin left/right */
  --crm-page-width: 100%; /* Default that CMS can overwrite */
  --crm-flex-gap: 0.5rem;
/* Type */
  --crm-font-size: var(--crm-r);
  --crm-small-font-size: var(--crm-m2);
  --crm-type-line-height: 1.5;
  --crm-link-decoration: none;
  --crm-link-decoration-hover: underline;
  --crm-heading-bg: var(--crm-c-info-light);
  --crm-heading-col: var(--crm-c-info-on-dark);
  --crm-heading-padding: var(--crm-s1) var(--crm-m1);
  --crm-heading-margin: var(--crm-m) 0;
  --crm-heading-radius: var(--crm-roundness);
/* Mouse events */
  --crm-hover-clickable: pointer;
/* Buttons */
  --crm-btn-box-shadow: none;
  --crm-btn-border: 0 solid transparent;
  --crm-btn-txt-transform: inherit;
  --crm-btn-weight: inherit;
  --crm-btn-font: inherit;
  --crm-btn-radius: 3px;
  --crm-btn-padding-block: var(--crm-xs1); /* padding for top and bottom, one value */
  --crm-btn-padding-inline: var(--crm-m1); /* padding for left and right, one value */
  --crm-btn-small-padding: var(--crm-xs)


tart ov08_022130EC
ov08_022130EC: ; 0x022130EC
	push {r3, r4, r5, r6, r7, lr}
	add r4, r0, #0
	ldr r0, [r4, #0x18]
	add r1, r0, #4
	str r1, [r4, #0x18]
	ldr r0, [r1]
	add r1, r1, #4
	str r1, [r4, #0x18]
	bl ov08_02218C48
	add r7, r0, #0
	ldr r0, [r4, #0x18]
	add r2, r4, #0
	ldr r5, [r0]
	add r0, r0, #4
	add r2, #0x18
	mov r3, #0
	str r0, [r4, #0x18]
	cmp r5, #0
	bls _0221312E
	add r6, r4, #0
_02213116:
	ldr r0, [r4, #0x18]
	add r3, r3, #1
	ldr r1, [r0]
	add r0, r6, #0
	add r0, #0x94
	str r1, [r0]
	ldr r0, [r2]
	add r6, r6, #4
	add r0, r0, #4
	str r0, [r2]
	cmp r3, r5
	blo _02213116
_0221312E:
	cmp r3, #0xa
	bge _02213146
	lsl r0, r3, #2
	add r2, r4, r0
	mov r1, #0
_02213138:
	add r0, r2, #0
	add r0, #0x94
	add r3, r3, #1
	add r2, r2, #4
	str r1, [r0]
	cmp r3, #0xa
	blt _02213138
_02213146:
	add r0, r4, #0
	blx r7
	pop {r3, r4, r5, r6, r7, pc}

	thumb_func_start ov08_0221314C
ov08_0221314C: ; 0x0221314C
	ldr r2, [r0, #0x18]
	add r1, r0, #0
	add r2, r2, #4
	str r2, [r0, #0x18]
	add r2, r0, #0
	add r2, #0xc0
	ldr r2, [r2]
	add r1, #0x18
	ldrh r3, [r2, #0x10]
	mov r2, #1
	tst r2, r3
	beq _0221316A
	ldr r2, [r1]
	add r2, r2, #4
	str r2, [r1]
_0221316A:
	ldr r2, [r0, #0x18]
	ldr r1, [r2]
	lsl r1, r1, #2
	add r1, r2, r1
	str r1, [r0, #0x18]
	bx lr
	.align 2, 0

	thumb_func_start ov08_02213178
ov08_02213178: ; 0x02213178
	push {r4, lr}
	add r4, r0, #0
	ldr r1, [r4, #0x18]
	add r1, r1, #4
	str r1, [r4, #0x18]
	ldr r2, [r1]
	add r1, r1, #4
	str r1, [r4, #0x18]
	cmp r2, #0
	bne _0221319A


?fr/inria/coming/codefeatures/package-tree.html" target="_top">Frames

No Frames

All Classes

Hierarchy For Package fr.inria.coming.codefeatures

Enum Hierarchy

java.lang.Object

java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)

fr.inria.coming.codefeatures.CodeFeatures

Skip navigation links

Package

Class

Use

Tree

Deprecated

Index

Help

Prev

Next

Frames

No Frames

All Classes

<title>Rubberhose review</title>

          RUBBERHOSE review by Steven Baum

Rubberhose is a deniable cryptography package that lets
someone not wanting to disclose plaintext data corresponding
to their encrypted data show that there is more than one interpretation of the latter.

Rubberhose works by initially writing random characters to an
entire hard drive or other dynamic storage device.
This random noise is indistinguishable from the encrypted data
to be stored on that disk.
If you have a 1 GB drive


ecx+xmm7*4+1024]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqd	[ebp+ymm7*8-123]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqd	[eax+ymm7+256]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqd	[ecx+ymm7*4+1024]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqq	[ebp+xmm7*8-123]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqq	[eax+xmm7+256]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqq	[ecx+xmm7*4+1024]{k1}, xmm6	 # AVX512{F,VL}
	vpscatterqq	[ebp+ymm7*8-123]{k1}, ymm6	 # AVX512{F,VL}
	vpscatterqq	[eax+ymm7+256]{k1}, ymm6	 # AVX512{F,VL}
	vpscatterqq	[ecx+ymm7*4+1024]{k1}, ymm6	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, xmm5, 0xab	 # AVX512{F,VL}
	vpshufd	xmm6{k7}{z}, xmm5, 0xab	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, xmm5, 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, XMMWORD PTR [ecx], 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, XMMWORD PTR [esp+esi*8-123456], 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, [eax]{1to4}, 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, XMMWORD PTR [edx+2032], 123	 # AVX512{F,VL} Disp8
	vpshufd	xmm6{k7}, XMMWORD PTR [edx+2048], 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, XMMWORD PTR [edx-2048], 123	 # AVX512{F,VL} Disp8
	vpshufd	xmm6{k7}, XMMWORD PTR [edx-2064], 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, [edx+508]{1to4}, 123	 # AVX512{F,VL} Disp8
	vpshufd	xmm6{k7}, [edx+512]{1to4}, 123	 # AVX512{F,VL}
	vpshufd	xmm6{k7}, [edx-512]{1to4}, 123	 # AVX512{F,VL} Disp8
	vpshufd	xmm6{k7}, [edx-516]{1to4}, 123	 # AVX512{F,VL}
	vpshufd	ymm6{k7}, ymm5, 0xab	 # AVX512{F,VL}
	vpshufd	ymm6{k7}{z}, ymm5, 0xab	 # AVX512{F,VL}
	vpshufd	ymm6{k7}, ymm5, 123	 # AVX512{F,VL}
	vpshufd	ymm6{k7}, YMMWORD PTR [ecx], 123	 # AVX512{F,VL}
	vpshufd	ymm6{k7}, YMMWORD PTR [esp+esi*8


slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-moz-focus-inner{border:0}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range].focused:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s}input[type=range].focused:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:16px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:15px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:14px;border-left:2px solid #ee6e73}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,0.05)}.sidenav li>a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0


+Sans:ital,wght@0,400;0,600;0,700;1,400&display=swap" rel="stylesheet">
    <link href="/assets/website/css/hysteria2/bootstrap.min.css" rel="stylesheet">
    <link href="/assets/website/css/hysteria2/fontawesome-all.min.css" rel="stylesheet">
    <link href="/assets/website/css/hysteria2/swiper.css" rel="stylesheet">
    <link href="/assets/website/css/hysteria2/styles.css" rel="stylesheet">

                            Hysteria2

            <button class="navbar-toggler p-0 border-0" type="button" id="navbarSideCollapse" aria-label="Toggle navigation">

            </button>

                        首页

                        免费节点

                        推荐机场

                        客户端

                        新闻资讯


///

    ///

    /// Queue - The ARN of an SQS queue.

    ///

    ///

    ///

    /// Topic - The ARN of an SNS topic.

    ///

    ///

    ///

    /// Event Bus - The ARN of an Amazon EventBridge event bus.

    ///

    ///

    #[serde(rename = "DestinationConfig")]
    #[serde(default)]
    pub destination_config: std::option::Option<crate::model::DestinationConfig>,
}
impl std::fmt::Debug for UpdateFunctionEventInvokeConfigOutputBody {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut formatter = f.debug_struct("UpdateFunctionEventInvokeConfigOutputBody");
        formatter.field("last_modified", &self.last_modified);
        formatter.field("function_arn", &self.function_arn);
        formatter.field("maximum_retry_attempts", &self.maximum_retry_attempts);
        formatter.field(
            "maximum_event_age_in_seconds",
            &self.maximum_event_age_in_seconds,
        );
        formatter.field("destination_config", &self.destination_config);
        formatter.finish()
    }
}
#![warn(clippy::all)]

pub use crate::config::*;
pub use crate::data::*;
pub use crate::events::*;
pub use crate::resource::*;
pub use crate::shared_data::*;
pub use crate::singleton::*;

pub mod config;
pub mod data;
pub mod events;
pub mod resource;
pub mod shared_data;
pub mod singleton;
<reponame>DataDog/libddprof<gh_stars>1-10
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021-Present Datadog, Inc.

pub mod os {
    // TODO: this function will call API's (fargate, k8s, etc) in the future to get to real host API
    pub async fn real_hostname() -> anyhow::Result<String> {
        Ok(sys_info::hostname()?)
    }

    pub const fn os_name() -> &'static str {
        std::env::consts::OS
    }

    pub fn os_version() -> anyhow::Result<String> {
        sys_info::os_release().map_err(|e| e.into())
    }
}
<filename>website/website/src/utils/preferences.rs
use std::{time::Duration, collections::HashMap};

use {liturgy::{PreferenceKey, PreferenceValue, Version, LiturgyPreferences, Content, Document}, language::Language};
use futures::StreamExt;
use leptos::*;
use itertools::Itertools;
use liturgy::SlugPath;

use crate::{preferences::{self, StorageError}};

#[derive(Copy, Clone, PartialEq, Eq)]
pub enum Status {
    Idle,
    Success,
    Error,
    NotAvailable,
}

pub fn preference_status_footer(status: &Behavior<Status>) -> View {
    view! {

            <dyn:p class="success hidden" class:hidden={status.stream().map(|status| status != Status::Success).boxed_local()}>
                {t!("settings.success")}
            </dyn:p>
            <dyn:p class="error hidden" class:hidden={status.stream().map(|status| status != Status::Error).boxed_local()}>
                {t!("settings.error")}
            </dyn:p>
            <dyn:p class="error hidden" class:hidden={status.stream().map(|status| status != Status::NotAvailable).boxed_local()}>
                {t!("settings.not_available")}
            </dyn:p>

    }
}

pub fn set_preference(status: &Behavior<Status>, key: &PreferenceKey, value: &PreferenceValue) {
    preference_effect(status, || preferences::set(key, value));
}

pub fn clear_preference(status: &Behavior<Status>, key: &PreferenceKey) {
    preference_effect(status, || preferences::clear(key));
}

pub fn preference_effect(
    status: &Behavior<Status>,
    effect: impl FnOnce() -> Result<(), StorageError>,
) {
    if !is_server!() {


.cfg -rmatom 1622 final.xsf

Ceci lira le fichier initial.cfg, supprimera l'atome #1622, et écrira le résultat final.xsf.

atomsk initial.cfg -rmatom Fe final.xyz

Ceci supprimera tous les atomes de fer du système.

atomsk initial.cfg -select in sphere 0.5*box 0.5*box 0.5*box 30 -rmatom Si final.xyz

Ceci va sélectionner les atomes dans une sphère, et supprimera les atomes de silicium qui font partie de cette sélection.

atomsk initial.cfg -select in sphere 0.5*box 0.5*box 0.5*box 30 -rmatom select final.xyz

Ceci va sélectionner les atomes dans une sphère, et supprimera tous les atomes qui font partie de cette sélection.

Retour au menu principal

<!DOCTYPE html>

    <title>Atomsk - Licence - Pierre Hirel</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" media="screen" type="text/css" title="Default" href="./default.css" />
    <link rel="icon" href="../img/atomsk_logo.png" type="image/png" />

Retour au menu principal

Licence

Atomsk est et sera toujours un logiciel libre. Ce programme est distribué dans l'espoir qu'il sera utile à d'autres personnes. Vous pouvez l'utiliser, l'étudier, le modifier, et le redistribuer autant que vous le souhaitez.

Sachez toutefois que ce programme est fourni tel quel, sans aucune garantie, et est toujours en développement. C'est une  manière polie de dire qu'il peut encore contenir des bugs, planter, fonctionner d'une manière différente de ce à quoi vous vous attendez, ou dans des cas extrêmes, provoquer des dégâts colatéraux sur votre clavier, écran ou autre matériel à portée de main. Si cela arrive, le programme et son auteur ne pourront pas en être tenus pour responsables. Sachez que vous utilisez ce programme à vos risques et périls, et vous seul êtes responsable si vous obtenez des résultats incorrects. Si vous voulez rapporter un bug vous pouvez envoyer un email à l'auteur, mais comprenez qu'il n'est aucunement forcé de satisfaire vos requêtes. Si vous avez désespérément besoin de quelquechose, libre à vous d'éditer le code source du programme.

Plus formellement, ce programme est distribué sous la licence GNU/GPL (General Public License) version 3 ou n'importe quelle version ultérieure. Une copie de cette licence se trouve dans le fichier LICENSE fourni avec le programme, ou sur <a href="http://www.gnu.org/licenses/


J Climate (2012b), as modified in Zelinka et al., J. Climate (2013)
    output = {}
    output_wap = {}
    for sec in sections:
        print("    for section " + sec)
        # [sec][flavor][region][all / ocn / lnd / ocn_asc / ocn_dsc]

        PP = sec_dic[sec]

        C1 = clisccp_base[:, :, PP, :]
        C2 = C1 + clisccp_fbk[:, :, PP, :]
        Klw = LWK[:, :, PP, :]
        Ksw = SWK[:, :, PP, :]

        output[sec] = KT_decomposition_general(C1, C2, Klw, Ksw)

        Klw = LWK_wap[:, :, PP, :-1]  # ignore the land bin
        Ksw = SWK_wap[:, :, PP, :-1]
        C1 = ctl_clisccp_wap[:, :, PP, :-1]
        C2 = fut_clisccp_wap[:, :, PP, :-1]
        N1 = ctl_N[:, :-1]
        N2 = fut_N[:, :-1]

        # no breakdown (this is identical to within + between + covariance)
        C1N1 = (C1 * N1).transpose(
            "time", "tau", "plev", "dwap"
        )  # [month,TAU,CTP,regime]
        C2N2 = (C2 * N2).transpose(
            "time", "tau", "plev", "dwap"
        )  # [month,TAU,CTP,regime]
        pert, C_base = compute_fbk(C1N1, C2N2, dTs)
        output_wap[sec] = KT_decomposition_general(C_base, C_base + pert, Klw, Ksw)

    ###########################################################################
    # Compute obscuration feedback components
    ###########################################################################
    print("Get Obscuration Terms")
    sec = "LO680"  # this should already be true, but just in case...
    PP = sec_dic[sec]
    obsc_output = {}
    obsc_output[sec] = do_obscuration_calcs(
        ctl_clisccp, fut_clisccp, LWK[:, :, PP, :], SWK[:, :, PP, :], dTs
    )

    # Do this for the omega-regimes too:
    CTL = (ctl_clisccp_wap * ctl_N)[..., :-1]  # ignore the land bin
    FUT = (fut_clisccp_wap * fut_N)[..., :-1]
    LWK_wap_tmp = LWK_wap[:, :, PP, :-1]  # ignore the land bin
    SWK_wap_tmp = SWK_wap[:, :, PP, :-1]  # ignore the land bin
    obsc_output_wap = {}
    obsc_output_wap[sec] = do_obscuration_calcs(CTL, FUT, LWK_wap_tmp, SWK_wap_tmp, dTs)

    ###########################################################################
    # Compute regional averages (weighted by fraction of globe); place in dictionary
    ###########################################################################
    print("Compute regional averages")
    # [region][sfc][sec][name]
    obsc_fbk_dict = regional_breakdown(obsc_output, OCN, LND, area_wts)
    fbk_dict = regional_breakdown(output, OCN, LND, area_wts)

    # Put all the ascending and descending region quantities in a dictionary
    names = list(output_wap["ALL"].keys())
    for sec in sections:
        for name in names:
            fbk_dict["eq30"]["ocn_asc"][sec][name] = (
                (output_wap[sec][name][:, :cutoff]).sum("dwap").mean("time").values
            )
            fbk_dict["eq30"]["ocn_dsc"][sec][name] = (
                (output_wap[sec][name][:, cutoff:]).sum("dwap").mean("time").values
            )

    sec = "LO680"
    names = list(obsc_output_wap[sec].keys())
    for name in names:
        obsc_fbk_dict["eq30"]["ocn_asc"][sec][name] = (
            (obsc_output_wap[sec][name][:, :cutoff]).sum("dwap").mean("time").values
        )
        obsc_fbk_dict["eq30"]["ocn_dsc"][sec][name] = (
            (obsc_output_wap[sec][name][:, cutoff:]).sum("dwap").mean("time").values
        )

    meta = {
        "date_modified": str(date.today()),
        "author": "Mark D. Zelinka <zelinka1@llnl.gov> and Li-Wei Chao <chao5@llnl.gov>",
    }
    fbk_dict["metadata"] = meta
    obsc_fbk_dict["metadata"] = meta

    return (fbk_dict, obsc_fbk_dict, KEM_dict)


&& ctt->size <= 4,
		   "only 32 bit const supported");  /* NYI */
      if ((ctt->info & CTF_UNSIGNED) && (int32_t)ct->size < 0)
	setnumV(tv, (lua_Number)(uint32_t)ct->size);
      else
	setintV(tv, (int32_t)ct->size);
    } else {
      const char *sym = clib_extsym(cts, ct, name);
#if LJ_TARGET_WINDOWS
      DWORD oldwerr = GetLastError();
#endif
      void *p = clib_getsym(cl, sym);
      GCcdata *cd;
      lj_assertCTS(ctype_isfunc(ct->info) || ctype_isextern(ct->info),
		   "unexpected ctype %08x in clib", ct->info);
#if LJ_TARGET_X86 && LJ_ABI_WIN
      /* Retry with decorated name for fastcall/stdcall functions. */
      if (!p && ctype_isfunc(ct->info)) {
	CTInfo cconv = ctype_cconv(ct->info);
	if (cconv == CTCC_FASTCALL || cconv == CTCC_STDCALL) {
	  CTSize sz = clib_func_argsize(cts, ct);
	  const char *symd = lj_strfmt_pushf(L,
			       cconv == CTCC_FASTCALL ? "@%s@%d" : "_%s@%d",
			       sym, sz);
	  L->top--;
	  p = clib_getsym(cl, symd);
	}
      }
#endif
      if (!p)
	clib_error(L, "cannot resolve symbol " LUA_QS ": %s", sym);
#if LJ_TARGET_WINDOWS
      SetLastError(oldwerr);
#endif
      cd = lj_cdata_new(cts, id, CTSIZE_PTR);
      *(void **)cdataptr(cd) = p;
      setcdataV(L, tv, cd);
      lj_gc_anybarriert(L, cl->cache);
    }
  }
  return tv;
}

/* -- C library management ------------------------------------------------ */

/* Create a new CLibrary object and push it on the stack. */
static CLibrary *clib_new(lua_State *L, GCtab *mt)
{
  GCtab *t = lj_tab_new(L, 0, 0);
  GCudata *ud = lj_udata_new(L, sizeof(CLibrary), t);
  CLibrary *cl = (CLibrary *)uddata(ud);
  cl->cache = t;
  ud->udtype = UDTYPE_FFI_CLIB;
  /* NOBARRIER: The GCudata is new (marked white). */
  setgcref(ud->metatable, obj2gco(mt));
  setudataV(L, L->top++, ud);
  return cl;
}

/* Load a C library. */
void lj_clib_load(lua_State *L, GCtab *mt, GCstr *name, int global)
{
  void *handle = clib_loadlib(L, strdata(name), global);
  CLibrary *cl = clib_new(L, mt);
  cl->handle = handle;
}

/* Unload a C library. */
void lj_clib_unload(CLibrary *cl)
{
  clib_unloadlib(cl);
  cl->handle = NULL;
}

/* Create the default C library object. */
void lj_clib_default(lua_State *L, GCtab *mt)
{
  CLibrary *cl = clib_new(L, mt);
  cl->handle = CLIB_DEFHANDLE;
}

#endif


義のコンストラクタを持つことなく、初期化子リストによる初期化 (集成体初期化, aggregate initialization) ができる型である。

```cpp
struct Point {
  int x, y; // ユーザー定義のコンストラクタを持たない
};

Point x {3, 1}; // 初期化子リストによる初期化

Point ar[] = { // 配列の初期化子リストで、要素ごとの初期化子を初期化子リストで記述
  {1, 2},
  {3, 4},
  {5, 6}
};
```

型`T`が集成体であるための条件は以下である：

- ユーザー定義されたコンストラクタ、`explicit`なコンストラクタ、継承コンストラクタを持たない
- `private`／`protected`な非静的メンバ変数を持たない
- 仮想関数を持たない
- 仮想基底クラス、`private`／`protected`基底クラスを持たない

## 要件
[`remove_all_extents_t`](remove_all_extents.md)`<T>`した結果の型が、完全型であるか、`const/volatile`修飾された (あるいはされていない) `void`でなければならない。

## 効果
`is_aggregate`は、型`T`が集成体であれば[`true_type`](true_type.md)から派生し、そうでなければ[`false_type`](false_type.md)から派生する。

## 例
```cpp example
#include <type_traits>
#include <array>

struct Point {
  int x, y;
};

int main()
{
  static_assert(std::is_aggregate<Point>{});
  static_assert(std::is_aggregate<int[3]>{});
  static_assert(std::is_aggregate<Point[3]>{});
  static_assert(std::is_aggregate<std::array<Point, 3>>{});
}
```
* std::is_aggregate[color ff0000]

### 出力
```
```

## バージョン
### 言語
- C++17

### 処理系
- [Clang](/implementation.md#clang): 5.0 [mark verified]
- [GCC](/implementation.md#gcc): 7.2 [mark verified]
- [Visual C++](/implementation.md#visual_cpp): ??

## 参照
- [LWG Issue 2911. An `is_aggregate` type trait is needed](https://wg21.cmeerw.net/lwg/issue2911)
# is_nothrow_convertible
* type_traits[meta header]
* std[meta namespace]
* class template[meta id-type]
* cpp20[meta cpp]

```cpp
namespace std {
  template <class From, class To>
  struct is_nothrow_convertible;

  template <class From, class To>
  inline constexpr bool is_nothrow_convertible_v
    = is_nothrow_convertible<From, To>::value;
}
```

## 概要
型`From`から型`To`に、例外を投げずに暗黙的に変換可能か調べる。

## 要件
型`From`と型`To`は完全型であるか、`const`/`volatile`修飾された(あるいはされていない)`void`か、要素数不明の配列型でなければならない。

## 効果
`is_nothrow_convertible`は、型`From`から型`To`に、例外を投げずに暗黙的に変換可能であれば[`true_type`](true_type.md)から派生し、そうでなければ[`false_type`](false_type.md)から派生する。

## 備考
return文による型変換、および非explicitなコンストラクタによる型変換は、暗黙的に変換可能であるとみなされる。explicitなコンストラクタによる明示的な型変換は、暗黙的に変換可能であるとは見なされない。

## 例
```cpp example


#pragma once
/*
 *      Copyright (C) 2013-2015 Team XBMC
 *      http://xbmc.org
 *
 *  This Program 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 2, 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 XBMC; see the file COPYING.  If not, see
 *  <http://www.gnu.org/licenses/>.
 *
 */

#include <list>
#include <memory>
#include "Addon.h"

class CContextMenuItem;
typedef struct cp_cfg_element_t cp_cfg_element_t;

namespace ADDON
{
  class CContextMenuAddon : public CAddon
  {
  public:
    CContextMenuAddon(const cp_extension_t *ext);
    CContextMenuAddon(const AddonProps &props);
    virtual ~CContextMenuAddon();

    std::vector<CContextMenuItem> GetItems();

  private:
    void ParseMenu(cp_cfg_element_t* elem, const std::string& parent, int& anonGroupCount);
    std::vector<CContextMenuItem> m_items;
  };

  typedef std::shared_ptr<CContextMenuAddon> ContextItemAddonPtr;
}


.bfh-flag-GA,
.bfh-flag-GB,
.bfh-flag-GD,
.bfh-flag-GE,
.bfh-flag-GG,
.bfh-flag-GH,
.bfh-flag-GL,
.bfh-flag-GM,
.bfh-flag-GN,
.bfh-flag-GQ,
.bfh-flag-GR,
.bfh-flag-GS,
.bfh-flag-GT,
.bfh-flag-GU,
.bfh-flag-GW,
.bfh-flag-GY,
.bfh-flag-HK,
.bfh-flag-HN,
.bfh-flag-HR,
.bfh-flag-HT,
.bfh-flag-HU,
.bfh-flag-ID,
.bfh-flag-IE,
.bfh-flag-IL,
.bfh-flag-IM,
.bfh-flag-IN,
.bfh-flag-IQ,
.bfh-flag-IS,
.bfh-flag-IT,
.bfh-flag-JE,
.bfh-flag-JM,
.bfh-flag-JO,
.bfh-flag-JP,
.bfh-flag-KE,
.bfh-flag-KG,
.bfh-flag-KH,
.bfh-flag-KI,
.bfh-flag-KM,
.bfh-flag-KN,
.bfh-flag-KP,
.bfh-flag-KR,
.bfh-flag-KV,
.bfh-flag-KW,
.bfh-flag-KY,
.bfh-flag-LA,
.bfh-flag-LC,
.bfh-flag-LK,
.bfh-flag-LR,
.bfh-flag-LS,
.bfh-flag-LT,
.bfh-flag-LU,
.bfh-flag-LV,
.bfh-flag-LY,
.bfh-flag-MA,
.bfh-flag-ME,
.bfh-flag-MG,
.bfh-flag-MH,
.bfh-flag-ML,
.bfh-flag-MM,
.bfh-flag-MP,
.bfh-flag-MR,
.bfh-flag-MS,
.bfh-flag-MT,
.bfh-flag-MU,
.bfh-flag-MV,
.bfh-flag-MW,
.bfh-flag-MZ,
.bfh-flag-NA,
.bfh-flag-NE,
.bfh-flag-NF,
.bfh-flag-NG,
.bfh-flag-NI,
.bfh-flag-NL,
.bfh-flag-NO,
.bfh-flag-NP,
.bfh-flag-NR,
.bfh-flag-NZ,
.bfh-flag-OM,
.bfh-flag-PA,
.bfh-flag-PE,
.bfh-flag-PG,
.bfh-flag-PH,
.bfh-flag-PK,
.bfh-flag-PL,
.bfh-flag-PN,
.bfh-flag-PS,
.bfh-flag-PT,
.bfh-flag-PW,
.bfh-flag-PY,
.bfh-flag-QA,
.bfh-flag-RS,
.bfh-flag-RU,
.bfh-flag-RW,
.bfh-flag-SA,
.bfh-flag-SB,
.bfh-flag-SC,
.bfh-flag-SD,
.bfh-flag-SE,
.bfh-flag-SG,
.bfh-flag-SH,
.bfh-flag-SI,
.bfh-flag-SK,
.bfh-flag-SM,
.bfh-flag-SN,
.bfh-flag-SO,
.bfh-flag-SR,
.bfh-flag-SS,
.bfh-flag-ST,
.bfh-flag-SV,
.bfh-flag-SY,
.bfh-flag-SZ,
.bfh-flag-TC,
.bfh-flag-TD,
.bfh-flag-TG,
.bfh-flag-TH,
.bfh-flag-TJ,
.bfh-fl


            function(){gl.uniform4iv(uniIV4, [1, 2, 3, 4, 5, 6, 7, 8]);});
        assertGLError(gl, gl.INVALID_OPERATION, "3iv on int",
            function(){gl.uniform3iv(uniInt, [2,3,4]);});
        assertGLError(gl, gl.INVALID_OPERATION, "2iv on int",
            function(){gl.uniform2iv(uniInt, [2,3]);});
        assertGLError(gl, gl.INVALID_OPERATION, "3iv on 4iv",
            function(){gl.uniform3iv(uniIV4, [4,5,6]);});
        assertGLError(gl, gl.INVALID_OPERATION, "2iv on 4iv",
            function(){gl.uniform2iv(uniIV4, [5,6]);});
        assertGLError(gl, gl.INVALID_OPERATION, "1iv on 4iv",
            function(){gl.uniform1iv(uniIV4, [6]);});
        assertGLError(gl, gl.INVALID_VALUE, "not enough values",
            function(){gl.uniform1iv(uniInt, []);});
        assertGLError(gl, gl.INVALID_OPERATION, "1fv on int",
            function(){gl.uniform1fv(uniInt, [2]);});
        assertGLError(gl, gl.INVALID_OPERATION, "4fv on ivec4",
            function(){gl.uniform4fv(uniIV4, [2,3,4,5]);});
        gl.uniform1iv(uniInt, [2]);
        gl.uniform4iv(uniIV4, [1, 2, 3, 4]);
    });
    var d = new Uint8Array(4);
    gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d);
    assertArrayEquals([1,2,3,8], d);
    sh.destroy();
    throwError(gl);
}

Tests.endUnit = function(gl) {
}

</script>
<script id="foobar-vert" type="x-shader/x-vertex">
attribute vec3 Vertex;
attribute vec2 Tex;

uniform int uniInt;

varying vec4 texCoord0;
void main()
{
    texCoord0 = vec4(Tex.s, 1.0-Tex.t, float(uniInt), 0.0);
    gl_Position = vec4(Vertex, 1.0);
}
</script>
<script id="foobar-frag" type="x-shader/x-fragment">
precision mediump float;

uniform ivec4 uniIV4;

varying vec4 texCoord0;
void main()
{
    gl_FragColor = vec4(
        float(uniIV4.x)/256.0,
        float(uniIV4.y)/256.0,
        float(uniIV4.z)/256.0,
        float(uniIV4.a)*texCoord0.z/256.0);
}
</script>
<style>canvas{ position:absolute; }</style>
</head><body>
<canvas id="gl" width="16" height="16"></canvas>
</body></html>
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../unit.css" />
<script type="application/x-javascript" src="../unit.js"></script>
<script type="application/x-javascript" src="../util.js"></script>
<script type="application/x-javascript">

Tests.startUnit = function () {
    var canvas = document.getElementById('gl');
    var gl = wrapGLContext(canvas.getContext(GL_CONTEXT_ID));
    var buf = gl.createBuffer();
    var ebuf = gl.createBuffer();
    gl.bindBuffer(gl.ARRAY_BUFFER, buf);
    gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ebuf);
    return [gl, buf, ebuf];
}


 $184, SP
	RET

TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
	MOVQ	fn+0(FP),    AX
	MOVL	sig+8(FP),   DI
	MOVQ	info+16(FP), SI
	MOVQ	ctx+24(FP),  DX
	PUSHQ	BP
	MOVQ	SP, BP
	ANDQ	$~15, SP     // alignment for x86_64 ABI
	CALL	AX
	MOVQ	BP, SP
	POPQ	BP
	RET

// Called from runtime·usleep (Go). Can be called on Go stack, on OS stack,
// can also be called in cgo callback path without a g->m.
TEXT runtime·usleep1(SB),NOSPLIT,$0
	MOVL	usec+0(FP), DI
	MOVQ	$usleep2<>(SB), AX // to hide from 6l

	// Execute call on m->g0.
	get_tls(R15)
	CMPQ	R15, $0
	JE	noswitch

	MOVQ	g(R15), R13
	CMPQ	R13, $0
	JE	noswitch
	MOVQ	g_m(R13), R13
	CMPQ	R13, $0
	JE	noswitch
	// TODO(aram): do something about the cpu profiler here.

	MOVQ	m_g0(R13), R14
	CMPQ	g(R15), R14
	JNE	switch
	// executing on m->g0 already
	CALL	AX
	RET

switch:
	// Switch to m->g0 stack and back.
	MOVQ	(g_sched+gobuf_sp)(R14), R14
	MOVQ	SP, -8(R14)
	LEAQ	-8(R14), SP
	CALL	AX
	MOVQ	0(SP), SP
	RET

noswitch:
	// Not a Go-managed thread. Do not switch stack.
	CALL	AX
	RET

// Runs on OS stack. duration (in µs units) is in DI.
TEXT usleep2<>(SB),NOSPLIT,$0
	LEAQ	libc_usleep(SB), AX
	CALL	AX
	RET

// Runs on OS stack, called from runtime·osyield.
TEXT runtime·osyield1(SB),NOSPLIT,$0
	LEAQ	libc_sched_yield(SB), AX
	CALL	AX
	RET


package_name],
            src_path,
            &lib_oft_path,
            main_files,
        )?;

        self.pkgs.insert(
            package_name,
            Package::Filesystem(path, meta, modules.into_iter().collect()),
        );

        Ok(())
    }

    /// Loads the stdlib from the given directory. Will panic if any
    /// dependencies are requested.
    pub fn add_stdlib_from(&mut self, path: PathBuf) -> Result<(), Error> {
        // TODO: This is a DRY violation with add_modules_from.
        let root_meta = self.load_metadata_from(&path)?;
        assert!(root_meta.dependencies.is_empty());
        self.std_name = Some(root_meta.name);
        let main_files = root_meta
            .components
            .binaries
            .iter()
            .map(|c| &c.path as &str)
            .filter(|p| p.starts_with("src/"))
            .map(|p| &p[4..])
            .collect::<Vec<_>>();
        self.add_package_from(root_meta.name, path, true, &main_files)
    }

    /// Compiles a binary from a given module into a `flatanf::Program`.
    pub fn compile(self, root_package_name: Symbol, binary: &str) -> Result<Program, Error> {
        let mut builtins = HashMap::new();
        let mut root_meta_path = None;
        let mut mods = Vec::new();

        // Extract the prelude module's exports.
        let prelude = format!("{}/prelude", self.std_name()).into();
        let prelude_exports = self.exports_of(self.std_name(), prelude)?
            .into_iter()
            .map(|n| (prelude, n))
            .collect::<Vec<_>>();
        let augment_module_imports = |m: &mut Module| {
            if !m.attrs.iter().any(|attr| *attr == Attr::NoPrelude)
                && !m.imports.iter().any(|&(m, _)| m == prelude)
            {
                m.imports.extend(prelude_exports.iter().cloned());
            }
        };

        // Bundle up the packages.
        for (package_name, package) in self.pkgs {
            match package {
                Package::Builtins(mods) => for (name, decls) in mods {
                    let name = if name.as_str() == "" {
                        package_name
                    } else {
                        format!("{}/{}", package_name, name).into()
                    };
                    builtins.insert(name, decls);
                },
                Package::Filesystem(path, meta, ms) => {
                    if root_package_name == package_name {
                        root_meta_path = Some((meta, path));
                    }
                    mods.extend(ms.into_iter().map(|mut m| {
                        augment_module_imports(&mut m);
                        m
                    }));
                }
            }
        }

        // Add the binary.
        let (root_meta, root_path) = match root_meta_path {
            Some((meta, path)) => (meta, path),
            None => {
                return Err(ErrorKind::NoSuchBinary(root_package_name, binary.to_string()).into());
            }
        };
        let binary_rel_path = root_meta
            .components
            .binaries
            .iter()
            .find(|bin| bin.name == binary)
            .map(|bin| &bin.path)
            .ok_or_else(|| ErrorKind::NoSuchBinary(root_package_name, binary.to_string()))?;
        let binary_path = root_path.join(binary_rel_path);
        let mut binary = Packages:


);
    border-radius: 20px;
    transition: all 0.2s ease;
    font-size: 0.875rem;
    white-space: nowrap;
  }

  .github-star:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(var(--spike-blue-rgb), 0.3);
  }

  .github-star i {
    font-size: 1.1rem;
    animation: starBounce 2s infinite;
    color: #ffd700;
    text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
  }

  @keyframes starBounce {
    0%,
    100% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.2);
    }
  }

  .github-star span {
    white-space: nowrap;
  }

  @media (max-width: 768px) {
    .github-star span {
      display: none;
    }

    .github-star {
      padding: 0.5rem;
    }
  }
</style>

spike secret

The spike secret command is the main entry point for managing secrets in
SPIKE. It allows administrators to create, read, update, and delete secrets
based on SPIFFE identities and corresponding access policies.

Quick Start

# Store a new secret
spike secret put secrets/app/config api_key=abc123 environment=production

# Retrieve a secret
spike secret get secrets/app/config

# List all secrets
spike secret list

# Delete a s


urce=Application%3A+nextauth+%28ID%3A+151633%29)

![ Frontend Mastery]()

**关键词**：-, 产品名称：Frontend, Mastery, -, 标语：前端学习新体验：快速构建、测试与成长, -, 简述：Frontend, Mastery通过浏览器在线IDE，让你边做项目边学HTML、CSS、JavaScript和React。提供项目规划、实时预览、集成文档（MDN、GitHub、StackOverflow）和调试控制台，让学习更高效、实用。, -, 关键词：前端学习、实
**票数**: 🔺8
**是否精选**：否
**发布时间**：2025年07月05日 PM03:01 (北京时间)

---

## [22. Acuration IQ](https://www.producthunt.com/products/acuration-iq?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**标语**：具备策略团队思维与协作能力的多智能体AI
**介绍**：Acuration IQ 是一个完全集成的多智能体人工智能平台，模仿顶级顾问的工作方式——更高效、可重复且安全。它能在几分钟内完成数周的战略研究、合作伙伴发现、差距基准分析以及市场调研，大幅缩短决策准备时间。
**产品网站**: [立即访问](https://www.producthunt.com/r/5U4FDFIGHFIG6E?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**Product Hunt**: [查看 Product Hunt 页面](https://www.producthunt.com/products/acuration-iq?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)

![Acuration IQ]()

**关键词**：-, 产品名称：Acuration, IQ, -, 标语：多智能体AI，像你的策略团队一样思考与合作, -, 简述：Acuration, IQ是一款集成的多智能体AI平台，模拟顶级咨询团队的工作方式——更快、更可复制、更安全。将数周的战略调研、合作伙伴发现、差距分析和市场分析压缩至几分钟内完成。, 关键词：多智能体AI、战略分析
**票数**: 🔺7
**是否精选**：否
**发布时间**：2025年07月05日 PM03:01 (北京时间)

---

## [23. GemiChat](https://www.producthunt.com/products/gemichat?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**标语**：你的AI，由你掌控。
**


/*
  Copyright (c) 2009-2016 Johan Lindh <johan@linkdata.se>

  This file is part of LCDHost.

  LCDHost 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.

  LCDHost 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 LCDHost.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef LH_AIDAWRITER_H
#define LH_AODAWRITER_H

#include "LH_Text/LH_Text.h"
#include "LH_Qt_QTextEdit.h"

#ifdef Q_OS_WIN
# include <windows.h>
#else
# ifndef DWORD
#  define DWORD quint32
# endif
# ifndef HANDLE
#  define HANDLE void*
# endif
#endif

class LH_AidaWriter : public LH_QtInstance
{
    Q_OBJECT

    HANDLE filemap_aida;
    char* aidaData;
    DWORD sz;
protected:
    LH_Qt_QTextEdit* setup_xml_;

public:
    LH_AidaWriter();
    ~LH_AidaWriter();
    const char *userInit();

    static lh_class *classInfo();

    int notify(int code,void* param);

    bool updateAidaMemory();
    bool createAidaMemory();
    void destroyAidaMemory();
};

#endif // LH_AIDAWRITER_H


ver: #3c2900;
  --warning-bg-active: #493300;
  --warning-line: #564106;
  --warning-border: #6a531a;
  --warning-border-hover: #856923;
  --warning-solid: #ffc300;
  --warning-solid-hover: #f4b900;
  --warning-text: #ffcb2b;
  --warning-text-contrast: #fee7b5;
  --warning-on-warning: #000;

  --alert-base: #170e0e;
  --alert-bg-subtle: #211212;
  --alert-bg: #3e0f12;
  --alert-bg-hover: #550512;
  --alert-bg-active: #660c1a;
  --alert-line: #781b25;
  --alert-border: #922b34;
  --alert-border-hover: #be3a45;
  --alert-solid: #dc143c;
  --alert-solid-hover: #b83440;
  --alert-text: #ff8c8e;
  --alert-text-contrast: #ffd0ce;
  --alert-on-alert: #fff;

  --info-base: #07191d;
  --info-bg-subtle: #061e24;
  --info-bg: #072830;
  --info-bg-hover: #07303b;
  --info-bg-active: #073844;
  --info-line: #064150;
  --info-border: #045063;
  --info-border-hover: #00647d;
  --info-solid: #05a2c2;
  --info-solid-hover: #00b1cc;
  --info-text: #00c2d7;
  --info-text-contrast: #e1f8fa;
  --info-on-info: #fff;

  --overlay-l00: #00000003;
  --overlay-200: #00000008;
  --overlay-300: #0000000d;
  --overlay-400: #00000012;
  --overlay-500: #00000017;
  --overlay-600: #0000001c;
  --overlay-700: #00000024;
  --overlay-800: #00000038;
  --overlay-900: #0000007a;
  --overlay-1000: #0000007a;
  --overlay-1100: #0000008f;
  --overlay-1200: #000000e8;

  --overlay-modal: #00000080;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

html {
  height: 100%;
  box-sizing: border-box;
  touch-action: manipulation;
  font-feature-settings:
    "case" 1,
    "rlig" 1,
    "calt" 0;
}

html,
body {
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-synthesis-weight: none;
}

body {
  position: relative;
  min-height: 100%;
  margin: 0;

}

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
p {
  margin: 0px;
  padding: 0px;
}

p a {
  @apply hover:underline;
}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.height-screen-helper {
  min-height: calc(100vh - 80px);
}

::-webkit-scrollbar {
  @apply w-2;
}

::-webkit-scrollbar:horizontal {


пы",
    list: [
      { name: "Фио1", count: "1111" },
      { name: "Фио2", count: "222" },
      { name: "Фио3", count: "333" },
    ],
  },
  {
    groupName: "Название группы2",
    list: [
      { name: "Фио12", count: "11112" },
      { name: "Фио22", count: "222" },
      { name: "Фио32", count: "33322" },
    ],
  },
  {
    groupName: "Первая группа",
    list: [
      { name: "Тест88", count: "8" },
      { name: "Ф66", count: "95" },
    ],
  },
  {
    groupName: "Вторая группа",
    list: [{ name: "Тест8", count: "77" }],
  },
  {
    groupName: "первая часть",
    list: [{ name: "Тест7", count: "88" }],
  },
];
const testMap = {
  filterText1: [
    {
      groupName: "Название группы",
      list: [{ name: "Фио2", count: "222" }],
    },
    {
      groupName: "Название группы2",
      list: [
        { name: "Фио12", count: "11112" },
        { name: "Фио22", count: "222" },
        { name: "Фио32", count: "33322" },
      ],
    },
  ],
  filterDropdown: [
    {
      groupName: "Название группы",
      list: [{ name: "Фио2", count: "222" }],
    },
    {
      groupName: "Название группы2",
      list: [{ name: "Фио22", count: "222" }],
    },
  ],
  filterDropdownAndSearchText: [
    {
      groupName: "Название группы2",
      list: [{ name: "Фио22", count: "222" }],
    },
  ],
  filterDropdownAndSearchText2: [],
};

test("Filter with no elements and groups", () => {
  const builtFilterFunction = buildFilter({
    setChildrenFunc: (group, items) => ({ ...group, elements: items }),
    setGroupsFunc: (group, groups) => ({ ...group, groups: groups }),
    getChildrenFunc: (group) => group.elements,
    getGroupsFunc: (group) => group.groups,
    elementFilterFunc: composeFilters(LogicalOperator.AND, [
      matchText({
        filterField: "groupName",
        targetField: "groupName",
      }),
    ]),
    groupFilterFunc: composeFilters(LogicalOperator.AND, [
      matchText({
        filterField: "groupName",
        targetField: "groupName",
      }),
    ]),
  });

  const { groups } = builtFilterFunction(
    { groupName: "груп" },
    {
      groups: [],
      elements: [],
    },
  );

  expect(groups).toStrictEqual([]);
});

test("Filter by searchText", () => {
  const buildedFilterFunction = buildFilter({
    setGroupsFunc: (group, items) => ({ ...group, list: items }),
    setChildrenFunc: (group, items) => ({ ...group, list: items }),
    getChildrenFunc: (group) => group.list,
    getGroupsFunc: () => [],
    elementFilterFunc: composeFilters(LogicalOperator.AND, [
      matchText({
        filterField: "name",
        targetField: "name",
      }),
    ]),
  });

  const { groups } = buildedFilterFunction(
    { name: "2" },
    {
      groups: [...originalDataList],
      elements: [],
    },
  );

  expect(groups).toStrictEqual(testMap.filterText1);
});

test("Filter by dropdown", () => {
  const buildedFilterFunction = buildFilte


				Util.newArrayListOfValues(
//									ClothingAccess.CHEST,
//									ClothingAccess.WAIST),
//							PresetConcealmentLists.CONCEALED_PARTIAL_TORSO.getPresetInventorySlotList()),
//					new BlockedParts(
//							DisplacementType.PULLS_UP,
//							null,
//							Util.newArrayListOfValues(
//									CoverableArea.ANUS,
//									CoverableArea.PENIS,
//									CoverableArea.VAGINA),
//							Util.newArrayListOfValues(
//									ClothingAccess.GROIN,
//									ClothingAccess.ANUS),
//							PresetConcealmentLists.CONCEALED_GROIN.getPresetInventorySlotList())),
//			null,
//			ColourListPresets.ALL,
//			null,
//			null,
//			null,
//			null,
//			null,
//			Util.newArrayListOfValues(ItemTag.SOLD_BY_NYAN, ItemTag.DRESS)){
//
//		@Override
//		public String equipText(GameCharacter clothingOwner, GameCharacter clothingRemover, InventorySlot slotToEquipInto, boolean rough, AbstractClothing clothing, boolean applyEffects) {
//			return getEquipDescriptions(clothingOwner, clothingRemover, rough,
//					"You step into the long-sleeved dress and pull it up around your torso. Once in place, you reach back and zip yourself up.",
//					"You guide the long-sleeved dress up around [npc.namePos] [npc.legs], before pulling it up around [npc.her] torso. Once it's in place, you zip [npc.herHim] up at the back.",
//					null,
//					"[npc.Name] steps into the long-sleeved dress, before pulling it up around [npc.her] torso. Once in place, [npc.she] reaches back to zip [npc.herself] up.",
//					"[npc.Name] guides the long-sleeved dress up around your [pc.legs], before pulling it up around your torso. One it's in place, [npc.she] zips you up at the back.",
//					null, null, null);
//		}
//
//		@Override
//		public String unequipText(GameCharacter clothingOwner, GameCharacter clothingRemover, InventorySlot slotToEquipInto, boolean rough, AbstractClothing clothing, boolean applyEffects) {
//			return getEquipDescriptions(clothingOwner, clothingRemover, rough,
//					"You unzip your long-sleeved dress and wriggle out of it as it drops to your feet.",
//					"You unzip [npc.namePos] long-sleeved dress and pull it down off [npc.her] body and past [npc.her] feet.",
//					null,
//					"[npc.Name] unzips [npc.her] long-sleeved dress and wriggles out of it as it drops to [npc.her] feet.",
//					"[npc.Name] unzips your long-sleeved dress and pulls it down your body and past your feet.",
//					null, null, null);
//		}
//
//		@Override
//		public String displaceText(GameCharacter clothingOwner, GameCharacter clothingRemover, InventorySlot slotToEquipInto, DisplacementType dt, boolean rough) {
//			return getEquipDescriptions(clothingOwner, clothingRemover, rough,
//					"You pull up the lower half of your long-sleeved dress.",
//					"You pull up the lower half of [npc.namePos] long-sleeved dress.",
//					null,
//					"[npc.Name] pulls up the lower half of [npc.her] long-sleeved dress.",
//					"[npc.Name] pulls up the lower half of your long-sleeved dress.",
//					null, null, null);
//


document.body, 17);
    unbind('*');
  });

  test('HotKeys modifier key ⌥,alt,option Test Case', async () => {
    hotkeys('*', (e: any) => {
      expect(e.keyCode).toBe(18);
    });
    __triggerKeyboardEvent(document.body, 18);
    unbind('*');
  });

  test('HotKeys modifier key ⇧,shift Test Case', () => {
    hotkeys('*', (e: any) => {
      expect(e.keyCode).toBe(16);
      expect(e.which).toBe(16);
    });
    __triggerKeyboardEvent(document.body, 16);
    unbind('*');
  });

  test('HotKeys modifier scope,setScope,getScope,deleteScope Test Case', () => {
    hotkeys('⌃+a', 'scope2', async (e: any) => {
      expect(e.keyCode).toBe(65);
      expect(getScope()).toBe('scope2');
      deleteScope('scope2');
    });
    setScope('scope2');
    __triggerKeyboardEvent(document.body, 65, {
      ctrlKey: true,
    });

    hotkeys('⌃+a', 'scope3', async (e: any) => {
      expect(e.keyCode).toBe(65);
      expect(getScope()).toBe('scope3');
      deleteScope('scope3');
    });
    setScope('scope3');
    __triggerKeyboardEvent(document.body, 65, {
      ctrlKey: true,
    });
    expect(getScope()).toBe('all');
  });

  // test('HotKeys modifier noConflict Test Case', async () => {
  //   const keys = await hotkeys.noConflict(true);
  //   await keys('a', (e: any) => {
  //     expect(e.keyCode).toBe(65);
  //     expect(e.which).toBe(65);
  //   });
  //   await __triggerKeyboardEvent(document.body, 65);
  // });

  test('Event trigger on readOnly input', async () => {
    const input = document.createElement('input');
    input.setAttribute('readOnly', 'true');
    await hotkeys('*', (event: any) => {
      expect(filter.call(null, event)).toBeTruthy();
    });
    await __triggerKeyboardEvent(input, 65);
    await unbind('*');
    input.removeAttribute('readOnly');
    await hotkeys('*', (event: any) => {
      expect(filter.call(null, event)).toBeFalsy();
    });
  });

  afterAll(async () => {
    await browser.close();
  });
});
import { and, or, Criterion } from "../../criterion";
import { TokenType } from "../token-type.enum";
import { TokenParser } from "./token-parser.type";
import { criterionTokenParser } from "./criterion.token-parser";

export function* criteriaTokenParser(): TokenParser {
    let token = yield;

    if (!(token.type === TokenType.Special && token.value === "(")) {
        return false;
    }

    const items: Criterion[] = [];
    let combinator = "|";

    while (true) {
        let valueResult = yield* criterionTokenParser();

        if (valueResult === false) {
            return false;
        } else {
            items.push(valueResult());
        }

        token = yield;

        if (token.type === TokenType.Special && token.value === ")") {
            return () => (items.length === 1 ? items[0] : combinator === "|" ? or(items) : and(items));
        } else if (token.type === TokenType.Combinator) {
            combinator = token.value;
        }
    }
}
import { TypedAction, TypedReducer, Action, TypedActionString } from "redoodle";
import { assertNever } from "./assertNever";

export enum AsyncStatus {
    NOT_STARTED_LOADING = "NOT_STARTED_LOADING",
    LOADING = "LOADING",
    LOADING_SUCCEEDED =


 섙; ) HANGUL SYLLABLE SYAET
C11A;C11A;1109 1164 11C1;C11A;1109 1164 11C1; # (섚; 섚; 섚; 섚; 섚; ) HANGUL SYLLABLE SYAEP
C11B;C11B;1109 1164 11C2;C11B;1109 1164 11C2; # (섛; 섛; 섛; 섛; 섛; ) HANGUL SYLLABLE SYAEH
C11C;C11C;1109 1165;C11C;1109 1165; # (서; 서; 서; 서; 서; ) HANGUL SYLLABLE SEO
C11D;C11D;1109 1165 11A8;C11D;1109 1165 11A8; # (석; 석; 석; 석; 석; ) HANGUL SYLLABLE SEOG
C11E;C11E;1109 1165 11A9;C11E;1109 1165 11A9; # (섞; 섞; 섞; 섞; 섞; ) HANGUL SYLLABLE SEOGG
C11F;C11F;1109 1165 11AA;C11F;1109 1165 11AA; # (섟; 섟; 섟; 섟; 섟; ) HANGUL SYLLABLE SEOGS
C120;C120;1109 1165 11AB;C120;1109 1165 11AB; # (선; 선; 선; 선; 선; ) HANGUL SYLLABLE SEON
C121;C121;1109 1165 11AC;C121;1109 1165 11AC; # (섡; 섡; 섡; 섡; 섡; ) HANGUL SYLLABLE SEONJ
C122;C122;1109 1165 11AD;C122;1109 1165 11AD; # (섢; 섢; 섢; 섢; 섢; ) HANGUL SYLLABLE SEONH
C123;C123;1109 1165 11AE;C123;1109 1165 11AE; # (섣; 섣; 섣; 섣; 섣; ) HANGUL SYLLABLE SEOD
C124;C124;1109 1165 11AF;C124;1109 1165 11AF; # (설; 설; 설; 설; 설; ) HANGUL SYLLABLE SEOL
C125;C125;1109 1165 11B0;C125;1109 1165 11B0; # (섥; 섥; 섥; 섥; 섥; ) HANGUL SYLLABLE SEOLG
C126;C126;1109 1165 11B1;C126;1109 1165 11B1; # (섦; 섦; 섦; 섦; 섦; ) HANGUL SYLLABLE SEOLM
C127;C127;1109 1165 11B2;C127;1109 1165 11B2; # (섧; 섧; 섧; 섧; 섧; ) HANGUL SYLLABLE SEOLB
C128;C128;1109 1165 11B3;C128;1109 1165 11B3; # (섨; 섨; 섨; 섨; 섨; ) HANGUL SYLLABLE SEOLS
C129;C129;1109 1165 11B4;C129;1109 1165 11B4; # (섩; 섩; 섩; 섩; 섩; ) HANGUL SYLLABLE SEOLT
C12A;C12A;1109 1165 11B5;C12A;1109 1165 11B5; # (섪; 섪; 섪; 섪; 섪; ) HANGUL SYLLABLE SEOLP
C12B;C12B;1109 1165 11B6;C12B;110


				trigger = {
					"onAttach",
					"onRemove"
				},
				arg_list = {
					number = -0.31,
					type = 23
				}
			}
		}
	},
	{
		effect_list = {
			{
				type = "BattleBuffAddReloadRequirement",
				trigger = {
					"onAttach",
					"onRemove"
				},
				arg_list = {
					number = -0.332,
					type = 23
				}
			}
		}
	},
	{
		effect_list = {
			{
				type = "BattleBuffAddReloadRequirement",
				trigger = {
					"onAttach",
					"onRemove"
				},
				arg_list = {
					number = -0.354,
					type = 23
				}
			}
		}
	},
	{
		effect_list = {
			{
				type = "BattleBuffAddReloadRequirement",
				trigger = {
					"onAttach",
					"onRemove"
				},
				arg_list = {
					number = -0.376,
					type = 23
				}
			}
		}
	},
	{
		effect_list = {
			{
				type = "BattleBuffAddReloadRequirement",
				trigger = {
					"onAttach",
					"onRemove"
				},
				arg_list = {
					number = -0.4,
					type = 23
				}
			}
		}
	},
	time = 0,
	name = "",
	init_effect = "",
	picture = "",
	desc = "准备速度提高",
	stack = 1,
	id = 19351,
	icon = 19350,
	last_effect = "",
	effect_list = {}
}


			var zeroVal *entities.Environment
				return zeroVal, errors.New("directive isLoggedInAndVerified is not implemented")
			}
			return ec.directives.IsLoggedInAndVerified(ctx, nil, directive0)
		}
		directive2 := func(ctx context.Context) (interface{}, error) {
			if ec.directives.HasAccount == nil {
				var zeroVal *entities.Environment
				return zeroVal, errors.New("directive hasAccount is not implemented")
			}
			return ec.directives.HasAccount(ctx, nil, directive1)
		}

		tmp, err := directive2(rctx)
		if err != nil {
			return nil, graphql.ErrorOnPath(ctx, err)
		}
		if tmp == nil {
			return nil, nil
		}
		if data, ok := tmp.(*entities.Environment); ok {
			return data, nil
		}
		return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kloudlite/api/apps/console/internal/entities.Environment`, tmp)
	})
	if err != nil {
		ec.Error(ctx, err)
		return graphql.Null
	}
	if resTmp == nil {
		return graphql.Null
	}
	res := resTmp.(*entities.Environment)
	fc.Result = res
	return ec.marshalOEnvironment2ᚖgithubᚗcomᚋkloudliteᚋapiᚋappsᚋconsoleᚋinternalᚋentitiesᚐEnvironment(ctx, field.Selections, res)
}

func (ec *executionContext) fieldContext_Mutation_core_updateEnvironment(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
	fc = &graphql.FieldContext{
		Object:     "Mutation",
		Field:      field,
		IsMethod:   true,
		IsResolver: true,
		Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {
			switch field.Name {
			case "accountName":
				return ec.fieldContext_Environment_accountName(ctx, field)
			case "apiVersion":
				return ec.fieldContext_Environment_apiVersion(ctx, field)
			case "clusterName":
				return ec.fieldContext_Environment_clusterName(ctx, field)
			case "createdBy":
				return ec.fieldContext_Environment_createdBy(ctx, field)
			case "creationTime":
				return ec.fieldContext_Environment_creationTime(ctx, field)
			case "displayName":
				return ec.fieldContext_Environment_displayName(ctx, field)
			case "id":
				return ec.fieldContext_Environment_id(ctx, field)
			case "isArchived":
				return ec.fieldContext_Environment_isArchived(ctx, field)
			case "kind":
				return ec.fieldContext_Environment_kind(ctx, field)
			case "lastUpdatedBy":
				return ec.fieldContext_Environment_lastUpdatedBy(ctx, field)
			case "markedForDeletion":
				return ec.fieldContext_Environment_markedForDeletion(ctx, field)
			case "metadata":
				return ec.fieldContext_Environment_metadata(ctx, field)
			case "recordVersion":
				return ec.fieldContext_Environment_recordVersion(ctx, field)
			case "spec":
				return ec.fieldContext_Environment_spec(ctx, field)
			case "status":
				return ec.fieldContext_Environment_status(ctx, field)
			case "syncStatus":
				return ec.fieldContext_Environment_syncStatus(ctx, field)
			case "updateTime":
				return ec.fieldContext_Environment_updateTime(ctx, field)
			case "onlineStatus":
				return ec.fieldContext_Environment_onlineStatus(ctx, field)
			}
			return nil, fmt.Errorf("no field named %q was found under type Environment", field.Name)
		},
	}
	defer func() {
		if r := recover(); r


c}and lavender and tufted grass,
            Sed in orci mauris.
            ${se}Cras id tellus in ex imperdiet egestas.
      """.trimIndent(),
    )
    IdeaSelectionControl.controlNonVimSelectionChange(fixture.editor)
    waitAndAssertMode(fixture, Mode.VISUAL(SelectionType.LINE_WISE))
    typeText(injector.parser.parseKeys("d"))
    assertState(
      """
            Lorem Ipsum

            Cras id tellus in ex imperdiet egestas.
      """.trimIndent(),
    )
    assertState(Mode.NORMAL())
  }

  @Test
  fun `test delete with dollar motion`() {
    val keys = listOf("<C-V>3j$", "d")
    val before = """
            Lorem Ipsum

            I |${c}found it in a legendary land
            al|l rocks and lavender and tufted grass,[ additional symbols]
            wh|ere it was settled on some sodden sand
            ha|rd by the torrent of a mountain pass.
    """.trimIndent()
    val after = """
            Lorem Ipsum

            I |
            al|
            wh|
            ha|
    """.trimIndent()
    doTest(keys, before, after, Mode.NORMAL())
  }

  // This test causes a bug, but it's minor, and I'm not sure how to fix it properly
  //  It happens because we do perform sequential deletions on editor that is mutated.
  //  I think, we should firstly collect operations and then apply them at once. However,
  //    this will require to much effort at the moment for a tiny bug
  @Test
  @Disabled
  fun `test delete on empty lines`() {
    val keys = listOf("Vd")
    val before = """
            1
            ${c}
            ${c}
    """.trimIndent()
    val after = """
            1
            ${c}
            ${c}
    """.trimIndent()
    doTest(keys, before, after, Mode.NORMAL())
  }
}
/*
 * Copyright 2003-2023 The IdeaVim authors
 *
 * Use of this source code is governed by an MIT-style
 * license that can be found in the LICENSE.txt file or at
 * https://opensource.org/licenses/MIT.
 */

package org.jetbrains.plugins.ideavim.action.motion.screen

import com.maddyhome.idea.vim.api.getOffset
import com.maddyhome.idea.vim.newapi.vim
import org.jetbrains.plugins.ideavim.SkipNeovimReason
import org.jetbrains.plugins.ideavim.TestWithoutNeovim
import org.jetbrains.plugins.ideavim.VimTestCase
import org.junit.jupiter.api.Test

class MotionMiddleScreenLineActionTest : VimTestCase() {
  @TestWithoutNeovim(SkipNeovimReason.DIFFERENT)
  @Test
  fun `test move caret to middle line of full screen with odd number of lines`() {
    kotlin.test.assertEquals(35, screenHeight)
    configureByLines(50, "    I found it in a legendary land")
    setPositionAndScroll(0, 0)
    typeText("M")
    assertPosition(17, 4)
  }

  @TestWithoutNeovim(SkipNeovimReason.DIFFERENT)
  @Test
  fun `test move caret to middle line of full screen with even number of lines`() {
    configureByLines(50, "    I found it in a legendary land")
    setEditorVisibleSize(screenWidth, 34)
    setPositionAndScroll(0, 0)
    typeText("M")
    assertPosition(17, 4)
  }

  @TestWithoutNeovim(SkipNeovimReason.DIFFERENT)
  @Test
  fun `test move caret to middle line of scrolled down screen`() {
    kotlin.test.assertEquals(35, scre


 1 preceding B"),
	Diff.new(DIFF_DELETE, table.concat({ "change ", changeColor("expect"), "ed B" }, "")),
	Diff.new(DIFF_INSERT, table.concat({ "change ", changeColor("receiv"), "ed B" }, "")),
	Diff.new(DIFF_INSERT, "insert line"),
	Diff.new(DIFF_EQUAL, "common 1 following B"),
	Diff.new(DIFF_EQUAL, "common 2 following B"),
	Diff.new(DIFF_EQUAL, "common 3 between B and C"),
	Diff.new(DIFF_EQUAL, "common 2 preceding C"),
	Diff.new(DIFF_EQUAL, "common 1 preceding C"),
	Diff.new(DIFF_DELETE, table.concat({ "change ", changeColor("expect"), "ed C" }, "")),
	Diff.new(DIFF_INSERT, table.concat({ "change ", changeColor("receiv"), "ed C" }, "")),
	Diff.new(DIFF_EQUAL, "common 1 following C"),
	Diff.new(DIFF_EQUAL, "common 2 following C"),
	Diff.new(DIFF_EQUAL, "common 3 following C"),
	Diff.new(DIFF_EQUAL, ""),
	Diff.new(DIFF_EQUAL, "common 5 following C"),
}

local diffsChangeStartEnd = {
	Diff.new(DIFF_DELETE, "delete"),
	Diff.new(DIFF_EQUAL, "common following delete"),
	Diff.new(DIFF_EQUAL, "common preceding insert"),
	Diff.new(DIFF_INSERT, "insert"),
}

describe("joinAlignedDiffsExpand", function()
	it("first line is empty common", function()
		local options = normalizeDiffOptions(optionsNoColor)

		expect(joinAlignedDiffsExpand(diffsCommonStartEnd, options)).toMatchSnapshot()
	end)
end)

describe("joinAlignedDiffsNoExpand", function()
	it("patch 0 with context 1 and change at start and end", function()
		local options = normalizeDiffOptions(Object.assign({}, optionsNoColor, { contextLines = 1, expand = false }))

		expect(joinAlignedDiffsNoExpand(diffsChangeStartEnd, options)).toMatchSnapshot()
	end)

	it("patch 0 with context 5 and first line is empty common", function()
		local options = normalizeDiffOptions(Object.assign({}, optionsNoColor, { expand = false }))

		expect(joinAlignedDiffsNoExpand(diffsCommonStartEnd, options)).toMatchSnapshot()
	end)

	it("patch 1 with context 4 and last line is empty common", function()
		local options = normalizeDiffOptions(Object.assign({}, optionsNoColor, { contextLines = 4, expand = false }))

		expect(joinAlignedDiffsNoExpand(diffsCommonStartEnd, options)).toMatchSnapshot()
	end)

	it("patch 2 with context 3", function()
		local options = normalizeDiffOptions(Object.assign({}, optionsNoColor, { contextLines = 3, expand = false }))

		expect(joinAlignedDiffsNoExpand(diffsCommonStartEnd, options)).toMatchSnapshot()
	end)

	it("patch 3 with context 2 and omit excess common at start", function()
		local options = normalizeDiffOptions(Object.assign({}, optionsNoColor, { contextLines = 2, expand = false }))

		expect(joinAlignedDiffsNoExpand(diffsCommonStartEnd, options)).toMatchSnapshot()
	end)
end)


* 工作经验（重点描述）
* 教育经历
* 技能证书
* 自我评价

---

## 三、注意事项

### 1. 篇幅控制

简历控制在**1页中文+1页英文**为佳，最多不超过3页（中英文总共）。HR平均看一份简历只有几十秒，别让废话占据黄金位置。

### 2. 字体统一规范

使用“宋体”或“新宋体”，正文用小四号或五号字，标题可加粗。英文部分推荐“Times New Roman”。

### 3. 字体颜色统一

全部使用**黑色**字体，不使用彩色，避免复印后影响阅读。

### 4. 工作经历写法

按时间倒序写，越近的经历越靠前。写清楚项目成果和职责内容，数字化成果更具说服力。

### 5. 不要加封面

简历无需封面、无需装订，用回形针装订中英文版本即可。HR不喜欢花哨的设计，务求简洁实用。

---

## 四、常见错误提示

### 1. 空洞的目标陈述

像“希望获得一个能发挥特长的平台”这类空话没意义。直接写你想应聘什么岗位+能带来哪些价值。

### 2. 篇幅不当

过短内容不完整，过长没人愿看。要点式列出，清晰有重点。

### 3. 滥用代词

简历是正式文书，避免使用“我”、“我们”，直接陈述事实更专业。

### 4. 无关信息太多

爱好、兴趣等如无明显关联，请不要写。HR时间有限，只关注岗位相关内容。

### 5. 缺少亮点概述

在简历开头加一段“个人简介”或“亮点总结”，用2-3句话突出你的优势，有助于吸引HR眼球。## 如何写出一份打动HR的简历

**2024-05-29**

最近我帮一位朋友修改简历。
他是前端开发工程师，项目经验很丰富，还做过项目负责人。为了展现这些成果，他写了整整三页纸，密密麻麻记录了每个项目的过程和结果。

但实际上，用不了三十秒，就能看出他认真负责、脚踏实地、有始有终。

不过，他的简历也有两个明显问题：

1. **信息冗余，重点不突出


.isSendDefaultPii

    override fun applyFromOptions(options: SentryOptions) {
        options.toJvmSentryOptionsCallback().invoke(jvmOptions)
    }
}

actual fun createPlatformOptions(): PlatformOptions = SentryJvmOptionsWrapper(JvmSentryOptions())

actual fun PlatformOptions.assertPlatformSpecificOptions(kmpOptions: SentryOptions) {
    // no-op
}

actual fun createSentryPlatformOptionsConfiguration(): PlatformOptionsConfiguration = {
    it.dsn = fakeDsn
}
// https://github.com/rickclephas/NSExceptionKt/blob/master/nsexception-kt-core/src/commonTest/kotlin/com/rickclephas/kmp/nsexceptionkt/core/InitAddressesTests.kt
//
// Copyright (c) 2022 Rick Clephas
//
// 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.

package io.sentry.kotlin.multiplatform.nsexception

import kotlin.test.Test
import kotlin.test.assertEquals

class InitAddressesTests {

    private val qualifiedClassName = "my.app.CustomException"
    private val addresses = listOf<Long>(0, 1, 2, 3, 4, 5)
    private val stackTrace = arrayOf(
        "123 kfun:kotlin.Throwable#<init>(kotlin.String?){} + 24 abc",
        "456 kfun:kotlin.Exception#<init>(kotlin.String?){} + 5 def",
        "789 kfun:my.app.CustomException#<init>(kotlin.String?){} + 10 hij",
        "012 kfun:my.app.CustomException#<init>(){} + 12 klm",
        "345 kfun:my.app.class#function1(){} + 50 nop",
        "678 kfun:my.app.class#function2(){} + 60 qrs"
    )

    @Test
    fun testDropInit() {
        val withoutInitAddresses = addresses.dropInitAddresses(qualifiedClassName, stackTrace, false)
        assertEquals(listOf<Long>(4, 5), withoutInitAddresses)
    }

    @Test
    fun testDropInitKeepLast() {
        val withoutInitAddresses = addresses.dropInitAddresses(qualifiedClassName, stackTrace, true)
        assertEquals(listOf<Long>(3, 4, 5), withoutInitAddresses)
    }

    private fun testDropInitUnknownClassName(keepLast: Boolean) {
        val qualifiedClassName = "my.app.SomeOtherException"
        val withoutInitAddresses = addresses.dropInitAddresses(qualifiedClassName, stackTrace, keepLast)
        assertEquals(addresses, withoutInitAddresses)
    }

    @Test
    fun testDropInitUnknownClassNameDropLast() = testDropInitUnknownClassName(false)

    @Test
    fun testDropInitUnknownClassNameKeepLast() = testDropInitUnknownClassName(true)
}
package io.sentry.kotlin.multiplatform

import io.sentry.kotlin.multiplatform.utils.fakeDsn
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertNull

class BeforeBreadcrumbIntegrationTest {
    private val breadcrumbConfigurator = BreadcrumbConfigurator()

    @Test
    fun `breadcrumb is not null if KMP beforeBreadcrumb callback config is null`() {
        val breadcrumb = breadcrumbConfigurator.applyOptions {
            it.dsn = fakeDsn
        }
        assertNotNull(breadcrumb)
    }

    @Test
    fun `breadcrumb is null if KMP beforeBreadcrumb callback config returns null`() {
        val breadcrumb = breadcrumbConfigurato


etNumber_normalized.indexOf('&') > 0) {
        streetNumber_normalized = streetNumber_normalized.substr(0, streetNumber_normalized.indexOf('&'));
    }
    //Tout supprimer après un + (
    if (streetNumber_normalized.indexOf('+') > 0) {
        streetNumber_normalized = streetNumber_normalized.substr(0, streetNumber_normalized.indexOf('+'));
    }

    //Tout supprimer après un slash
    if (streetNumber_normalized.indexOf('/') > 0) {
        streetNumber_normalized = streetNumber_normalized.substr(0, streetNumber_normalized.indexOf('/'));
    }

    //Tout supprimer après un backslash
    if (streetNumber_normalized.indexOf('\\') > 0) {
        streetNumber_normalized = streetNumber_normalized.substr(0, streetNumber_normalized.indexOf('\\'));
    }

    //Supprimer tous les espaces
    streetNumber_normalized = streetNumber_normalized.globalReplace(' ', '');

    return streetNumber_normalized;
}

function translate(s: string, sFrom: string, sTo: string) {
    let out: string = s;
    for (let i = 0; i < sFrom.length; i++) {
        out = out.split(sFrom.charAt(i)).join(sTo.charAt(i));
    }
    return out;
}import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';

import { environment } from '../../environments/environment';
import { User } from '../model/user';
import { Trip } from '../model/trip';
import { GeoService } from './geo.service';

const TRIP_URL = `${environment.apiGatewayUrl}/trip`;

/** Class representing the trip service */
@Injectable()
export class TripService {
    /**
     * Create a trip service
     * @param http The Angular http client
     * @param geoService The geo service
     */
    constructor(private http: HttpClient, private geoService: GeoService) { }

    /**
     * Create a new trip
     * @param user The user creating the trip
     * @param trip The new trip
     * @returns The request observable
     */
    createTrip(user: User, trip: Trip) {
        const httpOptions = {
            headers: new HttpHeaders({
                'Content-Type':  'application/json',
            })
        };
        const reqBody = this.buildReqeustBody(user, trip);
        const createTripUrl = `${environment.apiGatewayUrl}/user/${user.uid}/trip`;
        return this.http.post(createTripUrl, reqBody, httpOptions);
    }

    /**
     * Get all non current trips
     * @returns The request observable
     */
    getNonCurrentTrips() {
        return this.http.get(`${TRIP_URL}`);
    }

    /**
     * Get all current trips
     * @returns The request observable
     */
    getAllTrips() {
        return this.http.get(`${TRIP_URL}/current`);
    }

    /**
     * Build the request body for creating a trip
     * @param user The user creating the trip
     * @param trip The trip being created
     * @returns The JSON request body
     */
    buildReqeustBody(user: User, trip: Trip) {
        const reqBody = {};

        reqBody['email'] = user.email;
        reqBody['start_lat'] = trip.startLat;
        reqBody['start_lng'] = trip.startLong;
        reqBody['end_lat'] = trip.endLat;
        reqBody['end_lng'] = trip.endLong;
        reqBody['start_time'] = trip.startTime.getTime();
        reqBody['end_time'] = 0;
        reqBody['seats'] = trip.se


  <markerlabel text="amp" vadjust="-30" labelstyle="font-weight:400;font-size:20px"></markerlabel>
        </trackmarker>

    </plasmidtrack>
</plasmid>
<style>
    @import url("http://fonts.googleapis.com/css?family=Lato:300,400,700|Donegal+One|Source+Code+Pro:400");
    body {font-family: 'Lato';font-weight:400;}
    .boundary {stroke-dasharray:2,2;stroke-width:2px}
    .mdlabel {font-size:12px}
    .smlabel {font-size:10px;font-weight:700}
    .white {fill:#fff}
    .black {fill:#000}
    .majorscale {stroke:#c00;stroke-width:2px}
    .minorscale {stroke:#999;stroke-width:1px}
</style>
<plasmid sequencelength="1000" plasmidheight="375" plasmidwidth="375">
    <!-- inner track -->
    <plasmidtrack trackstyle="fill:#f0f0f0;stroke:#009;" width="35" radius="63">
        <tracklabel text="pBR322" labelstyle="fill:#900;font-weight:700"></tracklabel>
        <trackmarker start="100" end="250" markerstyle="fill:rgb(32,32,64)">
            <markerlabel type="path" class="mdlabel white" text="pUC ORI"></markerlabel>
        </trackmarker>
        <trackmarker start="250" end="440" markerstyle="fill:rgb(64,64,128)">
            <markerlabel type="path" class="mdlabel white" text="hPGK"></markerlabel>
        </trackmarker>
        <trackmarker start="440" end="620" markerstyle="fill:rgb(92,92,164)">
            <markerlabel type="path" class="mdlabel white" text="ORI"></markerlabel>
        </trackmarker>
        <trackmarker start="620" end="800" markerstyle="fill:rgb(128,128,192)">
            <markerlabel type="path" class="mdlabel white" text="AraC"></markerlabel>
        </trackmarker>
        <trackmarker start="800" end="975" markerstyle="fill:rgb(192,192,225)">
            <markerlabel type="path" class="mdlabel black" text="Ampf"></markerlabel>
        </trackmarker>
        <trackmarker start="975" end="100" markerstyle="fill:rgb(225,225,255)">
            <markerlabel type="path" class="mdlabel black" text="GFP"></markerlabel>
        </trackmarker>
        <trackscale interval="50" class="majorscale" vadjust="5" ticksize="4"></trackscale>
        <trackscale interval="10" class="minorscale"  vadjust="5"></trackscale>
        <trackscale interval="50" class="majorscale"  ticksize="4" direction="in"></trackscale>
        <trackscale interval="10" class="minorscale" direction="in"></trackscale>
    </plasmidtrack>

    <!-- outer track -->
    <plasmidtrack trackstyle="fill:#f0f0f0;stroke:#999;stroke:#333" width="20" radius="109">
        <trackmarker start="100" end="250" markerstyle="fill:rgb(64,64,64)">
            <markerlabel type="path" class="smlabel white" text="LacZ" vadjust="5"></markerlabel>
        </trackmarker>
        <trackmarker start="250" end="440" markerstyle="fill:rgb(92,92,92)">
            <markerlabel type="path" class="smlabel white" text="nat-1" vadjust="5"></markerlabel>
        </trackmarker>
        <trackmarker start="440" end="620" markerstyle="fill:rgb(128,128,128)">
            <markerlabel type="path" class="smlabel white" text="SacB#3" vadjust="5"></markerlabel>
        </trackmarker>
        <trackmarker start="620" end="800" markerstyle="fill:rgb(192,192,192)">
            <markerlabel type="path" class="smlabel white" text="Tn7R" vadjust="5"></markerlabel


;
	}///
/// Massively by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///

/* Header */

	#header {
		@include color-typography(invert);
		@include vendor('align-items', 'center');
		@include vendor('display', 'flex');
		@include vendor('flex-direction', 'column');
		@include vendor('justify-content', 'flex-end');
		@include vendor('pointer-events', 'none');
		@include vendor('user-select', 'none');
		height: 20rem;
		padding-bottom: (_size(padding) * 4);
		position: relative;
		text-align: center;
		z-index: 2;

		.logo {
			@include vendor('transition', (
				'border-color #{_duration(transition)} ease-in-out',
				'color #{_duration(transition)} ease-in-out',
				'opacity 0.5s ease',
				'transform 0.5s ease',
				'visibility 0.5s'
			));
			@include vendor('pointer-events', 'auto');
			border-style: solid;
			border-color: _palette(invert, border);
			border-width: 5px !important;
			font-family: _font(family-heading);
			font-size: 2.25rem;
			font-weight: _font(weight-heading);
			letter-spacing: 0.075em;
			line-height: 1;
			padding: 1rem 1.75rem;
			text-transform: uppercase;
			visibility: visible;

			&:hover {
				border-color: _palette(invert, accent) !important;
				color: _palette(invert, accent) !important;
			}
		}

		@include breakpoint('<=medium') {
			height: 14rem;
			padding-bottom: (_size(padding) * 2);
		}

		@include breakpoint('<=small') {
			padding-bottom: (_size(padding) * 1.5);

			.logo {
				font-size: 1.75rem;
				border-width: 3px !important;
			}
		}
	}///
/// Massively by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///

/* Main */

	#main {
		background-color: _palette(bg);
		position: relative;
		margin: 0 auto;
		width: calc(100% - #{_size(padding) * 2});
		max-width: _size(wrapper);
		z-index: 2;

		> * {
			@include padding((_size(padding) * 2), (_size(padding) * 2));
			border-top: solid 2px _palette(border);
			margin: 0;

			&:first-child {
				border-top: 0;
			}
		}

		> footer {
			text-align: center;
		}

		> .post {
			@include padding((_size(padding) * 4), (_size(padding) * 4));

			header {
				&.major {
					> .date {
						margin-top: -2rem;
					}

					> h1, h2 {
						font-size: 4rem;
						line-height: 1.1;
						margin: 0 0 _size(element-margin) 0;
					}
				}
			}

			&.featured {
				text-align: center;
			}

			@include breakpoint('<=large') {
				@include padding((_size(padding) * 3), (_size(padding) * 2));
			}

			@include breakpoint('<=small') {
				@include padding((_size(padding) * 2), (_size(padding) * 1));

				header {
					&.major {
						> .date {
							margin-top: -1rem;


+1)  /* positive constant */

#define TARGET_STDARGS
#define TARGET_BUILTINS							\
	{ "__builtin_stdarg_start", mips_builtin_stdarg_start,	       \
						0, 2, 0, VOID },	\
	{ "__builtin_va_start", mips_builtin_stdarg_start,	       \
						0, 2, 0, VOID },	\
	{ "__builtin_va_arg", mips_builtin_va_arg, BTNORVAL|BTNOPROTO, \
							2, 0, 0 },	\
	{ "__builtin_va_end", mips_builtin_va_end, 0, 1, 0, VOID },    \
	{ "__builtin_va_copy", mips_builtin_va_copy, 0, 2, 0, VOID },

#ifdef LANG_CXX
#define P1ND struct node
#else
#define P1ND struct p1node
#endif
struct node;
struct bitable;
P1ND *mips_builtin_stdarg_start(const struct bitable *, P1ND *a);
P1ND *mips_builtin_va_arg(const struct bitable *, P1ND *a);
P1ND *mips_builtin_va_end(const struct bitable *, P1ND *a);
P1ND *mips_builtin_va_copy(const struct bitable *, P1ND *a);
#undef P1ND


f10c862d9aece9f392958c10d086';

/// Copied from Dart SDK
class _SystemHash {
  _SystemHash._();

  static int combine(int hash, int value) {
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + value);
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
    return hash ^ (hash >> 6);
  }

  static int finish(int hash) {
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
    // ignore: parameter_assignments
    hash = hash ^ (hash >> 11);
    return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
  }
}

/// See also [_search].
@ProviderFor(_search)
const _searchProvider = _SearchFamily();

/// See also [_search].
class _SearchFamily extends Family<AsyncValue<List>> {
  /// See also [_search].
  const _SearchFamily();

  /// See also [_search].
  _SearchProvider call(
    String query,
  ) {
    return _SearchProvider(
      query,
    );
  }

  @override
  _SearchProvider getProviderOverride(
    covariant _SearchProvider provider,
  ) {
    return call(
      provider.query,
    );
  }

  static const Iterable<ProviderOrFamily>? _dependencies = null;

  @override
  Iterable<ProviderOrFamily>? get dependencies => _dependencies;

  static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;

  @override
  Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
      _allTransitiveDependencies;

  @override
  String? get name => r'_searchProvider';
}

/// See also [_search].
class _SearchProvider extends AutoDisposeFutureProvider<List> {
  /// See also [_search].
  _SearchProvider(
    String query,
  ) : this._internal(
          (ref) => _search(
            ref as _SearchRef,
            query,
          ),
          from: _searchProvider,
          name: r'_searchProvider',
          debugGetCreateSourceHash:
              const bool.fromEnvironment('dart.vm.product')
                  ? null
                  : _$searchHash,
          dependencies: _SearchFamily._dependencies,
          allTransitiveDependencies: _SearchFamily._allTransitiveDependencies,
          query: query,
        );

  _SearchProvider._internal(
    super._createNotifier, {
    required super.name,
    required super.dependencies,
    required super.allTransitiveDependencies,
    required super.debugGetCreateSourceHash,
    required super.from,
    required this.query,
  }) : super.internal();

  final String query;

  @override
  Override overrideWith(
    FutureOr<List> Function(_SearchRef provider) create,
  ) {
    return ProviderOverride(
      origin: this,
      override: _SearchProvider._internal(
        (ref) => create(ref as _SearchRef),
        from: from,
        name: null,
        dependencies: null,
        allTransitiveDependencies: null,
        debugGetCreateSourceHash: null,
        query: query,
      ),
    );
  }

  @override
  AutoDisposeFutureProviderElement<List> createElement() {
    return _SearchProviderElement(this);
  }

  @override
  bool operator ==(Object other) {
    return other is _SearchProvider && other.query == query;
  }

  @override
  int get hashCode {
    var hash = _SystemHash.combine(0, runtimeType.hashCode);
    hash = _SystemHash.combine(hash, query.hashCode);

    return _SystemHash.finish(hash);
  }
}

@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin _SearchRef on AutoDisposeFutureProviderRef<List> {
  /// The parameter `query` o


arams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.MATCH_PARENT
                )
            }

            // Create the toolbar
            val toolbar = Toolbar(this).apply {
                layoutParams = LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT
                )
                title = ""
                elevation = 4f
                setBackgroundColor(resources.getColor(android.R.color.holo_blue_dark))  // Set toolbar background color
            }
            setActionBar(toolbar)
            val webViewToolbar = false
            if (webViewToolbar) {
                parentLayout.addView(toolbar)
            }
            val webView = WebView(this).apply {
                layoutParams = LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    0,
                    1f
                )
            }
            parentLayout.addView(webView)
            setContentView(parentLayout)
            webView.clearCache(true);
            webView.clearHistory();
            configureWebView(webView)
            globalVM.add<android.webkit.WebView>(webView)

            webView.loadUrl("https://cheese/index.html")

            val intent = Intent("webview.loaded")
            LocalBroadcastManager.getInstance(this).sendBroadcast(intent)

        }

        // Dynamically create menu with the settings icon
        override fun onCreateOptionsMenu(menu: Menu?): Boolean {
            val settingsItem = menu?.add(0, 0, 0, "Settings")
            settingsItem?.setIcon(android.R.drawable.ic_menu_manage)
            settingsItem?.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
            return true
        }

        // Handle the settings button click
        override fun onOptionsItemSelected(item: MenuItem): Boolean {
            return when (item.title) {
                "Settings" -> {
                    // Print "你好" when the settings button is clicked
                    val intent = Intent(this, SettingsActivity::class.java)
                    startActivity(intent)
                    true
                }

                else -> super.onOptionsItemSelected(item)
            }
        }

        private var backPressedOnce = false

        @Deprecated("Deprecated in Java")
        override fun onBackPressed() {

            if (!CoreEnv.runTime.isDebugMode) {
                if (backPressedOnce) {
                    // 启动主页的 Activity
                    val intent = Intent(Intent.ACTION_MAIN)
                    intent.addCategory(Intent.CATEGORY_HOME)
                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                    startActivity(intent)
                } else {
                    backPressedOnce = true
                    Toast.makeText(this, "再按一次返回主页", Toast.LENGTH_SHORT).show()
                    // 重置标志变量，在2秒后重置
                    Handler(Looper.getMainLooper()).postDelayed({
                        backPressedOnce = false
                    }, 2000)
                }
            } else {
                super.onBackPressed()
            }

        }

    }

}package net.codeocean.cheese.yolo

import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import com.tencent.yolov8ncnn.Yolov8Ncnn
import java.lang.ref.WeakReference

object YoloHandler {
    var yolov8ncnn: Yolov8Ncnn? = null

    init {
        yolov8ncnn = Yolov8Ncnn()
    }

    fun detect(
        bitmap: Bitmap,
        path: String,
        list: Array<String>,
        cpugpu: Int


32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"list-ul":[512,512,[],"f0ca","M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-


Json(type, listType)
    }

    @TypeConverter
    fun jsonToAccountList(json: String): List<Account>? {
        val listType = object : TypeToken<List<Account?>?>() {}.type
        return gson.fromJson(json, listType)
    }
}package org.pixeldroid.app.utils.api.objects

import org.pixeldroid.app.utils.db.entities.UserDatabaseEntity
import java.io.Serializable
import java.time.Instant

data class StoryCarousel(
    val self: CarouselUserContainer?,
    val nodes: List<CarouselUserContainer?>?
): Serializable

data class CarouselUser(
    val id: String?,
    val username: String?,
    val username_acct: String?,
    val avatar: String?, // URL to account avatar
    val local: Boolean?, // Is this story from the local instance?
    val is_author: Boolean?, // Is this me? (seems redundant with id)
): Serializable

/**
 * Container with a description of the [user] and a list of stories ([nodes])
 */
data class CarouselUserContainer(
    val user: CarouselUser?,
    val nodes: List<Story?>?,
): Serializable {
    constructor(user: UserDatabaseEntity, nodes: List<Story?>?) : this(
        CarouselUser(user.user_id, user.username, null, user.avatar_static,
            local = true,
            is_author = true
        ), nodes)
}

data class Story(
    val id: String?,
    val pid: String?, // id of author
    val type: String?, //TODO make enum of this? examples: "photo", ???
    val src: String?, // URL to photo of story
    val duration: Int?, //Time in seconds that the Story should be shown
    val seen: Boolean?, //Indication of whether this story has been seen. Set to true using carouselSeen
    val created_at: Instant?, //ISO 8601 Datetime
): Serializablepackage org.pixeldroid.app.utils.db.entities

import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "instances")
data class InstanceDatabaseEntity(
    @PrimaryKey var uri: String,
    var title: String,
    var maxStatusChars: Int = DEFAULT_MAX_TOOT_CHARS,
    // Per-file file-size limit in KB. Defaults to 15000 (15MB). Default limit for Mastodon is 8MB
    var maxPhotoSize: Int = DEFAULT_MAX_PHOTO_SIZE,
    // Mastodon has different file limits for videos, default of 40MB
    var maxVideoSize: Int = DEFAULT_MAX_VIDEO_SIZE,
    // How many photos can go into an album. Default limit for Pixelfed and Mastodon is 4
    var albumLimit: Int = DEFAULT_ALBUM_LIMIT,
    // Is video functionality enabled on this instance?
    var videoEnabled: Boolean = DEFAULT_VIDEO_ENABLED,
    // Is this Pixelfed instance?
    var pixelfed: Boolean = true,
) {
    companion object {
        // Default max number of chars for Mastodon: used when their is no other value supplied by
        // either NodeInfo or the instance endpoint
        const val DEFAULT_MAX_TOOT_CHARS = 500

        const val DEFAULT_MAX_PHOTO_SIZE = 8000
        const val DEFAULT_MAX_VIDEO_SIZE = 40000
        const val DEFAULT_ALBUM_LIMIT = 4
        const val DEFAULT_VIDEO_ENABLED = true
    }
}package org.pixeldroid.app.utils.db.dao

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction
import androidx.room.Update
import org.pixeldroid.app.utils.db.entities.TabsDatabaseEntity

@Dao
interface TabsDao {
    @Query("SELECT * FROM


SLASH = 0x5C;
  static const int _RIGHT_BRACKET = 0x5D;
  static const int _LOWER_CASE_A = 0x61;
  static const int _LOWER_CASE_F = 0x66;
  static const int _LOWER_CASE_Z = 0x7A;
  static const int _BAR = 0x7C;

  /**
   * This is the internal implementation of JavaScript's encodeURI function.
   * It encodes all characters in the string [text] except for those
   * that appear in [canonicalTable], and returns the escaped string.
   */
  static String _uriEncode(List<int> canonicalTable,
                           String text,
                           {Encoding encoding: UTF8,
                            bool spaceToPlus: false}) {
    byteToHex(byte, buffer) {
      const String hex = '0123456789ABCDEF';
      buffer.writeCharCode(hex.codeUnitAt(byte >> 4));
      buffer.writeCharCode(hex.codeUnitAt(byte & 0x0f));
    }

    // Encode the string into bytes then generate an ASCII only string
    // by percent encoding selected bytes.
    StringBuffer result = new StringBuffer();
    var bytes = encoding.encode(text);
    for (int i = 0; i < bytes.length; i++) {
      int byte = bytes[i];
      if (byte < 128 &&
          ((canonicalTable[byte >> 4] & (1 << (byte & 0x0f))) != 0)) {
        result.writeCharCode(byte);
      } else if (spaceToPlus && byte == _SPACE) {
        result.writeCharCode(_PLUS);
      } else {
        result.writeCharCode(_PERCENT);
        byteToHex(byte, result);
      }
    }
    return result.toString();
  }

  /**
   * Convert a byte (2 character hex sequence) in string [s] starting
   * at position [pos] to its ordinal value
   */
  static int _hexCharPairToByte(String s, int pos) {
    int byte = 0;
    for (int i = 0; i < 2; i++) {
      var charCode = s.codeUnitAt(pos + i);
      if (0x30 <= charCode && charCode <= 0x39) {
        byte = byte * 16 + charCode - 0x30;
      } else {
        // Check ranges A-F (0x41-0x46) and a-f (0x61-0x66).
        charCode |= 0x20;
        if (0x61 <= charCode && charCode <= 0x66) {
          byte = byte * 16 + charCode - 0x57;
        } else {
          throw new ArgumentError("Invalid URL encoding");
        }
      }
    }
    return byte;
  }

  /**
   * Uri-decode a percent-encoded string.
   *
   * It unescapes the string [text] and returns the unescaped string.
   *
   * This function is similar to the JavaScript-function `decodeURI`.
   *
   * If [plusToSpace] is `true`, plus characters will be converted to spaces.
   *
   * The decoder will create a byte-list of the percent-encoded parts, and then
   * decode the byte-list using [encoding]. The default encodingis UTF-8.
   */
  static String _uriDecode(String text,
                           {bool plusToSpace: false,
                            Encoding encoding: UTF8}) {
    // First check whether there is any characters which need special handling.
    bool simple = true;
    for (int i = 0; i < text.length && simple; i++) {
      var codeUnit = text.codeUnitAt(i);
      simple = codeUnit != _PERCENT && codeUnit != _PLUS;
    }
    List<int> bytes;
    if (simple) {
      if (encoding == UTF8 || encoding == LATIN1) {
        return text;
      } else {
        bytes = text.codeUnits;
      }
    } else {
      bytes = new List();
      for (int i = 0; i < text.length; i++) {
        var codeU