code {
  vertical-align: middle;
}
.iti__flag-box,
.iti__country-name {
  margin-right: 6px;
}
.iti--allow-dropdown input,
.iti--allow-dropdown input[type=text],
.iti--allow-dropdown input[type=tel],
.iti--separate-dial-code input,
.iti--separate-dial-code input[type=text],
.iti--separate-dial-code input[type=tel] {
  padding-right: 6px;
  padding-left: 52px;
  margin-left: 0;
}
.iti--allow-dropdown .iti__flag-container,
.iti--separate-dial-code .iti__flag-container {
  right: auto;
  left: 0;
}
.iti--allow-dropdown .iti__flag-container:hover {
  cursor: pointer;
}
.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag {
  background-color: rgba(0, 0, 0, 0.05);
}
.iti--allow-dropdown input[disabled] + .iti__flag-container:hover,
.iti--allow-dropdown input[readonly] + .iti__flag-container:hover {
  cursor: default;
}
.iti--allow-dropdown input[disabled] + .iti__flag-container:hover .iti__selected-flag,
.iti--allow-dropdown input[readonly] + .iti__flag-container:hover .iti__selected-flag {
  background-color: transparent;
}
.iti--separate-dial-code .iti__selected-flag {
  background-color: rgba(0, 0, 0, 0.05);
}
.iti--separate-dial-code .iti__selected-dial-code {
  margin-left: 6px;
}
.iti--container {
  position: absolute;
  top: -1000px;
  left: -1000px;
  z-index: 1060;
  padding: 1px;
}
.iti--container:hover {
  cursor: pointer;
}
.iti-mobile .iti--container {
  top: 30px;
  bottom: 30px;
  left: 30px;
  right: 30px;
  position: fixed;
}
.iti-mobile .iti__country-list {
  max-height: 100%;
  width: 100%;
}
.iti-mobile .iti__country {
  padding: 10px 10px;
  line-height: 1.5em;
}
.iti__flag {
  width: 20px;
}
.iti__flag.iti__be {
  width: 18px;
}
.iti__flag.iti__ch {
  width: 15px;
}
.iti__flag.iti__mc {
  width: 19px;
}
.iti__flag.iti__ne {
  width: 18px;
}
.iti__flag.iti__np {
  width: 13px;
}
.iti__flag.iti__va {
  width: 15px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .iti__flag {
    background-size: 5652px 15px;
  }
}
.iti__flag.iti__ac {
  height: 10px;
  background-position: 0px 0px;
}
.iti__flag.iti__ad {
  height: 14px;
  background-position: -22px 0px;
}
.iti__flag.iti__ae {
  height: 10px;
  background-position: -44px 0px;
}
.iti__flag.iti__af {
  height: 14px;
  background-position: -66px 0px;
}
.iti__flag.iti__ag {
  height: 14px;
  background-position: -88px 0px;
}
.iti__flag.iti__ai {
  height: 10px;
  background-position: -110px 0px;
}


 to " + modelName));
      } else {
        throwException(new TrainDBException("failed to train model " + modelName));
      }
    }

  }

  @Override
  public void dropModel(String modelName) throws Exception {
    T_tracer.startTaskTracer("drop model " + modelName);

    T_tracer.openTaskTime("find : model");
    if (!catalogContext.modelExists(modelName)) {
      String msg = "model '" + modelName + "' does not exist";
      throwException(new CatalogException(msg));
    }
    T_tracer.closeTaskTime("SUCCESS");

    T_tracer.openTaskTime("drop model");
    catalogContext.dropModel(modelName);
    T_tracer.closeTaskTime("SUCCESS");

    T_tracer.endTaskTracer();
  }

  private void createSynopsisTable(String synopsisName, String schemaName, String tableName,
                                   List<String> columns, MTable mTable, boolean importSynopsis)
      throws Exception {
    StringBuilder sb = new StringBuilder();
    sb.append("CREATE TABLE ");
    sb.append(schemaName);
    sb.append(".");
    sb.append(synopsisName);

    SqlDialect dialect = schemaManager.getDialect();
    if (importSynopsis
        || mTable.getTableType().equals("JOIN")
        || (dialect instanceof TrainDBSqlDialect
            && !((TrainDBSqlDialect) dialect).supportCreateTableAsSelect())) {
      sb.append("(");
      for (String columnName : columns) {
        MColumn mColumn = mTable.getColumn(columnName);
        if (mColumn == null) {
          throw new TrainDBException("cannot find base column information");
        }
        sb.append(columnName).append(" ");
        SqlTypeName sqlTypeName = TrainDBSqlUtil.getSqlTypeNameForJdbcType(mColumn.getColumnType());
        switch (sqlTypeName) {
          case CHAR:
          case VARCHAR:
          case INTEGER:
          case BIGINT:
          case TINYINT:
          case SMALLINT:
          case FLOAT:
          case DOUBLE:
          case DECIMAL:
          case BOOLEAN:
          case DATE:
          case TIME:
          case TIMESTAMP:
            sb.append(sqlTypeName.getName());
            if (sqlTypeName.allowsPrec()) {
              sb.append("(").append(mColumn.getPrecision());
              if (sqlTypeName.allowsScale()) {
                sb.append(",").append(mColumn.getScale());
              }
              sb.append(")");
            }
            break;
          case GEOMETRY: {
            String columnType = "geometry";
            try {
              DatabaseMetaData md = conn.getMetaData();
              ResultSet rs = md.getColumns("jdbc", schemaName, tableName, columnName);
              while (rs.next()) {
                columnType = rs.getString("TYPE_NAME");
              }
              sb.append(columnType);
            } catch (SQLException e) {
              // ignore
            }
            break;
          }
          default:
            throw new TrainDBException("column type '" + sqlTypeName.getName() + "' not supported");
        }
        if (!mColumn.isNullable()) {
          sb.append(" NOT NULL");
        }
        sb.append(",");
      }
      sb.deleteCharAt(sb.lastIndexOf(","));
      sb.append(")");
    } else {
      sb.append(" AS SELECT ");
      for (String columnName : columns) {
        sb.append(columnName);
        sb.append(",");
      }
      sb.deleteCharAt(sb.lastIndexOf(","));
      sb.append(" FROM ");
      sb.append(schemaName);
      sb.append(".");
      sb.append(tableName);
      sb.append(" WHERE 1<0");
    }

    String sql = sb.toString();
    executeInternal(sql, true);
  }


				},
			},
		},
	}}

	for _, test := range tests {
		t.Run(test.name, func(t *testing.T) {
			got := test.broker.Validate(context.Background())
			if diff := cmp.Diff(test.want.Error(), got.Error()); diff != "" {
				t.Errorf("TestBroker_Validate (-want, +got) = %v", diff)
			}
		})
	}
}
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build ignore

// Getspdx converts SPDX license definitions into license regular expressions (LREs).
//
// Usage:
//
//	go run getspdx.go [-f] name...
//
// Getspdx converts each JSON file into an LRE file id.lre, where id is the
// "licenseId" filed in the JSON file. If the "isDeprecatedField" in a JSON file
// is set to true, getspdx skips that file.
//
// Getspdx is only intended to provide a good start for the LRE for a given license.
// The result of the conversion still needs manual adjustment over time to deal
// with real-world variation (the SPDX patterns are not particularly forgiving).
//
// If id.lre already exists, getspdx skips the conversion instead of overwriting id.lre.
// If the -f flag is given, getspdx overwrites id.lre.
//
// As a special case, the name "all" means all non-deprecated SPDX licenses.
//
// Getcc expects to find the SPDX database checked out in _spdx,
// which you can do using:
//
//	git clone https://github.com/spdx/license-list-data _spdx

package main

import (
	"bytes"
	"encoding/json"
	"flag"
	"fmt"
	"io/ioutil"
	"log"
	"os"
	"os/exec"
	"path/filepath"
	"regexp"
	"strings"
)

// spdx is the SPDX JSON data structure
type spdx struct {
	IsDeprecatedLicenseID   bool
	LicenseText             string
	StandardLicenseTemplate string
	Name                    string
	LicenseComments         string
	LicenseID               string
	SeeAlso                 []string
	IsOSIApproved           bool
}

var forceOverwrite = flag.Bool("f", false, "force overwrite")

func usage() {
	fmt.Fprintf(os.Stderr, "usage: go run getspdx.go [-f] name\n")
	os.Exit(2)
}

