st of committed polynomials to open, need to derive the challenge using Fiat Shamir.
// * polynomials is the list of polynomials to open, they are supposed to be of the same size.
// * dataTranscript extra data that might be needed to derive the challenge used for folding
func BatchOpenSinglePoint(polynomials [][]fr.Element, digests []Digest, point fr.Element, hf hash.Hash, pk ProvingKey, dataTranscript ...[]byte) (BatchOpeningProof, error) {

	// check for invalid sizes
	nbDigests := len(digests)
	if nbDigests != len(polynomials) {
		return BatchOpeningProof{}, ErrInvalidNbDigests
	}

	// TODO ensure the polynomials are of the same size
	largestPoly := -1
	for _, p := range polynomials {
		if len(p) > len(pk.G1) {
			return BatchOpeningProof{}, ErrInvalidPolynomialSize
		}
		if len(p) > largestPoly {
			largestPoly = len(p)
		}
	}

	var res BatchOpeningProof

	// compute the purported values
	res.ClaimedValues = make([]fr.Element, len(polynomials))
	var wg sync.WaitGroup
	wg.Add(len(polynomials))
	for i := 0; i < len(polynomials); i++ {
		go func(_i int) {
			res.ClaimedValues[_i] = eval(polynomials[_i], point)
			wg.Done()
		}(i)
	}

	// wait for polynomial evaluations to be completed (res.ClaimedValues)
	wg.Wait()

	// derive the challenge γ, binded to the point and the commitments
	gamma, err := deriveGamma(point, digests, res.ClaimedValues, hf, dataTranscript...)
	if err != nil {
		return BatchOpeningProof{}, err
	}

	// ∑ᵢγⁱf(a)
	var foldedEvaluations fr.Element
	chSumGammai := make(chan struct{}, 1)
	go func() {
		foldedEvaluations = res.ClaimedValues[nbDigests-1]
		for i := nbDigests - 2; i >= 0; i-- {
			foldedEvaluations.Mul(&foldedEvaluations, &gamma).
				Add(&foldedEvaluations, &res.ClaimedValues[i])
		}
		close(chSumGammai)
	}()

	// compute ∑ᵢγⁱfᵢ
	// note: if we are willing to parallelize that, we could clone the poly and scale them by
	// gamma n in parallel, before reducing into foldedPolynomials
	foldedPolynomials := make([]fr.Element, largestPoly)
	copy(foldedPolynomials, polynomials[0])
	gammas := make([]fr.Element, len(polynomials))
	gammas[0] = gamma
	for i := 1; i < len(polynomials); i++ {
		gammas[i].Mul(&gammas[i-1], &gamma)
	}

	for i := 1; i < len(polynomials); i++ {
		i := i
		parallel.Execute(len(polynomials[i]), func(start, end int) {
			var pj fr.Element
			for j := start; j < end; j++ {
				pj.Mul(&polynomials[i][j], &gammas[i-1])
				foldedPolynomials[j].Add(&foldedPolynomials[j], &pj)
			}
		})
	}

	// compute H
	<-chSumGammai
	h := dividePolyByXminusA(foldedPolynomials, foldedEvaluations, point)
	foldedPolynomials = nil // same memory as h

	res.H, err = Commit(h, pk)
	if err != nil {
		return BatchOpeningProof{}, err
	}


sertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -77,7 +76,7 @@ public void testCodeFlow() throws IOException {

             assertEquals("alice, cache size: 0", page.getBody().asNormalizedText());
             assertNotNull(getSessionCookie(webClient, "code-flow"));
-
+            // Logout
             page = webClient.getPage("http://localhost:8081/code-flow/logout");
             assertEquals("Welcome, clientId: quarkus-web-app", page.getBody().asNormalizedText());
             assertNull(getSessionCookie(webClient, "code-flow"));

commit 2a057632d7f5fa3d1c77b9aa037263211c0e0290
Author: rjtmahinay <rjt.mahinay@gmail.com>
AuthorDate:   Mon Jul 10 01:22:32 2023 +0800
Commit: rjtmahinay <rjt.mahinay@gmail.com>
CommitDate:   Mon Jul 10 01:22:32 2023 +0800

    Add QuarkusApplication javadoc

    * Fix #34463

diff --git a/core/runtime/src/main/java/io/quarkus/runtime/QuarkusApplication.java b/core/runtime/src/main/java/io/quarkus/runtime/QuarkusApplication.java
index 350685123d5..87d2220eb98 100644
--- a/core/runtime/src/main/java/io/quarkus/runtime/QuarkusApplication.java
+++ b/core/runtime/src/main/java/io/quarkus/runtime/QuarkusApplication.java
@@ -2,0 +3,4 @@
+/**
+ * This is usually used for command mode applications with a startup logic. The logic is executed inside
+ * {@link QuarkusApplication#run} method before the main application exits.
+ */

commit bca2d17491015ea1522f34517223b5a366aea73c (HEAD -> master)
Author: John Smith <john.smith@example.com>
AuthorDate:   Tue Jul 11 18:12:21 2023 -0400
Commit: John Smith <john.smith@example.com>
CommitDate:   Tue Jul 11 18:12:21 2023 -0400

    Delete binary file

diff --git a/trufflehog_3.42.0_linux_arm64.tar.gz b/trufflehog_3.42.0_linux_arm64.tar.gz
deleted file mode 100644
index 7682212..0000000
Binary files a/trufflehog_3.42.0_linux_arm64.tar.gz and /dev/null differ

commit afc6dc5d47f28366638da877ecb6b819c69e659b
Author: John Smith <john.smith@example.com>
AuthorDate:   Mon Jul 10 12:21:33 2023 -0400
Commit: John Smith <john.smith@example.com>
CommitDate:   Mon Jul 10 12:21:33 2023 -0400

    Change binary file

diff --git a/trufflehog_3.42.0_linux_arm64.tar.gz b/trufflehog_3.42.0_linux_arm64.tar.gz
index 0a7a5b4..7682212 100644
Binary files a/trufflehog_3.42.0_linux_arm64.tar.gz and b/trufflehog_3.42.0_linux_arm64.tar.gz differ

commit 638595917417c5c8a956937b28c5127719023363
Author: John Smith <john.smith@example.com>
AuthorDate:   Mon Jul 10 12:20:35 2023 -0400
Commit: John Smith <john.smith@example.com>
CommitDate:   Mon Jul 10 12:20:35 2023 -0400

    Add binary file

diff --git a/trufflehog_3.42.0_linux_arm64.tar.gz b/trufflehog_3.42.0_linux_arm64.tar.gz
new file mode 100644
index 0000000..0a7a5b4
Binary files /dev/null and b/trufflehog_3.42.0_linux_arm64.tar.gz differ

commit ce0f5d1fe0272f180ccb660196


tonumber(val, 16) and tonumber(elements[i])~=0 then
            Data:SetVR(groups[i], elements[i], Data2:GetVR(groups[i], elements[i]))
  	end
        end
      else
        local g, e = dictionary(val)
        Data:SetVR(g, e, Data2:GetVR(g, e))
        if config.logmodified then
          f:write('Kept ', val .. ': ', tostring(Data[val]), "\n")
        end
      end
    end
  end

  -- empty tags
  for _, val in ipairs(config.TagsToEmpty) do
    if tonumber(val, 16) then
      if config.logmodified then
        f:write('Made group ', val, " empty\n")
      end
      for i=1, #groups do
        if tonumber(groups[i])==tonumber(val, 16) and tonumber(elements[i])~=0 then
          Data[names[i]]=''
        end
      end
    else
      Data[val]=''
      if config.logmodified then
        f:write('Made ', val, ' empty: ', tostring(Data[val]), "\n")
      end
    end
  end

  -- remove tags
  for _, val in ipairs(config.TagsToRemove) do
    if tonumber(val, 16) then
      if config.logmodified then
        f:write('Remove group ', val, "\n")
      end
      for i=1, #groups do
        if tonumber(groups[i])==tonumber(val, 16) and tonumber(elements[i])~=0 then
          Data[names[i]]=nil
        end
      end
    else
      Data[val]=nil
      if config.logmodified then
        f:write('Removed ', val, ': ', tostring(Data[val]), "\n")
      end
    end
  end

  Data.PatientIdentityRemoved='YES'
  Data.DeidentificationMethod='Conquest:' ..Global.DGATEVERSION..'; anonymizer:'.. scriptversion..' '..stage

  Data.DeidentificationMethodCodeSequence=nil
  Data.DeidentificationMethodCodeSequence={}
  local n=0
  Data.DeidentificationMethodCodeSequence[n].CodeValue = '113100'
  Data.DeidentificationMethodCodeSequence[n].CodingSchemeDesignator = 'DCM'
  Data.DeidentificationMethodCodeSequence[n].CodeMeaning = 'Basic Application Confidentiality Profile'
  n=n+1
  Data.DeidentificationMethodCodeSequence[n].CodeValue = '113105'
  Data.DeidentificationMethodCodeSequence[n].CodingSchemeDesignator = 'DCM'
  Data.DeidentificationMethodCodeSequence[n].CodeMeaning = 'Clean Descriptors Option'
  n=n+1
  if dateoffset~='' then
    Data.DeidentificationMethodCodeSequence[n].CodeValue = '113107'
    Data.DeidentificationMethodCodeSequence[n].CodingSchemeDesignator = 'DCM'
    Data.DeidentificationMethodCodeSequence[n].CodeMeaning = 'Retain Longitudinal Temporal Information Modified Dates Option'
    n=n+1
    Data.LongitudinalTemporalInformationModified = 'MODIFIED'
  else
    Data.DeidentificationMethodCodeSequence[n].CodeValue = '113106'
    Data.DeidentificationMethodCodeSequence[n].CodingSchemeDesignator = 'DCM'
    Data.DeidentificationMethodCodeSequence[n].CodeMeaning = 'Retain Longitudinal Temporal Information'
    n=n+1
    Data.LongitudinalTemporalInformationModified = 'UNMODIFIED'
  end
  Data.DeidentificationMethodCodeSequence[n].CodeValue = '113109'
  Data.DeidentificationMethodCodeSequence[n].CodingSchemeDesignator = 'DCM'
  Data.DeidentificationMethodCodeSequence[n].CodeMeaning = 'Retain Device Identity Option'
  n=n+1

  f:write("\n\n")
  f:close();
end


三明治和姜饼的对比。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/thenonmessedupversion.png)

*蜂巢没有文件夹和信息应用，所以这里是冰淇淋三明治和姜饼的对比。
[Ron Amadeo 供图]*

现在创建文件夹更加方便了。在姜饼中，你得长按屏幕，选择“文件夹”选项，再点击“新文件夹”。在冰淇淋三明治中，你只要将一个图标拖拽到另一个图标上面，就会自动创建一个文件夹，并包含这两个图标。这简直不能更简单了，比寻找隐藏的长按命令容易多了。

设计上也有很大的改进。姜饼使用了一个通用的米黄色文件夹图标，但冰淇淋三明治直接显示出了文件夹中的头三个应用，把它们的图标叠在一起，在外侧画一个圆圈，并将其设置为文件夹图标。打开文件夹容器将自动调整大小以适应文件夹中的应用图标数目，而不是显示一个全屏的，大部分都是空的对话框。这看起来好得多得多。

![Youtube 转换到一个更加现代的白色主题，使用了列表视图替换疯狂的 3D 滚动视图。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/youtubes.png)

*Youtube 转换到一个更加现代的白色主题，使用了列表视图替换疯狂的 3D 滚动视图。
[Ron Amadeo 供图]*

Youtube 经过了完全的重新设计，看起来没那么像是来自黑客帝国的产物，更像是，嗯，Youtube。它现在就是一个简单的垂直滚动的白色视频列表，就像网站的那样。在你手机上制作视频受到了重视，操作栏的第一个按钮专用于拍摄视频。奇怪的是，不同的界面左上角使用了不同的 Youtube 标志，在水平的 Youtube 标志和方形标志之间切换。

Youtube 几乎在所有地方都使用了滑动标签页。它们被放置在主页面以在浏览和账户间切换，放置在视频页面以在评论，介绍和相关视频之间切换。4.0 版本的应用显示出 Google+ Youtube 集成的第一个信号，通常的评分按钮旁边放置了 “+1” 图标。最终 Google+ 会完全占据 Youtube，将评论和作者页面变成 Google+ 活动。

![冰淇淋三明治试着让事情对所有人都更加简单。这里是数据使用量追踪，打开许多数据的新开发者选项，以及使用向


ighter-bubble-border-color);
}

:-moz-native-anonymous [class$=infobar-container][hide-arrow] > [class$=infobar] {
  margin: 7px 0;
}

/* Arrows */

:-moz-native-anonymous [class$=infobar-container] > [class$=infobar]:before {
  left: calc(50% - 8px);
  border: 8px solid var(--highlighter-bubble-border-color);
}

:-moz-native-anonymous [class$=infobar-container] > [class$=infobar]:after {
  left: calc(50% - 7px);
  border: 7px solid var(--highlighter-bubble-background-color);
}

:-moz-native-anonymous [class$=infobar-container] > [class$=infobar]:before,
:-moz-native-anonymous [class$=infobar-container] > [class$=infobar]:after {
  content: "";
  display: none;
  position: absolute;
  height: 0;
  width: 0;
  border-left-color: transparent;
  border-right-color: transparent;
}

:-moz-native-anonymous [class$=infobar-container][position="top"]:not([hide-arrow]) > [class$=infobar]:before,
:-moz-native-anonymous [class$=infobar-container][position="top"]:not([hide-arrow]) > [class$=infobar]:after {
  border-bottom: 0;
  top: 100%;
  display: block;
}

:-moz-native-anonymous [class$=infobar-container][position="bottom"]:not([hide-arrow]) > [class$=infobar]:before,
:-moz-native-anonymous [class$=infobar-container][position="bottom"]:not([hide-arrow]) > [class$=infobar]:after {
  border-top: 0;
  bottom: 100%;
  display: block;
}

/* Text Container */

:-moz-native-anonymous [class$=infobar-text] {
  overflow: hidden;
  white-space: nowrap;
  direction: ltr;
  padding-bottom: 1px;
  display: flex;
}

:-moz-native-anonymous .box-model-infobar-tagname {
  color: hsl(285,100%, 75%);
}

:-moz-native-anonymous .box-model-infobar-id {
  color: hsl(103, 46%, 54%);
  overflow: hidden;
  text-overflow: ellipsis;
}

:-moz-native-anonymous .box-model-infobar-classes,
:-moz-native-anonymous .box-model-infobar-pseudo-classes {
  color: hsl(200, 74%, 57%);
  overflow: hidden;
  text-overflow: ellipsis;
}

:-moz-native-anonymous [class$=infobar-dimensions] {
  color: hsl(210, 30%, 85%);
  border-inline-start: 1px solid #5a6169;
  margin-inline-start: 6px;
  padding-inline-start: 6px;
}

/* CSS Grid Highlighter */

:-moz-native-anonymous .css-grid-canvas {
  position: absolute;
  pointer-events: none;
  top: 0;
  left: 0;
  image-rendering: -moz-crisp-edges;
}

:-moz-native-anonymous .css-grid-regions {
  opacity: 0.6;
}

:-moz-native-anonymous .css-grid-areas {
  fill: #CEC0ED;
  stroke: none;
}

:-moz-native-anonymous .css-grid-infobar-areaname {
  color: hsl(285,100%, 75%);
}

/* CSS Transform Highlighter */

:-moz-native-anonymous .css-transform-transformed {
  fill: var(--highlighter-content-color);
  opacity: 0.8;
}

:-moz-native-anonymous .css-transform-untransformed {
  fill: #66cc52;
  opacity: 0.8;
}

:-moz-native-anonymous .css-transform-transformed,


		Force1 = Vec3D<>(0,0,0);
	}

	Moment1 = Vec3D<>(0,0,0);
	Moment2 = Vec3D<>(0,0,0);

}
/*******************************************************************************
Copyright (c) 2010, Jonathan Hiller (Cornell University)
If used in publication cite "J. Hiller and H. Lipson "Dynamic Simulation of Soft Heterogeneous Objects" In press. (2011)"

This file is part of Voxelyze.
Voxelyze is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Voxelyze 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 Lesser General Public License for more details.
See <http://www.opensource.org/licenses/lgpl-3.0.html> for license details.
*******************************************************************************/

#include "VXS_Voxel.h"
#include "VXS_Bond.h"
#include "VX_Sim.h"
#include <iostream>

CVXS_Voxel::CVXS_Voxel(CVX_Sim* pSimIn, int SIndexIn, int XIndexIn, int MatIndexIn, Vec3D<>& NominalPositionIn, vfloat OriginalScaleIn) : CVX_Voxel(pSimIn, SIndexIn, XIndexIn, MatIndexIn, NominalPositionIn, OriginalScaleIn)
{
	ResetVoxel(); //sets state variables to zero

	ExternalInputScale = 1.0;

//	CornerPosCur = Vec3D<>(OriginalScaleIn/2, OriginalScaleIn/2, OriginalScaleIn/2);
//	CornerNegCur = Vec3D<>(-OriginalScaleIn/2, -OriginalScaleIn/2, -OriginalScaleIn/2);

	SetColor(0,0,0,1);

	// Here we should be able to override Vox_E (elastic modulus)
	// if(pSimIn->pEnv->pObj->GetEvolvingStiffness())
	// {

	// 	std::cout << "Material stiffness should be " << Vox_E << std::endl;
	// 	Vox_E = evolvedStiffness; // already assigned to the voxel in VX_Sim.cpp
	// 	std::cout << "Evolving stiffness, CPPN-dictated one is "<< Vox_E << std::endl;
	// }

}

CVXS_Voxel::~CVXS_Voxel(void)
{
}

CVXS_Voxel& CVXS_Voxel::operator=(const CVXS_Voxel& VIn)
{
	CVX_Voxel::operator=(VIn);

	ExternalInputScale=VIn.ExternalInputScale;

	InputForce = Vec3D<>(0,0,0);

	Pos = VIn.Pos;
	LinMom = VIn.LinMom;
	Angle = VIn.Angle;
	AngMom = VIn.AngMom;
	Vel = VIn.Vel;
	KineticEnergy = VIn.KineticEnergy;
	AngVel = VIn.AngVel;
	Pressure = VIn.Pressure;
	Scale=VIn.Scale;

	StaticFricFlag = VIn.StaticFricFlag;
	VYielded = VIn.VYielded;
	VBroken = VIn.VBroken;

	ColBondInds = VIn.ColBondInds;
	UpdateColBondPointers();

	m_Red = VIn.m_Red;
	m_Green = VIn.m_Green;
	m_Blue = VIn.m_Blue;
	m_Trans = VIn.m_Trans;

//	SizeCurrent


1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z@@fill:currentColor;&&M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8@@fill:currentColor;|0 0 16 16'
module.exports.biDashSquareDotted = 'M2.5 0q-.25 0-.487.048l.194.98A1.5 1.5 0 0 1 2.5 1h.458V0zm2.292 0h-.917v1h.917zm1.833 0h-.917v1h.917zm1.833 0h-.916v1h.916zm1.834 0h-.917v1h.917zm1.833 0h-.917v1h.917zM13.5 0h-.458v1h.458q.151 0 .293.029l.194-.981A2.5 2.5 0 0 0 13.5 0m2.079 1.11a2.5 2.5 0 0 0-.69-.689l-.556.831q.248.167.415.415l.83-.556zM1.11.421a2.5 2.5 0 0 0-.689.69l.831.556c.11-.164.251-.305.415-.415zM16 2.5q0-.25-.048-.487l-.98.194q.027.141.028.293v.458h1zM.048 2.013A2.5 2.5 0 0 0 0 2.5v.458h1V2.5q0-.151.029-.293zM0 3.875v.917h1v-.917zm16 .917v-.917h-1v.917zM0 5.708v.917h1v-.917zm16 .917v-.917h-1v.917zM0 7.542v.916h1v-.916zm15 .916h1v-.916h-1zM0 9.375v.917h1v-.917zm16 .917v-.917h-1v.917zm-16 .916v.917h1v-.917zm16 .917v-.917h-1v.917zm-16 .917v.458q0 .25.048.487l.98-.194A1.5 1.5 0 0 1 1 13.5v-.458zm16 .458v-.458h-1v.458q0 .151-.029.293l.981.194Q16 13.75 16 13.5M.421 14.89c.183.272.417.506.69.689l.556-.831a1.5 1.5 0 0 1-.415-.415zm14.469.689c.272-.183.506-.417.689-.69l-.831-.556c-.11.164-.251.305-.415.415l.556.83zm-12.877.373Q2.25 16 2.5 16h.458v-1H2.5q-.151 0-.293-.029zM13.5 16q.25 0 .487-.048l-.194-.98A1.5 1.5 0 0 1 13.5 15h-.458v1zm-9.625 0h.917v-1h-.917zm1.833 0h.917v-1h-.917zm1.834 0h.916v-1h-.916zm1.833 0h.917v-1h-.917zm1.833 0h.917v-1h-.917zM4.5 7.5a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1z@@fill:currentColor;|0 0 16 16'
module.exports.biDashSquareFill = 'M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm2.5 7.5h7a.5.5 0 0 1


 0x0c20,0x4c00, 0x0c20,0x4c00, 0x0c20,0x4c00, 0x0c20,0x4c00, 0x0c20,0x4c00, 0x0c20,0x4c00, 0x0c20,0x4c00, 0x5166,0x4c00, 0x5167,0x6200, 0x5168,0x5d00, 0x5169,0x7d00, 0x516a,0xb600, 0x516b,0x0600

.section .bank01
.globl ffbg_a
ffbg_a:
	.word	0x001c, 0x0007	;* 28 bytes per strip / 7 tiles spr size
	.word	0x001e, 0x0007	;* 30 strips of 7 tiles
	.long	ffbg_a_Palettes
	.long	0x00000000
	.long	ffbg_a_strip0000, ffbg_a_strip0001, ffbg_a_strip0002, ffbg_a_strip0003, ffbg_a_strip0004, ffbg_a_strip0005, ffbg_a_strip0006, ffbg_a_strip0007, ffbg_a_strip0008, ffbg_a_strip0009, ffbg_a_strip000a, ffbg_a_strip000b, ffbg_a_strip000c, ffbg_a_strip000d, ffbg_a_strip000e, ffbg_a_strip000f
	.long	ffbg_a_strip0010, ffbg_a_strip0011, ffbg_a_strip0012, ffbg_a_strip0013, ffbg_a_strip0014, ffbg_a_strip0015, ffbg_a_strip0016, ffbg_a_strip0017, ffbg_a_strip0018, ffbg_a_strip0019, ffbg_a_strip001a, ffbg_a_strip001b, ffbg_a_strip001c, ffbg_a_strip001d
	.long	ffbg_a_strip0000	;* overshoot fix

ffbg_a_strip0000:
	.word	0x516c,0x0200, 0x516d,0x0200, 0x516e,0x0200, 0x516f,0x0300, 0x5170,0x0100, 0x5171,0x0100, 0x5172,0x0000
ffbg_a_strip0001:
	.word	0x5173,0x0200, 0x5174,0x0200, 0x5175,0x0200, 0x5176,0x0300, 0x5177,0x0100, 0x5178,0x0100, 0x5179,0x0000
ffbg_a_strip0002:
	.word	0x517a,0x0200, 0x517b,0x0200, 0x517c,0x0200, 0x517d,0x0300, 0x517e,0x0100, 0x517f,0x0100, 0x5180,0x0000
ffbg_a_strip0003:
	.word	0x5181,0x0200, 0x5182,0x0200, 0x5183,0x0200, 0x5176,0x0300, 0x5184,0x0100, 0x5185,0x0100, 0x5179,0x0000
ffbg_a_strip0004:
	.word	0x5181,0x0200, 0x5186,0x0200, 0x5187,0x0200, 0x517d,0x0300, 0x5188,0x0100, 0x5189,0x0100, 0x


	}
		messageIDStr := strconv.FormatInt(resp.MessageID, 10)
		messageExtraM := messageExtraMap[messageIDStr]
		messageUserExtraM := messageUserExtraMap[messageIDStr]
		respVo := &MsgSyncResp{}
		respVo.from(resp, c.GetLoginUID(), messageExtraM, messageUserExtraM, nil, channelOffsetMessageSeq)
		respVos = append(respVos, respVo)
	}

	c.JSON(http.StatusOK, respVos)
}

// 双向删除
func (m *Message) mutualDelete(c *wkhttp.Context) {
	loginUID := c.GetLoginUID()
	var req deleteReq
	if err := c.BindJSON(&req); err != nil {
		m.Error("数据格式有误！", zap.Error(err))
		c.ResponseError(errors.New("数据格式有误！"))
		return
	}
	if err := req.check(); err != nil {
		c.ResponseError(err)
		return
	}
	messageSeqs := make([]uint32, 0)
	messageSeqs = append(messageSeqs, req.MessageSeq)
	fakeChannelID := req.ChannelID
	if req.ChannelType == common.ChannelTypePerson.Uint8() {
		fakeChannelID = common.GetFakeChannelIDWith(loginUID, req.ChannelID)
	}
	resp, err := m.ctx.IMGetWithChannelAndSeqs(req.ChannelID, req.ChannelType, loginUID, messageSeqs)
	if err != nil {
		m.Error("查询消息错误", zap.Error(err), zap.String("req", util.ToJson(req)))
		c.ResponseError(errors.New("查询消息错误"))
		return
	}

	if resp == nil || len(resp.Messages) == 0 {
		c.ResponseError(errors.New("消息不存在"))
		return
	}
	isCanDelete := true
	if req.ChannelType == common.ChannelTypeGroup.Uint8() {
		isManager, err := m.groupService.IsCreatorOrManager(req.ChannelID, loginUID)
		if err != nil {
			m.Error("查询登录用户群内权限错误", zap.Error(err))
			c.ResponseError(errors.New("查询登录用户群内权限错误"))
			return
		}
		if resp.Messages[0].FromUID != loginUID && !isManager {
			isCanDelete = false
		}
	}
	if !isCanDelete {
		c.ResponseError(errors.New("用户无权删除此消息"))
		return
	}
	version := m.genMessageExtraSeq(fakeChannelID)
	err = m.messageExtraDB.insertOrUpdateDeleted(&messageExtraModel{
		MessageID:   req.MessageID,
		ChannelID:   fakeChannelID,
		ChannelType: req.ChannelType,
		IsDeleted:   1,
		Version:     version,
	})
	if err != nil {
		m.Error("删除消息错误", zap.Error(err))
		c.ResponseError(errors.New("删除消息错误"))
		return
	}
	err = m.ctx.SendCMD(config.MsgCMDReq{
		NoPersist:   true,
		ChannelID:   req.ChannelID,
		ChannelType: req.ChannelType,
		FromUID:     c.GetLoginUID(),
		CMD:         common.CMDSyncMessageExtra,
	})

	if err != nil {
		m.Error("发送cmd失败！", zap.Error(err))
		c.ResponseError(err)
		return
	}
	c.ResponseOK()
}

// 删除消息
func (m *Message) delete(c *wkhttp.Context) {


        targetFid = _pickBestFidFromFiles(rootFiles);
        if (targetFid == null) {
          throw Exception("No files available in febbox share");
        }
      }

      // 5) Use vercel endpoint with fid to get playable link(s)
      final String qualityUrl = "https://febbox.vercel.app/api/video-quality?fid=$targetFid";
      final Response<dynamic> qRes = await _dio.get(qualityUrl);
      final String? html = (qRes.data is Map) ? qRes.data["html"] as String? : null;

      if (html == null || html.isEmpty) {
        throw Exception("No HTML in video-quality response for fid=$targetFid");
      }

      final Document qDoc = html_parser.parse(html);
      final List<Element> qualities = qDoc.querySelectorAll(".file_quality");
      final List<MediaStream> streams = <MediaStream>[];

      for (final Element el in qualities) {
        final String? url = el.attributes["data-url"];

        if (url != null && url.isNotEmpty && (url.toLowerCase().contains("mp4") || url.toLowerCase().contains("mkv"))) {
          streams.add(
            MediaStream(
              type: url.toLowerCase().contains("mkv") ? StreamType.mkv : StreamType.mp4,
              url: url,
            ),
          );
        }
      }

      return streams;
    } catch (e, s) {
      _logger.e("Error in ShowBoxExtractor", error: e, stackTrace: s);
    }

    return <MediaStream>[];
  }
}
import 'package:speech_to_text/speech_to_text.dart' as stt;

class SpeechService {
  // Singleton pattern implementation
  static final SpeechService _instance = SpeechService._internal();
  final stt.SpeechToText speech = stt.SpeechToText();

  // Callbacks for status and error
  Function(String)? onStatusCallback;
  Function(String)? onErrorCallback;

  factory SpeechService() {
    return _instance;
  }

  SpeechService._internal();

  Future<void> initialize() async {
    await speech.initialize(
      onStatus: (val) {
        print("Speech status: $val");
        if (onStatusCallback != null) {
          onStatusCallback!(val); // Trigger the status callback
        }
      },
      onError: (val) {
        print('Speech recognition error: $val');
        if (onErrorCallback != null) {
          onErrorCallback!(val.toString()); // Trigger the error callback
        }
      },
    );
  }

  bool get isAvailable => speech.isAvailable;

  // Methods to set the callbacks
  void setStatusCallback(Function(String) callback) {
    onStatusCallback = callback;
  }

  void setErrorCallback(Function(String) callback) {
    onErrorCallback = callback;
  }
}
import 'package:flutter/material.dart';
import 'package:rive/rive.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: RiveAnimationTestPage(),
    );
  }
}

class RiveAnimationTestPage extends StatefulWidget {
  const RiveAnimationTestPage({super.key});

  @override
  _RiveAnimationTestPageState createState() => _RiveAnimationTestPageState();
}

class _RiveAnimationTestPageState extends State<RiveAnimationTestPage> {
  SMIInput<bool>? _talkInput;
  SMIInput<bool>? _hearInput;
  SMIInput<bool>? _checkInput;
  SMIInput<double>? _lookInput;
  SMIInput<bool>? _successInput;
  SMIInput<bool>? _failInput;

  @override
  void initState() {
    super.initState();
  }

  void _onRiveInit(Artboard artboard) {
    final controller =
        StateMa


(36781) - http://www.bohemiancoding.com/sketch -->
    <title>1d-tiles-icon</title>
    <desc>Created with Sketch.</desc>
    <defs>
        <rect id="tiles1DIconStr-path-1" x="0" y="0" width="90" height="90"></rect>
        <mask id="tiles1DIconStr-mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="90" height="90" fill="white">
            <use xlink:href="#tiles1DIconStr-path-1"></use>
        </mask>
        <rect id="tiles1DIconStr-path-3" x="90" y="0" width="90" height="90"></rect>
        <mask id="tiles1DIconStr-mask-4" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="90" height="90" fill="white">
            <use xlink:href="#tiles1DIconStr-path-3"></use>
        </mask>
    </defs>
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <use id="Rectangle" stroke="#979797" mask="url(#tiles1DIconStr-mask-2)" stroke-width="12" fill="#E6D5D5" xlink:href="#tiles1DIconStr-path-1"></use>
        <use id="Rectangle" stroke="#979797" mask="url(#tiles1DIconStr-mask-4)" stroke-width="12" fill="#E6D5D5" xlink:href="#tiles1DIconStr-path-3"></use>
    </g>
</svg>
`;

export const svg1DTilesIcon = parser.parseFromString(
  tiles1DIconStr,
  'text/xml',
).documentElement;
export const svgVertical1DTilesIcon = select(
  parser.parseFromString(tiles1DIconStr, 'text/xml').documentElement,
)
  .style('transform', 'rotate(90deg)')
  .node();

const arrowHeadDomainsStr = `
<svg width="20px" height="20px" viewBox="0 0 111 111" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
    <title>arrowhead-domains</title>
    <desc>Created with Sketch.</desc>
    <defs>
        <rect id="arrowHeadDomainsStr-path-1" x="0" y="0" width="90" height="90"></rect>
        <mask id="arrowHeadDomainsStr-mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="90" height="90" fill="white">
            <use xlink:href="#arrowHeadDomainsStr-path-1"></use>
        </mask>
        <rect id="arrowHeadDomainsStr-path-3" x="52" y="52" width="59" height="59"></rect>
        <mask id="arrowHeadDomainsStr-mask-4" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="59" height="59" fill="white">
            <use xlink:href="#arrowHeadDomainsStr-path-3"></use>
        </mask>
    </defs>
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0">
        <use id="Rectangle" stroke="#979797" mask="url(#arrowHeadDomainsStr-mask-2)" stroke-width="22" fill="#D8D8D8" xlink:href="#arrowHeadDomainsStr-path-1"></


DIR .. "3rdparty/bgfx/src/glcontext_eagl.mm",
	--		MAME_DIR .. "3rdparty/bgfx/src/glcontext_nsgl.mm",
	--		MAME_DIR .. "3rdparty/bgfx/src/renderer_mtl.mm",
		}
		buildoptions {
			"-x objective-c++",
	--		"-D BGFX_CONFIG_MULTITHREADED=0",
		}
	end

--------------------------------------------------
-- PortAudio library objects
--------------------------------------------------

if _OPTIONS["NO_USE_PORTAUDIO"]~="1" then
if not _OPTIONS["with-system-portaudio"] then
project "portaudio"
	uuid "0755c5f5-eccf-47f3-98a9-df67018a94d4"
	kind "StaticLib"

	configuration { "vs*" }
		buildoptions {
			"/wd4245", -- warning C4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
			"/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
			"/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
			"/wd4389", -- warning C4389: 'operator' : signed/unsigned mismatch
			"/wd4189", -- warning C4189: 'xxx' : local variable is initialized but not referenced
			"/wd4127", -- warning C4127: conditional expression is constant
			"/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
			"/wd4312", -- warning C4312: 'type cast': conversion from 'UINT' to 'HWAVEIN' of greater size
		}
	if _OPTIONS["vs"]=="clangcl" then
		buildoptions {
			"-Wno-implicit-const-int-float-conversion",
			"-Wno-sometimes-uninitialized",
			"-Wno-unused-but-set-variable",
		}
	end
	if _OPTIONS["vs"]=="intel-15" then
		buildoptions {
			"/Qwd869",              -- remark #869: parameter "xxx" was never referenced
			"/Qwd1478",             -- warning #1478: function "xxx" (declared at line yyy of "zzz") was declared deprecated
			"/Qwd2544",             -- message #2544: empty dependent statement in if-statement
			"/Qwd1879",             -- warning #1879: unimplemented pragma ignored
		}
	end

	configuration { "gmake or ninja" }
		buildoptions_c {
			"-Wno-bad-function-cast",
			"-Wno-missing-braces",
			"-Wno-strict-prototypes",
			"-Wno-undef",
			"-Wno-unknown-pragmas",
			"-Wno-unused-function",
			"-Wno-unused-value",
			"-Wno-unused-variable",
		}

	local version = str_to_version(_OPTIONS["gcc_version"])
	if (_OPTIONS["gcc"]~=nil) then
		if string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "android") then
			buildoptions_c {
				"-Wno-unknown-warning-option",
				"-Wno-absolute-value",
				"-Wno-unused-but-set-variable",
				"-Wno-maybe-uninitialized",
				"-Wno-sometimes-uninitialized",
				"-Wno-incompatible-pointer-types-discards-qualifiers",
				"-Wno-pointer-sign",


ew byte[] { 0x84, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 };

        public static readonly bool BoolValue = true;
        public static readonly  sbyte Int8Value = -127;        // 0x81
        public static readonly  byte UInt8Value = 255;         // 0xFF
        public static readonly  short Int16Value = -32222;     // 0x8222;
        public static readonly  ushort UInt16Value = 65262;      // 0xFEEE
        public static readonly int Int32Value = BitConverter.ToInt32(_overflowInt32, 0);
        public static readonly uint UInt32Value = 0xFDDDDDDD;
        public static readonly long Int64Value = BitConverter.ToInt64(_overflowInt64, 0);
        public static readonly ulong UInt64Value = 0xFCCCCCCCCCCCCCCC;
        public static readonly float Float32Value = 3.14159f;
        public static readonly double Float64Value = 3.14159265359;
    }
}


f HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),jt=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Ot})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>Nn(e,{viewport$:Oe,target$:Ot,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ft}):S),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:jt})),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?zr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:jt})):zr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:jt}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:jt,target$:Ot})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:jt,target$:Ot})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ft;window.target$=Ot;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})();
//# sourceMappingURL=bundle.f55a23d4.min.js.map

/*!
 * Lunr languages, `German` language
 * https://github.com/MihaiValentin/lunr-languages
 *
 * Copyright 2014, Mihai Valentin
 * http://www.mozilla.org/MPL/
 */
/*!
 * based on
 * Snowball JavaScript Library v0.3
 * http://code.google.com/p/urim/
 * http://snowball.tartarus.org/
 *
 * Copyright 2010, Oleg Mazko
 * http://www.mozilla.org/MPL/
 */

!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥ�


  if (!waitNotBusy(SD_ERASE_TIMEOUT)) {
    error(SD_CARD_ERROR_ERASE_TIMEOUT);
    goto fail;
  }
  chipSelectHigh();
  return true;

 fail:
  chipSelectHigh();
  return false;
}
//------------------------------------------------------------------------------
/** Determine if card supports single block erase.
 *
 * \return The value one, true, is returned if single block erase is supported.
 * The value zero, false, is returned if single block erase is not supported.
 */
uint8_t Sd2Card::eraseSingleBlockEnable(void) {
  csd_t csd;
  return readCSD(&csd) ? csd.v1.erase_blk_en : 0;
}
//------------------------------------------------------------------------------
/**
 * Initialize an SD flash memory card.
 *
 * \param[in] sckRateID SPI clock rate selector. See setSckRate().
 * \param[in] chipSelectPin SD chip select pin number.
 *
 * \return The value one, true, is returned for success and
 * the value zero, false, is returned for failure.  The reason for failure
 * can be determined by calling errorCode() and errorData().
 */
#ifdef ESP8266
uint8_t Sd2Card::init(uint32_t sckRateID, uint8_t chipSelectPin) {
#else
uint8_t Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
#endif
  errorCode_ = inBlock_ = partialBlockRead_ = type_ = 0;
  chipSelectPin_ = chipSelectPin;
  // 16-bit init start time allows over a minute
  uint16_t t0 = (uint16_t)millis();
  uint32_t arg;

  // set pin modes
  pinMode(chipSelectPin_, OUTPUT);
  digitalWrite(chipSelectPin_, HIGH);
#ifndef USE_SPI_LIB
  pinMode(SPI_MISO_PIN, INPUT);
  pinMode(SPI_MOSI_PIN, OUTPUT);
  pinMode(SPI_SCK_PIN, OUTPUT);
#endif

#ifndef SOFTWARE_SPI
#ifndef USE_SPI_LIB
  // SS must be in output mode even it is not chip select
  pinMode(SS_PIN, OUTPUT);
  digitalWrite(SS_PIN, HIGH); // disable any SPI device using hardware SS pin
  // Enable SPI, Master, clock rate f_osc/128
  SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1) | (1 << SPR0);
  // clear double speed
  SPSR &= ~(1 << SPI2X);
#else // USE_SPI_LIB
  SPI.begin();
  settings = SPISettings(250000, MSBFIRST, SPI_MODE0);
#endif // USE_SPI_LIB
#endif // SOFTWARE_SPI

  // must supply min of 74 clock cycles with CS high.
#ifdef USE_SPI_LIB
  SPI.beginTransaction(settings);
#endif
  for (uint8_t i = 0; i < 10; i++) spiSend(0XFF);
#ifdef USE_SPI_LIB
  SPI.endTransaction();
#endif

  chipSelectLow();

  // command to go idle in SPI mode
  while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) {
    if (((uint16_t)(millis() - t0)) > SD_INIT_TIMEOUT) {
      error(SD_CARD_ERROR_CMD0);
      goto fail;
    }
  }
  // check SD version
  if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) {
    type(SD_CARD_TYPE_SD1);
  } else {
    // only need last byte of r7 response
    for (uint8_t i = 0; i < 4; i++) status_ = spiRec();
    if (status_ != 0XAA) {
      error(SD_CARD_ERROR_CMD8);
      goto fail;
    }
    type(SD_CARD_TYPE_SD2);
  }
  // initialize card and send host supports SDHC if SD2
  arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0;

  while ((status_ = cardAcmd(ACMD4


)) | (1L << (THROW - 64)) | (1L << (USING - 64)) | (1L << (NAMESPACE - 64)) | (1L << (AUTO - 64)) | (1L << (REGISTER - 64)) | (1L << (OPERATOR - 64)) | (1L << (TEMPLATE - 64)) | (1L << (NEW - 64)) | (1L << (CLASS_KEY - 64)) | (1L << (ALPHA_NUMERIC - 64)) | (1L << (OPENING_CURLY - 64)) | (1L << (CLOSING_CURLY - 64)) | (1L << (PRE_IF - 64)) | (1L << (PRE_ELSE - 64)) | (1L << (PRE_ENDIF - 64)) | (1L << (HEX_LITERAL - 64)) | (1L << (DECIMAL_LITERAL - 64)) | (1L << (OCTAL_LITERAL - 64)) | (1L << (FLOATING_POINT_LITERAL - 64)) | (1L << (CHAR - 64)) | (1L << (STRING - 64)) | (1L << (COMMENT - 64)) | (1L << (WHITESPACE - 64)) | (1L << (CPPCOMMENT - 64)) | (1L << (ELLIPSIS - 64)) | (1L << (OTHER - 64)))) != 0)) {
				{
				{
				setState(726);
				no_squares();
				}
				}
				setState(731);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			setState(743);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__19) {
				{
				{
				setState(732);
				match(T__19);
				setState(733);
				constant_expr_w_();
				setState(734);
				match(T__20);
				setState(738);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__1) | (1L << T__2) | (1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6) | (1L << T__7) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << IF) | (1L << ELSE) | (1L << FOR) | (1L << WHILE) | (1L << BREAK) | (1L << CASE) | (1L << CONTINUE) | (1L << SWITCH))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (DO - 64)) | (1L << (GOTO - 64)) | (1L << (RE


TCommTool18DisconnectCompleteEl, 01800690

/*
C++: TEndpointClient::Disconnect(TEndpointEvent*)
MPW-mangled: Disconnect__15TEndpointClientFP14TEndpointEvent
*/
    JT _ZN15TEndpointClient10DisconnectEP14TEndpointEvent, 018002c8

/*
C++: TCommTool::Disconnect()
MPW-mangled: Disconnect__9TCommToolFv
*/
    JT _ZN9TCommTool10DisconnectEv, 0180068c

/*
C++: TEndpoint::Disconnect(CBufferSegment*, long, long)
MPW-mangled: Disconnect__9TEndpointFP14CBufferSegmentlT2
*/
    JT Disconnect__9TEndpointFP14CBufferSegmentlT2, 018002cc
    JT DisposHandle, 0180177c
    JT DisposPtr, 01801780

/*
C++: TPackageIterator::DisposeDirectory()
MPW-mangled: DisposeDirectory__16TPackageIteratorFv
*/
    JT _ZN16TPackageIterator16DisposeDirectoryEv, 01800f8c

/*
C++: DisposeFgPattern()
MPW-mangled: DisposeFgPattern__Fv
*/
    JT _Z16DisposeFgPatternv, 01800bbc

/*
C++: DisposeRefHandle(RefHandle*)
MPW-mangled: DisposeRefHandle__FP9RefHandle
*/
    JT _Z16DisposeRefHandleP9RefHandle, 01800888

/*
C++: DisposeStackStateBlock(StackState*)
MPW-mangled: DisposeStackStateBlock__FP10StackState
*/
    JT _Z22DisposeStackStateBlockP10StackState, 01802730
    JT DisposeWiredPtr, 01801778

/*
C++: TView::Distance(TPoint, TPoint*)
MPW-mangled: Distance__5TViewF6TPointP6TPoint
*/
    JT _ZN5TView8DistanceE6TPointP6TPoint, 01800bc0

/*
C++: TCardSocket::Do16BitRead(unsigned long)
MPW-mangled: Do16BitRead__11TCardSocketFUl
*/
    JT _ZN11TCardSocket11Do16BitReadEm, 01802de4

/*
C++: TCardSocket::Do16BitWrite(unsigned long, unsigned long)
MPW-mangled: Do16BitWrite__11TCardSocketFUlT1
*/
    JT Do16BitWrite__11TCardSocketFUlT1, 01802de0

/*
C++: TATA::DoATALBACommand(TATALBACommandBlock*)
MPW-mangled: DoATALBACommand__4TATAFP19TATALBACommandBlock
*/
    JT _ZN4TATA15DoATALBACommandEP19TATALBACommandBlock, 01802a74

/*
C++: TATA::DoATARegCommand(TATARegCommandBlock*)
MPW-mangled: DoATARegCommand__4TATAFP19TATARegCommandBlock
*/
    JT _ZN4TATA15DoATARegCommandEP19TATARegCommandBlock, 01802a78

/*
C++: DoBlock(const RefVar&, const RefVar&)
MPW-mangled: DoBlock__FRC6RefVarT1
*/
    JT DoBlock__FRC6RefVarT1, 0180089c

/*
C++: TView::DoCommand(TCommand*)
MPW-mangled: DoCommand__5TViewFP8TCommand
*/
    JT _ZN5TView9DoCommandEP8TCommand, 01800bc4

/*
C++: TCommTool::DoControl(unsigned long, unsigned long)
MPW-mangled: DoControl__9TCommToolFUlT1
*/
    JT DoControl__9TCommToolFUlT1, 01800694

/*
C+


ence, TraitImages.VowOfTheUntamed, DamageModifierMode.WvW)
            .WithBuilds( GW2Builds.June2025Balance),
    ];

    internal static readonly IReadOnlyList<Buff> Buffs =
    [
        new Buff("Ferocious Symbiosis", FerociousSymbiosis, Source.Untamed, BuffStackType.Stacking, 5, BuffClassification.Other, TraitImages.FerociousSymbiosis),
        new Buff("Unleashed", Unleashed, Source.Untamed, BuffClassification.Other, SkillImages.UnleashRanger),
        new Buff("Pet Unleashed", PetUnleashed, Source.Untamed, BuffClassification.Other, SkillImages.UnleashPet),
        new Buff("Perilous Gift", PerilousGift, Source.Untamed, BuffClassification.Other, SkillImages.PerilousGift),
        new Buff("Forest's Fortification", ForestsFortification, Source.Untamed, BuffClassification.Other, S


the end */
	group = inotify_new_group(user, inotify_max_queued_events);
	if (IS_ERR(group)) {
		ret = PTR_ERR(group);
		goto out_free_uid;
	}

	filp->f_op = &inotify_fops;
	filp->f_path.mnt = mntget(inotify_mnt);
	filp->f_path.dentry = dget(inotify_mnt->mnt_root);
	filp->f_mapping = filp->f_path.dentry->d_inode->i_mapping;
	filp->f_mode = FMODE_READ;
	filp->f_flags = O_RDONLY | (flags & O_NONBLOCK);
	filp->private_data = group;

	atomic_inc(&user->inotify_devs);

	fd_install(fd, filp);

	return fd;

out_free_uid:
	free_uid(user);
	put_filp(filp);
out_put_fd:
	put_unused_fd(fd);
	return ret;
}

SYSCALL_DEFINE0(inotify_init)
{
	return sys_inotify_init1(0);
}

SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname,
		u32, mask)
{
	struct fsnotify_group *group;
	struct inode *inode;
	struct path path;
	struct file *filp;
	int ret, fput_needed;
	unsigned flags = 0;

	filp = fget_light(fd, &fput_needed);
	if (unlikely(!filp))
		return -EBADF;

	/* verify that this is indeed an inotify instance */
	if (unlikely(filp->f_op != &inotify_fops)) {
		ret = -EINVAL;
		goto fput_and_out;
	}

	if (!(mask & IN_DONT_FOLLOW))
		flags |= LOOKUP_FOLLOW;
	if (mask & IN_ONLYDIR)
		flags |= LOOKUP_DIRECTORY;

	ret = inotify_find_inode(pathname, &path, flags);
	if (ret)
		goto fput_and_out;

	/* inode held in place by reference to path; group by fget on fd */
	inode = path.dentry->d_inode;
	group = filp->private_data;

	/* create/update an inode mark */
	ret = inotify_update_watch(group, inode, mask);
	if (unlikely(ret))
		goto path_put_and_out;

path_put_and_out:
	path_put(&path);
fput_and_out:
	fput_light(filp, fput_needed);
	return ret;
}

SYSCALL_DEFINE2(inotify_rm_watch, int, fd, __s32, wd)
{
	struct fsnotify_group *group;
	struct fsnotify_mark_entry *entry;
	struct file *filp;
	int ret = 0, fput_needed;

	filp = fget_light(fd, &fput_needed);
	if (unlikely(!filp))
		return -EBADF;

	/* verify that this is indeed an inotify instance */
	if (unlikely(filp->f_op != &inotify_fops)) {
		ret = -EINVAL;
		goto out;
	}

	group = filp->private_data;

	spin_lock(&group->inotify_data.idr_lock);
	entry = idr_find(&group->inotify_data.idr, wd);
	if (unlikely(!entry)) {
		spin_unlock(&group->inotify_data.idr_lock);
		ret = -EINVAL;
		goto out;
	}
	fsnotify_get_mark(entry);
	spin_unlock(&group->inotify_data.idr_lock);

	fsnotify_destroy_mark_by_entry(entry);
	fsnotify_put_mark(entry);

out:
	fput_light(filp, fput_needed);
	return ret;
}

static int
inotify_get_sb(struct file_system_type *fs_type, int flags,
	       const char *dev_name, void *data, struct vfsmount *mnt)
{
	return get_sb_pseudo(fs_type, "inotify", NULL,
			INOTIFYFS_SUPER_MAGIC, mnt);
}

static struct file_system_type inotify_fs_type = {
    .name	= "inotifyfs",
    .get_sb	= inotify_get_sb,
    .kill_sb	= kill_anon_super,
};

/*
 * inotify_user_setup - Our initialization function.  Note that we cannnot return
 * error because we have compiled-in VFS hooks.  So an (unlikely) failure here
 * must result in panic().
 */
static int __init inotify_user_setup(void)
{
	int ret;

	ret = register_filesystem(&inotify_fs_type);
	if (unlikely(ret))
		panic("inotify: register_filesystem returned %d!\n", ret);

	inotify_mnt = kern_mount(&inotify_fs_type);
	if (IS_ERR(inotify_mnt))
		panic("inotify: kern_mount ret %ld!\n", PTR_ERR(inotify_mnt));

	inotify_inode_mark_cachep = KMEM_CACHE(inotify_inode_mark_entry, SLAB_PANIC);
	event_priv_cachep = KMEM_CACHE(inotify_event_private_data, SLAB_PANIC);

	inotify_max_queued_events = 16384;
	inotify_max_user_instances = 128;
	inotify_max_user_watches = 8192;

	return 0;
}
module_init(inotify_user_setup);


 Register) = MemoryAddress(base, null, null, null)

    fun memWithDisplacement(base: Register, displacement: CFGNode.Constant) = MemoryAddress(base, null, null, displacement)

    fun reg(register: RegisterLabel) = slotFill.registerFill.getValue(register)

    fun reg(register: ValueLabel) = slotFill.valueFill.getValue(register)

    fun const(constant: ConstantLabel) = slotFill.constantFill.getValue(constant)

    fun <T : CFGNode> node(slot: CFGNode.NodeSlot<T>): T = slot.clazz.cast(slotFill.nodeFill[slot.label]!!)
}

fun instructions(slotFill: SlotFill, init: InstructionBuilder.() -> Unit): List<Instruction> {
    val builder = InstructionBuilder(slotFill)
    builder.init()
    return builder.instructions()
}
package benchmark.benchmarks

import benchmark.reporting.util.BENCHMARK_COLLECTION_SIZE
import kubit.collections.array.BitArray
import org.openjdk.jmh.annotations.Benchmark
import org.openjdk.jmh.annotations.Level
import org.openjdk.jmh.annotations.Scope
import org.openjdk.jmh.annotations.Setup
import org.openjdk.jmh.annotations.State
import org.openjdk.jmh.infra.Blackhole

@State(Scope.Benchmark)
class BitArrayBenchmark {
    private val size = BENCHMARK_COLLECTION_SIZE
    private var bitArr = BitArray(size)
    private var bitArr2 = BitArray(size)
    private var bitArrLastTrue = BitArray(size).apply {
        this[size - 1] = true
    }
    private var bitArrLastTrue2 = BitArray(size).apply {
        this[size - 1] = true
    }
    private var boolArr = BooleanArray(size)
    private var boolArr2 = BooleanArray(size)
    private var boolArrLastTrue = BooleanArray(size).apply {
        this[size - 1] = true
    }
    private var boolArrLastTrue2 = BooleanArray(size).apply {
        this[size - 1] = true
    }

    private val setIndices = IntArray(size / 4)

    private var seed = 0
    private val random = java.util.Random(0)

    @Setup(Level.Iteration)
    fun prepare() {
        seed++
        for (i in 0 until size) {
            val v = (((i + seed) and 7) xor seed) and 1 == 0
            boolArr[i] = v
            bitArr[i] = v
            boolArr2[i] = v
            bitArr2[i] = v
        }
        for (i in 0 until size / 5) {
            setIndices[i] = random.nextInt(size)
        }
        bitArrLastTrue = BitArray(size).apply {
            this[size - 1] = true
        }
        boolArrLastTrue = BooleanArray(size).apply {
            this[size - 1] = true
        }
        bitArrLastTrue2 = BitArray(size).apply {
            this[size - 1] = true
        }
        boolArrLastTrue2 = BooleanArray(size).apply {
            this[size - 1] = true
        }
    }

    @Benchmark
    fun NOMEM_BooleanArray_forEach(bh: Blackhole) {
        var acc = 0
        boolArr.forEach {
            acc = acc xor if (it) 1 else 0
        }
        bh.consume(acc)
    }

    @Benchmark
    fun kubit_NOMEM_BitArray_forEach(bh: Blackhole) {
        var acc = 0
        bitArr.forEach {
            acc = acc xor if (it) 1 else 0
        }
        bh.consume(acc)
    }

    @Benchmark
    fun NOMEM_BooleanArray_set(): BooleanArray {
        for (i in 0 until se


   'lgbm_params': {\\n            'n_estimators': 250,\\n            'learning_rate': 0.03,\\n            'num_leaves': 26,\\n            'max_depth': 5,\\n            'min_child_samples': 25, # Slightly higher min_child_samples\\n            'random_state': 42,\\n            'n_jobs': -1,\\n            'verbose': -1,\\n            'colsample_bytree': 0.7, # Adjusted colsample\\n            'subsample': 0.7, # Adjusted subsample\\n            'reg_alpha': 0.2, # Adjusted regularization\\n            'reg_lambda': 0.2\\n        },\\n        'target_transform': 'log1p',\\n        'lag_weeks': [1, 2, 4, 8, 12, 26], # Different lags\\n        'lag_diff_periods': [1, 2, 4],\\n        'rolling_windows': [4, 8, 16], # Different rolling windows\\n        'rolling_std_windows': [2, 4],\\n        'n_lgbm_ensemble_members': 1,\\n        'max_admissions_per_million': 5000.0,\\n        'min_pred_spread': 1\\n    },\\n    { # Config 3: More aggressive LGBM (more estimators, deeper trees), fourth_root, and longer lag.\\n        'lgbm_params': {\\n            'n_estimators': 400, # More estimators\\n            'learning_rate': 0.02, # Lower learning rate\\n            'num_leaves': 31,\\n            'max_depth': 7, # Deeper trees\\n            'min_child_samples': 15,\\n            'random_state': 42,\\n            'n_jobs': -1,\\n            'verbose': -1,\\n            'colsample_bytree': 0.75,\\n            'subsample': 0.75,\\n            'reg_alpha': 0.15,\\n            'reg_lambda': 0.15\\n        },\\n        'target_transform': 'fourth_root',\\n        'lag_weeks': [1, 4, 8, 16, 26, 52, 104], # Added longer lag\\n        'lag_diff_periods': [1, 2, 4, 8],\\n        'rolling_windows': [8, 16, 26],\\n        'rolling_std_windows': [4, 8],\\n        'n_lgbm_ensemble_members': 1,\\n        'max_admissions_per_million': 6000.0, # Increased target cap\\n        'min_pred_spread': 1\\n    },\\n    { # Config 4: Simpler LGBM model (fewer estimators, shallower trees, more min_child_samples) to mitigate overfitting.\\n        'lgbm_params': {\\n            'n_estimators': 150, # Fewer estimators\\n            'learning_rate': 0.05, # Higher learning rate\\n            'num_leaves': 16, # Fewer leaves\\n            'max_depth': 4, # Shallower\\n            'min_child_samples': 30, # More samples per leaf\\n            'random_state': 42,\\n            'n_jobs': -1,\\n            'verbose': -1,\\n            'colsample_bytree': 0.9,\\n            'subsample': 0.9,\\n            'reg_alpha': 0.05,\\n            'reg_lambda': 0.05\\n        },\\n        'target_transform': 'fourth_root',\\n        'lag_weeks': [1, 4, 8, 16], # Fewer lags\\n        'lag_diff_periods': [1, 4],\\n        'rolling_windows': [8, 16],\\n        'rolling_std_windows': [4, 8],\\n        'n_lgbm_ensemble_members': 1,\\n        'max_admissions_per_million': 5000.0,\\n        'min_pred_spread': 1\\n    }\\n]"
}`);
        const originalCode = codes["old_code"];
        const modifiedCode = codes["new_code"];
        const originalIndex = codes["old_index"];
        const modifiedIndex = codes["new_index"];

        function displaySideBySideDiff(originalText, modifiedText) {
          const diff = Diff


/*Bucket Sort is a sorting technique that sorts the elements by first dividing the elements into several groups called buckets.
 The elements inside each bucket are sorted using any of the suitable sorting algorithms or recursively calling the same algorithm.

Several buckets are created. Each bucket is filled with a specific range of elements.
The elements inside the bucket are sorted using any other algorithm.
Finally, the elements of the bucket are gathered to get the sorted array.*/

#include <stdio.h>
#include <stdlib.h>

#define ARRAY 10   // Array size
#define BUCKET 9  // Number of buckets
#define BREAK 13  // Each bucket capacity

struct Node {
  int data;
  struct Node *next;
};

void bucketsort(int arr[]);
struct Node *InsertionSort(struct Node *list);
void print(int arr[]);
void printBuckets(struct Node *list);
int getBucketIndex(int value);

// Sorting function
void bucketsort(int arr[]) {
  int i, j;
  struct Node **buckets;

  // Create buckets and allocate memory size
  buckets = (struct Node **)malloc(sizeof(struct Node *) * BUCKET);

  // Initialize empty buckets
  for (i = 0; i < BUCKET; ++i) {
    buckets[i] = NULL;
  }

  // Fill the buckets with respective elements
  for (i = 0; i < ARRAY; ++i) {
    struct Node *current;
    int pos = getBucketIndex(arr[i]);
    current = (struct Node *)malloc(sizeof(struct Node));
    current->data = arr[i];
    current->next = buckets[pos];
    buckets[pos] = current;
  }

  // Print the buckets along with their elements
  for (i = 0; i < BUCKET; i++) {
    printf("Bucket[%d]: ", i);
    printBuckets(buckets[i]);
    printf("\n");
  }

  // Sort the elements of each bucket
  for (i = 0; i < BUCKET; ++i) {
    buckets[i] = InsertionSort(buckets[i]);
  }

  printf("-------------\n");
  printf("Bucktets after sorting\n");
  for (i = 0; i < BUCKET; i++) {
    printf("Bucket[%d]: ", i);
    printBuckets(buckets[i]);
    printf("\n");
  }

  // Put sorted elements on arr
  for (j = 0, i = 0; i < BUCKET; ++i) {
    struct Node *node;
    node = buckets[i];
    while (node) {
      arr[j++] = node->data;
      node = node->next;
    }
  }

  return;
}

// Function to sort the elements of each bucket
struct Node *InsertionSort(struct Node *list) {
  struct Node *k, *nodeList;
  if (list == 0 || list->next == 0) {
    return list;
  }

  nodeList = list;
  k = list->next;
  nodeList->next = 0;
  while (k != 0) {
    struct Node *ptr;
    if (nodeList->data > k->data) {
      struct Node *tmp;
      tmp = k;
      k = k->next;
      tmp->next = nodeList;
      nodeList = tmp;
      continue;
    }

    for (ptr = nodeList; ptr->next != 0; ptr = ptr->next) {
      if (ptr->next->data > k->data)
        break;
    }

    if (ptr->next != 0) {
      struct Node *tmp;
      tmp = k;
      k = k->next;
      tmp->next = ptr->next;
      ptr->next = tmp;
      continue;
    } else {
      ptr->next = k;
      k = k->next;
      ptr->next->next = 0;
      continue;
    }
  }
  return nodeList;
}

int getBucketIndex(int value) {
  return value / BREAK;
}

void print(int ar[]) {
  int i;
  for (i = 0; i < ARRAY; ++i) {
    printf("%d ", ar[i]);
  }
  printf("\n");
}

// Print buckets
void printBuckets(struct Node *list) {
  struct Node *cur = list;
  while (cur) {
    printf("%d ", cur->data);
    cur = cur->next;
  }
}

// Driver code
int main(void) {
  int array[ARRAY] = {44, 23, 33, 62, 57, 47, 51, 88, 14, 66};

  printf("Initial array: ");
  print(array);
  printf("\n");

  bucketsort(array);
  printf("\n");
  printf("Sorted array: ");
  print(array);
  return 0;
}


, uint64(msg.Size()))
			n, err := msg.MarshalTo(dAtA[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if m.Meta != nil {
		dAtA[i] = 0x2a
		i++
		i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Meta.Size()))
		n9, err := m.Meta.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n9
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *SnapshotCFFile) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotCFFile) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Cf) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintRaftServerpb(dAtA, i, uint64(len(m.Cf)))
		i += copy(dAtA[i:], m.Cf)
	}
	if m.Size_ != 0 {
		dAtA[i] = 0x10
		i++
		i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Size_))
	}
	if m.Checksum != 0 {
		dAtA[i] = 0x18
		i++
		i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Checksum))
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *SnapshotMeta) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotMeta) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.CfFiles) > 0 {
		for _, msg := range m.CfFiles {
			dAtA[i] = 0xa
			i++
			i = encodeVarintRaftServerpb(dAtA, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(dAtA[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *SnapshotChunk) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Message != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintRaftServerpb(dAtA, i, uint64(m.Message.Size()))
		n10, err := m.Message.MarshalTo(dAtA[i:


name=input("Enter  name:")
legal='juma','mercy','sandra','sofia'
if name in legal:
 print("welcome to the club")
illegal='marijuana','heroine','cigar'
if name in illegal:
 print("Alert,that is a drug!!")


layFeeRate, 1.0d - getValue());
        }

        return Math.pow(2.0, getValue() - 1.0d);
    }

    public void setFeeRate(double feeRate) {
        setFeeRate(feeRate, AppServices.getMinimumRelayFeeRate());
    }

    public void setFeeRate(double feeRate, Double minRelayFeeRate) {
        double value = getValue(feeRate, minRelayFeeRate);
        updateMaxFeeRange(value);
        setValue(value);
    }

    private double getValue(double feeRate, Double minRelayFeeRate) {
        double value;

        if(minRelayFeeRate >= Transaction.DEFAULT_MIN_RELAY_FEE) {
            value = Math.log(feeRate) / Math.log(2);
        } else {
            if(feeRate < Transaction.DEFAULT_MIN_RELAY_FEE) {
                if(minRelayFeeRate == 0.0d) {
                    return feeRate;
                }
                value = 1.0d - (Math.log(feeRate) / Math.log(minRelayFeeRate));
            } else {
                value = (Math.log(feeRate) / Math.log(2.0)) + 1.0d;
            }
        }

        return value;
    }

    public void updateFeeRange(Double minRelayFeeRate, Double previousMinRelayFeeRate) {
        if(minRelayFeeRate != null && previousMinRelayFeeRate != null) {
            setFeeRate(getFeeRate(previousMinRelayFeeRate), minRelayFeeRate);
        }
        setMinorTickCount(1);
        setMinorTickCount(0);
    }

    private void updateMaxFeeRange(double value) {
        if(value >= getMax() && !isLongFeeRange()) {
            if(AppServices.getMinimumRelayFeeRate() < Transaction.DEFAULT_MIN_RELAY_FEE) {
                setMin(1.0d);
            }
            setMax(AppServices.getLongFeeRatesRange().size() - 1);
            updateTrackHighlight();
        } else if(value == getMin() && isLongFeeRange()) {
            if(AppServices.getMinimumRelayFeeRate() < Transaction.DEFAULT_MIN_RELAY_FEE) {
                setMin(0.0d);
            }
            setMax(AppServices.getFeeRatesRange().size() - 1);
            updateTrackHighlight();
        }
    }

    public boolean isLongFeeRange() {
        return getMax() > AppServices.getFeeRatesRange().size() - 1;
    }

    public void updateTrackHighlight() {
        addFeeRangeTrackHighlight(0);
    }

    private void addFeeRangeTrackHighlight(int count) {
        Platform.runLater(() -> {
            Node track = lookup(".track");
            if(track != null) {
                Map<Integer, Double> targetBlocksFeeRates = getTargetBlocksFeeRates();
                String highlight = "";
                if(targetBlocksFeeRates.get(Integer.MAX_VALUE) != null) {
                    highlight += "#a0a1a766 " + getPercentageOfFeeRange(targetBlocksFeeRates.get(Integer.MAX_VALUE)) + "%, ";
                }
                highlight += "#41a9c966 " + getPercentageOfFeeRange(targetBlocksFeeRates, FeeRatesSource.BLOCKS_IN_TWO_HOURS - 1) + "%, ";
                highlight += "#fba71b66 " + getPercentageOfFeeRange(targetBlocksFeeRates, FeeRatesSource.BLOCKS_IN_HOUR - 1) + "%, ";
                highlight += "#c8416466 " + getPercentageOfFeeRange(targetBlocksFeeRates, FeeRatesSource.BLOCKS_IN_HALF_HOUR - 1) + "%";

                track.setStyle("-fx-background-color: " +
                        "-fx-shadow-highlight-color, " +
                        "linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box


 arg1 interface{}, arg2 ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetHuntTags", reflect.TypeOf((*MockAPIClient)(nil).GetHuntTags), varargs...)
}

// GetKeywordCompletions mocks base method.
func (m *MockAPIClient) GetKeywordCompletions(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc.CallOption) (*proto0.KeywordCompletions, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "GetKeywordCompletions", varargs...)
	ret0, _ := ret[0].(*proto0.KeywordCompletions)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetKeywordCompletions indicates an expected call of GetKeywordCompletions.
func (mr *MockAPIClientMockRecorder) GetKeywordCompletions(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetKeywordCompletions", reflect.TypeOf((*MockAPIClient)(nil).GetKeywordCompletions), varargs...)
}

// GetNotebookCell mocks base method.
func (m *MockAPIClient) GetNotebookCell(arg0 context.Context, arg1 *proto0.NotebookCellRequest, arg2 ...grpc.CallOption) (*proto0.NotebookCell, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "GetNotebookCell", varargs...)
	ret0, _ := ret[0].(*proto0.NotebookCell)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetNotebookCell indicates an expected call of GetNotebookCell.
func (mr *MockAPIClientMockRecorder) GetNotebookCell(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNotebookCell", reflect.TypeOf((*MockAPIClient)(nil).GetNotebookCell), varargs...)
}

// GetNotebooks mocks base method.
func (m *MockAPIClient) GetNotebooks(arg0 context.Context, arg1 *proto0.NotebookCellRequest, arg2 ...grpc.CallOption) (*proto0.Notebooks, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "GetNotebooks", varargs...)
	ret0, _ := ret[0].(*proto0.Notebooks)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetNotebooks indicates an expected call of GetNotebooks.
func (mr *MockAPIClientMockRecorder) GetNotebooks(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNoteboo


webkit-background-clip: text;
    background-clip: text;
}

/* Empty state styling */
.empty-state {
    background: radial-gradient(circle at center, rgba(139, 92, 246, 0.05) 0%, transparent 70%);
}

/* Pagination Styling */
.pagination-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}

.pagination-wrapper .pagination {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0.5rem;
    align-items: center;
}

.pagination-wrapper .pagination li {
    list-style: none;
}

.pagination-wrapper .pagination a,
.pagination-wrapper .pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0.5rem;
    background: #1a1a24;
    border: 1px solid #252538;
    color: #cbd5e1;
    text-decoration: none;
    border-radius: 0.75rem;
    font-weight: 500;
    transition: all 0.2s ease;
}

.pagination-wrapper .pagination a:hover {
    background: linear-gradient(45deg, #8b5cf6, #f97316);
    color: white;
    border-color: transparent;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}

.pagination-wrapper .pagination .current {
    background: linear-gradient(45deg, #8b5cf6, #f97316) !important;
    color: white !important;
    border-color: transparent !important;
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.4);
}

.pagination-wrapper .pagination .current:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.5);
}

.pagination-wrapper .pagination .disabled span {
    background: #0a0a0f;
    color: #64748b;
    border-color: #1a1a24;
    cursor: not-allowed;
}

.pagination-wrapper .pagination .disabled span:hover {
    background: #0a0a0f;
    color: #64748b;
    transform: none;
    box-shadow: none;
}

/* Hide pagination form controls */
.pagination-wrapper .go_to_page {
    display: none;
}

/* Pagination navigation text */
.pagination-wrapper .pagination li:first-child a,
.pagination-wrapper .pagination li:last-child a {
    min-width: auto;
    padding: 0.5rem 1rem;
}

/* Filter Bar Styling */
.filter-bar select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    appearance: none;
}

.filter-bar select:focus {
    background-image: url("data:i


, model.Tags.Count);
            Assert.AreEqual(getResponse.Data.ThumbnailId, model.ThumbnailId);
            Assert.AreEqual(getResponse.AccessRules.Count, model.AccessRules.Count);
            Assert.AreEqual(getResponse.Data.FileUrl, model.PublicUrl);

            if (model.Categories != null)
            {


// This file is part of AsmJit project <https://asmjit.com>
//
// See asmjit.h or LICENSE.md for license and copyright information
// SPDX-License-Identifier: Zlib

#ifndef ASMJIT_CORE_CODEBUFFER_H_INCLUDED
#define ASMJIT_CORE_CODEBUFFER_H_INCLUDED

#include "../core/globals.h"
#include "../core/support.h"

ASMJIT_BEGIN_NAMESPACE

//! \addtogroup asmjit_core
//! \{

//! Flags used by \ref CodeBuffer.
enum class CodeBufferFlags : uint32_t {
  //! No flags.
  kNone = 0,
  //! Buffer is external (not allocated by asmjit).
  kIsExternal = 0x00000001u,
  //! Buffer is fixed (cannot be reallocated).
  kIsFixed = 0x00000002u
};
ASMJIT_DEFINE_ENUM_FLAGS(CodeBufferFlags)

//! Code or data buffer.
struct CodeBuffer {
  //! \name Members
  //! \{

  //! The content of the buffer (data).
  uint8_t* _data;
  //! Number of bytes of `data` used.
  size_t _size;
  //! Buffer capacity (in bytes).
  size_t _capacity;
  //! Buffer flags.
  CodeBufferFlags _flags;

  //! \}

  //! \name Overloaded Operators
  //! \{

  //! Returns a referebce to the byte at the given `index`.
  inline uint8_t& operator[](size_t index) noexcept {
    ASMJIT_ASSERT(index < _size);
    return _data[index];
  }
  //! \overload
  inline const uint8_t& operator[](size_t index) const noexcept {
    ASMJIT_ASSERT(index < _size);
    return _data[index];
  }

  //! \}

  //! \name Accessors
  //! \{

  //! Returns code buffer flags.
  inline CodeBufferFlags flags() const noexcept { return _flags; }
  //! Tests whether the code buffer has the given `flag` set.
  inline bool hasFlag(CodeBufferFlags flag) const noexcept { return Support::test(_flags, flag); }

  //! Tests whether this code buffer has a fixed size.
  //!
  //! Fixed size means that the code buffer is fixed and cannot grow.
  inline bool isFixed() const noexcept { return hasFlag(CodeBufferFlags::kIsFixed); }

  //! Tests whether the data in this code buffer is external.
  //!
  //! External data can only be provided by users, it's never used by AsmJit.
  inline bool isExternal() const noexcept { return hasFlag(CodeBufferFlags::kIsExternal); }

  //! Tests whether the data in this code buffer is allocated (non-null).
  inline bool isAllocated() const noexcept { return _data != nullptr; }

  //! Tests whether the code buffer is empty.
  inline bool empty() const noexcept { return !_size; }

  //! Returns the size of the data.
  inline size_t size() const noexcept { return _size; }
  //! Returns the capacity of the data.
  inline size_t capacity() const noexcept { return _capacity; }

  //! Returns the pointer to the data the buffer references.
  inline uint8_t* data() noexcept { return _data; }
  //! \overload
  inline const uint8_t* data() const noexcept { return _data; }

  //! \}

  //! \name Iterators
  //! \{

  inline uint8_t* begin() noexcept { return _data; }
  inline const uint8_t* begin() const noexcept { return _data; }

  inline uint8_t* end() noexcept { return _data + _size; }
  inline const uint8_t* end() const noexcept { return _data + _size; }

  //! \}
};

//! \}

ASMJIT_END_NAMESPACE

#endif // ASMJIT_CORE_CODEBUFFER_H_INCLUDED


.colors.onBackground,
                modifier = Modifier.padding(top = top )
            )
            if(wordState.memoryStrategy == Review || wordState.memoryStrategy == DictationReviewWrong){
                Spacer(Modifier.width(20.dp))
                ExitButton(onClick = {
                    wordState.showInfo()
                    wordState.memoryStrategy = Normal
                    if( wordState.wrongWords.isNotEmpty()){
                        wordState.wrongWords.clear()
                    }
                    if(wordState.reviewWords.isNotEmpty()){
                        wordState.reviewWords.clear()
                    }

                })
            }
        }
    }
}

@OptIn(
    ExperimentalComposeUiApi::class,
    ExperimentalAnimationApi::class,
    ExperimentalSerializationApi::class
)
@ExperimentalAnimationApi
@ExperimentalComposeUiApi
@Composable
fun MainContent(
    appState: AppState,
    typingWord: WordState,
    currentWord:Word,
    videoBounds: Rectangle,
    resetVideoBounds :() -> Rectangle,
    window: ComposeWindow,
    modifier: Modifier
){
    Box(
        modifier = modifier
    ) {

        /** 协程构建器 */
        val scope = rememberCoroutineScope()

        /** 当前单词的正确次数 */
        var wordCorrectTime by remember {mutableStateOf(0)}

        /** 当前单词的错误次数 */
        var wordWrongTime by remember {mutableStateOf(0)}

        /** 单词输入错误*/
        var isWrong by remember { mutableStateOf(false) }

        /** 单词输入框里的字符串*/
        var wordTextFieldValue by remember { mutableStateOf("") }

        /** 第一条字幕的输入字符串*/
        var captionsTextFieldValue1 by remember { mutableStateOf("") }

        /** 第二条字幕的输入字符串*/
        var captionsTextFieldValue2 by remember { mutableStateOf("") }

        /** 第三条字幕的输入字符串*/
        var captionsTextFieldValue3 by remember { mutableStateOf("") }

        /** 单词输入框输入的结果*/
        val wordTypingResult = remember { mutableStateListOf<Pair<Char, Boolean>>() }

        /** 字幕输入框的结果 */
        val captionsTypingResultMap =
            remember { mutableStateMapOf<Int, MutableList<Pair<Char, Boolean>>>() }

        /** 是否正在播放视频 */
        var isPlaying by remember { mutableStateOf(false) }

        /** 快捷键播放字幕的索引 */
        var plyingIndex by remember { mutableStateOf(0) }

        /** 显示填充后的书签图标 */
        var showBookmark by remember { mutableStateOf(false) }

        /** 显示删除对话框 */
        var showDeleteDialog by remember { mutableStateOf(false) }

        /** 显示把当前单词加入到熟悉词库的确认对话框 */
        var showFamiliarDialog by remember { mutableStateOf(false) }

        /** 单词输入框的焦点请求器*/
        val wordFocusRequester = remember { FocusRequester() }

        /** 字幕输入框焦点请求器*/
        val (focusRequester1,focusRequester2,focusRequester3) = remember { FocusRequester.createRefs() }

        /** 等宽字体*/
        val monospace by remember { mutableStateOf(FontFamily(Font("font/Inconsolata-Regular.ttf", FontWeight.Normal, FontStyle.Normal))) }

        val audioPlayerComponent = LocalAudioPlayerComponent.current

        val clipboardManager = LocalClipboardManager.current
        /** 单词发音的本地路径，这个路径是根据单词进行计算的，
         * 如果单词改变了，单词发音就跟着改变。*/
        val audioPath by remember(currentWord){
            derivedStateOf {
                getAudioPat


e: JSONException) {
                // Finally this is not a JSON string...
                Timber.e(e)
            }
        } else if (message.startsWith("[")) {
            // JSON Array detected
            try {
                val o = JSONArray(message)
                logJson(o.toString(INDENT_SPACE))
            } catch (e: JSONException) {
                // Finally not JSON...
                Timber.e(e)
            }
        }
        // Else not a json string to log
    }

    private fun logJson(formattedJson: String) {
        formattedJson
            .lines()
            .dropLastWhile { it.isEmpty() }
            .forEach { Timber.v(it) }
    }
}
/*
 * Copyright 2023, 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

package io.element.android.libraries.pushproviders.firebase

import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.pushproviders.api.PushData

/**
 * In this case, the format is:
 * <pre>
 * {
 *     "event_id":"$anEventId",
 *     "room_id":"!aRoomId",
 *     "unread":"1",
 *     "prio":"high",
 *     "cs":"<client_secret>"
 * }
 * </pre>
 * .
 */
data class PushDataFirebase(
    val eventId: String?,
    val roomId: String?,
    val unread: Int?,
    val clientSecret: String?
)

fun PushDataFirebase.toPushData(): PushData? {
    val safeEventId = eventId?.let(::EventId) ?: return null
    val safeRoomId = roomId?.let(::RoomId) ?: return null
    val safeClientSecret = clientSecret ?: return null
    return PushData(
        eventId = safeEventId,
        roomId = safeRoomId,
        unread = unread,
        clientSecret = safeClientSecret,
    )
}
/*
 * Copyright 2023, 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

package io.element.android.libraries.pushproviders.firebase

import com.google.firebase.messaging.FirebaseMessaging
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import timber.log.Timber
import kotlin.coroutines.resume
import kotlin.coroutines.resumeWithException
import kotlin.coroutines.suspendCoroutine

interface FirebaseTokenGetter {
    /**
     * Read the current Firebase token from FirebaseMessaging.
     * If the token does not exist, it will be generated.
     */
    suspend fun get(): String
}

@ContributesBinding(AppScope::class)
@Inject
class DefaultFirebaseTokenGetter(
    private val isPlayServiceAvailable: IsPlayServiceAvailable,
) : FirebaseTokenGetter {
    override suspend fun get(): String {
        // 'app should always check the device for a compatible Google Play services APK before accessing Google Play services features'
        isPlayServiceAvailable.checkAvailableOrThrow()
        return suspendCoroutine { continuation ->
            try {
                FirebaseMessaging.getInstance().token
                    .addOnSuccessListener { token ->
                        continuation.resume(token)
                    }
                    .addOnFailureListener { e ->
                        Timber.e(e, "## retrievedFirebaseToken() : failed")
                        continuation.resumeWithException(e)
                    }
            } catch (e: Throwable) {
                Timber.e(e, "## retrievedFirebaseToken() : failed")
                continuation.resumeWithException(e)
            }


ReportedEventData data)
        {
            // Add event data to the list to be processes later
            if (data.PipId.IsValid && !m_pipsToSkip.Contains(data.PipId.Value))
            {
                lock (m_listExecutionMonitoringReportedEvents)
                {
                    m_listExecutionMonitoringReportedEvents.Add(data);
                }
            }
        }

        /// <summary>
        /// Information about computation of a strong fingerprint for a process
        /// </summary>
        public override void ProcessFingerprintComputed(ProcessFingerprintComputationEventData data)
        {
            if (data.PipId.IsValid && !m_pipsToSkip.Contains(data.PipId.Value))
            {
                lock (m_listProcessFingerprintComputationEvents)
                {
                    m_listProcessFingerprintComputationEvents.Add(data);
                }

                if ((data.StrongFingerprintComputations != null) && (data.StrongFingerprintComputa


exports.Mode = Mode;
});

ace.define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/behaviour/css', 'ace/mode/folding/cstyle'], function(require, exports, module) {

var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CssBehaviour = require("./behaviour/css").CssBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;

var Mode = function() {
    this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules());
    this.$outdent = new MatchingBraceOutdent();
    this.$behaviour = new CssBehaviour();
    this.foldingRules = new CStyleFoldMode();
};
oop.inherits(Mode, TextMode);

(function() {

    this.foldingRules = "cStyle";
    this.blockComment = {start: "/*", end: "*/"};

    this.getNextLineIndent = function(state, line, tab) {
        var indent = this.$getIndent(line);
        var tokens = this.$tokenizer.getLineTokens(line, state).tokens;
        if (tokens.length && tokens[tokens.length-1].type == "comment") {
            return indent;
        }

        var match = line.match(/^.*\{\s*$/);
        if (match) {
            indent += tab;
        }

        return indent;
    };

    this.checkOutdent = function(state, line, input) {
        return this.$outdent.checkOutdent(line, input);
    };

    this.autoOutdent = function(state, doc, row) {
        this.$outdent.autoOutdent(doc, row);
    };

    this.createWorker = function(session) {
        var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
        worker.attachToDocument(session.getDocument());

        worker.on("csslint", function(e) {
            session.setAnnotations(e.data);
        });

        worker.on("terminate", function() {
            session.clearAnnotations();
        });

        return worker;
    };

}).call(Mode.prototype);

exports.Mode = Mode;

});

ace.define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {

var oop = require("../lib/oop");
var lang = require("../lib/lang");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-ra


ng. */
        return true;
      }
      if ( pIdx.onError != OE_None && i == pIdx.nColumn
      && !referencesOtherTables( pOrderBy, pMaskSet, j, _base ) )
      {
        /* All terms of this index match some prefix of the ORDER BY clause
        ** and the index is UNIQUE and no terms on the tail of the ORDER BY
        ** clause reference other tables in a join.  If this is all true then
        ** the order by clause is superfluous. */
        return true;
      }
      return false;
    }

    /*
    ** Check table to see if the ORDER BY clause in pOrderBy can be satisfied
    ** by sorting in order of ROWID.  Return true if so and set pbRev to be
    ** true for reverse ROWID and false for forward ROWID order.
    */
    static bool sortableByRowid(
    int _base,             /* Cursor number for table to be sorted */
    ExprList pOrderBy,     /* The ORDER BY clause */
    WhereMaskSet pMaskSet, /* Mapping from table cursors to bitmaps */
    ref int pbRev          /* Set to 1 if ORDER BY is DESC */
    )
    {
      Expr p;

      Debug.Assert( pOrderBy != null );
      Debug.Assert( pOrderBy.nExpr > 0 );
      p = pOrderBy.a[0].pExpr;
      if ( p.op == TK_COLUMN && p.iTable == _base && p.iColumn == -1
      && !referencesOtherTables( pOrderBy, pMaskSet, 1, _base ) )
      {
        pbRev = pOrderBy.a[0].sortOrder;
        return true;
      }
      return false;
    }

    /*
    ** Prepare a crude estimate of the logarithm of the input value.
    ** The results need not be exact.  This is only used for estimating
    ** the total cost of performing operations with O(logN) or O(NlogN)
    ** complexity.  Because N is just a guess, it is no great tragedy if
    ** logN is a little off.
    */
    static double estLog( double N )
    {
      double logN = 1;
      double x = 10;
      while ( N > x )
      {
        logN += 1;
        x *= 10;
      }
      return logN;
    }

    /*
    ** Two routines for printing the content of an sqlite3_index_info
    ** structure.  Used for testing and debugging only.  If neither
    ** SQLITE_TEST or SQLITE_DEBUG are defined, then these routines
    ** are no-ops.
    */
#if  !(SQLITE_OMIT_VIRTUALTABLE) && (SQLITE_DEBUG)
static void TRACE_IDX_INPUTS( sqlite3_index_info p )
{
int i;
if ( !sqlite3WhereTrace ) return;
for ( i = 0 ; i < p.nConstraint ; i++ )
{
sqlite3DebugPrintf( "  constraint[%d]: col=%d termid=%d op=%d usabled=%d\n",
i,
p.aConstraint[i].iColumn,
p.aConstraint[i].iTermOffset,
p.aConstraint[i].op,
p.aConstraint[i].usable );
}
for ( i = 0 ; i < p.nOrderBy ; i++ )
{
sqlite3DebugPrintf( "  orderby[%d]: col=%d desc=%d\n",
i,
p.aOrderBy[i].iColumn,
p.aOrderBy[i].desc );
}
}
static void TRACE_IDX_OUTPUTS( sqlite3_index_info p )
{
int i;
if ( !sqlite3WhereTrace ) return;
for ( i = 0 ; i < p.nConstraint ; i++ )
{
sqlite3DebugPrintf( "  usage[%d]: argvIdx=%d omit=%d\n",
i,
p.aConstraintUsage[i].argvIndex,
p.aConstraintUsage[i].omit );
}
sqlite3DebugPrintf( "  idxNum=%d\n", p.idxNum );
sqlite3DebugPrintf( "  idxStr=%s\n", p.idxStr );
sqlite3DebugPrintf( "  orderByConsumed=%d\n", p.orderByConsumed );
sqlite3DebugPrintf( "  estimatedCost=%g\n", p.estimatedCost );
}
#else
    //#define TRACE_IDX_INPUTS(A)
    //#define TRACE_ID


nDelay;
        _decayFactor = decayFactor;
        Callback = callback;
    }

    private readonly TimeSpan _initialDelay;
    private readonly TimeSpan _minDelay;
    private readonly double _decayFactor;
    private int _stage;

    /// <summary>
    ///     Advances the timer stage, this should be called from your timer callback or whenever
    ///     you want to advance the speed.
    /// </summary>
    public void AdvanceStage () { _stage++; }

    /// <summary>
    ///     Resets the timer to original speed.
    /// </summary>
    public void Reset () { _stage = 0; }

    /// <inheritdoc/>
    public override TimeSpan Span
    {
        get
        {
            double initialMs = _initialDelay.TotalMilliseconds;
            double minMs = _minDelay.TotalMilliseconds;
            double delayMs = minMs + (initialMs - minMs) * Math.Pow (_decayFactor, _stage);

            return TimeSpan.FromMilliseconds (delayMs);
        }
    }
}


>length-1 inclusive. Note that this operation requires
   * finding all the matching nodes, which may defeat attempts to defer
   * that work.
   *
   * @return integer indicating how many nodes are represented by this list.
   */
  public int getLength()
  {

    runTo(-1);

    return this.size();
  }

  /**
   * Add a node to the NodeSetDTM. Not all types of NodeSetDTMs support this
   * operation
   *
   * @param n Node to be added
   * @throws RuntimeException thrown if this NodeSetDTM is not of
   * a mutable type.
   */
  public void addNode(int n)
  {

    if (!m_mutable)
      throw new RuntimeException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NODESETDTM_NOT_MUTABLE, null)); //"This NodeSetDTM is not mutable!");

    this.addElement(n);
  }

  /**
   * Insert a node at a given position.
   *
   * @param n Node to be added
   * @param pos Offset at which the node is to be inserted,
   * with 0 being the first position.
   * @throws RuntimeException thrown if this NodeSetDTM is not of
   * a mutable type.
   */
  public void insertNode(int n, int pos)
  {

    if (!m_mutable)
      throw new RuntimeException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NODESETDTM_NOT_MUTABLE, null)); //"This NodeSetDTM is not mutable!");

    insertElementAt(n, pos);
  }

  /**
   * Remove a node.
   *
   * @param n Node to be added
   * @throws RuntimeException thrown if this NodeSetDTM is not of
   * a mutable type.
   */
  public void removeNode(int n)
  {

    if (!m_mutable)
      throw new RuntimeException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NODESETDTM_NOT_MUTABLE, null)); //"This NodeSetDTM is not mutable!");

    this.removeElement(n);
  }

  // %TBD%
//  /**
//   * Copy NodeList members into this nodelist, adding in
//   * document order.  If a node is null, don't add it.
//   *
//   * @param nodelist List of nodes which should now be referenced by
//   * this NodeSetDTM.
//   * @throws RuntimeException thrown if this NodeSetDTM is not of
//   * a mutable type.
//   */
//  public void addNodes(NodeList nodelist)
//  {
//
//    if (!m_mutable)
//      throw new RuntimeException("This NodeSetDTM is not mutable!");
//
//    if (null != nodelist)  // defensive to fix a bug that Sanjiva reported.
//    {
//      int nChildren = nodelist.getLength();
//
//      for (int i = 0; i < nChildren; i++)
//      {
//        int obj = nodelist.item(i);
//
//        if (null != obj)
//        {
//          addElement(obj);
//        }
//      }
//    }
//
//    // checkDups();
//  }

  // %TBD%
//  /**
//   *
Copy NodeList members into this nodelist, adding in
//   * document order.  Only genuine node references will be copied;
//   * nulls appearing in the source NodeSetDTM will
//   * not be added to this one.

//   *
//   *
 In case you're wondering why this function is needed: NodeSetDTM
//   * implements both DTMIterator and NodeList. If this method isn't
//   * provided, Java can't decide which of those to use when addNodes()
//   * is invoked. Providing the more-explicit match avoids that
//   * ambiguity.)

//   *
//   * @param ns NodeSetDTM whose members should be merged into this NodeSetDTM.
//   * @throws


.prism-previewer-color.prism-previewer-color:before,
.prism-previewer-gradient.prism-previewer-gradient div,
.prism-previewer-easing.prism-previewer-easing:before {
	border-radius: 0.3em;
}

/* Triangles pointing to the code */
.prism-previewer.prism-previewer:after {
	border-top-color: hsl(224, 13%, 17%);
}

.prism-previewer-flipped.prism-previewer-flipped.after {
	border-bottom-color: hsl(224, 13%, 17%);
}

/* Background colour within the popup */
.prism-previewer-angle.prism-previewer-angle:before,
.prism-previewer-time.prism-previewer-time:before,
.prism-previewer-easing.prism-previewer-easing {
	background: hsl(219, 13%, 22%);
}

/* For angle, this is the positive area (eg. 90deg will display one quadrant in this colour) */
/* For time, this is the alternate colour */
.prism-previewer-angle.prism-previewer-angle circle,
.prism-previewer-time.prism-previewer-time circle {
	stroke: hsl(220, 14%, 71%);
	stroke-opacity: 1;
}

/* Stroke colours of the handle, direction point, and vector itself */
.prism-previewer-easing.prism-previewer-easing circle,
.prism-previewer-easing.prism-previewer-easing path,
.prism-previewer-easing.prism-previewer-easing line {
	stroke: hsl(220, 14%, 71%);
}

/* Fill colour of the handle */
.prism-previewer-easing.prism-previewer-easing circle {
	fill: transparent;
}
/*
Name: Duotone Sea
Author: by Simurai, adapted from DuoTone themes by Simurai for Atom (http://simurai.com/projects/2016/01/01/duotone-themes)

Conversion: Bram de Haan (http://atelierbram.github.io/Base2Tone-prism/output/prism/prism-base2tone-sea-dark.css)
Generated with Base16 Builder (https://github.com/base16-builder/base16-builder)
*/

code[class*="language-"],
pre[class*="language-"] {
	font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", "Courier New", Courier, monospace;
	font-size: 14px;
	line-height: 1.375;
	direction: ltr;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
	background: #1d262f;
	color: #57718e;
}

pre > code[class*="language-"] {
	font-size: 1em;
}

pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	text-shadow: none;
	background: #004a9e;
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	text-shadow: none;
	background: #004a9e;
}

/* Code blocks */
pre[class


 of message transmitted or received.
	RPCMessageIDKey = attribute.Key("message.id")
	// RPCMessageCompressedSizeKey is the compressed size of the message transmitted or received in bytes.
	RPCMessageCompressedSizeKey = attribute.Key("message.compressed_size")
	// RPCMessageUncompressedSizeKey is the uncompressed size of the message
	// transmitted or received in bytes.
	RPCMessageUncompressedSizeKey = attribute.Key("message.uncompressed_size")
)

// Semantic conventions for common RPC attributes.
var (
	// RPCSystemGRPC is the semantic convention for gRPC as the remoting system.
	RPCSystemGRPC = semconv.RPCSystemKey.String("grpc")
	// RPCNameMessage is the semantic convention for a message named message.
	RPCNameMessage = RPCNameKey.String("message")
	// RPCMessageTypeSent is the semantic conventions for sent RPC message types.
	RPCMessageTypeSent = RPCMessageTypeKey.String("SENT")
	// RPCMessageTypeReceived is the semantic conventions for the received RPC message types.
	RPCMessageTypeReceived = RPCMessageTypeKey.String("RECEIVED")
)

// StatusCodeAttr returns an attribute.KeyValue that represents the give c.
func StatusCodeAttr(c gcodes.Code) attribute.KeyValue {
	return GRPCStatusCodeKey.Int64(int64(c))
}
package fx

import (
	"context"
	"fmt"
	"runtime/debug"
	"strings"
	"time"
)

var (
	// ErrCanceled is the error returned when the context is canceled.
	ErrCanceled = context.Canceled
	// ErrTimeout is the error returned when the context's deadline passes.
	ErrTimeout = context.DeadlineExceeded
)

// DoOption defines the method to customize a DoWithTimeout call.
type DoOption func() context.Context

// DoWithTimeout runs fn with timeout control.
func DoWithTimeout(fn func() error, timeout time.Duration, opts ...DoOption) error {
	parentCtx := context.Background()
	for _, opt := range opts {
		parentCtx = opt()
	}
	ctx, cancel := context.WithTimeout(parentCtx, timeout)
	defer cancel()

	// create channel with buffer size 1 to avoid goroutine leak
	done := make(chan error, 1)
	panicChan := make(chan interface{}, 1)
	go func() {
		defer func() {
			if p := recover(); p != nil {
				// attach call stack to avoid missing in different goroutine
				panicChan <- fmt.Sprintf("%+v\n\n%s", p, strings.TrimSpace(string(debug.Stack())))
			}
		}()
		done <- fn()
	}()

	select {
	case p := <-panicChan:
		panic(p)
	case err := <-done:
		return err
	case <-ctx.Done():
		return ctx.Err()
	}
}

// WithContext customizes a DoWithTimeout call with given ctx.
func WithContext(ctx context.Context) DoOption {
	return func() context.Context {
		return ctx
	}
}
package timex

import (
	"errors"
	"time"

	"github.com/tal-tech/go-zero/core/lang"
)

type (
	// Ticker interface wraps the Chan and Stop methods.
	Ticker interface {
		Chan() <-chan time.Time
		Stop()
	}

	// FakeTicker interface is used for unit testing.
	FakeTicker interface {
		Ticker
		Done()
		Tick()
		Wait(d time.Durat


var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},u=[];return"default"===t&&(l("jupyterlab-plotly","5.20.0",(()=>Promise.all([P.e(478),P.e(855),P.e(900),P.e(657)]).then((()=>()=>P(855))))),l("lodash","4.17.21",(()=>P.e(486).then((()=>()=>P(486)))))),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var r=P.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");t.length&&(e=t[t.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),o=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},a=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var n=e[t],a=(typeof n)[0];if(t>=r.length)return"u"==a;var i=r[t],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;t++}},i=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(l=e[o]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var a=[];for(o=1;o<e.length;o++){var l=e[o];a.push(0===l?"not("+u()+")":1===l?"("+u()+" || "+u()+")":2===l?a.pop()+" "+a.pop():i(l))}return u();function u(){return a.pop().replace(/^\((.+)\)$/,"$1")}},l=(e,r)=>{if(0 in e){r=o(r);var t=e[0],n=t<0;n&&(t=-t-1);for(var a=0,i=1,u=!0;;i++,a++){var f,d,s=i<e.length?(typeof e[i])[0]:"";if(a>=r.length||"o"==(d=(typeof(f=r[a]))[0]))return!u||("u"==s?i>t&&!n:"


11, "l": 5, "f": 4615},
  {"h": "淅", "p": "xī", "sp": "xi", "r": "水", "sc": 11, "l": 5, "f": 4616},
  {"h": "榉", "p": "jǔ", "sp": "ju", "r": "木", "sc": 13, "l": 5, "f": 4617},
  {"h": "馗", "p": "kuí", "sp": "kui", "r": "首", "sc": 11, "l": 5, "f": 4618},
  {"h": "辔", "p": "pèi", "sp": "pei", "r": "口", "sc": 13, "l": 5, "f": 4619},
  {"h": "暹", "p": "xiān", "sp": "xian", "r": "日", "sc": 15, "l": 5, "f": 4620},
  {"h": "骛", "p": "wù", "sp": "wu", "r": "馬", "sc": 12, "l": 5, "f": 4621},
  {"h": "鱿", "p": "yóu", "sp": "you", "r": "魚", "sc": 12, "l": 5, "f": 4622},
  {"h": "苫", "p": "shān", "sp": "shan", "r": "艸", "sc": 8, "l": 5, "f": 4623},
  {"h": "犷", "p": "guǎng", "sp": "guang", "r": "犬", "sc": 6, "l": 5, "f": 4624},
  {"h": "獠", "p": "liáo", "sp": "liao", "r": "犬", "sc": 15, "l": 5, "f": 4625},
  {"h": "詈", "p": "lì", "sp": "li", "r": "言", "sc": 12, "l": 5, "f": 4626},
  {"h": "竦", "p": "sǒng", "sp": "song", "r": "立", "sc": 12, "l": 5, "f": 4627},
  {"h": "篙", "p": "gāo", "sp": "gao", "r": "竹", "sc": 16, "l": 5, "f": 4628},
  {"h": "诨", "p": "hùn", "sp": "hun", "r": "言", "sc": 8, "l": 5, "f": 4629},
  {"h": "铰", "p": "jiǎo", "sp": "jiao", "r": "金", "sc": 11, "l": 5, "f": 4630},
  {"h": "馄", "p": "hún", "sp": "hun", "r": "食", "sc": 11, "l": 5, "f": 4631},
  {"h": "蜚", "p": "fēi", "sp": "fei", "r": "虫", "sc": 14, "l": 5, "f": 4632},
  {"h": "峒", "p": "dòng", "sp": "dong", "r": "山", "sc": 9, "l": 5, "f": 4633},
  {"h": "滢", "p": "yíng", "sp": "ying", "r": "水", "sc": 13, "l": 5, "f": 4634},
  {"h": "琬", "p": "wǎn", "sp": "wan", "r": "玉", "sc": 12, "l": 5, "f": 4635},
  {"h": "靓", "p": "jìng", "sp": "jing", "r": "青", "sc": 12, "l": 5, "f": 4636},
  {"h": "狻", "p":