// Do not write these out even though they don't exist.
// They are generated by templates in other files,
// such as BSD.lre and MIT.lre, or we handle them differently,
// or we don't want them.
var exclude = fieldMap(`
	AGPL-1.0-only
	AGPL-1.0-or-later
	AGPL-3.0-only
	AGPL-3.0-or-later
	CAL-1.0-Combined-Work-Exception
	BSD-1-Clause
	BSD-1-Clause-Clear
	BSD-2-Clause
	BSD-2-Clause-FreeBSD
	BSD-2-Claus


Iframe = execIframe || createExecIframe();
        // Check if they've removed it from the DOM, and put it back if so.
        if (!execIframe.contentWindow) {
            execIframe = createExecIframe();
        }
        execIframe.src = "gap://ready";
    }
}

iOSExec.jsToNativeModes = jsToNativeModes;

iOSExec.setJsToNativeBridgeMode = function(mode) {
    // Remove the iFrame since it may be no longer required, and its existence
    // can trigger browser bugs.
    // https://issues.apache.org/jira/browse/CB-593
    if (execIframe) {
        execIframe.parentNode.removeChild(execIframe);
        execIframe = null;
    }
    bridgeMode = mode;
};

iOSExec.nativeFetchMessages = function() {
    // Each entry in commandQueue is a JSON string already.
    if (!commandQueue.length) {
        return '';
    }
    var json = '[' + commandQueue.join(',') + ']';
    commandQueue.length = 0;
    return json;
};

iOSExec.nativeCallback = function(callbackId, status, message, keepCallback) {
    return iOSExec.nativeEvalAndFetch(function() {
        var success = status === 0 || status === 1;
        var args = convertMessageToArgsNativeToJs(message);
        cordova.callbackFromNative(callbackId, success, status, args, keepCallback);
    });
};

iOSExec.nativeEvalAndFetch = function(func) {
    // This shouldn't be nested, but better to be safe.
    isInContextOfEvalJs++;
    try {
        func();
        return iOSExec.nativeFetchMessages();
    } finally {
        isInContextOfEvalJs--;
    }
};

module.exports = iOSExec;

});

// file: src/common/exec/proxy.js
define("cordova/exec/proxy", function(require, exports, module) {

// internal map of proxy function
var CommandProxyMap = {};

module.exports = {

    // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...);
    add:function(id,proxyObj) {
        console.log("adding proxy for " + id);
        CommandProxyMap[id] = proxyObj;
        return proxyObj;
    },

    // cordova.commandProxy.remove("Accelerometer");
    remove:function(id) {
        var proxy = CommandProxyMap[id];
        delete CommandProxyMap[id];
        CommandProxyMap[id] = null;
        return proxy;
    },

    get:function(service,action) {
        return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null );
    }
};
});

// file: src/common/init.js
define("cordova/init", function(require, exports, module) {

var channel = require('cordova/channel');
var cordova = require('cordova');
var modulemapper = require('cordova/modulemapper');
var platform = require('cordova/platform');
var pluginloader = require('cordova/pluginloader');

var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];

function logUnfiredChannels(arr) {
    for (var i = 0; i < arr.length; ++i) {
        if (arr[i].state != 2) {
            console.log('Channel not fired: ' + arr[i].type);
        }
    }
}

window.setTimeout(function() {
    if (channel.onDeviceReady.state != 2) {
        console.log('deviceready has not fired after 5 seconds.');
        logUnfiredChannels(platformInitChannelsArray);
        logUnfiredChannels(channel.deviceReadyChannelsArray);
    }
}, 5000);

// Replace navigator before any modules are required(), to ensure it happens as soon as possible.
// We replace it so that properties that can't be clobbered can instead be overridden.
function replaceNavigator(origNav


OSER)

    @JvmField
    val MOJO_BLOCK_EXPR_NOSPACE_CLOSER: IElementType =
      MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_BLOCK_EXPR_NOSPACE_CLOSER)

    @JvmField
    val MOJO_BLOCK_EXPR_CLOSER: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_BLOCK_CLOSER)

    @JvmField
    val MOJO_LINE_OPENER: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_LINE_OPENER)

    @JvmField
    val MOJO_LINE_EXPR_OPENER: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_LINE_EXPR_OPENER)

    @JvmField
    val MOJO_LINE_EXPR_ESCAPED_OPENER: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_LINE_EXPR_ESCAPED_OPENER)

    @JvmField
    val MOJO_BLOCK_OPENER_TAG: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_BLOCK_OPENER_TAG)

    @JvmField
    val MOJO_LINE_OPENER_TAG: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_LINE_OPENER_TAG)

    @JvmField
    val MOJO_BEGIN: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_BEGIN)

    @JvmField
    val MOJO_END: IElementType = MojoliciousTokenType(MojoliciousSyntaxElements.KEYWORD_MOJO_END)

    @JvmField
    val FILE: PerlFileElementType = PerlFileElementType("Mojolicious Perl5 Template", MojoliciousLanguage.INSTANCE)
  }
}package org.camunda.community.rest.adapter

import org.assertj.core.api.Assertions
import org.camunda.community.rest.client.model.HistoricProcessInstanceDto
import org.junit.Test
import java.time.OffsetDateTime

class HistoricProcessInstanceAdapterTest {
  private val dto = HistoricProcessInstanceDto()
    .id("id")
    .tenantId("tenantId")
    .rootProcessInstanceId("rootProcessInstanceId")
    .superProcessInstanceId("superProcessInstanceId")
    .superCaseInstanceId("superCaseInstanceId")
    .caseInstanceId("caseInstanceId")
    .processDefinitionName("processDefinitionName")
    .processDefinitionKey("processDefinitionKey")
    .processDefinitionVersion(1)
    .processDefinitionId("processDefinitionId")
    .businessKey("businessKey")
    .startTime(OffsetDateTime.now())
    .endTime(OffsetDateTime.now())
    .removalTime(OffsetDateTime.now())
    .durationInMillis(1000)
    .startUserId("startUserId")
    .startActivityId("startActivityId")
    .deleteReason("deleteReason")
    .state(HistoricProcessInstanceDto.StateEnum.ACTIVE)

  @Test
  fun `should delegate`() {
    val bean = HistoricInstanceBean.fromHistoricProcessInstanceDto(dto)
    val adapter = HistoricProcessInstanceAdapter(bean)
    Assertions.assertThat(adapter).usingRecursiveComparison().ignoringFields("historicInstanceBean").isEqualTo(bean)
  }

  @Test
  fun `should construct from dto`() {
    val bean = HistoricInstanceBean.fromHistoricProcessInstanceDto(dto)
    Assertions.assertThat(bean).usingRecursiveComparison().ignoringFields("startTime", "endTime", "removalTime", "endActivityId", "state").isEqualTo(dto)
    Assertions.assertThat(bean.startTime).isEqualTo(dto.startTime.toInstant())
    Assertions.assertThat(bean.endTime).isEqualTo(dto.endTime.toInstant())
    Assertions.assertThat(bean.removalTime).isEqualTo(dto.removalTime.toInstant())
    Assertions.assertThat(bean.state).isEqualTo(dto.state.name)
  }
}
/*


 6.586-12.504H22.999V16H43v4.514z"/></svg>';
  static const String digit_six =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64" preserveAspectRatio="xMidYMid meet" viewBox="0 0 64 64"><path fill="currentColor" d="M32.379 31.541c-1.104 0-2.037.451-2.799 1.355-.764.904-1.145 2.242-1.145 4.008 0 1.953.43 3.459 1.287 4.521s1.838 1.594 2.941 1.594c1.063 0 1.947-.436 2.656-1.305.707-.869 1.063-2.295 1.063-4.275 0-2.039-.381-3.529-1.145-4.479-.762-.944-1.714-1.419-2.858-1.419"/><path fill="currentColor" d="M32 2C15.432 2 2 15.432 2 32s13.432 30 30 30 30-13.432 30-30S48.568 2 32 2m7.305 43.092C37.506 47.029 35.197 48 32.379 48c-3.023 0-5.51-1.23-7.457-3.688S22 37.826 22 32.225c0-5.744 1.016-9.885 3.045-12.42C27.074 17.268 29.709 16 32.951 16c2.273 0 4.156.666 5.648 1.998 1.49 1.334 2.441 3.27 2.85 5.803l-5.557.643c-.137-1.197-.49-2.082-1.063-2.65-.572-.57-1.314-.855-2.227-.855-1.213 0-2.238.57-3.074 1.709-.838 1.141-1.365 3.514-1.584 7.121 1.43-1.77 3.207-2.654 5.332-2.654 2.396 0 4.451.957 6.158 2.867C41.146 31.891 42 34.355 42 37.375c0 3.207-.898 5.779-2.695 7.717"/></svg>';
  static const String digit_three =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64" preserveAspectRatio="xMidYMid meet" viewBox="0 0 64 64"><path fill="currentColor" d="M32 2C15.432 2 2 15.432 2 32s13.432 30 30 30 30-13.432 30-30S48.568 2 32 2m7.105 43.092C37.174 47.029 34.771 48 31.897 48c-2.724 0-4.983-.816-6.776-2.447-1.793-1.633-2.833-3.768-3.121-6.403l5.585-.707c.179 1.482.657 2.617 1.438 3.4s1.725 1.176 2.834 1.176c1.19 0 2.193-.471 3.009-1.41.814-.941 1.223-2.209 1.223-3.807 0-1.51-.391-2.707-1.172-3.59-.781-.885-1.731-1.324-2.854-1.324-.74 0-1.623.148-2.65.447l.637-4.895c1.561.043 2.752-.311 3.573-1.059s1.232-1.742 1.232-2.982c0-1.055-.301-1.896-.903-2.521-.603-.627-1.404-.941-2.403-.941-.985 0-1.827.355-2.525 1.068s-1.122 1.752-1.273 3.121l-5.317-.9


stDocs.Examples]
     * `df.`[select][DataFrame.select]`  {  `[colsOf][SingleColumn.colsOf]`<`[String][String]`>().`[first][ColumnSet.first]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
     *
     * `df.`[select][DataFrame.select]`  {  `[colsOf][SingleColumn.colsOf]`<`[Int][Int]`>().`[first][ColumnSet.first]`() }`
     */
    @Suppress("UNCHECKED_CAST")
    @Interpretable("First0")
    public fun <C> ColumnSet<C>.first(condition: ColumnFilter<C> = { true }): SingleColumn<C> =
        (allColumnsInternal() as TransformableColumnSet<C>)
            .transform { listOf(it.first(condition)) }
            .singleOrNullWithTransformerImpl()

    /**
     * @include [CommonFirstDocs]
     * @set [CommonFirstDocs.Examples]
     *
     * `df.`[select][DataFrame.select]`  {  `[first][ColumnsSelectionDsl.first]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
     */
    @Interpretable("First1")
    public fun ColumnsSelectionDsl<*>.first(condition: ColumnFilter<*> = { true }): SingleColumn<*> =
        asSingleColumn().firstCol(condition)

    /**
     * @include [CommonFirstDocs]
     * @set [CommonFirstDocs.Examples]
     *
     * `df.`[select][DataFrame.select]` { myColumnGroup.`[firstCol][SingleColumn.firstCol]`() }`
     */
    @Interpretable("First2")
    public fun SingleColumn<DataRow<*>>.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> =
        this.ensureIsColumnGroup().asColumnSet().first(condition)

    /**
     * @include [CommonFirstDocs]
     * @set [CommonFirstDocs.Examples]
     * `df.`[select][DataFrame.select]` { "myColumnGroup".`[firstCol][String.firstCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
     */
    public fun String.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> =
        columnGroup(this).firstCol(condition)

    /**
     * @include [CommonFirstDocs]
     * @set [CommonFirstDocs.Examples]
     * `df.`[select][DataFrame.select]` { Type::myColumnGroup.`[firstCol][SingleColumn.firstCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
     *
     * `df.`[select][DataFrame.select]` { DataSchemaType::myColumnGroup.`[firstCol][KProperty.firstCol]`() }`
     */
    @Deprecated(DEPRECATED_ACCESS_API)
    @AccessApiOverload
    public fun KProperty<*>.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> =
        columnGroup(this).firstCol(condition)

    /**
     * @include [CommonFirstDocs]
     * @set [CommonFirstDocs.Examples]
     * `df.`[select][DataFrame.select]` { "pathTo"["myColumnGroup"].`[firstCol][ColumnPath.firstCol]` { it.`[name][ColumnReference.name]`().`[startsWith][String.startsWith]`("year") } }`
     */
    public fun ColumnPath.firstCol(condition: ColumnFilter<*> = { true }): SingleColumn<*> =
        columnGroup(this).firstCol(condition)
}

// endregion
package org.jetbrains.kotlinx.dataframe.api

import org.jetbrains.kot


void> _dispose() async {
    await _engine.stopRhythmPlayer();
    await _engine.leaveChannel();
    await _engine.release();
  }

  Future<void> _initEngine() async {
    _engine = createAgoraRtcEngine();
    await _engine.initialize(RtcEngineContext(
      appId: config.appId,
      channelProfile: ChannelProfileType.channelProfileLiveBroadcasting,
    ));

    _engine.registerEventHandler(RtcEngineEventHandler(
      onError: (ErrorCodeType err, String msg) {
        logSink.log('[onError] err: $err, msg: $msg');
      },
      onJoinChannelSuccess: (RtcConnection connection, int elapsed) {
        logSink.log(
            '[onJoinChannelSuccess] connection: ${connection.toJson()} elapsed: $elapsed');
        setState(() {
          isJoined = true;
        });
      },
      onUserJoined: (RtcConnection connection, int rUid, int elapsed) {
        logSink.log(
            '[onUserJoined] connection: ${connection.toJson()} remoteUid: $rUid elapsed: $elapsed');
        setState(() {
          _remoteUids.add(rUid);
        });
      },
      onUserOffline:
          (RtcConnection connection, int rUid, UserOfflineReasonType reason) {
        logSink.log(
            '[onUserOffline] connection: ${connection.toJson()}  rUid: $rUid reason: $reason');
        setState(() {
          _remoteUids.remove(rUid);
        });
      },
      onLeaveChannel: (RtcConnection connection, RtcStats stats) {
        logSink.log(
            '[onLeaveChannel] connection: ${connection.toJson()} stats: ${stats.toJson()}');
        setState(() {
          isJoined = false;
        });
      },
    ));

    await _engine.enableAudio();
    await _engine.setClientRole(role: ClientRoleType.clientRoleBroadcaster);
  }

  Future<String> _getFilePath(String fileName) async {
    ByteData data = await rootBundle.load("assets/$fileName");
    List<int> bytes =
        data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);

    Directory appDocDir = await getApplicationDocumentsDirectory();
    String p = path.join(appDocDir.path, fileName);
    final file = File(p);
    if (!(await file.exists())) {
      await file.create();
      await file.writeAsBytes(bytes);
    }

    return p;
  }

  void _joinChannel() async {
    final sound1 = await _getFilePath('dang.mp3');
    final sound2 = await _getFilePath('ding.mp3');
    await _engine.startRhythmPlayer(
      sound1: sound1,
      sound2: sound2,
      config: AgoraRhythmPlayerConfig(
          beatsPerMeasure: _beatsPerMeasure.toInt(),
          beatsPerMinute: _beatsPerMinute.toInt()),
    );

    await _engine.joinChannel(
      token: config.token,
      channelId: _controller0.text,
      uid: 0,
      options: const ChannelMediaOptions(publishRhythmPlayerTrack: true),
    );
  }

  _leaveChannel() async {
    await _engine.stopRhythmPlayer();
    await _engine.leaveChannel();
    setState(() {
      _beatsPerMeasure = 4;
      _beatsPerMinute = 60;
    });
  }

  Widget _buildRhythmPlayerOptions() {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Row(
          mainAxisAlignment: MainAxisAlignment.start,
          children: [
            const Text('Beats Per Measure:'),
            Slider(
              value: _beatsPerMeasure,


uld also be internally sorted i.e. i<j<k.

Examples:

Input: arr[] = [0, -1, 2, -3, 1]
Output: [[0, 1, 4], [2, 3, 4]]
Explanation: Triplets with sum 0 are:
arr[0] + arr[1] + arr[4] = 0 + (-1) + 1 = 0
arr[2] + arr[3] + arr[4] = 2 + (-3) + 1 = 0
Input: arr[] = [1, -2, 1, 0, 5]
Output: [[0, 1, 2]]
Explanation: Only triplet which satisfies the condition is arr[0] + arr[1] + arr[2] = 1 + (-2) + 1 = 0
Input: arr[] = [2, 3, 1, 0, 5]
Output: [[]]
Explanation: There is no triplet with sum 0.
Constraints:
3 <= arr.size() <= 103
-104 <= arr[i] <= 104

class Solution {
    public List<List<Integer>> findTriplets(int[] arr) {
        // Your code here
        List<List<Integer>> res = new ArrayList<>();
        HashSet<ArrayList<Integer>> ans = new HashSet<>();
        HashMap<Integer,Integer> m = new HashMap<>();
        for(int i =0; i<arr.length; i++) {
            for(int j =i; j<arr.length; j++) {
                if(m.containsKey(-(arr[i]+arr[j]))) {
                    int k = m.get(-(arr[i]+arr[j]));
                    if(!(k == i || i == j || j == k ))
                    {ArrayList<Integer> temp = new ArrayList<>(Arrays.asList(k,i,j));
                    Collections.sort(temp);
                    ans.add(temp);}
                }
                m.put(arr[j],j);
            }
        }
        for(List<Integer> al:ans) {
            res.add(al);
        }
        return res;
    }
}
Given an array of strings, return all groups of strings that are anagrams. The groups must be created in order of their appearance in the original array. Look at the sample case for clarification.

Note: The final output will be in lexicographic order.

Examples:

Input: arr[] = ["act", "god", "cat", "dog", "tac"]
Output: [["act", "cat", "tac"], ["god", "dog"]]
Explanation: There are 2 groups of anagrams "god", "dog" make group 1. "act", "cat", "tac" make group 2.
Input: arr[] = ["no", "on", "is"]
Output: [["is"], ["no", "on"]]
Explanation: There are 2 groups of anagrams "is" makes group 1. "no", "on" make group 2.
Input: arr[] = ["listen", "silent", "enlist", "abc", "cab", "bac", "rat", "tar", "art"]
Output: [["abc", "cab", "bac"], ["listen", "silent", "enlist"], ["rat", "tar", "art"]]
Explanation:
Group 1: "abc", "bac", and "cab" are anagrams.
Group 2: "listen", "silent", and "enlist" are anagrams.
Group 3: "rat", "tar", and "art" are anagrams.
Constraints:
1<= arr.size() <=100
1<= arr[i].size() <=10

public ArrayList<ArrayList<String>> anagrams(String[] strs) {
        HashMap<String,ArrayList<String>>map=new HashMap<>();
        for(String i:strs){
            char [] arr=i.toCharArray();
            Arrays.sort(arr);
            String news=new String(arr);
            map.put(news,new ArrayList<String>());
        }
        for(String str:strs){
            char [] arr=str.toCharArray();
            Arrays.sort(arr);
            String news=new String(arr);
            if(map.containsKey(news)){
                map.get(news).add(str);
            }
        }
        ArrayList<ArrayList<String>> list=new ArrayList<>();
        for(String key:map.keySet()){
            list.add(map.get(key));


LTD_47016

`,
                {"sticky": true}
            );

            var marker_977645dda7cfcb651ff0b02881811c89 = L.marker(
                [51.677, 5.812],
                {}
            ).addTo(feature_group_sub_group_4ab6f78f25cb9616731e284fc0894440);

            var icon_da29c902a32661078692e69e088beac9 = L.AwesomeMarkers.icon(
                {"description": "PM\u2082.\u2085, PM\u2081\u2080", "extraClasses": "fa-rotate-0", "icon": "cogs", "iconColor": "white", "markerColor": "cadetblue", "prefix": "fa"}
            );
            marker_977645dda7cfcb651ff0b02881811c89.setIcon(icon_da29c902a32661078692e69e088beac9);

        var popup_84c96b81d3505074393c13c1ba753243 = L.popup({"maxWidth": "100%"});

                var html_cf0357d57e36103f95b4a758602564ae = $(`

Station LTD_48444
<h5 style="font-size:8"Projekt: Luftdaten
<h5 style="font-size:8"Eigenaar: Luftdaten

Eerste meting: 2021-05-20

Laatste meting: 2024-11-23

Sensors: PM₁₀,PM₂.₅,RH,temperatuur

Fabrikant: DHT22,Nova

`)[0];
                popup_84c96b81d3505074393c13c1ba753243.setContent(html_cf0357d57e36103f95b4a758602564ae);

        marker_977645dda7cfcb651ff0b02881811c89.bindPopup(popup_84c96b81d3505074393c13c1ba753243)
        ;

            marker_977645dda7cfcb651ff0b02881811c89.bindTooltip(
                `

                     LTD_48444

`,
                {"sticky": true}
            );

            var marker_78427160c43de67cc6b1571b17ac26b9 = L.marker(
                [51.678, 5.806],
                {}
            ).addTo(feature_group_sub_group_4ab6f78f25cb9616731e284fc0894440);

            var icon_b9cc699a8ffd45328791a8a68b52f1b3 = L.AwesomeMarkers.icon(
                {"description": "PM\u2082.\u2085, PM\u2081\u2080", "extraClasses": "fa-rotate-0", "icon": "cogs", "iconColor": "white", "markerColor": "cadetblue", "prefix": "fa"}
            );
            marker_78427160c43de67cc6b1571b17ac26b9.setIcon(icon_b9cc699a8ffd45328791a8a68b52f1b3);

        var popup_1b5de2cd10d13f747c38151a798bfcdd = L.popup({


ogress, wait for either a data or an error event
	select {
	case log := <-it.logs:
		it.Event = new(L1StakingStakersRemoved)
		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
			it.fail = err
			return false
		}
		it.Event.Raw = log
		return true

	case err := <-it.sub.Err():
		it.done = true
		it.fail = err
		return it.Next()
	}
}

// Error returns any retrieval or parsing error occurred during filtering.
func (it *L1StakingStakersRemovedIterator) Error() error {
	return it.fail
}

// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *L1StakingStakersRemovedIterator) Close() error {
	it.sub.Unsubscribe()
	return nil
}

// L1StakingStakersRemoved represents a StakersRemoved event raised by the L1Staking contract.
type L1StakingStakersRemoved struct {
	Stakers []common.Address
	Raw     types.Log // Blockchain specific contextual infos
}

// FilterStakersRemoved is a free log retrieval operation binding the contract event 0x3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84.
//
// Solidity: event StakersRemoved(address[] stakers)
func (_L1Staking *L1StakingFilterer) FilterStakersRemoved(opts *bind.FilterOpts) (*L1StakingStakersRemovedIterator, error) {

	logs, sub, err := _L1Staking.contract.FilterLogs(opts, "StakersRemoved")
	if err != nil {
		return nil, err
	}
	return &L1StakingStakersRemovedIterator{contract: _L1Staking.contract, event: "StakersRemoved", logs: logs, sub: sub}, nil
}

// WatchStakersRemoved is a free log subscription operation binding the contract event 0x3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84.
//
// Solidity: event StakersRemoved(address[] stakers)
func (_L1Staking *L1StakingFilterer) WatchStakersRemoved(opts *bind.WatchOpts, sink chan<- *L1StakingStakersRemoved) (event.Subscription, error) {

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

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

// ParseStakersRemoved is a log parse operation binding the contract event 0x3f446646c03e618be8238a586960d6d625f35c653cdca1ef59609993e8ed2c84.
//
// Solidity: event StakersRemoved(address[] stakers)
func (_L1Staking *L1StakingFilterer) ParseStakersRemoved(log types.Log) (*L1StakingStakersRemoved, error) {
	event := new(L1StakingStakersRemoved)
	if err := _L1Staking.contract.UnpackLog(event, "StakersRemoved", log); err != nil {
		return nil, err
	}
	event.Raw = log
	return event, nil
}

// L1Staking


 MLFaceTemplateResult.fromMap(Map<dynamic, dynamic> map) {
    return MLFaceTemplateResult._(
      templateId: map['templateId'],
      faceInfo:
          map['faceInfo'] != null ? MLFaceInfo.fromMap(map['faceInfo']) : null,
    );
  }
}

class MLFaceVerificationResult {
  final MLFaceInfo? faceInfo;
  final dynamic similarity;
  final int? templateId;

  const MLFaceVerificationResult._({
    this.templateId,
    this.faceInfo,
    this.similarity,
  });

  factory MLFaceVerificationResult.fromMap(Map<dynamic, dynamic> map) {
    return MLFaceVerificationResult._(
      faceInfo:
          map['faceInfo'] != null ? MLFaceInfo.fromMap(map['faceInfo']) : null,
      similarity: map['similarity'],
      templateId: map['templateId'],
    );
  }
}
/*
    Copyright 2021-2024. Huawei Technologies Co., Ltd. All rights reserved.

    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

        https://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.
*/

part of '../../huawei_ml_body.dart';

class MLGestureAnalyzer implements MLBodyAnalyzer<MLGesture, String> {
  late MethodChannel _channel;

  MLGestureAnalyzer() {
    _channel = const MethodChannel('$baseChannel.gesture');
  }

  @override
  Future<List<MLGesture>> asyncAnalyseFrame(
    String path,
  ) async {
    if (path.isEmpty) {
      throw ArgumentError('Image path can not be empty!');
    }
    final List<dynamic> res = await _channel.invokeMethod(
      'gesture#asyncAnalyseFrame',
      <String, dynamic>{
        'path': path,
      },
    );
    return res.map((dynamic e) => MLGesture.fromMap(e)).toList();
  }

  @override
  Future<List<MLGesture>> analyseFrame(
    String path,
  ) async {
    if (path.isEmpty) {
      throw ArgumentError('Image path can not be empty!');
    }
    final List<dynamic> res = await _channel.invokeMethod(
      'gesture#analyseFrame',
      <String, dynamic>{
        'path': path,
      },
    );
    return res.map((dynamic e) => MLGesture.fromMap(e)).toList();
  }

  @override
  Future<bool> destroy() async {
    return await _channel.invokeMethod(
      'gesture#destroy',
    );
  }

  @override
  Future<bool> isAvailable() async {
    return await _channel.invokeMethod(
      'gesture#isAvailable',
    );
  }

  Future<bool> stop() async {
    return await _channel.invokeMethod(
      'gesture#stop',
    );
  }
}
/*
    Copyright 2021-2024. Huawei Technologies Co., Ltd. All rights reserved.

    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

        https://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.
*/

part of '../../huawei_ml_body.dart';

class MLBodyApplication {
  late MethodChannel _channel;
  static const int REGION_DR_UNKNOWN = 1001;
  static const int REGION_DR_CHINA = 1002;


def $x21
	mov	w9, #4
	and	x21, x21, #0xffff
	mov	x8, x21
.LBB118_35:                             //   Parent Loop BB118_1 Depth=1
                                        // =>  This Inner Loop Header: Depth=2
	ldr	x10, [x20, :lo12:req_erase]
	subs	x8, x8, #1                      // =1
	ldr	w11, [x10, x9]
	and	w11, w11, #0xfffffc00
	str	w11, [x10, x9]
	add	x9, x9, #32                     // =32
	b.ne	.LBB118_35
// %bb.36:                              //   in Loop: Header=BB118_1 Depth=1
	ldr	x0, [x20, :lo12:req_erase]
	bl	FlashEraseBlocks
	adrp	x10, c_ftl_nand_planes_num
	tbnz	w26, #0, .LBB118_50
// %bb.37:                              //   in Loop: Header=BB118_1 Depth=1
	mov	x27, xzr
	mov	w26, wzr
	mov	x28, x24
	b	.LBB118_39
.LBB118_38:                             //   in Loop: Header=BB118_39 Depth=2
	add	x27, x27, #32                   // =32
	subs	x21, x21, #1                    // =1
	add	x28, x28, #2                    // =2
	b.eq	.LBB118_41
.LBB118_39:                             //   Parent Loop BB118_1 Depth=1
                                        // =>  This Inner Loop Header: Depth=2
	ldr	x8, [x20, :lo12:req_erase]
	ldr	w9, [x8, x27]
	cmn	w9, #1                          // =1
	b.ne	.LBB118_38
// %bb.40:                              //   in Loop: Header=BB118_39 Depth=2
	add	x8, x8, x27
	ldr	w8, [x8, #4]
	adrp	x9, c_ftl_nand_blks_per_die
	ldrh	w9, [x9, :lo12:c_ftl_nand_blks_per_die]
	adrp	x22, gBbtInfo
	ubfx	w1, w8, #10, #16
	add	x22, x22, :lo12:gBbtInfo
	udiv	w2, w1, w9
	lsr	w10, w8, #10
	add	x8, x22, w2, uxtw #3
	ldr	x8, [x8, #32]
	msub	w9, w2, w9, w10
	ubfx	w10, w9, #3, #13
	and	x10, x10, #0x1ffc
	ldr	w11, [x8, x10]
	mov	w12, #1
	and	w3, w9, #0xffff
	lsl	w9, w12, w9
	adrp	x0, .L.str.82
	orr	w4, w9, w11
	add	x0, x0, :lo12:.L.str.82
	add	w26, w26, #1                    // =1
	str	w4, [x8, x10]
	bl	sftl_printk
	ldrh	w8, [x22, #6]
	adrp	x10, c_ftl_nand_planes_num
	add	w8, w8, #1                      // =1
	strh	w8, [x22, #6]
	mov	w22, #65535


b\xc5\xdd\x3e\xf3\x4c\x82\x02\x00\x00\x00\x54\x14\x34\xe5\xab\x64\x2d\x82\xfe\xbf\x00\x00\x00\xff\xff\xae\xba\x48\xe9\x50\x3d\x00\x00")

func init() {

	rb := bytes.NewReader(FileAssetsAzureGeneralTagsPng)
	r, err := gzip.NewReader(rb)
	if err != nil {
		panic(err)
	}

	err = r.Close()
	if err != nil {
		panic(err)
	}

	f, err := FS.OpenFile(CTX, "assets/azure/general/tags.png", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
	if err != nil {
		panic(err)
	}

	_, err = io.Copy(f, r)
	if err != nil {
		panic(err)
	}

	err = f.Close()
	if err != nil {
		panic(err)
	}
}
// Code generaTed by fileb0x at "2020-09-15 07:47:30.944663498 -0400 EDT m=+3.310209366" from config file "b0x.yml" DO NOT EDIT.
// modified(2020-09-09 20:18:34.884291 -0400 EDT)
// original path: ../../assets/oci/network/load-balancer.png

package assets

import (
	"bytes"
	"compress/gzip"
	"io"

	"os"
)

// FileAssetsOciNetworkLoadBalancerPng is "assets/oci/network/load-balancer.png"
var FileAssetsOciNetworkLoadBalancerPng = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x79\x79\x38\x94\xef\xf7\xff\x3d\x93\x89\x1e\x61\x30\x31\x21\xcd\x24\x8c\x22\x26\x45\xb2\x8e\xc6\x64\x0b\xa3\x0d\x15\xd3\x54\x28\x4b\x29\x25\xfb\xd8\x47\x26\xa6\xcf\x5b\x96\x44\xcc\xd0\xbe\x90\x25\xa5\xc6\xc4\x94\x32\x24\xa3\x44\x25\x24\xcb\x94\x6c\x33\x59\x06\xf5\xbb\x46\xef\xef\xff\xbf\xeb\xfb\xbb\xae\xdf\xf7\x9f\xef\x1f\xcf\xb9\xee\xe5\x39\xe7\xbe\xcf\x39\xaf\xfb\x3c\xf7\x39\x4f\xba\x87\xdb\x4e\x05\x


Pool<MySql>>, uuid: String) -> ApiResponse<NoContent> {
  let mut conn = pool.acquire().await.context("could not retrieve database connection").short()?;
  Group::delete(&mut conn, &uuid).await.context("could not delete group").short()?;

  Ok(NoContent)
}
//            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
//                    Version 2, December 2004
//
// Copyleft (ↄ) meh. <<EMAIL>> | http://meh.schizofreni.co
//
// Everyone is permitted to copy and distribute verbatim or modified
// copies of this license document, and changing it is allowed as long
// as the name is changed.
//
//            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
//   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
//
//  0. You just DO WHAT THE FUCK YOU WANT TO.

use num::Float;

pub trait Sampler<T: Float = f32> {
	fn kernel(value: T) -> T;
	fn support() -> T;
}

mod nearest;
pub use self::nearest::Nearest;

mod linear;
pub use self::linear::Linear;

pub mod cubic;
pub use self::cubic::Cubic;

pub mod gaussian;
pub use self::gaussian::Gaussian;

pub mod lanczos;
pub use self::lanczos::{Lanczos2, Lanczos3};
<gh_stars>0
//! Tests auto-converted from "sass-spec/spec/directives/warn/escaped.hrx"

#[test]
fn test() {
    assert_eq!(
        crate::rsass(
            "@w\\61rn warning;\
            \na {b: c}\
            \n"
        )
        .unwrap(),
        "a {\
        \n  b: c;\
        \n}\
        \n"
    );
}
<reponame>kingxsp/rust-postgres
#![warn(rust_2018_idioms, clippy::all)]

use futures::{try_ready, Async, Future, Poll};
#[cfg(feature = "runtime")]
use openssl::error::ErrorStack;
use openssl::hash::MessageDigest;
use openssl::nid::Nid;
#[cfg(feature = "runtime")]
use openssl::ssl::SslConnector;
use openssl::ssl::{ConnectConfiguration, HandshakeError, SslRef};
use std::fmt::Debug;
#[cfg(feature = "runtime")]
use std::sync::Arc;
use tokio_io::{AsyncRead, AsyncWrite};
use tokio_openssl::{ConnectAsync, ConnectConfigurationExt, SslStream};
#[cfg(feature = "runtime")]
use tokio_postgres::tls::MakeTlsConnect;
use tokio_postgres::tls::{ChannelBinding, TlsConnect};

#[cfg(test)]
mod test;

#[cfg(feature = "runtime")]
#[derive(Clone)]
pub struct MakeTlsConnector {
    connector: SslConnector,
    config: Arc<dyn Fn(&mut ConnectConfiguration) -> Result<(), ErrorStack> + Sync + Send>,
}

#[cfg(feature = "runtime")]
impl MakeTlsConnector {
    pub fn new(connector: SslConnector) -> MakeTlsConnector {
        MakeTlsConnector {
            connector,
            config: Arc::new(|_| Ok(())),
        }
    }

    pub fn set_callback<F>(&mut self, f: F)
    where
        F: Fn(&mut ConnectConfiguration) -> Result<(), ErrorStack> + 'static + Sync + Send,
    {
        self.config = Arc::new(f);
    }
}

#[cfg(feature = "runtime")]
impl<S> MakeTlsConnect<S> for MakeTlsConnector
where
    S: AsyncRead + AsyncWrite + Debug + 'static + Sync + Send,
{
    type Stream = SslStream<S>;
    type TlsConnect = TlsConnector;


e_equities_bqt_xdp_v2_1_a.fields.market_id_of_the_close = ProtoField.new("Market ID of the Close", "nyse.equities.bqt.xdp.v2.1.a.marketidoftheclose", ftypes.UINT16)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.market_state = ProtoField.new("Market State", "nyse.equities.bqt.xdp.v2.1.a.marketstate", ftypes.STRING)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message = ProtoField.new("Message", "nyse.equities.bqt.xdp.v2.1.a.message", ftypes.STRING)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message_count = ProtoField.new("Message Count", "nyse.equities.bqt.xdp.v2.1.a.messagecount", ftypes.UINT8)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message_header = ProtoField.new("Message Header", "nyse.equities.bqt.xdp.v2.1.a.messageheader", ftypes.STRING)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message_size = ProtoField.new("Message Size", "nyse.equities.bqt.xdp.v2.1.a.messagesize", ftypes.UINT16)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message_type = ProtoField.new("Message Type", "nyse.equities.bqt.xdp.v2.1.a.messagetype", ftypes.UINT16)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.message_unavailable_message = ProtoField.new("Message Unavailable Message", "nyse.equities.bqt.xdp.v2.1.a.messageunavailablemessage", ftypes.STRING)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.mpv = ProtoField.new("Mpv", "nyse.equities.bqt.xdp.v2.1.a.mpv", ftypes.UINT16)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.nanoseconds = ProtoField.new("Nanoseconds", "nyse.equities.bqt.xdp.v2.1.a.nanoseconds", ftypes.UINT32)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.next_source_seq_num = ProtoField.new("Next Source Seq Num", "nyse.equities.bqt.xdp.v2.1.a.nextsourceseqnum", ftypes.UINT32)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.number_of_close_prices = ProtoField.new("Number Of Close Prices", "nyse.equities.bqt.xdp.v2.1.a.numberofcloseprices", ftypes.UINT8)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.ok_for_late_hours = ProtoField.new("Ok For Late Hours", "nyse.equities.bqt.xdp.v2.1.a.okforlatehours", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x04)
omi_nyse_equities_bqt_xdp_v2_1_a.fields.ok_for_morning_hours = ProtoField.new("Ok For Morning Hours", "nyse.equities.bqt.xdp.v2.1.a.okformorninghours", ftypes.UINT8, {[1]="Yes",


              for(int i = stack.size(); i > 0; i-- ) {
                    buffer.append(stack.get(i-1) + ((i != 1) ? "\n" : ""));
                }
            }
            return buffer.toString();
        }
    }

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

package java.security;

import java.util.*;
import java.io.ObjectStreamField;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;

/**
 * A UnresolvedPermissionCollection stores a collection
 * of UnresolvedPermission permissions.
 *
 * @see java.security.Permission
 * @see java.security.Permissions
 * @see java.security.UnresolvedPermission
 *
 *
 * @author Roland Schemers
 *
 * @serial include
 */

final class UnresolvedPermissionCollection
extends PermissionCollection
implements java.io.Serializable
{
    /**
     * Key is permission type, value is a list of the UnresolvedPermissions
     * of the same type.
     * Not serialized; see serialization section at end of class.
     */
    private transient Map<String, List<UnresolvedPermission>> perms;

    /**
     * Create an empty UnresolvedPermissionCollection object.
     *
     */
    public UnresolvedPermissionCollection() {
        perms = new HashMap<String, List<UnresolvedPermission>>(11);
    }

    /**
     * Adds a permission to this UnresolvedPermissionCollection.
     * The key for the hash is the unresolved permission's type (class) name.
     *
     * @param permission the Permission object to add.
     */

    public void add(Permission permission)
    {
        if (! (permission instanceof UnresolvedPermission))
            throw new IllegalArgumentException("invalid permission: "+
                                               permission);
        UnresolvedPermission up = (UnresolvedPermission) permission;

        List<UnresolvedPermission> v;
        synchronized (this) {
            v = perms.get(up.getName());
            if (v == null) {
                v = new ArrayList<UnresolvedPermission>();
                perms.put(up.getName(), v);
            }
        }
        synchronized (v) {
            v.add(up);
        }
    }

    /**
     * get any unresolved permissions of the same type as p,
     * and return the List containing them.
     */
    List<UnresolvedPermission> getUnresolvedPermissions(Permission p) {
        synchronized (this) {
            return perms.get(p.getClass().getName());
        }
    }

    /**
     * always returns false for unresolved permissions
     *
     */
    public boolean implies(Permission permission)
    {
        return false;
    }

    /**
     * Returns an enumeration of all the UnresolvedPermission lists in the
     * container.
     *
     * @return an enumeration of all the UnresolvedPermission objects.
     */

    public Enumeration<Permission> elements()


    }

    val dir = File(name)

    if (!dir.exists()) {
        dir.mkdirs()
        println("Created output folder")
    }
    val dirA = File(dir, "assets")
    if (!dirA.exists()) {
        dirA.mkdirs()
        println("Created assets folder")
    }

    val fl = File(dirA, "face_${name}_dial_img_${asset}.c")
    fl.writeText(text)
}

var lvItem =
        """
    {{CHILD}} = lv_img_create({{PARENT}});
    lv_img_set_src({{CHILD}}, &{{RESOURCE}});
    lv_obj_set_width({{CHILD}}, LV_SIZE_CONTENT);
    lv_obj_set_height({{CHILD}}, LV_SIZE_CONTENT);
    lv_obj_set_x({{CHILD}}, {{CHILD_X}});
    lv_obj_set_y({{CHILD}}, {{CHILD_Y}});
    lv_obj_add_flag({{CHILD}}, LV_OBJ_FLAG_ADV_HITTEST );
    lv_obj_clear_flag({{CHILD}}, LV_OBJ_FLAG_SCROLLABLE );
"""

var h_file =
        """
// File generated by bin2lvgl
// developed by fbiego.
// https://github.com/fbiego
// Watchface: {{NAME}}

#ifndef _FACE_{{NAME}}_H
#define _FACE_{{NAME}}_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "lvgl.h"

//#define ENABLE_FACE_{{NAME}} // ({{FACE_NAME}}) uncomment to enable or define it elsewhere

#ifdef ENABLE_FACE_{{NAME}}
    extern lv_obj_t *face_{{name}};
{{EXTERN}}

{{DECLARE}}

#endif
    void onFaceEvent(lv_event_t * e);

    void init_face_{{name}}(void (*callback)(const char*, const lv_img_dsc_t *, lv_obj_t **));
    void update_time_{{name}}(int second, int minute, int hour, bool mode, bool am, int day, int month, int year, int weekday);
    void update_weather_{{name}}(int temp, int icon);
    void update_status_{{name}}(int battery, bool connection);
    void update_activity_{{name}}(int steps, int distance, int kcal);
    void update_health_{{name}}(int bpm, int oxygen);
    void update_all_{{name}}(int second, int minute, int hour, bool mode, bool am, int day, int month, int year, int weekday,
                int temp, int icon, int battery, bool connection, int steps, int distance, int kcal, int bpm, int oxygen);
    void update_check_{{name}}(lv_obj_t *root, int second, int minute, int hour, bool mode, bool am, int day, int month, int year, int weekday,
                int temp, int icon, int battery, bool connection, int steps, int distance, int kcal, int bpm, int oxygen);

#ifdef __cplusplus
}
#endif

#endif
"""

var c_file =
        """
// File generated by bin2lvgl
// developed by fbiego.
// https://github.com/fbiego
// Watchface: {{NAME}}

#include "{{name}}.h"

#ifdef ENABLE_FACE_{{NAME}}

lv_obj_t *face_{{name}};
{{OBJECTS}}

#if LV_COLOR_DEPTH != 16
#error "LV_COLOR_DEPTH should be 16bit for watchfaces"
#endif
#if LV_COLOR_16_SWAP != 1
#error "LV_COLOR_16_SWAP should be 1 for watchfaces"
#endif

{{RSC_ARR}}

#endif

void init_face_{{name}}(void (*callback)(const char*, const lv_img_dsc_t *, lv_obj_t **)){
#ifdef ENABLE_FACE_{{NAME}}
    face_{{name}} = lv_obj_create(NULL);
    lv_o


ResetMusicVolumeBlock {
        return ResetMusicVolumeBlock(engine, this.startingVolume).also {
            this.copyBaseInfoTo(it)
        }
    }
}package polyrhythmmania.gamemodes.practice

import com.badlogic.gdx.Gdx
import polyrhythmmania.PRManiaGame
import polyrhythmmania.achievements.Achievements
import polyrhythmmania.gamemodes.GameMode
import polyrhythmmania.statistics.PlayTimeType
import polyrhythmmania.world.WorldMode
import polyrhythmmania.world.WorldSettings
import polyrhythmmania.world.WorldType

abstract class AbstractPracticeTutorial(main: PRManiaGame, playTimeType: PlayTimeType, val flagBit: Int)
    : GameMode(main, playTimeType) {

    init {
        container.world.worldMode = WorldMode(WorldType.Polyrhythm())
        container.world.showInputFeedback = true // Overrides user settings
        container.world.worldSettings = WorldSettings(showInputIndicators = true, useEnglishSigns = true)
    }

    init {
        // Trigger play all tutorials achievement
        engine.endSignalReceived.addListener {
            if (it.getOrCompute()) {
                Gdx.app.postRunnable {
                    Achievements.tutorialFlag = Achievements.tutorialFlag or flagBit
                    if (Achievements.tutorialFlag == 0b0011) {
                        Achievements.awardAchievement(Achievements.playAllTutorials)
                    }
                    Achievements.persist()
                }
            }
        }
    }

}package polyrhythmmania.gamemodes.endlessmode

import polyrhythmmania.editor.block.CubeType

object EndlessPatterns {

    const val ENDLESS_PATTERNS_VERSION: Int = 2

    /*
    From CubeType.kt:
    '-' -> NONE
    'P' -> PISTON
    '#' -> PLATFORM

    '_' -> NO_CHANGE
    'O' -> PISTON_OPEN
     */

    val allPatterns: List<Pattern> = listOf(
"""P---P---""".parsePattern(Difficulty.VERY_EASY, flippable = true),
"""##P---P---""".parsePattern(Difficulty.VERY_EASY, flippable = true),
"""P-P-P-P-""".parsePattern(Difficulty.VERY_EASY, flippable = true),
"""##P-P-P-""".parsePattern(Difficulty.VERY_EASY, flippable = true),
"""##P---P---""".parsePattern(Difficulty.VERY_EASY, flippable = true),
"""#P-P-P-P-""".parsePattern(Difficulty.VERY_EASY, flippable = true),

"""P--PP-P-#""".parsePattern(Difficulty.EASY, flippable = true),
"""P-P-P-P-
  |######P-""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""P-P-P-P-
  |##P---P-""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""P-P-P-P-
  |P-P-P-P-""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""P-P-P-P-
  |P---P---""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""P---P---
  |##P---P---""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""P--P--##
  |P-PP--##""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""####P--#
  |P----P-#""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""####P-##
  |P-P---##""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""#P---P-#
  |#P-P---#""".trimMargin("|").parsePattern(Difficulty.EASY, flippable = true),
"""##P--P-#
  |##P--P-#""".trimMargin("


ion == "jar" }
                        .map { "data/lib/" + it.name }
                        .sorted()
                        .joinToString(separator = " ")
            )
        }
    }
}

// Copy this app () and the demo apps into 'sdk' folder
val demoApp = configurations.dependencyScope("demoApp")

dependencies {
    demoApp(project(":ConsistencyTestingTool"))
    demoApp(project(":ISSTestingTool"))
    demoApp(project(":MigrationTestingTool"))
    demoApp(project(":PlatformTestingTool"))
    demoApp(project(":StatsDemo"))
}

val demoAppsRuntimeClasspath =
    configurations.resolvable("demoAppsRuntimeClasspath") {
        extendsFrom(demoApp.get())
        shouldResolveConsistentlyWith(configurations.mainRuntimeClasspath.get())
        attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
        attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
        attributes.attribute(
            LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE,
            objects.named(LibraryElements.JAR),
        )
        attributes.attribute(Attribute.of("javaModule", Boolean::class.javaObjectType), true)
    }
val demoAppsJars =
    configurations.resolvable("demoAppsJars") {
        extendsFrom(demoApp.get(), configurations.internal.get())
        attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
        isTransitive = false // only the application Jars, not the dependencies
    }

tasks.register<Copy>("copyApps") {
    destinationDir = layout.projectDirectory.dir("../sdk").asFile
    from(tasks.jar) // 'swirlds.jar' goes in directly into 'sdk'
    into("data/apps") {
        // Copy built jar into `data/apps` and rename
        from(demoAppsJars)
        rename { "${it.substring(0, it.indexOf("-"))}.jar" }
    }
    into("data/lib") {
        // Copy dependencies into `sdk/data/lib`
        from(project.configurations.runtimeClasspath)
        from(demoAppsRuntimeClasspath.get().minus(demoAppsJars.get()))
    }
}

tasks.assemble { dependsOn(tasks.named("copyApps")) }
package com.onereva.simpos

import android.graphics.BitmapFactory
import android.util.Base64
import android.webkit.JavascriptInterface
import com.onereva.simpos.manager.NetworkPrinterManager
import com.onereva.simpos.manager.SunmiPrintManager

class SimposJsObject {

    @JavascriptInterface
    fun printReceipt(base64: String) {
        val options = BitmapFactory.Options()
        options.inTargetDensity = 160
        options.inDensity = 160
        try {
            val decodedString = Base64.decode(base64, Base64.DEFAULT)
            val bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.size)
            SunmiPrintManager.instance.setAlign(1)
            SunmiPrintManager.instance.printBitmap(bitmap)
            SunmiPrintManager.instance.feedPaper()
            SunmiPrintManager.instance.cutpaper()
            SunmiPrintManager.instance.openCashBox()

        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    @JavascriptInterface
    fun printRestaurantOrder(data: String) {
        try {
            val parts = data.split("SIMPOS").toTypedArray()
            val decodedString = Base64.decode(parts[1], Base64.DEFAULT)
            val bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.size)
            NetworkPrinterManager.instance.printBitmap(bitmap, parts[0])
        } catch (e: java.lang.Exception) {
            e.printStackTrace()
        }
    }
}
package com.hieuwu.groceriesstore.domain.usecases.impl

import com.hieuwu.groceriesstore.data.repository.CategoryRepository
import


="_blank">Download the latest compiled binaries for your platform.

Place the binaries in the appropriate folder for your platform

For VST3, see VST3 location for Windows or VST3 location for macOS

Open your DAW and scan for new plugins. Artix should show up in your DAW's plugin list.

User Interface

Here's a breakdown of the user interface:

1. Toolbar

(A) Preset Selector
The preset selector displays the currently selected preset. The text on the selector will change colors to indicate that unsaved changes have been made.
A single click on the selector will open up the presets menu. This menu will show the included factory presets along with your own custom presets from the configured data folder. You can also change presets using the buttons on either side of the preset selector.

Additionally, double clicking the preset selector allows you to edit the preset's name.

Load and Save Buttons
The load and save buttons, as the name implies, allow you to load and save presets from and to arbitrary files.

Settings Button
The settings menu allows you to access and change a handful of useful configuration parameters.

The Theme menu displays a list of available themes to choose from.

Open Data Folder opens your currently configured data folder in your system's file browser.

Change Data Folder allows you to set a new data folder.

Rescan Data Folder reloads all the available presets from the currently configured data folder.

2. Main area

(B) MIDI Output Channel Selector
Click and drag up or down to change. If you drag farther notes will change faster. You can also use you mouse's scroll wheel when the cursor is on top of the selector to make changes.
  This is the MIDI channel that all MIDI messages going through Artix will be rerouted through.

(C) MIDI Channel Panel

(D) MIDI Channel Number Indicator
  This indicates this MIDI channel's number.
  Incoming MIDI note on / off messages for this channel will automatically be converted into the configured note (see F below).

(E) MIDI Channel Name
  Double click to edit. This allows you to set a name for this MIDI channel. It is useful to name the channel after the


import json
from unittest import skip

from django.contrib.auth import get_user_model

from bfet import DjangoTestingModel
from rest_framework.test import APITestCase

from src.super_investors.models import Superinvestor
from tests.data.superinvestors.superinvestors_data import (
    LIST_SUPERINVESTORS,
    SINGLE_SUPERINVESTOR,
)
from tests.utils import BaseAPIViewTestMixin

User = get_user_model()

class TestAllSuperinvestorsAPIView(BaseAPIViewTestMixin, APITestCase):
    path_name = "api:superinvestors_lista_superinversores"
    url_path = "/lista-superinversores/"

    @classmethod
    def setUpTestData(cls) -> None:
        super().setUpTestData()
        for investor in LIST_SUPERINVESTORS:
            DjangoTestingModel.create(Superinvestor, **investor)

    def test_success_response(self):
        response = self.client.get(self.full_endpoint, format="json")
        expected_data = [
            {
                "name": "Bryan Lawrence - Oakcliff Capital",
                "info_accronym": "OCL",
                "slug": "bryan-lawrence-oakcliff-capital",
            },
            {
                "name": "Charlie Munger - Daily Journal Corp.",
                "info_accronym": "DJCO",
                "slug": "charlie-munger-daily-journal-corp",
            },
            {
                "name": "Dennis Hong - ShawSpring Partners",
                "info_accronym": "SP",
                "slug": "dennis-hong-shawspring-partners",
            },
        ]
        assert json.loads(json.dumps(response.data)) == expected_data

@skip("Not ready")
class TestSuperinvestorActivityAPIView(BaseAPIViewTestMixin, APITestCase):
    path_name = "api:superinvestors_lista_movimientos"
    url_path = "/lista-movimientos/"
    params = {"slug": ""}

    @classmethod
    def setUpTestData(cls) -> None:
        super().setUpTestData()
        DjangoTestingModel.create(Superinvestor, **SINGLE_SUPERINVESTOR)

    def test_success_response(self):
        response = self.client.get(self.full_endpoint, format="json")
        print(response)
        print(response.data)
        expected_data = []
        assert json.loads(json.dumps(response.data))[0] == expected_data

@skip("Not ready")
class TestSuperinvestorHistoryAPIView(BaseAPIViewTestMixin, APITestCase):
    path_name = "api:superinvestors_lista_historial"
    url_path = "/lista-historial/"
    params = {"slug": ""}

    @classmethod
    def setUpTestData(cls) -> None:
        super().setUpTestData()

    def test_success_response(self):
        response = self.client.get(self.full_endpoint, format="json")
        expected_data = []
        assert json.loads(json.dumps(response.data))[0] == expected_data


%);-o-mask-image:-o-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 45%, #fff 65%)}.author:before{content:'—'}[data-body-class] .source{bottom:0;left:0}.source a{border:none}[data-tooltip-property],[data-tooltip]{position:relative;cursor:pointer;border-bottom:none}[data-tooltip-property]:hover:before,[data-tooltip-property]:hover:after,[data-tooltip]:hover:before,[data-tooltip]:hover:after{position:absolute;z-index:100;font-size:20px;white-space:pre}[data-tooltip-property]:hover:before,[data-tooltip]:hover:before{border:solid transparent;height:0;width:0;border-bottom-color:rgba(0,0,0,0.85);border-width:10px;content:' ';top:15px;left:20px;z-index:101}[data-tooltip-property]:hover:after,[data-tooltip]:hover:after{content:attr(data-tooltip);background:rgba(0,0,0,0.85);padding:10px 15px;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;left:0;top:34px;width:330px;font-weight:normal;-webkit-box-shadow:3px 3px 10px #515151;-moz-box-shadow:3px 3px 10px #515151;box-shadow:3px 3px 10px #515151}[data-tooltip-property] .property,[data-tooltip] .property{border-bottom:1px dotted #515151;color:#515151}#chrome-heart .chrome-logo{display:inline-block;margin-bottom:-30px;background:url(../../images/chrome_logo.png) 50% 50% no-repeat;width:100px;height:100px;background-position:50% 50%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}#chrome-heart h1{display:inline;font-size:50px}#chrome-heart h1 .jitter{cursor:none;display:inline-block}#chrome-heart h1 .jitter:before{content:'/'}#chrome-heart h1:hover .jitter:before{color:#EB0000;content:'\002665'}#who a{border:none}#who .avatar{float:right;background:url(https://lh6.googleusercontent.com/-0W5UECRQxqc/TrIv9fqjOaI/AAAAAAAACns/6Hm7wJfJKz8/IMG_20111031_121123.jpg?sz=500) -10px 0;width:365px;height:500px;-webkit-mask-size:50% 50%;-moz-mask-size:50% 50%;-ms-mask-size:50% 50%;-o-mask-size:50% 50%;mask-size:50% 50%;-webkit-mask-position:50% 50%;-moz-mask-position:50% 50%;-ms-mask-position:50% 50%;-o-mask-position:50% 50%;mask-position:50% 50%;-webkit-transition:-webkit-mask-size 0.6s cubic-bezier(0.17, 0.67, 0, 1.45);-moz-transition:-moz-mask-size 1s cubic-bezier(0.17, 0.67, 0, 1.45);-o-transition:-o-mask-size 1s cubic-bezier(0.17, 0.67, 0, 1.45);-ms-transition:-ms-mask-size 1s cubic-bezier(0.17, 0.67, 0, 1.45)}#who .avatar.to-build{opacity:1}#who .avatar.build-current,#who .avatar:hover{-webkit-mask-size:100% 100%;-moz-mask-size:100% 100%;-ms-mask-size:100% 100%;-o-mask-size:100% 100%;mask-size:100% 100%


](../../macro/docs/ru/macro/pagination.md)
  * [Теги форм и элементов форм](../../macro/docs/ru/macro/form_tags.md)
  * [Композиция шаблонов (включение, обворачивание и переиспользование шаблонов)](../../macro/docs/ru/macro/template_composition.md)
* [Полный словарь MACRO-тегов](../../macro/docs/ru/macro/tags.md)
* [Полный словарь MACRO-фильтров](../../macro/docs/ru/macro/filters.md)

## Логгирование
##Разделение прав
[ACL](../../acl/docs/ru/acl.md) — функционал [ACL](http://ru.wikipedia.org/wiki/ACL)

## Низкоуровневая работа с БД

* [DBAL (database abstraction layer)](../../dbal/docs/ru/dbal.md) — пакет, абстрагирующий работу с БД
  * [Введение в пакет DBAL](../../dbal/docs/ru/dbal/intro.md)
  * [Подключение к базе данных](../../dbal/docs/ru/dbal/connection.md)
  * [Использование классов из подсистем Query и Criteria](../../dbal/docs/ru/dbal/intro_to_query_and_criteria.md)
  * [Поддержка транзакций](../../dbal/docs/ru/dbal/transactions.md)
  * [Загрузка sql-дампа базы данных](../../dbal/docs/ru/dbal/dump_load.md)

## Тестирование

* [TESTS_RUNNER](../../tests_runner/docs/ru/tests_runner.md) — тестовая оболочка, основанная на SimpleTest, позволяющая организовать группы тестов, используя расположение тестов в файловой системе
  * [limb_unit — консольный инструмент для выполнения SimpleTest тестов](../../tests_runner/docs/ru/tests_runner/limb_unit.md)

## Оптимизация производительности
[CACHE2](../../cache2/docs/ru/cache2.md) — обобщение различных техник кеширования

## Дополнительные возможности

* [IMAGEKIT](../../imagekit/docs/ru/imagekit.md) — работа с графическими библиотеками (imagick, gd).
* [FS](../../fs/docs/ru/fs.md) — работа с файловой системой: базовые файловые операции, нахождения файлов по алиасам и др.
* [I18N](../../i18n/docs/ru/i18n.md) — интернационализация приложений
* [JS](https://github.com/r-kitaev/limb/tree/docs/js) — JavaScript средства для модульной загрузки кода и набор базовых JavaScript классов
* [CALENDAR](../../calendar/docs/ru/calendar.md) — JavaScript календарь
* [MAIL](../../mail/docs/ru/mail.md) — отправка почты
* [NET](../../net/docs/ru/net.md) — работа с сетевыми протоколами(в основном с HTTP)
* [SESSION](../../session/docs/ru/session.md) — cредства для работы с PHP сессиями и абстрагирования от источника хранения сессионных данных
* [TREE](../../tree/docs


import torch
from langchain_community.llms import HuggingFacePipeline
from transformers import (
  AutoTokenizer,
  AutoModelForCausalLM,
  BitsAndBytesConfig,
  pipeline
)

def load_model(model_name):
    torch.set_default_device("cuda")
    # Import model and tokenizer
    model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", trust_remote_code=True)
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    # Define text generation pipeline
    text_generation_pipeline = pipeline(
        model=model,
        tokenizer=tokenizer,
        task="text-generation",
        temperature=0.01,
        top_p=0.95,
        do_sample=True,
        repetition_penalty=1.1,
        return_full_text=True,
        max_new_tokens=500,
        device=0,
    )
    model_pipeline = HuggingFacePipeline(pipeline=text_generation_pipeline)
    return model_pipeline

def load_quantized_model(model_name):
    # Set up tokenizer
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    tokenizer.pad_token = tokenizer.eos_token
    tokenizer.padding_side = "right"
    # Activate 4-bit precision base model loading
    use_4bit = True
    # Compute dtype for 4-bit base models
    bnb_4bit_compute_dtype = "float16"
    # Quantization type (fp4 or nf4)
    bnb_4bit_quant_type = "nf4"
    # Activate nested quantization for 4-bit base models (double quantization)
    use_nested_quant = False
    # Set up quantization config
    compute_dtype = getattr(torch, bnb_4bit_compute_dtype)
    # Create bnb config
    bnb_config = BitsAndBytesConfig(
        load_in_4bit=use_4bit,
        bnb_4bit_quant_type=bnb_4bit_quant_type,
        bnb_4bit_compute_dtype=compute_dtype,
        bnb_4bit_use_double_quant=use_nested_quant,
    )
    # Load pre-trained config
    model = AutoModelForCausalLM.from_pretrained(
        model_name,
        quantization_config=bnb_config,
        trust_remote_code=True
    )
    # Define text generation pipeline (from transformers library)
    text_generation_pipeline = pipeline(
        model=model,
        tokenizer=tokenizer,
        task="text-generation",
        temperature=0.1,
        repetition_penalty=1.1,
        return_full_text=True,
        max_new_tokens=500,
    )
    # Initialize pipeline
    llm_pipeline = HuggingFacePipeline(pipeline=text_generation_pipeline)
    return llm_pipeline


out-toggle::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgb(33, 37, 41)" class="bi bi-chevron-down" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/></svg>')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#517699;color:#fdfefe}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgba(253, 254, 254, 1)" class="bi bi-toggle-off" viewBox="0 0 16 16"><path d="M11 4a4 4 0 0 1 0 8H8a4.992 4.992 0 0 0 2-4 4.992 4.992 0 0 0-2-4h3zm-6 8a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM0 8a5 5 0 0 0 5 5h6a5 5 0 0 0 0-10H5a5 5 0 0 0-5 5z"/></svg>')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgba(253, 254, 254, 1)" class="bi bi-toggle-on" viewBox="0 0 16 16"><path d="M5 3a5 5 0 0 0 0 10h6a5 5 0 0 0 0-10H5zm6 9a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/></svg>')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgba(56, 63, 69, 1)" class="bi bi-toggle-off" viewBox="0 0 16 16"><path d="M11 4a4 4 0 0 1 0 8H8a4.992 4.992 0 0 0 2-4 4.992 4.992 0 0 0-2-4h3zm-6 8a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM0 8a5 5 0 0 0 5 5h6a5 5 0 0 0 0-10H5a5 5 0 0 0-5 5z"/></svg>')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="rgba(56, 63, 69, 1)" class="bi bi-toggle-on" viewBox="0 0 16 16"><path d="M5 3a5 5 0 0 0 0 10h6a5 5 0 0 0 0-10H5zm6 9a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/></svg>')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-wei


local spbt = {}
buttons = require("ui/buttons")

local default_settings = {
    text = { size = 10, font = 'Lucida Console',},
    bg = { alpha = 200, red = 0, green = 100, blue = 100, visible = false },
}

function spbt.new(label, spell, cost, x, y)
    local me = { spell = spell, cost = cost}
    me.settings = default_settings
    me.settings.pos = { x = x, y = y }
    me.set = {red = 100, green = 255, blue = 100 }
    me.disabled = true
    me.button = buttons.new(label, me.settings)
    me.button.left_click = function() toggle_spell(me) end
    me.button.hover_on = function() hover_on(me) end
    me.button.hover_off = function() hover_off(me) end
    return setmetatable(me, {__index = spbt})
end

function spbt.update(me)
    if setspells[me.spell] ~= nil then
        me.button.color(me.set.red, me.set.green, me.set.blue)
        me.disabled = false
    elseif not setspells.learned[me.spell] then
        me.button.color(150, 150, 150)
        me.disabled = true
    elseif setspells.limits.points - setspells.points < me.cost or setspells.slots == setspells.limits.slots then
        me.button.color(255, 100, 100)
        me.disabled = true
    else
        me.button.color(255, 255, 255)
        me.disabled = false
    end
end

function spbt.show(me)
    me.button.show()
end

function spbt.hide(me)
    me.button.hide()
end

function spbt.destroy(me)
    me.button.destroy(me.button)
    me = nil
end

function spbt.pos(me, x, y)
    me.button.pos(x, y)
end

function hover_on(me)
    me.button.bg_visible(true)
end

function hover_off(me)
    me.button.bg_visible(false)
end

function spbt.color(me,r,g,b)
    me.button.color(r,g,b)
    me.set.red


press or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

namespace Castle.DynamicProxy.Tests.GenClasses
{
	using System.Collections.Generic;

	public class ClassWithIndexer<TKey, TVal>
	{
		private Dictionary<TKey, TVal> map = new Dictionary<TKey, TVal>();

		public virtual TVal this[TKey key]
		{
			get { return map[key]; }
			set
			{
				if (map.ContainsKey(key))
					map[key] = value;
				else
					map.Add(key, value);
			}
		}

	}
}


de goalNode = new RRTNode2D(3.0, 2.0);
      RRTPlanner2D rrtPlanner = new RRTPlanner2D(startNode, goalNode, 0.6);

      RRTNode upperBoundNode = new RRTNode2D(5.0, 4.0);
      RRTNode lowerBoundNode = new RRTNode2D(-5.0, -4.0);
      rrtPlanner.getRRTTree().setUpperBound(upperBoundNode);
      rrtPlanner.getRRTTree().setLowerBound(lowerBoundNode);

      int maxNumberOfExpanding = 1500;
      double[] rrtPointInfo;
      rrtPointInfo = new double[maxNumberOfExpanding * 4];
      double[] rrtNewPointInfo;
      rrtNewPointInfo = new double[4];

      for (int i = 0; i < maxNumberOfExpanding; i++)
      {
         for (int j = 0; j < 4; j++)
         {
            rrtPointInfo[i * 4 + j] = rrtNewPointInfo[j];
         }

         if (rrtPlanner.expandTreeGoal(rrtNewPointInfo) == true)
         {
            i++;
            for (int j = 0; j < 4; j++)
            {
               rrtPointInfo[i * 4 + j] = rrtNewPointInfo[j];
            }

            i++;
            for (int j = 0; j < 2; j++)
            {
               rrtPointInfo[i * 4 + j] = rrtPointInfo[(i-1) * 4 + j];
               rrtPointInfo[i * 4 + 2+j] = rrtPlanner.getGoalNode().getNodeData(j);
            }
            break;
         }
      }

      JFrame frame;
      Dimension dim;

//      String newAmount = new Scanner(System.in).nextLine();

      rrtPlanner.updateOptimalPath(101, 100);

      frame = new JFrame("RRTTest");
      RRTTestProject drawPanel = new RRTTestProject(100, rrtPointInfo, rrtPlanner);
      dim = new Dimension(drawPanel.sizeU, drawPanel.sizeV);
      frame.setPreferredSize(dim);
      frame.setLocation(200, 100);

      frame.add(drawPanel);
      frame.pack();
      frame.setVisible(true);

   }
}

package us.ihmc.manipulation.planning.rrt.configurationAndTimeSpace;

public class TaskRegion
{
   private double[] upperLimit;
   private double[] lowerLimit;
   private boolean[] isEnable;

   private double trajectoryTime;

   public TaskRegion(int size)
   {
      upperLimit = new double[size];
      lowerLimit = new double[size];
      isEnable = new boolean[size];
   }

   public void setRandomRegion(int index, double lowerValue, double upperValue)
   {
      if(index == 0)
      {
         upperLimit[index] = upperValue;
         trajectoryTime = upperValue;
      }
      else
      {
         upperLimit[index] =  upperValue;
      }

      lowerLimit[index] = lowerValue;

      if(upperValue == lowerValue)
      {
         isEnable[index] = false;
      }
      else
      {
         isEnable[index] = true;
      }
   }

   public boolean isEnable(int index)
   {
      return isEnable[


ms,
        isForced: Boolean,
    ): SyncOutcome
}

suspend fun <T, R, Params> SyncProcessor<Params>.runSync(
    job: SyncJob<T, R, Params>,
    scope: List<(() -> Unit) -> Unit> = emptyList(),
    params: Params,
    isForced: Boolean,
): SyncOutcome = runSync(listOf(job), scope, params, isForced)

suspend fun <T, R, Params> SyncProcessor<Params>.runSync(
    job: SyncJob<T, R, Params>,
    db: Transacter,
    params: Params,
    isForced: Boolean,
) = runSync(listOf(job), db, params, isForced)

suspend fun <Params> SyncProcessor<Params>.runSync(
    list: Iterable<SyncJob<*, *, Params>>,
    db: Transacter,
    params: Params,
    isForced: Boolean,
): SyncOutcome = runSync(list, listOf { db.transaction { it() } }, params, isForced)
/*
 *    Copyright 2024, Petr Laštovička as Lasta apps, All rights reserved
 *
 *     This file is part of Menza.
 *
 *     Menza is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     Menza is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with Menza.  If not, see <https://www.gnu.org/licenses/>.
 */

package cz.lastaapps.api.core.domain.model

import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf
import kotlinx.datetime.DayOfWeek
import kotlinx.datetime.LocalTime

data class Info(
    val header: Message?,
    val footer: Message?,
    val contacts: ImmutableList<Contact>,
    val openingTimes: ImmutableList<PlaceOpeningInfo>,
    val links: ImmutableList<Link>,
    val address: Address?,
) {
    companion object {
        val empty: Info
            get() =
                Info(
                    null,
                    null,
                    persistentListOf(),
                    persistentListOf(),
                    persistentListOf(),
                    null,
                )
    }
}

data class Contact(
    val role: String?,
    val name: String?,
    val phone: PhoneNumber?,
    val email: Email?,
) {
    val isEmpty: Boolean
        get() =
            role == null && name == null && phone == null && email == null
}

data class Link(
    val link: String,
    val description: String,
)

data class PlaceOpeningInfo(
    val name: String,
    val abbrev: String,
    val types: ImmutableList<PlaceOpeningType>,
)

data class PlaceOpeningType(
    val description: String?,
    val times: ImmutableList<PlaceOpeningTime>,
)

data class PlaceOpeningTime(
    val startDay: DayOfWeek,
    val endDay: DayOfWeek,
    val startTime: LocalTime,
    val endTime: LocalTime,
)

data class Address(
    val location: LocationName,
    val gps: LatLong?,
)

@JvmInline
value class Message(
    val text: String,
)

@JvmInline
value class LocationName(
    val name: String,
)

@JvmInline
value class Email(
    val mail: String,
)

@JvmInline
value class PhoneNumber(
    val number: String,
)

data class LatLong(
    val lat: Float,
    val long: Float,
)
/*
 *    Copyright 2024, Petr Laštovička as Lasta


 this),
    );
  }

  static CurrentUserCollections? fromJson(String jsonString) {
    return serializers.deserializeWith(
      CurrentUserCollections.serializer,
      json.decode(jsonString),
    );
  }

  static Serializer<CurrentUserCollections> get serializer =>
      _$currentUserCollectionsSerializer;
}
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:convert';

import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';

import '../serializers.dart';

part 'exif.g.dart';

abstract class Exif implements Built<Exif, ExifBuilder> {
  factory Exif([void Function(ExifBuilder)? updates]) = _$Exif;

  Exif._();

  @BuiltValueField(wireName: 'make')
  String? get make;

  @BuiltValueField(wireName: 'model')
  String? get model;

  @BuiltValueField(wireName: 'exposure_time')
  String? get exposureTime;

  @BuiltValueField(wireName: 'aperture')
  String? get aperture;

  @BuiltValueField(wireName: 'focal_length')
  String? get focalLength;

  @BuiltValueField(wireName: 'iso')
  int? get iso;

  String toJson() {
    return json.encode(serializers.serializeWith(Exif.serializer, this));
  }

  static Exif? fromJson(String jsonString) {
    return serializers.deserializeWith(
      Exif.serializer,
      json.decode(jsonString),
    );
  }

  static Serializer<Exif> get serializer => _$exifSerializer;
}
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:convert';

import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';

import '../serializers.dart';

part 'urls.g.dart';

abstract class Urls implements Built<Urls, UrlsBuilder> {
  factory Urls([void Function(UrlsBuilder b)? updates]) = _$Urls;

  Urls._();

  @BuiltValueField(wireName: 'raw')
  String? get raw;

  @BuiltValueField(wireName: 'full')
  String? get full;

  @BuiltValueField(wireName: 'regular')
  String? get regular;

  @BuiltValueField(wireName: 'small')
  String? get small;

  @BuiltValueField(wireName: 'thumb')
  String? get thumb;

  String toJson() {
    return json.encode(serializers.serializeWith(Urls.serializer, this));
  }

  static Urls? fromJson(String jsonString) {
    return serializers.deserializeWith(
      Urls.serializer,
      json.decode(jsonString),
    );
  }

  static Serializer<Urls> get serializer => _$urlsSerializer;
}
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'current_user_collections.dart';

// **************************************************************************
// BuiltValueGenerator
// **************************************************************************

Serializer<CurrentUserCollections> _$currentUserCollectionsSerializer =
    new _$CurrentUserCollectionsSerializer();

class _$CurrentUserCollectionsSerializer
    implements StructuredSerializer<CurrentUserCollections> {
  @override
  final Iterable<Type> types = const [
    CurrentUserCollections,
    _$CurrentUserCollections,
  ];
  @override


;
 *   //Cleanup the modal when we're done with it!
 *   $scope.$on('$destroy', function() {
 *     $scope.modal.remove();
 *   });
 * });
 * ```
 */
.factory('$ionicModal', ['$rootScope', '$document', '$compile', '$timeout', '$ionicPlatform', '$ionicTemplateLoader',
                function( $rootScope,   $document,   $compile,   $timeout,   $ionicPlatform,   $ionicTemplateLoader) {

  /**
   * @ngdoc controller
   * @name ionicModal
   * @module ionic
   * @description
   * Instantiated by the {@link ionic.service:$ionicModal} service.
   *
   * Hint: Be sure to call [remove()](#remove) when you are done with each modal
   * to clean it up and avoid memory leaks.
   */
  var ModalView = ionic.views.Modal.inherit({
    /**
     * @ngdoc method
     * @name ionicModal#initialize
     * @description Creates a new modal controller instance.
     * @param {object} options An options object with the following properties:
     *  - `{object=}` `scope` The scope to be a child of.
     *    Default: creates a child of $rootScope.
     *  - `{string=}` `animation` The animation to show & hide with.
     *    Default: 'slide-in-up'
     *  - `{boolean=}` `focusFirstInput` Whether to autofocus the first input of
     *    the modal when shown.  Default: false.
     */
    initialize: function(opts) {
      ionic.views.Modal.prototype.initialize.call(this, opts);
      this.animation = opts.animation || 'slide-in-up';
    },

    /**
     * @ngdoc method
     * @name ionicModal#show
     * @description Show this modal instance.
     */
    show: function() {
      var self = this;
      var modalEl = angular.element(self.modalEl);

      self.el.classList.remove('hide');

      $document[0].body.classList.add('modal-open');

      self._isShown = true;

      if(!self.el.parentElement) {
        modalEl.addClass(self.animation);
        $document[0].body.appendChild(self.el);
      }

      modalEl.addClass('ng-enter active')
             .removeClass('ng-leave ng-leave-active');

      $timeout(function(){
        modalEl.addClass('ng-enter-active');
        self.scope.$parent && self.scope.$parent.$broadcast('modal.shown');
        self.el.classList.add('active');
      }, 20);

      self._deregisterBackButton = $ionicPlatform.registerBackButtonAction(function(){
        self.hide();
      }, 200);

      ionic.views.Modal.prototype.show.call(self);

    },

    /**
     * @ngdoc method
     * @name ionicModal#hide
     * @description Hide this modal instance.
     */
    hide: function() {
      var self = this;
      self._isShown = false;
      var modalEl = angular.element(self.modalEl);

      self.el.classList.remove('active');
      modalEl.addClass('ng-leave');

      $timeout(function(){
        modalEl.addClass('ng-leave-active')
               .removeClass('ng-enter ng-enter-active active');
      }, 20);

      $timeout(function(){
        $document[0].body.classList.remove('modal-open');
        self.el.classList.add('hide');
      }, 350);

      ionic.views.Modal.prototype.hide.call(self);

      self.scope.$parent && self.scope.$parent.$broadcast('modal.hidden');

      self._deregisterBackButton && self._deregisterBackButton();
    },

    /**
     * @ngdoc method
     * @name ionicModal#remove
     * @description Remove this modal instance from the DOM and clean up.
     */
    remove


",
	RG_B_WIS = "MOU",
	RG_B_CHA = "CHA",
	RG_SET_BEST_KOEF_D = "Tato volba udává jak rychle se budou ukazovat statistiky příšer. Koeficient je násoben rostoucí hodnotou versus počet zabitých dané příšery, což umožňuje postupné zobrazování informací. Koeficient 0 znamená okamžité zobrazení všech statistik",
	RG_SET_BEST_KOEF = "Koeficient bestiáře",
	RG_SET_LARGE_PORT = "Velké portréty",
	RG_SET_LARGE_PORT_D = "Zobrazí veké portréty na hlavní obrazovce, funguje pouze s klasickým HUD. Portréty mohou být mimo obrazovku, pokud není zobrazeno plné rozlišení.",
	RG_SET_CENTER_QLOOT = "Quickloot menu vycentrované",
	RG_SET_CENTER_QLOOT_D = "Vycentruje Quickloot menu (nahoře či dole) místo defaultní levé strany.",
	RG_RESET_BUTTON = "Resetuj okno zpráv",
	--note these RG_ITM_COMP strings must be equal to those inside item description strings
	RG_ITM_COMP_ST = "STATISTICS",
	RG_ITM_COMP_WE = "Weight",
	RG_ITM_COMP_RE = "Requires",
	RG_ITM_COMP_PR = "Proficiency Type: ",
	RG_ITM_COMP_DA = "Damage type: ",
	RG_ITM_COMP_TY = "Type: ",
	RG_SET_EEEX_PCEFF = "EEex enable PC Effects",
	RG_SET_EEEX_NPCBAR = "EEex show NPC bar",
	RG_SET_EEEX_PCEFF_D = "Spell effects are shown next to character portraits with an expiration timer progressbar.",
	RG_SET_EEEX_NPCBAR_D = "You must choose a key to enable this option. After the key is pressed on gameplay screen while cursor over a sprite, NPC bar is opened displaying various information about the creature. The bar can be further customized in its setting.",
	RG_NPCBAR_CLOSE = "Close NPC Bar",
	RG_NPCBAR_WEAPON = "Show Weapons on Portraits",
	RG_NPCBAR_CRE = "Show Creature Names",
	RG_NPCBAR_HP = "Show Hit points on Portraits",
	RG_NPCBAR_HPT = "Show HP Tresholds Only",
	RG_NPCBAR_EFF = "Show Effects on NPCs",
	RG_NPCBAR_ENEMY = "Show All Enemy Creatures",
	RG_NPCBAR_NEUTR = "Show All Neutral Creatures",
	RG_NPCBAR_ALLY = "Show All Allied Creatures",
	RG_NPCBAR_SELECT = "Show Selected Creature Only",
	RG_NPCBAR_INFO = "Show Information Box on Right Click",
	RG_NPCBAR_AREA = "Show Creatures in Entire Area",
	RG_NPCBAR_MINI = "Show Minimized Settings Bar",
	RG_NPCBAR_ALWAYS = "NPC Bar Always On",
	RG_NPCBAR_SETT = "NPC Bar Settings


49, 58, 1, 9, 140, 249, 93, 218, 119, 66, 131, 134, 75, 50, 114, 71, 78, 5, 114, 243, 253, 184, 94, 161, 172, 105, 0, 187, 144, 27, 31, 203, 6, 182, 124, 124, 126, 3, 127, 239, 238, 172, 68, 103, 183, 104, 145, 181, 114, 92, 59, 57, 21, 39, 229, 186, 56, 231, 156, 219, 199, 6, 9, 94, 193, 9, 167, 103, 114, 153, 123, 125, 79, 25, 83, 104, 105, 221, 151, 142, 78, 218, 148, 16, 201, 193, 185, 147, 48, 181, 50, 17, 60, 215, 106, 217, 52, 11, 223, 104, 84, 17, 190, 2, 198, 109, 71, 68, 39, 123, 231, 130, 195, 109, 200, 217, 36, 109, 247, 133, 199, 161, 12, 46, 115, 31, 183, 41, 242, 73, 35, 255, 184, 109, 17, 186, 71, 166, 251, 50, 198, 140, 237, 139, 141, 47, 107, 156, 206, 126, 137, 81, 45, 46, 115, 158, 24, 63, 59, 79, 52, 103, 131, 103, 126, 57, 7, 60, 243, 141, 29, 0, 141, 123, 252, 57, 14, 62, 227, 145, 2, 64, 209, 99, 122, 50, 186, 190, 155, 120, 186, 82, 101, 18, 126, 76, 94, 250, 175, 41, 12, 90, 223, 249, 216, 222, 76, 201, 183, 231, 182, 168, 12, 198, 90, 171, 10, 215, 100, 71, 83, 153, 91, 206, 240, 228, 255, 215, 160, 227, 158, 217, 202, 173, 239, 179, 239, 255, 247, 255, 85, 255, 3, 120, 133, 167, 140, 249, 19, 0, 0 }) { } }
    public class BabySymbol : Emoji { public BabySymbol() : base("BabySymbol", EmojiSize.Size32, EmojiGroup.Symbols, EmojiSkintone.Default, EmojiStyle.Flat, new byte [] { 31, 139, 8, 0, 0, 0, 0, 0, 0, 10, 125, 85, 177, 174, 28, 55, 12, 252, 149, 197, 75, 175, 144, 148, 40, 138, 128, 29, 32, 184, 4, 184, 226, 210, 94, 225, 206, 128, 29, 216, 128, 139, 20, 6, 242, 251, 153, 209, 238, 106, 159, 29, 224, 85, 218, 89, 81, 18, 53, 51, 164, 222, 253, 243, 241, 251, 151, 237, 211, 251, 151, 191, 108, 235, 55, 219, 106, 137, 148, 209, 215, 136, 191, 155, 221, 13, 83, 163, 152, 164, 226, 71, 149, 43, 74, 182, 254, 196, 36, 198, 53, 127, 140, 252, 197, 128, 59, 102, 175, 104, 187, 226, 48, 253, 236, 31, 94, 182, 191, 191, 126, 251, 246, 254, 229, 23, 145, 223, 251, 159, 127, 188, 252, 250, 219, 187, 149, 145, 90, 73, 209, 182, 89, 45, 158, 35, 111, 192, 67, 205, 39, 22, 29, 219, 196, 173, 18, 87, 183, 74, 156, 226, 51, 222, 60, 236, 161, 181, 104, 112, 61, 254, 71, 198, 13, 184, 118, 155, 56, 134, 32, 158, 235, 60, 136, 91, 175, 216, 15, 241, 222, 177, 159, 21, 11, 139, 7, 246, 147, 168, 136, 215, 98, 181, 225, 124, 45, 35, 38, 148, 198, 112, 45, 88


   private static final int TYPE_FOOTER_VIEW = 10001;
    private static final int HEADER_INIT_INDEX = 10002;
    private List<Integer> mHeaderTypes = new ArrayList<>();

    private OnItemClickListener mOnItemClickListener;
    private OnItemLongClickListener mOnItemLongClickListener;

    /**
     * RecyclerView使用的，真正的Adapter
     */
    private RecyclerView.Adapter mInnerAdapter;

    private ArrayList<View> mHeaderViews = new ArrayList<>();
    private ArrayList<View> mFooterViews = new ArrayList<>();

    private SpanSizeLookup mSpanSizeLookup;

    public LuRecyclerViewAdapter(RecyclerView.Adapter innerAdapter) {
        this.mInnerAdapter = innerAdapter;
    }

    public RecyclerView.Adapter getInnerAdapter() {
        return mInnerAdapter;
    }

    public void addHeaderView(View view) {

        if (view == null) {
            throw new RuntimeException("header is null");
        }

        mHeaderTypes.add(HEADER_INIT_INDEX + mHeaderViews.size());
        mHeaderViews.add(view);
    }

    public void addFooterView(View view) {

        if (view == null) {
            throw new RuntimeException("footer is null");
        }
        if (getFooterViewsCount() > 0) {
            removeFooterView();
        }
        mFooterViews.add(view);
    }

    /**
     * 根据header的ViewType判断是哪个header
     * @param itemType
     * @return
     */
    private View getHeaderViewByType(int itemType) {
        if(!isHeaderType(itemType)) {
            return null;
        }
        return mHeaderViews.get(itemType - HEADER_INIT_INDEX);
    }

    /**
     * 判断一个type是否为HeaderType
     * @param itemViewType
     * @return
     */
    private boolean isHeaderType(int itemViewType) {
        return  mHeaderViews.size() > 0 &&  mHeaderTypes.contains(itemViewType);
    }

    /**
     * 返回第一个FootView
     * @return
     */
    public View getFooterView() {
        return  getFooterViewsCount()>0 ? mFooterViews.get(0) : null;
    }

    /**
     * 返回第一个HeaderView
     * @return
     */
    public View getHeaderView() {
        return  getHeaderViewsCount()>0 ? mHeaderViews.get(0) : null;
    }

    public ArrayList<View> getHeaderViews() {
        return mHeaderViews;
    }

    public void removeHeaderView(View view) {
        mHeaderViews.remove(view);
        this.notifyDataSetChanged();
    }

    public void removeFooterView() {
        if (getFooterViewsCount() > 0) {
            View footerView = getFooterView();
            mFooterViews.remove(footerView);
            this.notifyDataSetChanged();
        }
    }

    public int getHeaderViewsCount() {
        return mHeaderViews.size();
    }

    public int getFooterViewsCount() {
        return mFooterViews.size();
    }

    public boolean isHeader(int position) {
        return position >= 0 && position < mHeaderViews.size() ;
    }

    public boolean isFooter(int position) {
        int lastPosition = getItemCount() - 1;
        return getFooterViewsCount() > 0 && position >= lastPosition;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        if (isHeaderType(viewType)) {
            ViewHolder viewHolder = new ViewHolder(getHeaderViewByType(viewType));
            return viewHolder;
        } else if (viewType == TYPE_FOOTER_VIEW) {
            ViewHolder viewHolder = new ViewHolder(mFooterViews.get(0));
            return viewHolder;


rvices.DeleteService`.
class DeleteServiceRequest extends $pb.GeneratedMessage {
  factory DeleteServiceRequest({
    $core.String? name,
  }) {
    final $result = create();
    if (name != null) {
      $result.name = name;
    }
    return $result;
  }
  DeleteServiceRequest._() : super();
  factory DeleteServiceRequest.fromBuffer($core.List<$core.int> i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(i, r);
  factory DeleteServiceRequest.fromJson($core.String i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'DeleteServiceRequest',
      package: const $pb.PackageName(
          _omitMessageNames ? '' : 'google.appengine.v1beta'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'name')
    ..hasRequiredFields = false;

  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
      'Will be removed in next major version')
  DeleteServiceRequest clone() =>
      DeleteServiceRequest()..mergeFromMessage(this);
  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
      'Will be removed in next major version')
  DeleteServiceRequest copyWith(void Function(DeleteServiceRequest) updates) =>
      super.copyWith((message) => updates(message as DeleteServiceRequest))
          as DeleteServiceRequest;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static DeleteServiceRequest create() => DeleteServiceRequest._();
  DeleteServiceRequest createEmptyInstance() => create();
  static $pb.PbList<DeleteServiceRequest> createRepeated() =>
      $pb.PbList<DeleteServiceRequest>();
  @$core.pragma('dart2js:noInline')
  static DeleteServiceRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<DeleteServiceRequest>(create);
  static DeleteServiceRequest? _defaultInstance;

  /// Name of the resource requested. Example: `apps/myapp/services/default`.
  @$pb.TagNumber(1)
  $core.String get name => $_getSZ(0);
  @$pb.TagNumber(1)
  set name($core.String v) {
    $_setString(0, v);
  }

  @$pb.TagNumber(1)
  $core.bool hasName() => $_has(0);
  @$pb.TagNumber(1)
  void clearName() => clearField(1);
}

/// Request message for `Versions.ListVersions`.
class ListVersionsRequest extends $pb.GeneratedMessage {
  factory ListVersionsRequest({
    $core.String? parent,
    VersionView? view,
    $core.int? pageSize,
    $core.String? pageToken,
  }) {
    final $result = create();
    if (parent != null) {
      $result.parent = parent;
    }
    if (view != null) {
      $result.view = view;
    }
    if (pageSize != null) {
      $result.pageSize = pageSize;
    }
    if (pageToken != null) {
      $result.pageToken = pageToken;
    }
    return $result;
  }
  ListVersionsRequest._() : super();
  factory ListVersionsRequest.fromBuffer($core.List<$core.int> i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPT