diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d7125a92f..6b9a27367 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -177,15 +177,6 @@ jobs:
cp pkg/lib/bundle/systemTypes.json ./json
cp pkg/lib/bundle/internalRelations.json ./json
cp pkg/lib/bundle/internalTypes.json ./json
- - name: Upload protobuf artifact for linux build
- uses: actions/upload-artifact@v2
- with:
- name: libs
- path: |
- protobuf
- if-no-files-found: error
- retention-days: 1
- if: github.event_name == 'push'
- name: Pack server win
run: |
declare -a arr=("windows-amd64")
@@ -379,7 +370,7 @@ jobs:
cp pkg/lib/bundle/internalRelations.json ./json
cp pkg/lib/bundle/internalTypes.json ./json
- name: Upload protobuf artifact for linux build
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: libs
path: |
@@ -404,4 +395,4 @@ jobs:
fail_on_unmatched_files: true
files: '.release/*'
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/perftests.yml b/.github/workflows/perftests.yml
new file mode 100644
index 000000000..69bba967e
--- /dev/null
+++ b/.github/workflows/perftests.yml
@@ -0,0 +1,101 @@
+on:
+ workflow_dispatch:
+ inputs:
+ run-on-runner:
+ description: 'Specify the runner to use'
+ required: true
+ default: 'ARM64'
+ perf-test:
+ description: 'Run perf test times'
+ required: true
+ default: '0'
+ schedule:
+ - cron: '0 0 * * *' # every day at midnight
+ filters:
+ branches:
+ include:
+ - 'feature/chat'
+
+
+permissions:
+ actions: 'write'
+ contents: 'write'
+
+
+name: Build
+jobs:
+ build:
+ runs-on: 'ARM64'
+ steps:
+ - name: Setup GO
+ run: |
+ go version
+ echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV
+ echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV
+ echo $(go env GOPATH)/bin >> $GITHUB_PATH
+ - name: Checkout
+ uses: actions/checkout@v3
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/go/pkg/mod
+ key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
+ restore-keys: |
+ ${{ runner.os }}-go-${{ matrix.go-version }}-
+ - name: Set env vars
+ env:
+ UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }}
+ INHOUSE_KEY: ${{ secrets.INHOUSE_KEY }}
+ run: |
+ GIT_SUMMARY=$(git describe --tags --always)
+ echo "FLAGS=-X github.com/anyproto/anytype-heart/util/vcs.GitSummary=${GIT_SUMMARY} -X github.com/anyproto/anytype-heart/metrics.DefaultInHouseKey=${INHOUSE_KEY} -X github.com/anyproto/anytype-heart/util/unsplash.DefaultToken=${UNSPLASH_KEY}" >> $GITHUB_ENV
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ VERSION=${{ github.event.inputs.alpha_version }}
+ if [ -z "$VERSION" ]; then
+ VERSION=$(git rev-parse --short HEAD)
+ fi
+ fi
+ if [ -z "$VERSION" ]; then
+ VERSION=${GITHUB_REF##*/}
+ fi
+ echo VERSION=${VERSION} >> $GITHUB_ENV
+ echo MAVEN_ARTIFACT_VERSION=${VERSION} >> $GITHUB_ENV
+ echo GOPRIVATE=github.com/anyproto >> $GITHUB_ENV
+ echo $(pwd)/deps >> $GITHUB_PATH
+ echo "${GOBIN}" >> $GITHUB_PATH
+ git config --global url."https://${{ secrets.ANYTYPE_PAT }}@github.com/".insteadOf "https://github.com/"
+ - name: Go mod download
+ run: |
+ go mod download
+ - name: install protoc
+ run: |
+ make setup-protoc
+ - name: setup go
+ run: |
+ make setup-go
+ make setup-gomobile
+ which gomobile
+ - name: run perf tests
+ run: |
+ echo "Running perf tests"
+ make download-tantivy-all
+ RUN_COUNT=${{ github.event.inputs.perf-test }}
+ if [[ "${{ github.event_name }}" == "schedule" ]]; then
+ RUN_COUNT=100
+ fi
+ cd cmd/perfstand/account_create
+ CGO_ENABLED="1" go run main.go $RUN_COUNT
+ cd ../account_select
+ CGO_ENABLED="1" go run main.go $RUN_COUNT
+ env:
+ TEST_MNEMONIC: ${{ secrets.TEST_MNEMONIC_30000 }}
+ CH_API_KEY: ${{ secrets.CH_API_KEY }}
+ ACCOUNT_HASH: ${{ secrets.ACCOUNT_HASH_30000 }}
+ ACCOUNT_SPACE: ${{ secrets.ACCOUNT_SPACE_30000 }}
+ ROOT_FOLDER: ${{ secrets.ROOT_FOLDER }}
+ - name: Archive perf tests results
+ uses: actions/upload-artifact@v4
+ with:
+ name: pprofs
+ path: |
+ *.pprof
\ No newline at end of file
diff --git a/.mockery.yaml b/.mockery.yaml
index d7757014e..dbc4a0124 100644
--- a/.mockery.yaml
+++ b/.mockery.yaml
@@ -180,6 +180,9 @@ packages:
github.com/anyproto/anytype-heart/core/peerstatus:
interfaces:
LocalDiscoveryHook:
+ github.com/anyproto/anytype-heart/core/device:
+ interfaces:
+ NetworkState:
github.com/anyproto/anytype-heart/space/spacecore/localdiscovery:
interfaces:
Notifier:
@@ -197,11 +200,6 @@ packages:
github.com/anyproto/anytype-heart/core/syncstatus/objectsyncstatus:
interfaces:
Updater:
- UpdateReceiver:
- config:
- dir: "{{.InterfaceDir}}"
- outpkg: "{{.PackageName}}"
- inpackage: true
github.com/anyproto/anytype-heart/space/spacecore/peermanager:
interfaces:
Updater:
@@ -215,6 +213,9 @@ packages:
NodeUsage:
NetworkConfig:
Updater:
+ github.com/anyproto/anytype-heart/core/block/import/notion/api/files:
+ interfaces:
+ Downloader:
github.com/anyproto/anytype-heart/core/block/detailservice:
interfaces:
Service:
\ No newline at end of file
diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go
index b119bc5ea..1ce356774 100644
--- a/clientlibrary/service/service.pb.go
+++ b/clientlibrary/service/service.pb.go
@@ -25,317 +25,327 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
- // 4950 bytes of a gzipped FileDescriptorProto
+ // 5118 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x24, 0x49,
- 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xa8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f,
- 0x8f, 0xdb, 0xb3, 0x33, 0xfb, 0x71, 0xec, 0x21, 0x21, 0x8f, 0x3d, 0xf6, 0x9a, 0xb3, 0x3d, 0xc6,
- 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0x53, 0x1d, 0x6e, 0x17, 0xae, 0xae, 0xac, 0xab, 0xca, 0x6e,
- 0x4f, 0x1f, 0x02, 0x81, 0x40, 0x20, 0x10, 0x88, 0x13, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xcf, 0xc0,
- 0xe3, 0x3d, 0x22, 0x9e, 0xd0, 0xee, 0x3f, 0x72, 0xaa, 0xcc, 0xac, 0xfc, 0x88, 0xca, 0xc8, 0x2a,
- 0xef, 0xd3, 0x8c, 0x3a, 0x7e, 0x11, 0x91, 0x59, 0x99, 0x19, 0x19, 0xf9, 0x51, 0xe5, 0xe8, 0x7a,
- 0xf9, 0x66, 0xa3, 0xac, 0x18, 0x67, 0xf5, 0x46, 0x0d, 0xd5, 0x32, 0x4b, 0xa1, 0xfd, 0x77, 0x2c,
- 0x7e, 0x8e, 0xdf, 0x4d, 0x8a, 0x15, 0x5f, 0x95, 0xf0, 0xd1, 0x87, 0x86, 0x4c, 0xd9, 0x7c, 0x9e,
- 0x14, 0xd3, 0x5a, 0x22, 0x1f, 0x7d, 0x60, 0x24, 0xb0, 0x84, 0x82, 0xab, 0xdf, 0x9f, 0xfe, 0xf7,
- 0xff, 0x8d, 0xa2, 0xf7, 0xb6, 0xf2, 0x0c, 0x0a, 0xbe, 0xa5, 0x34, 0xe2, 0xaf, 0xa2, 0xef, 0x6e,
- 0x96, 0xe5, 0x2e, 0xf0, 0x57, 0x50, 0xd5, 0x19, 0x2b, 0xe2, 0xdb, 0x63, 0xe5, 0x60, 0x7c, 0x5c,
- 0xa6, 0xe3, 0xcd, 0xb2, 0x1c, 0x1b, 0xe1, 0xf8, 0x18, 0x7e, 0xb2, 0x80, 0x9a, 0x7f, 0x74, 0x27,
- 0x0c, 0xd5, 0x25, 0x2b, 0x6a, 0x88, 0xcf, 0xa2, 0xdf, 0xd8, 0x2c, 0xcb, 0x09, 0xf0, 0x6d, 0x68,
- 0x2a, 0x30, 0xe1, 0x09, 0x87, 0xf8, 0x7e, 0x47, 0xd5, 0x05, 0xb4, 0x8f, 0x07, 0xfd, 0xa0, 0xf2,
- 0x73, 0x12, 0x7d, 0xa7, 0xf1, 0x73, 0xbe, 0xe0, 0x53, 0x76, 0x59, 0xc4, 0x37, 0xbb, 0x8a, 0x4a,
- 0xa4, 0x6d, 0xdf, 0x0a, 0x21, 0xca, 0xea, 0xeb, 0xe8, 0x57, 0x5f, 0x27, 0x79, 0x0e, 0x7c, 0xab,
- 0x82, 0xa6, 0xe0, 0xae, 0x8e, 0x14, 0x8d, 0xa5, 0x4c, 0xdb, 0xbd, 0x1d, 0x64, 0x94, 0xe1, 0xaf,
- 0xa2, 0xef, 0x4a, 0xc9, 0x31, 0xa4, 0x6c, 0x09, 0x55, 0xec, 0xd5, 0x52, 0x42, 0xe2, 0x91, 0x77,
- 0x20, 0x6c, 0x7b, 0x8b, 0x15, 0x4b, 0xa8, 0xb8, 0xdf, 0xb6, 0x12, 0x86, 0x6d, 0x1b, 0x48, 0xd9,
- 0xfe, 0xbb, 0x51, 0xf4, 0xfd, 0xcd, 0x34, 0x65, 0x8b, 0x82, 0xef, 0xb3, 0x34, 0xc9, 0xf7, 0xb3,
- 0xe2, 0xe2, 0x10, 0x2e, 0xb7, 0xce, 0x1b, 0xbe, 0x98, 0x41, 0xfc, 0xcc, 0x7d, 0xaa, 0x12, 0x1d,
- 0x6b, 0x76, 0x6c, 0xc3, 0xda, 0xf7, 0x27, 0x57, 0x53, 0x52, 0x65, 0xf9, 0xa7, 0x51, 0x74, 0x0d,
- 0x97, 0x65, 0xc2, 0xf2, 0x25, 0x98, 0xd2, 0x7c, 0xda, 0x63, 0xd8, 0xc5, 0x75, 0x79, 0x3e, 0xbb,
- 0xaa, 0x9a, 0x2a, 0x51, 0x1e, 0xbd, 0x6f, 0x77, 0x97, 0x09, 0xd4, 0x62, 0x38, 0x3d, 0xa4, 0x7b,
- 0x84, 0x42, 0xb4, 0xe7, 0x47, 0x43, 0x50, 0xe5, 0x2d, 0x8b, 0x62, 0xe5, 0x2d, 0x67, 0xb5, 0x76,
- 0xf6, 0xc0, 0x6b, 0xc1, 0x22, 0xb4, 0xaf, 0x87, 0x03, 0x48, 0xe5, 0xea, 0x8f, 0xa3, 0x5f, 0x7b,
- 0xcd, 0xaa, 0x8b, 0xba, 0x4c, 0x52, 0x50, 0x43, 0xe1, 0xae, 0xab, 0xdd, 0x4a, 0xf1, 0x68, 0xb8,
- 0xd7, 0x87, 0x59, 0x9d, 0xb6, 0x15, 0xbe, 0x2c, 0x01, 0xc7, 0x20, 0xa3, 0xd8, 0x08, 0xa9, 0x4e,
- 0x8b, 0x21, 0x65, 0xfb, 0x22, 0x8a, 0x8d, 0xed, 0x37, 0x7f, 0x02, 0x29, 0xdf, 0x9c, 0x4e, 0x71,
- 0xab, 0x18, 0x5d, 0x41, 0x8c, 0x37, 0xa7, 0x53, 0xaa, 0x55, 0xfc, 0xa8, 0x72, 0x76, 0x19, 0x7d,
- 0x80, 0x9c, 0xed, 0x67, 0xb5, 0x70, 0xb8, 0x1e, 0xb6, 0xa2, 0x30, 0xed, 0x74, 0x3c, 0x14, 0x57,
- 0x8e, 0xff, 0x62, 0x14, 0x7d, 0xcf, 0xe3, 0xf9, 0x18, 0xe6, 0x6c, 0x09, 0xf1, 0x93, 0x7e, 0x6b,
- 0x92, 0xd4, 0xfe, 0x3f, 0xbe, 0x82, 0x86, 0xa7, 0x9b, 0x4c, 0x20, 0x87, 0x94, 0x93, 0xdd, 0x44,
- 0x8a, 0x7b, 0xbb, 0x89, 0xc6, 0xac, 0x11, 0xd6, 0x0a, 0x77, 0x81, 0x6f, 0x2d, 0xaa, 0x0a, 0x0a,
- 0x4e, 0xb6, 0xa5, 0x41, 0x7a, 0xdb, 0xd2, 0x41, 0x3d, 0xf5, 0xd9, 0x05, 0xbe, 0x99, 0xe7, 0x64,
- 0x7d, 0xa4, 0xb8, 0xb7, 0x3e, 0x1a, 0x53, 0x1e, 0xd2, 0xe8, 0xd7, 0xad, 0x27, 0xc6, 0xf7, 0x8a,
- 0x33, 0x16, 0xd3, 0xcf, 0x42, 0xc8, 0xb5, 0x8f, 0xfb, 0xbd, 0x9c, 0xa7, 0x1a, 0x2f, 0xde, 0x96,
- 0xac, 0xa2, 0x9b, 0x45, 0x8a, 0x7b, 0xab, 0xa1, 0x31, 0xe5, 0xe1, 0x8f, 0xa2, 0xf7, 0x54, 0x94,
- 0x6c, 0xe7, 0xb3, 0x3b, 0xde, 0x10, 0x8a, 0x27, 0xb4, 0xbb, 0x3d, 0x94, 0x09, 0x0e, 0x4a, 0xa6,
- 0x82, 0xcf, 0x6d, 0xaf, 0x1e, 0x0a, 0x3d, 0x77, 0xc2, 0x50, 0xc7, 0xf6, 0x36, 0xe4, 0x40, 0xda,
- 0x96, 0xc2, 0x1e, 0xdb, 0x1a, 0x52, 0xb6, 0xab, 0xe8, 0xb7, 0xf4, 0x63, 0x69, 0xe6, 0x51, 0x21,
- 0x6f, 0x82, 0xf4, 0x1a, 0x51, 0x6f, 0x1b, 0xd2, 0xbe, 0x1e, 0x0f, 0x83, 0x3b, 0xf5, 0x51, 0x23,
- 0xd0, 0x5f, 0x1f, 0x34, 0xfe, 0xee, 0x84, 0x21, 0x65, 0xfb, 0xef, 0x47, 0xd1, 0x0f, 0x94, 0xec,
- 0x45, 0x91, 0xbc, 0xc9, 0x41, 0x4c, 0x89, 0x87, 0xc0, 0x2f, 0x59, 0x75, 0x31, 0x59, 0x15, 0x29,
- 0x31, 0xfd, 0xfb, 0xe1, 0x9e, 0xe9, 0x9f, 0x54, 0xb2, 0x32, 0x3e, 0x55, 0x51, 0xce, 0x4a, 0x9c,
- 0xf1, 0xb5, 0x35, 0xe0, 0xac, 0xa4, 0x32, 0x3e, 0x17, 0xe9, 0x58, 0x3d, 0x68, 0xc2, 0xa6, 0xdf,
- 0xea, 0x81, 0x1d, 0x27, 0x6f, 0x85, 0x10, 0x13, 0xb6, 0xda, 0x0e, 0xcc, 0x8a, 0xb3, 0x6c, 0x76,
- 0x5a, 0x4e, 0x9b, 0x6e, 0xfc, 0xd0, 0xdf, 0x43, 0x2d, 0x84, 0x08, 0x5b, 0x04, 0xaa, 0xbc, 0xfd,
- 0xa3, 0x49, 0x8c, 0xd4, 0x50, 0xda, 0xa9, 0xd8, 0x7c, 0x1f, 0x66, 0x49, 0xba, 0x52, 0xe3, 0xff,
- 0x93, 0xd0, 0xc0, 0xc3, 0xb4, 0x2e, 0xc4, 0xa7, 0x57, 0xd4, 0x52, 0xe5, 0xf9, 0xcf, 0x51, 0x74,
- 0xa7, 0xad, 0xfe, 0x79, 0x52, 0xcc, 0x40, 0xb5, 0xa7, 0x2c, 0xfd, 0x66, 0x31, 0x3d, 0x86, 0x9a,
- 0x27, 0x15, 0x8f, 0xbf, 0xf0, 0x57, 0x32, 0xa4, 0xa3, 0xcb, 0xf6, 0xa3, 0x6f, 0xa5, 0x6b, 0x5a,
- 0x7d, 0xd2, 0x04, 0x36, 0x15, 0x02, 0xdc, 0x56, 0x17, 0x12, 0x1c, 0x00, 0x6e, 0x85, 0x10, 0xd3,
- 0xea, 0x42, 0xb0, 0x57, 0x2c, 0x33, 0x0e, 0xbb, 0x50, 0x40, 0xd5, 0x6d, 0x75, 0xa9, 0xea, 0x22,
- 0x44, 0xab, 0x13, 0xa8, 0x09, 0x36, 0x8e, 0x37, 0x3d, 0x39, 0xae, 0x05, 0x8c, 0x74, 0xa6, 0xc7,
- 0xc7, 0xc3, 0x60, 0xb3, 0xba, 0xb3, 0x7c, 0x1e, 0xc3, 0x92, 0x5d, 0xe0, 0xd5, 0x9d, 0x6d, 0x42,
- 0x02, 0xc4, 0xea, 0xce, 0x0b, 0x9a, 0x19, 0xcc, 0xf2, 0xf3, 0x2a, 0x83, 0x4b, 0x34, 0x83, 0xd9,
- 0xca, 0x8d, 0x98, 0x98, 0xc1, 0x3c, 0x98, 0xf2, 0x70, 0x18, 0xfd, 0x8a, 0x10, 0xfe, 0x01, 0xcb,
- 0x8a, 0xf8, 0xba, 0x47, 0xa9, 0x11, 0x68, 0xab, 0x37, 0x68, 0x00, 0x95, 0xb8, 0xf9, 0x75, 0x2b,
- 0x29, 0x52, 0xc8, 0xbd, 0x25, 0x36, 0xe2, 0x60, 0x89, 0x1d, 0xcc, 0xa4, 0x0e, 0x42, 0xd8, 0xc4,
- 0xaf, 0xc9, 0x79, 0x52, 0x65, 0xc5, 0x2c, 0xf6, 0xe9, 0x5a, 0x72, 0x22, 0x75, 0xf0, 0x71, 0xa8,
- 0x0b, 0x2b, 0xc5, 0xcd, 0xb2, 0xac, 0x9a, 0xb0, 0xe8, 0xeb, 0xc2, 0x2e, 0x12, 0xec, 0xc2, 0x1d,
- 0xd4, 0xef, 0x6d, 0x1b, 0xd2, 0x3c, 0x2b, 0x82, 0xde, 0x14, 0x32, 0xc4, 0x9b, 0x41, 0x51, 0xe7,
- 0xdd, 0x87, 0x64, 0x09, 0x6d, 0xcd, 0x7c, 0x4f, 0xc6, 0x06, 0x82, 0x9d, 0x17, 0x81, 0x66, 0x9d,
- 0x26, 0xc4, 0x07, 0xc9, 0x05, 0x34, 0x0f, 0x18, 0x9a, 0x79, 0x2d, 0xf6, 0xe9, 0x3b, 0x04, 0xb1,
- 0x4e, 0xf3, 0x93, 0xca, 0xd5, 0x22, 0xfa, 0x40, 0xc8, 0x8f, 0x92, 0x8a, 0x67, 0x69, 0x56, 0x26,
- 0x45, 0x9b, 0xff, 0xfb, 0xc6, 0x75, 0x87, 0xd2, 0x2e, 0xd7, 0x07, 0xd2, 0xca, 0xed, 0xbf, 0x8f,
- 0xa2, 0x9b, 0xd8, 0xef, 0x11, 0x54, 0xf3, 0x4c, 0x2c, 0x23, 0x6b, 0x19, 0x84, 0xe3, 0xcf, 0xc3,
- 0x46, 0x3b, 0x0a, 0xba, 0x34, 0x3f, 0xbc, 0xba, 0xa2, 0x2a, 0xd8, 0x1f, 0x46, 0x91, 0x5c, 0xae,
- 0x88, 0x25, 0xa5, 0x3b, 0x6a, 0xd5, 0x3a, 0xc6, 0x59, 0x4f, 0xde, 0x0c, 0x10, 0x66, 0xaa, 0x90,
- 0xbf, 0x8b, 0x95, 0x72, 0xec, 0xd5, 0x10, 0x22, 0x62, 0xaa, 0x40, 0x08, 0x2e, 0xe8, 0xe4, 0x9c,
- 0x5d, 0xfa, 0x0b, 0xda, 0x48, 0xc2, 0x05, 0x55, 0x84, 0xd9, 0xbb, 0x52, 0x05, 0xf5, 0xed, 0x5d,
- 0xb5, 0xc5, 0x08, 0xed, 0x5d, 0x61, 0x46, 0x19, 0x66, 0xd1, 0x6f, 0xda, 0x86, 0x9f, 0x33, 0x76,
- 0x31, 0x4f, 0xaa, 0x8b, 0xf8, 0x11, 0xad, 0xdc, 0x32, 0xda, 0xd1, 0xda, 0x20, 0xd6, 0x84, 0x05,
- 0xdb, 0x61, 0x93, 0x68, 0x9c, 0x56, 0x39, 0x0a, 0x0b, 0x8e, 0x0d, 0x85, 0x10, 0x61, 0x81, 0x40,
- 0x4d, 0xe4, 0xb6, 0xbd, 0x4d, 0x00, 0xaf, 0x96, 0x1c, 0xf5, 0x09, 0x50, 0xab, 0x25, 0x0f, 0x86,
- 0xbb, 0xd0, 0x6e, 0x95, 0x94, 0xe7, 0xfe, 0x2e, 0x24, 0x44, 0xe1, 0x2e, 0xd4, 0x22, 0xb8, 0xbd,
- 0x27, 0x90, 0x54, 0xe9, 0xb9, 0xbf, 0xbd, 0xa5, 0x2c, 0xdc, 0xde, 0x9a, 0xc1, 0xed, 0x2d, 0x05,
- 0xaf, 0x33, 0x7e, 0x7e, 0x00, 0x3c, 0xf1, 0xb7, 0xb7, 0xcb, 0x84, 0xdb, 0xbb, 0xc3, 0x9a, 0x4c,
- 0xc6, 0x76, 0x38, 0x59, 0xbc, 0xa9, 0xd3, 0x2a, 0x7b, 0x03, 0x71, 0xc0, 0x8a, 0x86, 0x88, 0x4c,
- 0x86, 0x84, 0x4d, 0x90, 0x56, 0x3e, 0x5b, 0xd9, 0xde, 0xb4, 0x46, 0x41, 0xba, 0xb5, 0x61, 0x11,
- 0x44, 0x90, 0xf6, 0x93, 0xb8, 0x7a, 0xbb, 0x15, 0x5b, 0x94, 0x75, 0x4f, 0xf5, 0x10, 0x14, 0xae,
- 0x5e, 0x17, 0x56, 0x3e, 0xdf, 0x46, 0xbf, 0x6d, 0x3f, 0xd2, 0xd3, 0xa2, 0xd6, 0x5e, 0xd7, 0xe9,
- 0xe7, 0x64, 0x61, 0xc4, 0xb6, 0x54, 0x00, 0x37, 0x69, 0x4a, 0xeb, 0x99, 0x6f, 0x03, 0x4f, 0xb2,
- 0xbc, 0x8e, 0xef, 0xf9, 0x6d, 0xb4, 0x72, 0x22, 0x4d, 0xf1, 0x71, 0x78, 0xcc, 0x6e, 0x2f, 0xca,
- 0x3c, 0x4b, 0xbb, 0xfb, 0x93, 0x4a, 0x57, 0x8b, 0xc3, 0x63, 0xd6, 0xc6, 0x70, 0x0c, 0x9a, 0x00,
- 0x97, 0xff, 0x39, 0x59, 0x95, 0xe0, 0x8f, 0x41, 0x0e, 0x12, 0x8e, 0x41, 0x18, 0xc5, 0xf5, 0x99,
- 0x00, 0xdf, 0x4f, 0x56, 0x6c, 0x41, 0xc4, 0x20, 0x2d, 0x0e, 0xd7, 0xc7, 0xc6, 0x4c, 0xa6, 0xa0,
- 0x3d, 0xec, 0x15, 0x1c, 0xaa, 0x22, 0xc9, 0x77, 0xf2, 0x64, 0x56, 0xc7, 0xc4, 0xb8, 0x71, 0x29,
- 0x22, 0x53, 0xa0, 0x69, 0xcf, 0x63, 0xdc, 0xab, 0x77, 0x92, 0x25, 0xab, 0x32, 0x4e, 0x3f, 0x46,
- 0x83, 0xf4, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0xdb, 0xac, 0xd2, 0xf3, 0x6c, 0x09, 0xd3, 0x80, 0xb7,
- 0x16, 0x19, 0xe0, 0xcd, 0x42, 0x3d, 0x8d, 0x36, 0x61, 0x8b, 0x2a, 0x05, 0xb2, 0xd1, 0xa4, 0xb8,
- 0xb7, 0xd1, 0x34, 0xa6, 0x3c, 0xfc, 0xf5, 0x28, 0xfa, 0x1d, 0x29, 0xb5, 0x37, 0x0d, 0xb7, 0x93,
- 0xfa, 0xfc, 0x0d, 0x4b, 0xaa, 0x69, 0xfc, 0xb1, 0xcf, 0x8e, 0x17, 0xd5, 0xae, 0x9f, 0x5e, 0x45,
- 0x05, 0x3f, 0xd6, 0xfd, 0xac, 0xb6, 0x46, 0x9c, 0xf7, 0xb1, 0x3a, 0x48, 0xf8, 0xb1, 0x62, 0x14,
- 0x07, 0x10, 0x21, 0x97, 0x0b, 0xf4, 0x7b, 0xa4, 0xbe, 0xbb, 0x4a, 0xbf, 0xdf, 0xcb, 0xe1, 0xf8,
- 0xd8, 0x08, 0xdd, 0xde, 0xb2, 0x4e, 0xd9, 0xf0, 0xf7, 0x98, 0xf1, 0x50, 0x9c, 0xf4, 0xac, 0x47,
- 0x45, 0xd8, 0x73, 0x67, 0x64, 0x8c, 0x87, 0xe2, 0x84, 0x67, 0x2b, 0xac, 0x85, 0x3c, 0x7b, 0x42,
- 0xdb, 0x78, 0x28, 0x8e, 0x33, 0x0a, 0xc5, 0xb4, 0xf3, 0xc2, 0xa3, 0x80, 0x1d, 0x3c, 0x37, 0xac,
- 0x0d, 0x62, 0x95, 0xc3, 0xbf, 0x1d, 0x45, 0xdf, 0x37, 0x1e, 0x0f, 0xd8, 0x34, 0x3b, 0x5b, 0x49,
- 0xe8, 0x55, 0x92, 0x2f, 0xa0, 0x8e, 0x9f, 0x52, 0xd6, 0xba, 0xac, 0x2e, 0xc1, 0xb3, 0x2b, 0xe9,
- 0xe0, 0xb1, 0xb3, 0x59, 0x96, 0xf9, 0xea, 0x04, 0xe6, 0x65, 0x4e, 0x8e, 0x1d, 0x07, 0x09, 0x8f,
- 0x1d, 0x8c, 0xe2, 0x4c, 0xf3, 0x84, 0x35, 0x79, 0xac, 0x37, 0xd3, 0x14, 0xa2, 0x70, 0xa6, 0xd9,
- 0x22, 0x38, 0x57, 0x3a, 0x61, 0x5b, 0x2c, 0xcf, 0x21, 0xe5, 0xdd, 0x83, 0x47, 0xad, 0x69, 0x88,
- 0x70, 0xae, 0x84, 0x48, 0xb3, 0x46, 0x6f, 0xd7, 0x45, 0x49, 0x05, 0xcf, 0x57, 0xfb, 0x59, 0x71,
- 0x11, 0xfb, 0xd3, 0x02, 0x03, 0x10, 0x6b, 0x74, 0x2f, 0x88, 0xd7, 0x5f, 0xa7, 0xc5, 0x94, 0xf9,
- 0xd7, 0x5f, 0x8d, 0x24, 0xbc, 0xfe, 0x52, 0x04, 0x36, 0x79, 0x0c, 0x94, 0xc9, 0x46, 0x12, 0x36,
- 0xa9, 0x08, 0x5f, 0x28, 0x54, 0x3b, 0xb9, 0x64, 0x28, 0x44, 0x7b, 0xb7, 0xf7, 0x7b, 0x39, 0xdc,
- 0x43, 0xdb, 0x85, 0xd8, 0x0e, 0xf0, 0xf4, 0xdc, 0xdf, 0x43, 0x1d, 0x24, 0xdc, 0x43, 0x31, 0x8a,
- 0xab, 0x74, 0xc2, 0xf4, 0x42, 0xf2, 0x9e, 0xbf, 0x7f, 0x74, 0x16, 0x91, 0xf7, 0x7b, 0x39, 0xbc,
- 0x34, 0xda, 0x9b, 0x8b, 0x67, 0xe6, 0xed, 0xe4, 0x52, 0x16, 0x5e, 0x1a, 0x69, 0x06, 0x97, 0x5e,
- 0x0a, 0x9a, 0xc7, 0xe9, 0x2f, 0xbd, 0x91, 0x87, 0x4b, 0xef, 0x70, 0xca, 0xc9, 0xbf, 0x8e, 0xa2,
- 0xeb, 0xb6, 0x97, 0x43, 0xd6, 0x8c, 0x91, 0x57, 0x49, 0x9e, 0x4d, 0x13, 0x0e, 0x27, 0xec, 0x02,
- 0x0a, 0xb4, 0xb7, 0xe2, 0x96, 0x56, 0xf2, 0x63, 0x47, 0x81, 0xd8, 0x5b, 0x19, 0xa4, 0x88, 0xfb,
- 0x89, 0xa4, 0x4f, 0x6b, 0xd8, 0x4a, 0x6a, 0x22, 0x92, 0x39, 0x48, 0xb8, 0x9f, 0x60, 0x14, 0xe7,
- 0xab, 0x52, 0xfe, 0xe2, 0x6d, 0x09, 0x55, 0x06, 0x45, 0x0a, 0xfe, 0x7c, 0x15, 0x53, 0xe1, 0x7c,
- 0xd5, 0x43, 0x77, 0xb6, 0x1e, 0x74, 0x70, 0xea, 0xde, 0x1d, 0xc0, 0x44, 0xe0, 0xee, 0x00, 0x81,
- 0xe2, 0x4a, 0x1a, 0xc0, 0xbb, 0x7d, 0xd7, 0xb1, 0x12, 0xdc, 0xbe, 0xa3, 0xe9, 0xce, 0x86, 0x8e,
- 0x66, 0x26, 0xcd, 0x30, 0xe9, 0x29, 0xfa, 0xc4, 0x1e, 0x2e, 0x6b, 0x83, 0x58, 0xff, 0x0e, 0xd2,
- 0x31, 0xe4, 0x89, 0x98, 0x42, 0x02, 0xdb, 0x34, 0x2d, 0x33, 0x64, 0x07, 0xc9, 0x62, 0x95, 0xc3,
- 0xbf, 0x1c, 0x45, 0x1f, 0xf9, 0x3c, 0xbe, 0x2c, 0x85, 0xdf, 0x27, 0xfd, 0xb6, 0x24, 0x49, 0x5c,
- 0x8e, 0x08, 0x6b, 0xa8, 0x32, 0xfc, 0x69, 0xf4, 0x61, 0x2b, 0x32, 0x77, 0x27, 0x54, 0x01, 0xdc,
- 0x04, 0x4a, 0x97, 0x1f, 0x73, 0xda, 0xfd, 0xc6, 0x60, 0xde, 0xac, 0x4d, 0xdc, 0x72, 0xd5, 0x68,
- 0x6d, 0xa2, 0x6d, 0x28, 0x31, 0xb1, 0x36, 0xf1, 0x60, 0x66, 0x57, 0xc3, 0xae, 0xde, 0xeb, 0x8c,
- 0x9f, 0x8b, 0xdc, 0x07, 0xed, 0x6a, 0x38, 0x65, 0xd5, 0x10, 0xb1, 0xab, 0x41, 0xc2, 0x38, 0x3b,
- 0x68, 0xc1, 0x66, 0x6c, 0xfa, 0xe2, 0xaa, 0x36, 0x64, 0x8f, 0xcc, 0x07, 0xfd, 0x20, 0xee, 0xaf,
- 0xad, 0x58, 0x2d, 0x43, 0x1e, 0x85, 0x2c, 0xa0, 0xa5, 0xc8, 0xda, 0x20, 0x56, 0x39, 0xfc, 0xf3,
- 0xe8, 0x7b, 0x9d, 0x8a, 0xed, 0x40, 0xc2, 0x17, 0x15, 0x4c, 0xe3, 0x8d, 0x9e, 0x72, 0xb7, 0xa0,
- 0x76, 0xfd, 0x64, 0xb8, 0x42, 0x27, 0x5f, 0x6e, 0x39, 0xd9, 0xad, 0x74, 0x19, 0x9e, 0x86, 0x4c,
- 0xba, 0x6c, 0x30, 0x5f, 0xa6, 0x75, 0x3a, 0x4b, 0x5e, 0xbb, 0x77, 0x6d, 0x2e, 0x93, 0x2c, 0x17,
- 0xc7, 0x28, 0x1f, 0x87, 0x8c, 0x3a, 0x68, 0x70, 0xc9, 0x4b, 0xaa, 0x74, 0x22, 0xb3, 0x18, 0xe3,
- 0xd6, 0x52, 0xe9, 0x31, 0x1d, 0x09, 0x3c, 0x2b, 0xa5, 0xf5, 0x81, 0xb4, 0x72, 0xcb, 0xdb, 0xad,
- 0xc2, 0xe6, 0x67, 0xbb, 0x93, 0xfb, 0xbc, 0x2a, 0x55, 0x4f, 0x4f, 0x5f, 0x1f, 0x48, 0x2b, 0xaf,
- 0x7f, 0x16, 0x7d, 0xd8, 0xf5, 0xaa, 0x26, 0xa2, 0x8d, 0x5e, 0x53, 0x68, 0x2e, 0x7a, 0x32, 0x5c,
- 0xc1, 0x2c, 0x2f, 0xbe, 0xcc, 0x6a, 0xce, 0xaa, 0xd5, 0xe4, 0x9c, 0x5d, 0xb6, 0x77, 0x92, 0xdd,
- 0xd1, 0xaa, 0x80, 0xb1, 0x45, 0x10, 0xcb, 0x0b, 0x3f, 0xd9, 0x71, 0x65, 0xee, 0x2e, 0xd7, 0x84,
- 0x2b, 0x8b, 0xe8, 0x71, 0xe5, 0x92, 0x26, 0x56, 0xb5, 0xb5, 0x32, 0x17, 0xad, 0xef, 0xfb, 0x8b,
- 0xda, 0xbd, 0x6c, 0xfd, 0xa0, 0x1f, 0x34, 0x19, 0x8b, 0x12, 0x6f, 0x67, 0x67, 0x67, 0xba, 0x4e,
- 0xfe, 0x92, 0xda, 0x08, 0x91, 0xb1, 0x10, 0xa8, 0x49, 0x80, 0x77, 0xb2, 0x1c, 0xc4, 0x99, 0xdc,
- 0xcb, 0xb3, 0xb3, 0x9c, 0x25, 0x53, 0x94, 0x00, 0x37, 0xe2, 0xb1, 0x2d, 0x27, 0x12, 0x60, 0x1f,
- 0x67, 0xae, 0x34, 0x35, 0xd2, 0x63, 0x48, 0x59, 0x91, 0x66, 0x39, 0xbe, 0xa2, 0x25, 0x34, 0xb5,
- 0x90, 0xb8, 0xd2, 0xd4, 0x81, 0xcc, 0xc4, 0xd8, 0x88, 0x9a, 0x61, 0xdf, 0x96, 0xff, 0x6e, 0x57,
- 0xd1, 0x12, 0x13, 0x13, 0xa3, 0x07, 0x33, 0xeb, 0xc0, 0x46, 0x78, 0x5a, 0x0a, 0xe3, 0x37, 0xba,
- 0x5a, 0x52, 0x42, 0xac, 0x03, 0x5d, 0xc2, 0xac, 0x67, 0x9a, 0xdf, 0xb7, 0xd9, 0x65, 0x21, 0x8c,
- 0xde, 0xea, 0xaa, 0xb4, 0x32, 0x62, 0x3d, 0x83, 0x19, 0x65, 0xf8, 0xc7, 0xd1, 0x2f, 0x0b, 0xc3,
- 0x15, 0x2b, 0xe3, 0x6b, 0x1e, 0x85, 0xca, 0xba, 0x4d, 0x75, 0x9d, 0x94, 0x9b, 0x4b, 0x81, 0xba,
- 0x6f, 0x9c, 0xd6, 0xc9, 0x0c, 0xe2, 0x3b, 0x44, 0x8b, 0x0b, 0x29, 0x71, 0x29, 0xb0, 0x4b, 0xb9,
- 0xbd, 0xe2, 0x90, 0x4d, 0x95, 0x75, 0x4f, 0x0d, 0xb5, 0x30, 0xd4, 0x2b, 0x6c, 0xc8, 0x24, 0x33,
- 0x87, 0xc9, 0x32, 0x9b, 0xe9, 0x09, 0x47, 0xc6, 0xad, 0x1a, 0x25, 0x33, 0x86, 0x19, 0x5b, 0x10,
- 0x91, 0xcc, 0x90, 0xb0, 0xf2, 0xf9, 0x2f, 0xa3, 0xe8, 0x86, 0x61, 0x76, 0xdb, 0x9d, 0xb3, 0xbd,
- 0xe2, 0x8c, 0x35, 0xa9, 0xcf, 0x7e, 0x56, 0x5c, 0xd4, 0xf1, 0x67, 0x94, 0x49, 0x3f, 0xaf, 0x8b,
- 0xf2, 0xf9, 0x95, 0xf5, 0x4c, 0xd6, 0xda, 0x6e, 0x2b, 0x99, 0xf3, 0x52, 0xa9, 0x81, 0xb2, 0x56,
- 0xbd, 0xfb, 0x84, 0x39, 0x22, 0x6b, 0x0d, 0xf1, 0xa6, 0x89, 0xb5, 0xf3, 0x9c, 0x15, 0xb8, 0x89,
- 0x8d, 0x85, 0x46, 0x48, 0x34, 0x71, 0x07, 0x32, 0xf1, 0xb8, 0x15, 0xc9, 0x1d, 0x90, 0xcd, 0x3c,
- 0x47, 0xf1, 0x58, 0xab, 0x6a, 0x80, 0x88, 0xc7, 0x5e, 0x50, 0xf9, 0x39, 0x8e, 0xbe, 0xd3, 0x3c,
- 0xd2, 0xa3, 0x0a, 0x96, 0x19, 0xe0, 0xa3, 0x7d, 0x4b, 0x42, 0x8c, 0x7f, 0x97, 0x30, 0x23, 0xeb,
- 0xb4, 0xa8, 0xcb, 0x3c, 0xa9, 0xcf, 0xd5, 0x61, 0xaf, 0x5b, 0xe7, 0x56, 0x88, 0x8f, 0x7b, 0xef,
- 0xf6, 0x50, 0x26, 0xa8, 0xb7, 0x32, 0x1d, 0x62, 0xee, 0xf9, 0x55, 0x3b, 0x61, 0xe6, 0x7e, 0x2f,
- 0x67, 0x76, 0x9f, 0x77, 0x93, 0x3c, 0x87, 0x6a, 0xd5, 0xca, 0x0e, 0x92, 0x22, 0x3b, 0x83, 0x9a,
- 0xa3, 0xdd, 0x67, 0x45, 0x8d, 0x31, 0x46, 0xec, 0x3e, 0x07, 0x70, 0x93, 0xcd, 0x23, 0xcf, 0x7b,
- 0xc5, 0x14, 0xde, 0xa2, 0x6c, 0x1e, 0xdb, 0x11, 0x0c, 0x91, 0xcd, 0x53, 0xac, 0xd9, 0x85, 0x7d,
- 0x9e, 0xb3, 0xf4, 0x42, 0x4d, 0x01, 0x6e, 0x03, 0x0b, 0x09, 0x9e, 0x03, 0x6e, 0x85, 0x10, 0x33,
- 0x09, 0x08, 0xc1, 0x31, 0x94, 0x79, 0x92, 0xe2, 0xfb, 0x1d, 0x52, 0x47, 0xc9, 0x88, 0x49, 0x00,
- 0x33, 0xa8, 0xb8, 0xea, 0xde, 0x88, 0xaf, 0xb8, 0xe8, 0xda, 0xc8, 0xad, 0x10, 0x62, 0xa6, 0x41,
- 0x21, 0x98, 0x94, 0x79, 0xc6, 0xd1, 0x30, 0x90, 0x1a, 0x42, 0x42, 0x0c, 0x03, 0x97, 0x40, 0x26,
- 0x0f, 0xa0, 0x9a, 0x81, 0xd7, 0xa4, 0x90, 0x04, 0x4d, 0xb6, 0x84, 0xb9, 0x06, 0x28, 0xeb, 0xce,
- 0xca, 0x15, 0xba, 0x06, 0xa8, 0xaa, 0xc5, 0xca, 0x15, 0x71, 0x0d, 0xd0, 0x01, 0x50, 0x11, 0x8f,
- 0x92, 0x9a, 0xfb, 0x8b, 0x28, 0x24, 0xc1, 0x22, 0xb6, 0x84, 0x99, 0xa3, 0x65, 0x11, 0x17, 0x1c,
- 0xcd, 0xd1, 0xaa, 0x00, 0xd6, 0x69, 0xf0, 0x75, 0x52, 0x6e, 0x22, 0x89, 0x6c, 0x15, 0xe0, 0x3b,
- 0x19, 0xe4, 0xd3, 0x1a, 0x45, 0x12, 0xf5, 0xdc, 0x5b, 0x29, 0x11, 0x49, 0xba, 0x14, 0xea, 0x4a,
- 0x6a, 0xaf, 0xda, 0x57, 0x3b, 0xb4, 0x4d, 0x7d, 0x2b, 0x84, 0x98, 0xf8, 0xd4, 0x16, 0x7a, 0x2b,
- 0xa9, 0xaa, 0xac, 0x99, 0xfc, 0xef, 0xf9, 0x0b, 0xd4, 0xca, 0x89, 0xf8, 0xe4, 0xe3, 0xd0, 0xf0,
- 0x6a, 0x03, 0xb7, 0xaf, 0x60, 0x38, 0x74, 0xdf, 0x0e, 0x32, 0x26, 0xe3, 0x14, 0x12, 0xeb, 0x38,
- 0xd3, 0xf7, 0x34, 0x3d, 0xa7, 0x99, 0xf7, 0xfa, 0x30, 0xeb, 0x9a, 0xbe, 0x76, 0x71, 0xc0, 0x96,
- 0x70, 0xc2, 0x5e, 0xbc, 0xcd, 0x6a, 0x9e, 0x15, 0x33, 0x35, 0x73, 0x3f, 0x23, 0x2c, 0xf9, 0x60,
- 0xe2, 0x9a, 0x7e, 0xaf, 0x92, 0x49, 0x20, 0x50, 0x59, 0x0e, 0xe1, 0xd2, 0x9b, 0x40, 0x60, 0x8b,
- 0x9a, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xf6, 0x51, 0xb4, 0x73, 0xf5, 0x2e, 0xe3, 0x09, 0x6b, 0x73,
- 0x39, 0xca, 0x1a, 0x06, 0x89, 0xa5, 0x6c, 0x50, 0xc1, 0xac, 0x2f, 0xb5, 0x7f, 0x33, 0xc4, 0x1e,
- 0x10, 0x76, 0xba, 0xc3, 0xec, 0xe1, 0x00, 0xd2, 0xe3, 0xca, 0x9c, 0xc9, 0x53, 0xae, 0xba, 0x47,
- 0xf2, 0x0f, 0x07, 0x90, 0xd6, 0x9e, 0x8c, 0x5d, 0xad, 0xe7, 0x49, 0x7a, 0x31, 0xab, 0xd8, 0xa2,
- 0x98, 0x6e, 0xb1, 0x9c, 0x55, 0x68, 0x4f, 0xc6, 0x29, 0x35, 0x42, 0x89, 0x3d, 0x99, 0x1e, 0x15,
- 0x93, 0xc1, 0xd9, 0xa5, 0xd8, 0xcc, 0xb3, 0x19, 0x5e, 0x51, 0x3b, 0x86, 0x04, 0x40, 0x64, 0x70,
- 0x5e, 0xd0, 0xd3, 0x89, 0xe4, 0x8a, 0x9b, 0x67, 0x69, 0x92, 0x4b, 0x7f, 0x1b, 0xb4, 0x19, 0x07,
- 0xec, 0xed, 0x44, 0x1e, 0x05, 0x4f, 0x3d, 0x4f, 0x16, 0x55, 0xb1, 0x57, 0x70, 0x46, 0xd6, 0xb3,
- 0x05, 0x7a, 0xeb, 0x69, 0x81, 0x28, 0xac, 0x9e, 0xc0, 0xdb, 0xa6, 0x34, 0xcd, 0x3f, 0xbe, 0xb0,
- 0xda, 0xfc, 0x3e, 0x56, 0xf2, 0x50, 0x58, 0x45, 0x1c, 0xaa, 0x8c, 0x72, 0x22, 0x3b, 0x4c, 0x40,
- 0xdb, 0xed, 0x26, 0x0f, 0xfa, 0x41, 0xbf, 0x9f, 0x09, 0x5f, 0xe5, 0x10, 0xf2, 0x23, 0x80, 0x21,
- 0x7e, 0x5a, 0xd0, 0x6c, 0xb7, 0x38, 0xf5, 0x39, 0x87, 0xf4, 0xa2, 0x73, 0xc5, 0xc8, 0x2d, 0xa8,
- 0x44, 0x88, 0xed, 0x16, 0x02, 0xf5, 0x37, 0xd1, 0x5e, 0xca, 0x8a, 0x50, 0x13, 0x35, 0xf2, 0x21,
- 0x4d, 0xa4, 0x38, 0xb3, 0xf8, 0xd5, 0x52, 0xd5, 0x33, 0x65, 0x33, 0xad, 0x11, 0x16, 0x6c, 0x88,
- 0x58, 0xfc, 0x92, 0xb0, 0xc9, 0xc9, 0xb1, 0xcf, 0x83, 0xee, 0x9d, 0xe2, 0x8e, 0x95, 0x03, 0xfa,
- 0x4e, 0x31, 0xc5, 0xd2, 0x95, 0x94, 0x7d, 0xa4, 0xc7, 0x8a, 0xdb, 0x4f, 0x1e, 0x0f, 0x83, 0xcd,
- 0x92, 0xc7, 0xf1, 0xb9, 0x95, 0x43, 0x52, 0x49, 0xaf, 0xeb, 0x01, 0x43, 0x06, 0x23, 0x96, 0x3c,
- 0x01, 0x1c, 0x85, 0x30, 0xc7, 0xf3, 0x16, 0x2b, 0x38, 0x14, 0xdc, 0x17, 0xc2, 0x5c, 0x63, 0x0a,
- 0x0c, 0x85, 0x30, 0x4a, 0x01, 0xf5, 0x5b, 0xb1, 0x1f, 0x04, 0xfc, 0x30, 0x99, 0x7b, 0x33, 0x36,
- 0xb9, 0xd7, 0x23, 0xe5, 0xa1, 0x7e, 0x8b, 0x38, 0xeb, 0x90, 0xcf, 0xf6, 0x72, 0x92, 0x54, 0x33,
- 0xbd, 0xbb, 0x31, 0x8d, 0x9f, 0xd0, 0x76, 0x5c, 0x92, 0x38, 0xe4, 0x0b, 0x6b, 0xa0, 0xb0, 0xb3,
- 0x37, 0x4f, 0x66, 0xba, 0xa6, 0x9e, 0x1a, 0x08, 0x79, 0xa7, 0xaa, 0x0f, 0xfa, 0x41, 0xe4, 0xe7,
- 0x55, 0x36, 0x05, 0x16, 0xf0, 0x23, 0xe4, 0x43, 0xfc, 0x60, 0x10, 0x65, 0x6f, 0x4d, 0xbd, 0xe5,
- 0x8a, 0x6e, 0xb3, 0x98, 0xaa, 0x75, 0xec, 0x98, 0x78, 0x3c, 0x88, 0x0b, 0x65, 0x6f, 0x04, 0x8f,
- 0xc6, 0x68, 0xbb, 0x41, 0x1b, 0x1a, 0xa3, 0x7a, 0xff, 0x75, 0xc8, 0x18, 0xf5, 0xc1, 0xca, 0xe7,
- 0x4f, 0xd5, 0x18, 0xdd, 0x4e, 0x78, 0xd2, 0xe4, 0xed, 0xaf, 0x32, 0xb8, 0x54, 0x0b, 0x61, 0x4f,
- 0x7d, 0x5b, 0x6a, 0x2c, 0x5e, 0x26, 0x43, 0xab, 0xe2, 0x8d, 0xc1, 0x7c, 0xc0, 0xb7, 0x5a, 0x21,
- 0xf4, 0xfa, 0x46, 0x4b, 0x85, 0x8d, 0xc1, 0x7c, 0xc0, 0xb7, 0x7a, 0x4b, 0xb5, 0xd7, 0x37, 0x7a,
- 0x55, 0x75, 0x63, 0x30, 0xaf, 0x7c, 0xff, 0x55, 0x3b, 0x70, 0x6d, 0xe7, 0x4d, 0x1e, 0x96, 0xf2,
- 0x6c, 0x09, 0xbe, 0x74, 0xd2, 0xb5, 0xa7, 0xd1, 0x50, 0x3a, 0x49, 0xab, 0x58, 0x9f, 0x36, 0xf1,
- 0x95, 0xe2, 0x88, 0xd5, 0x99, 0x38, 0xa4, 0x7f, 0x36, 0xc0, 0x68, 0x0b, 0x87, 0x16, 0x4d, 0x21,
- 0x25, 0x73, 0xdc, 0xe8, 0xa0, 0xe6, 0x46, 0xf1, 0xe3, 0x80, 0xbd, 0xee, 0xc5, 0xe2, 0xf5, 0x81,
- 0xb4, 0x39, 0xf8, 0x73, 0x18, 0xfb, 0xc4, 0x31, 0xd4, 0xaa, 0xde, 0x43, 0xc7, 0x27, 0xc3, 0x15,
- 0x94, 0xfb, 0xbf, 0x69, 0xd7, 0x15, 0xd8, 0xbf, 0x1a, 0x04, 0x4f, 0x87, 0x58, 0x44, 0x03, 0xe1,
- 0xd9, 0x95, 0x74, 0x54, 0x41, 0xfe, 0x63, 0x14, 0xdd, 0xf2, 0x16, 0xc4, 0x3d, 0x7b, 0xfe, 0xdd,
- 0x21, 0xb6, 0xfd, 0x67, 0xd0, 0x5f, 0x7c, 0x1b, 0x55, 0x55, 0xba, 0x7f, 0x68, 0x97, 0xf7, 0xad,
- 0x86, 0x78, 0xeb, 0xe3, 0x65, 0x35, 0x85, 0x4a, 0x8d, 0xd8, 0x50, 0xa7, 0x33, 0x30, 0x1e, 0xb7,
- 0x9f, 0x5e, 0x51, 0xcb, 0xfa, 0x0c, 0x8f, 0x03, 0xab, 0x37, 0xee, 0xac, 0xf2, 0x84, 0x2c, 0x5b,
- 0x34, 0x2e, 0xd0, 0x67, 0x57, 0x55, 0xa3, 0x46, 0xb2, 0x05, 0x8b, 0xb7, 0xfa, 0x9f, 0x0d, 0x34,
- 0xec, 0xbc, 0xe7, 0xff, 0xc9, 0xd5, 0x94, 0x54, 0x59, 0xfe, 0x6b, 0x14, 0xdd, 0x75, 0x58, 0x73,
- 0xda, 0x81, 0xf6, 0x64, 0x7e, 0x14, 0xb0, 0x4f, 0x29, 0xe9, 0xc2, 0xfd, 0xde, 0xb7, 0x53, 0x36,
- 0xdf, 0xac, 0x71, 0x54, 0x76, 0xb2, 0x9c, 0x43, 0xd5, 0xfd, 0x66, 0x8d, 0x6b, 0x57, 0x52, 0x63,
- 0xfa, 0x9b, 0x35, 0x01, 0xdc, 0xfa, 0x66, 0x8d, 0xc7, 0xb3, 0xf7, 0x9b, 0x35, 0x5e, 0x6b, 0xc1,
- 0x6f, 0xd6, 0x84, 0x35, 0xa8, 0xc9, 0xa7, 0x2d, 0x82, 0xdc, 0x55, 0x1f, 0x64, 0xd1, 0xdd, 0x64,
- 0x7f, 0x7a, 0x15, 0x15, 0x62, 0xfa, 0x95, 0x9c, 0xb8, 0x85, 0x37, 0xe0, 0x99, 0x3a, 0x37, 0xf1,
- 0x36, 0x06, 0xf3, 0xca, 0xf7, 0x4f, 0xd4, 0xda, 0x4b, 0x4f, 0x36, 0xac, 0x12, 0xdf, 0x2b, 0x5a,
- 0x0b, 0x4d, 0x1e, 0x8d, 0x05, 0xbb, 0xe5, 0x1f, 0x0f, 0x83, 0x89, 0xea, 0x36, 0x84, 0x6a, 0xf4,
- 0x71, 0x9f, 0x21, 0xd4, 0xe4, 0x1b, 0x83, 0x79, 0x62, 0x92, 0x93, 0xbe, 0x65, 0x6b, 0x0f, 0x30,
- 0xe6, 0xb6, 0xf5, 0x93, 0xe1, 0x0a, 0xca, 0xfd, 0x52, 0x25, 0xb5, 0xb6, 0x7b, 0xd1, 0xce, 0xeb,
- 0x7d, 0xa6, 0x26, 0x4e, 0x33, 0x8f, 0x87, 0xe2, 0xa1, 0xf4, 0xc6, 0x9e, 0xe0, 0xfb, 0xd2, 0x1b,
- 0xef, 0x24, 0xff, 0xc9, 0xd5, 0x94, 0x54, 0x59, 0xfe, 0x79, 0x14, 0x5d, 0x27, 0xcb, 0xa2, 0xfa,
- 0xc1, 0x67, 0x43, 0x2d, 0xa3, 0xfe, 0xf0, 0xf9, 0x95, 0xf5, 0x54, 0xa1, 0xfe, 0x6d, 0x14, 0xdd,
- 0x08, 0x14, 0x4a, 0x76, 0x90, 0x2b, 0x58, 0x77, 0x3b, 0xca, 0x0f, 0xaf, 0xae, 0x48, 0x4d, 0xf7,
- 0x36, 0x3e, 0xe9, 0x7e, 0xcc, 0x25, 0x60, 0x7b, 0x42, 0x7f, 0xcc, 0xa5, 0x5f, 0x0b, 0x6f, 0x41,
- 0x35, 0x49, 0x89, 0x5a, 0x19, 0xf9, 0xb6, 0xa0, 0x44, 0xce, 0x82, 0x56, 0x44, 0xf7, 0x7b, 0x39,
- 0x9f, 0x93, 0x17, 0x6f, 0xcb, 0xa4, 0x98, 0xd2, 0x4e, 0xa4, 0xbc, 0xdf, 0x89, 0xe6, 0xf0, 0xd6,
- 0x5d, 0x23, 0x3d, 0x66, 0xed, 0x32, 0xef, 0x21, 0xa5, 0xaf, 0x91, 0xe0, 0xd6, 0x5d, 0x07, 0x25,
- 0xbc, 0xa9, 0x9c, 0x36, 0xe4, 0x0d, 0xa5, 0xb2, 0x8f, 0x86, 0xa0, 0x68, 0x01, 0xa1, 0xbd, 0xe9,
- 0x13, 0x81, 0xc7, 0x21, 0x2b, 0x9d, 0x53, 0x81, 0xf5, 0x81, 0x34, 0xe1, 0x76, 0x02, 0xfc, 0x4b,
- 0x48, 0xa6, 0x50, 0x05, 0xdd, 0x6a, 0x6a, 0x90, 0x5b, 0x9b, 0xf6, 0xb9, 0xdd, 0x62, 0xf9, 0x62,
- 0x5e, 0xa8, 0xc6, 0x24, 0xdd, 0xda, 0x54, 0xbf, 0x5b, 0x44, 0xe3, 0x4d, 0x4b, 0xe3, 0x56, 0xa4,
- 0x97, 0x8f, 0xc2, 0x66, 0x9c, 0xac, 0x72, 0x6d, 0x10, 0x4b, 0xd7, 0x53, 0x75, 0xa3, 0x9e, 0x7a,
- 0xa2, 0x9e, 0xb4, 0x3e, 0x90, 0xc6, 0xbb, 0x87, 0x96, 0x5b, 0xdd, 0x9f, 0x36, 0x7a, 0x6c, 0x75,
- 0xba, 0xd4, 0x93, 0xe1, 0x0a, 0x78, 0xaf, 0x56, 0xf5, 0xaa, 0x66, 0x5d, 0xb4, 0x93, 0xe5, 0x79,
- 0xbc, 0x16, 0xe8, 0x26, 0x2d, 0x14, 0xdc, 0xab, 0xf5, 0xc0, 0x44, 0x4f, 0x6e, 0xf7, 0x36, 0x8b,
- 0xb8, 0xcf, 0x8e, 0xa0, 0x06, 0xf5, 0x64, 0x9b, 0x46, 0xfb, 0x6d, 0xd6, 0xa3, 0xd6, 0xb5, 0x1d,
- 0x87, 0x1f, 0x5c, 0xa7, 0xc2, 0x1b, 0x83, 0x79, 0x74, 0x19, 0x40, 0x50, 0x62, 0x66, 0xb9, 0x43,
- 0x99, 0x70, 0x66, 0x92, 0xbb, 0x3d, 0x14, 0xda, 0xb3, 0x94, 0xc3, 0xe8, 0x75, 0x36, 0x9d, 0x01,
- 0xf7, 0x9e, 0x63, 0xd9, 0x40, 0xf0, 0x1c, 0x0b, 0x81, 0xa8, 0xe9, 0xe4, 0xef, 0x7a, 0xb3, 0x76,
- 0x6f, 0xea, 0x6b, 0x3a, 0xa5, 0x6c, 0x51, 0xa1, 0xa6, 0xf3, 0xd2, 0x28, 0x1a, 0x68, 0xb7, 0xea,
- 0xc5, 0xfd, 0x47, 0x21, 0x33, 0xe8, 0xed, 0xfd, 0xb5, 0x41, 0x2c, 0x9a, 0x51, 0x8c, 0xc3, 0x6c,
- 0x9e, 0x71, 0xdf, 0x8c, 0x62, 0xd9, 0x68, 0x90, 0xd0, 0x8c, 0xd2, 0x45, 0xa9, 0xea, 0x35, 0x39,
- 0xc2, 0xde, 0x34, 0x5c, 0x3d, 0xc9, 0x0c, 0xab, 0x9e, 0x66, 0x3b, 0xc7, 0xae, 0x85, 0xee, 0x32,
- 0xfc, 0x5c, 0x2d, 0x96, 0x3d, 0x7d, 0x5b, 0xbc, 0xd0, 0x89, 0xc1, 0x50, 0xd4, 0xa1, 0x14, 0xf0,
- 0x71, 0x42, 0xc3, 0xb5, 0x27, 0xc3, 0x65, 0x09, 0x49, 0x95, 0x14, 0xa9, 0x77, 0x71, 0x2a, 0x0c,
- 0x76, 0xc8, 0xd0, 0xe2, 0x94, 0xd4, 0x40, 0x87, 0xfa, 0xee, 0xab, 0x98, 0x9e, 0xa1, 0xa0, 0xdf,
- 0x79, 0x74, 0xdf, 0xc4, 0x7c, 0x38, 0x80, 0xc4, 0x87, 0xfa, 0x2d, 0xa0, 0xb7, 0xe5, 0xa5, 0xd3,
- 0x8f, 0x03, 0xa6, 0x5c, 0x34, 0xb4, 0x10, 0xa6, 0x55, 0x50, 0xa7, 0xd6, 0x09, 0x2e, 0xf0, 0x1f,
- 0xc3, 0xca, 0xd7, 0xa9, 0x4d, 0x7e, 0x2a, 0x90, 0x50, 0xa7, 0xee, 0xa2, 0x28, 0xcf, 0xb4, 0xd7,
- 0x41, 0xf7, 0x02, 0xfa, 0xf6, 0xd2, 0xe7, 0x7e, 0x2f, 0x87, 0x46, 0xce, 0x76, 0xb6, 0x74, 0x4e,
- 0x31, 0x3c, 0x05, 0xdd, 0xce, 0x96, 0xfe, 0x43, 0x8c, 0xb5, 0x41, 0x2c, 0xbe, 0x30, 0x90, 0x70,
- 0x78, 0xdb, 0x9e, 0xe4, 0x7b, 0x8a, 0x2b, 0xe4, 0x9d, 0xa3, 0xfc, 0x07, 0xfd, 0xa0, 0xb9, 0x9e,
- 0x7b, 0x54, 0xb1, 0x14, 0xea, 0x5a, 0x7d, 0xe1, 0xce, 0xbd, 0xff, 0xa4, 0x64, 0x63, 0xf4, 0x7d,
- 0xbb, 0x3b, 0x61, 0x48, 0xd9, 0xfe, 0x32, 0x7a, 0x77, 0x9f, 0xcd, 0x26, 0x50, 0x4c, 0xe3, 0x1f,
- 0xb8, 0x17, 0x62, 0xd9, 0x6c, 0xdc, 0xfc, 0xac, 0xed, 0x5d, 0xa3, 0xc4, 0xe6, 0x4a, 0xdf, 0x36,
- 0xbc, 0x59, 0xcc, 0x26, 0x3c, 0xe1, 0xe8, 0x4a, 0x9f, 0xf8, 0x7d, 0xdc, 0x08, 0x88, 0x2b, 0x7d,
- 0x0e, 0x80, 0xec, 0x9d, 0x54, 0x00, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x01, 0x66, 0xd6, 0xd5,
- 0xf6, 0x9a, 0xc4, 0x16, 0x5f, 0xc1, 0x33, 0x3a, 0x42, 0x4a, 0xcc, 0xba, 0x5d, 0xca, 0x74, 0x06,
- 0x59, 0x7d, 0xf1, 0x3d, 0x8f, 0xc5, 0x7c, 0x9e, 0x54, 0x2b, 0xd4, 0x19, 0x54, 0x2d, 0x2d, 0x80,
- 0xe8, 0x0c, 0x5e, 0xd0, 0xf4, 0xf2, 0xf6, 0x31, 0xa7, 0x17, 0xbb, 0xac, 0x62, 0x0b, 0x9e, 0x15,
- 0x80, 0xbf, 0xe9, 0xa0, 0x1f, 0xa8, 0xcd, 0x10, 0xbd, 0x9c, 0x62, 0x4d, 0x56, 0x28, 0x08, 0x79,
- 0x3b, 0x50, 0x7c, 0x27, 0xb6, 0xe6, 0xac, 0xc2, 0xa7, 0x83, 0xd2, 0x0a, 0x86, 0x88, 0xac, 0x90,
- 0x84, 0x51, 0xdb, 0x1f, 0x65, 0xc5, 0xcc, 0xdb, 0xf6, 0x47, 0xf6, 0x57, 0x16, 0x6f, 0xd0, 0x80,
- 0x89, 0xef, 0xf2, 0xa1, 0xc9, 0xef, 0x26, 0xa9, 0x37, 0x33, 0xbd, 0x0f, 0xdd, 0x26, 0x88, 0xf8,
- 0xee, 0x27, 0x91, 0xab, 0x97, 0x25, 0x14, 0x30, 0x6d, 0xef, 0xc0, 0xf9, 0x5c, 0x39, 0x44, 0xd0,
- 0x15, 0x26, 0x4d, 0x54, 0x15, 0xf2, 0xe3, 0x45, 0x71, 0x54, 0xb1, 0xb3, 0x2c, 0x87, 0x0a, 0x45,
- 0x55, 0xa9, 0x6e, 0xc9, 0x89, 0xa8, 0xea, 0xe3, 0xcc, 0x65, 0x0a, 0x21, 0x75, 0x3e, 0x76, 0x7c,
- 0x52, 0x25, 0x29, 0xbe, 0x4c, 0x21, 0x6d, 0x74, 0x31, 0x62, 0x27, 0x2d, 0x80, 0x9b, 0x9e, 0x7e,
- 0x00, 0xbc, 0xca, 0xd2, 0x7a, 0x02, 0xfc, 0x28, 0xa9, 0x92, 0x39, 0x70, 0xa8, 0x70, 0x4f, 0x57,
- 0xc8, 0xd8, 0x61, 0x88, 0x9e, 0x4e, 0xb1, 0xca, 0xe1, 0xef, 0x47, 0xef, 0x37, 0x81, 0x1e, 0x0a,
- 0xf5, 0x5d, 0xfe, 0x17, 0xe2, 0x0f, 0x7a, 0xc4, 0x1f, 0x68, 0x1b, 0x13, 0x5e, 0x41, 0x32, 0x6f,
- 0x6d, 0xbf, 0xa7, 0x7f, 0x17, 0xe0, 0x93, 0x51, 0xd3, 0x20, 0x87, 0x8c, 0x67, 0x67, 0xcd, 0xba,
- 0x4a, 0x9d, 0x62, 0xa1, 0x06, 0xb1, 0xc5, 0xe3, 0xc0, 0x67, 0x0a, 0x7c, 0x9c, 0x09, 0x34, 0xb6,
- 0xf4, 0x18, 0xca, 0x1c, 0x07, 0x1a, 0x47, 0x5b, 0x00, 0x44, 0xa0, 0xf1, 0x82, 0xa6, 0x77, 0xd9,
- 0xe2, 0x13, 0x08, 0x57, 0xe6, 0x04, 0x86, 0x55, 0xe6, 0xc4, 0x79, 0x47, 0x20, 0x8f, 0xde, 0x3f,
- 0x80, 0xf9, 0x1b, 0xa8, 0xea, 0xf3, 0xac, 0xdc, 0x6d, 0x66, 0xd8, 0x84, 0x2f, 0xf0, 0x5b, 0x74,
- 0x86, 0x18, 0x6b, 0x84, 0x48, 0x43, 0x08, 0xd4, 0x84, 0x32, 0x03, 0xec, 0xd5, 0x87, 0xc9, 0x1c,
- 0xc4, 0x47, 0x17, 0xe2, 0x35, 0xca, 0x88, 0x05, 0x11, 0xa1, 0x8c, 0x84, 0xad, 0xd7, 0x8d, 0x0c,
- 0x73, 0x0c, 0xb3, 0xa6, 0x87, 0x55, 0x47, 0xc9, 0x6a, 0x0e, 0x05, 0x57, 0x26, 0xd1, 0x26, 0xac,
- 0x65, 0xd2, 0xcf, 0x13, 0x9b, 0xb0, 0x43, 0xf4, 0xac, 0xa4, 0xdb, 0x79, 0xf0, 0x47, 0xac, 0xe2,
- 0xf2, 0xaf, 0x6e, 0x9c, 0x56, 0x39, 0x4a, 0xba, 0xdd, 0x87, 0xea, 0x90, 0x44, 0xd2, 0x1d, 0xd6,
- 0xb0, 0x3e, 0x57, 0xed, 0x94, 0xe1, 0x15, 0x54, 0xba, 0x9f, 0xbc, 0x98, 0x27, 0x59, 0xae, 0x7a,
- 0xc3, 0x17, 0x01, 0xdb, 0x84, 0x0e, 0xf1, 0xb9, 0xea, 0xa1, 0xba, 0xd6, 0x07, 0xbe, 0xc3, 0x25,
- 0x44, 0x7b, 0xc2, 0x3d, 0xf6, 0x89, 0x3d, 0xe1, 0x7e, 0x2d, 0xb3, 0x54, 0x33, 0xac, 0xe0, 0x56,
- 0x82, 0xd8, 0x62, 0x53, 0xbc, 0x41, 0x64, 0xd9, 0x44, 0x20, 0xb1, 0x54, 0x0b, 0x2a, 0x98, 0xb9,
- 0xcd, 0x60, 0x3b, 0x59, 0x91, 0xe4, 0xd9, 0x4f, 0xf1, 0xdd, 0x67, 0xcb, 0x4e, 0x4b, 0x10, 0x73,
- 0x9b, 0x9f, 0xf4, 0xb9, 0xda, 0x05, 0x7e, 0x92, 0x35, 0xa1, 0xff, 0x41, 0xe0, 0xb9, 0x09, 0xa2,
- 0xdf, 0x95, 0x45, 0x2a, 0x57, 0x3f, 0x1b, 0x45, 0xd7, 0xf1, 0x63, 0xdd, 0x2c, 0xcb, 0x49, 0x93,
- 0x92, 0x1c, 0x43, 0x0a, 0x59, 0xc9, 0xe3, 0x4f, 0xc3, 0xcf, 0x0a, 0xe1, 0xc4, 0xc9, 0xfa, 0x00,
- 0x35, 0xeb, 0xbc, 0xb6, 0x89, 0x25, 0x13, 0xf9, 0xe7, 0xa8, 0x4e, 0x6b, 0xa8, 0xd4, 0x4c, 0xb9,
- 0x0b, 0x1c, 0x8d, 0x4e, 0x8b, 0x1b, 0x5b, 0x60, 0x53, 0x51, 0x62, 0x74, 0x86, 0x35, 0xcc, 0xee,
- 0x8e, 0xc5, 0x1d, 0x43, 0xcd, 0xf2, 0x25, 0x88, 0xeb, 0x6f, 0x8f, 0x49, 0x63, 0x16, 0x45, 0xec,
- 0xee, 0xd0, 0xb4, 0x49, 0x37, 0xba, 0x6e, 0x37, 0x8b, 0xd5, 0x1e, 0x3e, 0x23, 0xf7, 0x58, 0x12,
- 0x18, 0x91, 0x6e, 0x04, 0x70, 0x6b, 0xf7, 0xb3, 0x62, 0xc9, 0x34, 0x4d, 0x6a, 0x7e, 0x94, 0xac,
- 0x72, 0x96, 0x4c, 0xc5, 0xbc, 0x8e, 0x77, 0x3f, 0x5b, 0x66, 0x6c, 0x43, 0xd4, 0xee, 0x27, 0x05,
- 0x9b, 0x95, 0x9d, 0xfa, 0x2b, 0x5b, 0xea, 0x6a, 0xe1, 0x6d, 0x94, 0x23, 0x89, 0xf2, 0xe2, 0x6b,
- 0x85, 0x77, 0xc2, 0x90, 0x79, 0x25, 0x4a, 0x8a, 0x44, 0x1a, 0x72, 0xc3, 0xa7, 0xe3, 0x24, 0x20,
- 0x37, 0x03, 0x84, 0xf9, 0x4c, 0x82, 0xfc, 0xbd, 0xfd, 0x43, 0x11, 0x5c, 0x7d, 0xb8, 0xf7, 0xb1,
- 0x4f, 0xd7, 0x86, 0xc6, 0xf6, 0xb7, 0xcf, 0xd6, 0x07, 0xd2, 0xd2, 0xeb, 0xf3, 0x9b, 0xff, 0xf3,
- 0xf5, 0xb5, 0xd1, 0xcf, 0xbf, 0xbe, 0x36, 0xfa, 0xff, 0xaf, 0xaf, 0x8d, 0x7e, 0xf6, 0xcd, 0xb5,
- 0x77, 0x7e, 0xfe, 0xcd, 0xb5, 0x77, 0xfe, 0xf7, 0x9b, 0x6b, 0xef, 0x7c, 0xf5, 0xae, 0xfa, 0x73,
- 0x6d, 0x6f, 0x7e, 0x49, 0xfc, 0xd1, 0xb5, 0x67, 0xbf, 0x08, 0x00, 0x00, 0xff, 0xff, 0x95, 0x20,
- 0x7a, 0x41, 0xd2, 0x6d, 0x00, 0x00,
+ 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x19,
+ 0xcf, 0x8c, 0xed, 0xf6, 0xec, 0xcc, 0x7e, 0x1c, 0x7b, 0x48, 0xc8, 0x63, 0x8f, 0xbd, 0xe6, 0x6c,
+ 0x8f, 0x71, 0xb7, 0x67, 0xa4, 0x95, 0x90, 0xa8, 0xa9, 0x0e, 0xb7, 0x0b, 0x57, 0x57, 0xd6, 0x55,
+ 0x65, 0xb7, 0xa7, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0x8f, 0x7b, 0xe1, 0x01, 0x89,
+ 0xbf, 0x86, 0xc7, 0x7d, 0xe4, 0x11, 0xed, 0xfe, 0x23, 0xa8, 0x32, 0xb3, 0xf2, 0x23, 0x2a, 0x23,
+ 0xab, 0xbc, 0x4f, 0x33, 0xea, 0xf8, 0x45, 0x44, 0x66, 0x65, 0x64, 0x66, 0xe4, 0x47, 0x95, 0xa3,
+ 0x9b, 0xc5, 0x9b, 0xad, 0xa2, 0x64, 0x9c, 0x55, 0x5b, 0x15, 0x94, 0xcb, 0x34, 0x81, 0xe6, 0xdf,
+ 0x91, 0xf8, 0x79, 0xf8, 0x6e, 0x9c, 0xaf, 0xf8, 0xaa, 0x80, 0x8f, 0x3e, 0x34, 0x64, 0xc2, 0xe6,
+ 0xf3, 0x38, 0x9f, 0x56, 0x12, 0xf9, 0xe8, 0x03, 0x23, 0x81, 0x25, 0xe4, 0x5c, 0xfd, 0xfe, 0xf4,
+ 0x97, 0xdf, 0x0c, 0xa2, 0xf7, 0x76, 0xb2, 0x14, 0x72, 0xbe, 0xa3, 0x34, 0x86, 0x5f, 0x45, 0xdf,
+ 0xdf, 0x2e, 0x8a, 0x7d, 0xe0, 0xaf, 0xa0, 0xac, 0x52, 0x96, 0x0f, 0xef, 0x8e, 0x94, 0x83, 0xd1,
+ 0x69, 0x91, 0x8c, 0xb6, 0x8b, 0x62, 0x64, 0x84, 0xa3, 0x53, 0xf8, 0xd9, 0x02, 0x2a, 0xfe, 0xd1,
+ 0xbd, 0x30, 0x54, 0x15, 0x2c, 0xaf, 0x60, 0x78, 0x1e, 0xfd, 0xd6, 0x76, 0x51, 0x8c, 0x81, 0xef,
+ 0x42, 0x5d, 0x81, 0x31, 0x8f, 0x39, 0x0c, 0xd7, 0x5a, 0xaa, 0x2e, 0xa0, 0x7d, 0x3c, 0xec, 0x06,
+ 0x95, 0x9f, 0x49, 0xf4, 0xbd, 0xda, 0xcf, 0xc5, 0x82, 0x4f, 0xd9, 0x55, 0x3e, 0xbc, 0xdd, 0x56,
+ 0x54, 0x22, 0x6d, 0xfb, 0x4e, 0x08, 0x51, 0x56, 0x5f, 0x47, 0xbf, 0xfe, 0x3a, 0xce, 0x32, 0xe0,
+ 0x3b, 0x25, 0xd4, 0x05, 0x77, 0x75, 0xa4, 0x68, 0x24, 0x65, 0xda, 0xee, 0xdd, 0x20, 0xa3, 0x0c,
+ 0x7f, 0x15, 0x7d, 0x5f, 0x4a, 0x4e, 0x21, 0x61, 0x4b, 0x28, 0x87, 0x5e, 0x2d, 0x25, 0x24, 0x1e,
+ 0x79, 0x0b, 0xc2, 0xb6, 0x77, 0x58, 0xbe, 0x84, 0x92, 0xfb, 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x81,
+ 0x94, 0xed, 0x7f, 0x18, 0x44, 0x3f, 0xdc, 0x4e, 0x12, 0xb6, 0xc8, 0xf9, 0x21, 0x4b, 0xe2, 0xec,
+ 0x30, 0xcd, 0x2f, 0x8f, 0xe1, 0x6a, 0xe7, 0xa2, 0xe6, 0xf3, 0x19, 0x0c, 0x9f, 0xb9, 0x4f, 0x55,
+ 0xa2, 0x23, 0xcd, 0x8e, 0x6c, 0x58, 0xfb, 0xfe, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x32, 0x88,
+ 0x6e, 0xe0, 0xb2, 0x8c, 0x59, 0xb6, 0x04, 0x53, 0x9a, 0x4f, 0x3b, 0x0c, 0xbb, 0xb8, 0x2e, 0xcf,
+ 0x67, 0xd7, 0x55, 0x53, 0x25, 0xca, 0xa2, 0xf7, 0xed, 0x70, 0x19, 0x43, 0x25, 0xba, 0xd3, 0x23,
+ 0x3a, 0x22, 0x14, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x2a, 0x6f, 0x69, 0x34, 0x54, 0xde, 0x32, 0x56,
+ 0x69, 0x67, 0x0f, 0xbd, 0x16, 0x2c, 0x42, 0xfb, 0x7a, 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x34, 0xfa,
+ 0x8d, 0xd7, 0xac, 0xbc, 0xac, 0x8a, 0x38, 0x01, 0xd5, 0x15, 0xee, 0xbb, 0xda, 0x8d, 0x14, 0xf7,
+ 0x86, 0x07, 0x5d, 0x98, 0x15, 0xb4, 0x8d, 0xf0, 0x65, 0x01, 0x78, 0x0c, 0x32, 0x8a, 0xb5, 0x90,
+ 0x0a, 0x5a, 0x0c, 0x29, 0xdb, 0x97, 0xd1, 0xd0, 0xd8, 0x7e, 0xf3, 0x67, 0x90, 0xf0, 0xed, 0xe9,
+ 0x14, 0xb7, 0x8a, 0xd1, 0x15, 0xc4, 0x68, 0x7b, 0x3a, 0xa5, 0x5a, 0xc5, 0x8f, 0x2a, 0x67, 0x57,
+ 0xd1, 0x07, 0xc8, 0xd9, 0x61, 0x5a, 0x09, 0x87, 0x9b, 0x61, 0x2b, 0x0a, 0xd3, 0x4e, 0x47, 0x7d,
+ 0x71, 0xe5, 0xf8, 0xaf, 0x06, 0xd1, 0x0f, 0x3c, 0x9e, 0x4f, 0x61, 0xce, 0x96, 0x30, 0x7c, 0xd2,
+ 0x6d, 0x4d, 0x92, 0xda, 0xff, 0xc7, 0xd7, 0xd0, 0xf0, 0x84, 0xc9, 0x18, 0x32, 0x48, 0x38, 0x19,
+ 0x26, 0x52, 0xdc, 0x19, 0x26, 0x1a, 0xb3, 0x7a, 0x58, 0x23, 0xdc, 0x07, 0xbe, 0xb3, 0x28, 0x4b,
+ 0xc8, 0x39, 0xd9, 0x96, 0x06, 0xe9, 0x6c, 0x4b, 0x07, 0xf5, 0xd4, 0x67, 0x1f, 0xf8, 0x76, 0x96,
+ 0x91, 0xf5, 0x91, 0xe2, 0xce, 0xfa, 0x68, 0x4c, 0x79, 0x48, 0xa2, 0xdf, 0xb4, 0x9e, 0x18, 0x3f,
+ 0xc8, 0xcf, 0xd9, 0x90, 0x7e, 0x16, 0x42, 0xae, 0x7d, 0xac, 0x75, 0x72, 0x9e, 0x6a, 0xbc, 0x78,
+ 0x5b, 0xb0, 0x92, 0x6e, 0x16, 0x29, 0xee, 0xac, 0x86, 0xc6, 0x94, 0x87, 0x3f, 0x89, 0xde, 0x53,
+ 0xa3, 0x64, 0x33, 0x9f, 0xdd, 0xf3, 0x0e, 0xa1, 0x78, 0x42, 0xbb, 0xdf, 0x41, 0x99, 0xc1, 0x41,
+ 0xc9, 0xd4, 0xe0, 0x73, 0xd7, 0xab, 0x87, 0x86, 0x9e, 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x17, 0x32,
+ 0x20, 0x6d, 0x4b, 0x61, 0x87, 0x6d, 0x0d, 0x29, 0xdb, 0x65, 0xf4, 0x3b, 0xfa, 0xb1, 0xd4, 0xf3,
+ 0xa8, 0x90, 0xd7, 0x83, 0xf4, 0x3a, 0x51, 0x6f, 0x1b, 0xd2, 0xbe, 0x36, 0xfa, 0xc1, 0xad, 0xfa,
+ 0xa8, 0x1e, 0xe8, 0xaf, 0x0f, 0xea, 0x7f, 0xf7, 0xc2, 0x90, 0xb2, 0xfd, 0x8f, 0x83, 0xe8, 0x47,
+ 0x4a, 0xf6, 0x22, 0x8f, 0xdf, 0x64, 0x20, 0xa6, 0xc4, 0x63, 0xe0, 0x57, 0xac, 0xbc, 0x1c, 0xaf,
+ 0xf2, 0x84, 0x98, 0xfe, 0xfd, 0x70, 0xc7, 0xf4, 0x4f, 0x2a, 0x59, 0x19, 0x9f, 0xaa, 0x28, 0x67,
+ 0x05, 0xce, 0xf8, 0x9a, 0x1a, 0x70, 0x56, 0x50, 0x19, 0x9f, 0x8b, 0xb4, 0xac, 0x1e, 0xd5, 0xc3,
+ 0xa6, 0xdf, 0xea, 0x91, 0x3d, 0x4e, 0xde, 0x09, 0x21, 0x66, 0xd8, 0x6a, 0x02, 0x98, 0xe5, 0xe7,
+ 0xe9, 0xec, 0xac, 0x98, 0xd6, 0x61, 0xfc, 0xc8, 0x1f, 0xa1, 0x16, 0x42, 0x0c, 0x5b, 0x04, 0xaa,
+ 0xbc, 0xfd, 0xb3, 0x49, 0x8c, 0x54, 0x57, 0xda, 0x2b, 0xd9, 0xfc, 0x10, 0x66, 0x71, 0xb2, 0x52,
+ 0xfd, 0xff, 0x93, 0x50, 0xc7, 0xc3, 0xb4, 0x2e, 0xc4, 0xa7, 0xd7, 0xd4, 0x52, 0xe5, 0xf9, 0xaf,
+ 0x41, 0x74, 0xaf, 0xa9, 0xfe, 0x45, 0x9c, 0xcf, 0x40, 0xb5, 0xa7, 0x2c, 0xfd, 0x76, 0x3e, 0x3d,
+ 0x85, 0x8a, 0xc7, 0x25, 0x1f, 0x7e, 0xe1, 0xaf, 0x64, 0x48, 0x47, 0x97, 0xed, 0x27, 0xdf, 0x49,
+ 0xd7, 0xb4, 0xfa, 0xb8, 0x1e, 0xd8, 0xd4, 0x10, 0xe0, 0xb6, 0xba, 0x90, 0xe0, 0x01, 0xe0, 0x4e,
+ 0x08, 0x31, 0xad, 0x2e, 0x04, 0x07, 0xf9, 0x32, 0xe5, 0xb0, 0x0f, 0x39, 0x94, 0xed, 0x56, 0x97,
+ 0xaa, 0x2e, 0x42, 0xb4, 0x3a, 0x81, 0x9a, 0xc1, 0xc6, 0xf1, 0xa6, 0x27, 0xc7, 0xf5, 0x80, 0x91,
+ 0xd6, 0xf4, 0xb8, 0xd1, 0x0f, 0x36, 0xab, 0x3b, 0xcb, 0xe7, 0x29, 0x2c, 0xd9, 0x25, 0x5e, 0xdd,
+ 0xd9, 0x26, 0x24, 0x40, 0xac, 0xee, 0xbc, 0xa0, 0x99, 0xc1, 0x2c, 0x3f, 0xaf, 0x52, 0xb8, 0x42,
+ 0x33, 0x98, 0xad, 0x5c, 0x8b, 0x89, 0x19, 0xcc, 0x83, 0x29, 0x0f, 0xc7, 0xd1, 0xaf, 0x09, 0xe1,
+ 0x1f, 0xb1, 0x34, 0x1f, 0xde, 0xf4, 0x28, 0xd5, 0x02, 0x6d, 0xf5, 0x16, 0x0d, 0xa0, 0x12, 0xd7,
+ 0xbf, 0xee, 0xc4, 0x79, 0x02, 0x99, 0xb7, 0xc4, 0x46, 0x1c, 0x2c, 0xb1, 0x83, 0x99, 0xd4, 0x41,
+ 0x08, 0xeb, 0xf1, 0x6b, 0x7c, 0x11, 0x97, 0x69, 0x3e, 0x1b, 0xfa, 0x74, 0x2d, 0x39, 0x91, 0x3a,
+ 0xf8, 0x38, 0x14, 0xc2, 0x4a, 0x71, 0xbb, 0x28, 0xca, 0x7a, 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04,
+ 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x42, 0x92, 0xa5, 0x79, 0xd0, 0x9b, 0x42, 0xfa, 0x78, 0x33,
+ 0x28, 0x0a, 0xde, 0x43, 0x88, 0x97, 0xd0, 0xd4, 0xcc, 0xf7, 0x64, 0x6c, 0x20, 0x18, 0xbc, 0x08,
+ 0x34, 0xeb, 0x34, 0x21, 0x3e, 0x8a, 0x2f, 0xa1, 0x7e, 0xc0, 0x50, 0xcf, 0x6b, 0x43, 0x9f, 0xbe,
+ 0x43, 0x10, 0xeb, 0x34, 0x3f, 0xa9, 0x5c, 0x2d, 0xa2, 0x0f, 0x84, 0xfc, 0x24, 0x2e, 0x79, 0x9a,
+ 0xa4, 0x45, 0x9c, 0x37, 0xf9, 0xbf, 0xaf, 0x5f, 0xb7, 0x28, 0xed, 0x72, 0xb3, 0x27, 0xad, 0xdc,
+ 0xfe, 0x72, 0x10, 0xdd, 0xc6, 0x7e, 0x4f, 0xa0, 0x9c, 0xa7, 0x62, 0x19, 0x59, 0xc9, 0x41, 0x78,
+ 0xf8, 0x79, 0xd8, 0x68, 0x4b, 0x41, 0x97, 0xe6, 0xc7, 0xd7, 0x57, 0x54, 0x05, 0xfb, 0xe3, 0x28,
+ 0x92, 0xcb, 0x15, 0xb1, 0xa4, 0x74, 0x7b, 0xad, 0x5a, 0xc7, 0x38, 0xeb, 0xc9, 0xdb, 0x01, 0xc2,
+ 0x4c, 0x15, 0xf2, 0x77, 0xb1, 0x52, 0x1e, 0x7a, 0x35, 0x84, 0x88, 0x98, 0x2a, 0x10, 0x82, 0x0b,
+ 0x3a, 0xbe, 0x60, 0x57, 0xfe, 0x82, 0xd6, 0x92, 0x70, 0x41, 0x15, 0x61, 0xf6, 0xae, 0x54, 0x41,
+ 0x7d, 0x7b, 0x57, 0x4d, 0x31, 0x42, 0x7b, 0x57, 0x98, 0x51, 0x86, 0x59, 0xf4, 0xdb, 0xb6, 0xe1,
+ 0xe7, 0x8c, 0x5d, 0xce, 0xe3, 0xf2, 0x72, 0xf8, 0x98, 0x56, 0x6e, 0x18, 0xed, 0x68, 0xbd, 0x17,
+ 0x6b, 0x86, 0x05, 0xdb, 0x61, 0x9d, 0x68, 0x9c, 0x95, 0x19, 0x1a, 0x16, 0x1c, 0x1b, 0x0a, 0x21,
+ 0x86, 0x05, 0x02, 0x35, 0x09, 0xb4, 0xf2, 0x76, 0x11, 0x8b, 0x75, 0xbb, 0xff, 0xa1, 0x48, 0x21,
+ 0x91, 0x40, 0xb7, 0x20, 0x33, 0x2b, 0xd8, 0x35, 0x19, 0x03, 0x5e, 0x89, 0x39, 0x45, 0x1b, 0x03,
+ 0xb5, 0x12, 0xf3, 0x60, 0x38, 0x3c, 0xf7, 0xcb, 0xb8, 0xb8, 0xf0, 0x87, 0xa7, 0x10, 0x85, 0xc3,
+ 0xb3, 0x41, 0x70, 0x2c, 0x8d, 0x21, 0x2e, 0x93, 0x0b, 0x7f, 0x2c, 0x49, 0x59, 0x38, 0x96, 0x34,
+ 0x83, 0x63, 0x49, 0x0a, 0x5e, 0xa7, 0xfc, 0xe2, 0x08, 0x78, 0xec, 0x8f, 0x25, 0x97, 0x09, 0xc7,
+ 0x52, 0x8b, 0x35, 0x59, 0x92, 0xed, 0x70, 0xbc, 0x78, 0x53, 0x25, 0x65, 0xfa, 0x06, 0x86, 0x01,
+ 0x2b, 0x1a, 0x22, 0xb2, 0x24, 0x12, 0x36, 0x13, 0x80, 0xf2, 0xd9, 0xc8, 0x0e, 0xa6, 0x15, 0x9a,
+ 0x00, 0x1a, 0x1b, 0x16, 0x41, 0x4c, 0x00, 0x7e, 0x12, 0x57, 0x6f, 0xbf, 0x64, 0x8b, 0xa2, 0xea,
+ 0xa8, 0x1e, 0x82, 0xc2, 0xd5, 0x6b, 0xc3, 0xca, 0xe7, 0xdb, 0xe8, 0x77, 0xed, 0x47, 0x7a, 0x96,
+ 0x57, 0xda, 0xeb, 0x26, 0xfd, 0x9c, 0x2c, 0x8c, 0xd8, 0xf2, 0x0a, 0xe0, 0x26, 0x05, 0x6a, 0x3c,
+ 0xf3, 0x5d, 0xe0, 0x71, 0x9a, 0x55, 0xc3, 0x07, 0x7e, 0x1b, 0x8d, 0x9c, 0x48, 0x81, 0x7c, 0x1c,
+ 0xee, 0xb3, 0xbb, 0x8b, 0x22, 0x4b, 0x93, 0xf6, 0xde, 0xa7, 0xd2, 0xd5, 0xe2, 0x70, 0x9f, 0xb5,
+ 0x31, 0x3c, 0xbe, 0x8d, 0x81, 0xcb, 0xff, 0x4c, 0x56, 0x05, 0xf8, 0xc7, 0x37, 0x07, 0x09, 0x8f,
+ 0x6f, 0x18, 0xc5, 0xf5, 0x19, 0x03, 0x3f, 0x8c, 0x57, 0x6c, 0x41, 0x8c, 0x41, 0x5a, 0x1c, 0xae,
+ 0x8f, 0x8d, 0x99, 0x2c, 0x44, 0x7b, 0x38, 0xc8, 0x39, 0x94, 0x79, 0x9c, 0xed, 0x65, 0xf1, 0xac,
+ 0x1a, 0x12, 0xfd, 0xc6, 0xa5, 0x88, 0x2c, 0x84, 0xa6, 0x3d, 0x8f, 0xf1, 0xa0, 0xda, 0x8b, 0x97,
+ 0xac, 0x4c, 0x39, 0xfd, 0x18, 0x0d, 0xd2, 0xf9, 0x18, 0x1d, 0xd4, 0xeb, 0x6d, 0xbb, 0x4c, 0x2e,
+ 0xd2, 0x25, 0x4c, 0x03, 0xde, 0x1a, 0xa4, 0x87, 0x37, 0x0b, 0xf5, 0x34, 0xda, 0x98, 0x2d, 0xca,
+ 0x04, 0xc8, 0x46, 0x93, 0xe2, 0xce, 0x46, 0xd3, 0x98, 0xf2, 0xf0, 0xb7, 0x83, 0xe8, 0xf7, 0xa4,
+ 0xd4, 0xde, 0x90, 0xdc, 0x8d, 0xab, 0x8b, 0x37, 0x2c, 0x2e, 0xa7, 0xc3, 0x8f, 0x7d, 0x76, 0xbc,
+ 0xa8, 0x76, 0xfd, 0xf4, 0x3a, 0x2a, 0xf8, 0xb1, 0x1e, 0xa6, 0x95, 0xd5, 0xe3, 0xbc, 0x8f, 0xd5,
+ 0x41, 0xc2, 0x8f, 0x15, 0xa3, 0x78, 0x00, 0x11, 0x72, 0xb9, 0xf8, 0x7f, 0x40, 0xea, 0xbb, 0x3b,
+ 0x00, 0x6b, 0x9d, 0x1c, 0x1e, 0x1f, 0x6b, 0xa1, 0x1b, 0x2d, 0x9b, 0x94, 0x0d, 0x7f, 0xc4, 0x8c,
+ 0xfa, 0xe2, 0xa4, 0x67, 0xdd, 0x2b, 0xc2, 0x9e, 0x5b, 0x3d, 0x63, 0xd4, 0x17, 0x27, 0x3c, 0x5b,
+ 0xc3, 0x5a, 0xc8, 0xb3, 0x67, 0x68, 0x1b, 0xf5, 0xc5, 0x71, 0x46, 0xa1, 0x98, 0x66, 0x5e, 0x78,
+ 0x1c, 0xb0, 0x83, 0xe7, 0x86, 0xf5, 0x5e, 0xac, 0x72, 0xf8, 0xf7, 0x83, 0xe8, 0x87, 0xc6, 0xe3,
+ 0x11, 0x9b, 0xa6, 0xe7, 0x2b, 0x09, 0xbd, 0x8a, 0xb3, 0x05, 0x54, 0xc3, 0xa7, 0x94, 0xb5, 0x36,
+ 0xab, 0x4b, 0xf0, 0xec, 0x5a, 0x3a, 0xb8, 0xef, 0x6c, 0x17, 0x45, 0xb6, 0x9a, 0xc0, 0xbc, 0xc8,
+ 0xc8, 0xbe, 0xe3, 0x20, 0xe1, 0xbe, 0x83, 0x51, 0x9c, 0x69, 0x4e, 0x58, 0x9d, 0xc7, 0x7a, 0x33,
+ 0x4d, 0x21, 0x0a, 0x67, 0x9a, 0x0d, 0x82, 0x73, 0xa5, 0x09, 0xdb, 0x61, 0x59, 0x06, 0x09, 0x6f,
+ 0x1f, 0x6a, 0x6a, 0x4d, 0x43, 0x84, 0x73, 0x25, 0x44, 0x9a, 0xf5, 0x7f, 0xb3, 0xe6, 0x8a, 0x4b,
+ 0x78, 0xbe, 0x3a, 0x4c, 0xf3, 0xcb, 0xa1, 0x3f, 0x2d, 0x30, 0x00, 0xb1, 0xfe, 0xf7, 0x82, 0x78,
+ 0x6d, 0x77, 0x96, 0x4f, 0x99, 0x7f, 0x6d, 0x57, 0x4b, 0xc2, 0x6b, 0x3b, 0x45, 0x60, 0x93, 0xa7,
+ 0x40, 0x99, 0xac, 0x25, 0x61, 0x93, 0x8a, 0xf0, 0x0d, 0x85, 0x6a, 0x97, 0x98, 0x1c, 0x0a, 0xd1,
+ 0xbe, 0xf0, 0x5a, 0x27, 0x87, 0x23, 0xb4, 0x59, 0xe4, 0xed, 0x01, 0x4f, 0x2e, 0xfc, 0x11, 0xea,
+ 0x20, 0xe1, 0x08, 0xc5, 0x28, 0xae, 0xd2, 0x84, 0xe9, 0x45, 0xea, 0x03, 0x7f, 0x7c, 0xb4, 0x16,
+ 0xa8, 0x6b, 0x9d, 0x1c, 0x5e, 0x1a, 0x1d, 0xcc, 0xc5, 0x33, 0xf3, 0x06, 0xb9, 0x94, 0x85, 0x97,
+ 0x46, 0x9a, 0xc1, 0xa5, 0x97, 0x82, 0xfa, 0x71, 0xfa, 0x4b, 0x6f, 0xe4, 0xe1, 0xd2, 0x3b, 0x9c,
+ 0x72, 0xf2, 0xef, 0x83, 0xe8, 0xa6, 0xed, 0xe5, 0x98, 0xd5, 0x7d, 0xe4, 0x55, 0x9c, 0xa5, 0xd3,
+ 0x98, 0xc3, 0x84, 0x5d, 0x42, 0x8e, 0xf6, 0x6d, 0xdc, 0xd2, 0x4a, 0x7e, 0xe4, 0x28, 0x10, 0xfb,
+ 0x36, 0xbd, 0x14, 0x71, 0x9c, 0x48, 0xfa, 0xac, 0x82, 0x9d, 0xb8, 0x22, 0x46, 0x32, 0x07, 0x09,
+ 0xc7, 0x09, 0x46, 0x71, 0xbe, 0x2a, 0xe5, 0x2f, 0xde, 0x16, 0x50, 0xa6, 0x90, 0x27, 0xe0, 0xcf,
+ 0x57, 0x31, 0x15, 0xce, 0x57, 0x3d, 0x74, 0x6b, 0x5b, 0x43, 0x0f, 0x4e, 0xed, 0x7b, 0x09, 0x98,
+ 0x08, 0xdc, 0x4b, 0x20, 0x50, 0x5c, 0x49, 0x03, 0x78, 0xb7, 0x06, 0x5b, 0x56, 0x82, 0x5b, 0x83,
+ 0x34, 0xdd, 0xda, 0x2c, 0xd2, 0xcc, 0xb8, 0xee, 0x26, 0x1d, 0x45, 0x1f, 0xdb, 0xdd, 0x65, 0xbd,
+ 0x17, 0xeb, 0xdf, 0x9d, 0x3a, 0x85, 0x2c, 0x16, 0x53, 0x48, 0x60, 0x0b, 0xa8, 0x61, 0xfa, 0xec,
+ 0x4e, 0x59, 0xac, 0x72, 0xf8, 0xd7, 0x83, 0xe8, 0x23, 0x9f, 0xc7, 0x97, 0x85, 0xf0, 0xfb, 0xa4,
+ 0xdb, 0x96, 0x24, 0x89, 0x8b, 0x17, 0x61, 0x0d, 0x55, 0x86, 0x3f, 0x8f, 0x3e, 0x6c, 0x44, 0xe6,
+ 0x5e, 0x86, 0x2a, 0x80, 0x9b, 0x40, 0xe9, 0xf2, 0x63, 0x4e, 0xbb, 0xdf, 0xea, 0xcd, 0x9b, 0xb5,
+ 0x89, 0x5b, 0xae, 0x0a, 0xad, 0x4d, 0xb4, 0x0d, 0x25, 0x26, 0xd6, 0x26, 0x1e, 0xcc, 0xec, 0x6a,
+ 0xd8, 0xd5, 0x7b, 0x9d, 0xf2, 0x0b, 0x91, 0xfb, 0xa0, 0x5d, 0x0d, 0xa7, 0xac, 0x1a, 0x22, 0x76,
+ 0x35, 0x48, 0x18, 0x67, 0x07, 0x0d, 0x58, 0xf7, 0x4d, 0xdf, 0xb8, 0xaa, 0x0d, 0xd9, 0x3d, 0xf3,
+ 0x61, 0x37, 0x88, 0xe3, 0xb5, 0x11, 0xab, 0x65, 0xc8, 0xe3, 0x90, 0x05, 0xb4, 0x14, 0x59, 0xef,
+ 0xc5, 0x2a, 0x87, 0x7f, 0x19, 0xfd, 0xa0, 0x55, 0xb1, 0x3d, 0x88, 0xf9, 0xa2, 0x84, 0xe9, 0x70,
+ 0xab, 0xa3, 0xdc, 0x0d, 0xa8, 0x5d, 0x3f, 0xe9, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x86, 0x95,
+ 0x2e, 0xc3, 0xd3, 0x90, 0x49, 0x97, 0x0d, 0xe6, 0xcb, 0xb4, 0x4e, 0x6b, 0xc9, 0x6b, 0x47, 0xd7,
+ 0xf6, 0x32, 0x4e, 0x33, 0x71, 0x44, 0xf3, 0x71, 0xc8, 0xa8, 0x83, 0x06, 0x97, 0xbc, 0xa4, 0x4a,
+ 0x6b, 0x64, 0x16, 0x7d, 0xdc, 0x5a, 0x2a, 0x6d, 0xd0, 0x23, 0x81, 0x67, 0xa5, 0xb4, 0xd9, 0x93,
+ 0x56, 0x6e, 0x79, 0xb3, 0x55, 0x58, 0xff, 0x6c, 0x07, 0xb9, 0xcf, 0xab, 0x52, 0xf5, 0x44, 0xfa,
+ 0x66, 0x4f, 0x5a, 0x79, 0xfd, 0x8b, 0xe8, 0xc3, 0xb6, 0x57, 0x35, 0x11, 0x6d, 0x75, 0x9a, 0x42,
+ 0x73, 0xd1, 0x93, 0xfe, 0x0a, 0x66, 0x79, 0xf1, 0x65, 0x5a, 0x71, 0x56, 0xae, 0xc6, 0x17, 0xec,
+ 0xaa, 0xb9, 0xef, 0xec, 0xf6, 0x56, 0x05, 0x8c, 0x2c, 0x82, 0x58, 0x5e, 0xf8, 0xc9, 0x96, 0x2b,
+ 0x73, 0x2f, 0xba, 0x22, 0x5c, 0x59, 0x44, 0x87, 0x2b, 0x97, 0x34, 0x63, 0x55, 0x53, 0x2b, 0x73,
+ 0x89, 0x7b, 0xcd, 0x5f, 0xd4, 0xf6, 0x45, 0xee, 0x87, 0xdd, 0xa0, 0xc9, 0x58, 0x94, 0x78, 0x37,
+ 0x3d, 0x3f, 0xd7, 0x75, 0xf2, 0x97, 0xd4, 0x46, 0x88, 0x8c, 0x85, 0x40, 0x4d, 0x02, 0xbc, 0x97,
+ 0x66, 0x20, 0xce, 0xfb, 0x5e, 0x9e, 0x9f, 0x67, 0x2c, 0x9e, 0xa2, 0x04, 0xb8, 0x16, 0x8f, 0x6c,
+ 0x39, 0x91, 0x00, 0xfb, 0x38, 0x73, 0xda, 0x53, 0x4b, 0x4f, 0x21, 0x61, 0x79, 0x92, 0x66, 0xf8,
+ 0xfa, 0x97, 0xd0, 0xd4, 0x42, 0xe2, 0xb4, 0xa7, 0x05, 0x99, 0x89, 0xb1, 0x16, 0xd5, 0xdd, 0xbe,
+ 0x29, 0xff, 0xfd, 0xb6, 0xa2, 0x25, 0x26, 0x26, 0x46, 0x0f, 0x66, 0xd6, 0x81, 0xb5, 0xf0, 0xac,
+ 0x10, 0xc6, 0x6f, 0xb5, 0xb5, 0xa4, 0x84, 0x58, 0x07, 0xba, 0x84, 0x59, 0xcf, 0xd4, 0xbf, 0xef,
+ 0xb2, 0xab, 0x5c, 0x18, 0xbd, 0xd3, 0x56, 0x69, 0x64, 0xc4, 0x7a, 0x06, 0x33, 0xca, 0xf0, 0x4f,
+ 0xa3, 0x5f, 0x15, 0x86, 0x4b, 0x56, 0x0c, 0x6f, 0x78, 0x14, 0x4a, 0xeb, 0xa6, 0xd6, 0x4d, 0x52,
+ 0x6e, 0x2e, 0x1c, 0xea, 0xd8, 0x38, 0xab, 0xe2, 0x19, 0x0c, 0xef, 0x11, 0x2d, 0x2e, 0xa4, 0xc4,
+ 0x85, 0xc3, 0x36, 0xe5, 0x46, 0xc5, 0x31, 0x9b, 0x2a, 0xeb, 0x9e, 0x1a, 0x6a, 0x61, 0x28, 0x2a,
+ 0x6c, 0xc8, 0x24, 0x33, 0xc7, 0xf1, 0x32, 0x9d, 0xe9, 0x09, 0x47, 0x8e, 0x5b, 0x15, 0x4a, 0x66,
+ 0x0c, 0x33, 0xb2, 0x20, 0x22, 0x99, 0x21, 0x61, 0xe5, 0xf3, 0xdf, 0x06, 0xd1, 0x2d, 0xc3, 0xec,
+ 0x37, 0x3b, 0x67, 0x07, 0xf9, 0x39, 0xab, 0x53, 0x9f, 0xc3, 0x34, 0xbf, 0xac, 0x86, 0x9f, 0x51,
+ 0x26, 0xfd, 0xbc, 0x2e, 0xca, 0xe7, 0xd7, 0xd6, 0x33, 0x59, 0x6b, 0xb3, 0xad, 0x64, 0xce, 0x62,
+ 0xa5, 0x06, 0xca, 0x5a, 0xf5, 0xee, 0x13, 0xe6, 0x88, 0xac, 0x35, 0xc4, 0x9b, 0x26, 0xd6, 0xce,
+ 0x33, 0x96, 0xe3, 0x26, 0x36, 0x16, 0x6a, 0x21, 0xd1, 0xc4, 0x2d, 0xc8, 0x8c, 0xc7, 0x8d, 0x48,
+ 0xee, 0x80, 0x6c, 0x67, 0x19, 0x1a, 0x8f, 0xb5, 0xaa, 0x06, 0x88, 0xf1, 0xd8, 0x0b, 0x2a, 0x3f,
+ 0xa7, 0xd1, 0xf7, 0xea, 0x47, 0x7a, 0x52, 0xc2, 0x32, 0x05, 0x7c, 0x6d, 0xc0, 0x92, 0x10, 0xfd,
+ 0xdf, 0x25, 0x4c, 0xcf, 0x3a, 0xcb, 0xab, 0x22, 0x8b, 0xab, 0x0b, 0x75, 0xd8, 0xeb, 0xd6, 0xb9,
+ 0x11, 0xe2, 0xe3, 0xde, 0xfb, 0x1d, 0x94, 0x19, 0xd4, 0x1b, 0x99, 0x1e, 0x62, 0x1e, 0xf8, 0x55,
+ 0x5b, 0xc3, 0xcc, 0x5a, 0x27, 0x67, 0x76, 0x9f, 0xf7, 0xe3, 0x2c, 0x83, 0x72, 0xd5, 0xc8, 0x8e,
+ 0xe2, 0x3c, 0x3d, 0x87, 0x8a, 0xa3, 0xdd, 0x67, 0x45, 0x8d, 0x30, 0x46, 0xec, 0x3e, 0x07, 0x70,
+ 0x93, 0xcd, 0x23, 0xcf, 0x07, 0xf9, 0x14, 0xde, 0xa2, 0x6c, 0x1e, 0xdb, 0x11, 0x0c, 0x91, 0xcd,
+ 0x53, 0xac, 0xd9, 0x85, 0x7d, 0x9e, 0xb1, 0xe4, 0x52, 0x4d, 0x01, 0x6e, 0x03, 0x0b, 0x09, 0x9e,
+ 0x03, 0xee, 0x84, 0x10, 0x33, 0x09, 0x08, 0xc1, 0x29, 0x14, 0x59, 0x9c, 0xe0, 0xbb, 0x23, 0x52,
+ 0x47, 0xc9, 0x88, 0x49, 0x00, 0x33, 0xa8, 0xb8, 0xea, 0x4e, 0x8a, 0xaf, 0xb8, 0xe8, 0x4a, 0xca,
+ 0x9d, 0x10, 0x62, 0xa6, 0x41, 0x21, 0x18, 0x17, 0x59, 0xca, 0x51, 0x37, 0x90, 0x1a, 0x42, 0x42,
+ 0x74, 0x03, 0x97, 0x40, 0x26, 0x8f, 0xa0, 0x9c, 0x81, 0xd7, 0xa4, 0x90, 0x04, 0x4d, 0x36, 0x84,
+ 0xb9, 0x62, 0x28, 0xeb, 0xce, 0x8a, 0x15, 0xba, 0x62, 0xa8, 0xaa, 0xc5, 0x8a, 0x15, 0x71, 0xc5,
+ 0xd0, 0x01, 0x50, 0x11, 0x4f, 0xe2, 0x8a, 0xfb, 0x8b, 0x28, 0x24, 0xc1, 0x22, 0x36, 0x84, 0x99,
+ 0xa3, 0x65, 0x11, 0x17, 0x1c, 0xcd, 0xd1, 0xaa, 0x00, 0xd6, 0x69, 0xf0, 0x4d, 0x52, 0x6e, 0x46,
+ 0x12, 0xd9, 0x2a, 0xc0, 0xf7, 0x52, 0xc8, 0xa6, 0x15, 0x1a, 0x49, 0xd4, 0x73, 0x6f, 0xa4, 0xc4,
+ 0x48, 0xd2, 0xa6, 0x50, 0x28, 0xa9, 0xbd, 0x6a, 0x5f, 0xed, 0xd0, 0x36, 0xf5, 0x9d, 0x10, 0x62,
+ 0xc6, 0xa7, 0xa6, 0xd0, 0x3b, 0x71, 0x59, 0xa6, 0xf5, 0xe4, 0xff, 0xc0, 0x5f, 0xa0, 0x46, 0x4e,
+ 0x8c, 0x4f, 0x3e, 0x0e, 0x75, 0xaf, 0x66, 0xe0, 0xf6, 0x15, 0x0c, 0x0f, 0xdd, 0x77, 0x83, 0x8c,
+ 0xc9, 0x38, 0x85, 0xc4, 0x3a, 0xce, 0xf4, 0x3d, 0x4d, 0xcf, 0x69, 0xe6, 0x83, 0x2e, 0xcc, 0x7a,
+ 0x05, 0x40, 0xbb, 0x38, 0x62, 0x4b, 0x98, 0xb0, 0x17, 0x6f, 0xd3, 0x8a, 0xa7, 0xf9, 0x4c, 0xcd,
+ 0xdc, 0xcf, 0x08, 0x4b, 0x3e, 0x98, 0x78, 0x05, 0xa0, 0x53, 0xc9, 0x24, 0x10, 0xa8, 0x2c, 0xc7,
+ 0x70, 0xe5, 0x4d, 0x20, 0xb0, 0x45, 0xcd, 0x11, 0x09, 0x44, 0x88, 0x37, 0xfb, 0x28, 0xda, 0xb9,
+ 0x7a, 0x4f, 0x72, 0xc2, 0x9a, 0x5c, 0x8e, 0xb2, 0x86, 0x41, 0x62, 0x29, 0x1b, 0x54, 0x30, 0xeb,
+ 0x4b, 0xed, 0xdf, 0x74, 0xb1, 0x87, 0x84, 0x9d, 0x76, 0x37, 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32,
+ 0x67, 0xf2, 0x94, 0xab, 0xf6, 0x91, 0xfc, 0xa3, 0x1e, 0xa4, 0xb5, 0x27, 0x63, 0x57, 0xeb, 0x79,
+ 0x9c, 0x5c, 0xce, 0x4a, 0xb6, 0xc8, 0xa7, 0x3b, 0x2c, 0x63, 0x25, 0xda, 0x93, 0x71, 0x4a, 0x8d,
+ 0x50, 0x62, 0x4f, 0xa6, 0x43, 0xc5, 0x64, 0x70, 0x76, 0x29, 0xb6, 0xb3, 0x74, 0x86, 0x57, 0xd4,
+ 0x8e, 0x21, 0x01, 0x10, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, 0x5c, 0x71, 0xf3, 0x34, 0x89, 0x33,
+ 0xe9, 0x6f, 0x8b, 0x36, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, 0xf0, 0xd4, 0x73, 0xb2, 0x28, 0xf3,
+ 0x83, 0x9c, 0x33, 0xb2, 0x9e, 0x0d, 0xd0, 0x59, 0x4f, 0x0b, 0x44, 0xc3, 0xea, 0x04, 0xde, 0xd6,
+ 0xa5, 0xa9, 0xff, 0xf1, 0x0d, 0xab, 0xf5, 0xef, 0x23, 0x25, 0x0f, 0x0d, 0xab, 0x88, 0x43, 0x95,
+ 0x51, 0x4e, 0x64, 0xc0, 0x04, 0xb4, 0xdd, 0x30, 0x79, 0xd8, 0x0d, 0xfa, 0xfd, 0x8c, 0xf9, 0x2a,
+ 0x83, 0x90, 0x1f, 0x01, 0xf4, 0xf1, 0xd3, 0x80, 0x66, 0xbb, 0xc5, 0xa9, 0xcf, 0x05, 0x24, 0x97,
+ 0xad, 0x2b, 0x46, 0x6e, 0x41, 0x25, 0x42, 0x6c, 0xb7, 0x10, 0xa8, 0xbf, 0x89, 0x0e, 0x12, 0x96,
+ 0x87, 0x9a, 0xa8, 0x96, 0xf7, 0x69, 0x22, 0xc5, 0x99, 0xc5, 0xaf, 0x96, 0xaa, 0xc8, 0x94, 0xcd,
+ 0xb4, 0x4e, 0x58, 0xb0, 0x21, 0x62, 0xf1, 0x4b, 0xc2, 0x26, 0x27, 0xc7, 0x3e, 0x8f, 0xda, 0xf7,
+ 0x95, 0x5b, 0x56, 0x8e, 0xe8, 0xfb, 0xca, 0x14, 0x4b, 0x57, 0x52, 0xc6, 0x48, 0x87, 0x15, 0x37,
+ 0x4e, 0x36, 0xfa, 0xc1, 0x66, 0xc9, 0xe3, 0xf8, 0xdc, 0xc9, 0x20, 0x2e, 0xa5, 0xd7, 0xcd, 0x80,
+ 0x21, 0x83, 0x11, 0x4b, 0x9e, 0x00, 0x8e, 0x86, 0x30, 0xc7, 0xf3, 0x0e, 0xcb, 0x39, 0xe4, 0xdc,
+ 0x37, 0x84, 0xb9, 0xc6, 0x14, 0x18, 0x1a, 0xc2, 0x28, 0x05, 0x14, 0xb7, 0x62, 0x3f, 0x08, 0xf8,
+ 0x71, 0x3c, 0xf7, 0x66, 0x6c, 0x72, 0xaf, 0x47, 0xca, 0x43, 0x71, 0x8b, 0x38, 0xeb, 0x90, 0xcf,
+ 0xf6, 0x32, 0x89, 0xcb, 0x99, 0xde, 0xdd, 0x98, 0x0e, 0x9f, 0xd0, 0x76, 0x5c, 0x92, 0x38, 0xe4,
+ 0x0b, 0x6b, 0xa0, 0x61, 0xe7, 0x60, 0x1e, 0xcf, 0x74, 0x4d, 0x3d, 0x35, 0x10, 0xf2, 0x56, 0x55,
+ 0x1f, 0x76, 0x83, 0xc8, 0xcf, 0xab, 0x74, 0x0a, 0x2c, 0xe0, 0x47, 0xc8, 0xfb, 0xf8, 0xc1, 0x20,
+ 0xca, 0xde, 0xea, 0x7a, 0xcb, 0x15, 0xdd, 0x76, 0x3e, 0x55, 0xeb, 0xd8, 0x11, 0xf1, 0x78, 0x10,
+ 0x17, 0xca, 0xde, 0x08, 0x1e, 0xf5, 0xd1, 0x66, 0x83, 0x36, 0xd4, 0x47, 0xf5, 0xfe, 0x6b, 0x9f,
+ 0x3e, 0xea, 0x83, 0x95, 0xcf, 0x9f, 0xab, 0x3e, 0xba, 0x1b, 0xf3, 0xb8, 0xce, 0xdb, 0x5f, 0xa5,
+ 0x70, 0xa5, 0x16, 0xc2, 0x9e, 0xfa, 0x36, 0xd4, 0x48, 0xbc, 0xa8, 0x86, 0x56, 0xc5, 0x5b, 0xbd,
+ 0xf9, 0x80, 0x6f, 0xb5, 0x42, 0xe8, 0xf4, 0x8d, 0x96, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xf5,
+ 0x06, 0x6c, 0xa7, 0x6f, 0xf4, 0x1a, 0xec, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x9b, 0xa6, 0xe3, 0xda,
+ 0xce, 0xeb, 0x3c, 0x2c, 0xe1, 0xe9, 0x12, 0x7c, 0xe9, 0xa4, 0x6b, 0x4f, 0xa3, 0xa1, 0x74, 0x92,
+ 0x56, 0xb1, 0x3e, 0x9b, 0xe2, 0x2b, 0xc5, 0x09, 0xab, 0x52, 0x71, 0x48, 0xff, 0xac, 0x87, 0xd1,
+ 0x06, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xb8, 0xd1, 0x41, 0xcd, 0x8d, 0xe2, 0x8d, 0x80, 0xbd,
+ 0xf6, 0xc5, 0xe2, 0xcd, 0x9e, 0xb4, 0x39, 0xf8, 0x73, 0x18, 0xfb, 0xc4, 0x31, 0xd4, 0xaa, 0xde,
+ 0x43, 0xc7, 0x27, 0xfd, 0x15, 0x94, 0xfb, 0xbf, 0x6b, 0xd6, 0x15, 0xd8, 0xbf, 0xea, 0x04, 0x4f,
+ 0xfb, 0x58, 0x44, 0x1d, 0xe1, 0xd9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x73, 0x10, 0xdd, 0xf1, 0x16,
+ 0xc4, 0x3d, 0x7b, 0xfe, 0xfd, 0x3e, 0xb6, 0xfd, 0x67, 0xd0, 0x5f, 0x7c, 0x17, 0x55, 0x55, 0xba,
+ 0x7f, 0x6a, 0x96, 0xf7, 0x8d, 0x86, 0x78, 0xeb, 0xe3, 0x65, 0x39, 0x85, 0x52, 0xf5, 0xd8, 0x50,
+ 0xd0, 0x19, 0x18, 0xf7, 0xdb, 0x4f, 0xaf, 0xa9, 0x65, 0x7d, 0xe2, 0xc7, 0x81, 0xd5, 0xdb, 0x7c,
+ 0x56, 0x79, 0x42, 0x96, 0x2d, 0x1a, 0x17, 0xe8, 0xb3, 0xeb, 0xaa, 0x51, 0x3d, 0xd9, 0x82, 0xc5,
+ 0x17, 0x03, 0x9e, 0xf5, 0x34, 0xec, 0x7c, 0x43, 0xe0, 0x93, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xf7,
+ 0x20, 0xba, 0xef, 0xb0, 0xe6, 0xb4, 0x03, 0xed, 0xc9, 0xfc, 0x24, 0x60, 0x9f, 0x52, 0xd2, 0x85,
+ 0xfb, 0x83, 0xef, 0xa6, 0x6c, 0xbe, 0x87, 0xe3, 0xa8, 0xec, 0xa5, 0x19, 0x87, 0xb2, 0xfd, 0x3d,
+ 0x1c, 0xd7, 0xae, 0xa4, 0x46, 0xf4, 0xf7, 0x70, 0x02, 0xb8, 0xf5, 0x3d, 0x1c, 0x8f, 0x67, 0xef,
+ 0xf7, 0x70, 0xbc, 0xd6, 0x82, 0xdf, 0xc3, 0x09, 0x6b, 0x50, 0x93, 0x4f, 0x53, 0x04, 0xb9, 0xab,
+ 0xde, 0xcb, 0xa2, 0xbb, 0xc9, 0xfe, 0xf4, 0x3a, 0x2a, 0xc4, 0xf4, 0x2b, 0x39, 0x71, 0x0b, 0xaf,
+ 0xc7, 0x33, 0x75, 0x6e, 0xe2, 0x6d, 0xf5, 0xe6, 0x95, 0xef, 0x9f, 0xa9, 0xb5, 0x97, 0x9e, 0x6c,
+ 0x58, 0x29, 0xde, 0xa9, 0x5c, 0x0f, 0x4d, 0x1e, 0xb5, 0x05, 0xbb, 0xe5, 0x37, 0xfa, 0xc1, 0x44,
+ 0x75, 0x6b, 0x42, 0x35, 0xfa, 0xa8, 0xcb, 0x10, 0x6a, 0xf2, 0xad, 0xde, 0x3c, 0x31, 0xc9, 0x49,
+ 0xdf, 0xb2, 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe5, 0x7e, 0xa9, 0x92, 0x5a,
+ 0xdb, 0xbd, 0x68, 0xe7, 0xcd, 0x2e, 0x53, 0x63, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x7a, 0x63,
+ 0x4f, 0xf0, 0x5d, 0xe9, 0x8d, 0x77, 0x92, 0xff, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x3a, 0x88,
+ 0x6e, 0x92, 0x65, 0x51, 0x71, 0xf0, 0x59, 0x5f, 0xcb, 0x28, 0x1e, 0x3e, 0xbf, 0xb6, 0x9e, 0x2a,
+ 0xd4, 0x7f, 0x0c, 0xa2, 0x5b, 0x81, 0x42, 0xc9, 0x00, 0xb9, 0x86, 0x75, 0x37, 0x50, 0x7e, 0x7c,
+ 0x7d, 0x45, 0x6a, 0xba, 0xb7, 0xf1, 0x71, 0xfb, 0x43, 0x31, 0x01, 0xdb, 0x63, 0xfa, 0x43, 0x31,
+ 0xdd, 0x5a, 0x78, 0x0b, 0xaa, 0x4e, 0x4a, 0xd4, 0xca, 0xc8, 0xb7, 0x05, 0x25, 0x72, 0x16, 0xb4,
+ 0x22, 0x5a, 0xeb, 0xe4, 0x7c, 0x4e, 0x5e, 0xbc, 0x2d, 0xe2, 0x7c, 0x4a, 0x3b, 0x91, 0xf2, 0x6e,
+ 0x27, 0x9a, 0xc3, 0x5b, 0x77, 0xb5, 0xf4, 0x94, 0x35, 0xcb, 0xbc, 0x47, 0x94, 0xbe, 0x46, 0x82,
+ 0x5b, 0x77, 0x2d, 0x94, 0xf0, 0xa6, 0x72, 0xda, 0x90, 0x37, 0x94, 0xca, 0x3e, 0xee, 0x83, 0xa2,
+ 0x05, 0x84, 0xf6, 0xa6, 0x4f, 0x04, 0x36, 0x42, 0x56, 0x5a, 0xa7, 0x02, 0x9b, 0x3d, 0x69, 0xc2,
+ 0xed, 0x18, 0xf8, 0x97, 0x10, 0x4f, 0xa1, 0x0c, 0xba, 0xd5, 0x54, 0x2f, 0xb7, 0x36, 0xed, 0x73,
+ 0xbb, 0xc3, 0xb2, 0xc5, 0x3c, 0x57, 0x8d, 0x49, 0xba, 0xb5, 0xa9, 0x6e, 0xb7, 0x88, 0xc6, 0x9b,
+ 0x96, 0xc6, 0xad, 0x48, 0x2f, 0x1f, 0x87, 0xcd, 0x38, 0x59, 0xe5, 0x7a, 0x2f, 0x96, 0xae, 0xa7,
+ 0x0a, 0xa3, 0x8e, 0x7a, 0xa2, 0x48, 0xda, 0xec, 0x49, 0xe3, 0xdd, 0x43, 0xcb, 0xad, 0x8e, 0xa7,
+ 0xad, 0x0e, 0x5b, 0xad, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0xef, 0xd5, 0xaa, 0xa8, 0xaa, 0xd7, 0x45,
+ 0x7b, 0x69, 0x96, 0x0d, 0xd7, 0x03, 0x61, 0xd2, 0x40, 0xc1, 0xbd, 0x5a, 0x0f, 0x4c, 0x44, 0x72,
+ 0xb3, 0xb7, 0x99, 0x0f, 0xbb, 0xec, 0x08, 0xaa, 0x57, 0x24, 0xdb, 0x34, 0xda, 0x6f, 0xb3, 0x1e,
+ 0xb5, 0xae, 0xed, 0x28, 0xfc, 0xe0, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0xa3, 0xcb, 0x00, 0x82, 0x12,
+ 0x33, 0xcb, 0x3d, 0xca, 0x84, 0x33, 0x93, 0xdc, 0xef, 0xa0, 0xd0, 0x9e, 0xa5, 0xec, 0x46, 0xaf,
+ 0xd3, 0xe9, 0x0c, 0xb8, 0xf7, 0x1c, 0xcb, 0x06, 0x82, 0xe7, 0x58, 0x08, 0x44, 0x4d, 0x27, 0x7f,
+ 0xd7, 0x9b, 0xb5, 0x07, 0x53, 0x5f, 0xd3, 0x29, 0x65, 0x8b, 0x0a, 0x35, 0x9d, 0x97, 0x46, 0xa3,
+ 0x81, 0x76, 0xab, 0x5e, 0xdc, 0x7f, 0x1c, 0x32, 0x83, 0xde, 0xde, 0x5f, 0xef, 0xc5, 0xa2, 0x19,
+ 0xc5, 0x38, 0x4c, 0xe7, 0x29, 0xf7, 0xcd, 0x28, 0x96, 0x8d, 0x1a, 0x09, 0xcd, 0x28, 0x6d, 0x94,
+ 0xaa, 0x5e, 0x9d, 0x23, 0x1c, 0x4c, 0xc3, 0xd5, 0x93, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0x75, 0xec,
+ 0x9a, 0xeb, 0x90, 0xe1, 0x17, 0x6a, 0xb1, 0xec, 0x89, 0x6d, 0xf1, 0x42, 0x27, 0x06, 0x43, 0xa3,
+ 0x0e, 0xa5, 0x80, 0x8f, 0x13, 0x6a, 0xae, 0x39, 0x19, 0x2e, 0x0a, 0x88, 0xcb, 0x38, 0x4f, 0xbc,
+ 0x8b, 0x53, 0x61, 0xb0, 0x45, 0x86, 0x16, 0xa7, 0xa4, 0x06, 0x3a, 0xd4, 0x77, 0x5f, 0xc5, 0xf4,
+ 0x74, 0x05, 0xfd, 0xce, 0xa3, 0xfb, 0x26, 0xe6, 0xa3, 0x1e, 0x24, 0x3e, 0xd4, 0x6f, 0x00, 0xbd,
+ 0x2d, 0x2f, 0x9d, 0x7e, 0x1c, 0x30, 0xe5, 0xa2, 0xa1, 0x85, 0x30, 0xad, 0x82, 0x82, 0x5a, 0x27,
+ 0xb8, 0xc0, 0x7f, 0x0a, 0x2b, 0x5f, 0x50, 0x9b, 0xfc, 0x54, 0x20, 0xa1, 0xa0, 0x6e, 0xa3, 0x28,
+ 0xcf, 0xb4, 0xd7, 0x41, 0x0f, 0x02, 0xfa, 0xf6, 0xd2, 0x67, 0xad, 0x93, 0x43, 0x3d, 0x67, 0x37,
+ 0x5d, 0x3a, 0xa7, 0x18, 0x9e, 0x82, 0xee, 0xa6, 0x4b, 0xff, 0x21, 0xc6, 0x7a, 0x2f, 0x16, 0x5f,
+ 0x18, 0x88, 0x39, 0xbc, 0x6d, 0x4e, 0xf2, 0x3d, 0xc5, 0x15, 0xf2, 0xd6, 0x51, 0xfe, 0xc3, 0x6e,
+ 0xd0, 0x5c, 0xcf, 0x3d, 0x29, 0x59, 0x02, 0x55, 0xa5, 0xbe, 0x9e, 0xe7, 0xde, 0x7f, 0x52, 0xb2,
+ 0x11, 0xfa, 0x76, 0xde, 0xbd, 0x30, 0xa4, 0x6c, 0x7f, 0x19, 0xbd, 0x7b, 0xc8, 0x66, 0x63, 0xc8,
+ 0xa7, 0xc3, 0x1f, 0xb9, 0x17, 0x62, 0xd9, 0x6c, 0x54, 0xff, 0xac, 0xed, 0xdd, 0xa0, 0xc4, 0xe6,
+ 0x4a, 0xdf, 0x2e, 0xbc, 0x59, 0xcc, 0xc6, 0x3c, 0xe6, 0xe8, 0x4a, 0x9f, 0xf8, 0x7d, 0x54, 0x0b,
+ 0x88, 0x2b, 0x7d, 0x0e, 0x80, 0xec, 0x4d, 0x4a, 0x00, 0xaf, 0xbd, 0x5a, 0x10, 0xb4, 0xa7, 0x00,
+ 0x33, 0xeb, 0x6a, 0x7b, 0x75, 0x62, 0x8b, 0xaf, 0xe0, 0x19, 0x1d, 0x21, 0x25, 0x66, 0xdd, 0x36,
+ 0x65, 0x82, 0x41, 0x56, 0x5f, 0x7c, 0xcf, 0x63, 0x31, 0x9f, 0xc7, 0xe5, 0x0a, 0x05, 0x83, 0xaa,
+ 0xa5, 0x05, 0x10, 0xc1, 0xe0, 0x05, 0x4d, 0x94, 0x37, 0x8f, 0x39, 0xb9, 0xdc, 0x67, 0x25, 0x5b,
+ 0xf0, 0x34, 0x07, 0xfc, 0x4d, 0x07, 0xfd, 0x40, 0x6d, 0x86, 0x88, 0x72, 0x8a, 0x35, 0x59, 0xa1,
+ 0x20, 0xe4, 0xed, 0x40, 0xf1, 0x0d, 0xda, 0x8a, 0xb3, 0x12, 0x9f, 0x0e, 0x4a, 0x2b, 0x18, 0x22,
+ 0xb2, 0x42, 0x12, 0x46, 0x6d, 0x7f, 0x92, 0xe6, 0x33, 0x6f, 0xdb, 0x9f, 0xd8, 0x5f, 0x70, 0xbc,
+ 0x45, 0x03, 0x66, 0x7c, 0x97, 0x0f, 0x4d, 0x7e, 0x37, 0x49, 0xbd, 0x99, 0xe9, 0x7d, 0xe8, 0x36,
+ 0x41, 0x8c, 0xef, 0x7e, 0x12, 0xb9, 0x7a, 0x59, 0x40, 0x0e, 0xd3, 0xe6, 0x0e, 0x9c, 0xcf, 0x95,
+ 0x43, 0x04, 0x5d, 0x61, 0xd2, 0x8c, 0xaa, 0x42, 0x7e, 0xba, 0xc8, 0x4f, 0x4a, 0x76, 0x9e, 0x66,
+ 0x50, 0xa2, 0x51, 0x55, 0xaa, 0x5b, 0x72, 0x62, 0x54, 0xf5, 0x71, 0xe6, 0x32, 0x85, 0x90, 0x3a,
+ 0x1f, 0x52, 0x9e, 0x94, 0x71, 0x82, 0x2f, 0x53, 0x48, 0x1b, 0x6d, 0x8c, 0xd8, 0x49, 0x0b, 0xe0,
+ 0x26, 0xd2, 0x8f, 0x80, 0x97, 0x69, 0x52, 0x8d, 0x81, 0x9f, 0xc4, 0x65, 0x3c, 0x07, 0x0e, 0x25,
+ 0x8e, 0x74, 0x85, 0x8c, 0x1c, 0x86, 0x88, 0x74, 0x8a, 0x55, 0x0e, 0xff, 0x30, 0x7a, 0xbf, 0x1e,
+ 0xe8, 0x21, 0x57, 0xdf, 0xfc, 0x7f, 0x21, 0xfe, 0x58, 0xc8, 0xf0, 0x03, 0x6d, 0x63, 0xcc, 0x4b,
+ 0x88, 0xe7, 0x8d, 0xed, 0xf7, 0xf4, 0xef, 0x02, 0x7c, 0x32, 0xa8, 0x1b, 0xe4, 0x98, 0xf1, 0xf4,
+ 0xbc, 0x5e, 0x57, 0xa9, 0x53, 0x2c, 0xd4, 0x20, 0xb6, 0x78, 0x14, 0xf8, 0x4c, 0x81, 0x8f, 0x33,
+ 0x03, 0x8d, 0x2d, 0x3d, 0x85, 0x22, 0xc3, 0x03, 0x8d, 0xa3, 0x2d, 0x00, 0x62, 0xa0, 0xf1, 0x82,
+ 0x26, 0xba, 0x6c, 0xf1, 0x04, 0xc2, 0x95, 0x99, 0x40, 0xbf, 0xca, 0x4c, 0x9c, 0x77, 0x04, 0xb2,
+ 0xe8, 0xfd, 0x23, 0x98, 0xbf, 0x81, 0xb2, 0xba, 0x48, 0x8b, 0xfd, 0x7a, 0x86, 0x8d, 0xf9, 0x02,
+ 0xbf, 0x45, 0x67, 0x88, 0x91, 0x46, 0x88, 0x34, 0x84, 0x40, 0xcd, 0x50, 0x66, 0x80, 0x83, 0xea,
+ 0x38, 0x9e, 0x83, 0xf8, 0xe8, 0xc2, 0x70, 0x9d, 0x32, 0x62, 0x41, 0xc4, 0x50, 0x46, 0xc2, 0xd6,
+ 0xeb, 0x46, 0x86, 0x39, 0x85, 0x59, 0x1d, 0x61, 0xe5, 0x49, 0xbc, 0x9a, 0x43, 0xce, 0x95, 0x49,
+ 0xb4, 0x09, 0x6b, 0x99, 0xf4, 0xf3, 0xc4, 0x26, 0x6c, 0x1f, 0x3d, 0x2b, 0xe9, 0x76, 0x1e, 0xfc,
+ 0x09, 0x2b, 0xb9, 0xfc, 0x8b, 0x1e, 0x67, 0x65, 0x86, 0x92, 0x6e, 0xf7, 0xa1, 0x3a, 0x24, 0x91,
+ 0x74, 0x87, 0x35, 0xac, 0x4f, 0x61, 0x3b, 0x65, 0x78, 0x05, 0xa5, 0x8e, 0x93, 0x17, 0xf3, 0x38,
+ 0xcd, 0x54, 0x34, 0x7c, 0x11, 0xb0, 0x4d, 0xe8, 0x10, 0x9f, 0xc2, 0xee, 0xab, 0x6b, 0x7d, 0x3c,
+ 0x3c, 0x5c, 0x42, 0xb4, 0x27, 0xdc, 0x61, 0x9f, 0xd8, 0x13, 0xee, 0xd6, 0x32, 0x4b, 0x35, 0xc3,
+ 0x0a, 0x6e, 0x25, 0x88, 0x1d, 0x36, 0xc5, 0x1b, 0x44, 0x96, 0x4d, 0x04, 0x12, 0x4b, 0xb5, 0xa0,
+ 0x82, 0x99, 0xdb, 0x0c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, 0x1c, 0xdf, 0x7d, 0xb6, 0xec, 0x34,
+ 0x04, 0x31, 0xb7, 0xf9, 0x49, 0x9f, 0xab, 0x7d, 0xe0, 0x93, 0xb4, 0x1e, 0xfa, 0x1f, 0x06, 0x9e,
+ 0x9b, 0x20, 0xba, 0x5d, 0x59, 0xa4, 0x72, 0xf5, 0x8b, 0x41, 0x74, 0x13, 0x3f, 0xd6, 0xed, 0xa2,
+ 0x18, 0xd7, 0x29, 0xc9, 0x29, 0x24, 0x90, 0x16, 0x7c, 0xf8, 0x69, 0xf8, 0x59, 0x21, 0x9c, 0x38,
+ 0x59, 0xef, 0xa1, 0x66, 0x9d, 0xd7, 0xd6, 0x63, 0xc9, 0x58, 0xfe, 0xa9, 0xab, 0xb3, 0x0a, 0x4a,
+ 0x35, 0x53, 0xee, 0x03, 0x47, 0xbd, 0xd3, 0xe2, 0x46, 0x16, 0x58, 0x57, 0x94, 0xe8, 0x9d, 0x61,
+ 0x0d, 0xb3, 0xbb, 0x63, 0x71, 0xa7, 0x50, 0xb1, 0x6c, 0x09, 0xe2, 0xfa, 0xdb, 0x06, 0x69, 0xcc,
+ 0xa2, 0x88, 0xdd, 0x1d, 0x9a, 0x36, 0xe9, 0x46, 0xdb, 0xed, 0x76, 0xbe, 0x3a, 0xc0, 0x67, 0xe4,
+ 0x1e, 0x4b, 0x02, 0x23, 0xd2, 0x8d, 0x00, 0x6e, 0xed, 0x7e, 0x96, 0x2c, 0x9e, 0x26, 0x71, 0xc5,
+ 0x4f, 0xe2, 0x55, 0xc6, 0xe2, 0xa9, 0x98, 0xd7, 0xf1, 0xee, 0x67, 0xc3, 0x8c, 0x6c, 0x88, 0xda,
+ 0xfd, 0xa4, 0x60, 0xb3, 0xb2, 0x53, 0x7f, 0xc1, 0x4b, 0x5d, 0x2d, 0xbc, 0x8b, 0x72, 0x24, 0x51,
+ 0x5e, 0x7c, 0xad, 0xf0, 0x5e, 0x18, 0x32, 0xaf, 0x44, 0x49, 0x91, 0x48, 0x43, 0x6e, 0xf9, 0x74,
+ 0x9c, 0x04, 0xe4, 0x76, 0x80, 0x30, 0x9f, 0x49, 0x90, 0xbf, 0x37, 0x7f, 0x84, 0x82, 0xab, 0x0f,
+ 0xf7, 0x6e, 0xf8, 0x74, 0x6d, 0x68, 0x64, 0x7f, 0xfb, 0x6c, 0xb3, 0x27, 0x6d, 0x16, 0x6e, 0xea,
+ 0xe3, 0xc1, 0x47, 0x50, 0x79, 0xde, 0x6f, 0xae, 0x85, 0x23, 0x23, 0x25, 0x16, 0x6e, 0x6d, 0xca,
+ 0x04, 0x7a, 0x2d, 0x7b, 0x31, 0x4d, 0xb9, 0x92, 0x35, 0x17, 0x76, 0x37, 0xda, 0x06, 0xda, 0x14,
+ 0x51, 0x2b, 0x9a, 0x36, 0x63, 0x79, 0xcd, 0x4c, 0xd8, 0x6c, 0x96, 0x81, 0x82, 0x4e, 0x21, 0x96,
+ 0xdf, 0x78, 0xdb, 0x6a, 0xdb, 0xf2, 0x82, 0xc4, 0x58, 0x1e, 0x54, 0x30, 0x69, 0x64, 0x8d, 0xc9,
+ 0x33, 0x88, 0xe6, 0xc1, 0xae, 0xb5, 0xcd, 0x38, 0x00, 0x91, 0x46, 0x7a, 0x41, 0xf3, 0x1a, 0x56,
+ 0x2d, 0xde, 0x87, 0xe6, 0x49, 0xe0, 0x2f, 0xe2, 0x08, 0x65, 0x4b, 0x4c, 0xbc, 0x86, 0xe5, 0xc1,
+ 0xcc, 0x3a, 0x01, 0x79, 0x78, 0xbe, 0x3a, 0x98, 0xe2, 0x75, 0x02, 0xd6, 0x17, 0x0c, 0xb1, 0x4e,
+ 0xa0, 0x58, 0xb7, 0xe9, 0xf4, 0xe7, 0x7f, 0x0f, 0xe3, 0xca, 0x54, 0xce, 0xd3, 0x74, 0x5e, 0x30,
+ 0xd4, 0x74, 0x94, 0x82, 0xfb, 0x48, 0xed, 0x8f, 0x0b, 0x7b, 0x1e, 0xa9, 0xef, 0xa3, 0xc2, 0x0f,
+ 0xba, 0x30, 0xe9, 0xe1, 0xf9, 0xed, 0xff, 0xf9, 0xe6, 0xc6, 0xe0, 0xeb, 0x6f, 0x6e, 0x0c, 0xfe,
+ 0xef, 0x9b, 0x1b, 0x83, 0x5f, 0x7c, 0x7b, 0xe3, 0x9d, 0xaf, 0xbf, 0xbd, 0xf1, 0xce, 0xff, 0x7e,
+ 0x7b, 0xe3, 0x9d, 0xaf, 0xde, 0x55, 0x7f, 0x7d, 0xf1, 0xcd, 0xaf, 0x88, 0xbf, 0xa1, 0xf8, 0xec,
+ 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x4f, 0x9f, 0x53, 0xa1, 0x71, 0x00, 0x00,
}
// This is a compile-time assertion to ensure that this generated file
@@ -407,6 +417,7 @@ type ClientCommandsHandler interface {
ObjectCreate(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse
ObjectCreateBookmark(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse
ObjectCreateFromUrl(context.Context, *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse
+ ObjectChatAdd(context.Context, *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
ObjectCreateSet(context.Context, *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse
ObjectGraph(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse
@@ -657,6 +668,15 @@ type ClientCommandsHandler interface {
DeviceSetName(context.Context, *pb.RpcDeviceSetNameRequest) *pb.RpcDeviceSetNameResponse
DeviceList(context.Context, *pb.RpcDeviceListRequest) *pb.RpcDeviceListResponse
DeviceNetworkStateSet(context.Context, *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse
+ // Chats dummy impl
+ ChatAddMessage(context.Context, *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse
+ ChatEditMessageContent(context.Context, *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse
+ ChatToggleMessageReaction(context.Context, *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse
+ ChatDeleteMessage(context.Context, *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse
+ ChatGetMessages(context.Context, *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse
+ ChatGetMessagesByIds(context.Context, *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse
+ ChatSubscribeLastMessages(context.Context, *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse
+ ChatUnsubscribe(context.Context, *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse
}
func registerClientCommandsHandler(srv ClientCommandsHandler) {
@@ -1683,6 +1703,26 @@ func ObjectCreateFromUrl(b []byte) (resp []byte) {
return resp
}
+func ObjectChatAdd(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcObjectChatAddResponse{Error: &pb.RpcObjectChatAddResponseError{Code: pb.RpcObjectChatAddResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcObjectChatAddRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcObjectChatAddResponse{Error: &pb.RpcObjectChatAddResponseError{Code: pb.RpcObjectChatAddResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ObjectChatAdd(context.Background(), in).Marshal()
+ return resp
+}
+
func ObjectCreateSet(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
@@ -5683,6 +5723,166 @@ func DeviceNetworkStateSet(b []byte) (resp []byte) {
return resp
}
+func ChatAddMessage(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatAddMessageResponse{Error: &pb.RpcChatAddMessageResponseError{Code: pb.RpcChatAddMessageResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatAddMessageRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatAddMessageResponse{Error: &pb.RpcChatAddMessageResponseError{Code: pb.RpcChatAddMessageResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatAddMessage(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatEditMessageContent(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatEditMessageContentResponse{Error: &pb.RpcChatEditMessageContentResponseError{Code: pb.RpcChatEditMessageContentResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatEditMessageContentRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatEditMessageContentResponse{Error: &pb.RpcChatEditMessageContentResponseError{Code: pb.RpcChatEditMessageContentResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatEditMessageContent(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatToggleMessageReaction(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatToggleMessageReactionResponse{Error: &pb.RpcChatToggleMessageReactionResponseError{Code: pb.RpcChatToggleMessageReactionResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatToggleMessageReactionRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatToggleMessageReactionResponse{Error: &pb.RpcChatToggleMessageReactionResponseError{Code: pb.RpcChatToggleMessageReactionResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatToggleMessageReaction(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatDeleteMessage(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatDeleteMessageResponse{Error: &pb.RpcChatDeleteMessageResponseError{Code: pb.RpcChatDeleteMessageResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatDeleteMessageRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatDeleteMessageResponse{Error: &pb.RpcChatDeleteMessageResponseError{Code: pb.RpcChatDeleteMessageResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatDeleteMessage(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatGetMessages(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatGetMessagesResponse{Error: &pb.RpcChatGetMessagesResponseError{Code: pb.RpcChatGetMessagesResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatGetMessagesRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatGetMessagesResponse{Error: &pb.RpcChatGetMessagesResponseError{Code: pb.RpcChatGetMessagesResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatGetMessages(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatGetMessagesByIds(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatGetMessagesByIdsResponse{Error: &pb.RpcChatGetMessagesByIdsResponseError{Code: pb.RpcChatGetMessagesByIdsResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatGetMessagesByIdsRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatGetMessagesByIdsResponse{Error: &pb.RpcChatGetMessagesByIdsResponseError{Code: pb.RpcChatGetMessagesByIdsResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatGetMessagesByIds(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatSubscribeLastMessages(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatSubscribeLastMessagesResponse{Error: &pb.RpcChatSubscribeLastMessagesResponseError{Code: pb.RpcChatSubscribeLastMessagesResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatSubscribeLastMessagesRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatSubscribeLastMessagesResponse{Error: &pb.RpcChatSubscribeLastMessagesResponseError{Code: pb.RpcChatSubscribeLastMessagesResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatSubscribeLastMessages(context.Background(), in).Marshal()
+ return resp
+}
+
+func ChatUnsubscribe(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcChatUnsubscribeResponse{Error: &pb.RpcChatUnsubscribeResponseError{Code: pb.RpcChatUnsubscribeResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcChatUnsubscribeRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcChatUnsubscribeResponse{Error: &pb.RpcChatUnsubscribeResponseError{Code: pb.RpcChatUnsubscribeResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ChatUnsubscribe(context.Background(), in).Marshal()
+ return resp
+}
+
var PanicHandler func(v interface{})
func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
@@ -5791,6 +5991,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = ObjectCreateBookmark(data)
case "ObjectCreateFromUrl":
cd = ObjectCreateFromUrl(data)
+ case "ObjectChatAdd":
+ cd = ObjectChatAdd(data)
case "ObjectCreateSet":
cd = ObjectCreateSet(data)
case "ObjectGraph":
@@ -6191,6 +6393,22 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = DeviceList(data)
case "DeviceNetworkStateSet":
cd = DeviceNetworkStateSet(data)
+ case "ChatAddMessage":
+ cd = ChatAddMessage(data)
+ case "ChatEditMessageContent":
+ cd = ChatEditMessageContent(data)
+ case "ChatToggleMessageReaction":
+ cd = ChatToggleMessageReaction(data)
+ case "ChatDeleteMessage":
+ cd = ChatDeleteMessage(data)
+ case "ChatGetMessages":
+ cd = ChatGetMessages(data)
+ case "ChatGetMessagesByIds":
+ cd = ChatGetMessagesByIds(data)
+ case "ChatSubscribeLastMessages":
+ cd = ChatSubscribeLastMessages(data)
+ case "ChatUnsubscribe":
+ cd = ChatUnsubscribe(data)
default:
log.Errorf("unknown command type: %s\n", cmd)
}
@@ -6927,6 +7145,20 @@ func (h *ClientCommandsHandlerProxy) ObjectCreateFromUrl(ctx context.Context, re
call, _ := actualCall(ctx, req)
return call.(*pb.RpcObjectCreateFromUrlResponse)
}
+func (h *ClientCommandsHandlerProxy) ObjectChatAdd(ctx context.Context, req *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ObjectChatAdd(ctx, req.(*pb.RpcObjectChatAddRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ObjectChatAdd", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcObjectChatAddResponse)
+}
func (h *ClientCommandsHandlerProxy) ObjectCreateSet(ctx context.Context, req *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse {
actualCall := func(ctx context.Context, req any) (any, error) {
return h.client.ObjectCreateSet(ctx, req.(*pb.RpcObjectCreateSetRequest)), nil
@@ -9727,3 +9959,115 @@ func (h *ClientCommandsHandlerProxy) DeviceNetworkStateSet(ctx context.Context,
call, _ := actualCall(ctx, req)
return call.(*pb.RpcDeviceNetworkStateSetResponse)
}
+func (h *ClientCommandsHandlerProxy) ChatAddMessage(ctx context.Context, req *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatAddMessage(ctx, req.(*pb.RpcChatAddMessageRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatAddMessage", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatAddMessageResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatEditMessageContent(ctx context.Context, req *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatEditMessageContent(ctx, req.(*pb.RpcChatEditMessageContentRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatEditMessageContent", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatEditMessageContentResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatToggleMessageReaction(ctx context.Context, req *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatToggleMessageReaction(ctx, req.(*pb.RpcChatToggleMessageReactionRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatToggleMessageReaction", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatToggleMessageReactionResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatDeleteMessage(ctx context.Context, req *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatDeleteMessage(ctx, req.(*pb.RpcChatDeleteMessageRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatDeleteMessage", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatDeleteMessageResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatGetMessages(ctx context.Context, req *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatGetMessages(ctx, req.(*pb.RpcChatGetMessagesRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatGetMessages", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatGetMessagesResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatGetMessagesByIds(ctx context.Context, req *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatGetMessagesByIds(ctx, req.(*pb.RpcChatGetMessagesByIdsRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatGetMessagesByIds", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatGetMessagesByIdsResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatSubscribeLastMessages(ctx context.Context, req *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatSubscribeLastMessages(ctx, req.(*pb.RpcChatSubscribeLastMessagesRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatSubscribeLastMessages", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatSubscribeLastMessagesResponse)
+}
+func (h *ClientCommandsHandlerProxy) ChatUnsubscribe(ctx context.Context, req *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ChatUnsubscribe(ctx, req.(*pb.RpcChatUnsubscribeRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ChatUnsubscribe", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcChatUnsubscribeResponse)
+}
diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go
index 809722b91..76422e191 100644
--- a/core/anytype/config/config.go
+++ b/core/anytype/config/config.go
@@ -6,8 +6,10 @@ import (
"net"
"os"
"path/filepath"
+ "runtime"
"strings"
+ anystore "github.com/anyproto/any-store"
"github.com/anyproto/any-sync/app"
//nolint:misspell
"github.com/anyproto/any-sync/commonspace/config"
@@ -67,7 +69,9 @@ type Config struct {
PeferYamuxTransport bool
SpaceStorageMode storage.SpaceStorageMode
NetworkMode pb.RpcAccountNetworkMode
- NetworkCustomConfigFilePath string `json:",omitempty"` // not saved to config
+ NetworkCustomConfigFilePath string `json:",omitempty"` // not saved to config
+ SqliteTempPath string `json:",omitempty"` // not saved to config
+ AnyStoreConfig *anystore.Config `json:",omitempty"` // not saved to config
RepoPath string
AnalyticsId string
@@ -179,6 +183,16 @@ func (c *Config) initFromFileAndEnv(repoPath string) error {
return fmt.Errorf("repo is missing")
}
c.RepoPath = repoPath
+ c.AnyStoreConfig = &anystore.Config{}
+ if runtime.GOOS == "android" {
+ split := strings.Split(repoPath, "/files/")
+ if len(split) == 1 {
+ return fmt.Errorf("failed to split repo path: %s", repoPath)
+ }
+ c.SqliteTempPath = filepath.Join(split[0], "cache")
+ c.AnyStoreConfig.SQLiteConnectionOptions = make(map[string]string)
+ c.AnyStoreConfig.SQLiteConnectionOptions["temp_store_directory"] = "'" + c.SqliteTempPath + "'"
+ }
if !c.DisableFileConfig {
var confRequired ConfigRequired
@@ -284,6 +298,14 @@ func (c *Config) GetSpaceStorePath() string {
return filepath.Join(c.RepoPath, "spaceStore.db")
}
+func (c *Config) GetTempDirPath() string {
+ return c.SqliteTempPath
+}
+
+func (c *Config) GetAnyStoreConfig() *anystore.Config {
+ return c.AnyStoreConfig
+}
+
func (c *Config) IsNewAccount() bool {
return c.NewAccount
}
diff --git a/core/application/account_select.go b/core/application/account_select.go
index 02c069568..05e0b70cc 100644
--- a/core/application/account_select.go
+++ b/core/application/account_select.go
@@ -5,6 +5,7 @@ import (
"errors"
"os"
"path/filepath"
+ "runtime"
trace2 "runtime/trace"
"strings"
@@ -40,9 +41,10 @@ func (s *Service) AccountSelect(ctx context.Context, req *pb.RpcAccountSelectReq
return nil, ErrEmptyAccountID
}
- s.traceRecorder.start()
- defer s.traceRecorder.stop()
-
+ if runtime.GOOS != "android" && runtime.GOOS != "ios" {
+ s.traceRecorder.start()
+ defer s.traceRecorder.stop()
+ }
s.cancelStartIfInProcess()
s.lock.Lock()
defer s.lock.Unlock()
diff --git a/core/application/profiler.go b/core/application/profiler.go
index 22e3b0bca..9007cf1fd 100644
--- a/core/application/profiler.go
+++ b/core/application/profiler.go
@@ -13,6 +13,7 @@ import (
"sync"
"time"
+ "github.com/klauspost/compress/flate"
exptrace "golang.org/x/exp/trace"
"github.com/anyproto/anytype-heart/util/debug"
@@ -91,6 +92,9 @@ type zipFile struct {
func createZipArchive(w io.Writer, files []zipFile) error {
zipw := zip.NewWriter(w)
+ zipw.RegisterCompressor(zip.Deflate, func(w io.Writer) (io.WriteCloser, error) {
+ return flate.NewWriter(w, flate.BestSpeed)
+ })
err := func() error {
for _, file := range files {
f, err := zipw.Create(file.name)
@@ -107,8 +111,8 @@ func createZipArchive(w io.Writer, files []zipFile) error {
return errors.Join(err, zipw.Close())
}
-func (s *Service) SaveLoginTrace() (string, error) {
- return s.traceRecorder.save()
+func (s *Service) SaveLoginTrace(dir string) (string, error) {
+ return s.traceRecorder.save(dir)
}
// traceRecorder is a helper to start and stop flight trace recorder
@@ -118,7 +122,8 @@ type traceRecorder struct {
lastRecordedBuf *bytes.Buffer // contains zip archive of trace
}
-func (r *traceRecorder) save() (string, error) {
+// empty dir means use system temp dir
+func (r *traceRecorder) save(dir string) (string, error) {
r.lock.Lock()
defer r.lock.Unlock()
@@ -138,7 +143,7 @@ func (r *traceRecorder) save() (string, error) {
traceReader = buf
}
- f, err := os.CreateTemp("", "account-select-trace-*.zip")
+ f, err := os.CreateTemp(dir, "account-select-trace-*.zip")
if err != nil {
return "", fmt.Errorf("create temp file: %w", err)
}
diff --git a/core/block/editor/state/state.go b/core/block/editor/state/state.go
index a901a9e09..498833e40 100644
--- a/core/block/editor/state/state.go
+++ b/core/block/editor/state/state.go
@@ -8,7 +8,6 @@ import (
"time"
"github.com/gogo/protobuf/types"
- "github.com/ipfs/go-cid"
"github.com/anyproto/anytype-heart/core/block/simple"
"github.com/anyproto/anytype-heart/core/block/undo"
@@ -1094,11 +1093,17 @@ func (s *State) FileRelationKeys() []string {
var keys []string
for _, rel := range s.GetRelationLinks() {
// coverId can contain both hash or predefined cover id
- if rel.Format == model.RelationFormat_file || rel.Key == bundle.RelationKeyCoverId.String() {
+ if rel.Format == model.RelationFormat_file {
if slice.FindPos(keys, rel.Key) == -1 {
keys = append(keys, rel.Key)
}
}
+ if rel.Key == bundle.RelationKeyCoverId.String() {
+ coverType := pbtypes.GetInt64(s.Details(), bundle.RelationKeyCoverType.String())
+ if (coverType == 1 || coverType == 4) && slice.FindPos(keys, rel.Key) == -1 {
+ keys = append(keys, rel.Key)
+ }
+ }
}
return keys
}
@@ -1130,15 +1135,6 @@ func (s *State) ModifyLinkedFilesInDetails(modifier func(id string) string) {
}
for _, key := range s.FileRelationKeys() {
- if key == bundle.RelationKeyCoverId.String() {
- v := pbtypes.GetString(details, key)
- _, err := cid.Decode(v)
- if err != nil {
- // this is an exception cause coverId can contain not a file hash but color
- continue
- }
- }
-
s.modifyIdsInDetail(details, key, modifier)
}
}
diff --git a/core/block/editor/state/state_test.go b/core/block/editor/state/state_test.go
index 6ed5b7a21..919683fad 100644
--- a/core/block/editor/state/state_test.go
+++ b/core/block/editor/state/state_test.go
@@ -2820,3 +2820,137 @@ func TestAddBundledRealtionLinks(t *testing.T) {
assert.Equal(t, want, st)
})
}
+
+func TestState_FileRelationKeys(t *testing.T) {
+ t.Run("no file relations", func(t *testing.T) {
+ // given
+ s := &State{}
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ assert.Empty(t, keys)
+ })
+ t.Run("there are file relations", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Format: model.RelationFormat_file, Key: "fileKey1"},
+ {Format: model.RelationFormat_file, Key: "fileKey2"},
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ expectedKeys := []string{"fileKey1", "fileKey2"}
+ assert.ElementsMatch(t, keys, expectedKeys)
+ })
+ t.Run("duplicated file relations", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Format: model.RelationFormat_file, Key: "fileKey1"},
+ {Format: model.RelationFormat_file, Key: "fileKey1"},
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ expectedKeys := []string{"fileKey1"}
+ assert.ElementsMatch(t, keys, expectedKeys)
+ })
+ t.Run("coverId relation", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Key: bundle.RelationKeyCoverId.String()},
+ },
+ details: &types.Struct{Fields: map[string]*types.Value{
+ bundle.RelationKeyCoverType.String(): pbtypes.Int64(1),
+ },
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ expectedKeys := []string{bundle.RelationKeyCoverId.String()}
+ assert.ElementsMatch(t, keys, expectedKeys)
+ })
+ t.Run("skip coverId relation", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Key: bundle.RelationKeyCoverId.String()},
+ },
+ details: &types.Struct{Fields: map[string]*types.Value{
+ bundle.RelationKeyCoverType.String(): pbtypes.Int64(2),
+ },
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ assert.Len(t, keys, 0)
+ })
+ t.Run("skip gradient coverId relation", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Key: bundle.RelationKeyCoverId.String()},
+ },
+ details: &types.Struct{Fields: map[string]*types.Value{
+ bundle.RelationKeyCoverType.String(): pbtypes.Int64(3),
+ },
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ assert.Len(t, keys, 0)
+ })
+ t.Run("mixed relations", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Format: model.RelationFormat_file, Key: "fileKey1"},
+ {Key: bundle.RelationKeyCoverId.String()},
+ },
+ details: &types.Struct{Fields: map[string]*types.Value{
+ bundle.RelationKeyCoverType.String(): pbtypes.Int64(4),
+ },
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ expectedKeys := []string{"fileKey1", bundle.RelationKeyCoverId.String()}
+ assert.ElementsMatch(t, keys, expectedKeys, "Expected both file keys and cover ID")
+ })
+ t.Run("coverType not in details", func(t *testing.T) {
+ // given
+ s := &State{
+ relationLinks: pbtypes.RelationLinks{
+ {Key: bundle.RelationKeyCoverId.String()},
+ },
+ }
+
+ // when
+ keys := s.FileRelationKeys()
+
+ // then
+ assert.Len(t, keys, 0)
+ })
+}
diff --git a/core/block/import/common/common.go b/core/block/import/common/common.go
index 5c3b5b926..e4a0ce912 100644
--- a/core/block/import/common/common.go
+++ b/core/block/import/common/common.go
@@ -311,6 +311,10 @@ func getNewObjectsIDForRelation(objectsIDs []string, oldIDtoNew map[string]strin
continue
}
newTarget = addr.MissingObject
+ _, err := cid.Decode(val) // this can be url, because for notion import we store url for following upload
+ if err != nil {
+ newTarget = val
+ }
}
objectsIDs[i] = newTarget
}
diff --git a/core/block/import/common/error.go b/core/block/import/common/error.go
index c90ae18dd..c4ab63fe8 100644
--- a/core/block/import/common/error.go
+++ b/core/block/import/common/error.go
@@ -79,7 +79,7 @@ func (ce *ConvertError) GetResultError(importType model.ImportType) error {
case errors.Is(e, ErrFailedToReceiveListOfObjects):
return ErrFailedToReceiveListOfObjects
case errors.Is(e, ErrFileLoad):
- return e
+ return fmt.Errorf("import type: %s: %w", importType.String(), e)
case errors.Is(e, list.ErrInsufficientPermissions):
return e
case errors.Is(e, ErrNoObjectsToImport):
diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go
index 65d91d3af..2b94e51ca 100644
--- a/core/block/import/common/objectcreator/objectcreator.go
+++ b/core/block/import/common/objectcreator/objectcreator.go
@@ -32,6 +32,7 @@ import (
"github.com/anyproto/anytype-heart/pkg/lib/logging"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/space"
+ "github.com/anyproto/anytype-heart/util/anyerror"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
@@ -315,7 +316,7 @@ func (oc *ObjectCreator) deleteFile(hash string) {
if len(inboundLinks) == 0 {
err = oc.objectDeleter.DeleteObject(hash)
if err != nil {
- log.With("file", hash).Errorf("failed to delete file: %s", err)
+ log.With("file", hash).Errorf("failed to delete file: %s", anyerror.CleanupError(err))
}
}
}
diff --git a/core/block/import/common/syncer/icon.go b/core/block/import/common/syncer/icon.go
index d2a0eb186..3c66b56fd 100644
--- a/core/block/import/common/syncer/icon.go
+++ b/core/block/import/common/syncer/icon.go
@@ -3,6 +3,7 @@ package syncer
import (
"context"
"fmt"
+ "os"
"strings"
"github.com/ipfs/go-cid"
@@ -47,6 +48,9 @@ func (s *IconSyncer) Sync(id domain.FullID, newIdsSet map[string]struct{}, b sim
if uplErr != nil {
return fmt.Errorf("%w: %s", common.ErrFileLoad, uplErr.Error())
}
+ if os.IsNotExist(err) {
+ return err
+ }
return fmt.Errorf("%w: %s", common.ErrFileLoad, err.Error())
}
if newId == iconImage {
diff --git a/core/block/import/common/workerpool/workerpool.go b/core/block/import/common/workerpool/workerpool.go
index 385975211..3238acc63 100644
--- a/core/block/import/common/workerpool/workerpool.go
+++ b/core/block/import/common/workerpool/workerpool.go
@@ -27,9 +27,9 @@ func NewPool(numWorkers int) *WorkerPool {
func (p *WorkerPool) AddWork(t ITask) bool {
select {
- case p.tasks <- t:
case <-p.quit:
return true
+ case p.tasks <- t:
}
return false
}
@@ -50,9 +50,9 @@ func (p *WorkerPool) works(data interface{}, wg *sync.WaitGroup) {
defer wg.Done()
for task := range p.tasks {
select {
- case p.results <- task.Execute(data):
case <-p.quit:
return
+ case p.results <- task.Execute(data):
}
}
}
diff --git a/core/block/import/notion/api/block/link.go b/core/block/import/notion/api/block/link.go
index f0d9e9e24..da399fca4 100644
--- a/core/block/import/notion/api/block/link.go
+++ b/core/block/import/notion/api/block/link.go
@@ -5,7 +5,6 @@ import (
"encoding/hex"
"fmt"
"regexp"
- "strings"
"github.com/globalsign/mgo/bson"
"golang.org/x/exp/slices"
@@ -345,7 +344,7 @@ func getTargetBlock(importContext *api.NotionImportContext, pageIDToName, notion
// fallback to just match by title
var idsWithGivenName []string
for id, name := range pageIDToName {
- if strings.EqualFold(name, title) {
+ if name == title {
idsWithGivenName = append(idsWithGivenName, id)
}
}
diff --git a/core/block/import/notion/api/commonobjects.go b/core/block/import/notion/api/commonobjects.go
index 29882ecb5..6183d5719 100644
--- a/core/block/import/notion/api/commonobjects.go
+++ b/core/block/import/notion/api/commonobjects.go
@@ -3,12 +3,15 @@ package api
import (
"encoding/json"
"strings"
+ "sync"
"time"
"github.com/globalsign/mgo/bson"
"github.com/gogo/protobuf/types"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
+ "github.com/anyproto/anytype-heart/pkg/lib/logging"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
@@ -306,6 +309,21 @@ func SetIcon(details map[string]*types.Value, icon *Icon) *model.RelationLink {
return nil
}
+func SetCover(details map[string]*types.Value, cover *FileObject) {
+ if cover == nil || details == nil {
+ return
+ }
+ if cover.Type == External {
+ details[bundle.RelationKeyCoverId.String()] = pbtypes.String(cover.External.URL)
+ details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
+ }
+
+ if cover.Type == File {
+ details[bundle.RelationKeyCoverId.String()] = pbtypes.String(cover.File.URL)
+ details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
+ }
+}
+
type userType string
// User represent User Object object from Notion https://developers.notion.com/reference/user
@@ -341,3 +359,79 @@ func RichTextToDescription(rt []*RichText) string {
}
return richText.String()
}
+
+type relationUploadData struct {
+ fileDownloader files.Downloader
+
+ details map[string]*types.Value
+ mu sync.Mutex
+
+ tasks []func()
+ wg sync.WaitGroup
+}
+
+type relationFileMetaData struct {
+ relationKey string
+ url string
+ idxInDetails int
+}
+
+func UploadFileRelationLocally(fileDownloader files.Downloader, details map[string]*types.Value, relationLinks []*model.RelationLink) {
+ data := &relationUploadData{fileDownloader: fileDownloader, details: details}
+ for _, relationLink := range relationLinks {
+ if relationLink.Format == model.RelationFormat_file {
+ fileUrl := details[relationLink.Key].GetStringValue()
+ if fileUrl == "" {
+ handleListValue(data, relationLink.Key)
+ }
+ if fileUrl != "" {
+ fileMetaData := &relationFileMetaData{relationKey: relationLink.Key, url: fileUrl}
+ stop := queueTaskWithFileDownload(data, fileMetaData)
+ if stop {
+ break
+ }
+ }
+ }
+ }
+ for _, task := range data.tasks {
+ go task()
+ }
+ data.wg.Wait()
+}
+
+func handleListValue(data *relationUploadData, relationKey string) {
+ fileUrls := pbtypes.GetStringListValue(data.details[relationKey])
+ for i, url := range fileUrls {
+ fileMetaData := &relationFileMetaData{relationKey, url, i}
+ stop := queueTaskWithFileDownload(data, fileMetaData)
+ if stop {
+ break
+ }
+ }
+}
+
+func queueTaskWithFileDownload(data *relationUploadData, fileMetaData *relationFileMetaData) bool {
+ file, stop := data.fileDownloader.QueueFileForDownload(fileMetaData.url)
+ if stop {
+ return true
+ }
+ data.wg.Add(1)
+ data.tasks = append(data.tasks, func() {
+ defer data.wg.Done()
+ localPath, err := file.WaitForLocalPath()
+ if err != nil {
+ logging.Logger("notion").Errorf("failed to download file: %s", err)
+ }
+ data.mu.Lock()
+ defer data.mu.Unlock()
+ switch data.details[fileMetaData.relationKey].Kind.(type) {
+ case *types.Value_StringValue:
+ data.details[fileMetaData.relationKey] = pbtypes.String(localPath)
+ case *types.Value_ListValue:
+ fileUrlsList := pbtypes.GetStringListValue(data.details[fileMetaData.relationKey])
+ fileUrlsList[fileMetaData.idxInDetails] = localPath
+ data.details[fileMetaData.relationKey] = pbtypes.StringList(fileUrlsList)
+ }
+ })
+ return false
+}
diff --git a/core/block/import/notion/api/commonobjects_test.go b/core/block/import/notion/api/commonobjects_test.go
index 38385d252..e0c07a793 100644
--- a/core/block/import/notion/api/commonobjects_test.go
+++ b/core/block/import/notion/api/commonobjects_test.go
@@ -4,8 +4,10 @@ import (
"testing"
"time"
+ "github.com/gogo/protobuf/types"
"github.com/stretchr/testify/assert"
+ "github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
@@ -257,3 +259,66 @@ func Test_GetFileBlockVideo(t *testing.T) {
assert.Equal(t, imageBlock.GetFile().Name, "https:/example.ru/")
assert.Equal(t, imageBlock.GetFile().Type, model.BlockContentFile_Video)
}
+
+func TestSetCover(t *testing.T) {
+ t.Run("cover is nil", func(t *testing.T) {
+ // given
+ details := make(map[string]*types.Value, 0)
+
+ // when
+ SetCover(details, nil)
+
+ // then
+ assert.Empty(t, details)
+ })
+ t.Run("details are nil", func(t *testing.T) {
+ // given
+ var details map[string]*types.Value
+
+ // when
+ SetCover(details, &FileObject{
+ Name: "filename",
+ Type: External,
+ External: FileProperty{
+ URL: "url",
+ },
+ })
+
+ // then
+ assert.Empty(t, details)
+ })
+ t.Run("external type", func(t *testing.T) {
+ // given
+ details := make(map[string]*types.Value, 0)
+
+ // when
+ SetCover(details, &FileObject{
+ Name: "filename",
+ Type: External,
+ External: FileProperty{
+ URL: "url",
+ },
+ })
+
+ // then
+ assert.Equal(t, "url", details[bundle.RelationKeyCoverId.String()].GetStringValue())
+ assert.Equal(t, float64(1), details[bundle.RelationKeyCoverType.String()].GetNumberValue())
+ })
+ t.Run("file type", func(t *testing.T) {
+ // given
+ details := make(map[string]*types.Value, 0)
+
+ // when
+ SetCover(details, &FileObject{
+ Name: "filename",
+ Type: File,
+ File: FileProperty{
+ URL: "url",
+ },
+ })
+
+ // then
+ assert.Equal(t, "url", details[bundle.RelationKeyCoverId.String()].GetStringValue())
+ assert.Equal(t, float64(1), details[bundle.RelationKeyCoverType.String()].GetNumberValue())
+ })
+}
diff --git a/core/block/import/notion/api/context.go b/core/block/import/notion/api/context.go
index c9e7cc6d1..feb4ef140 100644
--- a/core/block/import/notion/api/context.go
+++ b/core/block/import/notion/api/context.go
@@ -1,6 +1,8 @@
package api
-import "sync"
+import (
+ "sync"
+)
type PageTree struct {
ParentPageToChildIDs map[string][]string
diff --git a/core/block/import/notion/api/database/database.go b/core/block/import/notion/api/database/database.go
index eec971e53..94149146d 100644
--- a/core/block/import/notion/api/database/database.go
+++ b/core/block/import/notion/api/database/database.go
@@ -8,12 +8,14 @@ import (
"github.com/globalsign/mgo/bson"
"github.com/gogo/protobuf/types"
"github.com/google/uuid"
+ "github.com/samber/lo"
"github.com/anyproto/anytype-heart/core/block/collection"
"github.com/anyproto/anytype-heart/core/block/editor/state"
"github.com/anyproto/anytype-heart/core/block/editor/template"
"github.com/anyproto/anytype-heart/core/block/import/common"
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/page"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/property"
"github.com/anyproto/anytype-heart/core/block/process"
@@ -67,26 +69,26 @@ func (p *Database) GetObjectType() string {
}
// GetDatabase makes snapshots from notion Database objects
-func (ds *Service) GetDatabase(_ context.Context,
+func (ds *Service) GetDatabase(
+ _ context.Context,
mode pb.RpcObjectImportRequestMode,
databases []Database,
progress process.Progress,
- req *api.NotionImportContext) (*common.Response, *property.PropertiesStore, *common.ConvertError) {
+ req *api.NotionImportContext,
+ fileDownloader files.Downloader,
+) (*common.Response, *property.PropertiesStore, *common.ConvertError) {
var (
allSnapshots = make([]*common.Snapshot, 0)
convertError = common.NewError(mode)
)
progress.SetProgressMessage("Start creating pages from notion databases")
- relations := &property.PropertiesStore{
- PropertyIdsToSnapshots: make(map[string]*model.SmartBlockSnapshotBase, 0),
- RelationsIdsToOptions: make(map[string][]*model.SmartBlockSnapshotBase, 0),
- }
+ relations := property.NewPropertiesStore()
for _, d := range databases {
if err := progress.TryStep(1); err != nil {
convertError.Add(common.ErrCancel)
return nil, nil, convertError
}
- snapshot, err := ds.makeDatabaseSnapshot(d, req, relations)
+ snapshot, err := ds.makeDatabaseSnapshot(d, req, relations, fileDownloader)
if err != nil {
convertError.Add(err)
if convertError.ShouldAbortImport(0, model.Import_Notion) {
@@ -102,18 +104,22 @@ func (ds *Service) GetDatabase(_ context.Context,
return &common.Response{Snapshots: allSnapshots}, relations, convertError
}
-func (ds *Service) makeDatabaseSnapshot(d Database,
+func (ds *Service) makeDatabaseSnapshot(
+ d Database,
importContext *api.NotionImportContext,
- relations *property.PropertiesStore) ([]*common.Snapshot, error) {
- details := ds.getCollectionDetails(d)
+ relations *property.PropertiesStore,
+ fileDownloader files.Downloader,
+) ([]*common.Snapshot, error) {
+ details, relationLinks := ds.getCollectionDetails(d)
detailsStruct := &types.Struct{Fields: details}
_, _, st, err := ds.collectionService.CreateCollection(detailsStruct, nil)
if err != nil {
return nil, err
}
+ api.UploadFileRelationLocally(fileDownloader, details, relationLinks)
detailsStruct = pbtypes.StructMerge(st.CombinedDetails(), detailsStruct, false)
snapshots := ds.makeRelationsSnapshots(d, st, relations)
- id, databaseSnapshot := ds.provideDatabaseSnapshot(d, st, detailsStruct)
+ id, databaseSnapshot := ds.provideDatabaseSnapshot(d, st, detailsStruct, relationLinks)
ds.fillImportContext(d, importContext, id, databaseSnapshot)
snapshots = append(snapshots, databaseSnapshot)
return snapshots, nil
@@ -188,14 +194,7 @@ func (ds *Service) makeRelationSnapshotFromDatabaseProperty(relations *property.
databaseProperty property.DatabasePropertyHandler,
name, relationKey string,
st *state.State) *common.Snapshot {
- var (
- rel *model.SmartBlockSnapshotBase
- sn *common.Snapshot
- )
- if rel = relations.ReadRelationsMap(databaseProperty.GetID()); rel == nil {
- rel, sn = ds.getRelationSnapshot(relationKey, databaseProperty, name)
- relations.WriteToRelationsMap(databaseProperty.GetID(), rel)
- }
+ rel, sn := ds.provideRelationSnapshot(relations, databaseProperty, name, relationKey)
relKey := pbtypes.GetString(rel.GetDetails(), bundle.RelationKeyRelationKey.String())
databaseProperty.SetDetail(relKey, st.Details().GetFields())
relationLinks := &model.RelationLink{
@@ -217,6 +216,23 @@ func (ds *Service) makeRelationSnapshotFromDatabaseProperty(relations *property.
return sn
}
+func (ds *Service) provideRelationSnapshot(
+ relations *property.PropertiesStore,
+ databaseProperty property.DatabasePropertyHandler,
+ name, relationKey string,
+) (*model.SmartBlockSnapshotBase, *common.Snapshot) {
+ var sn *common.Snapshot
+ rel := relations.GetSnapshotByNameAndFormat(name, int64(databaseProperty.GetFormat()))
+ if rel == nil {
+ if rel = relations.ReadRelationsMap(databaseProperty.GetID()); rel == nil {
+ rel, sn = ds.getRelationSnapshot(relationKey, databaseProperty, name)
+ relations.WriteToRelationsMap(databaseProperty.GetID(), rel)
+ relations.AddSnapshotByNameAndFormat(name, int64(databaseProperty.GetFormat()), rel)
+ }
+ }
+ return rel, sn
+}
+
func (ds *Service) getRelationSnapshot(relationKey string, databaseProperty property.DatabasePropertyHandler, name string) (*model.SmartBlockSnapshotBase, *common.Snapshot) {
relationDetails := ds.getRelationDetails(databaseProperty, name, relationKey)
relationSnapshot := &model.SmartBlockSnapshotBase{
@@ -254,29 +270,25 @@ func (ds *Service) getRelationDetails(databaseProperty property.DatabaseProperty
return details
}
-func (ds *Service) getCollectionDetails(d Database) map[string]*types.Value {
+func (ds *Service) getCollectionDetails(d Database) (map[string]*types.Value, []*model.RelationLink) {
details := make(map[string]*types.Value, 0)
details[bundle.RelationKeySourceFilePath.String()] = pbtypes.String(d.ID)
if len(d.Title) > 0 {
details[bundle.RelationKeyName.String()] = pbtypes.String(d.Title[0].PlainText)
}
- if d.Icon != nil && d.Icon.Emoji != nil {
- details[bundle.RelationKeyIconEmoji.String()] = pbtypes.String(*d.Icon.Emoji)
- }
-
+ var relationLinks []*model.RelationLink
if d.Cover != nil {
- if d.Cover.Type == api.External {
- details[bundle.RelationKeyCoverId.String()] = pbtypes.String(d.Cover.External.URL)
- details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
- }
-
- if d.Cover.Type == api.File {
- details[bundle.RelationKeyCoverId.String()] = pbtypes.String(d.Cover.File.URL)
- details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
- }
+ api.SetCover(details, d.Cover)
+ relationLinks = append(relationLinks, &model.RelationLink{
+ Key: bundle.RelationKeyCoverId.String(),
+ Format: model.RelationFormat_file,
+ })
}
if d.Icon != nil {
- api.SetIcon(details, d.Icon)
+ relationLink := api.SetIcon(details, d.Icon)
+ if relationLink != nil {
+ relationLinks = append(relationLinks, relationLink)
+ }
}
details[bundle.RelationKeyCreator.String()] = pbtypes.String(d.CreatedBy.Name)
details[bundle.RelationKeyIsArchived.String()] = pbtypes.Bool(d.Archived)
@@ -287,16 +299,16 @@ func (ds *Service) getCollectionDetails(d Database) map[string]*types.Value {
details[bundle.RelationKeyLastModifiedDate.String()] = pbtypes.Float64(float64(d.LastEditedTime.Unix()))
details[bundle.RelationKeyCreatedDate.String()] = pbtypes.Float64(float64(d.CreatedTime.Unix()))
- return details
+ return details, relationLinks
}
-func (ds *Service) provideDatabaseSnapshot(d Database, st *state.State, detailsStruct *types.Struct) (string, *common.Snapshot) {
+func (ds *Service) provideDatabaseSnapshot(d Database, st *state.State, detailsStruct *types.Struct, links []*model.RelationLink) (string, *common.Snapshot) {
snapshot := &model.SmartBlockSnapshotBase{
Blocks: st.Blocks(),
Details: detailsStruct,
ObjectTypes: []string{bundle.TypeKeyCollection.String()},
Collections: st.Store(),
- RelationLinks: st.GetRelationLinks(),
+ RelationLinks: lo.Union(st.GetRelationLinks(), links),
}
id := uuid.New().String()
diff --git a/core/block/import/notion/api/database/database_test.go b/core/block/import/notion/api/database/database_test.go
index d7d49e348..38eef3cf1 100644
--- a/core/block/import/notion/api/database/database_test.go
+++ b/core/block/import/notion/api/database/database_test.go
@@ -4,11 +4,14 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/mock"
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files/mock_files"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/page"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/property"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
+ sb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
@@ -379,6 +382,29 @@ func TestService_AddObjectsToNotionCollection(t *testing.T) {
}
func Test_makeDatabaseSnapshot(t *testing.T) {
+ t.Run("Databases have properties with same name and relation - don't create additional relation", func(t *testing.T) {
+ // given
+ p := property.DatabaseSelect{
+ Property: property.Property{
+ ID: "id",
+ Name: "Name",
+ },
+ }
+ pr := property.DatabaseProperties{"Name": &p}
+ dbService := New(nil)
+ req := property.NewPropertiesStore()
+ req.AddSnapshotByNameAndFormat(p.Name, int64(p.GetFormat()), &model.SmartBlockSnapshotBase{})
+ db := Database{Properties: pr}
+
+ // when
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
+ assert.Nil(t, err)
+
+ // then
+ assert.Len(t, snapshot, 1)
+ assert.NotEqual(t, sb.SmartBlockTypeRelation, snapshot[0].SbType)
+ })
+
t.Run("Database has Select property with Tag name", func(t *testing.T) {
// given
p := property.DatabaseSelect{
@@ -389,14 +415,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
pr := property.DatabaseProperties{"Tag": &p}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: pr}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 1)
@@ -413,14 +436,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
properties := property.DatabaseProperties{"Tags": &selectProperty}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: properties}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 1)
@@ -436,14 +456,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
selectProperty := property.DatabaseProperties{"Tags": &multiSelectProperty}
dbService := New(nil)
- properties := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ properties := property.NewPropertiesStore()
db := Database{Properties: selectProperty}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), properties)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), properties, mock_files.NewMockDownloader(t))
// then
assert.Len(t, properties.PropertyIdsToSnapshots, 1)
@@ -459,14 +476,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
selectProperty := property.DatabaseProperties{"Tag": &multiSelectProperty}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: selectProperty}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 1)
@@ -488,14 +502,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
properties := property.DatabaseProperties{"Tag": &multiSelectProperty, "Tags": &selectProperty}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: properties}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 2)
@@ -518,14 +529,11 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
properties := property.DatabaseProperties{"Tag": &multiSelectProperty, "tags": &selectProperty}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: properties}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 2)
@@ -541,7 +549,7 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}}
// when
- snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil)
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, mock_files.NewMockDownloader(t))
// then
assert.Nil(t, err)
@@ -559,7 +567,9 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}}
// when
- snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil)
+ downloader := mock_files.NewMockDownloader(t)
+ downloader.EXPECT().QueueFileForDownload(mock.Anything).Return(nil, true)
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, downloader)
// then
assert.Nil(t, err)
@@ -577,7 +587,9 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}}
// when
- snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil)
+ downloader := mock_files.NewMockDownloader(t)
+ downloader.EXPECT().QueueFileForDownload(mock.Anything).Return(nil, true)
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, downloader)
// then
assert.Nil(t, err)
@@ -590,7 +602,7 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
db := Database{}
// when
- snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil)
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, mock_files.NewMockDownloader(t))
// then
assert.Nil(t, err)
@@ -607,17 +619,49 @@ func Test_makeDatabaseSnapshot(t *testing.T) {
}
properties := property.DatabaseProperties{"": &selectProperty}
dbService := New(nil)
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
db := Database{Properties: properties}
// when
- dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req)
+ dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), req, mock_files.NewMockDownloader(t))
// then
assert.Len(t, req.PropertyIdsToSnapshots, 1)
assert.Equal(t, property.UntitledProperty, pbtypes.GetString(req.PropertyIdsToSnapshots[selectProperty.ID].GetDetails(), bundle.RelationKeyName.String()))
})
+ t.Run("Database has cover file icon - details have relations coverId and coverType", func(t *testing.T) {
+ dbService := New(nil)
+ db := Database{Cover: &api.FileObject{
+ Type: api.File,
+ File: api.FileProperty{
+ URL: "url",
+ },
+ }}
+
+ // when
+ downloader := mock_files.NewMockDownloader(t)
+ downloader.EXPECT().QueueFileForDownload(mock.Anything).Return(nil, true)
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, downloader)
+
+ // then
+ assert.Nil(t, err)
+ assert.Len(t, snapshot, 1)
+ cover := pbtypes.GetString(snapshot[0].Snapshot.Data.Details, bundle.RelationKeyCoverId.String())
+ coverType := pbtypes.GetInt64(snapshot[0].Snapshot.Data.Details, bundle.RelationKeyCoverType.String())
+ assert.Equal(t, "url", cover)
+ assert.Equal(t, int64(1), coverType)
+ })
+ t.Run("Database doesn't have cover - details don't have neither coverType nor coverId", func(t *testing.T) {
+ dbService := New(nil)
+ db := Database{}
+
+ // when
+ snapshot, err := dbService.makeDatabaseSnapshot(db, api.NewNotionImportContext(), nil, mock_files.NewMockDownloader(t))
+
+ // then
+ assert.Nil(t, err)
+ assert.Len(t, snapshot, 1)
+ cover := pbtypes.GetString(snapshot[0].Snapshot.Data.Details, bundle.RelationKeyCoverId.String())
+ assert.Equal(t, "", cover)
+ })
}
diff --git a/core/block/import/notion/api/files/downloader.go b/core/block/import/notion/api/files/downloader.go
new file mode 100644
index 000000000..b55d4e4a5
--- /dev/null
+++ b/core/block/import/notion/api/files/downloader.go
@@ -0,0 +1,127 @@
+package files
+
+import (
+ "context"
+ "os"
+ "path/filepath"
+ "sync"
+
+ "github.com/anyproto/anytype-heart/core/block/import/common/workerpool"
+ "github.com/anyproto/anytype-heart/core/block/process"
+)
+
+const (
+ workersNumber = 5
+ anytypeNotionImportDir = "anytype_notion_import"
+)
+
+type Downloader interface {
+ Init(ctx context.Context) error
+ QueueFileForDownload(url string) (LocalFileProvider, bool)
+ ProcessDownloadedFiles()
+ StopDownload()
+}
+
+type fileDownloader struct {
+ pool *workerpool.WorkerPool
+ progress process.Progress
+
+ urlToFile sync.Map
+ filesInProgress sync.Map
+}
+
+func NewFileDownloader(progress process.Progress) Downloader {
+ return &fileDownloader{
+ pool: workerpool.NewPool(workersNumber),
+ progress: progress,
+ }
+}
+
+func (d *fileDownloader) Init(ctx context.Context) error {
+ dirPath, err := d.createTempDir()
+ if err != nil {
+ return err
+ }
+ go d.pool.Start(&DataObject{
+ dirPath: dirPath,
+ ctx: ctx,
+ })
+ return nil
+}
+
+func (d *fileDownloader) createTempDir() (string, error) {
+ dirPath := filepath.Join(os.TempDir(), anytypeNotionImportDir)
+ err := os.MkdirAll(dirPath, 0700)
+ if err != nil && !os.IsExist(err) {
+ return "", err
+ }
+ return dirPath, nil
+}
+
+func (d *fileDownloader) QueueFileForDownload(url string) (LocalFileProvider, bool) {
+ select {
+ case <-d.progress.Canceled():
+ return nil, true
+ default:
+ }
+
+ if cachedFile, ok := d.getFileFromCache(url); ok {
+ return cachedFile, false
+ }
+
+ if fileInProgress, ok := d.isFileInProgress(url); ok {
+ return fileInProgress, false
+ }
+
+ newFile := NewFile(url)
+ d.markFileInProgress(newFile)
+ return newFile, d.pool.AddWork(newFile)
+}
+
+func (d *fileDownloader) ProcessDownloadedFiles() {
+ for result := range d.pool.Results() {
+ downloadedFile := result.(LocalFileProvider)
+ d.process(downloadedFile)
+ }
+}
+
+func (d *fileDownloader) process(downloadedFile LocalFileProvider) {
+ url := downloadedFile.GetUrl()
+
+ d.saveFileInfo(downloadedFile)
+ d.markFileCompleted(url)
+}
+
+func (d *fileDownloader) getFileFromCache(url string) (LocalFileProvider, bool) {
+ if file, ok := d.urlToFile.Load(url); ok {
+ return file.(LocalFileProvider), true
+ }
+ return nil, false
+}
+
+func (d *fileDownloader) isFileInProgress(url string) (LocalFileProvider, bool) {
+ file, inProgress := d.filesInProgress.Load(url)
+ if inProgress {
+ return file.(LocalFileProvider), inProgress
+ }
+ return nil, false
+}
+
+func (d *fileDownloader) markFileInProgress(newFile LocalFileProvider) {
+ d.filesInProgress.Store(newFile.GetUrl(), newFile)
+}
+
+func (d *fileDownloader) saveFileInfo(downloadedFile LocalFileProvider) {
+ if downloadedFile.GetLocalPath() != "" {
+ d.urlToFile.Store(downloadedFile.GetUrl(), downloadedFile)
+ }
+}
+
+func (d *fileDownloader) markFileCompleted(url string) {
+ d.filesInProgress.Delete(url)
+}
+
+func (d *fileDownloader) StopDownload() {
+ d.pool.Stop()
+ d.pool.CloseTask()
+}
diff --git a/core/block/import/notion/api/files/downloader_test.go b/core/block/import/notion/api/files/downloader_test.go
new file mode 100644
index 000000000..0367c1956
--- /dev/null
+++ b/core/block/import/notion/api/files/downloader_test.go
@@ -0,0 +1,108 @@
+package files
+
+import (
+ "context"
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+
+ "github.com/anyproto/anytype-heart/core/block/process"
+)
+
+func TestFileDownloader_Init(t *testing.T) {
+ t.Run("create dir success", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp())
+
+ // when
+ err := fileDownloader.Init(context.Background())
+ defer fileDownloader.StopDownload()
+
+ // then
+ assert.Nil(t, err)
+ })
+ t.Run("create dir - already exist error", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp()).(*fileDownloader)
+
+ // when
+ _, err := fileDownloader.createTempDir()
+ assert.Nil(t, err)
+ _, err = fileDownloader.createTempDir()
+
+ // then
+ assert.Nil(t, err)
+ })
+}
+
+func TestFileDownloader_AddToQueue(t *testing.T) {
+ t.Run("add to queue success, file were processed", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp()).(*fileDownloader)
+
+ // when
+ fileDownloader.urlToFile.Store("test", NewFile("test"))
+ _, stop := fileDownloader.QueueFileForDownload("test")
+
+ // then
+ assert.False(t, stop)
+ _, ok := fileDownloader.filesInProgress.Load("test")
+ assert.False(t, ok)
+ })
+
+ t.Run("add to queue success, file in progress", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp()).(*fileDownloader)
+
+ // when
+ fileDownloader.filesInProgress.Store("test", NewFile("test"))
+ _, stop := fileDownloader.QueueFileForDownload("test")
+
+ // then
+ assert.False(t, stop)
+ _, ok := fileDownloader.filesInProgress.Load("test")
+ assert.True(t, ok)
+ _, ok = fileDownloader.urlToFile.Load("test")
+ assert.False(t, ok)
+ })
+
+ t.Run("add to queue success, new file", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp()).(*fileDownloader)
+
+ // when
+ err := fileDownloader.Init(context.Background())
+ assert.Nil(t, err)
+ defer fileDownloader.StopDownload()
+ _, stop := fileDownloader.QueueFileForDownload("test")
+
+ // then
+ assert.False(t, stop)
+ _, ok := fileDownloader.filesInProgress.Load("test")
+ assert.True(t, ok)
+ _, ok = fileDownloader.urlToFile.Load("test")
+ assert.False(t, ok)
+ assert.Nil(t, os.RemoveAll("tmp"))
+ })
+}
+
+func TestFileDownloader_process(t *testing.T) {
+ t.Run("process file success", func(t *testing.T) {
+ // given
+ fileDownloader := NewFileDownloader(process.NewNoOp()).(*fileDownloader)
+
+ // when
+ f := NewFile("test")
+ downloadFile := f.(*file)
+ downloadFile.localPath = "localPath"
+ fileDownloader.process(downloadFile)
+
+ // then
+ _, ok := fileDownloader.filesInProgress.Load("test")
+ assert.False(t, ok)
+ newFile, ok := fileDownloader.urlToFile.Load("test")
+ assert.True(t, ok)
+ assert.Equal(t, "localPath", newFile.(LocalFileProvider).GetLocalPath())
+ })
+}
diff --git a/core/block/import/notion/api/files/file.go b/core/block/import/notion/api/files/file.go
new file mode 100644
index 000000000..04030d405
--- /dev/null
+++ b/core/block/import/notion/api/files/file.go
@@ -0,0 +1,213 @@
+package files
+
+import (
+ "context"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "net/http"
+ "net/url"
+ "os"
+ "path/filepath"
+ "sync"
+ "time"
+
+ "github.com/miolini/datacounter"
+ "github.com/zeebo/blake3"
+
+ "github.com/anyproto/anytype-heart/core/block/import/common/workerpool"
+)
+
+var hashersPool = &sync.Pool{
+ New: func() any {
+ return blake3.New()
+ },
+}
+
+type DataObject struct {
+ dirPath string
+ ctx context.Context
+}
+
+type LocalFileProvider interface {
+ workerpool.ITask
+ GetUrl() string
+ GetLocalPath() string
+ WaitForLocalPath() (string, error)
+ LoadDone()
+}
+
+type file struct {
+ *os.File
+
+ url string
+ localPath string
+
+ loadDone chan struct{}
+ errCh chan error
+}
+
+func NewFile(url string) LocalFileProvider {
+ return &file{
+ url: url,
+ loadDone: make(chan struct{}),
+ errCh: make(chan error, 1),
+ }
+}
+
+func (f *file) LoadDone() {
+ close(f.loadDone)
+}
+
+func (f *file) GetUrl() string {
+ return f.url
+}
+
+func (f *file) GetLocalPath() string {
+ return f.localPath
+}
+
+func (f *file) WaitForLocalPath() (string, error) {
+ for {
+ select {
+ case <-f.loadDone:
+ return f.localPath, nil
+ case err := <-f.errCh:
+ return "", err
+ }
+ }
+}
+
+func (f *file) Execute(data interface{}) interface{} {
+ do, ok := data.(*DataObject)
+ if !ok {
+ f.loadFinishWithError(fmt.Errorf("wrong format of data for file downloading"))
+ return f
+ }
+
+ err := f.generateFile(do)
+
+ defer func() {
+ f.Close()
+ if err != nil && !os.IsExist(err) && f.File != nil {
+ os.Remove(f.Name())
+ }
+ }()
+
+ if err != nil {
+ if os.IsExist(err) {
+ f.LoadDone()
+ return f
+ }
+ f.loadFinishWithError(err)
+ return f
+ }
+
+ if err = f.downloadFile(do.ctx); err != nil {
+ f.loadFinishWithError(err)
+ return f
+ }
+
+ f.LoadDone()
+ return f
+}
+
+func (f *file) downloadFile(ctx context.Context) error {
+ req, err := http.NewRequestWithContext(ctx, http.MethodGet, f.url, nil)
+ if err != nil {
+ return fmt.Errorf("failed to make request with context: %w", err)
+ }
+
+ resp, err := http.DefaultClient.Do(req)
+ if err != nil {
+ return fmt.Errorf("failed to make http request: %w", err)
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode != http.StatusOK {
+ return fmt.Errorf("bad status code: %d", resp.StatusCode)
+ }
+ counter := datacounter.NewReaderCounter(resp.Body)
+ progressCh := make(chan struct{}, 1)
+ done := make(chan struct{})
+ defer close(done)
+ go f.monitorFileDownload(counter, done, progressCh)
+
+ _, err = io.Copy(f.File, counter)
+ if err != nil {
+ return fmt.Errorf("failed to download file: %w", err)
+ }
+ select {
+ case <-ctx.Done():
+ return fmt.Errorf("file download were canceled")
+ case <-progressCh:
+ return fmt.Errorf("failed to download file, no progress")
+ default:
+ f.Close()
+ return os.Rename(f.File.Name(), f.localPath)
+ }
+}
+
+func (f *file) loadFinishWithError(err error) {
+ f.errCh <- err
+ close(f.errCh)
+}
+
+func (f *file) generateFile(do *DataObject) error {
+ fileName, err := f.makeFileName()
+ if err != nil {
+ return err
+ }
+ fullPath := filepath.Join(do.dirPath, fileName)
+ file, err := os.OpenFile(fullPath, os.O_RDWR, 0600)
+ if err != nil && !os.IsNotExist(err) {
+ return err
+ }
+ if file != nil {
+ f.File = file
+ f.localPath = fullPath
+ return os.ErrExist
+ }
+ tempFilePath := filepath.Join(do.dirPath, "_"+fileName)
+ tmpFile, err := os.Create(tempFilePath)
+ if err != nil {
+ return err
+ }
+ f.File = tmpFile
+ f.localPath = fullPath
+ return nil
+}
+
+func (f *file) makeFileName() (string, error) {
+ hasher := hashersPool.Get().(*blake3.Hasher)
+ defer hashersPool.Put(hasher)
+ hasher.Reset()
+ parsesUrl, err := url.Parse(f.url)
+ if err != nil {
+ return "", err
+ }
+ // nolint: errcheck
+ hasher.Write([]byte(parsesUrl.Path))
+ fileExt := filepath.Ext(parsesUrl.Path)
+ fileName := hex.EncodeToString(hasher.Sum(nil)) + fileExt
+ return fileName, nil
+}
+
+func (f *file) monitorFileDownload(counter *datacounter.ReaderCounter, done, progressCh chan struct{}) {
+ timeout := time.Second * 30
+ func() {
+ lastCount := counter.Count()
+ for {
+ select {
+ case <-done:
+ return
+ case <-time.After(timeout):
+ currentCount := counter.Count()
+ if currentCount == lastCount {
+ progressCh <- struct{}{}
+ return
+ }
+ lastCount = currentCount
+ }
+ }
+ }()
+}
diff --git a/core/block/import/notion/api/files/file_test.go b/core/block/import/notion/api/files/file_test.go
new file mode 100644
index 000000000..a7b4f7725
--- /dev/null
+++ b/core/block/import/notion/api/files/file_test.go
@@ -0,0 +1,174 @@
+package files
+
+import (
+ "context"
+ "net/http"
+ "net/http/httptest"
+ "os"
+ "path/filepath"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestFile_Execute(t *testing.T) {
+ t.Run("data object is wrong", func(t *testing.T) {
+ // given
+ file := NewFile("url")
+
+ // when
+ file.Execute("test")
+
+ // then
+ assert.Empty(t, file.GetLocalPath())
+ })
+ t.Run("error creating file: exist", func(t *testing.T) {
+ // given
+ filePath := filepath.Join("tmp", "68b26ffaae8944a7a8ab6951bdd0a44f0492fe65838858051ecaa24746d2a470")
+ err := os.MkdirAll("tmp", 0700)
+ assert.NoError(t, err)
+ tmpFile, err := os.Create(filePath)
+ assert.NoError(t, err)
+ defer os.RemoveAll("tmp")
+
+ file := NewFile("url")
+
+ // when
+ file.Execute(&DataObject{
+ dirPath: "tmp",
+ })
+
+ // then
+ assert.Equal(t, tmpFile.Name(), file.GetLocalPath())
+ })
+}
+func TestFile_downloadFile(t *testing.T) {
+ t.Run("download success", func(t *testing.T) {
+ // given
+ tmpFile, err := os.CreateTemp("", "testfile")
+ assert.NoError(t, err)
+ defer os.Remove(tmpFile.Name())
+
+ server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusOK)
+ w.Write([]byte("file content"))
+ }))
+ defer server.Close()
+
+ file := &file{url: server.URL, File: tmpFile, localPath: tmpFile.Name()}
+ ctx := context.Background()
+
+ // when
+ err = file.downloadFile(ctx)
+
+ // then
+ assert.NoError(t, err)
+ })
+ t.Run("download finished with http error", func(t *testing.T) {
+ // given
+ tmpFile, err := os.CreateTemp("", "testfile")
+ assert.NoError(t, err)
+
+ server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusInternalServerError)
+ }))
+ defer server.Close()
+
+ file := &file{url: server.URL, File: tmpFile}
+ ctx := context.Background()
+
+ // when
+ err = file.downloadFile(ctx)
+
+ // then
+ assert.Error(t, err)
+ assert.Contains(t, err.Error(), "bad status code")
+ })
+ t.Run("download cancelled", func(t *testing.T) {
+ // given
+ tmpFile, err := os.CreateTemp("", "testfile")
+ assert.NoError(t, err)
+ defer os.Remove(tmpFile.Name())
+
+ server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ time.Sleep(500 * time.Millisecond) // Simulate a slow response
+ w.WriteHeader(http.StatusOK)
+ w.Write([]byte("file content"))
+ }))
+ defer server.Close()
+
+ file := &file{url: server.URL}
+
+ ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
+ defer cancel()
+
+ // when
+ err = file.downloadFile(ctx)
+
+ // then
+ assert.Error(t, err)
+ })
+}
+
+func TestFile_generateFileName(t *testing.T) {
+ t.Run("generate name success", func(t *testing.T) {
+ // given
+ dirPath := t.TempDir()
+ do := &DataObject{dirPath: dirPath}
+ file := NewFile("url").(*file)
+
+ // when
+ err := file.generateFile(do)
+
+ // then
+ assert.NoError(t, err)
+ assert.NotNil(t, file.File)
+ })
+ t.Run("generate name, file exists", func(t *testing.T) {
+ // given
+ dirPath := t.TempDir()
+ do := &DataObject{dirPath: dirPath}
+ file := NewFile("url").(*file)
+
+ // when
+ existingFilePath := filepath.Join(dirPath, "68b26ffaae8944a7a8ab6951bdd0a44f0492fe65838858051ecaa24746d2a470")
+ _, err := os.Create(existingFilePath)
+ assert.NoError(t, err)
+
+ err = file.generateFile(do)
+
+ // then
+ assert.ErrorIs(t, err, os.ErrExist)
+ assert.NotNil(t, file.File)
+ assert.Equal(t, existingFilePath, file.GetLocalPath())
+ })
+ t.Run("generate name, url error", func(t *testing.T) {
+ // given
+ dirPath := t.TempDir()
+ do := &DataObject{dirPath: dirPath}
+ file := NewFile("://invalid-url").(*file)
+
+ // when
+ err := file.generateFile(do)
+
+ // then
+ assert.Error(t, err)
+ assert.Nil(t, file.File)
+ assert.Equal(t, "", file.GetLocalPath())
+ })
+ t.Run("generate name, file creation error", func(t *testing.T) {
+ // given
+ dirPath := "/invalid/dir/path"
+ do := &DataObject{dirPath: dirPath}
+ file := NewFile("url").(*file)
+
+ // when
+ err := file.generateFile(do)
+
+ // then
+ assert.Error(t, err)
+ assert.Nil(t, file.File)
+ assert.Equal(t, "", file.GetLocalPath())
+ })
+}
diff --git a/core/block/import/notion/api/files/mock_files/mock_Downloader.go b/core/block/import/notion/api/files/mock_files/mock_Downloader.go
new file mode 100644
index 000000000..c9994c86f
--- /dev/null
+++ b/core/block/import/notion/api/files/mock_files/mock_Downloader.go
@@ -0,0 +1,205 @@
+// Code generated by mockery. DO NOT EDIT.
+
+package mock_files
+
+import (
+ context "context"
+
+ files "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
+ mock "github.com/stretchr/testify/mock"
+)
+
+// MockDownloader is an autogenerated mock type for the Downloader type
+type MockDownloader struct {
+ mock.Mock
+}
+
+type MockDownloader_Expecter struct {
+ mock *mock.Mock
+}
+
+func (_m *MockDownloader) EXPECT() *MockDownloader_Expecter {
+ return &MockDownloader_Expecter{mock: &_m.Mock}
+}
+
+// Init provides a mock function with given fields: ctx
+func (_m *MockDownloader) Init(ctx context.Context) error {
+ ret := _m.Called(ctx)
+
+ if len(ret) == 0 {
+ panic("no return value specified for Init")
+ }
+
+ var r0 error
+ if rf, ok := ret.Get(0).(func(context.Context) error); ok {
+ r0 = rf(ctx)
+ } else {
+ r0 = ret.Error(0)
+ }
+
+ return r0
+}
+
+// MockDownloader_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init'
+type MockDownloader_Init_Call struct {
+ *mock.Call
+}
+
+// Init is a helper method to define mock.On call
+// - ctx context.Context
+func (_e *MockDownloader_Expecter) Init(ctx interface{}) *MockDownloader_Init_Call {
+ return &MockDownloader_Init_Call{Call: _e.mock.On("Init", ctx)}
+}
+
+func (_c *MockDownloader_Init_Call) Run(run func(ctx context.Context)) *MockDownloader_Init_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context))
+ })
+ return _c
+}
+
+func (_c *MockDownloader_Init_Call) Return(_a0 error) *MockDownloader_Init_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockDownloader_Init_Call) RunAndReturn(run func(context.Context) error) *MockDownloader_Init_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ProcessDownloadedFiles provides a mock function with given fields:
+func (_m *MockDownloader) ProcessDownloadedFiles() {
+ _m.Called()
+}
+
+// MockDownloader_ProcessDownloadedFiles_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ProcessDownloadedFiles'
+type MockDownloader_ProcessDownloadedFiles_Call struct {
+ *mock.Call
+}
+
+// ProcessDownloadedFiles is a helper method to define mock.On call
+func (_e *MockDownloader_Expecter) ProcessDownloadedFiles() *MockDownloader_ProcessDownloadedFiles_Call {
+ return &MockDownloader_ProcessDownloadedFiles_Call{Call: _e.mock.On("ProcessDownloadedFiles")}
+}
+
+func (_c *MockDownloader_ProcessDownloadedFiles_Call) Run(run func()) *MockDownloader_ProcessDownloadedFiles_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run()
+ })
+ return _c
+}
+
+func (_c *MockDownloader_ProcessDownloadedFiles_Call) Return() *MockDownloader_ProcessDownloadedFiles_Call {
+ _c.Call.Return()
+ return _c
+}
+
+func (_c *MockDownloader_ProcessDownloadedFiles_Call) RunAndReturn(run func()) *MockDownloader_ProcessDownloadedFiles_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// QueueFileForDownload provides a mock function with given fields: url
+func (_m *MockDownloader) QueueFileForDownload(url string) (files.LocalFileProvider, bool) {
+ ret := _m.Called(url)
+
+ if len(ret) == 0 {
+ panic("no return value specified for QueueFileForDownload")
+ }
+
+ var r0 files.LocalFileProvider
+ var r1 bool
+ if rf, ok := ret.Get(0).(func(string) (files.LocalFileProvider, bool)); ok {
+ return rf(url)
+ }
+ if rf, ok := ret.Get(0).(func(string) files.LocalFileProvider); ok {
+ r0 = rf(url)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(files.LocalFileProvider)
+ }
+ }
+
+ if rf, ok := ret.Get(1).(func(string) bool); ok {
+ r1 = rf(url)
+ } else {
+ r1 = ret.Get(1).(bool)
+ }
+
+ return r0, r1
+}
+
+// MockDownloader_QueueFileForDownload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'QueueFileForDownload'
+type MockDownloader_QueueFileForDownload_Call struct {
+ *mock.Call
+}
+
+// QueueFileForDownload is a helper method to define mock.On call
+// - url string
+func (_e *MockDownloader_Expecter) QueueFileForDownload(url interface{}) *MockDownloader_QueueFileForDownload_Call {
+ return &MockDownloader_QueueFileForDownload_Call{Call: _e.mock.On("QueueFileForDownload", url)}
+}
+
+func (_c *MockDownloader_QueueFileForDownload_Call) Run(run func(url string)) *MockDownloader_QueueFileForDownload_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(string))
+ })
+ return _c
+}
+
+func (_c *MockDownloader_QueueFileForDownload_Call) Return(_a0 files.LocalFileProvider, _a1 bool) *MockDownloader_QueueFileForDownload_Call {
+ _c.Call.Return(_a0, _a1)
+ return _c
+}
+
+func (_c *MockDownloader_QueueFileForDownload_Call) RunAndReturn(run func(string) (files.LocalFileProvider, bool)) *MockDownloader_QueueFileForDownload_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// StopDownload provides a mock function with given fields:
+func (_m *MockDownloader) StopDownload() {
+ _m.Called()
+}
+
+// MockDownloader_StopDownload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'StopDownload'
+type MockDownloader_StopDownload_Call struct {
+ *mock.Call
+}
+
+// StopDownload is a helper method to define mock.On call
+func (_e *MockDownloader_Expecter) StopDownload() *MockDownloader_StopDownload_Call {
+ return &MockDownloader_StopDownload_Call{Call: _e.mock.On("StopDownload")}
+}
+
+func (_c *MockDownloader_StopDownload_Call) Run(run func()) *MockDownloader_StopDownload_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run()
+ })
+ return _c
+}
+
+func (_c *MockDownloader_StopDownload_Call) Return() *MockDownloader_StopDownload_Call {
+ _c.Call.Return()
+ return _c
+}
+
+func (_c *MockDownloader_StopDownload_Call) RunAndReturn(run func()) *MockDownloader_StopDownload_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// NewMockDownloader creates a new instance of MockDownloader. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewMockDownloader(t interface {
+ mock.TestingT
+ Cleanup(func())
+}) *MockDownloader {
+ mock := &MockDownloader{}
+ mock.Mock.Test(t)
+
+ t.Cleanup(func() { mock.AssertExpectations(t) })
+
+ return mock
+}
diff --git a/core/block/import/notion/api/page/page.go b/core/block/import/notion/api/page/page.go
index c61223575..d9b28e4ad 100644
--- a/core/block/import/notion/api/page/page.go
+++ b/core/block/import/notion/api/page/page.go
@@ -12,6 +12,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/block"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/client"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/property"
"github.com/anyproto/anytype-heart/core/block/process"
"github.com/anyproto/anytype-heart/pb"
@@ -60,25 +61,29 @@ func (p *Page) GetObjectType() string {
}
// GetPages transform Page objects from Notion to snaphots
-func (ds *Service) GetPages(ctx context.Context,
+func (ds *Service) GetPages(
+ ctx context.Context,
apiKey string,
mode pb.RpcObjectImportRequestMode,
pages []Page,
notionImportContext *api.NotionImportContext,
relations *property.PropertiesStore,
- progress process.Progress) (*common.Response, *common.ConvertError) {
+ progress process.Progress,
+ fileDownloader files.Downloader,
+) (*common.Response, *common.ConvertError) {
progress.SetProgressMessage("Start creating pages from notion")
convertError := ds.fillNotionImportContext(pages, progress, notionImportContext)
if convertError != nil {
return nil, convertError
}
+
numWorkers := workerPoolSize
if len(pages) < workerPoolSize {
numWorkers = 1
}
pool := workerpool.NewPool(numWorkers)
- go ds.addWorkToPool(pages, pool)
+ go ds.addWorkToPool(pages, pool, fileDownloader)
do := NewDataObject(ctx, apiKey, mode, notionImportContext, relations)
go pool.Start(do)
@@ -113,7 +118,7 @@ func (ds *Service) readResultFromPool(pool *workerpool.WorkerPool, mode pb.RpcOb
return allSnapshots, ce
}
-func (ds *Service) addWorkToPool(pages []Page, pool *workerpool.WorkerPool) {
+func (ds *Service) addWorkToPool(pages []Page, pool *workerpool.WorkerPool, fileDownloader files.Downloader) {
var (
relMutex = &sync.Mutex{}
relOptMutex = &sync.Mutex{}
@@ -125,6 +130,7 @@ func (ds *Service) addWorkToPool(pages []Page, pool *workerpool.WorkerPool) {
propertyService: ds.propertyService,
blockService: ds.blockService,
p: p,
+ fileDownloader: fileDownloader,
})
if stop {
break
diff --git a/core/block/import/notion/api/page/page_test.go b/core/block/import/notion/api/page/page_test.go
index 7d4ae3e1c..0483a3c52 100644
--- a/core/block/import/notion/api/page/page_test.go
+++ b/core/block/import/notion/api/page/page_test.go
@@ -38,10 +38,7 @@ func Test_handlePagePropertiesSelect(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -101,10 +98,7 @@ func Test_handlePagePropertiesLastEditedTime(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -134,10 +128,7 @@ func Test_handlePagePropertiesRichText(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
ctx: context.Background(),
request: &api.NotionImportContext{},
@@ -172,10 +163,7 @@ func Test_handlePagePropertiesDate(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
ctx: context.Background(),
request: &api.NotionImportContext{},
@@ -211,10 +199,7 @@ func Test_handlePagePropertiesDate(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
ctx: context.Background(),
request: &api.NotionImportContext{},
@@ -253,10 +238,7 @@ func Test_handlePagePropertiesStatus(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -320,10 +302,7 @@ func Test_handlePageProperties(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -355,10 +334,7 @@ func Test_handlePagePropertiesNumber(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -394,10 +370,7 @@ func Test_handlePagePropertiesMultiSelect(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -463,10 +436,7 @@ func Test_handlePagePropertiesCheckbox(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -497,10 +467,7 @@ func Test_handlePagePropertiesEmail(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -538,10 +505,7 @@ func Test_handlePagePropertiesRelation(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
ctx: context.Background(),
request: req,
@@ -570,6 +534,14 @@ func Test_handlePagePropertiesPeople(t *testing.T) {
Object: "",
ID: "id",
Type: string(property.PropertyConfigTypePeople),
+ People: []*api.User{
+ {
+ ID: "1",
+ Name: "Example",
+ Type: "person",
+ Person: &api.Person{Email: "email"},
+ },
+ },
}
properties := property.Properties{"People": &peopleProperty}
pageTask := Task{
@@ -578,10 +550,7 @@ func Test_handlePagePropertiesPeople(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -621,10 +590,7 @@ func Test_handlePagePropertiesFormula(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -654,10 +620,7 @@ func Test_handlePagePropertiesTitle(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -709,10 +672,7 @@ func Test_handleRollupProperties(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -756,10 +716,7 @@ func Test_handlePagePropertiesUniqueID(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -797,10 +754,7 @@ func Test_handlePagePropertiesUniqueID(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- store := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ store := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: store,
@@ -841,10 +795,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -880,10 +831,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -920,10 +868,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -960,10 +905,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -1010,10 +952,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -1061,10 +1000,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -1097,10 +1033,7 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
relationCreateMutex: &sync.Mutex{},
p: Page{Properties: properties},
}
- req := &property.PropertiesStore{
- PropertyIdsToSnapshots: map[string]*model.SmartBlockSnapshotBase{},
- RelationsIdsToOptions: map[string][]*model.SmartBlockSnapshotBase{},
- }
+ req := property.NewPropertiesStore()
do := &DataObject{
request: &api.NotionImportContext{},
relations: req,
@@ -1114,6 +1047,36 @@ func Test_handlePagePropertiesSelectWithTagName(t *testing.T) {
assert.Len(t, req.PropertyIdsToSnapshots, 1)
assert.Equal(t, property.UntitledProperty, pbtypes.GetString(req.PropertyIdsToSnapshots[selectProperty.ID].GetDetails(), bundle.RelationKeyName.String()))
})
+ t.Run("Page has property which already exist - don't create new relation", func(t *testing.T) {
+ // given
+ details := make(map[string]*types.Value, 0)
+ c := client.NewClient()
+ selectProperty := property.SelectItem{
+ Object: "",
+ ID: "id1",
+ Type: string(property.PropertyConfigTypeSelect),
+ Select: property.SelectOption{},
+ }
+ properties := property.Properties{"Name": &selectProperty}
+ pageTask := Task{
+ propertyService: property.New(c),
+ relationOptCreateMutex: &sync.Mutex{},
+ relationCreateMutex: &sync.Mutex{},
+ p: Page{Properties: properties},
+ }
+ req := property.NewPropertiesStore()
+ req.AddSnapshotByNameAndFormat("Name", int64(selectProperty.GetFormat()), &model.SmartBlockSnapshotBase{})
+ do := &DataObject{
+ request: &api.NotionImportContext{},
+ relations: req,
+ }
+
+ // when
+ snapshots, _ := pageTask.handlePageProperties(do, details)
+
+ // then
+ assert.Len(t, snapshots, 0)
+ })
}
func TestTask_provideDetails(t *testing.T) {
@@ -1200,4 +1163,47 @@ func TestTask_provideDetails(t *testing.T) {
assert.NotContains(t, details, bundle.RelationKeyIconImage.String())
assert.NotContains(t, details, bundle.RelationKeyIconEmoji.String())
})
+ t.Run("Page has cover - details have relation coverId and coverType", func(t *testing.T) {
+ c := client.NewClient()
+ page := Page{
+ Cover: &api.FileObject{
+ Name: "file",
+ Type: api.File,
+ File: api.FileProperty{
+ URL: "file",
+ },
+ },
+ }
+ pageTask := Task{
+ propertyService: property.New(c),
+ relationOptCreateMutex: &sync.Mutex{},
+ relationCreateMutex: &sync.Mutex{},
+ p: page,
+ }
+
+ // when
+ details, _ := pageTask.prepareDetails()
+
+ // then
+ assert.Contains(t, details, bundle.RelationKeyCoverType.String())
+ assert.Contains(t, details, bundle.RelationKeyCoverId.String())
+ assert.Equal(t, "file", details[bundle.RelationKeyCoverId.String()].GetStringValue())
+ })
+ t.Run("Page doesn't have cover - details doesn't have relations coverId and coverType", func(t *testing.T) {
+ c := client.NewClient()
+ page := Page{}
+ pageTask := Task{
+ propertyService: property.New(c),
+ relationOptCreateMutex: &sync.Mutex{},
+ relationCreateMutex: &sync.Mutex{},
+ p: page,
+ }
+
+ // when
+ details, _ := pageTask.prepareDetails()
+
+ // then
+ assert.Empty(t, details[bundle.RelationKeyCoverType.String()])
+ assert.Empty(t, details[bundle.RelationKeyCoverId.String()])
+ })
}
diff --git a/core/block/import/notion/api/page/task.go b/core/block/import/notion/api/page/task.go
index 5043a283d..701ab1d04 100644
--- a/core/block/import/notion/api/page/task.go
+++ b/core/block/import/notion/api/page/task.go
@@ -14,6 +14,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/import/common"
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/block"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/property"
"github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/pb"
@@ -46,6 +47,7 @@ type Task struct {
propertyService *property.Service
blockService *block.Service
p Page
+ fileDownloader files.Downloader
}
func (pt *Task) ID() string {
@@ -55,12 +57,12 @@ func (pt *Task) ID() string {
func (pt *Task) Execute(data interface{}) interface{} {
do := data.(*DataObject)
allErrors := common.NewError(do.mode)
- snapshot, subObjectsSnapshots := pt.makeSnapshotFromPages(do, allErrors)
+ snapshot, relationsAndOptionsSnapshots := pt.makeSnapshotFromPages(do, allErrors)
if allErrors.ShouldAbortImport(0, model.Import_Notion) {
return &Result{ce: allErrors}
}
pageId := do.request.NotionPageIdsToAnytype[pt.p.ID]
- resultSnapshots := make([]*common.Snapshot, 0, 1+len(subObjectsSnapshots))
+ resultSnapshots := make([]*common.Snapshot, 0, 1+len(relationsAndOptionsSnapshots))
sn := &common.Snapshot{
Id: pageId,
FileName: pt.p.URL,
@@ -68,7 +70,7 @@ func (pt *Task) Execute(data interface{}) interface{} {
SbType: smartblock.SmartBlockTypePage,
}
resultSnapshots = append(resultSnapshots, sn)
- for _, objectsSnapshot := range subObjectsSnapshots {
+ for _, objectsSnapshot := range relationsAndOptionsSnapshots {
sbType := pt.getSmartBlockTypeAndID(objectsSnapshot)
resultSnapshots = append(resultSnapshots, &common.Snapshot{
Id: pbtypes.GetString(objectsSnapshot.Details, bundle.RelationKeyId.String()),
@@ -80,7 +82,7 @@ func (pt *Task) Execute(data interface{}) interface{} {
}
func (pt *Task) makeSnapshotFromPages(object *DataObject, allErrors *common.ConvertError) (*model.SmartBlockSnapshotBase, []*model.SmartBlockSnapshotBase) {
- details, subObjectsSnapshots, relationLinks := pt.provideDetails(object)
+ details, relationsAndOptionsSnapshots, relationLinks := pt.provideDetails(object)
notionBlocks, blocksAndChildrenErr := pt.blockService.GetBlocksAndChildren(object.ctx, pt.p.ID, object.apiKey, pageSize, object.mode)
if blocksAndChildrenErr != nil {
allErrors.Merge(blocksAndChildrenErr)
@@ -89,15 +91,75 @@ func (pt *Task) makeSnapshotFromPages(object *DataObject, allErrors *common.Conv
}
}
resp := pt.blockService.MapNotionBlocksToAnytype(object.request, notionBlocks, pt.p.ID)
+ pt.uploadFilesLocally(resp.Blocks)
snapshot := pt.provideSnapshot(resp.Blocks, details, relationLinks)
- return snapshot, subObjectsSnapshots
+ return snapshot, relationsAndOptionsSnapshots
+}
+
+func (pt *Task) uploadFilesLocally(blocks []*model.Block) {
+ var (
+ wg sync.WaitGroup
+ filesUploadTasks []func()
+ )
+ for _, block := range blocks {
+ if block.GetFile() != nil && block.GetFile().GetName() != "" {
+ task, stop := pt.uploadFileBlock(block, &wg)
+ if stop {
+ break
+ }
+ filesUploadTasks = append(filesUploadTasks, task)
+ }
+ if block.GetText() != nil && block.GetText().GetIconImage() != "" {
+ task, stop := pt.uploadIconImage(block, &wg)
+ if stop {
+ break
+ }
+ filesUploadTasks = append(filesUploadTasks, task)
+ }
+ }
+ for _, task := range filesUploadTasks {
+ go task()
+ }
+ wg.Wait()
+}
+
+func (pt *Task) uploadFileBlock(block *model.Block, wg *sync.WaitGroup) (func(), bool) {
+ file, stop := pt.fileDownloader.QueueFileForDownload(block.GetFile().GetName())
+ if stop {
+ return nil, true
+ }
+ wg.Add(1)
+ return func() {
+ defer wg.Done()
+ localPath, err := file.WaitForLocalPath()
+ if err != nil {
+ log.Errorf("failed to download file: %s", err)
+ }
+ block.GetFile().Name = localPath
+ }, false
+}
+
+func (pt *Task) uploadIconImage(block *model.Block, wg *sync.WaitGroup) (func(), bool) {
+ file, stop := pt.fileDownloader.QueueFileForDownload(block.GetText().GetIconImage())
+ if stop {
+ return nil, true
+ }
+ wg.Add(1)
+ return func() {
+ defer wg.Done()
+ localPath, err := file.WaitForLocalPath()
+ if err != nil {
+ log.Errorf("failed to download file: %s", err)
+ }
+ block.GetText().IconImage = localPath
+ }, false
}
func (pt *Task) provideDetails(object *DataObject) (map[string]*types.Value, []*model.SmartBlockSnapshotBase, []*model.RelationLink) {
details, relationLinks := pt.prepareDetails()
relationsSnapshots, notionRelationLinks := pt.handlePageProperties(object, details)
relationLinks = append(relationLinks, notionRelationLinks...)
- addCoverDetail(pt.p, details)
+ api.UploadFileRelationLocally(pt.fileDownloader, details, relationLinks)
return details, relationsSnapshots, relationLinks
}
@@ -120,6 +182,14 @@ func (pt *Task) prepareDetails() (map[string]*types.Value, []*model.RelationLink
relationLinks = append(relationLinks, iconRelationLink)
}
}
+ if pt.p.Cover != nil {
+ api.SetCover(details, pt.p.Cover)
+ relationLinks = append(relationLinks, &model.RelationLink{
+ Key: bundle.RelationKeyCoverId.String(),
+ Format: model.RelationFormat_file,
+ })
+ }
+
details[bundle.RelationKeyIsArchived.String()] = pbtypes.Bool(pt.p.Archived)
details[bundle.RelationKeyIsFavorite.String()] = pbtypes.Bool(false)
createdTime := common.ConvertStringToTime(pt.p.CreatedTime)
@@ -167,22 +237,11 @@ func (pt *Task) makeRelationFromProperty(relation *property.PropertiesStore,
hasTag, tagExist bool) ([]*model.SmartBlockSnapshotBase, *model.RelationLink, error) {
pt.relationCreateMutex.Lock()
defer pt.relationCreateMutex.Unlock()
- var (
- snapshot *model.SmartBlockSnapshotBase
- key string
- subObjectsSnapshots []*model.SmartBlockSnapshotBase
- )
- if snapshot = relation.ReadRelationsMap(propObject.GetID()); snapshot == nil {
- snapshot, key = pt.getRelationSnapshot(name, propObject, hasTag, tagExist)
- if snapshot != nil {
- relation.WriteToRelationsMap(propObject.GetID(), snapshot)
- subObjectsSnapshots = append(subObjectsSnapshots, snapshot)
- }
- }
+ snapshot, key, relationsAndOptionsSnapshots := pt.provideRelationSnapshot(relation, propObject, name, hasTag, tagExist)
if key == "" {
key = pbtypes.GetString(snapshot.GetDetails(), bundle.RelationKeyRelationKey.String())
}
- subObjectsSnapshots = append(subObjectsSnapshots, pt.provideRelationOptionsSnapshots(key, propObject, relation)...)
+ relationsAndOptionsSnapshots = append(relationsAndOptionsSnapshots, pt.provideRelationOptionsSnapshots(key, propObject, relation)...)
if err := pt.setDetails(propObject, key, details); err != nil {
return nil, nil, err
}
@@ -190,10 +249,34 @@ func (pt *Task) makeRelationFromProperty(relation *property.PropertiesStore,
Key: key,
Format: propObject.GetFormat(),
}
- return subObjectsSnapshots, relationLink, nil
+ return relationsAndOptionsSnapshots, relationLink, nil
}
-func (pt *Task) getRelationSnapshot(name string, propObject property.Object, hasTag bool, tagExist bool) (*model.SmartBlockSnapshotBase, string) {
+func (pt *Task) provideRelationSnapshot(
+ relation *property.PropertiesStore,
+ propObject property.Object,
+ name string,
+ hasTag, tagExist bool,
+) (*model.SmartBlockSnapshotBase, string, []*model.SmartBlockSnapshotBase) {
+ var (
+ key string
+ relationsAndOptionsSnapshots []*model.SmartBlockSnapshotBase
+ )
+ snapshot := relation.GetSnapshotByNameAndFormat(name, int64(propObject.GetFormat()))
+ if snapshot == nil {
+ if snapshot = relation.ReadRelationsMap(propObject.GetID()); snapshot == nil {
+ snapshot, key = pt.getRelationSnapshot(name, propObject, hasTag, tagExist)
+ if snapshot != nil {
+ relation.WriteToRelationsMap(propObject.GetID(), snapshot)
+ relation.AddSnapshotByNameAndFormat(name, int64(propObject.GetFormat()), snapshot)
+ relationsAndOptionsSnapshots = append(relationsAndOptionsSnapshots, snapshot)
+ }
+ }
+ }
+ return snapshot, key, relationsAndOptionsSnapshots
+}
+
+func (pt *Task) getRelationSnapshot(name string, propObject property.Object, hasTag, tagExist bool) (*model.SmartBlockSnapshotBase, string) {
key := bson.NewObjectId().Hex()
if propObject.GetPropertyType() == property.PropertyConfigTypeTitle {
return nil, bundle.RelationKeyName.String()
@@ -213,11 +296,11 @@ func (pt *Task) getRelationSnapshot(name string, propObject property.Object, has
func (pt *Task) provideRelationOptionsSnapshots(id string, propObject property.Object, relation *property.PropertiesStore) []*model.SmartBlockSnapshotBase {
pt.relationOptCreateMutex.Lock()
defer pt.relationOptCreateMutex.Unlock()
- subObjectsSnapshots := make([]*model.SmartBlockSnapshotBase, 0)
+ relationsAndOptionsSnapshots := make([]*model.SmartBlockSnapshotBase, 0)
if isPropertyTag(propObject) {
- subObjectsSnapshots = append(subObjectsSnapshots, getRelationOptions(propObject, id, relation)...)
+ relationsAndOptionsSnapshots = append(relationsAndOptionsSnapshots, getRelationOptions(propObject, id, relation)...)
}
- return subObjectsSnapshots
+ return relationsAndOptionsSnapshots
}
func (pt *Task) getRelationDetails(key string, name string, propObject property.Object) *types.Struct {
@@ -261,6 +344,9 @@ func (pt *Task) handlePagination(ctx context.Context, apiKey string, propObject
properties []interface{}
err error
)
+ if isEmpty(propObject) {
+ return nil
+ }
if properties, err =
pt.propertyService.GetPropertyObject(
ctx,
@@ -276,6 +362,14 @@ func (pt *Task) handlePagination(ctx context.Context, apiKey string, propObject
return nil
}
+func isEmpty(object property.Object) bool {
+ paginatedObject, ok := object.(property.PaginatedObject)
+ if !ok {
+ return false
+ }
+ return paginatedObject.IsEmpty()
+}
+
func (pt *Task) handlePaginatedProperties(propObject property.Object, properties []interface{}) {
switch pr := propObject.(type) {
case *property.RelationItem:
@@ -330,20 +424,6 @@ func handleRelationItem(properties []interface{}, pr *property.RelationItem) {
pr.Relation = relationItems
}
-func addCoverDetail(p Page, details map[string]*types.Value) {
- if p.Cover != nil {
- if p.Cover.Type == api.External {
- details[bundle.RelationKeyCoverId.String()] = pbtypes.String(p.Cover.External.URL)
- details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
- }
-
- if p.Cover.Type == api.File {
- details[bundle.RelationKeyCoverId.String()] = pbtypes.String(p.Cover.File.URL)
- details[bundle.RelationKeyCoverType.String()] = pbtypes.Float64(1)
- }
- }
-}
-
func isPropertyPaginated(pr property.Object) bool {
if r, ok := pr.(*property.RelationItem); ok && r.HasMore {
return true
diff --git a/core/block/import/notion/api/property/propertyitem.go b/core/block/import/notion/api/property/propertyitem.go
index 9b7e99a01..d9b57ed28 100644
--- a/core/block/import/notion/api/property/propertyitem.go
+++ b/core/block/import/notion/api/property/propertyitem.go
@@ -33,6 +33,11 @@ type Object interface {
FormatGetter
}
+type PaginatedObject interface {
+ Object
+ IsEmpty() bool
+}
+
const (
PropertyConfigTypeTitle ConfigType = "title"
PropertyConfigTypeRichText ConfigType = "rich_text"
@@ -103,6 +108,10 @@ type RichTextItem struct {
RichText []*api.RichText `json:"rich_text"`
}
+func (rt *RichTextItem) IsEmpty() bool {
+ return len(rt.RichText) == 0
+}
+
func (rt *RichTextItem) SetDetail(key string, details map[string]*types.Value) {
var richText strings.Builder
for i, r := range rt.RichText {
@@ -322,6 +331,10 @@ type PeopleItem struct {
People []*api.User `json:"people"`
}
+func (p *PeopleItem) IsEmpty() bool {
+ return len(p.People) == 0
+}
+
func (p *PeopleItem) SetDetail(key string, details map[string]*types.Value) {
peopleList := make([]string, 0, len(p.People))
for _, people := range p.People {
diff --git a/core/block/import/notion/api/property/relationsmaps.go b/core/block/import/notion/api/property/relationsmaps.go
index 8ebd7e777..a9c8cb30a 100644
--- a/core/block/import/notion/api/property/relationsmaps.go
+++ b/core/block/import/notion/api/property/relationsmaps.go
@@ -1,10 +1,44 @@
package property
-import "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+import (
+ "fmt"
+
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+type UniqueKey string
+
+func MakeUniqueKey(name string, format int64) UniqueKey {
+ return UniqueKey(fmt.Sprintf("%s_%d", name, format))
+}
type PropertiesStore struct {
- PropertyIdsToSnapshots map[string]*model.SmartBlockSnapshotBase
- RelationsIdsToOptions map[string][]*model.SmartBlockSnapshotBase
+ PropertyIdsToSnapshots map[string]*model.SmartBlockSnapshotBase
+ RelationsIdsToOptions map[string][]*model.SmartBlockSnapshotBase
+ uniquePropertyToSnapshots map[UniqueKey]*model.SmartBlockSnapshotBase
+}
+
+func NewPropertiesStore() *PropertiesStore {
+ return &PropertiesStore{
+ PropertyIdsToSnapshots: make(map[string]*model.SmartBlockSnapshotBase, 0),
+ RelationsIdsToOptions: make(map[string][]*model.SmartBlockSnapshotBase, 0),
+ uniquePropertyToSnapshots: make(map[UniqueKey]*model.SmartBlockSnapshotBase, 0),
+ }
+}
+
+func (m *PropertiesStore) GetSnapshotByNameAndFormat(name string, format int64) *model.SmartBlockSnapshotBase {
+ uk := MakeUniqueKey(name, format)
+ if snapshot, ok := m.uniquePropertyToSnapshots[uk]; ok {
+ return snapshot
+ }
+ return nil
+}
+
+func (m *PropertiesStore) AddSnapshotByNameAndFormat(name string, format int64, sn *model.SmartBlockSnapshotBase) {
+ uk := MakeUniqueKey(name, format)
+ if _, ok := m.uniquePropertyToSnapshots[uk]; !ok {
+ m.uniquePropertyToSnapshots[uk] = sn
+ }
}
func (m *PropertiesStore) ReadRelationsMap(key string) *model.SmartBlockSnapshotBase {
diff --git a/core/block/import/notion/api/search/search_test.go b/core/block/import/notion/api/search/search_test.go
index 28d597e35..13943e029 100644
--- a/core/block/import/notion/api/search/search_test.go
+++ b/core/block/import/notion/api/search/search_test.go
@@ -7,10 +7,12 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/mock"
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/client"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/database"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files/mock_files"
"github.com/anyproto/anytype-heart/core/block/process"
"github.com/anyproto/anytype-heart/pb"
)
@@ -32,10 +34,13 @@ func Test_GetDatabaseSuccess(t *testing.T) {
assert.Nil(t, err)
ds := database.New(nil)
- databases, _, ce := ds.GetDatabase(context.Background(), pb.RpcObjectImportRequest_ALL_OR_NOTHING, db, process.NewProgress(pb.ModelProcess_Import), api.NewNotionImportContext())
+ progress := process.NewProgress(pb.ModelProcess_Import)
+ downloader := mock_files.NewMockDownloader(t)
+ downloader.EXPECT().QueueFileForDownload(mock.Anything).Return(nil, true)
+ databases, _, ce := ds.GetDatabase(context.Background(), pb.RpcObjectImportRequest_ALL_OR_NOTHING, db, progress, api.NewNotionImportContext(), downloader)
assert.NotNil(t, databases)
- assert.Len(t, databases.Snapshots, 16) //1 database + 15 properties (name doesn't count)
+ assert.Len(t, databases.Snapshots, 16) // 1 database + 15 properties (name doesn't count)
assert.Nil(t, ce)
}
diff --git a/core/block/import/notion/converter.go b/core/block/import/notion/converter.go
index 31cb3006d..92ba43b0a 100644
--- a/core/block/import/notion/converter.go
+++ b/core/block/import/notion/converter.go
@@ -11,6 +11,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/import/notion/api"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/client"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/database"
+ "github.com/anyproto/anytype-heart/core/block/import/notion/api/files"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/page"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/property"
"github.com/anyproto/anytype-heart/core/block/import/notion/api/search"
@@ -78,8 +79,15 @@ func (n *Notion) GetSnapshots(ctx context.Context, req *pb.RpcObjectImportReques
return nil, common.NewFromError(common.ErrNoObjectsToImport, req.Mode)
}
+ fileDownloader := files.NewFileDownloader(progress)
+ err = fileDownloader.Init(ctx)
+ if err != nil {
+ return nil, common.NewFromError(err, req.Mode)
+ }
+ go fileDownloader.ProcessDownloadedFiles()
+ defer fileDownloader.StopDownload()
notionImportContext := api.NewNotionImportContext()
- dbSnapshots, relations, dbErr := n.dbService.GetDatabase(context.TODO(), req.Mode, db, progress, notionImportContext)
+ dbSnapshots, relations, dbErr := n.dbService.GetDatabase(ctx, req.Mode, db, progress, notionImportContext, fileDownloader)
if dbErr != nil {
log.With("error", dbErr).Warnf("import from notion db failed")
ce.Merge(dbErr)
@@ -88,7 +96,7 @@ func (n *Notion) GetSnapshots(ctx context.Context, req *pb.RpcObjectImportReques
return nil, ce
}
- pgSnapshots, pgErr := n.pgService.GetPages(ctx, apiKey, req.Mode, pages, notionImportContext, relations, progress)
+ pgSnapshots, pgErr := n.pgService.GetPages(ctx, apiKey, req.Mode, pages, notionImportContext, relations, progress, fileDownloader)
if pgErr != nil {
log.With("error", pgErr).Warnf("import from notion pages failed")
ce.Merge(pgErr)
diff --git a/core/block/service.go b/core/block/service.go
index 550a9af1a..2a1cd0043 100644
--- a/core/block/service.go
+++ b/core/block/service.go
@@ -36,7 +36,6 @@ import (
"github.com/anyproto/anytype-heart/core/files/fileobject"
"github.com/anyproto/anytype-heart/core/files/fileuploader"
"github.com/anyproto/anytype-heart/core/session"
- "github.com/anyproto/anytype-heart/core/syncstatus"
"github.com/anyproto/anytype-heart/metrics"
"github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
@@ -89,7 +88,6 @@ func New() *Service {
}
type Service struct {
- syncStatus syncstatus.Service
eventSender event.Sender
process process.Service
objectStore objectstore.ObjectStore
@@ -130,7 +128,6 @@ func (s *Service) Name() string {
}
func (s *Service) Init(a *app.App) (err error) {
- s.syncStatus = a.MustComponent(syncstatus.CName).(syncstatus.Service)
s.process = a.MustComponent(process.CName).(process.Service)
s.eventSender = a.MustComponent(event.CName).(event.Sender)
s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore)
@@ -195,14 +192,6 @@ func (s *Service) OpenBlock(sctx session.Context, id domain.FullID, includeRelat
}
afterShowTime := time.Now()
- _, err = s.syncStatus.Watch(id.SpaceID, id.ObjectID, nil)
-
- if err == nil {
- ob.AddHook(func(_ smartblock.ApplyInfo) error {
- s.syncStatus.Unwatch(id.SpaceID, id.ObjectID)
- return nil
- }, smartblock.HookOnClose)
- }
if err != nil && !errors.Is(err, treestorage.ErrUnknownTreeId) {
log.Errorf("failed to watch status for object %s: %s", id, err)
}
diff --git a/core/chats.go b/core/chats.go
new file mode 100644
index 000000000..994a57bdc
--- /dev/null
+++ b/core/chats.go
@@ -0,0 +1,99 @@
+package core
+
+import (
+ "context"
+
+ "github.com/anyproto/anytype-heart/pb"
+)
+
+// TODO: chats are temporary done as dummy API for clients to merge the API
+
+func (mw *Middleware) ObjectChatAdd(ctx context.Context, request *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse {
+ // TODO implement me
+ return &pb.RpcObjectChatAddResponse{
+ Error: &pb.RpcObjectChatAddResponseError{
+ Code: pb.RpcObjectChatAddResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatAddMessage(ctx context.Context, request *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse {
+ // TODO implement me
+ return &pb.RpcChatAddMessageResponse{
+ Error: &pb.RpcChatAddMessageResponseError{
+ Code: pb.RpcChatAddMessageResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatEditMessageContent(ctx context.Context, request *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse {
+ // TODO implement me
+ return &pb.RpcChatEditMessageContentResponse{
+ Error: &pb.RpcChatEditMessageContentResponseError{
+ Code: pb.RpcChatEditMessageContentResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatToggleMessageReaction(ctx context.Context, request *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse {
+ // TODO implement me
+ return &pb.RpcChatToggleMessageReactionResponse{
+ Error: &pb.RpcChatToggleMessageReactionResponseError{
+ Code: pb.RpcChatToggleMessageReactionResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatDeleteMessage(ctx context.Context, request *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse {
+ // TODO implement me
+ return &pb.RpcChatDeleteMessageResponse{
+ Error: &pb.RpcChatDeleteMessageResponseError{
+ Code: pb.RpcChatDeleteMessageResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatGetMessages(ctx context.Context, request *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse {
+ // TODO implement me
+ return &pb.RpcChatGetMessagesResponse{
+ Error: &pb.RpcChatGetMessagesResponseError{
+ Code: pb.RpcChatGetMessagesResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatGetMessagesByIds(ctx context.Context, request *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse {
+ // TODO implement me
+ return &pb.RpcChatGetMessagesByIdsResponse{
+ Error: &pb.RpcChatGetMessagesByIdsResponseError{
+ Code: pb.RpcChatGetMessagesByIdsResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatSubscribeLastMessages(ctx context.Context, request *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse {
+ // TODO implement me
+ return &pb.RpcChatSubscribeLastMessagesResponse{
+ Error: &pb.RpcChatSubscribeLastMessagesResponseError{
+ Code: pb.RpcChatSubscribeLastMessagesResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
+
+func (mw *Middleware) ChatUnsubscribe(ctx context.Context, request *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse {
+ // TODO implement me
+ return &pb.RpcChatUnsubscribeResponse{
+ Error: &pb.RpcChatUnsubscribeResponseError{
+ Code: pb.RpcChatUnsubscribeResponseError_UNKNOWN_ERROR,
+ Description: "not implemented",
+ },
+ }
+}
diff --git a/core/debug.go b/core/debug.go
index 1e73a752f..d1ba42908 100644
--- a/core/debug.go
+++ b/core/debug.go
@@ -224,7 +224,7 @@ func (mw *Middleware) DebugRunProfiler(cctx context.Context, req *pb.RpcDebugRun
}
func (mw *Middleware) DebugAccountSelectTrace(cctx context.Context, req *pb.RpcDebugAccountSelectTraceRequest) *pb.RpcDebugAccountSelectTraceResponse {
- path, err := mw.applicationService.SaveLoginTrace()
+ path, err := mw.applicationService.SaveLoginTrace(req.Dir)
if err != nil {
return &pb.RpcDebugAccountSelectTraceResponse{
Error: &pb.RpcDebugAccountSelectTraceResponseError{
diff --git a/core/device/mock_device/mock_NetworkState.go b/core/device/mock_device/mock_NetworkState.go
new file mode 100644
index 000000000..ba6c34e59
--- /dev/null
+++ b/core/device/mock_device/mock_NetworkState.go
@@ -0,0 +1,240 @@
+// Code generated by mockery. DO NOT EDIT.
+
+package mock_device
+
+import (
+ app "github.com/anyproto/any-sync/app"
+
+ mock "github.com/stretchr/testify/mock"
+
+ model "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+// MockNetworkState is an autogenerated mock type for the NetworkState type
+type MockNetworkState struct {
+ mock.Mock
+}
+
+type MockNetworkState_Expecter struct {
+ mock *mock.Mock
+}
+
+func (_m *MockNetworkState) EXPECT() *MockNetworkState_Expecter {
+ return &MockNetworkState_Expecter{mock: &_m.Mock}
+}
+
+// GetNetworkState provides a mock function with given fields:
+func (_m *MockNetworkState) GetNetworkState() model.DeviceNetworkType {
+ ret := _m.Called()
+
+ if len(ret) == 0 {
+ panic("no return value specified for GetNetworkState")
+ }
+
+ var r0 model.DeviceNetworkType
+ if rf, ok := ret.Get(0).(func() model.DeviceNetworkType); ok {
+ r0 = rf()
+ } else {
+ r0 = ret.Get(0).(model.DeviceNetworkType)
+ }
+
+ return r0
+}
+
+// MockNetworkState_GetNetworkState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetNetworkState'
+type MockNetworkState_GetNetworkState_Call struct {
+ *mock.Call
+}
+
+// GetNetworkState is a helper method to define mock.On call
+func (_e *MockNetworkState_Expecter) GetNetworkState() *MockNetworkState_GetNetworkState_Call {
+ return &MockNetworkState_GetNetworkState_Call{Call: _e.mock.On("GetNetworkState")}
+}
+
+func (_c *MockNetworkState_GetNetworkState_Call) Run(run func()) *MockNetworkState_GetNetworkState_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run()
+ })
+ return _c
+}
+
+func (_c *MockNetworkState_GetNetworkState_Call) Return(_a0 model.DeviceNetworkType) *MockNetworkState_GetNetworkState_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockNetworkState_GetNetworkState_Call) RunAndReturn(run func() model.DeviceNetworkType) *MockNetworkState_GetNetworkState_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// Init provides a mock function with given fields: a
+func (_m *MockNetworkState) Init(a *app.App) error {
+ ret := _m.Called(a)
+
+ if len(ret) == 0 {
+ panic("no return value specified for Init")
+ }
+
+ var r0 error
+ if rf, ok := ret.Get(0).(func(*app.App) error); ok {
+ r0 = rf(a)
+ } else {
+ r0 = ret.Error(0)
+ }
+
+ return r0
+}
+
+// MockNetworkState_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init'
+type MockNetworkState_Init_Call struct {
+ *mock.Call
+}
+
+// Init is a helper method to define mock.On call
+// - a *app.App
+func (_e *MockNetworkState_Expecter) Init(a interface{}) *MockNetworkState_Init_Call {
+ return &MockNetworkState_Init_Call{Call: _e.mock.On("Init", a)}
+}
+
+func (_c *MockNetworkState_Init_Call) Run(run func(a *app.App)) *MockNetworkState_Init_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(*app.App))
+ })
+ return _c
+}
+
+func (_c *MockNetworkState_Init_Call) Return(err error) *MockNetworkState_Init_Call {
+ _c.Call.Return(err)
+ return _c
+}
+
+func (_c *MockNetworkState_Init_Call) RunAndReturn(run func(*app.App) error) *MockNetworkState_Init_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// Name provides a mock function with given fields:
+func (_m *MockNetworkState) Name() string {
+ ret := _m.Called()
+
+ if len(ret) == 0 {
+ panic("no return value specified for Name")
+ }
+
+ var r0 string
+ if rf, ok := ret.Get(0).(func() string); ok {
+ r0 = rf()
+ } else {
+ r0 = ret.Get(0).(string)
+ }
+
+ return r0
+}
+
+// MockNetworkState_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name'
+type MockNetworkState_Name_Call struct {
+ *mock.Call
+}
+
+// Name is a helper method to define mock.On call
+func (_e *MockNetworkState_Expecter) Name() *MockNetworkState_Name_Call {
+ return &MockNetworkState_Name_Call{Call: _e.mock.On("Name")}
+}
+
+func (_c *MockNetworkState_Name_Call) Run(run func()) *MockNetworkState_Name_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run()
+ })
+ return _c
+}
+
+func (_c *MockNetworkState_Name_Call) Return(name string) *MockNetworkState_Name_Call {
+ _c.Call.Return(name)
+ return _c
+}
+
+func (_c *MockNetworkState_Name_Call) RunAndReturn(run func() string) *MockNetworkState_Name_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// RegisterHook provides a mock function with given fields: hook
+func (_m *MockNetworkState) RegisterHook(hook func(model.DeviceNetworkType)) {
+ _m.Called(hook)
+}
+
+// MockNetworkState_RegisterHook_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterHook'
+type MockNetworkState_RegisterHook_Call struct {
+ *mock.Call
+}
+
+// RegisterHook is a helper method to define mock.On call
+// - hook func(model.DeviceNetworkType)
+func (_e *MockNetworkState_Expecter) RegisterHook(hook interface{}) *MockNetworkState_RegisterHook_Call {
+ return &MockNetworkState_RegisterHook_Call{Call: _e.mock.On("RegisterHook", hook)}
+}
+
+func (_c *MockNetworkState_RegisterHook_Call) Run(run func(hook func(model.DeviceNetworkType))) *MockNetworkState_RegisterHook_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(func(model.DeviceNetworkType)))
+ })
+ return _c
+}
+
+func (_c *MockNetworkState_RegisterHook_Call) Return() *MockNetworkState_RegisterHook_Call {
+ _c.Call.Return()
+ return _c
+}
+
+func (_c *MockNetworkState_RegisterHook_Call) RunAndReturn(run func(func(model.DeviceNetworkType))) *MockNetworkState_RegisterHook_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// SetNetworkState provides a mock function with given fields: networkState
+func (_m *MockNetworkState) SetNetworkState(networkState model.DeviceNetworkType) {
+ _m.Called(networkState)
+}
+
+// MockNetworkState_SetNetworkState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetNetworkState'
+type MockNetworkState_SetNetworkState_Call struct {
+ *mock.Call
+}
+
+// SetNetworkState is a helper method to define mock.On call
+// - networkState model.DeviceNetworkType
+func (_e *MockNetworkState_Expecter) SetNetworkState(networkState interface{}) *MockNetworkState_SetNetworkState_Call {
+ return &MockNetworkState_SetNetworkState_Call{Call: _e.mock.On("SetNetworkState", networkState)}
+}
+
+func (_c *MockNetworkState_SetNetworkState_Call) Run(run func(networkState model.DeviceNetworkType)) *MockNetworkState_SetNetworkState_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(model.DeviceNetworkType))
+ })
+ return _c
+}
+
+func (_c *MockNetworkState_SetNetworkState_Call) Return() *MockNetworkState_SetNetworkState_Call {
+ _c.Call.Return()
+ return _c
+}
+
+func (_c *MockNetworkState_SetNetworkState_Call) RunAndReturn(run func(model.DeviceNetworkType)) *MockNetworkState_SetNetworkState_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// NewMockNetworkState creates a new instance of MockNetworkState. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewMockNetworkState(t interface {
+ mock.TestingT
+ Cleanup(func())
+}) *MockNetworkState {
+ mock := &MockNetworkState{}
+ mock.Mock.Test(t)
+
+ t.Cleanup(func() { mock.AssertExpectations(t) })
+
+ return mock
+}
diff --git a/core/device/networkstate.go b/core/device/networkstate.go
index 52c06dc5f..ef31f0282 100644
--- a/core/device/networkstate.go
+++ b/core/device/networkstate.go
@@ -10,20 +10,18 @@ import (
const CName = "networkState"
-type OnNetworkUpdateHook func(network model.DeviceNetworkType)
-
type NetworkState interface {
app.Component
GetNetworkState() model.DeviceNetworkType
SetNetworkState(networkState model.DeviceNetworkType)
- RegisterHook(hook OnNetworkUpdateHook)
+ RegisterHook(hook func(network model.DeviceNetworkType))
}
type networkState struct {
networkState model.DeviceNetworkType
networkMu sync.Mutex
- onNetworkUpdateHooks []OnNetworkUpdateHook
+ onNetworkUpdateHooks []func(network model.DeviceNetworkType)
hookMu sync.Mutex
}
@@ -47,12 +45,17 @@ func (n *networkState) GetNetworkState() model.DeviceNetworkType {
func (n *networkState) SetNetworkState(networkState model.DeviceNetworkType) {
n.networkMu.Lock()
- n.networkState = networkState
defer n.networkMu.Unlock()
+
+ if n.networkState == networkState {
+ // to avoid unnecessary hook calls
+ return
+ }
+ n.networkState = networkState
n.runOnNetworkUpdateHook()
}
-func (n *networkState) RegisterHook(hook OnNetworkUpdateHook) {
+func (n *networkState) RegisterHook(hook func(network model.DeviceNetworkType)) {
n.hookMu.Lock()
defer n.hookMu.Unlock()
n.onNetworkUpdateHooks = append(n.onNetworkUpdateHooks, hook)
diff --git a/core/files/fileuploader/uploader.go b/core/files/fileuploader/uploader.go
index 36c3dba65..7fae11eb2 100644
--- a/core/files/fileuploader/uploader.go
+++ b/core/files/fileuploader/uploader.go
@@ -269,7 +269,6 @@ func (u *uploader) SetUrl(url string) Uploader {
// setting timeout to avoid locking for a long time
cl := http.DefaultClient
- cl.Timeout = time.Second * 20
resp, err := cl.Do(req)
if err != nil {
diff --git a/core/peerstatus/mock_peerstatus/mock_LocalDiscoveryHook.go b/core/peerstatus/mock_peerstatus/mock_LocalDiscoveryHook.go
index 9452e1f63..0783aaf7d 100644
--- a/core/peerstatus/mock_peerstatus/mock_LocalDiscoveryHook.go
+++ b/core/peerstatus/mock_peerstatus/mock_LocalDiscoveryHook.go
@@ -4,6 +4,7 @@ package mock_peerstatus
import (
app "github.com/anyproto/any-sync/app"
+ localdiscovery "github.com/anyproto/anytype-heart/space/spacecore/localdiscovery"
mock "github.com/stretchr/testify/mock"
)
@@ -111,68 +112,35 @@ func (_c *MockLocalDiscoveryHook_Name_Call) RunAndReturn(run func() string) *Moc
return _c
}
-// RegisterP2PNotPossible provides a mock function with given fields: hook
-func (_m *MockLocalDiscoveryHook) RegisterP2PNotPossible(hook func()) {
+// RegisterDiscoveryPossibilityHook provides a mock function with given fields: hook
+func (_m *MockLocalDiscoveryHook) RegisterDiscoveryPossibilityHook(hook func(localdiscovery.DiscoveryPossibility)) {
_m.Called(hook)
}
-// MockLocalDiscoveryHook_RegisterP2PNotPossible_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterP2PNotPossible'
-type MockLocalDiscoveryHook_RegisterP2PNotPossible_Call struct {
+// MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterDiscoveryPossibilityHook'
+type MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call struct {
*mock.Call
}
-// RegisterP2PNotPossible is a helper method to define mock.On call
-// - hook func()
-func (_e *MockLocalDiscoveryHook_Expecter) RegisterP2PNotPossible(hook interface{}) *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call {
- return &MockLocalDiscoveryHook_RegisterP2PNotPossible_Call{Call: _e.mock.On("RegisterP2PNotPossible", hook)}
+// RegisterDiscoveryPossibilityHook is a helper method to define mock.On call
+// - hook func(localdiscovery.DiscoveryPossibility)
+func (_e *MockLocalDiscoveryHook_Expecter) RegisterDiscoveryPossibilityHook(hook interface{}) *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call {
+ return &MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call{Call: _e.mock.On("RegisterDiscoveryPossibilityHook", hook)}
}
-func (_c *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call) Run(run func(hook func())) *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call {
+func (_c *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call) Run(run func(hook func(localdiscovery.DiscoveryPossibility))) *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call {
_c.Call.Run(func(args mock.Arguments) {
- run(args[0].(func()))
+ run(args[0].(func(localdiscovery.DiscoveryPossibility)))
})
return _c
}
-func (_c *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call) Return() *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call {
+func (_c *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call) Return() *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call {
_c.Call.Return()
return _c
}
-func (_c *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call) RunAndReturn(run func(func())) *MockLocalDiscoveryHook_RegisterP2PNotPossible_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// RegisterResetNotPossible provides a mock function with given fields: hook
-func (_m *MockLocalDiscoveryHook) RegisterResetNotPossible(hook func()) {
- _m.Called(hook)
-}
-
-// MockLocalDiscoveryHook_RegisterResetNotPossible_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RegisterResetNotPossible'
-type MockLocalDiscoveryHook_RegisterResetNotPossible_Call struct {
- *mock.Call
-}
-
-// RegisterResetNotPossible is a helper method to define mock.On call
-// - hook func()
-func (_e *MockLocalDiscoveryHook_Expecter) RegisterResetNotPossible(hook interface{}) *MockLocalDiscoveryHook_RegisterResetNotPossible_Call {
- return &MockLocalDiscoveryHook_RegisterResetNotPossible_Call{Call: _e.mock.On("RegisterResetNotPossible", hook)}
-}
-
-func (_c *MockLocalDiscoveryHook_RegisterResetNotPossible_Call) Run(run func(hook func())) *MockLocalDiscoveryHook_RegisterResetNotPossible_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(func()))
- })
- return _c
-}
-
-func (_c *MockLocalDiscoveryHook_RegisterResetNotPossible_Call) Return() *MockLocalDiscoveryHook_RegisterResetNotPossible_Call {
- _c.Call.Return()
- return _c
-}
-
-func (_c *MockLocalDiscoveryHook_RegisterResetNotPossible_Call) RunAndReturn(run func(func())) *MockLocalDiscoveryHook_RegisterResetNotPossible_Call {
+func (_c *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call) RunAndReturn(run func(func(localdiscovery.DiscoveryPossibility))) *MockLocalDiscoveryHook_RegisterDiscoveryPossibilityHook_Call {
_c.Call.Return(run)
return _c
}
diff --git a/core/peerstatus/status.go b/core/peerstatus/status.go
index 3ab5cfb3d..381cb3aee 100644
--- a/core/peerstatus/status.go
+++ b/core/peerstatus/status.go
@@ -13,6 +13,7 @@ import (
"github.com/anyproto/anytype-heart/core/session"
"github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/logging"
+ "github.com/anyproto/anytype-heart/space/spacecore/localdiscovery"
"github.com/anyproto/anytype-heart/space/spacecore/peerstore"
)
@@ -29,6 +30,7 @@ const (
Connected Status = 1
NotPossible Status = 2
NotConnected Status = 3
+ Restricted Status = 4
)
func (s Status) ToPb() pb.EventP2PStatusStatus {
@@ -39,6 +41,9 @@ func (s Status) ToPb() pb.EventP2PStatusStatus {
return pb.EventP2PStatus_NotConnected
case NotPossible:
return pb.EventP2PStatus_NotPossible
+ case Restricted:
+ return pb.EventP2PStatus_Restricted
+
}
// default status is NotConnected
return pb.EventP2PStatus_NotConnected
@@ -46,8 +51,7 @@ func (s Status) ToPb() pb.EventP2PStatusStatus {
type LocalDiscoveryHook interface {
app.Component
- RegisterP2PNotPossible(hook func())
- RegisterResetNotPossible(hook func())
+ RegisterDiscoveryPossibilityHook(hook func(state localdiscovery.DiscoveryPossibility))
}
type PeerToPeerStatus interface {
@@ -69,7 +73,7 @@ type p2pStatus struct {
peerStore peerstore.PeerStore
sync.Mutex
- p2pNotPossible bool // global flag means p2p is not possible because of network
+ p2pLastState localdiscovery.DiscoveryPossibility
workerFinished chan struct{}
refreshSpaceId chan string
@@ -92,8 +96,7 @@ func (p *p2pStatus) Init(a *app.App) (err error) {
p.peersConnectionPool = app.MustComponent[pool.Service](a)
localDiscoveryHook := app.MustComponent[LocalDiscoveryHook](a)
sessionHookRunner := app.MustComponent[session.HookRunner](a)
- localDiscoveryHook.RegisterP2PNotPossible(p.setNotPossibleStatus)
- localDiscoveryHook.RegisterResetNotPossible(p.resetNotPossibleStatus)
+ localDiscoveryHook.RegisterDiscoveryPossibilityHook(p.setNotPossibleStatus)
sessionHookRunner.RegisterHook(p.sendStatusForNewSession)
p.ctx, p.contextCancel = context.WithCancel(context.Background())
p.peerStore.AddObserver(func(peerId string, spaceIdsBefore, spaceIdsAfter []string, peerRemoved bool) {
@@ -136,24 +139,13 @@ func (p *p2pStatus) Name() (name string) {
return CName
}
-func (p *p2pStatus) setNotPossibleStatus() {
+func (p *p2pStatus) setNotPossibleStatus(state localdiscovery.DiscoveryPossibility) {
p.Lock()
- if p.p2pNotPossible {
+ if p.p2pLastState == state {
p.Unlock()
return
}
- p.p2pNotPossible = true
- p.Unlock()
- p.refreshAllSpaces()
-}
-
-func (p *p2pStatus) resetNotPossibleStatus() {
- p.Lock()
- if !p.p2pNotPossible {
- p.Unlock()
- return
- }
- p.p2pNotPossible = false
+ p.p2pLastState = state
p.Unlock()
p.refreshAllSpaces()
}
@@ -232,7 +224,7 @@ func (p *p2pStatus) processSpaceStatusUpdate(spaceId string) {
p.spaceIds[spaceId] = currentStatus
}
connectionCount := p.countOpenConnections(spaceId)
- newStatus := p.getResultStatus(p.p2pNotPossible, connectionCount)
+ newStatus := p.getResultStatus(p.p2pLastState, connectionCount)
if currentStatus.status != newStatus || currentStatus.connectionsCount != connectionCount {
p.sendEvent("", spaceId, newStatus.ToPb(), connectionCount)
@@ -241,15 +233,18 @@ func (p *p2pStatus) processSpaceStatusUpdate(spaceId string) {
}
}
-func (p *p2pStatus) getResultStatus(notPossible bool, connectionCount int64) Status {
- if notPossible && connectionCount == 0 {
- return NotPossible
- }
+func (p *p2pStatus) getResultStatus(state localdiscovery.DiscoveryPossibility, connectionCount int64) Status {
if connectionCount == 0 {
+ if state == localdiscovery.DiscoveryNoInterfaces {
+ return NotPossible
+ }
+ if state == localdiscovery.DiscoveryLocalNetworkRestricted {
+ return Restricted
+ }
return NotConnected
- } else {
- return Connected
}
+
+ return Connected
}
func (p *p2pStatus) countOpenConnections(spaceId string) int64 {
diff --git a/core/peerstatus/status_test.go b/core/peerstatus/status_test.go
index 51090e4be..2a9b2d2aa 100644
--- a/core/peerstatus/status_test.go
+++ b/core/peerstatus/status_test.go
@@ -18,6 +18,7 @@ import (
"github.com/anyproto/anytype-heart/core/peerstatus/mock_peerstatus"
"github.com/anyproto/anytype-heart/core/session"
"github.com/anyproto/anytype-heart/pb"
+ "github.com/anyproto/anytype-heart/space/spacecore/localdiscovery"
"github.com/anyproto/anytype-heart/space/spacecore/peerstore"
"github.com/anyproto/anytype-heart/tests/testutil"
)
@@ -61,7 +62,7 @@ func TestP2pStatus_SendNewStatus(t *testing.T) {
},
})
- f.setNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryNoInterfaces)
// then
@@ -82,7 +83,7 @@ func TestP2pStatus_SendNewStatus(t *testing.T) {
},
},
})
- f.resetNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryPossible)
err = f.refreshSpaces([]string{"spaceId"})
assert.Nil(t, err)
@@ -200,7 +201,7 @@ func TestP2pStatus_SendPeerUpdate(t *testing.T) {
},
},
})
- f.setNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryNoInterfaces)
checkStatus(t, "spaceId", f.p2pStatus, NotPossible)
f.sender.EXPECT().Broadcast(&pb.Event{
@@ -277,11 +278,11 @@ func TestP2pStatus_SendPeerUpdate(t *testing.T) {
},
},
})
- f.setNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryNoInterfaces)
checkStatus(t, "spaceId", f.p2pStatus, NotPossible)
// double set should not generate new event
- f.setNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryNoInterfaces)
checkStatus(t, "spaceId", f.p2pStatus, NotPossible)
f.sender.EXPECT().Broadcast(&pb.Event{
@@ -298,7 +299,7 @@ func TestP2pStatus_SendPeerUpdate(t *testing.T) {
},
})
- f.resetNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryPossible)
checkStatus(t, "spaceId", f.p2pStatus, NotConnected)
// then
f.Close(nil)
@@ -310,7 +311,7 @@ func TestP2pStatus_SendPeerUpdate(t *testing.T) {
// when
checkStatus(t, "spaceId", f.p2pStatus, NotConnected)
- f.resetNotPossibleStatus()
+ f.setNotPossibleStatus(localdiscovery.DiscoveryPossible)
checkStatus(t, "spaceId", f.p2pStatus, NotConnected)
// then
f.Close(nil)
@@ -401,8 +402,7 @@ func newFixture(t *testing.T, spaceId string, initialStatus pb.EventP2PStatusSta
pool.AddPeer(context.Background(), peer)
store := peerstore.New()
hookRegister := mock_peerstatus.NewMockLocalDiscoveryHook(t)
- hookRegister.EXPECT().RegisterP2PNotPossible(mock.Anything).Return()
- hookRegister.EXPECT().RegisterResetNotPossible(mock.Anything).Return()
+ hookRegister.EXPECT().RegisterDiscoveryPossibilityHook(mock.Anything).Return()
a := &app.App{}
ctx := context.Background()
diff --git a/core/syncstatus/filestatus.go b/core/syncstatus/filestatus.go
deleted file mode 100644
index e03e18d5b..000000000
--- a/core/syncstatus/filestatus.go
+++ /dev/null
@@ -1,46 +0,0 @@
-package syncstatus
-
-import (
- "context"
- "fmt"
-
- "github.com/anyproto/anytype-heart/core/block/cache"
- "github.com/anyproto/anytype-heart/core/block/editor/smartblock"
- "github.com/anyproto/anytype-heart/core/domain"
- "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus"
- "github.com/anyproto/anytype-heart/pkg/lib/bundle"
- "github.com/anyproto/anytype-heart/util/pbtypes"
-)
-
-func (s *service) onFileUploadStarted(objectId string, _ domain.FullFileId) error {
- return s.indexFileSyncStatus(objectId, filesyncstatus.Syncing)
-}
-
-func (s *service) onFileUploaded(objectId string, _ domain.FullFileId) error {
- return s.indexFileSyncStatus(objectId, filesyncstatus.Synced)
-}
-
-func (s *service) onFileLimited(objectId string, _ domain.FullFileId, bytesLeftPercentage float64) error {
- return s.indexFileSyncStatus(objectId, filesyncstatus.Limited)
-}
-
-func (s *service) indexFileSyncStatus(fileObjectId string, status filesyncstatus.Status) error {
- err := cache.Do(s.objectGetter, fileObjectId, func(sb smartblock.SmartBlock) (err error) {
- prevStatus := pbtypes.GetInt64(sb.Details(), bundle.RelationKeyFileBackupStatus.String())
- newStatus := int64(status)
- if prevStatus == newStatus {
- return nil
- }
- st := sb.NewState()
- st.SetDetailAndBundledRelation(bundle.RelationKeyFileBackupStatus, pbtypes.Int64(newStatus))
- return sb.Apply(st)
- })
- if err != nil {
- return fmt.Errorf("get object: %w", err)
- }
- err = s.updateReceiver.UpdateTree(context.Background(), fileObjectId, status.ToSyncStatus())
- if err != nil {
- return fmt.Errorf("update tree: %w", err)
- }
- return nil
-}
diff --git a/core/syncstatus/objectsyncstatus/mock_UpdateReceiver.go b/core/syncstatus/objectsyncstatus/mock_UpdateReceiver.go
deleted file mode 100644
index 4164f1325..000000000
--- a/core/syncstatus/objectsyncstatus/mock_UpdateReceiver.go
+++ /dev/null
@@ -1,116 +0,0 @@
-// Code generated by mockery. DO NOT EDIT.
-
-package objectsyncstatus
-
-import (
- context "context"
-
- mock "github.com/stretchr/testify/mock"
-)
-
-// MockUpdateReceiver is an autogenerated mock type for the UpdateReceiver type
-type MockUpdateReceiver struct {
- mock.Mock
-}
-
-type MockUpdateReceiver_Expecter struct {
- mock *mock.Mock
-}
-
-func (_m *MockUpdateReceiver) EXPECT() *MockUpdateReceiver_Expecter {
- return &MockUpdateReceiver_Expecter{mock: &_m.Mock}
-}
-
-// UpdateNodeStatus provides a mock function with given fields:
-func (_m *MockUpdateReceiver) UpdateNodeStatus() {
- _m.Called()
-}
-
-// MockUpdateReceiver_UpdateNodeStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateNodeStatus'
-type MockUpdateReceiver_UpdateNodeStatus_Call struct {
- *mock.Call
-}
-
-// UpdateNodeStatus is a helper method to define mock.On call
-func (_e *MockUpdateReceiver_Expecter) UpdateNodeStatus() *MockUpdateReceiver_UpdateNodeStatus_Call {
- return &MockUpdateReceiver_UpdateNodeStatus_Call{Call: _e.mock.On("UpdateNodeStatus")}
-}
-
-func (_c *MockUpdateReceiver_UpdateNodeStatus_Call) Run(run func()) *MockUpdateReceiver_UpdateNodeStatus_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run()
- })
- return _c
-}
-
-func (_c *MockUpdateReceiver_UpdateNodeStatus_Call) Return() *MockUpdateReceiver_UpdateNodeStatus_Call {
- _c.Call.Return()
- return _c
-}
-
-func (_c *MockUpdateReceiver_UpdateNodeStatus_Call) RunAndReturn(run func()) *MockUpdateReceiver_UpdateNodeStatus_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// UpdateTree provides a mock function with given fields: ctx, treeId, status
-func (_m *MockUpdateReceiver) UpdateTree(ctx context.Context, treeId string, status SyncStatus) error {
- ret := _m.Called(ctx, treeId, status)
-
- if len(ret) == 0 {
- panic("no return value specified for UpdateTree")
- }
-
- var r0 error
- if rf, ok := ret.Get(0).(func(context.Context, string, SyncStatus) error); ok {
- r0 = rf(ctx, treeId, status)
- } else {
- r0 = ret.Error(0)
- }
-
- return r0
-}
-
-// MockUpdateReceiver_UpdateTree_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateTree'
-type MockUpdateReceiver_UpdateTree_Call struct {
- *mock.Call
-}
-
-// UpdateTree is a helper method to define mock.On call
-// - ctx context.Context
-// - treeId string
-// - status SyncStatus
-func (_e *MockUpdateReceiver_Expecter) UpdateTree(ctx interface{}, treeId interface{}, status interface{}) *MockUpdateReceiver_UpdateTree_Call {
- return &MockUpdateReceiver_UpdateTree_Call{Call: _e.mock.On("UpdateTree", ctx, treeId, status)}
-}
-
-func (_c *MockUpdateReceiver_UpdateTree_Call) Run(run func(ctx context.Context, treeId string, status SyncStatus)) *MockUpdateReceiver_UpdateTree_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(string), args[2].(SyncStatus))
- })
- return _c
-}
-
-func (_c *MockUpdateReceiver_UpdateTree_Call) Return(err error) *MockUpdateReceiver_UpdateTree_Call {
- _c.Call.Return(err)
- return _c
-}
-
-func (_c *MockUpdateReceiver_UpdateTree_Call) RunAndReturn(run func(context.Context, string, SyncStatus) error) *MockUpdateReceiver_UpdateTree_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NewMockUpdateReceiver creates a new instance of MockUpdateReceiver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
-// The first argument is typically a *testing.T value.
-func NewMockUpdateReceiver(t interface {
- mock.TestingT
- Cleanup(func())
-}) *MockUpdateReceiver {
- mock := &MockUpdateReceiver{}
- mock.Mock.Test(t)
-
- t.Cleanup(func() { mock.AssertExpectations(t) })
-
- return mock
-}
diff --git a/core/syncstatus/objectsyncstatus/syncstatus.go b/core/syncstatus/objectsyncstatus/syncstatus.go
index 90c9f77a1..5c85c19e9 100644
--- a/core/syncstatus/objectsyncstatus/syncstatus.go
+++ b/core/syncstatus/objectsyncstatus/syncstatus.go
@@ -7,18 +7,15 @@ import (
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/logger"
- "github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
"github.com/anyproto/any-sync/commonspace/spacestate"
"github.com/anyproto/any-sync/commonspace/syncstatus"
- "github.com/anyproto/any-sync/commonspace/spacestorage"
"github.com/anyproto/any-sync/nodeconf"
"github.com/anyproto/any-sync/util/periodicsync"
"golang.org/x/exp/slices"
"github.com/anyproto/anytype-heart/core/anytype/config"
"github.com/anyproto/anytype-heart/core/domain"
- "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus"
"github.com/anyproto/anytype-heart/util/slice"
)
@@ -29,11 +26,6 @@ const (
var log = logger.NewNamed(syncstatus.CName)
-type UpdateReceiver interface {
- UpdateTree(ctx context.Context, treeId string, status SyncStatus) (err error)
- UpdateNodeStatus()
-}
-
type SyncStatus int
const (
@@ -55,16 +47,9 @@ type StatusUpdater interface {
RemoveAllExcept(senderId string, differentRemoteIds []string)
}
-type StatusWatcher interface {
- Watch(treeId string) (err error)
- Unwatch(treeId string)
- SetUpdateReceiver(updater UpdateReceiver)
-}
-
type StatusService interface {
app.ComponentRunnable
StatusUpdater
- StatusWatcher
}
type treeStatus struct {
@@ -79,21 +64,17 @@ type Updater interface {
type syncStatusService struct {
sync.Mutex
- periodicSync periodicsync.PeriodicSync
- updateReceiver UpdateReceiver
- storage spacestorage.SpaceStorage
+ periodicSync periodicsync.PeriodicSync
spaceId string
synced []string
tempSynced map[string]struct{}
treeHeads map[string]treeHeadsEntry
- watchers map[string]struct{}
updateIntervalSecs int
updateTimeout time.Duration
syncDetailsUpdater Updater
- nodeStatus nodestatus.NodeStatus
config *config.Config
nodeConfService nodeconf.Service
}
@@ -102,7 +83,6 @@ func NewSyncStatusService() StatusService {
return &syncStatusService{
tempSynced: map[string]struct{}{},
treeHeads: map[string]treeHeadsEntry{},
- watchers: map[string]struct{}{},
}
}
@@ -111,7 +91,6 @@ func (s *syncStatusService) Init(a *app.App) (err error) {
s.updateIntervalSecs = syncUpdateInterval
s.updateTimeout = syncTimeout
s.spaceId = sharedState.SpaceId
- s.storage = app.MustComponent[spacestorage.SpaceStorage](a)
s.periodicSync = periodicsync.NewPeriodicSync(
s.updateIntervalSecs,
s.updateTimeout,
@@ -120,7 +99,6 @@ func (s *syncStatusService) Init(a *app.App) (err error) {
s.syncDetailsUpdater = app.MustComponent[Updater](a)
s.config = app.MustComponent[*config.Config](a)
s.nodeConfService = app.MustComponent[nodeconf.Service](a)
- s.nodeStatus = app.MustComponent[nodestatus.NodeStatus](a)
return
}
@@ -128,13 +106,6 @@ func (s *syncStatusService) Name() (name string) {
return syncstatus.CName
}
-func (s *syncStatusService) SetUpdateReceiver(updater UpdateReceiver) {
- s.Lock()
- defer s.Unlock()
-
- s.updateReceiver = updater
-}
-
func (s *syncStatusService) Run(ctx context.Context) error {
s.periodicSync.Run()
return nil
@@ -186,36 +157,15 @@ func (s *syncStatusService) HeadsApply(senderId, treeId string, heads []string,
func (s *syncStatusService) update(ctx context.Context) (err error) {
s.Lock()
- var (
- updateDetailsStatuses = make([]treeStatus, 0, len(s.synced))
- updateThreadStatuses = make([]treeStatus, 0, len(s.watchers))
- )
- if s.updateReceiver == nil {
- s.Unlock()
- return
- }
+ var updateDetailsStatuses = make([]treeStatus, 0, len(s.synced))
for _, treeId := range s.synced {
updateDetailsStatuses = append(updateDetailsStatuses, treeStatus{treeId, StatusSynced})
}
- for treeId := range s.watchers {
- treeHeads, exists := s.treeHeads[treeId]
- if !exists {
- continue
- }
- updateThreadStatuses = append(updateThreadStatuses, treeStatus{treeId, treeHeads.syncStatus})
- }
s.synced = s.synced[:0]
s.Unlock()
- s.updateReceiver.UpdateNodeStatus()
for _, entry := range updateDetailsStatuses {
s.updateDetails(entry.treeId, mapStatus(entry.status))
}
- for _, entry := range updateThreadStatuses {
- err = s.updateReceiver.UpdateTree(ctx, entry.treeId, entry.status)
- if err != nil {
- return
- }
- }
return
}
@@ -238,36 +188,6 @@ func (s *syncStatusService) addTreeHead(treeId string, heads []string, status Sy
}
}
-func (s *syncStatusService) Watch(treeId string) (err error) {
- s.Lock()
- defer s.Unlock()
- _, ok := s.treeHeads[treeId]
- if !ok {
- var (
- st treestorage.TreeStorage
- heads []string
- )
- st, err = s.storage.TreeStorage(treeId)
- if err != nil {
- return
- }
- heads, err = st.Heads()
- if err != nil {
- return
- }
- s.addTreeHead(treeId, heads, StatusUnknown)
- }
-
- s.watchers[treeId] = struct{}{}
- return
-}
-
-func (s *syncStatusService) Unwatch(treeId string) {
- s.Lock()
- defer s.Unlock()
- delete(s.watchers, treeId)
-}
-
func (s *syncStatusService) RemoveAllExcept(senderId string, differentRemoteIds []string) {
// if sender is not a responsible node, then this should have no effect
if !s.isSenderResponsible(senderId) {
diff --git a/core/syncstatus/objectsyncstatus/syncstatus_test.go b/core/syncstatus/objectsyncstatus/syncstatus_test.go
index c570c7984..a1da2c8b6 100644
--- a/core/syncstatus/objectsyncstatus/syncstatus_test.go
+++ b/core/syncstatus/objectsyncstatus/syncstatus_test.go
@@ -5,8 +5,6 @@ import (
"testing"
"github.com/anyproto/any-sync/app"
- "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
- "github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
"github.com/anyproto/any-sync/commonspace/spacestate"
"github.com/anyproto/any-sync/commonspace/spacestorage/mock_spacestorage"
"github.com/anyproto/any-sync/nodeconf/mock_nodeconf"
@@ -90,50 +88,6 @@ func Test_UseCases(t *testing.T) {
})
}
-func TestSyncStatusService_Watch_Unwatch(t *testing.T) {
- t.Run("watch", func(t *testing.T) {
- s := newFixture(t, "spaceId")
-
- s.spaceStorage.EXPECT().TreeStorage("id").Return(treestorage.NewInMemoryTreeStorage(&treechangeproto.RawTreeChangeWithId{Id: "id"}, []string{"head3", "head2", "head1"}, nil))
- err := s.Watch("id")
- assert.Nil(t, err)
- assert.Contains(t, s.watchers, "id")
- assert.Equal(t, []string{"head1", "head2", "head3"}, s.treeHeads["id"].heads, "should be sorted")
- })
- t.Run("unwatch", func(t *testing.T) {
- s := newFixture(t, "spaceId")
-
- s.spaceStorage.EXPECT().TreeStorage("id").Return(treestorage.NewInMemoryTreeStorage(&treechangeproto.RawTreeChangeWithId{Id: "id"}, []string{"headId"}, nil))
- err := s.Watch("id")
- assert.Nil(t, err)
-
- s.Unwatch("id")
- assert.NotContains(t, s.watchers, "id")
- assert.Equal(t, []string{"headId"}, s.treeHeads["id"].heads)
- })
-}
-
-func TestSyncStatusService_update(t *testing.T) {
- t.Run("update: got updates on objects", func(t *testing.T) {
- s := newFixture(t, "spaceId")
- updateReceiver := NewMockUpdateReceiver(t)
- updateReceiver.EXPECT().UpdateNodeStatus().Return()
- updateReceiver.EXPECT().UpdateTree(context.Background(), "id", StatusSynced).Return(nil)
- updateReceiver.EXPECT().UpdateTree(context.Background(), "id2", StatusNotSynced).Return(nil)
- s.SetUpdateReceiver(updateReceiver)
-
- s.syncDetailsUpdater.EXPECT().UpdateDetails("id3", domain.ObjectSyncStatusSynced, "spaceId")
- s.synced = []string{"id3"}
- s.tempSynced["id4"] = struct{}{}
- s.treeHeads["id"] = treeHeadsEntry{syncStatus: StatusSynced, heads: []string{"headId"}}
- s.treeHeads["id2"] = treeHeadsEntry{syncStatus: StatusNotSynced, heads: []string{"headId"}}
- s.watchers["id"] = struct{}{}
- s.watchers["id2"] = struct{}{}
- err := s.update(context.Background())
- require.NoError(t, err)
- })
-}
-
func TestSyncStatusService_Run(t *testing.T) {
t.Run("successful run", func(t *testing.T) {
s := newFixture(t, "spaceId")
diff --git a/core/syncstatus/service.go b/core/syncstatus/service.go
index 5c86885d8..2e57c736e 100644
--- a/core/syncstatus/service.go
+++ b/core/syncstatus/service.go
@@ -2,63 +2,42 @@ package syncstatus
import (
"context"
- "sync"
+ "fmt"
"github.com/anyproto/any-sync/app"
- "github.com/anyproto/any-sync/commonspace"
- "github.com/anyproto/any-sync/nodeconf"
- "github.com/anyproto/anytype-heart/core/anytype/config"
"github.com/anyproto/anytype-heart/core/block/cache"
- "github.com/anyproto/anytype-heart/core/event"
+ "github.com/anyproto/anytype-heart/core/block/editor/smartblock"
+ "github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/core/filestorage/filesync"
- "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus"
- "github.com/anyproto/anytype-heart/core/syncstatus/objectsyncstatus"
- "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore"
+ "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus"
+ "github.com/anyproto/anytype-heart/pkg/lib/bundle"
+ "github.com/anyproto/anytype-heart/util/pbtypes"
)
const CName = "status"
type Service interface {
- Watch(spaceId string, id string, filesGetter func() []string) (new bool, err error)
- Unwatch(spaceID string, id string)
- RegisterSpace(space commonspace.Space, sw objectsyncstatus.StatusWatcher)
-
app.ComponentRunnable
}
var _ Service = (*service)(nil)
type service struct {
- updateReceiver *updateReceiver
fileSyncService filesync.FileSync
-
- objectWatchersLock sync.Mutex
- objectWatchers map[string]objectsyncstatus.StatusWatcher
-
- objectStore objectstore.ObjectStore
- objectGetter cache.ObjectGetter
+ objectGetter cache.ObjectGetter
}
func New() Service {
- return &service{
- objectWatchers: map[string]objectsyncstatus.StatusWatcher{},
- }
+ return &service{}
}
func (s *service) Init(a *app.App) (err error) {
s.fileSyncService = app.MustComponent[filesync.FileSync](a)
- s.objectStore = app.MustComponent[objectstore.ObjectStore](a)
s.objectGetter = app.MustComponent[cache.ObjectGetter](a)
s.fileSyncService.OnUploaded(s.onFileUploaded)
s.fileSyncService.OnUploadStarted(s.onFileUploadStarted)
s.fileSyncService.OnLimited(s.onFileLimited)
-
- nodeConfService := app.MustComponent[nodeconf.Service](a)
- cfg := app.MustComponent[*config.Config](a)
- eventSender := app.MustComponent[event.Sender](a)
- nodeStatus := app.MustComponent[nodestatus.NodeStatus](a)
- s.updateReceiver = newUpdateReceiver(nodeConfService, cfg, eventSender, s.objectStore, nodeStatus)
return nil
}
@@ -70,50 +49,35 @@ func (s *service) Name() string {
return CName
}
-func (s *service) RegisterSpace(space commonspace.Space, sw objectsyncstatus.StatusWatcher) {
- s.objectWatchersLock.Lock()
- defer s.objectWatchersLock.Unlock()
-
- sw.SetUpdateReceiver(s.updateReceiver)
- s.objectWatchers[space.Id()] = sw
- s.updateReceiver.setSpaceId(space.Id())
-}
-
-func (s *service) UnregisterSpace(space commonspace.Space) {
- s.objectWatchersLock.Lock()
- defer s.objectWatchersLock.Unlock()
-
- // TODO: [MR] now we can't set a nil update receiver, but maybe it doesn't matter that much
- // and we can just leave as it is, because no events will come through
- delete(s.objectWatchers, space.Id())
-}
-
-func (s *service) Unwatch(spaceID string, id string) {
- s.unwatch(spaceID, id)
-}
-
-func (s *service) Watch(spaceId string, id string, filesGetter func() []string) (new bool, err error) {
- s.objectWatchersLock.Lock()
- defer s.objectWatchersLock.Unlock()
- objectWatcher := s.objectWatchers[spaceId]
- if objectWatcher != nil {
- if err = objectWatcher.Watch(id); err != nil {
- return false, err
- }
- }
- return true, nil
-
-}
-
-func (s *service) unwatch(spaceID string, id string) {
- s.objectWatchersLock.Lock()
- defer s.objectWatchersLock.Unlock()
- objectWatcher := s.objectWatchers[spaceID]
- if objectWatcher != nil {
- objectWatcher.Unwatch(id)
- }
-}
-
func (s *service) Close(ctx context.Context) (err error) {
return nil
}
+
+func (s *service) onFileUploadStarted(objectId string, _ domain.FullFileId) error {
+ return s.indexFileSyncStatus(objectId, filesyncstatus.Syncing)
+}
+
+func (s *service) onFileUploaded(objectId string, _ domain.FullFileId) error {
+ return s.indexFileSyncStatus(objectId, filesyncstatus.Synced)
+}
+
+func (s *service) onFileLimited(objectId string, _ domain.FullFileId, bytesLeftPercentage float64) error {
+ return s.indexFileSyncStatus(objectId, filesyncstatus.Limited)
+}
+
+func (s *service) indexFileSyncStatus(fileObjectId string, status filesyncstatus.Status) error {
+ err := cache.Do(s.objectGetter, fileObjectId, func(sb smartblock.SmartBlock) (err error) {
+ prevStatus := pbtypes.GetInt64(sb.Details(), bundle.RelationKeyFileBackupStatus.String())
+ newStatus := int64(status)
+ if prevStatus == newStatus {
+ return nil
+ }
+ st := sb.NewState()
+ st.SetDetailAndBundledRelation(bundle.RelationKeyFileBackupStatus, pbtypes.Int64(newStatus))
+ return sb.Apply(st)
+ })
+ if err != nil {
+ return fmt.Errorf("get object: %w", err)
+ }
+ return nil
+}
diff --git a/core/syncstatus/syncsubscriptions/objectsubscription.go b/core/syncstatus/syncsubscriptions/objectsubscription.go
index a3d5e4654..90545517d 100644
--- a/core/syncstatus/syncsubscriptions/objectsubscription.go
+++ b/core/syncstatus/syncsubscriptions/objectsubscription.go
@@ -55,17 +55,6 @@ func NewIdSubscription(service subscription.Service, request subscription.Subscr
}
}
-func NewObjectSubscription[T any](service subscription.Service, params SubscriptionParams[T]) *ObjectSubscription[T] {
- return &ObjectSubscription[T]{
- request: params.Request,
- service: service,
- ch: make(chan struct{}),
- extract: params.Extract,
- update: params.Update,
- unset: params.Unset,
- }
-}
-
type ObjectSubscription[T any] struct {
request subscription.SubscribeRequest
service subscription.Service
diff --git a/core/syncstatus/updatereceiver.go b/core/syncstatus/updatereceiver.go
deleted file mode 100644
index 09b55a599..000000000
--- a/core/syncstatus/updatereceiver.go
+++ /dev/null
@@ -1,132 +0,0 @@
-package syncstatus
-
-import (
- "context"
- "fmt"
- "sync"
-
- "github.com/anyproto/any-sync/nodeconf"
-
- "github.com/anyproto/anytype-heart/core/anytype/config"
- "github.com/anyproto/anytype-heart/core/event"
- "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus"
- "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus"
- "github.com/anyproto/anytype-heart/core/syncstatus/objectsyncstatus"
- "github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pkg/lib/bundle"
- "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore"
-)
-
-type updateReceiver struct {
- eventSender event.Sender
-
- nodeConfService nodeconf.Service
- lock sync.Mutex
- nodeConnected bool
- objectStore objectstore.ObjectStore
- nodeStatus nodestatus.NodeStatus
- spaceId string
-}
-
-func newUpdateReceiver(
- nodeConfService nodeconf.Service,
- cfg *config.Config,
- eventSender event.Sender,
- objectStore objectstore.ObjectStore,
- nodeStatus nodestatus.NodeStatus,
-) *updateReceiver {
- if cfg.DisableThreadsSyncEvents {
- eventSender = nil
- }
- return &updateReceiver{
- nodeConfService: nodeConfService,
- eventSender: eventSender,
- objectStore: objectStore,
- nodeStatus: nodeStatus,
- }
-}
-
-func (r *updateReceiver) UpdateTree(_ context.Context, objId string, status objectsyncstatus.SyncStatus) error {
- objStatusEvent := r.getObjectSyncStatus(objId, status)
- r.notify(objId, objStatusEvent)
- return nil
-}
-
-func (r *updateReceiver) getFileStatus(fileId string) (filesyncstatus.Status, error) {
- details, err := r.objectStore.GetDetails(fileId)
- if err != nil {
- return filesyncstatus.Unknown, fmt.Errorf("get file details: %w", err)
- }
- if v, ok := details.GetDetails().GetFields()[bundle.RelationKeyFileBackupStatus.String()]; ok {
- return filesyncstatus.Status(v.GetNumberValue()), nil
- }
- return filesyncstatus.Unknown, fmt.Errorf("no backup status")
-}
-
-func (r *updateReceiver) getObjectSyncStatus(objectId string, status objectsyncstatus.SyncStatus) pb.EventStatusThreadSyncStatus {
- fileStatus, err := r.getFileStatus(objectId)
- if err == nil {
- // Prefer file backup status
- if fileStatus != filesyncstatus.Synced {
- status = fileStatus.ToSyncStatus()
- }
- }
-
- if r.nodeConfService.NetworkCompatibilityStatus() == nodeconf.NetworkCompatibilityStatusIncompatible {
- return pb.EventStatusThread_IncompatibleVersion
- }
-
- if !r.isNodeConnected() {
- return pb.EventStatusThread_Offline
- }
-
- switch status {
- case objectsyncstatus.StatusUnknown:
- return pb.EventStatusThread_Unknown
- case objectsyncstatus.StatusSynced:
- return pb.EventStatusThread_Synced
- }
- return pb.EventStatusThread_Syncing
-}
-
-func (r *updateReceiver) isNodeConnected() bool {
- r.lock.Lock()
- defer r.lock.Unlock()
- return r.nodeConnected
-}
-
-func (r *updateReceiver) setSpaceId(spaceId string) {
- r.lock.Lock()
- defer r.lock.Unlock()
-
- r.spaceId = spaceId
-}
-
-func (r *updateReceiver) UpdateNodeStatus() {
- r.lock.Lock()
- defer r.lock.Unlock()
- r.nodeConnected = r.nodeStatus.GetNodeStatus(r.spaceId) == nodestatus.Online
-}
-
-func (r *updateReceiver) notify(
- objId string,
- objStatus pb.EventStatusThreadSyncStatus,
-) {
- r.sendEvent(objId, &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: objStatus},
- Cafe: &pb.EventStatusThreadCafe{
- Status: objStatus,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }})
-}
-
-func (r *updateReceiver) sendEvent(ctx string, event pb.IsEventMessageValue) {
- if r.eventSender == nil {
- return
- }
- r.eventSender.Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: event}},
- ContextId: ctx,
- })
-}
diff --git a/core/syncstatus/updatereceiver_test.go b/core/syncstatus/updatereceiver_test.go
deleted file mode 100644
index eaafcd50b..000000000
--- a/core/syncstatus/updatereceiver_test.go
+++ /dev/null
@@ -1,244 +0,0 @@
-package syncstatus
-
-import (
- "testing"
-
- "github.com/anyproto/any-sync/nodeconf"
- "github.com/anyproto/any-sync/nodeconf/mock_nodeconf"
- "github.com/stretchr/testify/assert"
- "go.uber.org/mock/gomock"
-
- "github.com/anyproto/anytype-heart/core/anytype/config"
- "github.com/anyproto/anytype-heart/core/event/mock_event"
- "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus"
- "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus"
- "github.com/anyproto/anytype-heart/core/syncstatus/objectsyncstatus"
- "github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pkg/lib/bundle"
- "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore"
- "github.com/anyproto/anytype-heart/util/pbtypes"
-)
-
-func TestUpdateReceiver_UpdateTree(t *testing.T) {
- t.Run("update to sync status", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Synced},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Synced,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("network incompatible", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusIncompatible)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_IncompatibleVersion},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_IncompatibleVersion,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusNotSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("file storage limited", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Syncing},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Syncing,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- receiver.store.AddObjects(t, []objectstore.TestObject{
- {
- bundle.RelationKeyId: pbtypes.String("id"),
- bundle.RelationKeyFileBackupStatus: pbtypes.Int64(int64(filesyncstatus.Limited)),
- },
- })
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusNotSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("object sync status - syncing", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Syncing},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Syncing,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusNotSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("object sync status - unknown", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Unknown},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Unknown,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusUnknown)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("object sync status - connection error", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = false
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Offline},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Offline,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("file sync status - synced", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Synced},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Synced,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- receiver.store.AddObjects(t, []objectstore.TestObject{
- {
- bundle.RelationKeyId: pbtypes.String("id"),
- bundle.RelationKeyFileBackupStatus: pbtypes.Int64(int64(filesyncstatus.Synced)),
- },
- })
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusSynced)
-
- // then
- assert.Nil(t, err)
- })
- t.Run("file sync status - syncing", func(t *testing.T) {
- // given
- receiver := newFixture(t)
- receiver.nodeConnected = true
- receiver.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk)
- receiver.sender.EXPECT().Broadcast(&pb.Event{
- Messages: []*pb.EventMessage{{Value: &pb.EventMessageValueOfThreadStatus{ThreadStatus: &pb.EventStatusThread{
- Summary: &pb.EventStatusThreadSummary{Status: pb.EventStatusThread_Syncing},
- Cafe: &pb.EventStatusThreadCafe{
- Status: pb.EventStatusThread_Syncing,
- Files: &pb.EventStatusThreadCafePinStatus{},
- },
- }}}},
- ContextId: "id",
- }).Return()
-
- receiver.store.AddObjects(t, []objectstore.TestObject{
- {
- bundle.RelationKeyId: pbtypes.String("id"),
- bundle.RelationKeyFileBackupStatus: pbtypes.Int64(int64(filesyncstatus.Syncing)),
- },
- })
-
- // when
- err := receiver.UpdateTree(nil, "id", objectsyncstatus.StatusUnknown)
-
- // then
- assert.Nil(t, err)
- })
-}
-
-func newFixture(t *testing.T) *fixture {
- ctrl := gomock.NewController(t)
- nodeConf := mock_nodeconf.NewMockService(ctrl)
- conf := &config.Config{}
- sender := mock_event.NewMockSender(t)
- storeFixture := objectstore.NewStoreFixture(t)
- status := nodestatus.NewNodeStatus()
-
- receiver := newUpdateReceiver(nodeConf, conf, sender, storeFixture, status)
- return &fixture{
- updateReceiver: receiver,
- sender: sender,
- nodeConf: nodeConf,
- store: storeFixture,
- }
-}
-
-type fixture struct {
- *updateReceiver
- sender *mock_event.MockSender
- nodeConf *mock_nodeconf.MockService
- store *objectstore.StoreFixture
-}
diff --git a/docs/proto.md b/docs/proto.md
index 361f9a484..0744df30b 100644
--- a/docs/proto.md
+++ b/docs/proto.md
@@ -526,6 +526,39 @@
- [Rpc.Broadcast.PayloadEvent.Request](#anytype-Rpc-Broadcast-PayloadEvent-Request)
- [Rpc.Broadcast.PayloadEvent.Response](#anytype-Rpc-Broadcast-PayloadEvent-Response)
- [Rpc.Broadcast.PayloadEvent.Response.Error](#anytype-Rpc-Broadcast-PayloadEvent-Response-Error)
+ - [Rpc.Chat](#anytype-Rpc-Chat)
+ - [Rpc.Chat.AddMessage](#anytype-Rpc-Chat-AddMessage)
+ - [Rpc.Chat.AddMessage.Request](#anytype-Rpc-Chat-AddMessage-Request)
+ - [Rpc.Chat.AddMessage.Response](#anytype-Rpc-Chat-AddMessage-Response)
+ - [Rpc.Chat.AddMessage.Response.Error](#anytype-Rpc-Chat-AddMessage-Response-Error)
+ - [Rpc.Chat.DeleteMessage](#anytype-Rpc-Chat-DeleteMessage)
+ - [Rpc.Chat.DeleteMessage.Request](#anytype-Rpc-Chat-DeleteMessage-Request)
+ - [Rpc.Chat.DeleteMessage.Response](#anytype-Rpc-Chat-DeleteMessage-Response)
+ - [Rpc.Chat.DeleteMessage.Response.Error](#anytype-Rpc-Chat-DeleteMessage-Response-Error)
+ - [Rpc.Chat.EditMessageContent](#anytype-Rpc-Chat-EditMessageContent)
+ - [Rpc.Chat.EditMessageContent.Request](#anytype-Rpc-Chat-EditMessageContent-Request)
+ - [Rpc.Chat.EditMessageContent.Response](#anytype-Rpc-Chat-EditMessageContent-Response)
+ - [Rpc.Chat.EditMessageContent.Response.Error](#anytype-Rpc-Chat-EditMessageContent-Response-Error)
+ - [Rpc.Chat.GetMessages](#anytype-Rpc-Chat-GetMessages)
+ - [Rpc.Chat.GetMessages.Request](#anytype-Rpc-Chat-GetMessages-Request)
+ - [Rpc.Chat.GetMessages.Response](#anytype-Rpc-Chat-GetMessages-Response)
+ - [Rpc.Chat.GetMessages.Response.Error](#anytype-Rpc-Chat-GetMessages-Response-Error)
+ - [Rpc.Chat.GetMessagesByIds](#anytype-Rpc-Chat-GetMessagesByIds)
+ - [Rpc.Chat.GetMessagesByIds.Request](#anytype-Rpc-Chat-GetMessagesByIds-Request)
+ - [Rpc.Chat.GetMessagesByIds.Response](#anytype-Rpc-Chat-GetMessagesByIds-Response)
+ - [Rpc.Chat.GetMessagesByIds.Response.Error](#anytype-Rpc-Chat-GetMessagesByIds-Response-Error)
+ - [Rpc.Chat.SubscribeLastMessages](#anytype-Rpc-Chat-SubscribeLastMessages)
+ - [Rpc.Chat.SubscribeLastMessages.Request](#anytype-Rpc-Chat-SubscribeLastMessages-Request)
+ - [Rpc.Chat.SubscribeLastMessages.Response](#anytype-Rpc-Chat-SubscribeLastMessages-Response)
+ - [Rpc.Chat.SubscribeLastMessages.Response.Error](#anytype-Rpc-Chat-SubscribeLastMessages-Response-Error)
+ - [Rpc.Chat.ToggleMessageReaction](#anytype-Rpc-Chat-ToggleMessageReaction)
+ - [Rpc.Chat.ToggleMessageReaction.Request](#anytype-Rpc-Chat-ToggleMessageReaction-Request)
+ - [Rpc.Chat.ToggleMessageReaction.Response](#anytype-Rpc-Chat-ToggleMessageReaction-Response)
+ - [Rpc.Chat.ToggleMessageReaction.Response.Error](#anytype-Rpc-Chat-ToggleMessageReaction-Response-Error)
+ - [Rpc.Chat.Unsubscribe](#anytype-Rpc-Chat-Unsubscribe)
+ - [Rpc.Chat.Unsubscribe.Request](#anytype-Rpc-Chat-Unsubscribe-Request)
+ - [Rpc.Chat.Unsubscribe.Response](#anytype-Rpc-Chat-Unsubscribe-Response)
+ - [Rpc.Chat.Unsubscribe.Response.Error](#anytype-Rpc-Chat-Unsubscribe-Response-Error)
- [Rpc.Debug](#anytype-Rpc-Debug)
- [Rpc.Debug.AccountSelectTrace](#anytype-Rpc-Debug-AccountSelectTrace)
- [Rpc.Debug.AccountSelectTrace.Request](#anytype-Rpc-Debug-AccountSelectTrace-Request)
@@ -760,6 +793,10 @@
- [Rpc.Object.BookmarkFetch.Request](#anytype-Rpc-Object-BookmarkFetch-Request)
- [Rpc.Object.BookmarkFetch.Response](#anytype-Rpc-Object-BookmarkFetch-Response)
- [Rpc.Object.BookmarkFetch.Response.Error](#anytype-Rpc-Object-BookmarkFetch-Response-Error)
+ - [Rpc.Object.ChatAdd](#anytype-Rpc-Object-ChatAdd)
+ - [Rpc.Object.ChatAdd.Request](#anytype-Rpc-Object-ChatAdd-Request)
+ - [Rpc.Object.ChatAdd.Response](#anytype-Rpc-Object-ChatAdd-Response)
+ - [Rpc.Object.ChatAdd.Response.Error](#anytype-Rpc-Object-ChatAdd-Response-Error)
- [Rpc.Object.Close](#anytype-Rpc-Object-Close)
- [Rpc.Object.Close.Request](#anytype-Rpc-Object-Close-Request)
- [Rpc.Object.Close.Response](#anytype-Rpc-Object-Close-Response)
@@ -1285,6 +1322,14 @@
- [Rpc.BlockWidget.SetTargetId.Response.Error.Code](#anytype-Rpc-BlockWidget-SetTargetId-Response-Error-Code)
- [Rpc.BlockWidget.SetViewId.Response.Error.Code](#anytype-Rpc-BlockWidget-SetViewId-Response-Error-Code)
- [Rpc.Broadcast.PayloadEvent.Response.Error.Code](#anytype-Rpc-Broadcast-PayloadEvent-Response-Error-Code)
+ - [Rpc.Chat.AddMessage.Response.Error.Code](#anytype-Rpc-Chat-AddMessage-Response-Error-Code)
+ - [Rpc.Chat.DeleteMessage.Response.Error.Code](#anytype-Rpc-Chat-DeleteMessage-Response-Error-Code)
+ - [Rpc.Chat.EditMessageContent.Response.Error.Code](#anytype-Rpc-Chat-EditMessageContent-Response-Error-Code)
+ - [Rpc.Chat.GetMessages.Response.Error.Code](#anytype-Rpc-Chat-GetMessages-Response-Error-Code)
+ - [Rpc.Chat.GetMessagesByIds.Response.Error.Code](#anytype-Rpc-Chat-GetMessagesByIds-Response-Error-Code)
+ - [Rpc.Chat.SubscribeLastMessages.Response.Error.Code](#anytype-Rpc-Chat-SubscribeLastMessages-Response-Error-Code)
+ - [Rpc.Chat.ToggleMessageReaction.Response.Error.Code](#anytype-Rpc-Chat-ToggleMessageReaction-Response-Error-Code)
+ - [Rpc.Chat.Unsubscribe.Response.Error.Code](#anytype-Rpc-Chat-Unsubscribe-Response-Error-Code)
- [Rpc.Debug.AccountSelectTrace.Response.Error.Code](#anytype-Rpc-Debug-AccountSelectTrace-Response-Error-Code)
- [Rpc.Debug.ExportLocalstore.Response.Error.Code](#anytype-Rpc-Debug-ExportLocalstore-Response-Error-Code)
- [Rpc.Debug.OpenedObjects.Response.Error.Code](#anytype-Rpc-Debug-OpenedObjects-Response-Error-Code)
@@ -1341,6 +1386,7 @@
- [Rpc.Notification.Test.Response.Error.Code](#anytype-Rpc-Notification-Test-Response-Error-Code)
- [Rpc.Object.ApplyTemplate.Response.Error.Code](#anytype-Rpc-Object-ApplyTemplate-Response-Error-Code)
- [Rpc.Object.BookmarkFetch.Response.Error.Code](#anytype-Rpc-Object-BookmarkFetch-Response-Error-Code)
+ - [Rpc.Object.ChatAdd.Response.Error.Code](#anytype-Rpc-Object-ChatAdd-Response-Error-Code)
- [Rpc.Object.Close.Response.Error.Code](#anytype-Rpc-Object-Close-Response-Error-Code)
- [Rpc.Object.Create.Response.Error.Code](#anytype-Rpc-Object-Create-Response-Error-Code)
- [Rpc.Object.CreateBookmark.Response.Error.Code](#anytype-Rpc-Object-CreateBookmark-Response-Error-Code)
@@ -1583,6 +1629,11 @@
- [Event.Block.Set.Widget.Layout](#anytype-Event-Block-Set-Widget-Layout)
- [Event.Block.Set.Widget.Limit](#anytype-Event-Block-Set-Widget-Limit)
- [Event.Block.Set.Widget.ViewId](#anytype-Event-Block-Set-Widget-ViewId)
+ - [Event.Chat](#anytype-Event-Chat)
+ - [Event.Chat.Add](#anytype-Event-Chat-Add)
+ - [Event.Chat.Delete](#anytype-Event-Chat-Delete)
+ - [Event.Chat.Update](#anytype-Event-Chat-Update)
+ - [Event.Chat.UpdateReactions](#anytype-Event-Chat-UpdateReactions)
- [Event.File](#anytype-Event-File)
- [Event.File.LimitReached](#anytype-Event-File-LimitReached)
- [Event.File.LimitUpdated](#anytype-Event-File-LimitUpdated)
@@ -1676,6 +1727,7 @@
- [Block](#anytype-model-Block)
- [Block.Content](#anytype-model-Block-Content)
- [Block.Content.Bookmark](#anytype-model-Block-Content-Bookmark)
+ - [Block.Content.Chat](#anytype-model-Block-Content-Chat)
- [Block.Content.Dataview](#anytype-model-Block-Content-Dataview)
- [Block.Content.Dataview.Checkbox](#anytype-model-Block-Content-Dataview-Checkbox)
- [Block.Content.Dataview.Date](#anytype-model-Block-Content-Dataview-Date)
@@ -1708,6 +1760,12 @@
- [Block.Content.Widget](#anytype-model-Block-Content-Widget)
- [Block.Restrictions](#anytype-model-Block-Restrictions)
- [BlockMetaOnly](#anytype-model-BlockMetaOnly)
+ - [ChatMessage](#anytype-model-ChatMessage)
+ - [ChatMessage.Attachment](#anytype-model-ChatMessage-Attachment)
+ - [ChatMessage.MessageContent](#anytype-model-ChatMessage-MessageContent)
+ - [ChatMessage.Reactions](#anytype-model-ChatMessage-Reactions)
+ - [ChatMessage.Reactions.IdentityList](#anytype-model-ChatMessage-Reactions-IdentityList)
+ - [ChatMessage.Reactions.ReactionsEntry](#anytype-model-ChatMessage-Reactions-ReactionsEntry)
- [Detail](#anytype-model-Detail)
- [DeviceInfo](#anytype-model-DeviceInfo)
- [Export](#anytype-model-Export)
@@ -1788,6 +1846,7 @@
- [Block.Content.Widget.Layout](#anytype-model-Block-Content-Widget-Layout)
- [Block.Position](#anytype-model-Block-Position)
- [Block.VerticalAlign](#anytype-model-Block-VerticalAlign)
+ - [ChatMessage.Attachment.AttachmentType](#anytype-model-ChatMessage-Attachment-AttachmentType)
- [DeviceNetworkType](#anytype-model-DeviceNetworkType)
- [Export.Format](#anytype-model-Export-Format)
- [FileIndexingStatus](#anytype-model-FileIndexingStatus)
@@ -1893,6 +1952,7 @@
| ObjectCreate | [Rpc.Object.Create.Request](#anytype-Rpc-Object-Create-Request) | [Rpc.Object.Create.Response](#anytype-Rpc-Object-Create-Response) | ObjectCreate just creates the new page, without adding the link to it from some other page |
| ObjectCreateBookmark | [Rpc.Object.CreateBookmark.Request](#anytype-Rpc-Object-CreateBookmark-Request) | [Rpc.Object.CreateBookmark.Response](#anytype-Rpc-Object-CreateBookmark-Response) | |
| ObjectCreateFromUrl | [Rpc.Object.CreateFromUrl.Request](#anytype-Rpc-Object-CreateFromUrl-Request) | [Rpc.Object.CreateFromUrl.Response](#anytype-Rpc-Object-CreateFromUrl-Response) | |
+| ObjectChatAdd | [Rpc.Object.ChatAdd.Request](#anytype-Rpc-Object-ChatAdd-Request) | [Rpc.Object.ChatAdd.Response](#anytype-Rpc-Object-ChatAdd-Response) | |
| ObjectCreateSet | [Rpc.Object.CreateSet.Request](#anytype-Rpc-Object-CreateSet-Request) | [Rpc.Object.CreateSet.Response](#anytype-Rpc-Object-CreateSet-Response) | ObjectCreateSet just creates the new set, without adding the link to it from some other page |
| ObjectGraph | [Rpc.Object.Graph.Request](#anytype-Rpc-Object-Graph-Request) | [Rpc.Object.Graph.Response](#anytype-Rpc-Object-Graph-Response) | |
| ObjectSearch | [Rpc.Object.Search.Request](#anytype-Rpc-Object-Search-Request) | [Rpc.Object.Search.Response](#anytype-Rpc-Object-Search-Response) | |
@@ -2094,6 +2154,14 @@
| DeviceSetName | [Rpc.Device.SetName.Request](#anytype-Rpc-Device-SetName-Request) | [Rpc.Device.SetName.Response](#anytype-Rpc-Device-SetName-Response) | |
| DeviceList | [Rpc.Device.List.Request](#anytype-Rpc-Device-List-Request) | [Rpc.Device.List.Response](#anytype-Rpc-Device-List-Response) | |
| DeviceNetworkStateSet | [Rpc.Device.NetworkState.Set.Request](#anytype-Rpc-Device-NetworkState-Set-Request) | [Rpc.Device.NetworkState.Set.Response](#anytype-Rpc-Device-NetworkState-Set-Response) | |
+| ChatAddMessage | [Rpc.Chat.AddMessage.Request](#anytype-Rpc-Chat-AddMessage-Request) | [Rpc.Chat.AddMessage.Response](#anytype-Rpc-Chat-AddMessage-Response) | Chats dummy impl |
+| ChatEditMessageContent | [Rpc.Chat.EditMessageContent.Request](#anytype-Rpc-Chat-EditMessageContent-Request) | [Rpc.Chat.EditMessageContent.Response](#anytype-Rpc-Chat-EditMessageContent-Response) | |
+| ChatToggleMessageReaction | [Rpc.Chat.ToggleMessageReaction.Request](#anytype-Rpc-Chat-ToggleMessageReaction-Request) | [Rpc.Chat.ToggleMessageReaction.Response](#anytype-Rpc-Chat-ToggleMessageReaction-Response) | |
+| ChatDeleteMessage | [Rpc.Chat.DeleteMessage.Request](#anytype-Rpc-Chat-DeleteMessage-Request) | [Rpc.Chat.DeleteMessage.Response](#anytype-Rpc-Chat-DeleteMessage-Response) | |
+| ChatGetMessages | [Rpc.Chat.GetMessages.Request](#anytype-Rpc-Chat-GetMessages-Request) | [Rpc.Chat.GetMessages.Response](#anytype-Rpc-Chat-GetMessages-Response) | |
+| ChatGetMessagesByIds | [Rpc.Chat.GetMessagesByIds.Request](#anytype-Rpc-Chat-GetMessagesByIds-Request) | [Rpc.Chat.GetMessagesByIds.Response](#anytype-Rpc-Chat-GetMessagesByIds-Response) | |
+| ChatSubscribeLastMessages | [Rpc.Chat.SubscribeLastMessages.Request](#anytype-Rpc-Chat-SubscribeLastMessages-Request) | [Rpc.Chat.SubscribeLastMessages.Response](#anytype-Rpc-Chat-SubscribeLastMessages-Response) | |
+| ChatUnsubscribe | [Rpc.Chat.Unsubscribe.Request](#anytype-Rpc-Chat-Unsubscribe-Request) | [Rpc.Chat.Unsubscribe.Response](#anytype-Rpc-Chat-Unsubscribe-Response) | |
@@ -9721,6 +9789,480 @@ Get marks list in the selected range in text block.
+
+
+### Rpc.Chat
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.AddMessage
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.AddMessage.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| message | [model.ChatMessage](#anytype-model-ChatMessage) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.AddMessage.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.AddMessage.Response.Error](#anytype-Rpc-Chat-AddMessage-Response-Error) | | |
+| messageId | [string](#string) | | |
+| event | [ResponseEvent](#anytype-ResponseEvent) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.AddMessage.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.AddMessage.Response.Error.Code](#anytype-Rpc-Chat-AddMessage-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.DeleteMessage
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.DeleteMessage.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| messageId | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.DeleteMessage.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.DeleteMessage.Response.Error](#anytype-Rpc-Chat-DeleteMessage-Response-Error) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.DeleteMessage.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.DeleteMessage.Response.Error.Code](#anytype-Rpc-Chat-DeleteMessage-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.EditMessageContent
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.EditMessageContent.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| messageId | [string](#string) | | |
+| editedMessage | [model.ChatMessage](#anytype-model-ChatMessage) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.EditMessageContent.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.EditMessageContent.Response.Error](#anytype-Rpc-Chat-EditMessageContent-Response-Error) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.EditMessageContent.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.EditMessageContent.Response.Error.Code](#anytype-Rpc-Chat-EditMessageContent-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessages
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessages.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| beforeOrderId | [string](#string) | | OrderId of the message before which to get messages |
+| limit | [int32](#int32) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessages.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.GetMessages.Response.Error](#anytype-Rpc-Chat-GetMessages-Response-Error) | | |
+| messages | [model.ChatMessage](#anytype-model-ChatMessage) | repeated | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessages.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.GetMessages.Response.Error.Code](#anytype-Rpc-Chat-GetMessages-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessagesByIds
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessagesByIds.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| messageIds | [string](#string) | repeated | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessagesByIds.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.GetMessagesByIds.Response.Error](#anytype-Rpc-Chat-GetMessagesByIds-Response-Error) | | |
+| messages | [model.ChatMessage](#anytype-model-ChatMessage) | repeated | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.GetMessagesByIds.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.GetMessagesByIds.Response.Error.Code](#anytype-Rpc-Chat-GetMessagesByIds-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.SubscribeLastMessages
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.SubscribeLastMessages.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | Identifier for the chat |
+| limit | [int32](#int32) | | Number of max last messages to return and subscribe |
+
+
+
+
+
+
+
+
+### Rpc.Chat.SubscribeLastMessages.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.SubscribeLastMessages.Response.Error](#anytype-Rpc-Chat-SubscribeLastMessages-Response-Error) | | |
+| messages | [model.ChatMessage](#anytype-model-ChatMessage) | repeated | List of messages |
+| numMessagesBefore | [int32](#int32) | | Number of messages before the returned messages |
+
+
+
+
+
+
+
+
+### Rpc.Chat.SubscribeLastMessages.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.SubscribeLastMessages.Response.Error.Code](#anytype-Rpc-Chat-SubscribeLastMessages-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.ToggleMessageReaction
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.ToggleMessageReaction.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | |
+| messageId | [string](#string) | | |
+| emoji | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.ToggleMessageReaction.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.ToggleMessageReaction.Response.Error](#anytype-Rpc-Chat-ToggleMessageReaction-Response-Error) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.ToggleMessageReaction.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.ToggleMessageReaction.Response.Error.Code](#anytype-Rpc-Chat-ToggleMessageReaction-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.Unsubscribe
+
+
+
+
+
+
+
+
+
+### Rpc.Chat.Unsubscribe.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| chatObjectId | [string](#string) | | Identifier for the chat |
+
+
+
+
+
+
+
+
+### Rpc.Chat.Unsubscribe.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Chat.Unsubscribe.Response.Error](#anytype-Rpc-Chat-Unsubscribe-Response-Error) | | |
+
+
+
+
+
+
+
+
+### Rpc.Chat.Unsubscribe.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Chat.Unsubscribe.Response.Error.Code](#anytype-Rpc-Chat-Unsubscribe-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
### Rpc.Debug
@@ -9747,6 +10289,11 @@ Get marks list in the selected range in text block.
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| dir | [string](#string) | | empty means using OS-provided temp dir |
+
+
@@ -13034,6 +13581,63 @@ Get the info for page alongside with info for all inbound and outbound links fro
+
+
+### Rpc.Object.ChatAdd
+
+
+
+
+
+
+
+
+
+### Rpc.Object.ChatAdd.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| objectId | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Object.ChatAdd.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Object.ChatAdd.Response.Error](#anytype-Rpc-Object-ChatAdd-Response-Error) | | |
+| chatId | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Rpc.Object.ChatAdd.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Object.ChatAdd.Response.Error.Code](#anytype-Rpc-Object-ChatAdd-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
### Rpc.Object.Close
@@ -20561,6 +21165,110 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er
+
+
+### Rpc.Chat.AddMessage.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.DeleteMessage.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.EditMessageContent.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.GetMessages.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.GetMessagesByIds.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.SubscribeLastMessages.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.ToggleMessageReaction.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
+
+
+### Rpc.Chat.Unsubscribe.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
### Rpc.Debug.AccountSelectTrace.Response.Error.Code
@@ -21376,6 +22084,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er
+
+
+### Rpc.Object.ChatAdd.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
### Rpc.Object.Close.Response.Error.Code
@@ -24988,6 +25709,80 @@ Precondition: user A opened a block
+
+
+### Event.Chat
+
+
+
+
+
+
+
+
+
+### Event.Chat.Add
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+| orderId | [string](#string) | | |
+| message | [model.ChatMessage](#anytype-model-ChatMessage) | | |
+
+
+
+
+
+
+
+
+### Event.Chat.Delete
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+
+
+
+
+
+
+
+
+### Event.Chat.Update
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+| message | [model.ChatMessage](#anytype-model-ChatMessage) | | |
+
+
+
+
+
+
+
+
+### Event.Chat.UpdateReactions
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+| reactions | [model.ChatMessage.Reactions](#anytype-model-ChatMessage-Reactions) | | |
+
+
+
+
+
+
### Event.File
@@ -25190,6 +25985,10 @@ Precondition: user A opened a block
| spaceSyncStatusUpdate | [Event.Space.SyncStatus.Update](#anytype-Event-Space-SyncStatus-Update) | | |
| p2pStatusUpdate | [Event.P2PStatus.Update](#anytype-Event-P2PStatus-Update) | | |
| importFinish | [Event.Import.Finish](#anytype-Event-Import-Finish) | | |
+| chatAdd | [Event.Chat.Add](#anytype-Event-Chat-Add) | | |
+| chatUpdate | [Event.Chat.Update](#anytype-Event-Chat-Update) | | |
+| chatUpdateReactions | [Event.Chat.UpdateReactions](#anytype-Event-Chat-UpdateReactions) | | |
+| chatDelete | [Event.Chat.Delete](#anytype-Event-Chat-Delete) | | |
@@ -25978,6 +26777,7 @@ Precondition: user A and user B opened the same block
| NotConnected | 0 | |
| NotPossible | 1 | |
| Connected | 2 | |
+| Restricted | 3 | only for ios for now, fallback to NotPossible if not implemented on client |
@@ -26036,6 +26836,7 @@ Precondition: user A and user B opened the same block
| Synced | 3 | |
| Failed | 4 | |
| IncompatibleVersion | 5 | |
+| NetworkNeedsUpdate | 6 | |
@@ -26412,6 +27213,7 @@ Contains basic information about a user account
| tableColumn | [Block.Content.TableColumn](#anytype-model-Block-Content-TableColumn) | | |
| tableRow | [Block.Content.TableRow](#anytype-model-Block-Content-TableRow) | | |
| widget | [Block.Content.Widget](#anytype-model-Block-Content-Widget) | | |
+| chat | [Block.Content.Chat](#anytype-model-Block-Content-Chat) | | |
@@ -26450,6 +27252,16 @@ Bookmark is to keep a web-link and to preview a content.
+
+
+### Block.Content.Chat
+
+
+
+
+
+
+
### Block.Content.Dataview
@@ -26983,6 +27795,108 @@ Used to decode block meta only, without the content itself
+
+
+### ChatMessage
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | Unique message identifier |
+| orderId | [string](#string) | | Used for subscriptions |
+| creator | [string](#string) | | Identifier for the message creator |
+| createdAt | [int64](#int64) | | |
+| modifiedAt | [int64](#int64) | | |
+| replyToMessageId | [string](#string) | | Identifier for the message being replied to |
+| message | [ChatMessage.MessageContent](#anytype-model-ChatMessage-MessageContent) | | Message content |
+| attachments | [ChatMessage.Attachment](#anytype-model-ChatMessage-Attachment) | repeated | Attachments slice |
+| reactions | [ChatMessage.Reactions](#anytype-model-ChatMessage-Reactions) | | Reactions to the message |
+
+
+
+
+
+
+
+
+### ChatMessage.Attachment
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| target | [string](#string) | | Identifier for the attachment object |
+| type | [ChatMessage.Attachment.AttachmentType](#anytype-model-ChatMessage-Attachment-AttachmentType) | | Type of attachment |
+
+
+
+
+
+
+
+
+### ChatMessage.MessageContent
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| text | [string](#string) | | The text content of the message part |
+| style | [Block.Content.Text.Style](#anytype-model-Block-Content-Text-Style) | | The style/type of the message part |
+| marks | [Block.Content.Text.Mark](#anytype-model-Block-Content-Text-Mark) | repeated | List of marks applied to the text |
+
+
+
+
+
+
+
+
+### ChatMessage.Reactions
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| reactions | [ChatMessage.Reactions.ReactionsEntry](#anytype-model-ChatMessage-Reactions-ReactionsEntry) | repeated | Map of emoji to list of user IDs |
+
+
+
+
+
+
+
+
+### ChatMessage.Reactions.IdentityList
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| ids | [string](#string) | repeated | List of user IDs |
+
+
+
+
+
+
+
+
+### ChatMessage.Reactions.ReactionsEntry
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| key | [string](#string) | | |
+| value | [ChatMessage.Reactions.IdentityList](#anytype-model-ChatMessage-Reactions-IdentityList) | | |
+
+
+
+
+
+
### Detail
@@ -28346,6 +29260,19 @@ stored |
+
+
+### ChatMessage.Attachment.AttachmentType
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| FILE | 0 | File attachment |
+| IMAGE | 1 | Image attachment |
+| LINK | 2 | Link attachment |
+
+
+
### DeviceNetworkType
@@ -28620,6 +29547,8 @@ Look https://github.com/golang/protobuf/issues/1135 for more information.
| spaceView | 18 | |
| participant | 19 | |
| pdf | 20 | |
+| chat | 21 | |
+| chatDerived | 22 | |
@@ -28772,6 +29701,8 @@ RelationFormat describes how the underlying data is stored in the google.protobu
| FileObject | 533 | |
| NotificationObject | 535 | |
| DevicesObject | 536 | |
+| ChatObject | 537 | Container for any-store based chats |
+| ChatDerivedObject | 544 | Any-store based object for chat |
diff --git a/go.mod b/go.mod
index 057a3abaa..ff8d95865 100644
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@ require (
github.com/PuerkitoBio/goquery v1.9.2
github.com/VividCortex/ewma v1.2.0
github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786
- github.com/anyproto/any-store v0.0.4
+ github.com/anyproto/any-store v0.0.5
github.com/anyproto/any-sync v0.4.30
github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438
github.com/anyproto/tantivy-go v0.1.0
@@ -76,7 +76,7 @@ require (
github.com/otiai10/copy v1.14.0
github.com/otiai10/opengraph/v2 v2.1.0
github.com/pkg/errors v0.9.1
- github.com/prometheus/client_golang v1.20.3
+ github.com/prometheus/client_golang v1.20.4
github.com/pseudomuto/protoc-gen-doc v1.5.1
github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd
github.com/samber/lo v1.47.0
@@ -99,7 +99,7 @@ require (
golang.org/x/net v0.29.0
golang.org/x/oauth2 v0.23.0
golang.org/x/text v0.18.0
- google.golang.org/grpc v1.66.1
+ google.golang.org/grpc v1.66.2
gopkg.in/Graylog2/go-gelf.v2 v2.0.0-20180125164251-1832d8546a9f
gopkg.in/yaml.v3 v3.0.1
storj.io/drpc v0.0.34
diff --git a/go.sum b/go.sum
index 44e1cea6e..feb946452 100644
--- a/go.sum
+++ b/go.sum
@@ -83,8 +83,8 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
-github.com/anyproto/any-store v0.0.4 h1:Iv5XXOi0WM0g0yPNYixFA/MQpAxwHpJ5VtNuRszvE3g=
-github.com/anyproto/any-store v0.0.4/go.mod h1:MA3sSqRXIp0h9bC2LnMuDGVEFGB3BkI/UuWNCleGHMs=
+github.com/anyproto/any-store v0.0.5 h1:ToUbPNkGJcuYOpS2IWlbuxZadvsOOKLeLfKe8DeO3Hc=
+github.com/anyproto/any-store v0.0.5/go.mod h1:MA3sSqRXIp0h9bC2LnMuDGVEFGB3BkI/UuWNCleGHMs=
github.com/anyproto/any-sync v0.4.30 h1:2nnoVQF9WiBIw8pzwuOubwqf7a+xvZPDkXHmykTPi0k=
github.com/anyproto/any-sync v0.4.30/go.mod h1:YjwTdTRL6b6GuutJNboJJ1M5D/kkdeSf9qF5xP6wG7Y=
github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc=
@@ -1220,8 +1220,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4=
-github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
+github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI=
+github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -1953,8 +1953,8 @@ google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM=
-google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
+google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
+google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
diff --git a/net/addrs/common.go b/net/addrs/common.go
index bdf094e2d..e1f8257a4 100644
--- a/net/addrs/common.go
+++ b/net/addrs/common.go
@@ -1,15 +1,22 @@
package addrs
import (
+ "cmp"
+ "fmt"
"net"
"regexp"
+ "runtime"
"strconv"
+ "strings"
"golang.org/x/exp/slices"
+ "github.com/anyproto/anytype-heart/pkg/lib/logging"
"github.com/anyproto/anytype-heart/util/slice"
)
+var log = logging.Logger("anytype-net")
+
type Interface struct {
net.Interface
Addrs []InterfaceAddr
@@ -20,9 +27,73 @@ type InterfaceAddr struct {
Prefix int
}
+type NetInterfaceWithAddrCache struct {
+ net.Interface
+ cachedAddrs []net.Addr // ipv4 addresses
+ cachedErr error
+}
type InterfacesAddrs struct {
- Interfaces []net.Interface
- Addrs []net.Addr
+ Interfaces []NetInterfaceWithAddrCache
+ Addrs []net.Addr // addrs without attachment to specific interface. Used as cheap(1 syscall) way to check if smth has changed
+}
+
+func WrapInterface(iface net.Interface) NetInterfaceWithAddrCache {
+ return NetInterfaceWithAddrCache{
+ Interface: iface,
+ }
+}
+
+func WrapInterfaces(ifaces []net.Interface) []NetInterfaceWithAddrCache {
+ var m = make([]NetInterfaceWithAddrCache, 0, len(ifaces))
+ for i := range ifaces {
+ m = append(m, NetInterfaceWithAddrCache{
+ Interface: ifaces[i],
+ })
+ }
+ return m
+}
+
+// GetAddr returns ipv4 only addresses for interface or cached one if set
+func (i NetInterfaceWithAddrCache) GetAddr() []net.Addr {
+ if i.cachedAddrs != nil {
+ return i.cachedAddrs
+ }
+ if i.cachedErr != nil {
+ return nil
+ }
+ i.cachedAddrs, i.cachedErr = i.Interface.Addrs()
+ if i.cachedErr != nil {
+ log.Warn("interface GetAddr error: %v", i.cachedErr)
+ }
+ // filter-out ipv6
+ i.cachedAddrs = slice.Filter(i.cachedAddrs, func(addr net.Addr) bool {
+ if ip, ok := addr.(*net.IPNet); ok {
+ if ip.IP.To4() == nil {
+ return false
+ }
+ }
+ return true
+ })
+ return i.cachedAddrs
+}
+
+func NetAddrsEqualUnordered(a, b []net.Addr) bool {
+ if len(a) != len(b) {
+ return false
+ }
+ for _, addr := range a {
+ found := false
+ for _, addr2 := range b {
+ if addr.String() == addr2.String() {
+ found = true
+ break
+ }
+ }
+ if !found {
+ return false
+ }
+ }
+ return true
}
func (i InterfacesAddrs) Equal(other InterfacesAddrs) bool {
@@ -34,35 +105,110 @@ func (i InterfacesAddrs) Equal(other InterfacesAddrs) bool {
}
myStr := getStrings(i)
otherStr := getStrings(other)
- return slices.Equal(myStr, otherStr)
+ // compare slices without order
+ if !slices.Equal(myStr, otherStr) {
+ log.Debug(fmt.Sprintf("addrs compare: strings mismatch: %v != %v", myStr, otherStr))
+ return false
+ }
+ return true
}
var (
- ifaceRe = regexp.MustCompile(`^([a-z]*?)([0-9]+)$`)
+ ifaceRe = regexp.MustCompile(`^([a-z]*?)([0-9]+)$`)
+ ifaceWindowsRe = regexp.MustCompile(`^(.*?)([0-9]*)$`)
+
// ifaceReBusSlot used for prefixBusSlot naming schema used in newer linux distros https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
- ifaceReBusSlot = regexp.MustCompile(`^([a-z]*?)p([0-9]+)s([0-9a-f]+)$`)
+ ifaceReBusSlot = regexp.MustCompile(`^(?Penp|eno|ens|enx|wlp|wlx)(?P[0-9a-fA-F]*)s?(?P[0-9a-fA-F]*)?$`)
)
-func parseInterfaceName(name string) (prefix string, bus int, num int64) {
+func cleanInterfaceName(name string) (clean string, namingType NamingType) {
+ if strings.HasPrefix(name, "en") ||
+ strings.HasPrefix(name, "wl") ||
+ strings.HasPrefix(name, "eth") {
+
+ lastSymbol := name[len(name)-1]
+ switch NamingType(lastSymbol) {
+ case NamingTypeBusSlot, NamingTypeHotplug, NamingTypeMac, NamingTypeOnboard:
+ return name[0 : len(name)-1], NamingType(lastSymbol)
+ }
+ }
+
+ return name, NamingTypeOld
+}
+
+type NamingType string
+
+const (
+ NamingTypeOld NamingType = ""
+ NamingTypeOnboard NamingType = "o"
+ NamingTypeBusSlot NamingType = "p"
+ NamingTypeMac NamingType = "x"
+ NamingTypeHotplug NamingType = "s"
+)
+
+func (n NamingType) Priority() int {
+ switch n {
+ case NamingTypeOld:
+ return 0
+ case NamingTypeOnboard:
+ return 1
+ case NamingTypeBusSlot:
+ return 2
+ case NamingTypeMac:
+ return 3
+ case NamingTypeHotplug:
+ return 4
+ default:
+ return 5
+ }
+}
+
+// parseInterfaceName parses interface name and returns prefix, naming type, bus number and slot number
+// e.g. enp0s3 -> en, NamingTypeBusSlot, 0, 3
+// bus and slot are interpreted as hex numbers
+// bus is also used for mac address
+// in case of enx001122334455 -> en, NamingTypeMac, 0x001122334455, 0
+func parseInterfaceName(name string) (iface string, namingType NamingType, busNum int64, num int64) {
+ if runtime.GOOS == "windows" {
+ name, num = parseInterfaceWindowsName(name)
+ return
+ }
// try new-style naming schema first (enp0s3, wlp2s0, ...)
res := ifaceReBusSlot.FindStringSubmatch(name)
if len(res) > 0 {
- if len(res) > 1 {
- prefix = res[1]
- }
- if len(res) > 2 {
- bus, _ = strconv.Atoi(res[2])
- }
- if len(res) > 3 {
- numHex := res[3]
- num, _ = strconv.ParseInt(numHex, 16, 32)
+
+ for i, subName := range ifaceReBusSlot.SubexpNames() {
+ if i > 0 && res[i] != "" {
+ switch subName {
+ case "type":
+ iface, namingType = cleanInterfaceName(res[i])
+ case "bus":
+ busNum, _ = strconv.ParseInt(res[i], 16, 64)
+ case "slot": // or mac
+ num, _ = strconv.ParseInt(res[i], 16, 64)
+ }
+ }
}
return
}
// try old-style naming schema (eth0, wlan0, ...)
res = ifaceRe.FindStringSubmatch(name)
if len(res) > 1 {
- prefix = res[1]
+ iface = res[1]
+ }
+ if len(res) > 2 {
+ num, _ = strconv.ParseInt(res[2], 10, 32)
+ }
+ if iface == "" {
+
+ }
+ return
+}
+
+func parseInterfaceWindowsName(name string) (iface string, num int64) {
+ res := ifaceWindowsRe.FindStringSubmatch(name)
+ if len(res) > 1 {
+ iface = res[1]
}
if len(res) > 2 {
num, _ = strconv.ParseInt(res[2], 10, 32)
@@ -70,42 +216,62 @@ func parseInterfaceName(name string) (prefix string, bus int, num int64) {
return
}
-func (i InterfacesAddrs) SortWithPriority(priority []string) {
- less := func(a, b net.Interface) bool {
- aPrefix, aBus, aNum := parseInterfaceName(a.Name)
- bPrefix, bBus, bNum := parseInterfaceName(b.Name)
+type interfaceComparer struct {
+ priority []string
+}
- aPrioirity := slice.FindPos(priority, aPrefix)
- bPrioirity := slice.FindPos(priority, bPrefix)
+func (i interfaceComparer) Compare(a, b string) int {
+ aPrefix, aType, aBus, aNum := parseInterfaceName(a)
+ bPrefix, bType, bBus, bNum := parseInterfaceName(b)
- if aPrefix == bPrefix {
- return aNum < bNum
- } else if aPrioirity == -1 && bPrioirity == -1 {
- // sort alphabetically
- return aPrefix < bPrefix
- } else if aPrioirity != -1 && bPrioirity != -1 {
- // in case we have [eth, wlan]
- if aPrioirity == bPrioirity {
- // prioritize eth0 over wlan0
- return aPrioirity < bPrioirity
+ aPrioirity := slice.FindPos(i.priority, aPrefix)
+ bPrioirity := slice.FindPos(i.priority, bPrefix)
+
+ if aPrioirity != -1 && bPrioirity != -1 || aPrioirity == -1 && bPrioirity == -1 {
+ if aPrefix != bPrefix {
+ if aPrioirity != -1 && bPrioirity != -1 {
+ // prioritize by priority
+ return cmp.Compare(aPrioirity, bPrioirity)
+ } else {
+ // prioritize by prefix
+ return cmp.Compare(aPrefix, bPrefix)
}
- // prioritise wlan1 over eth8
- if aBus != bBus {
- return aBus < bBus
- }
- return aNum < bNum
- } else if aPrioirity != -1 {
- return true
- } else {
- return false
}
+ if aType != bType {
+ return cmp.Compare(aType.Priority(), bType.Priority())
+ }
+ if aBus != bBus {
+ return cmp.Compare(aBus, bBus)
+ }
+ if aNum != bNum {
+ return cmp.Compare(aNum, bNum)
+ }
+ // shouldn't be a case
+ return cmp.Compare(a, b)
}
- slices.SortFunc(i.Interfaces, func(a, b net.Interface) int {
- if less(a, b) {
- return -1
- }
+
+ if aPrioirity == -1 {
return 1
- })
+ } else {
+ return -1
+ }
+}
+
+func (i InterfacesAddrs) SortInterfacesWithPriority(priority []string) {
+ sorter := interfaceComparer{priority: priority}
+
+ compare := func(a, b NetInterfaceWithAddrCache) int {
+ return sorter.Compare(a.Name, b.Name)
+ }
+ slices.SortFunc(i.Interfaces, compare)
+}
+
+func (i InterfacesAddrs) NetInterfaces() []net.Interface {
+ var s = make([]net.Interface, 0, len(i.Interfaces))
+ for _, iface := range i.Interfaces {
+ s = append(s, iface.Interface)
+ }
+ return s
}
func getStrings(i InterfacesAddrs) (allStrings []string) {
@@ -118,3 +284,54 @@ func getStrings(i InterfacesAddrs) (allStrings []string) {
slices.Sort(allStrings)
return
}
+
+func (i InterfacesAddrs) GetInterfaceByAddr(addr net.Addr) (net.Interface, bool) {
+ for _, iface := range i.Interfaces {
+ for _, addrInIface := range iface.GetAddr() {
+ if addr.String() == addrInIface.String() {
+ return iface.Interface, true
+ }
+ }
+ }
+ return net.Interface{}, false
+}
+
+// SortIPsLikeInterfaces sort IPs in a way they match sorted interface addresses(via mask matching)
+// e.g. we have interfaces
+// - en0: 192.168.1.10/24
+// - lo0: 127.0.0.1/8
+// we pass IPs: 10.124.22.1, 127.0.0.1, 192.168.1.25
+// we will get: 192.168.1.25, 127.0.0.1, 10.124.22.1
+// 10.124.22.1 does not match any interface, so it will be at the end
+func (i InterfacesAddrs) SortIPsLikeInterfaces(ips []net.IP) {
+ slices.SortFunc(ips, func(a, b net.IP) int {
+ posA, _ := i.findInterfacePosByIP(a)
+ posB, _ := i.findInterfacePosByIP(b)
+
+ if posA == -1 && posB != -1 {
+ return 1
+ }
+ if posA != -1 && posB == -1 {
+ return -1
+ }
+ if posA < posB {
+ return -1
+ } else if posA > posB {
+ return 1
+ }
+ return 0
+ })
+}
+
+func (i InterfacesAddrs) findInterfacePosByIP(ip net.IP) (pos int, equal bool) {
+ for position, iface := range i.Interfaces {
+ for _, addr := range iface.GetAddr() {
+ if ni, ok := addr.(*net.IPNet); ok {
+ if ni.Contains(ip) {
+ return position, ni.IP.Equal(ip)
+ }
+ }
+ }
+ }
+ return -1, false
+}
diff --git a/net/addrs/common_test.go b/net/addrs/common_test.go
index 8d916c276..6ed49705a 100644
--- a/net/addrs/common_test.go
+++ b/net/addrs/common_test.go
@@ -1,6 +1,11 @@
package addrs
-import "testing"
+import (
+ "sort"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
func Test_parseInterfaceName(t *testing.T) {
type args struct {
@@ -10,18 +15,27 @@ func Test_parseInterfaceName(t *testing.T) {
name string
args args
wantPrefix string
- wantBus int
+ wantType NamingType
+ wantBus int64
wantNum int64
}{
- {"eth0", args{"eth0"}, "eth", 0, 0},
- {"eth1", args{"eth1"}, "eth", 0, 1},
- {"eth10", args{"eth10"}, "eth", 0, 10},
- {"enp0s10", args{"enp0s10"}, "en", 0, 16},
- {"wlp0s20f3", args{"wlp0s20f3"}, "wl", 0, 8435},
+ {"eth0", args{"eth0"}, "eth", NamingTypeOld, 0, 0},
+ {"eth1", args{"eth1"}, "eth", NamingTypeOld, 0, 1},
+ {"eth10", args{"eth10"}, "eth", NamingTypeOld, 0, 10},
+ {"enp0s10", args{"enp0s10"}, "en", NamingTypeBusSlot, 0, 0x10},
+ {"wlp0s20f3", args{"wlp0s20f3"}, "wl", NamingTypeBusSlot, 0, 0x20f3},
+ {"tun0", args{"tun0"}, "tun", NamingTypeOld, 0, 0},
+ {"tap0", args{"tap0"}, "tap", NamingTypeOld, 0, 0},
+ {"lo0", args{"lo0"}, "lo", NamingTypeOld, 0, 0},
+ {"lo1", args{"lo1"}, "lo", NamingTypeOld, 0, 1},
+ {"lo10", args{"lo10"}, "lo", NamingTypeOld, 0, 10},
+ {"wlx001122334455", args{"wlx001122334455"}, "wl", NamingTypeMac, 0x001122334455, 0},
+ {"wlxffffffffffff", args{"wlxffffffffffff"}, "wl", NamingTypeMac, 0xffffffffffff, 0},
+ {"eno16777736", args{"eno16777736"}, "en", NamingTypeOnboard, 0x16777736, 0},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- gotPrefix, gotBus, gotNum := parseInterfaceName(tt.args.name)
+ gotPrefix, gotType, gotBus, gotNum := parseInterfaceName(tt.args.name)
if gotPrefix != tt.wantPrefix {
t.Errorf("parseInterfaceName() gotPrefix = %v, want %v", gotPrefix, tt.wantPrefix)
}
@@ -31,6 +45,54 @@ func Test_parseInterfaceName(t *testing.T) {
if gotNum != tt.wantNum {
t.Errorf("parseInterfaceName() gotNum = %v, want %v", gotNum, tt.wantNum)
}
+ if gotType != tt.wantType {
+ t.Errorf("parseInterfaceName() gotType = %v, want %v", gotType, tt.wantType)
+ }
})
}
}
+
+// TestInterfaceSorterSorting tests sorting a list of interface names using the Compare method.
+func TestInterfaceSorterSorting(t *testing.T) {
+ sorter := interfaceComparer{
+ priority: []string{"wl", "wlan", "en", "eth", "tun", "tap", "utun"},
+ }
+
+ // List of interfaces to sort
+ interfaces := []string{
+ "tap0",
+ "awdl0",
+ "eth0",
+ "eno1",
+ "wlp2s0",
+ "ens2",
+ "enp0s3",
+ "tun0",
+ "wlan0",
+ "enx001122334455",
+ "wlx001122334455",
+ }
+
+ // Expected order after sorting
+ expected := []string{
+ "wlp2s0", // Wireless LAN on PCI bus
+ "wlx001122334455", // Wireless LAN with MAC address
+ "wlan0", // Old-style Wireless LAN
+ "eno1", // Highest priority (onboard Ethernet)
+ "enp0s3", // PCI bus Ethernet
+ "enx001122334455", // Ethernet with MAC address
+ "ens2", // Hotplug Ethernet
+ "eth0", // Old-style Ethernet
+ "tun0", // VPN TUN interface
+ "tap0", // VPN TAP interface
+ "awdl0",
+ }
+
+ // Sorting the interfaces using the Compare method
+ sort.Slice(interfaces, func(i, j int) bool {
+ return sorter.Compare(interfaces[i], interfaces[j]) < 0
+ })
+
+ // Assert the sorted order matches the expected order
+ assert.Equal(t, expected, interfaces, "The interfaces should be sorted correctly according to priority.")
+}
diff --git a/net/addrs/interface.go b/net/addrs/interface.go
index df78206e2..027fc852c 100644
--- a/net/addrs/interface.go
+++ b/net/addrs/interface.go
@@ -5,9 +5,6 @@ package addrs
import (
"net"
- "slices"
-
- "github.com/anyproto/anytype-heart/util/slice"
)
func SetInterfaceAddrsGetter(getter InterfaceAddrsGetter) {}
@@ -32,16 +29,6 @@ func GetInterfacesAddrs() (iAddrs InterfacesAddrs, err error) {
if err != nil {
return
}
- iAddrs.Interfaces = ifaces
-
- iAddrs.Interfaces = slice.Filter(iAddrs.Interfaces, func(iface net.Interface) bool {
- return iface.Flags&net.FlagUp != 0 && iface.Flags&net.FlagMulticast != 0
- })
+ iAddrs.Interfaces = WrapInterfaces(ifaces)
return
}
-
-func IsLoopBack(interfaces []net.Interface) bool {
- return len(interfaces) == 1 && slices.ContainsFunc(interfaces, func(n net.Interface) bool {
- return n.Flags&net.FlagLoopback != 0
- })
-}
diff --git a/net/addrs/interface_android.go b/net/addrs/interface_android.go
index f92462f84..827b3296b 100644
--- a/net/addrs/interface_android.go
+++ b/net/addrs/interface_android.go
@@ -57,8 +57,9 @@ func GetInterfacesAddrs() (addrs InterfacesAddrs, err error) {
}
lock.Unlock()
for _, iface := range interfaceGetter.Interfaces() {
- addrs.Interfaces = append(addrs.Interfaces, iface.Interface)
+ ifaceWrapped := WrapInterface(iface.Interface)
unmaskedAddrs := iface.Addrs
+ ifaceAddrs := make([]net.Addr, 0, len(unmaskedAddrs))
for _, addr := range unmaskedAddrs {
var mask []byte
if len(addr.Ip) == 4 {
@@ -66,11 +67,16 @@ func GetInterfacesAddrs() (addrs InterfacesAddrs, err error) {
} else {
mask = ipV6MaskFromPrefix(addr.Prefix)
}
- addrs.Addrs = append(addrs.Addrs, &net.IPNet{
+ ifaceAddrs = append(ifaceAddrs, &net.IPNet{
IP: addr.Ip,
Mask: mask,
})
}
+ // inject cached addresses, because we can't get them from net.Interface's Addrs() on android
+ ifaceWrapped.cachedAddrs = ifaceAddrs
+ addrs.Addrs = append(addrs.Addrs, ifaceAddrs...)
+ addrs.Interfaces = append(addrs.Interfaces, ifaceWrapped)
}
+
return
}
diff --git a/pb/commands.pb.go b/pb/commands.pb.go
index 70a11b9d4..34b29924b 100644
--- a/pb/commands.pb.go
+++ b/pb/commands.pb.go
@@ -2123,6 +2123,34 @@ func (RpcObjectCreateFromUrlResponseErrorCode) EnumDescriptor() ([]byte, []int)
return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 9, 1, 0, 0}
}
+type RpcObjectChatAddResponseErrorCode int32
+
+const (
+ RpcObjectChatAddResponseError_NULL RpcObjectChatAddResponseErrorCode = 0
+ RpcObjectChatAddResponseError_UNKNOWN_ERROR RpcObjectChatAddResponseErrorCode = 1
+ RpcObjectChatAddResponseError_BAD_INPUT RpcObjectChatAddResponseErrorCode = 2
+)
+
+var RpcObjectChatAddResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcObjectChatAddResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcObjectChatAddResponseErrorCode) String() string {
+ return proto.EnumName(RpcObjectChatAddResponseErrorCode_name, int32(x))
+}
+
+func (RpcObjectChatAddResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1, 0, 0}
+}
+
type RpcObjectBookmarkFetchResponseErrorCode int32
const (
@@ -2148,7 +2176,7 @@ func (x RpcObjectBookmarkFetchResponseErrorCode) String() string {
}
func (RpcObjectBookmarkFetchResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1, 0, 0}
}
type RpcObjectToBookmarkResponseErrorCode int32
@@ -2176,7 +2204,7 @@ func (x RpcObjectToBookmarkResponseErrorCode) String() string {
}
func (RpcObjectToBookmarkResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1, 0, 0}
}
type RpcObjectDuplicateResponseErrorCode int32
@@ -2204,7 +2232,7 @@ func (x RpcObjectDuplicateResponseErrorCode) String() string {
}
func (RpcObjectDuplicateResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1, 0, 0}
}
type RpcObjectOpenBreadcrumbsResponseErrorCode int32
@@ -2232,7 +2260,7 @@ func (x RpcObjectOpenBreadcrumbsResponseErrorCode) String() string {
}
func (RpcObjectOpenBreadcrumbsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1, 0, 0}
}
type RpcObjectSetBreadcrumbsResponseErrorCode int32
@@ -2260,7 +2288,7 @@ func (x RpcObjectSetBreadcrumbsResponseErrorCode) String() string {
}
func (RpcObjectSetBreadcrumbsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1, 0, 0}
}
type RpcObjectShareByLinkResponseErrorCode int32
@@ -2288,7 +2316,7 @@ func (x RpcObjectShareByLinkResponseErrorCode) String() string {
}
func (RpcObjectShareByLinkResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1, 0, 0}
}
type RpcObjectSearchResponseErrorCode int32
@@ -2316,7 +2344,7 @@ func (x RpcObjectSearchResponseErrorCode) String() string {
}
func (RpcObjectSearchResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1, 0, 0}
}
type RpcObjectSearchWithMetaResponseErrorCode int32
@@ -2344,7 +2372,7 @@ func (x RpcObjectSearchWithMetaResponseErrorCode) String() string {
}
func (RpcObjectSearchWithMetaResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 1, 0, 0}
}
type RpcObjectGraphEdgeType int32
@@ -2369,7 +2397,7 @@ func (x RpcObjectGraphEdgeType) String() string {
}
func (RpcObjectGraphEdgeType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 1, 0}
}
type RpcObjectGraphResponseErrorCode int32
@@ -2397,7 +2425,7 @@ func (x RpcObjectGraphResponseErrorCode) String() string {
}
func (RpcObjectGraphResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 2, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 2, 0, 0}
}
type RpcObjectSearchSubscribeResponseErrorCode int32
@@ -2425,7 +2453,7 @@ func (x RpcObjectSearchSubscribeResponseErrorCode) String() string {
}
func (RpcObjectSearchSubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1, 0, 0}
}
type RpcObjectGroupsSubscribeResponseErrorCode int32
@@ -2453,7 +2481,7 @@ func (x RpcObjectGroupsSubscribeResponseErrorCode) String() string {
}
func (RpcObjectGroupsSubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1, 0, 0}
}
type RpcObjectSubscribeIdsResponseErrorCode int32
@@ -2481,7 +2509,7 @@ func (x RpcObjectSubscribeIdsResponseErrorCode) String() string {
}
func (RpcObjectSubscribeIdsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1, 0, 0}
}
type RpcObjectSearchUnsubscribeResponseErrorCode int32
@@ -2509,7 +2537,7 @@ func (x RpcObjectSearchUnsubscribeResponseErrorCode) String() string {
}
func (RpcObjectSearchUnsubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1, 0, 0}
}
type RpcObjectSetLayoutResponseErrorCode int32
@@ -2537,7 +2565,7 @@ func (x RpcObjectSetLayoutResponseErrorCode) String() string {
}
func (RpcObjectSetLayoutResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1, 0, 0}
}
type RpcObjectSetIsFavoriteResponseErrorCode int32
@@ -2565,7 +2593,7 @@ func (x RpcObjectSetIsFavoriteResponseErrorCode) String() string {
}
func (RpcObjectSetIsFavoriteResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1, 0, 0}
}
type RpcObjectSetIsArchivedResponseErrorCode int32
@@ -2593,7 +2621,7 @@ func (x RpcObjectSetIsArchivedResponseErrorCode) String() string {
}
func (RpcObjectSetIsArchivedResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1, 0, 0}
}
type RpcObjectSetSourceResponseErrorCode int32
@@ -2621,7 +2649,7 @@ func (x RpcObjectSetSourceResponseErrorCode) String() string {
}
func (RpcObjectSetSourceResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1, 0, 0}
}
type RpcObjectWorkspaceSetDashboardResponseErrorCode int32
@@ -2649,7 +2677,7 @@ func (x RpcObjectWorkspaceSetDashboardResponseErrorCode) String() string {
}
func (RpcObjectWorkspaceSetDashboardResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1, 0, 0}
}
type RpcObjectSetObjectTypeResponseErrorCode int32
@@ -2677,7 +2705,7 @@ func (x RpcObjectSetObjectTypeResponseErrorCode) String() string {
}
func (RpcObjectSetObjectTypeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1, 0, 0}
}
type RpcObjectSetInternalFlagsResponseErrorCode int32
@@ -2705,7 +2733,7 @@ func (x RpcObjectSetInternalFlagsResponseErrorCode) String() string {
}
func (RpcObjectSetInternalFlagsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1, 0, 0}
}
type RpcObjectSetDetailsResponseErrorCode int32
@@ -2733,7 +2761,7 @@ func (x RpcObjectSetDetailsResponseErrorCode) String() string {
}
func (RpcObjectSetDetailsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1, 0, 0}
}
type RpcObjectToSetResponseErrorCode int32
@@ -2761,7 +2789,7 @@ func (x RpcObjectToSetResponseErrorCode) String() string {
}
func (RpcObjectToSetResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1, 0, 0}
}
type RpcObjectToCollectionResponseErrorCode int32
@@ -2789,7 +2817,7 @@ func (x RpcObjectToCollectionResponseErrorCode) String() string {
}
func (RpcObjectToCollectionResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33, 1, 0, 0}
}
type RpcObjectUndoResponseErrorCode int32
@@ -2820,7 +2848,7 @@ func (x RpcObjectUndoResponseErrorCode) String() string {
}
func (RpcObjectUndoResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1, 0, 0}
}
type RpcObjectRedoResponseErrorCode int32
@@ -2851,7 +2879,7 @@ func (x RpcObjectRedoResponseErrorCode) String() string {
}
func (RpcObjectRedoResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1, 0, 0}
}
type RpcObjectListDuplicateResponseErrorCode int32
@@ -2879,7 +2907,7 @@ func (x RpcObjectListDuplicateResponseErrorCode) String() string {
}
func (RpcObjectListDuplicateResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1, 0, 0}
}
type RpcObjectListDeleteResponseErrorCode int32
@@ -2907,7 +2935,7 @@ func (x RpcObjectListDeleteResponseErrorCode) String() string {
}
func (RpcObjectListDeleteResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1, 0, 0}
}
type RpcObjectListSetIsArchivedResponseErrorCode int32
@@ -2935,7 +2963,7 @@ func (x RpcObjectListSetIsArchivedResponseErrorCode) String() string {
}
func (RpcObjectListSetIsArchivedResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1, 0, 0}
}
type RpcObjectListSetIsFavoriteResponseErrorCode int32
@@ -2963,7 +2991,7 @@ func (x RpcObjectListSetIsFavoriteResponseErrorCode) String() string {
}
func (RpcObjectListSetIsFavoriteResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1, 0, 0}
}
type RpcObjectListSetObjectTypeResponseErrorCode int32
@@ -2991,7 +3019,7 @@ func (x RpcObjectListSetObjectTypeResponseErrorCode) String() string {
}
func (RpcObjectListSetObjectTypeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1, 0, 0}
}
type RpcObjectListSetDetailsResponseErrorCode int32
@@ -3019,7 +3047,7 @@ func (x RpcObjectListSetDetailsResponseErrorCode) String() string {
}
func (RpcObjectListSetDetailsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0, 0}
}
type RpcObjectListModifyDetailValuesResponseErrorCode int32
@@ -3047,7 +3075,7 @@ func (x RpcObjectListModifyDetailValuesResponseErrorCode) String() string {
}
func (RpcObjectListModifyDetailValuesResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0, 0}
}
type RpcObjectApplyTemplateResponseErrorCode int32
@@ -3075,7 +3103,7 @@ func (x RpcObjectApplyTemplateResponseErrorCode) String() string {
}
func (RpcObjectApplyTemplateResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0, 0}
}
type RpcObjectListExportResponseErrorCode int32
@@ -3103,7 +3131,7 @@ func (x RpcObjectListExportResponseErrorCode) String() string {
}
func (RpcObjectListExportResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0, 0}
}
type RpcObjectImportRequestMode int32
@@ -3128,7 +3156,7 @@ func (x RpcObjectImportRequestMode) String() string {
}
func (RpcObjectImportRequestMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 0}
}
type RpcObjectImportRequestPbParamsType int32
@@ -3153,7 +3181,7 @@ func (x RpcObjectImportRequestPbParamsType) String() string {
}
func (RpcObjectImportRequestPbParamsType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 5, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 5, 0}
}
type RpcObjectImportRequestCsvParamsMode int32
@@ -3178,7 +3206,7 @@ func (x RpcObjectImportRequestCsvParamsMode) String() string {
}
func (RpcObjectImportRequestCsvParamsMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 6, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 6, 0}
}
type RpcObjectImportResponseErrorCode int32
@@ -3224,7 +3252,7 @@ func (x RpcObjectImportResponseErrorCode) String() string {
}
func (RpcObjectImportResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0, 0}
}
type RpcObjectImportNotionValidateTokenResponseErrorCode int32
@@ -3267,7 +3295,7 @@ func (x RpcObjectImportNotionValidateTokenResponseErrorCode) String() string {
}
func (RpcObjectImportNotionValidateTokenResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0, 1, 0, 0}
}
type RpcObjectImportListResponseErrorCode int32
@@ -3298,7 +3326,7 @@ func (x RpcObjectImportListResponseErrorCode) String() string {
}
func (RpcObjectImportListResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0, 0}
}
type RpcObjectImportListImportResponseType int32
@@ -3329,7 +3357,7 @@ func (x RpcObjectImportListImportResponseType) String() string {
}
func (RpcObjectImportListImportResponseType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 2, 0}
}
type RpcObjectImportUseCaseRequestUseCase int32
@@ -3369,7 +3397,7 @@ func (x RpcObjectImportUseCaseRequestUseCase) String() string {
}
func (RpcObjectImportUseCaseRequestUseCase) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 0, 0}
}
type RpcObjectImportUseCaseResponseErrorCode int32
@@ -3397,7 +3425,7 @@ func (x RpcObjectImportUseCaseResponseErrorCode) String() string {
}
func (RpcObjectImportUseCaseResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0, 0}
}
type RpcObjectImportExperienceResponseErrorCode int32
@@ -3428,7 +3456,7 @@ func (x RpcObjectImportExperienceResponseErrorCode) String() string {
}
func (RpcObjectImportExperienceResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 49, 1, 0, 0}
}
type RpcObjectCollectionAddResponseErrorCode int32
@@ -8514,6 +8542,230 @@ func (RpcDeviceNetworkStateSetResponseErrorCode) EnumDescriptor() ([]byte, []int
return fileDescriptor_8261c968b2e6f45c, []int{0, 39, 2, 0, 1, 0, 0}
}
+type RpcChatAddMessageResponseErrorCode int32
+
+const (
+ RpcChatAddMessageResponseError_NULL RpcChatAddMessageResponseErrorCode = 0
+ RpcChatAddMessageResponseError_UNKNOWN_ERROR RpcChatAddMessageResponseErrorCode = 1
+ RpcChatAddMessageResponseError_BAD_INPUT RpcChatAddMessageResponseErrorCode = 2
+)
+
+var RpcChatAddMessageResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatAddMessageResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatAddMessageResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatAddMessageResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatAddMessageResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 0, 1, 0, 0}
+}
+
+type RpcChatEditMessageContentResponseErrorCode int32
+
+const (
+ RpcChatEditMessageContentResponseError_NULL RpcChatEditMessageContentResponseErrorCode = 0
+ RpcChatEditMessageContentResponseError_UNKNOWN_ERROR RpcChatEditMessageContentResponseErrorCode = 1
+ RpcChatEditMessageContentResponseError_BAD_INPUT RpcChatEditMessageContentResponseErrorCode = 2
+)
+
+var RpcChatEditMessageContentResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatEditMessageContentResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatEditMessageContentResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatEditMessageContentResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatEditMessageContentResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 1, 1, 0, 0}
+}
+
+type RpcChatToggleMessageReactionResponseErrorCode int32
+
+const (
+ RpcChatToggleMessageReactionResponseError_NULL RpcChatToggleMessageReactionResponseErrorCode = 0
+ RpcChatToggleMessageReactionResponseError_UNKNOWN_ERROR RpcChatToggleMessageReactionResponseErrorCode = 1
+ RpcChatToggleMessageReactionResponseError_BAD_INPUT RpcChatToggleMessageReactionResponseErrorCode = 2
+)
+
+var RpcChatToggleMessageReactionResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatToggleMessageReactionResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatToggleMessageReactionResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatToggleMessageReactionResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatToggleMessageReactionResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 2, 1, 0, 0}
+}
+
+type RpcChatDeleteMessageResponseErrorCode int32
+
+const (
+ RpcChatDeleteMessageResponseError_NULL RpcChatDeleteMessageResponseErrorCode = 0
+ RpcChatDeleteMessageResponseError_UNKNOWN_ERROR RpcChatDeleteMessageResponseErrorCode = 1
+ RpcChatDeleteMessageResponseError_BAD_INPUT RpcChatDeleteMessageResponseErrorCode = 2
+)
+
+var RpcChatDeleteMessageResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatDeleteMessageResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatDeleteMessageResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatDeleteMessageResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatDeleteMessageResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 3, 1, 0, 0}
+}
+
+type RpcChatGetMessagesResponseErrorCode int32
+
+const (
+ RpcChatGetMessagesResponseError_NULL RpcChatGetMessagesResponseErrorCode = 0
+ RpcChatGetMessagesResponseError_UNKNOWN_ERROR RpcChatGetMessagesResponseErrorCode = 1
+ RpcChatGetMessagesResponseError_BAD_INPUT RpcChatGetMessagesResponseErrorCode = 2
+)
+
+var RpcChatGetMessagesResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatGetMessagesResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatGetMessagesResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatGetMessagesResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatGetMessagesResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 4, 1, 0, 0}
+}
+
+type RpcChatGetMessagesByIdsResponseErrorCode int32
+
+const (
+ RpcChatGetMessagesByIdsResponseError_NULL RpcChatGetMessagesByIdsResponseErrorCode = 0
+ RpcChatGetMessagesByIdsResponseError_UNKNOWN_ERROR RpcChatGetMessagesByIdsResponseErrorCode = 1
+ RpcChatGetMessagesByIdsResponseError_BAD_INPUT RpcChatGetMessagesByIdsResponseErrorCode = 2
+)
+
+var RpcChatGetMessagesByIdsResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatGetMessagesByIdsResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatGetMessagesByIdsResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatGetMessagesByIdsResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatGetMessagesByIdsResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 5, 1, 0, 0}
+}
+
+type RpcChatSubscribeLastMessagesResponseErrorCode int32
+
+const (
+ RpcChatSubscribeLastMessagesResponseError_NULL RpcChatSubscribeLastMessagesResponseErrorCode = 0
+ RpcChatSubscribeLastMessagesResponseError_UNKNOWN_ERROR RpcChatSubscribeLastMessagesResponseErrorCode = 1
+ RpcChatSubscribeLastMessagesResponseError_BAD_INPUT RpcChatSubscribeLastMessagesResponseErrorCode = 2
+)
+
+var RpcChatSubscribeLastMessagesResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatSubscribeLastMessagesResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatSubscribeLastMessagesResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatSubscribeLastMessagesResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatSubscribeLastMessagesResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 6, 1, 0, 0}
+}
+
+type RpcChatUnsubscribeResponseErrorCode int32
+
+const (
+ RpcChatUnsubscribeResponseError_NULL RpcChatUnsubscribeResponseErrorCode = 0
+ RpcChatUnsubscribeResponseError_UNKNOWN_ERROR RpcChatUnsubscribeResponseErrorCode = 1
+ RpcChatUnsubscribeResponseError_BAD_INPUT RpcChatUnsubscribeResponseErrorCode = 2
+)
+
+var RpcChatUnsubscribeResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcChatUnsubscribeResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcChatUnsubscribeResponseErrorCode) String() string {
+ return proto.EnumName(RpcChatUnsubscribeResponseErrorCode_name, int32(x))
+}
+
+func (RpcChatUnsubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 7, 1, 0, 0}
+}
+
// Rpc is a namespace, that agregates all of the service commands between client and middleware.
// Structure: Topic > Subtopic > Subsub... > Action > (Request, Response).
// Request – message from a client.
@@ -19754,6 +20006,190 @@ func (m *RpcObjectCreateFromUrlResponseError) GetDescription() string {
return ""
}
+type RpcObjectChatAdd struct {
+}
+
+func (m *RpcObjectChatAdd) Reset() { *m = RpcObjectChatAdd{} }
+func (m *RpcObjectChatAdd) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectChatAdd) ProtoMessage() {}
+func (*RpcObjectChatAdd) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10}
+}
+func (m *RpcObjectChatAdd) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectChatAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectChatAdd.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectChatAdd) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectChatAdd.Merge(m, src)
+}
+func (m *RpcObjectChatAdd) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectChatAdd) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectChatAdd.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectChatAdd proto.InternalMessageInfo
+
+type RpcObjectChatAddRequest struct {
+ ObjectId string `protobuf:"bytes,1,opt,name=objectId,proto3" json:"objectId,omitempty"`
+}
+
+func (m *RpcObjectChatAddRequest) Reset() { *m = RpcObjectChatAddRequest{} }
+func (m *RpcObjectChatAddRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectChatAddRequest) ProtoMessage() {}
+func (*RpcObjectChatAddRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 0}
+}
+func (m *RpcObjectChatAddRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectChatAddRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectChatAddRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectChatAddRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectChatAddRequest.Merge(m, src)
+}
+func (m *RpcObjectChatAddRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectChatAddRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectChatAddRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectChatAddRequest proto.InternalMessageInfo
+
+func (m *RpcObjectChatAddRequest) GetObjectId() string {
+ if m != nil {
+ return m.ObjectId
+ }
+ return ""
+}
+
+type RpcObjectChatAddResponse struct {
+ Error *RpcObjectChatAddResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ ChatId string `protobuf:"bytes,2,opt,name=chatId,proto3" json:"chatId,omitempty"`
+}
+
+func (m *RpcObjectChatAddResponse) Reset() { *m = RpcObjectChatAddResponse{} }
+func (m *RpcObjectChatAddResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectChatAddResponse) ProtoMessage() {}
+func (*RpcObjectChatAddResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1}
+}
+func (m *RpcObjectChatAddResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectChatAddResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectChatAddResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectChatAddResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectChatAddResponse.Merge(m, src)
+}
+func (m *RpcObjectChatAddResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectChatAddResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectChatAddResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectChatAddResponse proto.InternalMessageInfo
+
+func (m *RpcObjectChatAddResponse) GetError() *RpcObjectChatAddResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcObjectChatAddResponse) GetChatId() string {
+ if m != nil {
+ return m.ChatId
+ }
+ return ""
+}
+
+type RpcObjectChatAddResponseError struct {
+ Code RpcObjectChatAddResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectChatAddResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcObjectChatAddResponseError) Reset() { *m = RpcObjectChatAddResponseError{} }
+func (m *RpcObjectChatAddResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectChatAddResponseError) ProtoMessage() {}
+func (*RpcObjectChatAddResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1, 0}
+}
+func (m *RpcObjectChatAddResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectChatAddResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectChatAddResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectChatAddResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectChatAddResponseError.Merge(m, src)
+}
+func (m *RpcObjectChatAddResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectChatAddResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectChatAddResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectChatAddResponseError proto.InternalMessageInfo
+
+func (m *RpcObjectChatAddResponseError) GetCode() RpcObjectChatAddResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcObjectChatAddResponseError_NULL
+}
+
+func (m *RpcObjectChatAddResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
type RpcObjectBookmarkFetch struct {
}
@@ -19761,7 +20197,7 @@ func (m *RpcObjectBookmarkFetch) Reset() { *m = RpcObjectBookmarkFetch{}
func (m *RpcObjectBookmarkFetch) String() string { return proto.CompactTextString(m) }
func (*RpcObjectBookmarkFetch) ProtoMessage() {}
func (*RpcObjectBookmarkFetch) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11}
}
func (m *RpcObjectBookmarkFetch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -19799,7 +20235,7 @@ func (m *RpcObjectBookmarkFetchRequest) Reset() { *m = RpcObjectBookmark
func (m *RpcObjectBookmarkFetchRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectBookmarkFetchRequest) ProtoMessage() {}
func (*RpcObjectBookmarkFetchRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 0}
}
func (m *RpcObjectBookmarkFetchRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -19850,7 +20286,7 @@ func (m *RpcObjectBookmarkFetchResponse) Reset() { *m = RpcObjectBookmar
func (m *RpcObjectBookmarkFetchResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectBookmarkFetchResponse) ProtoMessage() {}
func (*RpcObjectBookmarkFetchResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1}
}
func (m *RpcObjectBookmarkFetchResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -19895,7 +20331,7 @@ func (m *RpcObjectBookmarkFetchResponseError) Reset() { *m = RpcObjectBo
func (m *RpcObjectBookmarkFetchResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectBookmarkFetchResponseError) ProtoMessage() {}
func (*RpcObjectBookmarkFetchResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 10, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1, 0}
}
func (m *RpcObjectBookmarkFetchResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -19945,7 +20381,7 @@ func (m *RpcObjectToBookmark) Reset() { *m = RpcObjectToBookmark{} }
func (m *RpcObjectToBookmark) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToBookmark) ProtoMessage() {}
func (*RpcObjectToBookmark) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12}
}
func (m *RpcObjectToBookmark) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -19983,7 +20419,7 @@ func (m *RpcObjectToBookmarkRequest) Reset() { *m = RpcObjectToBookmarkR
func (m *RpcObjectToBookmarkRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToBookmarkRequest) ProtoMessage() {}
func (*RpcObjectToBookmarkRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 0}
}
func (m *RpcObjectToBookmarkRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20035,7 +20471,7 @@ func (m *RpcObjectToBookmarkResponse) Reset() { *m = RpcObjectToBookmark
func (m *RpcObjectToBookmarkResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToBookmarkResponse) ProtoMessage() {}
func (*RpcObjectToBookmarkResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1}
}
func (m *RpcObjectToBookmarkResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20087,7 +20523,7 @@ func (m *RpcObjectToBookmarkResponseError) Reset() { *m = RpcObjectToBoo
func (m *RpcObjectToBookmarkResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToBookmarkResponseError) ProtoMessage() {}
func (*RpcObjectToBookmarkResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 11, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1, 0}
}
func (m *RpcObjectToBookmarkResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20137,7 +20573,7 @@ func (m *RpcObjectDuplicate) Reset() { *m = RpcObjectDuplicate{} }
func (m *RpcObjectDuplicate) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDuplicate) ProtoMessage() {}
func (*RpcObjectDuplicate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13}
}
func (m *RpcObjectDuplicate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20174,7 +20610,7 @@ func (m *RpcObjectDuplicateRequest) Reset() { *m = RpcObjectDuplicateReq
func (m *RpcObjectDuplicateRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDuplicateRequest) ProtoMessage() {}
func (*RpcObjectDuplicateRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 0}
}
func (m *RpcObjectDuplicateRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20220,7 +20656,7 @@ func (m *RpcObjectDuplicateResponse) Reset() { *m = RpcObjectDuplicateRe
func (m *RpcObjectDuplicateResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDuplicateResponse) ProtoMessage() {}
func (*RpcObjectDuplicateResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1}
}
func (m *RpcObjectDuplicateResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20272,7 +20708,7 @@ func (m *RpcObjectDuplicateResponseError) Reset() { *m = RpcObjectDuplic
func (m *RpcObjectDuplicateResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDuplicateResponseError) ProtoMessage() {}
func (*RpcObjectDuplicateResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 12, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1, 0}
}
func (m *RpcObjectDuplicateResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20322,7 +20758,7 @@ func (m *RpcObjectOpenBreadcrumbs) Reset() { *m = RpcObjectOpenBreadcrum
func (m *RpcObjectOpenBreadcrumbs) String() string { return proto.CompactTextString(m) }
func (*RpcObjectOpenBreadcrumbs) ProtoMessage() {}
func (*RpcObjectOpenBreadcrumbs) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14}
}
func (m *RpcObjectOpenBreadcrumbs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20360,7 +20796,7 @@ func (m *RpcObjectOpenBreadcrumbsRequest) Reset() { *m = RpcObjectOpenBr
func (m *RpcObjectOpenBreadcrumbsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectOpenBreadcrumbsRequest) ProtoMessage() {}
func (*RpcObjectOpenBreadcrumbsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 0}
}
func (m *RpcObjectOpenBreadcrumbsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20414,7 +20850,7 @@ func (m *RpcObjectOpenBreadcrumbsResponse) Reset() { *m = RpcObjectOpenB
func (m *RpcObjectOpenBreadcrumbsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectOpenBreadcrumbsResponse) ProtoMessage() {}
func (*RpcObjectOpenBreadcrumbsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1}
}
func (m *RpcObjectOpenBreadcrumbsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20480,7 +20916,7 @@ func (m *RpcObjectOpenBreadcrumbsResponseError) Reset() { *m = RpcObject
func (m *RpcObjectOpenBreadcrumbsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectOpenBreadcrumbsResponseError) ProtoMessage() {}
func (*RpcObjectOpenBreadcrumbsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 13, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1, 0}
}
func (m *RpcObjectOpenBreadcrumbsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20530,7 +20966,7 @@ func (m *RpcObjectSetBreadcrumbs) Reset() { *m = RpcObjectSetBreadcrumbs
func (m *RpcObjectSetBreadcrumbs) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetBreadcrumbs) ProtoMessage() {}
func (*RpcObjectSetBreadcrumbs) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15}
}
func (m *RpcObjectSetBreadcrumbs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20568,7 +21004,7 @@ func (m *RpcObjectSetBreadcrumbsRequest) Reset() { *m = RpcObjectSetBrea
func (m *RpcObjectSetBreadcrumbsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetBreadcrumbsRequest) ProtoMessage() {}
func (*RpcObjectSetBreadcrumbsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 0}
}
func (m *RpcObjectSetBreadcrumbsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20620,7 +21056,7 @@ func (m *RpcObjectSetBreadcrumbsResponse) Reset() { *m = RpcObjectSetBre
func (m *RpcObjectSetBreadcrumbsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetBreadcrumbsResponse) ProtoMessage() {}
func (*RpcObjectSetBreadcrumbsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1}
}
func (m *RpcObjectSetBreadcrumbsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20672,7 +21108,7 @@ func (m *RpcObjectSetBreadcrumbsResponseError) Reset() { *m = RpcObjectS
func (m *RpcObjectSetBreadcrumbsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetBreadcrumbsResponseError) ProtoMessage() {}
func (*RpcObjectSetBreadcrumbsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 14, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1, 0}
}
func (m *RpcObjectSetBreadcrumbsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20722,7 +21158,7 @@ func (m *RpcObjectShareByLink) Reset() { *m = RpcObjectShareByLink{} }
func (m *RpcObjectShareByLink) String() string { return proto.CompactTextString(m) }
func (*RpcObjectShareByLink) ProtoMessage() {}
func (*RpcObjectShareByLink) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16}
}
func (m *RpcObjectShareByLink) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20759,7 +21195,7 @@ func (m *RpcObjectShareByLinkRequest) Reset() { *m = RpcObjectShareByLin
func (m *RpcObjectShareByLinkRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectShareByLinkRequest) ProtoMessage() {}
func (*RpcObjectShareByLinkRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 0}
}
func (m *RpcObjectShareByLinkRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20804,7 +21240,7 @@ func (m *RpcObjectShareByLinkResponse) Reset() { *m = RpcObjectShareByLi
func (m *RpcObjectShareByLinkResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectShareByLinkResponse) ProtoMessage() {}
func (*RpcObjectShareByLinkResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1}
}
func (m *RpcObjectShareByLinkResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20856,7 +21292,7 @@ func (m *RpcObjectShareByLinkResponseError) Reset() { *m = RpcObjectShar
func (m *RpcObjectShareByLinkResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectShareByLinkResponseError) ProtoMessage() {}
func (*RpcObjectShareByLinkResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 15, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1, 0}
}
func (m *RpcObjectShareByLinkResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20907,7 +21343,7 @@ func (m *RpcObjectSearch) Reset() { *m = RpcObjectSearch{} }
func (m *RpcObjectSearch) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearch) ProtoMessage() {}
func (*RpcObjectSearch) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17}
}
func (m *RpcObjectSearch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -20952,7 +21388,7 @@ func (m *RpcObjectSearchRequest) Reset() { *m = RpcObjectSearchRequest{}
func (m *RpcObjectSearchRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchRequest) ProtoMessage() {}
func (*RpcObjectSearchRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 0}
}
func (m *RpcObjectSearchRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21039,7 +21475,7 @@ func (m *RpcObjectSearchResponse) Reset() { *m = RpcObjectSearchResponse
func (m *RpcObjectSearchResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchResponse) ProtoMessage() {}
func (*RpcObjectSearchResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1}
}
func (m *RpcObjectSearchResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21091,7 +21527,7 @@ func (m *RpcObjectSearchResponseError) Reset() { *m = RpcObjectSearchRes
func (m *RpcObjectSearchResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchResponseError) ProtoMessage() {}
func (*RpcObjectSearchResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 16, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1, 0}
}
func (m *RpcObjectSearchResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21141,7 +21577,7 @@ func (m *RpcObjectSearchWithMeta) Reset() { *m = RpcObjectSearchWithMeta
func (m *RpcObjectSearchWithMeta) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchWithMeta) ProtoMessage() {}
func (*RpcObjectSearchWithMeta) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18}
}
func (m *RpcObjectSearchWithMeta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21189,7 +21625,7 @@ func (m *RpcObjectSearchWithMetaRequest) Reset() { *m = RpcObjectSearchW
func (m *RpcObjectSearchWithMetaRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchWithMetaRequest) ProtoMessage() {}
func (*RpcObjectSearchWithMetaRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 0}
}
func (m *RpcObjectSearchWithMetaRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21297,7 +21733,7 @@ func (m *RpcObjectSearchWithMetaResponse) Reset() { *m = RpcObjectSearch
func (m *RpcObjectSearchWithMetaResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchWithMetaResponse) ProtoMessage() {}
func (*RpcObjectSearchWithMetaResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 1}
}
func (m *RpcObjectSearchWithMetaResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21349,7 +21785,7 @@ func (m *RpcObjectSearchWithMetaResponseError) Reset() { *m = RpcObjectS
func (m *RpcObjectSearchWithMetaResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchWithMetaResponseError) ProtoMessage() {}
func (*RpcObjectSearchWithMetaResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 17, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 1, 0}
}
func (m *RpcObjectSearchWithMetaResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21399,7 +21835,7 @@ func (m *RpcObjectGraph) Reset() { *m = RpcObjectGraph{} }
func (m *RpcObjectGraph) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGraph) ProtoMessage() {}
func (*RpcObjectGraph) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19}
}
func (m *RpcObjectGraph) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21443,7 +21879,7 @@ func (m *RpcObjectGraphRequest) Reset() { *m = RpcObjectGraphRequest{} }
func (m *RpcObjectGraphRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGraphRequest) ProtoMessage() {}
func (*RpcObjectGraphRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 0}
}
func (m *RpcObjectGraphRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21536,7 +21972,7 @@ func (m *RpcObjectGraphEdge) Reset() { *m = RpcObjectGraphEdge{} }
func (m *RpcObjectGraphEdge) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGraphEdge) ProtoMessage() {}
func (*RpcObjectGraphEdge) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 1}
}
func (m *RpcObjectGraphEdge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21631,7 +22067,7 @@ func (m *RpcObjectGraphResponse) Reset() { *m = RpcObjectGraphResponse{}
func (m *RpcObjectGraphResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGraphResponse) ProtoMessage() {}
func (*RpcObjectGraphResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 2}
}
func (m *RpcObjectGraphResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21690,7 +22126,7 @@ func (m *RpcObjectGraphResponseError) Reset() { *m = RpcObjectGraphRespo
func (m *RpcObjectGraphResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGraphResponseError) ProtoMessage() {}
func (*RpcObjectGraphResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 18, 2, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 2, 0}
}
func (m *RpcObjectGraphResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21740,7 +22176,7 @@ func (m *RpcObjectSearchSubscribe) Reset() { *m = RpcObjectSearchSubscri
func (m *RpcObjectSearchSubscribe) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchSubscribe) ProtoMessage() {}
func (*RpcObjectSearchSubscribe) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20}
}
func (m *RpcObjectSearchSubscribe) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21799,7 +22235,7 @@ func (m *RpcObjectSearchSubscribeRequest) Reset() { *m = RpcObjectSearch
func (m *RpcObjectSearchSubscribeRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchSubscribeRequest) ProtoMessage() {}
func (*RpcObjectSearchSubscribeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 0}
}
func (m *RpcObjectSearchSubscribeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21924,7 +22360,7 @@ func (m *RpcObjectSearchSubscribeResponse) Reset() { *m = RpcObjectSearc
func (m *RpcObjectSearchSubscribeResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchSubscribeResponse) ProtoMessage() {}
func (*RpcObjectSearchSubscribeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1}
}
func (m *RpcObjectSearchSubscribeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -21997,7 +22433,7 @@ func (m *RpcObjectSearchSubscribeResponseError) Reset() { *m = RpcObject
func (m *RpcObjectSearchSubscribeResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchSubscribeResponseError) ProtoMessage() {}
func (*RpcObjectSearchSubscribeResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 19, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1, 0}
}
func (m *RpcObjectSearchSubscribeResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22047,7 +22483,7 @@ func (m *RpcObjectGroupsSubscribe) Reset() { *m = RpcObjectGroupsSubscri
func (m *RpcObjectGroupsSubscribe) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGroupsSubscribe) ProtoMessage() {}
func (*RpcObjectGroupsSubscribe) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21}
}
func (m *RpcObjectGroupsSubscribe) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22089,7 +22525,7 @@ func (m *RpcObjectGroupsSubscribeRequest) Reset() { *m = RpcObjectGroups
func (m *RpcObjectGroupsSubscribeRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGroupsSubscribeRequest) ProtoMessage() {}
func (*RpcObjectGroupsSubscribeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 0}
}
func (m *RpcObjectGroupsSubscribeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22170,7 +22606,7 @@ func (m *RpcObjectGroupsSubscribeResponse) Reset() { *m = RpcObjectGroup
func (m *RpcObjectGroupsSubscribeResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGroupsSubscribeResponse) ProtoMessage() {}
func (*RpcObjectGroupsSubscribeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1}
}
func (m *RpcObjectGroupsSubscribeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22229,7 +22665,7 @@ func (m *RpcObjectGroupsSubscribeResponseError) Reset() { *m = RpcObject
func (m *RpcObjectGroupsSubscribeResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectGroupsSubscribeResponseError) ProtoMessage() {}
func (*RpcObjectGroupsSubscribeResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 20, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1, 0}
}
func (m *RpcObjectGroupsSubscribeResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22279,7 +22715,7 @@ func (m *RpcObjectSubscribeIds) Reset() { *m = RpcObjectSubscribeIds{} }
func (m *RpcObjectSubscribeIds) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSubscribeIds) ProtoMessage() {}
func (*RpcObjectSubscribeIds) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22}
}
func (m *RpcObjectSubscribeIds) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22327,7 +22763,7 @@ func (m *RpcObjectSubscribeIdsRequest) Reset() { *m = RpcObjectSubscribe
func (m *RpcObjectSubscribeIdsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSubscribeIdsRequest) ProtoMessage() {}
func (*RpcObjectSubscribeIdsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 0}
}
func (m *RpcObjectSubscribeIdsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22402,7 +22838,7 @@ func (m *RpcObjectSubscribeIdsResponse) Reset() { *m = RpcObjectSubscrib
func (m *RpcObjectSubscribeIdsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSubscribeIdsResponse) ProtoMessage() {}
func (*RpcObjectSubscribeIdsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1}
}
func (m *RpcObjectSubscribeIdsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22468,7 +22904,7 @@ func (m *RpcObjectSubscribeIdsResponseError) Reset() { *m = RpcObjectSub
func (m *RpcObjectSubscribeIdsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSubscribeIdsResponseError) ProtoMessage() {}
func (*RpcObjectSubscribeIdsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 21, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1, 0}
}
func (m *RpcObjectSubscribeIdsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22518,7 +22954,7 @@ func (m *RpcObjectSearchUnsubscribe) Reset() { *m = RpcObjectSearchUnsub
func (m *RpcObjectSearchUnsubscribe) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchUnsubscribe) ProtoMessage() {}
func (*RpcObjectSearchUnsubscribe) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23}
}
func (m *RpcObjectSearchUnsubscribe) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22555,7 +22991,7 @@ func (m *RpcObjectSearchUnsubscribeRequest) Reset() { *m = RpcObjectSear
func (m *RpcObjectSearchUnsubscribeRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchUnsubscribeRequest) ProtoMessage() {}
func (*RpcObjectSearchUnsubscribeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 0}
}
func (m *RpcObjectSearchUnsubscribeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22599,7 +23035,7 @@ func (m *RpcObjectSearchUnsubscribeResponse) Reset() { *m = RpcObjectSea
func (m *RpcObjectSearchUnsubscribeResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchUnsubscribeResponse) ProtoMessage() {}
func (*RpcObjectSearchUnsubscribeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1}
}
func (m *RpcObjectSearchUnsubscribeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22646,7 +23082,7 @@ func (m *RpcObjectSearchUnsubscribeResponseError) Reset() {
func (m *RpcObjectSearchUnsubscribeResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSearchUnsubscribeResponseError) ProtoMessage() {}
func (*RpcObjectSearchUnsubscribeResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 22, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1, 0}
}
func (m *RpcObjectSearchUnsubscribeResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22696,7 +23132,7 @@ func (m *RpcObjectSetLayout) Reset() { *m = RpcObjectSetLayout{} }
func (m *RpcObjectSetLayout) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetLayout) ProtoMessage() {}
func (*RpcObjectSetLayout) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24}
}
func (m *RpcObjectSetLayout) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22734,7 +23170,7 @@ func (m *RpcObjectSetLayoutRequest) Reset() { *m = RpcObjectSetLayoutReq
func (m *RpcObjectSetLayoutRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetLayoutRequest) ProtoMessage() {}
func (*RpcObjectSetLayoutRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 0}
}
func (m *RpcObjectSetLayoutRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22786,7 +23222,7 @@ func (m *RpcObjectSetLayoutResponse) Reset() { *m = RpcObjectSetLayoutRe
func (m *RpcObjectSetLayoutResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetLayoutResponse) ProtoMessage() {}
func (*RpcObjectSetLayoutResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1}
}
func (m *RpcObjectSetLayoutResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22838,7 +23274,7 @@ func (m *RpcObjectSetLayoutResponseError) Reset() { *m = RpcObjectSetLay
func (m *RpcObjectSetLayoutResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetLayoutResponseError) ProtoMessage() {}
func (*RpcObjectSetLayoutResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 23, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1, 0}
}
func (m *RpcObjectSetLayoutResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22888,7 +23324,7 @@ func (m *RpcObjectSetIsFavorite) Reset() { *m = RpcObjectSetIsFavorite{}
func (m *RpcObjectSetIsFavorite) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsFavorite) ProtoMessage() {}
func (*RpcObjectSetIsFavorite) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25}
}
func (m *RpcObjectSetIsFavorite) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22926,7 +23362,7 @@ func (m *RpcObjectSetIsFavoriteRequest) Reset() { *m = RpcObjectSetIsFav
func (m *RpcObjectSetIsFavoriteRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsFavoriteRequest) ProtoMessage() {}
func (*RpcObjectSetIsFavoriteRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 0}
}
func (m *RpcObjectSetIsFavoriteRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -22978,7 +23414,7 @@ func (m *RpcObjectSetIsFavoriteResponse) Reset() { *m = RpcObjectSetIsFa
func (m *RpcObjectSetIsFavoriteResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsFavoriteResponse) ProtoMessage() {}
func (*RpcObjectSetIsFavoriteResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1}
}
func (m *RpcObjectSetIsFavoriteResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23030,7 +23466,7 @@ func (m *RpcObjectSetIsFavoriteResponseError) Reset() { *m = RpcObjectSe
func (m *RpcObjectSetIsFavoriteResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsFavoriteResponseError) ProtoMessage() {}
func (*RpcObjectSetIsFavoriteResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 24, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1, 0}
}
func (m *RpcObjectSetIsFavoriteResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23080,7 +23516,7 @@ func (m *RpcObjectSetIsArchived) Reset() { *m = RpcObjectSetIsArchived{}
func (m *RpcObjectSetIsArchived) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsArchived) ProtoMessage() {}
func (*RpcObjectSetIsArchived) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26}
}
func (m *RpcObjectSetIsArchived) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23118,7 +23554,7 @@ func (m *RpcObjectSetIsArchivedRequest) Reset() { *m = RpcObjectSetIsArc
func (m *RpcObjectSetIsArchivedRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsArchivedRequest) ProtoMessage() {}
func (*RpcObjectSetIsArchivedRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 0}
}
func (m *RpcObjectSetIsArchivedRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23169,7 +23605,7 @@ func (m *RpcObjectSetIsArchivedResponse) Reset() { *m = RpcObjectSetIsAr
func (m *RpcObjectSetIsArchivedResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsArchivedResponse) ProtoMessage() {}
func (*RpcObjectSetIsArchivedResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1}
}
func (m *RpcObjectSetIsArchivedResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23214,7 +23650,7 @@ func (m *RpcObjectSetIsArchivedResponseError) Reset() { *m = RpcObjectSe
func (m *RpcObjectSetIsArchivedResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetIsArchivedResponseError) ProtoMessage() {}
func (*RpcObjectSetIsArchivedResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 25, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1, 0}
}
func (m *RpcObjectSetIsArchivedResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23264,7 +23700,7 @@ func (m *RpcObjectSetSource) Reset() { *m = RpcObjectSetSource{} }
func (m *RpcObjectSetSource) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetSource) ProtoMessage() {}
func (*RpcObjectSetSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27}
}
func (m *RpcObjectSetSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23302,7 +23738,7 @@ func (m *RpcObjectSetSourceRequest) Reset() { *m = RpcObjectSetSourceReq
func (m *RpcObjectSetSourceRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetSourceRequest) ProtoMessage() {}
func (*RpcObjectSetSourceRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 0}
}
func (m *RpcObjectSetSourceRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23354,7 +23790,7 @@ func (m *RpcObjectSetSourceResponse) Reset() { *m = RpcObjectSetSourceRe
func (m *RpcObjectSetSourceResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetSourceResponse) ProtoMessage() {}
func (*RpcObjectSetSourceResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1}
}
func (m *RpcObjectSetSourceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23406,7 +23842,7 @@ func (m *RpcObjectSetSourceResponseError) Reset() { *m = RpcObjectSetSou
func (m *RpcObjectSetSourceResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetSourceResponseError) ProtoMessage() {}
func (*RpcObjectSetSourceResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 26, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1, 0}
}
func (m *RpcObjectSetSourceResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23456,7 +23892,7 @@ func (m *RpcObjectWorkspaceSetDashboard) Reset() { *m = RpcObjectWorkspa
func (m *RpcObjectWorkspaceSetDashboard) String() string { return proto.CompactTextString(m) }
func (*RpcObjectWorkspaceSetDashboard) ProtoMessage() {}
func (*RpcObjectWorkspaceSetDashboard) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28}
}
func (m *RpcObjectWorkspaceSetDashboard) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23494,7 +23930,7 @@ func (m *RpcObjectWorkspaceSetDashboardRequest) Reset() { *m = RpcObject
func (m *RpcObjectWorkspaceSetDashboardRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectWorkspaceSetDashboardRequest) ProtoMessage() {}
func (*RpcObjectWorkspaceSetDashboardRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 0}
}
func (m *RpcObjectWorkspaceSetDashboardRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23549,7 +23985,7 @@ func (m *RpcObjectWorkspaceSetDashboardResponse) Reset() {
func (m *RpcObjectWorkspaceSetDashboardResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectWorkspaceSetDashboardResponse) ProtoMessage() {}
func (*RpcObjectWorkspaceSetDashboardResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1}
}
func (m *RpcObjectWorkspaceSetDashboardResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23612,7 +24048,7 @@ func (m *RpcObjectWorkspaceSetDashboardResponseError) String() string {
}
func (*RpcObjectWorkspaceSetDashboardResponseError) ProtoMessage() {}
func (*RpcObjectWorkspaceSetDashboardResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 27, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1, 0}
}
func (m *RpcObjectWorkspaceSetDashboardResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23662,7 +24098,7 @@ func (m *RpcObjectSetObjectType) Reset() { *m = RpcObjectSetObjectType{}
func (m *RpcObjectSetObjectType) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetObjectType) ProtoMessage() {}
func (*RpcObjectSetObjectType) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29}
}
func (m *RpcObjectSetObjectType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23700,7 +24136,7 @@ func (m *RpcObjectSetObjectTypeRequest) Reset() { *m = RpcObjectSetObjec
func (m *RpcObjectSetObjectTypeRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetObjectTypeRequest) ProtoMessage() {}
func (*RpcObjectSetObjectTypeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 0}
}
func (m *RpcObjectSetObjectTypeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23752,7 +24188,7 @@ func (m *RpcObjectSetObjectTypeResponse) Reset() { *m = RpcObjectSetObje
func (m *RpcObjectSetObjectTypeResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetObjectTypeResponse) ProtoMessage() {}
func (*RpcObjectSetObjectTypeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1}
}
func (m *RpcObjectSetObjectTypeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23804,7 +24240,7 @@ func (m *RpcObjectSetObjectTypeResponseError) Reset() { *m = RpcObjectSe
func (m *RpcObjectSetObjectTypeResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetObjectTypeResponseError) ProtoMessage() {}
func (*RpcObjectSetObjectTypeResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 28, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1, 0}
}
func (m *RpcObjectSetObjectTypeResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23854,7 +24290,7 @@ func (m *RpcObjectSetInternalFlags) Reset() { *m = RpcObjectSetInternalF
func (m *RpcObjectSetInternalFlags) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetInternalFlags) ProtoMessage() {}
func (*RpcObjectSetInternalFlags) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30}
}
func (m *RpcObjectSetInternalFlags) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23892,7 +24328,7 @@ func (m *RpcObjectSetInternalFlagsRequest) Reset() { *m = RpcObjectSetIn
func (m *RpcObjectSetInternalFlagsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetInternalFlagsRequest) ProtoMessage() {}
func (*RpcObjectSetInternalFlagsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 0}
}
func (m *RpcObjectSetInternalFlagsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23944,7 +24380,7 @@ func (m *RpcObjectSetInternalFlagsResponse) Reset() { *m = RpcObjectSetI
func (m *RpcObjectSetInternalFlagsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetInternalFlagsResponse) ProtoMessage() {}
func (*RpcObjectSetInternalFlagsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1}
}
func (m *RpcObjectSetInternalFlagsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -23998,7 +24434,7 @@ func (m *RpcObjectSetInternalFlagsResponseError) Reset() {
func (m *RpcObjectSetInternalFlagsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetInternalFlagsResponseError) ProtoMessage() {}
func (*RpcObjectSetInternalFlagsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 29, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1, 0}
}
func (m *RpcObjectSetInternalFlagsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24048,7 +24484,7 @@ func (m *RpcObjectSetDetails) Reset() { *m = RpcObjectSetDetails{} }
func (m *RpcObjectSetDetails) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetDetails) ProtoMessage() {}
func (*RpcObjectSetDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31}
}
func (m *RpcObjectSetDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24086,7 +24522,7 @@ func (m *RpcObjectSetDetailsRequest) Reset() { *m = RpcObjectSetDetailsR
func (m *RpcObjectSetDetailsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetDetailsRequest) ProtoMessage() {}
func (*RpcObjectSetDetailsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 0}
}
func (m *RpcObjectSetDetailsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24138,7 +24574,7 @@ func (m *RpcObjectSetDetailsResponse) Reset() { *m = RpcObjectSetDetails
func (m *RpcObjectSetDetailsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetDetailsResponse) ProtoMessage() {}
func (*RpcObjectSetDetailsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1}
}
func (m *RpcObjectSetDetailsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24190,7 +24626,7 @@ func (m *RpcObjectSetDetailsResponseError) Reset() { *m = RpcObjectSetDe
func (m *RpcObjectSetDetailsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectSetDetailsResponseError) ProtoMessage() {}
func (*RpcObjectSetDetailsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 30, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1, 0}
}
func (m *RpcObjectSetDetailsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24240,7 +24676,7 @@ func (m *RpcObjectToSet) Reset() { *m = RpcObjectToSet{} }
func (m *RpcObjectToSet) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToSet) ProtoMessage() {}
func (*RpcObjectToSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32}
}
func (m *RpcObjectToSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24278,7 +24714,7 @@ func (m *RpcObjectToSetRequest) Reset() { *m = RpcObjectToSetRequest{} }
func (m *RpcObjectToSetRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToSetRequest) ProtoMessage() {}
func (*RpcObjectToSetRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 0}
}
func (m *RpcObjectToSetRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24329,7 +24765,7 @@ func (m *RpcObjectToSetResponse) Reset() { *m = RpcObjectToSetResponse{}
func (m *RpcObjectToSetResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToSetResponse) ProtoMessage() {}
func (*RpcObjectToSetResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1}
}
func (m *RpcObjectToSetResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24374,7 +24810,7 @@ func (m *RpcObjectToSetResponseError) Reset() { *m = RpcObjectToSetRespo
func (m *RpcObjectToSetResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToSetResponseError) ProtoMessage() {}
func (*RpcObjectToSetResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 31, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1, 0}
}
func (m *RpcObjectToSetResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24424,7 +24860,7 @@ func (m *RpcObjectToCollection) Reset() { *m = RpcObjectToCollection{} }
func (m *RpcObjectToCollection) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToCollection) ProtoMessage() {}
func (*RpcObjectToCollection) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33}
}
func (m *RpcObjectToCollection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24461,7 +24897,7 @@ func (m *RpcObjectToCollectionRequest) Reset() { *m = RpcObjectToCollect
func (m *RpcObjectToCollectionRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToCollectionRequest) ProtoMessage() {}
func (*RpcObjectToCollectionRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33, 0}
}
func (m *RpcObjectToCollectionRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24505,7 +24941,7 @@ func (m *RpcObjectToCollectionResponse) Reset() { *m = RpcObjectToCollec
func (m *RpcObjectToCollectionResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToCollectionResponse) ProtoMessage() {}
func (*RpcObjectToCollectionResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33, 1}
}
func (m *RpcObjectToCollectionResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24550,7 +24986,7 @@ func (m *RpcObjectToCollectionResponseError) Reset() { *m = RpcObjectToC
func (m *RpcObjectToCollectionResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectToCollectionResponseError) ProtoMessage() {}
func (*RpcObjectToCollectionResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 32, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33, 1, 0}
}
func (m *RpcObjectToCollectionResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24603,7 +25039,7 @@ func (m *RpcObjectUndoRedoCounter) Reset() { *m = RpcObjectUndoRedoCount
func (m *RpcObjectUndoRedoCounter) String() string { return proto.CompactTextString(m) }
func (*RpcObjectUndoRedoCounter) ProtoMessage() {}
func (*RpcObjectUndoRedoCounter) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 33}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34}
}
func (m *RpcObjectUndoRedoCounter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24653,7 +25089,7 @@ func (m *RpcObjectUndo) Reset() { *m = RpcObjectUndo{} }
func (m *RpcObjectUndo) String() string { return proto.CompactTextString(m) }
func (*RpcObjectUndo) ProtoMessage() {}
func (*RpcObjectUndo) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35}
}
func (m *RpcObjectUndo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24690,7 +25126,7 @@ func (m *RpcObjectUndoRequest) Reset() { *m = RpcObjectUndoRequest{} }
func (m *RpcObjectUndoRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectUndoRequest) ProtoMessage() {}
func (*RpcObjectUndoRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 0}
}
func (m *RpcObjectUndoRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24738,7 +25174,7 @@ func (m *RpcObjectUndoResponse) Reset() { *m = RpcObjectUndoResponse{} }
func (m *RpcObjectUndoResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectUndoResponse) ProtoMessage() {}
func (*RpcObjectUndoResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1}
}
func (m *RpcObjectUndoResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24811,7 +25247,7 @@ func (m *RpcObjectUndoResponseError) Reset() { *m = RpcObjectUndoRespons
func (m *RpcObjectUndoResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectUndoResponseError) ProtoMessage() {}
func (*RpcObjectUndoResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 34, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1, 0}
}
func (m *RpcObjectUndoResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24861,7 +25297,7 @@ func (m *RpcObjectRedo) Reset() { *m = RpcObjectRedo{} }
func (m *RpcObjectRedo) String() string { return proto.CompactTextString(m) }
func (*RpcObjectRedo) ProtoMessage() {}
func (*RpcObjectRedo) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36}
}
func (m *RpcObjectRedo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24898,7 +25334,7 @@ func (m *RpcObjectRedoRequest) Reset() { *m = RpcObjectRedoRequest{} }
func (m *RpcObjectRedoRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectRedoRequest) ProtoMessage() {}
func (*RpcObjectRedoRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 0}
}
func (m *RpcObjectRedoRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -24946,7 +25382,7 @@ func (m *RpcObjectRedoResponse) Reset() { *m = RpcObjectRedoResponse{} }
func (m *RpcObjectRedoResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectRedoResponse) ProtoMessage() {}
func (*RpcObjectRedoResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1}
}
func (m *RpcObjectRedoResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25019,7 +25455,7 @@ func (m *RpcObjectRedoResponseError) Reset() { *m = RpcObjectRedoRespons
func (m *RpcObjectRedoResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectRedoResponseError) ProtoMessage() {}
func (*RpcObjectRedoResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 35, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1, 0}
}
func (m *RpcObjectRedoResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25069,7 +25505,7 @@ func (m *RpcObjectListDuplicate) Reset() { *m = RpcObjectListDuplicate{}
func (m *RpcObjectListDuplicate) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDuplicate) ProtoMessage() {}
func (*RpcObjectListDuplicate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37}
}
func (m *RpcObjectListDuplicate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25106,7 +25542,7 @@ func (m *RpcObjectListDuplicateRequest) Reset() { *m = RpcObjectListDupl
func (m *RpcObjectListDuplicateRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDuplicateRequest) ProtoMessage() {}
func (*RpcObjectListDuplicateRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 0}
}
func (m *RpcObjectListDuplicateRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25151,7 +25587,7 @@ func (m *RpcObjectListDuplicateResponse) Reset() { *m = RpcObjectListDup
func (m *RpcObjectListDuplicateResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDuplicateResponse) ProtoMessage() {}
func (*RpcObjectListDuplicateResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1}
}
func (m *RpcObjectListDuplicateResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25203,7 +25639,7 @@ func (m *RpcObjectListDuplicateResponseError) Reset() { *m = RpcObjectLi
func (m *RpcObjectListDuplicateResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDuplicateResponseError) ProtoMessage() {}
func (*RpcObjectListDuplicateResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 36, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1, 0}
}
func (m *RpcObjectListDuplicateResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25253,7 +25689,7 @@ func (m *RpcObjectListDelete) Reset() { *m = RpcObjectListDelete{} }
func (m *RpcObjectListDelete) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDelete) ProtoMessage() {}
func (*RpcObjectListDelete) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38}
}
func (m *RpcObjectListDelete) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25291,7 +25727,7 @@ func (m *RpcObjectListDeleteRequest) Reset() { *m = RpcObjectListDeleteR
func (m *RpcObjectListDeleteRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDeleteRequest) ProtoMessage() {}
func (*RpcObjectListDeleteRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 0}
}
func (m *RpcObjectListDeleteRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25336,7 +25772,7 @@ func (m *RpcObjectListDeleteResponse) Reset() { *m = RpcObjectListDelete
func (m *RpcObjectListDeleteResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDeleteResponse) ProtoMessage() {}
func (*RpcObjectListDeleteResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1}
}
func (m *RpcObjectListDeleteResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25388,7 +25824,7 @@ func (m *RpcObjectListDeleteResponseError) Reset() { *m = RpcObjectListD
func (m *RpcObjectListDeleteResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListDeleteResponseError) ProtoMessage() {}
func (*RpcObjectListDeleteResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 37, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1, 0}
}
func (m *RpcObjectListDeleteResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25438,7 +25874,7 @@ func (m *RpcObjectListSetIsArchived) Reset() { *m = RpcObjectListSetIsAr
func (m *RpcObjectListSetIsArchived) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsArchived) ProtoMessage() {}
func (*RpcObjectListSetIsArchived) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39}
}
func (m *RpcObjectListSetIsArchived) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25476,7 +25912,7 @@ func (m *RpcObjectListSetIsArchivedRequest) Reset() { *m = RpcObjectList
func (m *RpcObjectListSetIsArchivedRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsArchivedRequest) ProtoMessage() {}
func (*RpcObjectListSetIsArchivedRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 0}
}
func (m *RpcObjectListSetIsArchivedRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25527,7 +25963,7 @@ func (m *RpcObjectListSetIsArchivedResponse) Reset() { *m = RpcObjectLis
func (m *RpcObjectListSetIsArchivedResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsArchivedResponse) ProtoMessage() {}
func (*RpcObjectListSetIsArchivedResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1}
}
func (m *RpcObjectListSetIsArchivedResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25574,7 +26010,7 @@ func (m *RpcObjectListSetIsArchivedResponseError) Reset() {
func (m *RpcObjectListSetIsArchivedResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsArchivedResponseError) ProtoMessage() {}
func (*RpcObjectListSetIsArchivedResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 38, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1, 0}
}
func (m *RpcObjectListSetIsArchivedResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25624,7 +26060,7 @@ func (m *RpcObjectListSetIsFavorite) Reset() { *m = RpcObjectListSetIsFa
func (m *RpcObjectListSetIsFavorite) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsFavorite) ProtoMessage() {}
func (*RpcObjectListSetIsFavorite) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40}
}
func (m *RpcObjectListSetIsFavorite) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25662,7 +26098,7 @@ func (m *RpcObjectListSetIsFavoriteRequest) Reset() { *m = RpcObjectList
func (m *RpcObjectListSetIsFavoriteRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsFavoriteRequest) ProtoMessage() {}
func (*RpcObjectListSetIsFavoriteRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 0}
}
func (m *RpcObjectListSetIsFavoriteRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25713,7 +26149,7 @@ func (m *RpcObjectListSetIsFavoriteResponse) Reset() { *m = RpcObjectLis
func (m *RpcObjectListSetIsFavoriteResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsFavoriteResponse) ProtoMessage() {}
func (*RpcObjectListSetIsFavoriteResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1}
}
func (m *RpcObjectListSetIsFavoriteResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25760,7 +26196,7 @@ func (m *RpcObjectListSetIsFavoriteResponseError) Reset() {
func (m *RpcObjectListSetIsFavoriteResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetIsFavoriteResponseError) ProtoMessage() {}
func (*RpcObjectListSetIsFavoriteResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 39, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1, 0}
}
func (m *RpcObjectListSetIsFavoriteResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25810,7 +26246,7 @@ func (m *RpcObjectListSetObjectType) Reset() { *m = RpcObjectListSetObje
func (m *RpcObjectListSetObjectType) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetObjectType) ProtoMessage() {}
func (*RpcObjectListSetObjectType) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41}
}
func (m *RpcObjectListSetObjectType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25848,7 +26284,7 @@ func (m *RpcObjectListSetObjectTypeRequest) Reset() { *m = RpcObjectList
func (m *RpcObjectListSetObjectTypeRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetObjectTypeRequest) ProtoMessage() {}
func (*RpcObjectListSetObjectTypeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 0}
}
func (m *RpcObjectListSetObjectTypeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25900,7 +26336,7 @@ func (m *RpcObjectListSetObjectTypeResponse) Reset() { *m = RpcObjectLis
func (m *RpcObjectListSetObjectTypeResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetObjectTypeResponse) ProtoMessage() {}
func (*RpcObjectListSetObjectTypeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1}
}
func (m *RpcObjectListSetObjectTypeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -25954,7 +26390,7 @@ func (m *RpcObjectListSetObjectTypeResponseError) Reset() {
func (m *RpcObjectListSetObjectTypeResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetObjectTypeResponseError) ProtoMessage() {}
func (*RpcObjectListSetObjectTypeResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 40, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1, 0}
}
func (m *RpcObjectListSetObjectTypeResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26004,7 +26440,7 @@ func (m *RpcObjectListSetDetails) Reset() { *m = RpcObjectListSetDetails
func (m *RpcObjectListSetDetails) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetDetails) ProtoMessage() {}
func (*RpcObjectListSetDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42}
}
func (m *RpcObjectListSetDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26042,7 +26478,7 @@ func (m *RpcObjectListSetDetailsRequest) Reset() { *m = RpcObjectListSet
func (m *RpcObjectListSetDetailsRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetDetailsRequest) ProtoMessage() {}
func (*RpcObjectListSetDetailsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0}
}
func (m *RpcObjectListSetDetailsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26094,7 +26530,7 @@ func (m *RpcObjectListSetDetailsResponse) Reset() { *m = RpcObjectListSe
func (m *RpcObjectListSetDetailsResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetDetailsResponse) ProtoMessage() {}
func (*RpcObjectListSetDetailsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1}
}
func (m *RpcObjectListSetDetailsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26146,7 +26582,7 @@ func (m *RpcObjectListSetDetailsResponseError) Reset() { *m = RpcObjectL
func (m *RpcObjectListSetDetailsResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListSetDetailsResponseError) ProtoMessage() {}
func (*RpcObjectListSetDetailsResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0}
}
func (m *RpcObjectListSetDetailsResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26196,7 +26632,7 @@ func (m *RpcObjectListModifyDetailValues) Reset() { *m = RpcObjectListMo
func (m *RpcObjectListModifyDetailValues) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListModifyDetailValues) ProtoMessage() {}
func (*RpcObjectListModifyDetailValues) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43}
}
func (m *RpcObjectListModifyDetailValues) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26236,7 +26672,7 @@ func (m *RpcObjectListModifyDetailValuesRequest) Reset() {
func (m *RpcObjectListModifyDetailValuesRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListModifyDetailValuesRequest) ProtoMessage() {}
func (*RpcObjectListModifyDetailValuesRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 0}
}
func (m *RpcObjectListModifyDetailValuesRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26294,7 +26730,7 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) String() string {
}
func (*RpcObjectListModifyDetailValuesRequestOperation) ProtoMessage() {}
func (*RpcObjectListModifyDetailValuesRequestOperation) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 0, 0}
}
func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26361,7 +26797,7 @@ func (m *RpcObjectListModifyDetailValuesResponse) Reset() {
func (m *RpcObjectListModifyDetailValuesResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListModifyDetailValuesResponse) ProtoMessage() {}
func (*RpcObjectListModifyDetailValuesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1}
}
func (m *RpcObjectListModifyDetailValuesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26410,7 +26846,7 @@ func (m *RpcObjectListModifyDetailValuesResponseError) String() string {
}
func (*RpcObjectListModifyDetailValuesResponseError) ProtoMessage() {}
func (*RpcObjectListModifyDetailValuesResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0}
}
func (m *RpcObjectListModifyDetailValuesResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26460,7 +26896,7 @@ func (m *RpcObjectApplyTemplate) Reset() { *m = RpcObjectApplyTemplate{}
func (m *RpcObjectApplyTemplate) String() string { return proto.CompactTextString(m) }
func (*RpcObjectApplyTemplate) ProtoMessage() {}
func (*RpcObjectApplyTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44}
}
func (m *RpcObjectApplyTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26499,7 +26935,7 @@ func (m *RpcObjectApplyTemplateRequest) Reset() { *m = RpcObjectApplyTem
func (m *RpcObjectApplyTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectApplyTemplateRequest) ProtoMessage() {}
func (*RpcObjectApplyTemplateRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0}
}
func (m *RpcObjectApplyTemplateRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26550,7 +26986,7 @@ func (m *RpcObjectApplyTemplateResponse) Reset() { *m = RpcObjectApplyTe
func (m *RpcObjectApplyTemplateResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectApplyTemplateResponse) ProtoMessage() {}
func (*RpcObjectApplyTemplateResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1}
}
func (m *RpcObjectApplyTemplateResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26595,7 +27031,7 @@ func (m *RpcObjectApplyTemplateResponseError) Reset() { *m = RpcObjectAp
func (m *RpcObjectApplyTemplateResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectApplyTemplateResponseError) ProtoMessage() {}
func (*RpcObjectApplyTemplateResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0}
}
func (m *RpcObjectApplyTemplateResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26645,7 +27081,7 @@ func (m *RpcObjectListExport) Reset() { *m = RpcObjectListExport{} }
func (m *RpcObjectListExport) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListExport) ProtoMessage() {}
func (*RpcObjectListExport) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45}
}
func (m *RpcObjectListExport) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26698,7 +27134,7 @@ func (m *RpcObjectListExportRequest) Reset() { *m = RpcObjectListExportR
func (m *RpcObjectListExportRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListExportRequest) ProtoMessage() {}
func (*RpcObjectListExportRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0}
}
func (m *RpcObjectListExportRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26801,7 +27237,7 @@ func (m *RpcObjectListExportResponse) Reset() { *m = RpcObjectListExport
func (m *RpcObjectListExportResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListExportResponse) ProtoMessage() {}
func (*RpcObjectListExportResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1}
}
func (m *RpcObjectListExportResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26867,7 +27303,7 @@ func (m *RpcObjectListExportResponseError) Reset() { *m = RpcObjectListE
func (m *RpcObjectListExportResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectListExportResponseError) ProtoMessage() {}
func (*RpcObjectListExportResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0}
}
func (m *RpcObjectListExportResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26917,7 +27353,7 @@ func (m *RpcObjectImport) Reset() { *m = RpcObjectImport{} }
func (m *RpcObjectImport) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImport) ProtoMessage() {}
func (*RpcObjectImport) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46}
}
func (m *RpcObjectImport) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -26971,7 +27407,7 @@ func (m *RpcObjectImportRequest) Reset() { *m = RpcObjectImportRequest{}
func (m *RpcObjectImportRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequest) ProtoMessage() {}
func (*RpcObjectImportRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0}
}
func (m *RpcObjectImportRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27169,7 +27605,7 @@ func (m *RpcObjectImportRequestNotionParams) Reset() { *m = RpcObjectImp
func (m *RpcObjectImportRequestNotionParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestNotionParams) ProtoMessage() {}
func (*RpcObjectImportRequestNotionParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 0}
}
func (m *RpcObjectImportRequestNotionParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27213,7 +27649,7 @@ func (m *RpcObjectImportRequestMarkdownParams) Reset() { *m = RpcObjectI
func (m *RpcObjectImportRequestMarkdownParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestMarkdownParams) ProtoMessage() {}
func (*RpcObjectImportRequestMarkdownParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 1}
}
func (m *RpcObjectImportRequestMarkdownParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27257,7 +27693,7 @@ func (m *RpcObjectImportRequestBookmarksParams) Reset() { *m = RpcObject
func (m *RpcObjectImportRequestBookmarksParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestBookmarksParams) ProtoMessage() {}
func (*RpcObjectImportRequestBookmarksParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 2}
}
func (m *RpcObjectImportRequestBookmarksParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27301,7 +27737,7 @@ func (m *RpcObjectImportRequestHtmlParams) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportRequestHtmlParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestHtmlParams) ProtoMessage() {}
func (*RpcObjectImportRequestHtmlParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 3}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 3}
}
func (m *RpcObjectImportRequestHtmlParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27345,7 +27781,7 @@ func (m *RpcObjectImportRequestTxtParams) Reset() { *m = RpcObjectImport
func (m *RpcObjectImportRequestTxtParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestTxtParams) ProtoMessage() {}
func (*RpcObjectImportRequestTxtParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 4}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 4}
}
func (m *RpcObjectImportRequestTxtParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27392,7 +27828,7 @@ func (m *RpcObjectImportRequestPbParams) Reset() { *m = RpcObjectImportR
func (m *RpcObjectImportRequestPbParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestPbParams) ProtoMessage() {}
func (*RpcObjectImportRequestPbParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 5}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 5}
}
func (m *RpcObjectImportRequestPbParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27461,7 +27897,7 @@ func (m *RpcObjectImportRequestCsvParams) Reset() { *m = RpcObjectImport
func (m *RpcObjectImportRequestCsvParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestCsvParams) ProtoMessage() {}
func (*RpcObjectImportRequestCsvParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 6}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 6}
}
func (m *RpcObjectImportRequestCsvParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27534,7 +27970,7 @@ func (m *RpcObjectImportRequestSnapshot) Reset() { *m = RpcObjectImportR
func (m *RpcObjectImportRequestSnapshot) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestSnapshot) ProtoMessage() {}
func (*RpcObjectImportRequestSnapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 7}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 7}
}
func (m *RpcObjectImportRequestSnapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27587,7 +28023,7 @@ func (m *RpcObjectImportResponse) Reset() { *m = RpcObjectImportResponse
func (m *RpcObjectImportResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportResponse) ProtoMessage() {}
func (*RpcObjectImportResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1}
}
func (m *RpcObjectImportResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27646,7 +28082,7 @@ func (m *RpcObjectImportResponseError) Reset() { *m = RpcObjectImportRes
func (m *RpcObjectImportResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportResponseError) ProtoMessage() {}
func (*RpcObjectImportResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0}
}
func (m *RpcObjectImportResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27696,7 +28132,7 @@ func (m *RpcObjectImportNotion) Reset() { *m = RpcObjectImportNotion{} }
func (m *RpcObjectImportNotion) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportNotion) ProtoMessage() {}
func (*RpcObjectImportNotion) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2}
}
func (m *RpcObjectImportNotion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27732,7 +28168,7 @@ func (m *RpcObjectImportNotionValidateToken) Reset() { *m = RpcObjectImp
func (m *RpcObjectImportNotionValidateToken) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportNotionValidateToken) ProtoMessage() {}
func (*RpcObjectImportNotionValidateToken) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0}
}
func (m *RpcObjectImportNotionValidateToken) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27773,7 +28209,7 @@ func (m *RpcObjectImportNotionValidateTokenRequest) String() string {
}
func (*RpcObjectImportNotionValidateTokenRequest) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0, 0}
}
func (m *RpcObjectImportNotionValidateTokenRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27821,7 +28257,7 @@ func (m *RpcObjectImportNotionValidateTokenResponse) String() string {
}
func (*RpcObjectImportNotionValidateTokenResponse) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0, 1}
}
func (m *RpcObjectImportNotionValidateTokenResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27870,7 +28306,7 @@ func (m *RpcObjectImportNotionValidateTokenResponseError) String() string {
}
func (*RpcObjectImportNotionValidateTokenResponseError) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0, 1, 0}
}
func (m *RpcObjectImportNotionValidateTokenResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27920,7 +28356,7 @@ func (m *RpcObjectImportList) Reset() { *m = RpcObjectImportList{} }
func (m *RpcObjectImportList) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportList) ProtoMessage() {}
func (*RpcObjectImportList) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47}
}
func (m *RpcObjectImportList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27956,7 +28392,7 @@ func (m *RpcObjectImportListRequest) Reset() { *m = RpcObjectImportListR
func (m *RpcObjectImportListRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListRequest) ProtoMessage() {}
func (*RpcObjectImportListRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0}
}
func (m *RpcObjectImportListRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -27994,7 +28430,7 @@ func (m *RpcObjectImportListResponse) Reset() { *m = RpcObjectImportList
func (m *RpcObjectImportListResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListResponse) ProtoMessage() {}
func (*RpcObjectImportListResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1}
}
func (m *RpcObjectImportListResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28046,7 +28482,7 @@ func (m *RpcObjectImportListResponseError) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportListResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListResponseError) ProtoMessage() {}
func (*RpcObjectImportListResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0}
}
func (m *RpcObjectImportListResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28097,7 +28533,7 @@ func (m *RpcObjectImportListImportResponse) Reset() { *m = RpcObjectImpo
func (m *RpcObjectImportListImportResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListImportResponse) ProtoMessage() {}
func (*RpcObjectImportListImportResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 2}
}
func (m *RpcObjectImportListImportResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28140,7 +28576,7 @@ func (m *RpcObjectImportUseCase) Reset() { *m = RpcObjectImportUseCase{}
func (m *RpcObjectImportUseCase) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCase) ProtoMessage() {}
func (*RpcObjectImportUseCase) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48}
}
func (m *RpcObjectImportUseCase) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28178,7 +28614,7 @@ func (m *RpcObjectImportUseCaseRequest) Reset() { *m = RpcObjectImportUs
func (m *RpcObjectImportUseCaseRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseRequest) ProtoMessage() {}
func (*RpcObjectImportUseCaseRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 0}
}
func (m *RpcObjectImportUseCaseRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28230,7 +28666,7 @@ func (m *RpcObjectImportUseCaseResponse) Reset() { *m = RpcObjectImportU
func (m *RpcObjectImportUseCaseResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseResponse) ProtoMessage() {}
func (*RpcObjectImportUseCaseResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1}
}
func (m *RpcObjectImportUseCaseResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28282,7 +28718,7 @@ func (m *RpcObjectImportUseCaseResponseError) Reset() { *m = RpcObjectIm
func (m *RpcObjectImportUseCaseResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseResponseError) ProtoMessage() {}
func (*RpcObjectImportUseCaseResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0}
}
func (m *RpcObjectImportUseCaseResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28332,7 +28768,7 @@ func (m *RpcObjectImportExperience) Reset() { *m = RpcObjectImportExperi
func (m *RpcObjectImportExperience) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperience) ProtoMessage() {}
func (*RpcObjectImportExperience) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 49}
}
func (m *RpcObjectImportExperience) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28372,7 +28808,7 @@ func (m *RpcObjectImportExperienceRequest) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportExperienceRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceRequest) ProtoMessage() {}
func (*RpcObjectImportExperienceRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 49, 0}
}
func (m *RpcObjectImportExperienceRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28438,7 +28874,7 @@ func (m *RpcObjectImportExperienceResponse) Reset() { *m = RpcObjectImpo
func (m *RpcObjectImportExperienceResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceResponse) ProtoMessage() {}
func (*RpcObjectImportExperienceResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 49, 1}
}
func (m *RpcObjectImportExperienceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -28492,7 +28928,7 @@ func (m *RpcObjectImportExperienceResponseError) Reset() {
func (m *RpcObjectImportExperienceResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceResponseError) ProtoMessage() {}
func (*RpcObjectImportExperienceResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 49, 1, 0}
}
func (m *RpcObjectImportExperienceResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -59448,6 +59884,7 @@ func (m *RpcDebugAccountSelectTrace) XXX_DiscardUnknown() {
var xxx_messageInfo_RpcDebugAccountSelectTrace proto.InternalMessageInfo
type RpcDebugAccountSelectTraceRequest struct {
+ Dir string `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"`
}
func (m *RpcDebugAccountSelectTraceRequest) Reset() { *m = RpcDebugAccountSelectTraceRequest{} }
@@ -59483,6 +59920,13 @@ func (m *RpcDebugAccountSelectTraceRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_RpcDebugAccountSelectTraceRequest proto.InternalMessageInfo
+func (m *RpcDebugAccountSelectTraceRequest) GetDir() string {
+ if m != nil {
+ return m.Dir
+ }
+ return ""
+}
+
type RpcDebugAccountSelectTraceResponse struct {
Error *RpcDebugAccountSelectTraceResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
@@ -64879,6 +65323,1588 @@ func (m *RpcDeviceNetworkStateSetResponseError) GetDescription() string {
return ""
}
+type RpcChat struct {
+}
+
+func (m *RpcChat) Reset() { *m = RpcChat{} }
+func (m *RpcChat) String() string { return proto.CompactTextString(m) }
+func (*RpcChat) ProtoMessage() {}
+func (*RpcChat) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40}
+}
+func (m *RpcChat) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChat.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChat) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChat.Merge(m, src)
+}
+func (m *RpcChat) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChat) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChat.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChat proto.InternalMessageInfo
+
+type RpcChatAddMessage struct {
+}
+
+func (m *RpcChatAddMessage) Reset() { *m = RpcChatAddMessage{} }
+func (m *RpcChatAddMessage) String() string { return proto.CompactTextString(m) }
+func (*RpcChatAddMessage) ProtoMessage() {}
+func (*RpcChatAddMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 0}
+}
+func (m *RpcChatAddMessage) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatAddMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatAddMessage.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatAddMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatAddMessage.Merge(m, src)
+}
+func (m *RpcChatAddMessage) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatAddMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatAddMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatAddMessage proto.InternalMessageInfo
+
+type RpcChatAddMessageRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ Message *model.ChatMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+}
+
+func (m *RpcChatAddMessageRequest) Reset() { *m = RpcChatAddMessageRequest{} }
+func (m *RpcChatAddMessageRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatAddMessageRequest) ProtoMessage() {}
+func (*RpcChatAddMessageRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 0, 0}
+}
+func (m *RpcChatAddMessageRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatAddMessageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatAddMessageRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatAddMessageRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatAddMessageRequest.Merge(m, src)
+}
+func (m *RpcChatAddMessageRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatAddMessageRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatAddMessageRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatAddMessageRequest proto.InternalMessageInfo
+
+func (m *RpcChatAddMessageRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatAddMessageRequest) GetMessage() *model.ChatMessage {
+ if m != nil {
+ return m.Message
+ }
+ return nil
+}
+
+type RpcChatAddMessageResponse struct {
+ Error *RpcChatAddMessageResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
+ Event *ResponseEvent `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"`
+}
+
+func (m *RpcChatAddMessageResponse) Reset() { *m = RpcChatAddMessageResponse{} }
+func (m *RpcChatAddMessageResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatAddMessageResponse) ProtoMessage() {}
+func (*RpcChatAddMessageResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 0, 1}
+}
+func (m *RpcChatAddMessageResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatAddMessageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatAddMessageResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatAddMessageResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatAddMessageResponse.Merge(m, src)
+}
+func (m *RpcChatAddMessageResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatAddMessageResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatAddMessageResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatAddMessageResponse proto.InternalMessageInfo
+
+func (m *RpcChatAddMessageResponse) GetError() *RpcChatAddMessageResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcChatAddMessageResponse) GetMessageId() string {
+ if m != nil {
+ return m.MessageId
+ }
+ return ""
+}
+
+func (m *RpcChatAddMessageResponse) GetEvent() *ResponseEvent {
+ if m != nil {
+ return m.Event
+ }
+ return nil
+}
+
+type RpcChatAddMessageResponseError struct {
+ Code RpcChatAddMessageResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatAddMessageResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatAddMessageResponseError) Reset() { *m = RpcChatAddMessageResponseError{} }
+func (m *RpcChatAddMessageResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatAddMessageResponseError) ProtoMessage() {}
+func (*RpcChatAddMessageResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 0, 1, 0}
+}
+func (m *RpcChatAddMessageResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatAddMessageResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatAddMessageResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatAddMessageResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatAddMessageResponseError.Merge(m, src)
+}
+func (m *RpcChatAddMessageResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatAddMessageResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatAddMessageResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatAddMessageResponseError proto.InternalMessageInfo
+
+func (m *RpcChatAddMessageResponseError) GetCode() RpcChatAddMessageResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatAddMessageResponseError_NULL
+}
+
+func (m *RpcChatAddMessageResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatEditMessageContent struct {
+}
+
+func (m *RpcChatEditMessageContent) Reset() { *m = RpcChatEditMessageContent{} }
+func (m *RpcChatEditMessageContent) String() string { return proto.CompactTextString(m) }
+func (*RpcChatEditMessageContent) ProtoMessage() {}
+func (*RpcChatEditMessageContent) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 1}
+}
+func (m *RpcChatEditMessageContent) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatEditMessageContent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatEditMessageContent.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatEditMessageContent) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatEditMessageContent.Merge(m, src)
+}
+func (m *RpcChatEditMessageContent) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatEditMessageContent) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatEditMessageContent.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatEditMessageContent proto.InternalMessageInfo
+
+type RpcChatEditMessageContentRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
+ EditedMessage *model.ChatMessage `protobuf:"bytes,3,opt,name=editedMessage,proto3" json:"editedMessage,omitempty"`
+}
+
+func (m *RpcChatEditMessageContentRequest) Reset() { *m = RpcChatEditMessageContentRequest{} }
+func (m *RpcChatEditMessageContentRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatEditMessageContentRequest) ProtoMessage() {}
+func (*RpcChatEditMessageContentRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 1, 0}
+}
+func (m *RpcChatEditMessageContentRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatEditMessageContentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatEditMessageContentRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatEditMessageContentRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatEditMessageContentRequest.Merge(m, src)
+}
+func (m *RpcChatEditMessageContentRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatEditMessageContentRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatEditMessageContentRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatEditMessageContentRequest proto.InternalMessageInfo
+
+func (m *RpcChatEditMessageContentRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatEditMessageContentRequest) GetMessageId() string {
+ if m != nil {
+ return m.MessageId
+ }
+ return ""
+}
+
+func (m *RpcChatEditMessageContentRequest) GetEditedMessage() *model.ChatMessage {
+ if m != nil {
+ return m.EditedMessage
+ }
+ return nil
+}
+
+type RpcChatEditMessageContentResponse struct {
+ Error *RpcChatEditMessageContentResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+}
+
+func (m *RpcChatEditMessageContentResponse) Reset() { *m = RpcChatEditMessageContentResponse{} }
+func (m *RpcChatEditMessageContentResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatEditMessageContentResponse) ProtoMessage() {}
+func (*RpcChatEditMessageContentResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 1, 1}
+}
+func (m *RpcChatEditMessageContentResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatEditMessageContentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatEditMessageContentResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatEditMessageContentResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatEditMessageContentResponse.Merge(m, src)
+}
+func (m *RpcChatEditMessageContentResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatEditMessageContentResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatEditMessageContentResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatEditMessageContentResponse proto.InternalMessageInfo
+
+func (m *RpcChatEditMessageContentResponse) GetError() *RpcChatEditMessageContentResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+type RpcChatEditMessageContentResponseError struct {
+ Code RpcChatEditMessageContentResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatEditMessageContentResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatEditMessageContentResponseError) Reset() {
+ *m = RpcChatEditMessageContentResponseError{}
+}
+func (m *RpcChatEditMessageContentResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatEditMessageContentResponseError) ProtoMessage() {}
+func (*RpcChatEditMessageContentResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 1, 1, 0}
+}
+func (m *RpcChatEditMessageContentResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatEditMessageContentResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatEditMessageContentResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatEditMessageContentResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatEditMessageContentResponseError.Merge(m, src)
+}
+func (m *RpcChatEditMessageContentResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatEditMessageContentResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatEditMessageContentResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatEditMessageContentResponseError proto.InternalMessageInfo
+
+func (m *RpcChatEditMessageContentResponseError) GetCode() RpcChatEditMessageContentResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatEditMessageContentResponseError_NULL
+}
+
+func (m *RpcChatEditMessageContentResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatToggleMessageReaction struct {
+}
+
+func (m *RpcChatToggleMessageReaction) Reset() { *m = RpcChatToggleMessageReaction{} }
+func (m *RpcChatToggleMessageReaction) String() string { return proto.CompactTextString(m) }
+func (*RpcChatToggleMessageReaction) ProtoMessage() {}
+func (*RpcChatToggleMessageReaction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 2}
+}
+func (m *RpcChatToggleMessageReaction) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatToggleMessageReaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatToggleMessageReaction.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatToggleMessageReaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatToggleMessageReaction.Merge(m, src)
+}
+func (m *RpcChatToggleMessageReaction) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatToggleMessageReaction) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatToggleMessageReaction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatToggleMessageReaction proto.InternalMessageInfo
+
+type RpcChatToggleMessageReactionRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
+ Emoji string `protobuf:"bytes,3,opt,name=emoji,proto3" json:"emoji,omitempty"`
+}
+
+func (m *RpcChatToggleMessageReactionRequest) Reset() { *m = RpcChatToggleMessageReactionRequest{} }
+func (m *RpcChatToggleMessageReactionRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatToggleMessageReactionRequest) ProtoMessage() {}
+func (*RpcChatToggleMessageReactionRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 2, 0}
+}
+func (m *RpcChatToggleMessageReactionRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatToggleMessageReactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatToggleMessageReactionRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatToggleMessageReactionRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatToggleMessageReactionRequest.Merge(m, src)
+}
+func (m *RpcChatToggleMessageReactionRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatToggleMessageReactionRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatToggleMessageReactionRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatToggleMessageReactionRequest proto.InternalMessageInfo
+
+func (m *RpcChatToggleMessageReactionRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatToggleMessageReactionRequest) GetMessageId() string {
+ if m != nil {
+ return m.MessageId
+ }
+ return ""
+}
+
+func (m *RpcChatToggleMessageReactionRequest) GetEmoji() string {
+ if m != nil {
+ return m.Emoji
+ }
+ return ""
+}
+
+type RpcChatToggleMessageReactionResponse struct {
+ Error *RpcChatToggleMessageReactionResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+}
+
+func (m *RpcChatToggleMessageReactionResponse) Reset() { *m = RpcChatToggleMessageReactionResponse{} }
+func (m *RpcChatToggleMessageReactionResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatToggleMessageReactionResponse) ProtoMessage() {}
+func (*RpcChatToggleMessageReactionResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 2, 1}
+}
+func (m *RpcChatToggleMessageReactionResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatToggleMessageReactionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatToggleMessageReactionResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatToggleMessageReactionResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatToggleMessageReactionResponse.Merge(m, src)
+}
+func (m *RpcChatToggleMessageReactionResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatToggleMessageReactionResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatToggleMessageReactionResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatToggleMessageReactionResponse proto.InternalMessageInfo
+
+func (m *RpcChatToggleMessageReactionResponse) GetError() *RpcChatToggleMessageReactionResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+type RpcChatToggleMessageReactionResponseError struct {
+ Code RpcChatToggleMessageReactionResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatToggleMessageReactionResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) Reset() {
+ *m = RpcChatToggleMessageReactionResponseError{}
+}
+func (m *RpcChatToggleMessageReactionResponseError) String() string {
+ return proto.CompactTextString(m)
+}
+func (*RpcChatToggleMessageReactionResponseError) ProtoMessage() {}
+func (*RpcChatToggleMessageReactionResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 2, 1, 0}
+}
+func (m *RpcChatToggleMessageReactionResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatToggleMessageReactionResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatToggleMessageReactionResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatToggleMessageReactionResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatToggleMessageReactionResponseError.Merge(m, src)
+}
+func (m *RpcChatToggleMessageReactionResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatToggleMessageReactionResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatToggleMessageReactionResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatToggleMessageReactionResponseError proto.InternalMessageInfo
+
+func (m *RpcChatToggleMessageReactionResponseError) GetCode() RpcChatToggleMessageReactionResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatToggleMessageReactionResponseError_NULL
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatDeleteMessage struct {
+}
+
+func (m *RpcChatDeleteMessage) Reset() { *m = RpcChatDeleteMessage{} }
+func (m *RpcChatDeleteMessage) String() string { return proto.CompactTextString(m) }
+func (*RpcChatDeleteMessage) ProtoMessage() {}
+func (*RpcChatDeleteMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 3}
+}
+func (m *RpcChatDeleteMessage) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatDeleteMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatDeleteMessage.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatDeleteMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatDeleteMessage.Merge(m, src)
+}
+func (m *RpcChatDeleteMessage) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatDeleteMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatDeleteMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatDeleteMessage proto.InternalMessageInfo
+
+type RpcChatDeleteMessageRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"`
+}
+
+func (m *RpcChatDeleteMessageRequest) Reset() { *m = RpcChatDeleteMessageRequest{} }
+func (m *RpcChatDeleteMessageRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatDeleteMessageRequest) ProtoMessage() {}
+func (*RpcChatDeleteMessageRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 3, 0}
+}
+func (m *RpcChatDeleteMessageRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatDeleteMessageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatDeleteMessageRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatDeleteMessageRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatDeleteMessageRequest.Merge(m, src)
+}
+func (m *RpcChatDeleteMessageRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatDeleteMessageRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatDeleteMessageRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatDeleteMessageRequest proto.InternalMessageInfo
+
+func (m *RpcChatDeleteMessageRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatDeleteMessageRequest) GetMessageId() string {
+ if m != nil {
+ return m.MessageId
+ }
+ return ""
+}
+
+type RpcChatDeleteMessageResponse struct {
+ Error *RpcChatDeleteMessageResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+}
+
+func (m *RpcChatDeleteMessageResponse) Reset() { *m = RpcChatDeleteMessageResponse{} }
+func (m *RpcChatDeleteMessageResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatDeleteMessageResponse) ProtoMessage() {}
+func (*RpcChatDeleteMessageResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 3, 1}
+}
+func (m *RpcChatDeleteMessageResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatDeleteMessageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatDeleteMessageResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatDeleteMessageResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatDeleteMessageResponse.Merge(m, src)
+}
+func (m *RpcChatDeleteMessageResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatDeleteMessageResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatDeleteMessageResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatDeleteMessageResponse proto.InternalMessageInfo
+
+func (m *RpcChatDeleteMessageResponse) GetError() *RpcChatDeleteMessageResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+type RpcChatDeleteMessageResponseError struct {
+ Code RpcChatDeleteMessageResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatDeleteMessageResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatDeleteMessageResponseError) Reset() { *m = RpcChatDeleteMessageResponseError{} }
+func (m *RpcChatDeleteMessageResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatDeleteMessageResponseError) ProtoMessage() {}
+func (*RpcChatDeleteMessageResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 3, 1, 0}
+}
+func (m *RpcChatDeleteMessageResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatDeleteMessageResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatDeleteMessageResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatDeleteMessageResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatDeleteMessageResponseError.Merge(m, src)
+}
+func (m *RpcChatDeleteMessageResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatDeleteMessageResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatDeleteMessageResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatDeleteMessageResponseError proto.InternalMessageInfo
+
+func (m *RpcChatDeleteMessageResponseError) GetCode() RpcChatDeleteMessageResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatDeleteMessageResponseError_NULL
+}
+
+func (m *RpcChatDeleteMessageResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatGetMessages struct {
+}
+
+func (m *RpcChatGetMessages) Reset() { *m = RpcChatGetMessages{} }
+func (m *RpcChatGetMessages) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessages) ProtoMessage() {}
+func (*RpcChatGetMessages) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 4}
+}
+func (m *RpcChatGetMessages) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessages) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessages.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessages) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessages.Merge(m, src)
+}
+func (m *RpcChatGetMessages) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessages) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessages.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessages proto.InternalMessageInfo
+
+type RpcChatGetMessagesRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ BeforeOrderId string `protobuf:"bytes,2,opt,name=beforeOrderId,proto3" json:"beforeOrderId,omitempty"`
+ Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
+}
+
+func (m *RpcChatGetMessagesRequest) Reset() { *m = RpcChatGetMessagesRequest{} }
+func (m *RpcChatGetMessagesRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesRequest) ProtoMessage() {}
+func (*RpcChatGetMessagesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 4, 0}
+}
+func (m *RpcChatGetMessagesRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesRequest.Merge(m, src)
+}
+func (m *RpcChatGetMessagesRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesRequest proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatGetMessagesRequest) GetBeforeOrderId() string {
+ if m != nil {
+ return m.BeforeOrderId
+ }
+ return ""
+}
+
+func (m *RpcChatGetMessagesRequest) GetLimit() int32 {
+ if m != nil {
+ return m.Limit
+ }
+ return 0
+}
+
+type RpcChatGetMessagesResponse struct {
+ Error *RpcChatGetMessagesResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ Messages []*model.ChatMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
+}
+
+func (m *RpcChatGetMessagesResponse) Reset() { *m = RpcChatGetMessagesResponse{} }
+func (m *RpcChatGetMessagesResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesResponse) ProtoMessage() {}
+func (*RpcChatGetMessagesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 4, 1}
+}
+func (m *RpcChatGetMessagesResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesResponse.Merge(m, src)
+}
+func (m *RpcChatGetMessagesResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesResponse proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesResponse) GetError() *RpcChatGetMessagesResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcChatGetMessagesResponse) GetMessages() []*model.ChatMessage {
+ if m != nil {
+ return m.Messages
+ }
+ return nil
+}
+
+type RpcChatGetMessagesResponseError struct {
+ Code RpcChatGetMessagesResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatGetMessagesResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatGetMessagesResponseError) Reset() { *m = RpcChatGetMessagesResponseError{} }
+func (m *RpcChatGetMessagesResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesResponseError) ProtoMessage() {}
+func (*RpcChatGetMessagesResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 4, 1, 0}
+}
+func (m *RpcChatGetMessagesResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesResponseError.Merge(m, src)
+}
+func (m *RpcChatGetMessagesResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesResponseError proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesResponseError) GetCode() RpcChatGetMessagesResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatGetMessagesResponseError_NULL
+}
+
+func (m *RpcChatGetMessagesResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatGetMessagesByIds struct {
+}
+
+func (m *RpcChatGetMessagesByIds) Reset() { *m = RpcChatGetMessagesByIds{} }
+func (m *RpcChatGetMessagesByIds) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesByIds) ProtoMessage() {}
+func (*RpcChatGetMessagesByIds) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 5}
+}
+func (m *RpcChatGetMessagesByIds) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesByIds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesByIds.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesByIds) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesByIds.Merge(m, src)
+}
+func (m *RpcChatGetMessagesByIds) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesByIds) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesByIds.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesByIds proto.InternalMessageInfo
+
+type RpcChatGetMessagesByIdsRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ MessageIds []string `protobuf:"bytes,2,rep,name=messageIds,proto3" json:"messageIds,omitempty"`
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) Reset() { *m = RpcChatGetMessagesByIdsRequest{} }
+func (m *RpcChatGetMessagesByIdsRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesByIdsRequest) ProtoMessage() {}
+func (*RpcChatGetMessagesByIdsRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 5, 0}
+}
+func (m *RpcChatGetMessagesByIdsRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesByIdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesByIdsRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesByIdsRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesByIdsRequest.Merge(m, src)
+}
+func (m *RpcChatGetMessagesByIdsRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesByIdsRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesByIdsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesByIdsRequest proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesByIdsRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) GetMessageIds() []string {
+ if m != nil {
+ return m.MessageIds
+ }
+ return nil
+}
+
+type RpcChatGetMessagesByIdsResponse struct {
+ Error *RpcChatGetMessagesByIdsResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ Messages []*model.ChatMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) Reset() { *m = RpcChatGetMessagesByIdsResponse{} }
+func (m *RpcChatGetMessagesByIdsResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesByIdsResponse) ProtoMessage() {}
+func (*RpcChatGetMessagesByIdsResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 5, 1}
+}
+func (m *RpcChatGetMessagesByIdsResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesByIdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesByIdsResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesByIdsResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesByIdsResponse.Merge(m, src)
+}
+func (m *RpcChatGetMessagesByIdsResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesByIdsResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesByIdsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesByIdsResponse proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesByIdsResponse) GetError() *RpcChatGetMessagesByIdsResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) GetMessages() []*model.ChatMessage {
+ if m != nil {
+ return m.Messages
+ }
+ return nil
+}
+
+type RpcChatGetMessagesByIdsResponseError struct {
+ Code RpcChatGetMessagesByIdsResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatGetMessagesByIdsResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) Reset() { *m = RpcChatGetMessagesByIdsResponseError{} }
+func (m *RpcChatGetMessagesByIdsResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatGetMessagesByIdsResponseError) ProtoMessage() {}
+func (*RpcChatGetMessagesByIdsResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 5, 1, 0}
+}
+func (m *RpcChatGetMessagesByIdsResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatGetMessagesByIdsResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatGetMessagesByIdsResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatGetMessagesByIdsResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatGetMessagesByIdsResponseError.Merge(m, src)
+}
+func (m *RpcChatGetMessagesByIdsResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatGetMessagesByIdsResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatGetMessagesByIdsResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatGetMessagesByIdsResponseError proto.InternalMessageInfo
+
+func (m *RpcChatGetMessagesByIdsResponseError) GetCode() RpcChatGetMessagesByIdsResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatGetMessagesByIdsResponseError_NULL
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatSubscribeLastMessages struct {
+}
+
+func (m *RpcChatSubscribeLastMessages) Reset() { *m = RpcChatSubscribeLastMessages{} }
+func (m *RpcChatSubscribeLastMessages) String() string { return proto.CompactTextString(m) }
+func (*RpcChatSubscribeLastMessages) ProtoMessage() {}
+func (*RpcChatSubscribeLastMessages) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 6}
+}
+func (m *RpcChatSubscribeLastMessages) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatSubscribeLastMessages) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatSubscribeLastMessages.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatSubscribeLastMessages) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatSubscribeLastMessages.Merge(m, src)
+}
+func (m *RpcChatSubscribeLastMessages) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatSubscribeLastMessages) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatSubscribeLastMessages.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatSubscribeLastMessages proto.InternalMessageInfo
+
+type RpcChatSubscribeLastMessagesRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+ Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) Reset() { *m = RpcChatSubscribeLastMessagesRequest{} }
+func (m *RpcChatSubscribeLastMessagesRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatSubscribeLastMessagesRequest) ProtoMessage() {}
+func (*RpcChatSubscribeLastMessagesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 6, 0}
+}
+func (m *RpcChatSubscribeLastMessagesRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatSubscribeLastMessagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatSubscribeLastMessagesRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatSubscribeLastMessagesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesRequest.Merge(m, src)
+}
+func (m *RpcChatSubscribeLastMessagesRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatSubscribeLastMessagesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatSubscribeLastMessagesRequest proto.InternalMessageInfo
+
+func (m *RpcChatSubscribeLastMessagesRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) GetLimit() int32 {
+ if m != nil {
+ return m.Limit
+ }
+ return 0
+}
+
+type RpcChatSubscribeLastMessagesResponse struct {
+ Error *RpcChatSubscribeLastMessagesResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ Messages []*model.ChatMessage `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"`
+ NumMessagesBefore int32 `protobuf:"varint,3,opt,name=numMessagesBefore,proto3" json:"numMessagesBefore,omitempty"`
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) Reset() { *m = RpcChatSubscribeLastMessagesResponse{} }
+func (m *RpcChatSubscribeLastMessagesResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatSubscribeLastMessagesResponse) ProtoMessage() {}
+func (*RpcChatSubscribeLastMessagesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 6, 1}
+}
+func (m *RpcChatSubscribeLastMessagesResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatSubscribeLastMessagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatSubscribeLastMessagesResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatSubscribeLastMessagesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesResponse.Merge(m, src)
+}
+func (m *RpcChatSubscribeLastMessagesResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatSubscribeLastMessagesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatSubscribeLastMessagesResponse proto.InternalMessageInfo
+
+func (m *RpcChatSubscribeLastMessagesResponse) GetError() *RpcChatSubscribeLastMessagesResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) GetMessages() []*model.ChatMessage {
+ if m != nil {
+ return m.Messages
+ }
+ return nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) GetNumMessagesBefore() int32 {
+ if m != nil {
+ return m.NumMessagesBefore
+ }
+ return 0
+}
+
+type RpcChatSubscribeLastMessagesResponseError struct {
+ Code RpcChatSubscribeLastMessagesResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatSubscribeLastMessagesResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) Reset() {
+ *m = RpcChatSubscribeLastMessagesResponseError{}
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) String() string {
+ return proto.CompactTextString(m)
+}
+func (*RpcChatSubscribeLastMessagesResponseError) ProtoMessage() {}
+func (*RpcChatSubscribeLastMessagesResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 6, 1, 0}
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatSubscribeLastMessagesResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesResponseError.Merge(m, src)
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatSubscribeLastMessagesResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatSubscribeLastMessagesResponseError proto.InternalMessageInfo
+
+func (m *RpcChatSubscribeLastMessagesResponseError) GetCode() RpcChatSubscribeLastMessagesResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatSubscribeLastMessagesResponseError_NULL
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type RpcChatUnsubscribe struct {
+}
+
+func (m *RpcChatUnsubscribe) Reset() { *m = RpcChatUnsubscribe{} }
+func (m *RpcChatUnsubscribe) String() string { return proto.CompactTextString(m) }
+func (*RpcChatUnsubscribe) ProtoMessage() {}
+func (*RpcChatUnsubscribe) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 7}
+}
+func (m *RpcChatUnsubscribe) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatUnsubscribe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatUnsubscribe.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatUnsubscribe) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatUnsubscribe.Merge(m, src)
+}
+func (m *RpcChatUnsubscribe) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatUnsubscribe) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatUnsubscribe.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatUnsubscribe proto.InternalMessageInfo
+
+type RpcChatUnsubscribeRequest struct {
+ ChatObjectId string `protobuf:"bytes,1,opt,name=chatObjectId,proto3" json:"chatObjectId,omitempty"`
+}
+
+func (m *RpcChatUnsubscribeRequest) Reset() { *m = RpcChatUnsubscribeRequest{} }
+func (m *RpcChatUnsubscribeRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcChatUnsubscribeRequest) ProtoMessage() {}
+func (*RpcChatUnsubscribeRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 7, 0}
+}
+func (m *RpcChatUnsubscribeRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatUnsubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatUnsubscribeRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatUnsubscribeRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatUnsubscribeRequest.Merge(m, src)
+}
+func (m *RpcChatUnsubscribeRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatUnsubscribeRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatUnsubscribeRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatUnsubscribeRequest proto.InternalMessageInfo
+
+func (m *RpcChatUnsubscribeRequest) GetChatObjectId() string {
+ if m != nil {
+ return m.ChatObjectId
+ }
+ return ""
+}
+
+type RpcChatUnsubscribeResponse struct {
+ Error *RpcChatUnsubscribeResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+}
+
+func (m *RpcChatUnsubscribeResponse) Reset() { *m = RpcChatUnsubscribeResponse{} }
+func (m *RpcChatUnsubscribeResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcChatUnsubscribeResponse) ProtoMessage() {}
+func (*RpcChatUnsubscribeResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 7, 1}
+}
+func (m *RpcChatUnsubscribeResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatUnsubscribeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatUnsubscribeResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatUnsubscribeResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatUnsubscribeResponse.Merge(m, src)
+}
+func (m *RpcChatUnsubscribeResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatUnsubscribeResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatUnsubscribeResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatUnsubscribeResponse proto.InternalMessageInfo
+
+func (m *RpcChatUnsubscribeResponse) GetError() *RpcChatUnsubscribeResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+type RpcChatUnsubscribeResponseError struct {
+ Code RpcChatUnsubscribeResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcChatUnsubscribeResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcChatUnsubscribeResponseError) Reset() { *m = RpcChatUnsubscribeResponseError{} }
+func (m *RpcChatUnsubscribeResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcChatUnsubscribeResponseError) ProtoMessage() {}
+func (*RpcChatUnsubscribeResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 40, 7, 1, 0}
+}
+func (m *RpcChatUnsubscribeResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcChatUnsubscribeResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcChatUnsubscribeResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcChatUnsubscribeResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcChatUnsubscribeResponseError.Merge(m, src)
+}
+func (m *RpcChatUnsubscribeResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcChatUnsubscribeResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcChatUnsubscribeResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcChatUnsubscribeResponseError proto.InternalMessageInfo
+
+func (m *RpcChatUnsubscribeResponseError) GetCode() RpcChatUnsubscribeResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcChatUnsubscribeResponseError_NULL
+}
+
+func (m *RpcChatUnsubscribeResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
type Empty struct {
}
@@ -65027,6 +67053,7 @@ func init() {
proto.RegisterEnum("anytype.RpcObjectCreateSetResponseErrorCode", RpcObjectCreateSetResponseErrorCode_name, RpcObjectCreateSetResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectCreateObjectTypeResponseErrorCode", RpcObjectCreateObjectTypeResponseErrorCode_name, RpcObjectCreateObjectTypeResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectCreateFromUrlResponseErrorCode", RpcObjectCreateFromUrlResponseErrorCode_name, RpcObjectCreateFromUrlResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcObjectChatAddResponseErrorCode", RpcObjectChatAddResponseErrorCode_name, RpcObjectChatAddResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectBookmarkFetchResponseErrorCode", RpcObjectBookmarkFetchResponseErrorCode_name, RpcObjectBookmarkFetchResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectToBookmarkResponseErrorCode", RpcObjectToBookmarkResponseErrorCode_name, RpcObjectToBookmarkResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectDuplicateResponseErrorCode", RpcObjectDuplicateResponseErrorCode_name, RpcObjectDuplicateResponseErrorCode_value)
@@ -65243,6 +67270,14 @@ func init() {
proto.RegisterEnum("anytype.RpcDeviceSetNameResponseErrorCode", RpcDeviceSetNameResponseErrorCode_name, RpcDeviceSetNameResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcDeviceListResponseErrorCode", RpcDeviceListResponseErrorCode_name, RpcDeviceListResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcDeviceNetworkStateSetResponseErrorCode", RpcDeviceNetworkStateSetResponseErrorCode_name, RpcDeviceNetworkStateSetResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatAddMessageResponseErrorCode", RpcChatAddMessageResponseErrorCode_name, RpcChatAddMessageResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatEditMessageContentResponseErrorCode", RpcChatEditMessageContentResponseErrorCode_name, RpcChatEditMessageContentResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatToggleMessageReactionResponseErrorCode", RpcChatToggleMessageReactionResponseErrorCode_name, RpcChatToggleMessageReactionResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatDeleteMessageResponseErrorCode", RpcChatDeleteMessageResponseErrorCode_name, RpcChatDeleteMessageResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatGetMessagesResponseErrorCode", RpcChatGetMessagesResponseErrorCode_name, RpcChatGetMessagesResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatGetMessagesByIdsResponseErrorCode", RpcChatGetMessagesByIdsResponseErrorCode_name, RpcChatGetMessagesByIdsResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatSubscribeLastMessagesResponseErrorCode", RpcChatSubscribeLastMessagesResponseErrorCode_name, RpcChatSubscribeLastMessagesResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcChatUnsubscribeResponseErrorCode", RpcChatUnsubscribeResponseErrorCode_name, RpcChatUnsubscribeResponseErrorCode_value)
proto.RegisterType((*Rpc)(nil), "anytype.Rpc")
proto.RegisterType((*RpcApp)(nil), "anytype.Rpc.App")
proto.RegisterType((*RpcAppGetVersion)(nil), "anytype.Rpc.App.GetVersion")
@@ -65476,6 +67511,10 @@ func init() {
proto.RegisterType((*RpcObjectCreateFromUrlRequest)(nil), "anytype.Rpc.Object.CreateFromUrl.Request")
proto.RegisterType((*RpcObjectCreateFromUrlResponse)(nil), "anytype.Rpc.Object.CreateFromUrl.Response")
proto.RegisterType((*RpcObjectCreateFromUrlResponseError)(nil), "anytype.Rpc.Object.CreateFromUrl.Response.Error")
+ proto.RegisterType((*RpcObjectChatAdd)(nil), "anytype.Rpc.Object.ChatAdd")
+ proto.RegisterType((*RpcObjectChatAddRequest)(nil), "anytype.Rpc.Object.ChatAdd.Request")
+ proto.RegisterType((*RpcObjectChatAddResponse)(nil), "anytype.Rpc.Object.ChatAdd.Response")
+ proto.RegisterType((*RpcObjectChatAddResponseError)(nil), "anytype.Rpc.Object.ChatAdd.Response.Error")
proto.RegisterType((*RpcObjectBookmarkFetch)(nil), "anytype.Rpc.Object.BookmarkFetch")
proto.RegisterType((*RpcObjectBookmarkFetchRequest)(nil), "anytype.Rpc.Object.BookmarkFetch.Request")
proto.RegisterType((*RpcObjectBookmarkFetchResponse)(nil), "anytype.Rpc.Object.BookmarkFetch.Response")
@@ -66370,6 +68409,39 @@ func init() {
proto.RegisterType((*RpcDeviceNetworkStateSetRequest)(nil), "anytype.Rpc.Device.NetworkState.Set.Request")
proto.RegisterType((*RpcDeviceNetworkStateSetResponse)(nil), "anytype.Rpc.Device.NetworkState.Set.Response")
proto.RegisterType((*RpcDeviceNetworkStateSetResponseError)(nil), "anytype.Rpc.Device.NetworkState.Set.Response.Error")
+ proto.RegisterType((*RpcChat)(nil), "anytype.Rpc.Chat")
+ proto.RegisterType((*RpcChatAddMessage)(nil), "anytype.Rpc.Chat.AddMessage")
+ proto.RegisterType((*RpcChatAddMessageRequest)(nil), "anytype.Rpc.Chat.AddMessage.Request")
+ proto.RegisterType((*RpcChatAddMessageResponse)(nil), "anytype.Rpc.Chat.AddMessage.Response")
+ proto.RegisterType((*RpcChatAddMessageResponseError)(nil), "anytype.Rpc.Chat.AddMessage.Response.Error")
+ proto.RegisterType((*RpcChatEditMessageContent)(nil), "anytype.Rpc.Chat.EditMessageContent")
+ proto.RegisterType((*RpcChatEditMessageContentRequest)(nil), "anytype.Rpc.Chat.EditMessageContent.Request")
+ proto.RegisterType((*RpcChatEditMessageContentResponse)(nil), "anytype.Rpc.Chat.EditMessageContent.Response")
+ proto.RegisterType((*RpcChatEditMessageContentResponseError)(nil), "anytype.Rpc.Chat.EditMessageContent.Response.Error")
+ proto.RegisterType((*RpcChatToggleMessageReaction)(nil), "anytype.Rpc.Chat.ToggleMessageReaction")
+ proto.RegisterType((*RpcChatToggleMessageReactionRequest)(nil), "anytype.Rpc.Chat.ToggleMessageReaction.Request")
+ proto.RegisterType((*RpcChatToggleMessageReactionResponse)(nil), "anytype.Rpc.Chat.ToggleMessageReaction.Response")
+ proto.RegisterType((*RpcChatToggleMessageReactionResponseError)(nil), "anytype.Rpc.Chat.ToggleMessageReaction.Response.Error")
+ proto.RegisterType((*RpcChatDeleteMessage)(nil), "anytype.Rpc.Chat.DeleteMessage")
+ proto.RegisterType((*RpcChatDeleteMessageRequest)(nil), "anytype.Rpc.Chat.DeleteMessage.Request")
+ proto.RegisterType((*RpcChatDeleteMessageResponse)(nil), "anytype.Rpc.Chat.DeleteMessage.Response")
+ proto.RegisterType((*RpcChatDeleteMessageResponseError)(nil), "anytype.Rpc.Chat.DeleteMessage.Response.Error")
+ proto.RegisterType((*RpcChatGetMessages)(nil), "anytype.Rpc.Chat.GetMessages")
+ proto.RegisterType((*RpcChatGetMessagesRequest)(nil), "anytype.Rpc.Chat.GetMessages.Request")
+ proto.RegisterType((*RpcChatGetMessagesResponse)(nil), "anytype.Rpc.Chat.GetMessages.Response")
+ proto.RegisterType((*RpcChatGetMessagesResponseError)(nil), "anytype.Rpc.Chat.GetMessages.Response.Error")
+ proto.RegisterType((*RpcChatGetMessagesByIds)(nil), "anytype.Rpc.Chat.GetMessagesByIds")
+ proto.RegisterType((*RpcChatGetMessagesByIdsRequest)(nil), "anytype.Rpc.Chat.GetMessagesByIds.Request")
+ proto.RegisterType((*RpcChatGetMessagesByIdsResponse)(nil), "anytype.Rpc.Chat.GetMessagesByIds.Response")
+ proto.RegisterType((*RpcChatGetMessagesByIdsResponseError)(nil), "anytype.Rpc.Chat.GetMessagesByIds.Response.Error")
+ proto.RegisterType((*RpcChatSubscribeLastMessages)(nil), "anytype.Rpc.Chat.SubscribeLastMessages")
+ proto.RegisterType((*RpcChatSubscribeLastMessagesRequest)(nil), "anytype.Rpc.Chat.SubscribeLastMessages.Request")
+ proto.RegisterType((*RpcChatSubscribeLastMessagesResponse)(nil), "anytype.Rpc.Chat.SubscribeLastMessages.Response")
+ proto.RegisterType((*RpcChatSubscribeLastMessagesResponseError)(nil), "anytype.Rpc.Chat.SubscribeLastMessages.Response.Error")
+ proto.RegisterType((*RpcChatUnsubscribe)(nil), "anytype.Rpc.Chat.Unsubscribe")
+ proto.RegisterType((*RpcChatUnsubscribeRequest)(nil), "anytype.Rpc.Chat.Unsubscribe.Request")
+ proto.RegisterType((*RpcChatUnsubscribeResponse)(nil), "anytype.Rpc.Chat.Unsubscribe.Response")
+ proto.RegisterType((*RpcChatUnsubscribeResponseError)(nil), "anytype.Rpc.Chat.Unsubscribe.Response.Error")
proto.RegisterType((*Empty)(nil), "anytype.Empty")
proto.RegisterType((*StreamRequest)(nil), "anytype.StreamRequest")
proto.RegisterExtension(E_NoAuth)
@@ -66378,1138 +68450,1166 @@ func init() {
func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) }
var fileDescriptor_8261c968b2e6f45c = []byte{
- // 18088 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x9c, 0x24, 0x49,
- 0x59, 0x2f, 0x8a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0xbf, 0x4c, 0x4d, 0xee, 0xcc, 0xec, 0x6c,
- 0xec, 0x32, 0x3b, 0xcc, 0x2e, 0xcb, 0xba, 0x2c, 0x3d, 0xb0, 0x0b, 0xc2, 0x2e, 0xbb, 0xec, 0x56,
- 0x57, 0x67, 0x77, 0x17, 0xdb, 0x5d, 0xd5, 0x64, 0x65, 0xcf, 0xb0, 0xfa, 0xf3, 0x57, 0x27, 0xa7,
- 0x2a, 0xba, 0x3b, 0x77, 0xaa, 0x33, 0xcb, 0xac, 0xec, 0x9e, 0x19, 0xee, 0xe7, 0xdc, 0xa3, 0x22,
- 0xb2, 0xbe, 0x70, 0x10, 0x91, 0xa3, 0x80, 0x80, 0x80, 0xe0, 0x01, 0x05, 0xe4, 0x65, 0x41, 0x10,
- 0x51, 0x5e, 0x56, 0x10, 0x11, 0x11, 0x44, 0x01, 0xe5, 0x23, 0x08, 0x72, 0xf0, 0xdc, 0xc3, 0xf1,
- 0xea, 0xe7, 0x08, 0x07, 0x85, 0xeb, 0xfd, 0xc4, 0x4b, 0x66, 0x46, 0x54, 0x57, 0x66, 0x45, 0x56,
- 0x57, 0x56, 0x2f, 0x7a, 0xff, 0xcb, 0x8c, 0x8c, 0x8c, 0x78, 0xe2, 0xf9, 0x3e, 0x11, 0xf1, 0xc4,
- 0x13, 0x4f, 0x3c, 0x01, 0x4e, 0x75, 0x2e, 0x9e, 0xeb, 0xb8, 0x8e, 0xe7, 0x74, 0xcf, 0x35, 0x9d,
- 0x9d, 0x1d, 0xd3, 0x6e, 0x75, 0xe7, 0xc9, 0xbb, 0x3a, 0x61, 0xda, 0x57, 0xbd, 0xab, 0x1d, 0x04,
- 0x6f, 0xee, 0x5c, 0xda, 0x3a, 0xd7, 0xb6, 0x2e, 0x9e, 0xeb, 0x5c, 0x3c, 0xb7, 0xe3, 0xb4, 0x50,
- 0xdb, 0xff, 0x81, 0xbc, 0xb0, 0xec, 0xf0, 0xd6, 0xa8, 0x5c, 0x6d, 0xa7, 0x69, 0xb6, 0xbb, 0x9e,
- 0xe3, 0x22, 0x96, 0xf3, 0x64, 0x58, 0x25, 0xda, 0x43, 0xb6, 0xe7, 0x97, 0x70, 0xc3, 0x96, 0xe3,
- 0x6c, 0xb5, 0x11, 0xfd, 0x76, 0x71, 0x77, 0xf3, 0x5c, 0xd7, 0x73, 0x77, 0x9b, 0x1e, 0xfb, 0x7a,
- 0xa6, 0xf7, 0x6b, 0x0b, 0x75, 0x9b, 0xae, 0xd5, 0xf1, 0x1c, 0x97, 0xe6, 0x38, 0xfb, 0xe2, 0x0f,
- 0x4c, 0x00, 0x45, 0xef, 0x34, 0xe1, 0xb7, 0x26, 0x80, 0x52, 0xea, 0x74, 0xe0, 0xa3, 0x59, 0x00,
- 0x96, 0x91, 0x77, 0x1e, 0xb9, 0x5d, 0xcb, 0xb1, 0xe1, 0x51, 0x30, 0xa1, 0xa3, 0x1f, 0xdd, 0x45,
- 0x5d, 0xef, 0xee, 0xdc, 0xc3, 0x5f, 0x57, 0x32, 0xf0, 0x8d, 0x59, 0x30, 0xa9, 0xa3, 0x6e, 0xc7,
- 0xb1, 0xbb, 0x48, 0xbd, 0x1f, 0xe4, 0x91, 0xeb, 0x3a, 0xee, 0xa9, 0xcc, 0x99, 0xcc, 0xad, 0xd3,
- 0x77, 0xdc, 0x36, 0xcf, 0x9a, 0x3f, 0xaf, 0x77, 0x9a, 0xf3, 0xa5, 0x4e, 0x67, 0x3e, 0x2c, 0x69,
- 0xde, 0xff, 0x69, 0x5e, 0xc3, 0x7f, 0xe8, 0xf4, 0x47, 0xf5, 0x14, 0x98, 0xd8, 0xa3, 0x19, 0x4e,
- 0x65, 0xcf, 0x64, 0x6e, 0x9d, 0xd2, 0xfd, 0x57, 0xfc, 0xa5, 0x85, 0x3c, 0xd3, 0x6a, 0x77, 0x4f,
- 0x29, 0xf4, 0x0b, 0x7b, 0x85, 0xaf, 0xcf, 0x80, 0x3c, 0x29, 0x44, 0x2d, 0x83, 0x5c, 0xd3, 0x69,
- 0x21, 0x52, 0xfd, 0xdc, 0x1d, 0xe7, 0xe4, 0xab, 0x9f, 0x2f, 0x3b, 0x2d, 0xa4, 0x93, 0x9f, 0xd5,
- 0x33, 0x60, 0xda, 0x67, 0x4b, 0x48, 0x06, 0x9f, 0x74, 0xf6, 0x0e, 0x90, 0xc3, 0xf9, 0xd5, 0x49,
- 0x90, 0xab, 0x6e, 0xac, 0xae, 0x16, 0x8f, 0xa8, 0xc7, 0xc0, 0xec, 0x46, 0xf5, 0x81, 0x6a, 0xed,
- 0x42, 0xb5, 0xa1, 0xe9, 0x7a, 0x4d, 0x2f, 0x66, 0xd4, 0x59, 0x30, 0xb5, 0x50, 0x5a, 0x6c, 0x54,
- 0xaa, 0xeb, 0x1b, 0x46, 0x31, 0x0b, 0x5f, 0xa3, 0x80, 0xb9, 0x3a, 0xf2, 0x16, 0xd1, 0x9e, 0xd5,
- 0x44, 0x75, 0xcf, 0xf4, 0x10, 0x7c, 0x49, 0x26, 0x60, 0xa6, 0xba, 0x81, 0x2b, 0x0d, 0x3e, 0xb1,
- 0x06, 0xdc, 0xb9, 0xaf, 0x01, 0x62, 0x09, 0xf3, 0xec, 0xef, 0x79, 0x2e, 0x4d, 0xe7, 0xcb, 0x39,
- 0xfb, 0x64, 0x30, 0xcd, 0x7d, 0x53, 0xe7, 0x00, 0x58, 0x28, 0x95, 0x1f, 0x58, 0xd6, 0x6b, 0x1b,
- 0xd5, 0xc5, 0xe2, 0x11, 0xfc, 0xbe, 0x54, 0xd3, 0x35, 0xf6, 0x9e, 0x81, 0xdf, 0xc9, 0x70, 0x60,
- 0x2e, 0x8a, 0x60, 0xce, 0x0f, 0x26, 0xa6, 0x0f, 0xa0, 0xf0, 0x4d, 0x01, 0x38, 0xcb, 0x02, 0x38,
- 0x77, 0x26, 0x2b, 0x2e, 0x7d, 0x80, 0x5e, 0x98, 0x05, 0x93, 0xf5, 0xed, 0x5d, 0xaf, 0xe5, 0x5c,
- 0xb6, 0xe1, 0x54, 0x80, 0x0c, 0xfc, 0x26, 0xcf, 0x93, 0x67, 0x8b, 0x3c, 0xb9, 0x75, 0x7f, 0x23,
- 0x58, 0x09, 0x11, 0xdc, 0xf8, 0xd5, 0x80, 0x1b, 0x25, 0x81, 0x1b, 0x4f, 0x96, 0x2d, 0x28, 0x7d,
- 0x3e, 0xfc, 0xfc, 0x9d, 0x20, 0x5f, 0xef, 0x98, 0x4d, 0x04, 0x3f, 0xa9, 0x80, 0x99, 0x55, 0x64,
- 0xee, 0xa1, 0x52, 0xa7, 0xe3, 0x3a, 0x7b, 0x08, 0x96, 0x43, 0x79, 0x3d, 0x05, 0x26, 0xba, 0x38,
- 0x53, 0xa5, 0x45, 0x5a, 0x30, 0xa5, 0xfb, 0xaf, 0xea, 0x69, 0x00, 0xac, 0x16, 0xb2, 0x3d, 0xcb,
- 0xb3, 0x50, 0xf7, 0x54, 0xf6, 0x8c, 0x72, 0xeb, 0x94, 0xce, 0xa5, 0xc0, 0x6f, 0x65, 0x65, 0x65,
- 0x8c, 0x50, 0x31, 0xcf, 0x53, 0x10, 0xc1, 0xd5, 0x37, 0x64, 0x65, 0x64, 0x6c, 0x60, 0x71, 0xc9,
- 0x78, 0xfb, 0xb6, 0x4c, 0x72, 0xe6, 0xe2, 0x1c, 0xd5, 0x5a, 0xa3, 0xbe, 0x51, 0x5e, 0x69, 0xd4,
- 0xd7, 0x4b, 0x65, 0xad, 0x88, 0xd4, 0xe3, 0xa0, 0x48, 0x1e, 0x1b, 0x95, 0x7a, 0x63, 0x51, 0x5b,
- 0xd5, 0x0c, 0x6d, 0xb1, 0xb8, 0xa9, 0xaa, 0x60, 0x4e, 0xd7, 0x9e, 0xbb, 0xa1, 0xd5, 0x8d, 0xc6,
- 0x52, 0xa9, 0xb2, 0xaa, 0x2d, 0x16, 0xb7, 0xf0, 0xcf, 0xab, 0x95, 0xb5, 0x8a, 0xd1, 0xd0, 0xb5,
- 0x52, 0x79, 0x45, 0x5b, 0x2c, 0x6e, 0xab, 0xd7, 0x82, 0x6b, 0xaa, 0xb5, 0x46, 0x69, 0x7d, 0x5d,
- 0xaf, 0x9d, 0xd7, 0x1a, 0xec, 0x8f, 0x7a, 0xd1, 0xa2, 0x15, 0x19, 0x8d, 0xfa, 0x4a, 0x49, 0xd7,
- 0x4a, 0x0b, 0xab, 0x5a, 0xf1, 0x21, 0xf8, 0x02, 0x05, 0xcc, 0xae, 0x99, 0x97, 0x50, 0x7d, 0xdb,
- 0x74, 0x91, 0x79, 0xb1, 0x8d, 0xe0, 0x4d, 0x12, 0x78, 0xc2, 0x4f, 0xf2, 0x78, 0x69, 0x22, 0x5e,
- 0xe7, 0xfa, 0x30, 0x58, 0xa8, 0x22, 0x02, 0xb0, 0xff, 0x1d, 0x74, 0x83, 0x15, 0x01, 0xb0, 0xa7,
- 0x25, 0x2c, 0x2f, 0x19, 0x62, 0x3f, 0xf1, 0x18, 0x40, 0x0c, 0x7e, 0x49, 0x01, 0x73, 0x15, 0x7b,
- 0xcf, 0xf2, 0xd0, 0x32, 0xb2, 0x91, 0x8b, 0xe7, 0x01, 0x29, 0x18, 0xde, 0xa8, 0x70, 0x30, 0x2c,
- 0x89, 0x30, 0x3c, 0xa5, 0x0f, 0xdb, 0xc4, 0x3a, 0x22, 0x66, 0xdb, 0x1b, 0xc0, 0x94, 0x45, 0xf2,
- 0x95, 0xad, 0x16, 0xe3, 0x58, 0x98, 0xa0, 0xde, 0x0c, 0x66, 0xe9, 0xcb, 0x92, 0xd5, 0x46, 0x0f,
- 0xa0, 0xab, 0x6c, 0xde, 0x15, 0x13, 0xe1, 0xcf, 0x05, 0x9d, 0xaf, 0x22, 0x60, 0xf9, 0xf4, 0xa4,
- 0x44, 0x25, 0x03, 0xf3, 0xe5, 0x8f, 0x85, 0xee, 0xb7, 0xaf, 0x97, 0x59, 0xf0, 0x7b, 0x59, 0x30,
- 0x5d, 0xf7, 0x9c, 0x0e, 0x16, 0x59, 0xcb, 0xde, 0x92, 0x03, 0xf7, 0xe3, 0x7c, 0x1f, 0x2b, 0x8b,
- 0xe0, 0x3e, 0xb9, 0x0f, 0x1f, 0xb9, 0x0a, 0x22, 0x7a, 0xd8, 0xb7, 0x82, 0x1e, 0xb6, 0x24, 0xa0,
- 0x72, 0x47, 0xa2, 0xd2, 0xbe, 0x0f, 0xfb, 0xd7, 0xcb, 0x15, 0x50, 0xf4, 0xc5, 0xcc, 0x2b, 0xef,
- 0xba, 0x2e, 0xb2, 0x3d, 0x39, 0x10, 0xfe, 0x92, 0x07, 0x61, 0x45, 0x04, 0xe1, 0x8e, 0x18, 0x61,
- 0xf6, 0x6b, 0x49, 0xb1, 0x8f, 0xfd, 0x7e, 0x80, 0xe6, 0x03, 0x02, 0x9a, 0xcf, 0x48, 0x4e, 0x56,
- 0x32, 0x48, 0x57, 0x86, 0x40, 0xf4, 0x38, 0x28, 0xe2, 0x39, 0xa9, 0x6c, 0x54, 0xce, 0x6b, 0x8d,
- 0x4a, 0xf5, 0x7c, 0xc5, 0xd0, 0x8a, 0x08, 0xbe, 0x4c, 0x01, 0x33, 0x94, 0x34, 0x1d, 0xed, 0x39,
- 0x97, 0x24, 0x47, 0xbd, 0x2f, 0x25, 0x54, 0x16, 0xf8, 0x1a, 0x22, 0x7a, 0xc6, 0xcf, 0x24, 0x50,
- 0x16, 0x62, 0x8a, 0x7b, 0x2c, 0x8d, 0x56, 0xfb, 0xba, 0xc1, 0x56, 0x9f, 0xde, 0xd2, 0x77, 0xb4,
- 0x7a, 0x79, 0x0e, 0x00, 0xda, 0xc8, 0xf3, 0x16, 0xba, 0x0c, 0xd7, 0x42, 0x4c, 0x04, 0xb1, 0xcd,
- 0x0c, 0x14, 0xdb, 0x6c, 0x3f, 0xb1, 0x7d, 0x2f, 0x3f, 0x67, 0x2d, 0x88, 0xe8, 0xdd, 0x1e, 0xc9,
- 0x6e, 0x4c, 0x49, 0xf4, 0xea, 0xd0, 0x17, 0x94, 0xac, 0xa8, 0x75, 0xde, 0x00, 0xa6, 0xc8, 0x63,
- 0xd5, 0xdc, 0x41, 0xac, 0x0f, 0x85, 0x09, 0xea, 0x59, 0x30, 0x43, 0x33, 0x36, 0x1d, 0x1b, 0xb7,
- 0x27, 0x47, 0x32, 0x08, 0x69, 0x18, 0xc4, 0xa6, 0x8b, 0x4c, 0xcf, 0x71, 0x49, 0x19, 0x79, 0x0a,
- 0x22, 0x97, 0x04, 0xbf, 0x11, 0xf4, 0x42, 0x4d, 0x90, 0x9c, 0xa7, 0x26, 0x69, 0x4a, 0x32, 0xb9,
- 0xd9, 0x1b, 0xae, 0xff, 0xd1, 0x5e, 0xd7, 0xc0, 0x68, 0x2f, 0x91, 0xa5, 0x1d, 0x52, 0x4f, 0x02,
- 0x95, 0xa5, 0xe2, 0xbc, 0xe5, 0x5a, 0xd5, 0xd0, 0xaa, 0x46, 0x71, 0xb3, 0xaf, 0x44, 0x6d, 0xc1,
- 0x37, 0xe4, 0x40, 0xee, 0x39, 0x8e, 0x65, 0xc3, 0x17, 0x66, 0x04, 0x91, 0xb0, 0x91, 0x77, 0xd9,
- 0x71, 0x2f, 0x05, 0x1d, 0x35, 0x4c, 0x88, 0xc7, 0x26, 0x14, 0x25, 0x65, 0xa0, 0x28, 0xe5, 0xfa,
- 0x89, 0xd2, 0x2f, 0xf0, 0xa2, 0x74, 0x8f, 0x28, 0x4a, 0xb7, 0xf4, 0xe1, 0x3f, 0x26, 0x3e, 0x62,
- 0x00, 0xf8, 0x58, 0x30, 0x00, 0xdc, 0x27, 0xc0, 0xf8, 0x24, 0xb9, 0x62, 0x92, 0x01, 0xf8, 0xc5,
- 0x54, 0x3b, 0x7e, 0x3f, 0xa8, 0xb7, 0x22, 0xa0, 0xde, 0xee, 0x33, 0x26, 0x58, 0xfb, 0x87, 0x8e,
- 0x87, 0xf6, 0x0f, 0x13, 0x97, 0xd4, 0x13, 0xe0, 0xd8, 0x62, 0x65, 0x69, 0x49, 0xd3, 0xb5, 0xaa,
- 0xd1, 0xa8, 0x6a, 0xc6, 0x85, 0x9a, 0xfe, 0x40, 0xb1, 0x0d, 0x5f, 0xaf, 0x00, 0x80, 0x39, 0x54,
- 0x36, 0xed, 0x26, 0x6a, 0xcb, 0x8d, 0xe8, 0xff, 0x33, 0x9b, 0x6c, 0x4c, 0x08, 0xcb, 0x8f, 0x80,
- 0xf3, 0xd5, 0x59, 0xf9, 0x5e, 0x19, 0x59, 0x58, 0x32, 0x50, 0xdf, 0xf2, 0x58, 0xd0, 0x3d, 0xaf,
- 0x01, 0x47, 0xfd, 0xf2, 0x58, 0xf6, 0xfe, 0xcb, 0xbe, 0xb7, 0xe7, 0xc0, 0x1c, 0x83, 0xc5, 0x5f,
- 0xc7, 0x3f, 0x9c, 0x91, 0x59, 0xc8, 0x43, 0x30, 0xc9, 0x96, 0xed, 0xfe, 0xf0, 0x1e, 0xbc, 0xab,
- 0xcb, 0x60, 0xba, 0x83, 0xdc, 0x1d, 0xab, 0xdb, 0xb5, 0x1c, 0x9b, 0x1a, 0xe4, 0xe6, 0xee, 0x78,
- 0x42, 0xc0, 0x71, 0x62, 0xbb, 0x9c, 0x5f, 0x37, 0x5d, 0xcf, 0x6a, 0x5a, 0x1d, 0xd3, 0xf6, 0xd6,
- 0xc3, 0xcc, 0x3a, 0xff, 0x27, 0x7c, 0x69, 0xc2, 0x65, 0x8d, 0xd8, 0x92, 0x08, 0x91, 0xf8, 0x40,
- 0x82, 0x25, 0x49, 0x6c, 0x81, 0xc9, 0xc4, 0xe2, 0xd1, 0x54, 0xc5, 0xa2, 0x0f, 0xde, 0x5b, 0xea,
- 0x75, 0xe0, 0x44, 0xa5, 0x5a, 0xae, 0xe9, 0xba, 0x56, 0x36, 0x1a, 0xeb, 0x9a, 0xbe, 0x56, 0xa9,
- 0xd7, 0x2b, 0xb5, 0x6a, 0xfd, 0x20, 0xbd, 0x1d, 0x7e, 0x42, 0x09, 0x24, 0x66, 0x11, 0x35, 0xdb,
- 0x96, 0x8d, 0xe0, 0x7d, 0x07, 0x14, 0x18, 0xd1, 0xea, 0x23, 0x8f, 0x33, 0xab, 0x3f, 0x02, 0xe7,
- 0xd7, 0x25, 0xc7, 0xb9, 0x7f, 0x81, 0xff, 0x86, 0xbb, 0xff, 0x97, 0x14, 0x70, 0x8c, 0xeb, 0x88,
- 0x3a, 0xda, 0x19, 0x99, 0x25, 0xef, 0x27, 0xf8, 0xbe, 0x5b, 0x11, 0x31, 0xed, 0xa7, 0x4d, 0xef,
- 0x23, 0x23, 0x02, 0xd6, 0xb7, 0x04, 0xb0, 0xae, 0x0a, 0xb0, 0x3e, 0x73, 0x88, 0x32, 0x93, 0x21,
- 0xfb, 0x5b, 0xa9, 0x22, 0x7b, 0x1d, 0x38, 0xb1, 0x5e, 0xd2, 0x8d, 0x4a, 0xb9, 0xb2, 0x5e, 0xc2,
- 0xf3, 0x28, 0x37, 0x65, 0x47, 0xa8, 0xeb, 0x22, 0xe8, 0x7d, 0xf1, 0xfd, 0xbd, 0x1c, 0xb8, 0xa1,
- 0xff, 0x40, 0x5b, 0xde, 0x36, 0xed, 0x2d, 0x04, 0x2d, 0x19, 0xa8, 0x17, 0xc1, 0x44, 0x93, 0x64,
- 0xa7, 0x38, 0xf3, 0x5b, 0x37, 0x31, 0x63, 0x39, 0xad, 0x41, 0xf7, 0x7f, 0x85, 0xef, 0xe2, 0x05,
- 0xc2, 0x10, 0x05, 0xe2, 0xd9, 0xf1, 0xe0, 0xed, 0xa3, 0x3b, 0x42, 0x36, 0x3e, 0x1d, 0xc8, 0xc6,
- 0x05, 0x41, 0x36, 0xca, 0x07, 0x2b, 0x3e, 0x99, 0x98, 0xfc, 0xd1, 0x63, 0x61, 0x00, 0x88, 0x94,
- 0x26, 0x2b, 0x7a, 0x56, 0xe8, 0x3b, 0xdc, 0xbf, 0x56, 0x01, 0x85, 0x45, 0xd4, 0x46, 0xb2, 0x96,
- 0xc8, 0xbf, 0xcf, 0xca, 0x6e, 0x88, 0x50, 0x18, 0x68, 0xd9, 0xd1, 0xd6, 0x11, 0xcf, 0xda, 0x41,
- 0x5d, 0xcf, 0xdc, 0xe9, 0x10, 0x56, 0x2b, 0x7a, 0x98, 0x00, 0x7f, 0x32, 0x2b, 0xb3, 0x5d, 0x12,
- 0x53, 0xcd, 0xbf, 0x0d, 0x9b, 0xe2, 0x57, 0xe7, 0x40, 0xe1, 0x82, 0xd9, 0x6e, 0x23, 0x0f, 0x7e,
- 0x2d, 0x0b, 0x0a, 0x65, 0xbc, 0x26, 0x45, 0xf0, 0x49, 0x21, 0x58, 0x10, 0x4c, 0xba, 0x8e, 0xe3,
- 0xad, 0x9b, 0xde, 0x36, 0x43, 0x2b, 0x78, 0x67, 0xdb, 0xb4, 0xbf, 0xc9, 0x83, 0x76, 0x9f, 0x08,
- 0xda, 0x0f, 0x08, 0xdc, 0xa4, 0x15, 0xcd, 0xd3, 0x4a, 0x22, 0x50, 0x83, 0x60, 0x72, 0xc7, 0x46,
- 0x3b, 0x8e, 0x6d, 0x35, 0xfd, 0x99, 0xde, 0x7f, 0x87, 0x1f, 0x0e, 0x56, 0xc9, 0x0b, 0x02, 0x66,
- 0xf3, 0xd2, 0xb5, 0x24, 0x03, 0xad, 0x3e, 0x04, 0x66, 0x37, 0x82, 0xeb, 0x29, 0x04, 0x0d, 0xa3,
- 0xd6, 0x28, 0xeb, 0x5a, 0xc9, 0xd0, 0x1a, 0xab, 0xb5, 0x72, 0x69, 0xb5, 0xa1, 0x6b, 0xeb, 0xb5,
- 0x22, 0x82, 0xff, 0x2d, 0x8b, 0x99, 0xdb, 0x74, 0xf6, 0x90, 0x0b, 0x97, 0xa5, 0xf8, 0x1c, 0xc7,
- 0x13, 0x86, 0xc1, 0x2f, 0x48, 0x6f, 0x95, 0x33, 0xee, 0x30, 0x0a, 0x22, 0x86, 0xc2, 0x8f, 0x48,
- 0x6d, 0x7b, 0xc7, 0x16, 0xf5, 0x18, 0xe0, 0xf4, 0xff, 0xca, 0x82, 0x89, 0xb2, 0x63, 0xef, 0x21,
- 0xd7, 0xe3, 0xb5, 0x4c, 0x9e, 0x9b, 0x19, 0x91, 0x9b, 0x78, 0x68, 0x42, 0xb6, 0xe7, 0x3a, 0x1d,
- 0x5f, 0xcd, 0xf4, 0x5f, 0xe1, 0xaf, 0x27, 0xe5, 0x30, 0xab, 0x39, 0xda, 0xdc, 0xd4, 0xbf, 0x22,
- 0x81, 0x3c, 0xa5, 0xa7, 0x03, 0xbc, 0x3e, 0x09, 0x2e, 0xfd, 0x09, 0x48, 0x7f, 0x97, 0xf7, 0xcb,
- 0x0a, 0x98, 0xa5, 0x9d, 0xaf, 0x8e, 0xc8, 0xbc, 0x08, 0x6b, 0xbc, 0xa1, 0xa7, 0x87, 0xf9, 0x2b,
- 0x47, 0x04, 0xf6, 0x17, 0xcc, 0x4e, 0x27, 0x30, 0xfa, 0xad, 0x1c, 0xd1, 0xd9, 0x3b, 0x15, 0xf3,
- 0x85, 0x02, 0xc8, 0x99, 0xbb, 0xde, 0x36, 0xfc, 0x9e, 0xb4, 0xca, 0x2f, 0x0c, 0x06, 0x8c, 0x9e,
- 0x08, 0x48, 0x8e, 0x83, 0xbc, 0xe7, 0x5c, 0x42, 0x3e, 0x1f, 0xe8, 0x0b, 0x86, 0xc3, 0xec, 0x74,
- 0x0c, 0xf2, 0x81, 0xc1, 0xe1, 0xbf, 0xe3, 0x19, 0xc6, 0x6c, 0x36, 0x9d, 0x5d, 0xdb, 0xab, 0xf8,
- 0x86, 0xbf, 0x30, 0x01, 0x7e, 0x3e, 0x23, 0xb3, 0x84, 0x90, 0x20, 0x30, 0x19, 0x64, 0x17, 0x87,
- 0xe8, 0x4a, 0xf3, 0xe0, 0xb6, 0xd2, 0xfa, 0x7a, 0xc3, 0xa8, 0x3d, 0xa0, 0x55, 0xc3, 0xe9, 0xbe,
- 0x51, 0xa9, 0x36, 0x8c, 0x15, 0xad, 0x51, 0xde, 0xd0, 0x89, 0x75, 0xa6, 0x54, 0x2e, 0xd7, 0x36,
- 0xaa, 0x46, 0x11, 0xc1, 0xb7, 0x66, 0xc1, 0x4c, 0xb9, 0xed, 0x74, 0x03, 0x84, 0x6f, 0x0c, 0x11,
- 0x0e, 0xd8, 0x98, 0xe1, 0xd8, 0x08, 0xff, 0x25, 0x23, 0xbb, 0xd5, 0xeb, 0x33, 0x84, 0x2b, 0x3e,
- 0x62, 0x94, 0xfa, 0x75, 0xa9, 0xad, 0xde, 0xc1, 0xe5, 0xa5, 0xdf, 0x25, 0x3e, 0x7b, 0x37, 0x98,
- 0x28, 0x51, 0xc1, 0x80, 0x7f, 0x9d, 0x01, 0x85, 0xb2, 0x63, 0x6f, 0x5a, 0x5b, 0xea, 0x2d, 0x60,
- 0x0e, 0xd9, 0xe6, 0xc5, 0x36, 0x5a, 0x34, 0x3d, 0x73, 0xcf, 0x42, 0x97, 0x49, 0x03, 0x26, 0xf5,
- 0x9e, 0x54, 0x4c, 0x14, 0x4b, 0x41, 0x17, 0x77, 0xb7, 0x08, 0x51, 0x93, 0x3a, 0x9f, 0xa4, 0x3e,
- 0x13, 0x5c, 0x4b, 0x5f, 0xd7, 0x5d, 0xe4, 0xa2, 0x36, 0x32, 0xbb, 0x08, 0x2b, 0xa3, 0x36, 0x6a,
- 0x13, 0xa1, 0x9d, 0xd4, 0xa3, 0x3e, 0xab, 0x67, 0xc1, 0x0c, 0xfd, 0x44, 0x54, 0x9d, 0x2e, 0x11,
- 0xe3, 0x49, 0x5d, 0x48, 0x53, 0x9f, 0x0c, 0xf2, 0xe8, 0x8a, 0xe7, 0x9a, 0xa7, 0x5a, 0x04, 0xaf,
- 0x6b, 0xe7, 0xa9, 0xaf, 0xd7, 0xbc, 0xef, 0xeb, 0x35, 0x5f, 0x27, 0x9e, 0x60, 0x3a, 0xcd, 0x05,
- 0x7f, 0x65, 0x32, 0x50, 0x24, 0xfe, 0x35, 0x1b, 0x0a, 0x86, 0x0a, 0x72, 0xb6, 0xb9, 0x83, 0x98,
- 0x5c, 0x90, 0x67, 0xf5, 0x36, 0x70, 0xd4, 0xdc, 0x33, 0x3d, 0xd3, 0x5d, 0x75, 0x9a, 0x66, 0x9b,
- 0x4c, 0x7e, 0x7e, 0xcf, 0xef, 0xfd, 0x40, 0xec, 0xf0, 0x9e, 0xe3, 0x22, 0x92, 0xcb, 0xb7, 0xc3,
- 0xfb, 0x09, 0xb8, 0x74, 0xab, 0xe9, 0xd8, 0x84, 0x7e, 0x45, 0x27, 0xcf, 0x98, 0x2b, 0x2d, 0xab,
- 0x8b, 0x1b, 0x42, 0x4a, 0xa9, 0x52, 0x83, 0x72, 0xfd, 0xaa, 0xdd, 0x24, 0x36, 0xf8, 0x49, 0x3d,
- 0xea, 0xb3, 0xba, 0x00, 0xa6, 0x99, 0xf9, 0x79, 0x0d, 0xcb, 0x55, 0x81, 0xc8, 0xd5, 0x19, 0xd1,
- 0x93, 0x86, 0xe2, 0x39, 0x5f, 0x0d, 0xf3, 0xe9, 0xfc, 0x4f, 0xea, 0xfd, 0xe0, 0x7a, 0xf6, 0x5a,
- 0xde, 0xed, 0x7a, 0xce, 0x0e, 0x05, 0x7d, 0xc9, 0x6a, 0xd3, 0x16, 0x4c, 0x90, 0x16, 0xc4, 0x65,
- 0x51, 0xef, 0x00, 0xc7, 0x3b, 0x2e, 0xda, 0x44, 0xee, 0x83, 0xe6, 0xce, 0xee, 0x15, 0xc3, 0x35,
- 0xed, 0x6e, 0xc7, 0x71, 0xbd, 0x53, 0x93, 0x84, 0xf8, 0xbe, 0xdf, 0xd8, 0x40, 0x39, 0x09, 0x0a,
- 0x94, 0x7d, 0xf0, 0x25, 0x79, 0x69, 0x27, 0x3a, 0xd6, 0xa0, 0x58, 0xf5, 0xec, 0x29, 0x60, 0x82,
- 0x8d, 0x70, 0x04, 0xa8, 0xe9, 0x3b, 0x4e, 0xf6, 0xac, 0xe6, 0x58, 0x29, 0xba, 0x9f, 0x4d, 0xbd,
- 0x13, 0x14, 0x9a, 0xa4, 0x59, 0x04, 0xb3, 0xe9, 0x3b, 0xae, 0xef, 0x5f, 0x29, 0xc9, 0xa2, 0xb3,
- 0xac, 0xf0, 0x0b, 0x8a, 0x94, 0xdf, 0x5d, 0x1c, 0xc5, 0xc9, 0x7a, 0xf5, 0x37, 0xb2, 0x43, 0x0c,
- 0x9b, 0xb7, 0x83, 0x5b, 0xd9, 0x98, 0xc8, 0xf4, 0x8f, 0xc5, 0xc6, 0xc2, 0x86, 0xaf, 0x82, 0x63,
- 0xad, 0xa4, 0x6e, 0x94, 0x74, 0xbc, 0x7e, 0x5a, 0xc4, 0xaa, 0xfb, 0x6d, 0xe0, 0x96, 0x01, 0xb9,
- 0x35, 0xa3, 0x51, 0x2d, 0xad, 0x69, 0xc5, 0x4d, 0x51, 0xb7, 0xa9, 0x1b, 0xb5, 0xf5, 0x86, 0xbe,
- 0x51, 0xad, 0x56, 0xaa, 0xcb, 0xb4, 0x30, 0xac, 0x12, 0x9e, 0x0c, 0x33, 0x5c, 0xd0, 0x2b, 0x86,
- 0xd6, 0x28, 0xd7, 0xaa, 0x4b, 0x95, 0xe5, 0xa2, 0x35, 0x48, 0x31, 0x7a, 0x48, 0x3d, 0x03, 0x6e,
- 0x10, 0x28, 0xa9, 0xd4, 0xaa, 0x78, 0x3d, 0x51, 0x2e, 0x55, 0xcb, 0x1a, 0x5e, 0x3c, 0x5c, 0x52,
- 0x21, 0x38, 0x41, 0x8b, 0x6b, 0x2c, 0x55, 0x56, 0xf9, 0x2d, 0x80, 0x8f, 0x67, 0xd4, 0x53, 0xe0,
- 0x1a, 0xfe, 0x5b, 0xa5, 0x7a, 0xbe, 0xb4, 0x5a, 0x59, 0x2c, 0xfe, 0x61, 0x46, 0xbd, 0x19, 0xdc,
- 0x28, 0xfc, 0x45, 0xad, 0xf9, 0x8d, 0xca, 0x62, 0x63, 0xad, 0x52, 0x5f, 0x2b, 0x19, 0xe5, 0x95,
- 0xe2, 0x27, 0xc8, 0x7a, 0x21, 0x50, 0x80, 0x39, 0x67, 0xb8, 0x97, 0xf3, 0x73, 0x7a, 0x49, 0x14,
- 0xd4, 0x27, 0xf5, 0x85, 0x3d, 0x5e, 0x87, 0x7d, 0x34, 0x98, 0x1d, 0x16, 0x05, 0x11, 0x7a, 0x4a,
- 0x82, 0xb2, 0x92, 0xc9, 0x90, 0x31, 0x84, 0x08, 0x9d, 0x01, 0x37, 0x54, 0x35, 0x8a, 0x94, 0xae,
- 0x95, 0x6b, 0xe7, 0x35, 0xbd, 0x71, 0xa1, 0xb4, 0xba, 0xaa, 0x19, 0x8d, 0xa5, 0x8a, 0x5e, 0x37,
- 0x8a, 0x9b, 0xf0, 0x9f, 0xb2, 0xc1, 0x1a, 0x9a, 0xe3, 0xd6, 0x5f, 0x67, 0x93, 0x76, 0xeb, 0xd8,
- 0xb5, 0xf2, 0xd3, 0x41, 0xa1, 0xeb, 0x99, 0xde, 0x6e, 0x97, 0xf5, 0xea, 0xc7, 0xf5, 0xef, 0xd5,
- 0xf3, 0x75, 0x92, 0x49, 0x67, 0x99, 0xe1, 0x17, 0x32, 0x49, 0xba, 0xe9, 0x08, 0x96, 0xd1, 0xd6,
- 0x10, 0x2c, 0x3e, 0x0d, 0xa0, 0x2f, 0xed, 0x95, 0x7a, 0xa3, 0xb4, 0xaa, 0x6b, 0xa5, 0xc5, 0x07,
- 0x83, 0xc5, 0x33, 0x52, 0x4f, 0x80, 0x63, 0x1b, 0x55, 0xbc, 0x1c, 0x26, 0xdd, 0xa5, 0x56, 0xad,
- 0x6a, 0x65, 0xcc, 0xf7, 0x9f, 0x24, 0xa6, 0x6a, 0xac, 0x41, 0x13, 0xba, 0xb1, 0x96, 0xc3, 0xf1,
- 0xff, 0xeb, 0xd2, 0x1e, 0x1d, 0xa1, 0x84, 0xf1, 0x65, 0x8d, 0x16, 0x87, 0xcf, 0x4b, 0x39, 0x71,
- 0x48, 0x51, 0x92, 0x0c, 0x8f, 0xff, 0x30, 0x04, 0x1e, 0x27, 0xc0, 0x31, 0x1e, 0x0f, 0xe2, 0xcc,
- 0x11, 0x0d, 0xc3, 0x57, 0x26, 0x41, 0xa1, 0x8e, 0xda, 0xa8, 0xe9, 0xc1, 0xb7, 0x73, 0xca, 0xc4,
- 0x1c, 0xc8, 0x06, 0xce, 0x03, 0x59, 0xab, 0x25, 0x2c, 0x9f, 0xb3, 0x3d, 0xcb, 0xe7, 0x18, 0x35,
- 0x40, 0x49, 0xa4, 0x06, 0xe4, 0x52, 0x50, 0x03, 0xf2, 0xc3, 0xab, 0x01, 0x85, 0x41, 0x6a, 0x00,
- 0xfc, 0xb5, 0x42, 0xd2, 0x51, 0x82, 0xb2, 0xfa, 0x70, 0x27, 0xff, 0xff, 0x99, 0x4b, 0x32, 0xaa,
- 0xf4, 0xa5, 0x38, 0x99, 0x14, 0x7f, 0x4f, 0x49, 0xc1, 0xfc, 0xa0, 0xde, 0x04, 0x6e, 0x0c, 0xdf,
- 0x1b, 0xda, 0xf3, 0x2a, 0x75, 0xa3, 0x4e, 0x66, 0xfc, 0x72, 0x4d, 0xd7, 0x37, 0xd6, 0xa9, 0xe5,
- 0xee, 0x24, 0x50, 0xc3, 0x52, 0xf4, 0x8d, 0x2a, 0x9d, 0xdf, 0xb7, 0xc4, 0xd2, 0x97, 0x2a, 0xd5,
- 0xc5, 0x46, 0xd0, 0x67, 0xaa, 0x4b, 0xb5, 0xe2, 0x36, 0x5e, 0xb2, 0x71, 0xa5, 0xe3, 0x09, 0x9a,
- 0xd5, 0x50, 0xaa, 0x2e, 0x36, 0xd6, 0xaa, 0xda, 0x5a, 0xad, 0x5a, 0x29, 0x93, 0xf4, 0xba, 0x66,
- 0x14, 0x2d, 0x3c, 0xd1, 0xf4, 0x68, 0x14, 0x75, 0xad, 0xa4, 0x97, 0x57, 0x34, 0x9d, 0x56, 0xf9,
- 0x90, 0x7a, 0x0b, 0x38, 0x5b, 0xaa, 0xd6, 0x0c, 0x9c, 0x52, 0xaa, 0x3e, 0x68, 0x3c, 0xb8, 0xae,
- 0x35, 0xd6, 0xf5, 0x5a, 0x59, 0xab, 0xd7, 0x71, 0x3f, 0x65, 0xfa, 0x47, 0xb1, 0xad, 0x3e, 0x1b,
- 0xdc, 0xcd, 0x91, 0xa6, 0x19, 0x64, 0x9b, 0x68, 0xad, 0x46, 0x3c, 0x05, 0x16, 0xb5, 0xc6, 0x4a,
- 0xa9, 0xde, 0xa8, 0x54, 0xcb, 0xb5, 0xb5, 0xf5, 0x92, 0x51, 0xc1, 0xdd, 0x79, 0x5d, 0xaf, 0x19,
- 0xb5, 0xc6, 0x79, 0x4d, 0xaf, 0x57, 0x6a, 0xd5, 0xa2, 0x8d, 0x9b, 0xcc, 0xf5, 0x7f, 0x7f, 0x1c,
- 0x76, 0xd4, 0x1b, 0xc0, 0x29, 0x3f, 0x7d, 0xb5, 0x86, 0x19, 0xcd, 0x69, 0x24, 0x9d, 0x54, 0x35,
- 0x92, 0x7f, 0xce, 0x82, 0x5c, 0xdd, 0x73, 0x3a, 0xf0, 0x07, 0xc2, 0x01, 0xe6, 0x34, 0x00, 0x2e,
- 0xd9, 0xf5, 0xc1, 0xab, 0x30, 0xb6, 0x2e, 0xe3, 0x52, 0xe0, 0x1f, 0x48, 0x9b, 0xaa, 0xc3, 0x31,
- 0xdb, 0xe9, 0x44, 0xe8, 0x2a, 0xdf, 0x91, 0xf3, 0xdd, 0x8f, 0x2e, 0x28, 0x99, 0xbc, 0xff, 0xcc,
- 0x30, 0xc6, 0x68, 0x08, 0x4e, 0x72, 0xb0, 0x61, 0xfe, 0xfb, 0x22, 0x81, 0xd4, 0x6b, 0xc1, 0x35,
- 0x3d, 0xc2, 0x45, 0x64, 0x6a, 0x53, 0x7d, 0x3c, 0x78, 0x1c, 0x27, 0xde, 0xda, 0x5a, 0xed, 0xbc,
- 0x16, 0x08, 0xf2, 0x62, 0xc9, 0x28, 0x15, 0xb7, 0xe0, 0x67, 0x15, 0x90, 0x5b, 0x73, 0xf6, 0x7a,
- 0x77, 0x08, 0x6c, 0x74, 0x99, 0xb3, 0x85, 0xfa, 0xaf, 0xa2, 0xaf, 0xb2, 0x14, 0xdb, 0xd7, 0xa2,
- 0x77, 0x03, 0x3f, 0x9f, 0x4d, 0xc2, 0xf6, 0xb5, 0x83, 0x6e, 0x01, 0xfe, 0xdd, 0x30, 0x6c, 0x8f,
- 0x60, 0x2d, 0x52, 0xcf, 0x82, 0xd3, 0xe1, 0x87, 0xca, 0xa2, 0x56, 0x35, 0x2a, 0x4b, 0x0f, 0x86,
- 0xcc, 0xad, 0xe8, 0x52, 0xec, 0x1f, 0x34, 0x8c, 0xc5, 0xaf, 0x34, 0x4e, 0x81, 0xe3, 0xe1, 0xb7,
- 0x65, 0xcd, 0xf0, 0xbf, 0x3c, 0x04, 0x5f, 0x98, 0x07, 0x33, 0x74, 0x58, 0xdf, 0xe8, 0xb4, 0x4c,
- 0x0f, 0xc1, 0x3b, 0x43, 0x74, 0x6f, 0x05, 0x47, 0x2b, 0xeb, 0x4b, 0xf5, 0xba, 0xe7, 0xb8, 0xe6,
- 0x16, 0x2a, 0xb5, 0x5a, 0x2e, 0xe3, 0x56, 0x6f, 0x32, 0x7c, 0x44, 0xda, 0xce, 0x27, 0x4e, 0x25,
- 0xb4, 0xce, 0x08, 0xd4, 0xbf, 0x2c, 0x65, 0x97, 0x93, 0x28, 0x30, 0x19, 0xfa, 0x0f, 0x8d, 0xb8,
- 0xcf, 0x45, 0xe3, 0xb2, 0x79, 0xf6, 0x45, 0x59, 0x30, 0x65, 0x58, 0x3b, 0xe8, 0xf9, 0x8e, 0x8d,
- 0xba, 0xea, 0x04, 0x50, 0x96, 0xd7, 0x8c, 0xe2, 0x11, 0xfc, 0x80, 0x95, 0xaa, 0x0c, 0x79, 0xd0,
- 0x70, 0x05, 0xf8, 0xa1, 0x64, 0x14, 0x15, 0xfc, 0xb0, 0xa6, 0x19, 0xc5, 0x1c, 0x7e, 0xa8, 0x6a,
- 0x46, 0x31, 0x8f, 0x1f, 0xd6, 0x57, 0x8d, 0x62, 0x01, 0x3f, 0x54, 0xea, 0x46, 0x71, 0x02, 0x3f,
- 0x2c, 0xd4, 0x8d, 0xe2, 0x24, 0x7e, 0x38, 0x5f, 0x37, 0x8a, 0x53, 0xf8, 0xa1, 0x6c, 0x18, 0x45,
- 0x80, 0x1f, 0x9e, 0x53, 0x37, 0x8a, 0xd3, 0xf8, 0xa1, 0x54, 0x36, 0x8a, 0x33, 0xe4, 0x41, 0x33,
- 0x8a, 0xb3, 0xf8, 0xa1, 0x5e, 0x37, 0x8a, 0x73, 0xa4, 0xe4, 0xba, 0x51, 0x3c, 0x4a, 0xea, 0xaa,
- 0x18, 0xc5, 0x22, 0x7e, 0x58, 0xa9, 0x1b, 0xc5, 0x63, 0x24, 0x73, 0xdd, 0x28, 0xaa, 0xa4, 0xd2,
- 0xba, 0x51, 0xbc, 0x86, 0xe4, 0xa9, 0x1b, 0xc5, 0xe3, 0xa4, 0x8a, 0xba, 0x51, 0x3c, 0x41, 0xc8,
- 0xd0, 0x8c, 0xe2, 0x49, 0x92, 0x47, 0x37, 0x8a, 0xd7, 0x92, 0x4f, 0x55, 0xa3, 0x78, 0x8a, 0x10,
- 0xa6, 0x19, 0xc5, 0xeb, 0xc8, 0x83, 0x6e, 0x14, 0x21, 0xf9, 0x54, 0x32, 0x8a, 0xd7, 0xc3, 0xc7,
- 0x81, 0xa9, 0x65, 0xe4, 0x51, 0x10, 0x61, 0x11, 0x28, 0xcb, 0xc8, 0xe3, 0xd5, 0xf8, 0xaf, 0x2a,
- 0xe0, 0x5a, 0xb6, 0xf4, 0x5b, 0x72, 0x9d, 0x9d, 0x55, 0xb4, 0x65, 0x36, 0xaf, 0x6a, 0x57, 0xb0,
- 0x0a, 0x05, 0xeb, 0x82, 0xe9, 0xaa, 0x13, 0x0e, 0x46, 0xe4, 0x39, 0x56, 0xe3, 0xf4, 0x8d, 0x51,
- 0x4a, 0x68, 0x8c, 0x62, 0x1a, 0xd9, 0x3f, 0xf2, 0x12, 0x2d, 0xd8, 0x8f, 0x33, 0x3d, 0xf6, 0x63,
- 0xdc, 0x4d, 0x3a, 0xc8, 0xed, 0x3a, 0xb6, 0xd9, 0xae, 0xb3, 0xed, 0x52, 0x6a, 0xf5, 0xea, 0x4d,
- 0x56, 0x9f, 0xeb, 0xf7, 0x0c, 0xaa, 0x95, 0x3d, 0x2b, 0x6e, 0x85, 0xdb, 0xdb, 0xcc, 0x88, 0x4e,
- 0xf2, 0x89, 0xa0, 0x93, 0x18, 0x42, 0x27, 0xb9, 0xff, 0x00, 0x65, 0x27, 0xeb, 0x2f, 0x95, 0xe1,
- 0x96, 0x16, 0xa1, 0x33, 0xa1, 0x6f, 0xae, 0x56, 0xe0, 0x67, 0xb3, 0xe0, 0xa4, 0x66, 0xf7, 0xd3,
- 0xf0, 0x79, 0x59, 0x78, 0x2b, 0x0f, 0xcd, 0xba, 0xc8, 0xd2, 0xbb, 0xfb, 0x36, 0xbb, 0x7f, 0x99,
- 0x11, 0x1c, 0xfd, 0x54, 0xc0, 0xd1, 0xba, 0xc0, 0xd1, 0xfb, 0x86, 0x2f, 0x3a, 0x19, 0x43, 0xab,
- 0x23, 0x1d, 0x80, 0x72, 0xf0, 0x1b, 0x39, 0xf0, 0x38, 0xea, 0xf1, 0xc0, 0x28, 0xa4, 0xbd, 0xac,
- 0x64, 0xb7, 0x74, 0xd4, 0xf5, 0x4c, 0xd7, 0x13, 0x4e, 0xa1, 0xf6, 0x2c, 0xa5, 0x32, 0x29, 0x2c,
- 0xa5, 0xb2, 0x03, 0x97, 0x52, 0xf0, 0xdd, 0xbc, 0xfa, 0x70, 0x41, 0xc4, 0xb8, 0xd4, 0x7f, 0xfc,
- 0x8f, 0x6b, 0x61, 0x14, 0xd4, 0x81, 0x5e, 0xf1, 0x43, 0x02, 0xd4, 0x4b, 0x07, 0xae, 0x21, 0x19,
- 0xe2, 0x7f, 0x30, 0x5a, 0x3d, 0x2f, 0xc7, 0x7f, 0x13, 0x95, 0x92, 0x62, 0x2b, 0x55, 0x05, 0xfd,
- 0xd3, 0x13, 0x60, 0x8a, 0xf4, 0x85, 0x55, 0xcb, 0xbe, 0x04, 0x5f, 0xaf, 0x80, 0x99, 0x2a, 0xba,
- 0x5c, 0xde, 0x36, 0xdb, 0x6d, 0x64, 0x6f, 0x21, 0x5e, 0x6d, 0x3f, 0x05, 0x26, 0xcc, 0x4e, 0xa7,
- 0x1a, 0xee, 0x33, 0xf8, 0xaf, 0x6c, 0xfc, 0xfd, 0x7a, 0xdf, 0x4e, 0x9e, 0x89, 0xe9, 0xe4, 0x41,
- 0xbd, 0xf3, 0x7c, 0x9d, 0x11, 0x2b, 0xe4, 0x33, 0x60, 0xba, 0xe9, 0x67, 0x09, 0xbc, 0xd5, 0xf9,
- 0x24, 0xf8, 0xb7, 0x89, 0x86, 0x01, 0xa9, 0xca, 0x93, 0x09, 0x05, 0x1a, 0xb1, 0x1e, 0x72, 0x02,
- 0x1c, 0x33, 0x6a, 0xb5, 0xc6, 0x5a, 0xa9, 0xfa, 0x60, 0x78, 0x4a, 0x74, 0x13, 0xbe, 0x3a, 0x07,
- 0xe6, 0xea, 0x4e, 0x7b, 0x0f, 0x85, 0x30, 0x55, 0x42, 0x98, 0x7a, 0xf8, 0x94, 0xd9, 0xc7, 0x27,
- 0xf5, 0x24, 0x28, 0x98, 0x76, 0xf7, 0x32, 0xf2, 0x75, 0x43, 0xf6, 0xc6, 0x60, 0xfc, 0x3d, 0xbe,
- 0x1f, 0xeb, 0x22, 0x8c, 0xf7, 0x0c, 0xe0, 0xa4, 0x48, 0x55, 0x04, 0x90, 0x67, 0xc1, 0x4c, 0x97,
- 0x6e, 0x16, 0x1a, 0xdc, 0x9e, 0xb0, 0x90, 0x46, 0x48, 0xa4, 0xbb, 0xd5, 0x0a, 0x23, 0x91, 0xbc,
- 0xc1, 0xd7, 0x07, 0xdd, 0x7f, 0x43, 0x80, 0xb8, 0x74, 0x10, 0xc2, 0x92, 0x81, 0xfc, 0xda, 0x51,
- 0xaf, 0xf0, 0x4e, 0x81, 0xe3, 0xac, 0xd7, 0x36, 0xca, 0x2b, 0xa5, 0xd5, 0x55, 0xad, 0xba, 0xac,
- 0x35, 0x2a, 0x8b, 0x74, 0xab, 0x22, 0x4c, 0x29, 0x19, 0x86, 0xb6, 0xb6, 0x6e, 0xd4, 0x1b, 0xda,
- 0xf3, 0xca, 0x9a, 0xb6, 0x48, 0x1c, 0x91, 0xc8, 0x49, 0x02, 0xdf, 0x65, 0xac, 0x54, 0xad, 0x5f,
- 0xd0, 0xf4, 0xe2, 0xf6, 0xd9, 0x12, 0x98, 0xe6, 0xc6, 0x79, 0x4c, 0xdd, 0x22, 0xda, 0x34, 0x77,
- 0xdb, 0x4c, 0x57, 0x2b, 0x1e, 0xc1, 0xd4, 0x11, 0xde, 0xd4, 0xec, 0xf6, 0xd5, 0x62, 0x46, 0x2d,
- 0x82, 0x19, 0x7e, 0x48, 0x2f, 0x66, 0xe1, 0x77, 0xae, 0x07, 0x53, 0x17, 0x1c, 0xf7, 0x12, 0xf1,
- 0x1e, 0x83, 0xef, 0xa3, 0xd1, 0x24, 0xfc, 0x73, 0x79, 0xdc, 0xc4, 0xfe, 0x5a, 0x79, 0x6f, 0x01,
- 0xbf, 0xb4, 0xf9, 0x81, 0x67, 0xef, 0xce, 0x80, 0xe9, 0xcb, 0x7e, 0xee, 0xb0, 0xa7, 0x73, 0x49,
- 0xf0, 0xbf, 0xca, 0xed, 0xff, 0x0f, 0xae, 0x32, 0xfd, 0xfd, 0xe9, 0xb7, 0x67, 0x41, 0x61, 0x19,
- 0x79, 0xa5, 0x76, 0x9b, 0xe7, 0xdb, 0x2b, 0xa4, 0xcf, 0x53, 0x08, 0x8d, 0x28, 0xb5, 0xdb, 0xd1,
- 0x9d, 0x8a, 0x63, 0x90, 0xef, 0xf7, 0x2b, 0xa4, 0xc1, 0x5f, 0x93, 0x3a, 0x09, 0x35, 0xa0, 0xc2,
- 0xf4, 0x39, 0xf6, 0x26, 0x25, 0xd8, 0xe3, 0xfe, 0x69, 0x4e, 0xcb, 0x79, 0x6a, 0x18, 0x49, 0x24,
- 0x13, 0xbf, 0x57, 0xee, 0xe7, 0x53, 0x1f, 0x00, 0x13, 0xbb, 0x5d, 0x54, 0x36, 0xbb, 0x88, 0xd0,
- 0xd6, 0xdb, 0xd2, 0xda, 0xc5, 0x87, 0x50, 0xd3, 0x9b, 0xaf, 0xec, 0x60, 0x85, 0x7a, 0x83, 0x66,
- 0x0c, 0x82, 0x73, 0xb0, 0x77, 0xdd, 0x2f, 0x01, 0xbe, 0x64, 0x08, 0xc8, 0x62, 0xf7, 0x7b, 0x23,
- 0x8f, 0x5e, 0x25, 0x06, 0x6a, 0x04, 0x9b, 0xb4, 0xc3, 0x00, 0xf5, 0xe9, 0x2c, 0xc8, 0xd5, 0x3a,
- 0xc8, 0x96, 0x73, 0x40, 0x7d, 0xbd, 0xbc, 0x97, 0x57, 0xd0, 0x30, 0x5c, 0x7a, 0x04, 0xf7, 0xce,
- 0x81, 0x9c, 0x65, 0x6f, 0x3a, 0x4c, 0xc1, 0xbc, 0x3e, 0x62, 0x33, 0xa7, 0x62, 0x6f, 0x3a, 0x3a,
- 0xc9, 0x28, 0xeb, 0xe0, 0x15, 0x57, 0x77, 0xfa, 0x2c, 0xfd, 0xe6, 0x24, 0x28, 0x50, 0xb1, 0x84,
- 0x2f, 0x57, 0x80, 0x52, 0x6a, 0xb5, 0x22, 0x0e, 0x71, 0x64, 0xf7, 0x1d, 0xe2, 0x70, 0xc8, 0x6f,
- 0x01, 0xdf, 0x83, 0x77, 0x31, 0x14, 0x84, 0xe4, 0x18, 0xcd, 0xba, 0x46, 0xa9, 0xd5, 0x8a, 0xf6,
- 0x25, 0x0d, 0x2a, 0xcc, 0x8a, 0x15, 0xf2, 0x3d, 0x55, 0x91, 0xeb, 0xa9, 0x89, 0x07, 0xf4, 0x48,
- 0xfa, 0xd2, 0x87, 0xe8, 0x1f, 0xb3, 0x60, 0x62, 0xd5, 0xea, 0x7a, 0x18, 0x9b, 0x92, 0x0c, 0x36,
- 0x37, 0x80, 0x29, 0x9f, 0x35, 0x78, 0xe8, 0xc2, 0xe3, 0x72, 0x98, 0x00, 0xdf, 0xc0, 0xa3, 0xf3,
- 0x1c, 0x11, 0x9d, 0xa7, 0xc5, 0xb7, 0x9e, 0x51, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad,
- 0xf6, 0x37, 0x03, 0x86, 0xaf, 0x09, 0x0c, 0xbf, 0x6b, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb2,
- 0x00, 0xe0, 0xba, 0xd9, 0x41, 0x98, 0x27, 0x0a, 0xc7, 0x5b, 0x63, 0xb8, 0xfb, 0x6a, 0x9e, 0xbb,
- 0x6b, 0x22, 0x77, 0x9f, 0x31, 0xb8, 0xa9, 0x71, 0x07, 0x5e, 0xd4, 0x22, 0x50, 0xac, 0x80, 0xb5,
- 0xf8, 0x11, 0xbe, 0x3d, 0x60, 0xea, 0xba, 0xc0, 0xd4, 0x7b, 0x86, 0xac, 0x29, 0x7d, 0xbe, 0xfe,
- 0x65, 0x16, 0x4c, 0xd4, 0x91, 0x87, 0x87, 0x49, 0x78, 0x5e, 0xe6, 0xc8, 0x09, 0xd7, 0xb7, 0xb3,
- 0x92, 0x7d, 0xfb, 0xdb, 0x19, 0xd9, 0x30, 0x19, 0x21, 0x67, 0x18, 0x4d, 0x11, 0x46, 0x80, 0x37,
- 0x4a, 0x85, 0xc9, 0x18, 0x54, 0x5a, 0xfa, 0xdc, 0x7d, 0x6b, 0x36, 0xd8, 0x60, 0x7f, 0x92, 0xb0,
- 0x40, 0xe3, 0xd5, 0xdb, 0xcc, 0x7e, 0xf5, 0xf6, 0x9f, 0x32, 0xc9, 0x55, 0x8d, 0xb8, 0xdd, 0xe5,
- 0xc4, 0x0a, 0xc5, 0x08, 0x36, 0x7e, 0x87, 0xe1, 0xd7, 0x0b, 0x14, 0x50, 0x60, 0x16, 0xe2, 0xfb,
- 0xe2, 0x2d, 0xc4, 0x83, 0x97, 0x08, 0xef, 0x1d, 0x42, 0x5d, 0x8b, 0x33, 0xdb, 0x06, 0x64, 0x64,
- 0x39, 0x32, 0x6e, 0x07, 0x79, 0x12, 0xc7, 0x8f, 0xcd, 0x73, 0xe1, 0x9e, 0xbd, 0x5f, 0x84, 0x86,
- 0xbf, 0xea, 0x34, 0x53, 0x62, 0x14, 0x46, 0x60, 0xe9, 0x1d, 0x06, 0x85, 0x97, 0x7d, 0x34, 0x13,
- 0x28, 0x21, 0xef, 0xcd, 0x31, 0x15, 0xef, 0x63, 0x62, 0x44, 0x81, 0xa6, 0x63, 0x7b, 0xe8, 0x0a,
- 0x67, 0x5b, 0x0f, 0x12, 0x62, 0x35, 0x83, 0x53, 0x60, 0xc2, 0x73, 0x79, 0x7b, 0xbb, 0xff, 0xca,
- 0x8f, 0x38, 0x79, 0x71, 0xc4, 0xa9, 0x82, 0xb3, 0x96, 0xdd, 0x6c, 0xef, 0xb6, 0x90, 0x8e, 0xda,
- 0x26, 0x6e, 0x55, 0xb7, 0xd4, 0x5d, 0x44, 0x1d, 0x64, 0xb7, 0x90, 0xed, 0x51, 0x3a, 0x7d, 0xdf,
- 0x5a, 0x89, 0x9c, 0xf0, 0x6b, 0xbc, 0x60, 0xdc, 0x2b, 0x0a, 0xc6, 0x13, 0xfb, 0xad, 0x0f, 0x62,
- 0x94, 0xd0, 0xbb, 0x00, 0xa0, 0x6d, 0x3b, 0x6f, 0xa1, 0xcb, 0x6c, 0x40, 0xbc, 0xae, 0x47, 0x15,
- 0xad, 0x05, 0x19, 0x74, 0x2e, 0x33, 0xfc, 0x52, 0x20, 0x0c, 0xf7, 0x0b, 0xc2, 0x70, 0xbb, 0x24,
- 0x09, 0xc9, 0xe4, 0xa0, 0x33, 0x84, 0xcd, 0x62, 0x16, 0x4c, 0x85, 0x96, 0x46, 0x45, 0xbd, 0x0e,
- 0x9c, 0xf0, 0x7d, 0x17, 0xaa, 0x9a, 0xb6, 0x58, 0x6f, 0x6c, 0xac, 0x2f, 0xeb, 0xa5, 0x45, 0xad,
- 0x08, 0x54, 0x15, 0xcc, 0xd5, 0x16, 0x9e, 0xa3, 0x95, 0x8d, 0xc0, 0xe5, 0x20, 0x07, 0xff, 0x3c,
- 0x0b, 0xf2, 0xc4, 0x31, 0x1c, 0xfe, 0xc8, 0x88, 0x24, 0xa7, 0x2b, 0xec, 0xd4, 0x04, 0xeb, 0x0a,
- 0xf9, 0x48, 0x7f, 0x8c, 0x99, 0x84, 0xaa, 0x03, 0x45, 0xfa, 0x8b, 0x29, 0x28, 0xfd, 0xee, 0x89,
- 0xbb, 0x64, 0x7d, 0xdb, 0xb9, 0xfc, 0xef, 0xb9, 0x4b, 0xe2, 0xf6, 0x1f, 0x72, 0x97, 0xec, 0x43,
- 0xc2, 0xd8, 0xbb, 0x64, 0x9f, 0x7e, 0x17, 0xd3, 0x4d, 0xe1, 0xdf, 0xe6, 0x02, 0xc3, 0xca, 0xff,
- 0x75, 0x30, 0xc3, 0x4a, 0x09, 0xcc, 0x5a, 0xb6, 0x87, 0x5c, 0xdb, 0x6c, 0x2f, 0xb5, 0xcd, 0x2d,
- 0xff, 0xf8, 0x71, 0xef, 0x2a, 0xbc, 0xc2, 0xe5, 0xd1, 0xc5, 0x3f, 0xd4, 0xd3, 0x00, 0x78, 0x68,
- 0xa7, 0xd3, 0x36, 0xbd, 0x50, 0xf4, 0xb8, 0x14, 0x5e, 0xfa, 0x72, 0xa2, 0xf4, 0x3d, 0x05, 0x5c,
- 0x43, 0x41, 0x33, 0xae, 0x76, 0xd0, 0x86, 0x6d, 0xfd, 0xe8, 0x2e, 0x09, 0x40, 0x43, 0x65, 0xb4,
- 0xdf, 0x27, 0xf8, 0x3f, 0xa4, 0x8f, 0x51, 0xfa, 0x3d, 0x7b, 0xc0, 0x31, 0xca, 0xa0, 0x37, 0x29,
- 0x3d, 0xbd, 0x29, 0x50, 0x08, 0x72, 0x12, 0x0a, 0x01, 0xcf, 0xf9, 0xbc, 0xa4, 0x32, 0xfd, 0x3a,
- 0xa9, 0x73, 0x9a, 0x71, 0xcd, 0x48, 0x7f, 0x84, 0x7a, 0x9f, 0x02, 0xe6, 0x68, 0xd5, 0x0b, 0x8e,
- 0x73, 0x69, 0xc7, 0x74, 0x2f, 0xf1, 0x6b, 0x8b, 0x21, 0xc4, 0x2d, 0xda, 0x52, 0xf6, 0x29, 0x1e,
- 0xd9, 0x65, 0x11, 0xd9, 0xa7, 0x46, 0xb3, 0xc4, 0xa7, 0x6b, 0x3c, 0xc6, 0x8d, 0x37, 0x07, 0x98,
- 0x3d, 0x47, 0xc0, 0xec, 0x07, 0x13, 0x13, 0x98, 0x3e, 0x76, 0x7f, 0x14, 0x60, 0xe7, 0x0f, 0xd8,
- 0xa9, 0x61, 0xf7, 0xe5, 0xe1, 0xb0, 0xf3, 0xe9, 0x1a, 0x02, 0xbb, 0x22, 0x50, 0x2e, 0x05, 0x5b,
- 0x4a, 0xf8, 0x91, 0x6f, 0x50, 0x2e, 0x3d, 0x34, 0x23, 0x48, 0x1e, 0x0b, 0x9a, 0xc7, 0x45, 0x12,
- 0x6a, 0x9d, 0x54, 0x31, 0xfd, 0xa2, 0xb4, 0xbd, 0xa5, 0x2f, 0x83, 0x28, 0x75, 0xe3, 0xe9, 0x95,
- 0x72, 0xc6, 0x1a, 0x79, 0x32, 0xd3, 0x47, 0xf3, 0x1f, 0x72, 0x60, 0xca, 0x3f, 0xcc, 0xea, 0xc1,
- 0x3f, 0xe5, 0xa6, 0xf0, 0x93, 0xa0, 0xd0, 0x75, 0x76, 0xdd, 0x26, 0x62, 0x16, 0x30, 0xf6, 0x36,
- 0x84, 0xb5, 0x66, 0xe0, 0xbc, 0xbc, 0x6f, 0xea, 0xcf, 0x25, 0x9e, 0xfa, 0x23, 0x15, 0x4b, 0xf8,
- 0x12, 0xe9, 0xd0, 0x83, 0x02, 0x2e, 0x75, 0xe4, 0x3d, 0x16, 0xe7, 0xea, 0x0f, 0x49, 0xad, 0xf7,
- 0x07, 0xb4, 0x24, 0x99, 0x58, 0xd5, 0x86, 0x50, 0x2a, 0xaf, 0x07, 0xd7, 0xfa, 0x39, 0x98, 0x36,
- 0x49, 0xb4, 0xc7, 0x0d, 0x7d, 0xb5, 0xa8, 0xc0, 0x17, 0xe4, 0x40, 0x91, 0x92, 0x56, 0x0b, 0x14,
- 0x2b, 0xf8, 0x8a, 0x43, 0xd7, 0x1e, 0xa3, 0x97, 0x83, 0x9f, 0xc9, 0xca, 0x86, 0x37, 0x12, 0x18,
- 0x1f, 0xb6, 0x2e, 0x42, 0x92, 0x86, 0xe8, 0x4a, 0x31, 0xc2, 0x07, 0x7f, 0x23, 0x23, 0x13, 0x2d,
- 0x49, 0x8e, 0xc4, 0xf4, 0x47, 0x9e, 0x37, 0xe4, 0xfc, 0xb8, 0x03, 0x4b, 0xae, 0xb3, 0xb3, 0xe1,
- 0xb6, 0xe1, 0x87, 0xa5, 0x82, 0xd1, 0x45, 0xa8, 0xea, 0xd9, 0x48, 0x55, 0x1d, 0x4f, 0xd1, 0xbb,
- 0x6e, 0xdb, 0x9f, 0xa2, 0x77, 0xdd, 0xf6, 0x10, 0x53, 0xb4, 0x7a, 0x0b, 0x98, 0x33, 0x5b, 0xad,
- 0x75, 0x73, 0x0b, 0x95, 0xf1, 0x1a, 0xd8, 0xf6, 0xd8, 0x99, 0xe4, 0x9e, 0xd4, 0x04, 0x3b, 0x63,
- 0x02, 0x10, 0x8c, 0x07, 0x8f, 0xa5, 0x9d, 0x31, 0x09, 0xfa, 0xd2, 0x97, 0x92, 0x4f, 0x64, 0xc1,
- 0xac, 0xaf, 0xb8, 0x2e, 0x21, 0xaf, 0xb9, 0x0d, 0xef, 0x92, 0xb5, 0x50, 0x30, 0xd8, 0xb3, 0x01,
- 0xec, 0xf0, 0x7b, 0x99, 0x84, 0xd8, 0x08, 0x35, 0x47, 0x98, 0x77, 0x12, 0x31, 0x33, 0xae, 0xc0,
- 0xf4, 0x99, 0xf9, 0xa5, 0x2c, 0x00, 0x86, 0x13, 0x2c, 0xa0, 0x0e, 0xc0, 0xc9, 0x97, 0x49, 0x87,
- 0x29, 0x67, 0x0d, 0x0f, 0xab, 0x4d, 0x2e, 0xe2, 0x92, 0x7b, 0x33, 0x83, 0x6a, 0x4a, 0x9f, 0xbf,
- 0x1f, 0xc8, 0x82, 0xa9, 0xc5, 0xdd, 0x4e, 0xdb, 0x6a, 0x9a, 0x5e, 0xef, 0x86, 0x62, 0x34, 0x7b,
- 0xc9, 0x7d, 0x23, 0x89, 0x34, 0x94, 0xa0, 0x8e, 0x08, 0x5e, 0xd2, 0xd3, 0x96, 0x59, 0xff, 0xb4,
- 0xa5, 0xe4, 0x26, 0xc1, 0x80, 0xc2, 0xc7, 0x20, 0x9e, 0x0a, 0x38, 0x5a, 0xeb, 0x20, 0x7b, 0xc1,
- 0x45, 0x66, 0xab, 0xe9, 0xee, 0xee, 0x5c, 0xec, 0xf2, 0xbb, 0xe1, 0xf1, 0x32, 0xca, 0xd9, 0x1c,
- 0xb3, 0x82, 0xcd, 0x11, 0xfe, 0x94, 0x22, 0x7b, 0xf6, 0x97, 0xb3, 0x8c, 0x73, 0x34, 0x0c, 0x31,
- 0x26, 0x27, 0xda, 0xc3, 0xe9, 0x31, 0x2f, 0xe6, 0x92, 0x98, 0x17, 0xdf, 0x22, 0x75, 0x92, 0x58,
- 0xaa, 0x5d, 0x63, 0xd9, 0x8a, 0x9b, 0xab, 0x23, 0x2f, 0x02, 0xde, 0x9b, 0xc1, 0xec, 0xc5, 0xf0,
- 0x4b, 0x00, 0xb1, 0x98, 0xd8, 0x67, 0x83, 0xfc, 0xad, 0x49, 0x97, 0xfc, 0x22, 0x09, 0x11, 0xe8,
- 0x06, 0x08, 0x66, 0x65, 0x76, 0xe1, 0x12, 0xad, 0xdf, 0x63, 0xeb, 0x4f, 0x1f, 0x85, 0x8f, 0x66,
- 0xc1, 0x34, 0xb9, 0x45, 0x65, 0xe1, 0x2a, 0x71, 0xcf, 0x7e, 0x82, 0x10, 0x6a, 0x2b, 0xd2, 0xe3,
- 0xe7, 0xc5, 0x3c, 0x9b, 0x55, 0x90, 0x6b, 0x5b, 0xf6, 0x25, 0x7f, 0xfb, 0x14, 0x3f, 0x87, 0x31,
- 0xf9, 0xb3, 0x7d, 0x62, 0xf2, 0x07, 0x06, 0xee, 0xa0, 0xde, 0x03, 0x5d, 0x12, 0x35, 0xb0, 0xb8,
- 0xf4, 0xd9, 0xf8, 0xc7, 0x39, 0x50, 0xa8, 0x23, 0xd3, 0x6d, 0x6e, 0xc3, 0x57, 0x73, 0x07, 0xdd,
- 0x97, 0xc0, 0xc4, 0xa6, 0xd5, 0xf6, 0x90, 0x4b, 0x1d, 0x47, 0xf8, 0x01, 0x9c, 0x76, 0xe4, 0x85,
- 0xb6, 0xd3, 0xbc, 0x34, 0xcf, 0xb4, 0xc5, 0x79, 0x3f, 0x66, 0xd0, 0xfc, 0x12, 0xf9, 0x49, 0xf7,
- 0x7f, 0x56, 0xef, 0x07, 0xf9, 0xae, 0xe3, 0x7a, 0x51, 0x41, 0x38, 0x23, 0x4a, 0xa9, 0x3b, 0xae,
- 0xa7, 0xd3, 0x1f, 0x31, 0x98, 0x9b, 0xbb, 0xed, 0xb6, 0x81, 0xae, 0x78, 0xfe, 0x4a, 0xc1, 0x7f,
- 0xc7, 0x6b, 0x7b, 0x67, 0x73, 0xb3, 0x8b, 0xe8, 0x3a, 0x35, 0xaf, 0xb3, 0x37, 0xf5, 0x38, 0xc8,
- 0xb7, 0xad, 0x1d, 0x8b, 0xea, 0xb6, 0x79, 0x9d, 0xbe, 0xa8, 0xb7, 0x81, 0x62, 0xa8, 0x56, 0x53,
- 0x42, 0x4f, 0x15, 0x48, 0x07, 0xdc, 0x97, 0x8e, 0x25, 0xe3, 0x12, 0xba, 0xda, 0x3d, 0x35, 0x41,
- 0xbe, 0x93, 0x67, 0xd1, 0x4b, 0x4f, 0xc6, 0x54, 0x4e, 0xf9, 0x1a, 0xbd, 0x68, 0x72, 0x51, 0xd3,
- 0x71, 0x5b, 0x3e, 0x6f, 0xa2, 0xf5, 0x5d, 0x96, 0x2f, 0x99, 0x81, 0xbb, 0x6f, 0xe5, 0xe9, 0xcb,
- 0xd3, 0x2b, 0x0b, 0x78, 0x70, 0xc4, 0x55, 0x5f, 0xb0, 0xbc, 0xed, 0x35, 0xe4, 0x99, 0xf0, 0x8f,
- 0x95, 0xff, 0x4f, 0xae, 0x62, 0xe4, 0x8a, 0x9e, 0xf9, 0xf6, 0x76, 0x5d, 0x1b, 0x73, 0x8b, 0x45,
- 0x59, 0xe2, 0x52, 0xd4, 0x7b, 0xc0, 0x75, 0xe1, 0x9b, 0x6f, 0x67, 0x5b, 0x64, 0x6b, 0xa5, 0x29,
- 0x92, 0x3d, 0x3a, 0x83, 0xba, 0x0e, 0x6e, 0xa2, 0x1f, 0x57, 0x8c, 0xb5, 0xd5, 0x15, 0x6b, 0x6b,
- 0xbb, 0x6d, 0x6d, 0x6d, 0x7b, 0xdd, 0x8a, 0xdd, 0xf5, 0x90, 0xd9, 0xaa, 0x6d, 0xea, 0x34, 0x48,
- 0x2e, 0x20, 0xe5, 0xc8, 0x64, 0x15, 0xdd, 0x47, 0xe4, 0x66, 0x2a, 0x5e, 0x1e, 0x22, 0xfa, 0xc3,
- 0x0f, 0xe2, 0xfe, 0xd0, 0xdd, 0x6d, 0x07, 0x98, 0xde, 0xd0, 0x83, 0x69, 0x28, 0xd0, 0xbb, 0x6d,
- 0xd2, 0x29, 0x48, 0xe6, 0xa4, 0x73, 0x56, 0x0c, 0x25, 0xe9, 0x77, 0x8e, 0xff, 0xa7, 0x00, 0xf2,
- 0xcb, 0xae, 0xd9, 0xd9, 0x86, 0x2f, 0x48, 0x61, 0xac, 0x0d, 0xa4, 0x33, 0x3b, 0x48, 0x3a, 0x95,
- 0x01, 0xd2, 0x99, 0xe3, 0xa4, 0x33, 0x7a, 0xab, 0xfb, 0x2c, 0x98, 0x69, 0x3a, 0xed, 0x36, 0x6a,
- 0x62, 0x7e, 0x54, 0x5a, 0x24, 0x30, 0xc8, 0x94, 0x2e, 0xa4, 0x91, 0xe8, 0x69, 0xc8, 0xab, 0x53,
- 0x03, 0x2c, 0x15, 0xfa, 0x30, 0x01, 0xbe, 0x22, 0x0b, 0x72, 0x5a, 0x6b, 0x0b, 0x09, 0x46, 0xda,
- 0x0c, 0x67, 0xa4, 0x3d, 0x09, 0x0a, 0x9e, 0xe9, 0x6e, 0x21, 0xcf, 0x3f, 0x8e, 0x43, 0xdf, 0x82,
- 0xa0, 0x6e, 0x0a, 0x17, 0xd4, 0xed, 0x19, 0x20, 0x87, 0x79, 0xc6, 0xc2, 0xa5, 0xdc, 0xd4, 0x0f,
- 0x7e, 0xc2, 0xfb, 0x79, 0x5c, 0xe3, 0x3c, 0x6e, 0xb5, 0x4e, 0x7e, 0xe8, 0xc5, 0x3a, 0xbf, 0x0f,
- 0x6b, 0x72, 0xdf, 0x47, 0xd3, 0xb1, 0x2b, 0x3b, 0xe6, 0x16, 0x62, 0xcd, 0x0c, 0x13, 0xfc, 0xaf,
- 0xda, 0x8e, 0xf3, 0x90, 0xc5, 0xe2, 0xab, 0x85, 0x09, 0xb8, 0x09, 0xdb, 0x56, 0xab, 0x85, 0x6c,
- 0xd6, 0xb3, 0xd9, 0xdb, 0xd9, 0xd3, 0x20, 0x87, 0x69, 0xc0, 0xf2, 0x83, 0x27, 0xfe, 0xe2, 0x11,
- 0x75, 0x06, 0x77, 0x2b, 0xda, 0x79, 0x8b, 0x19, 0xd1, 0x58, 0x27, 0xe3, 0xbb, 0x41, 0x1b, 0xd7,
- 0xbf, 0x73, 0x3d, 0x19, 0xe4, 0x6d, 0xa7, 0x85, 0x06, 0x4e, 0x35, 0x34, 0x97, 0xfa, 0x34, 0x90,
- 0x47, 0x2d, 0x3c, 0x2a, 0x28, 0x24, 0xfb, 0xe9, 0x78, 0x5e, 0xea, 0x34, 0x73, 0x32, 0x07, 0x91,
- 0x7e, 0xd4, 0xa6, 0xdf, 0x01, 0x7f, 0x65, 0x02, 0x1c, 0xa5, 0x63, 0x40, 0x7d, 0xf7, 0x22, 0x2e,
- 0xea, 0x22, 0x82, 0x8f, 0x28, 0x42, 0x14, 0xc9, 0xee, 0xee, 0xc5, 0x40, 0x6d, 0xa4, 0x2f, 0x7c,
- 0x07, 0xcd, 0x8e, 0x64, 0xd2, 0x52, 0x86, 0x9d, 0xb4, 0x84, 0x09, 0x48, 0xf1, 0xbb, 0x78, 0x38,
- 0x5d, 0x15, 0x48, 0xb2, 0x3f, 0x5d, 0xf5, 0x9b, 0x6c, 0x4e, 0x81, 0x09, 0x73, 0xd3, 0x43, 0x6e,
- 0xa5, 0x45, 0xe4, 0x71, 0x4a, 0xf7, 0x5f, 0xf1, 0x84, 0x78, 0x11, 0x6d, 0x3a, 0x2e, 0xee, 0xe9,
- 0x53, 0x74, 0x42, 0xf4, 0xdf, 0xb9, 0xfe, 0x09, 0x84, 0x4d, 0x94, 0x5b, 0xc1, 0x51, 0x6b, 0xcb,
- 0x76, 0x5c, 0x14, 0x78, 0xe6, 0x9d, 0x9a, 0xa1, 0x87, 0xc5, 0x7b, 0x92, 0xd5, 0xdb, 0xc1, 0x31,
- 0xdb, 0x59, 0x44, 0x1d, 0xc6, 0x77, 0x8a, 0xea, 0x2c, 0xe9, 0x11, 0xfb, 0x3f, 0xec, 0x1b, 0x5a,
- 0xe6, 0xf6, 0x0f, 0x2d, 0xf0, 0xd3, 0x49, 0xd7, 0xc3, 0x3d, 0xc0, 0x8f, 0x4c, 0x2f, 0x53, 0x9f,
- 0x05, 0x66, 0x5a, 0xcc, 0x6f, 0xa7, 0x69, 0x05, 0xbd, 0x26, 0xf2, 0x3f, 0x21, 0x73, 0x28, 0x72,
- 0x39, 0x5e, 0xe4, 0x96, 0xc1, 0x24, 0x39, 0xa5, 0x81, 0x65, 0x2e, 0xdf, 0x13, 0x8c, 0x8e, 0x2c,
- 0xd9, 0x82, 0x46, 0x71, 0x6c, 0x9b, 0x2f, 0xb3, 0x5f, 0xf4, 0xe0, 0xe7, 0x64, 0x2b, 0xeb, 0x78,
- 0x0e, 0xa5, 0xdf, 0x3d, 0x3f, 0x93, 0x03, 0x47, 0x97, 0x5d, 0x67, 0xb7, 0xd3, 0x0d, 0xbb, 0xe7,
- 0x5f, 0xf7, 0xb7, 0xa6, 0x17, 0xc4, 0xb9, 0xa8, 0x7f, 0xc7, 0x3d, 0x03, 0xa6, 0x5d, 0x36, 0xa2,
- 0x86, 0xb6, 0x75, 0x3e, 0x89, 0xef, 0xda, 0xca, 0x41, 0xba, 0x76, 0xd8, 0x41, 0x72, 0x42, 0x07,
- 0xe9, 0x15, 0xe4, 0x7c, 0x1f, 0x41, 0xfe, 0xab, 0x6c, 0x42, 0x41, 0xee, 0x61, 0x51, 0x84, 0x20,
- 0x97, 0x41, 0x61, 0x8b, 0x64, 0x64, 0x72, 0xfc, 0x24, 0xb9, 0x96, 0x91, 0xc2, 0x75, 0xf6, 0x6b,
- 0xc8, 0x57, 0x85, 0xe3, 0x6b, 0x32, 0xa1, 0x8a, 0xa7, 0x36, 0x7d, 0xa1, 0x7a, 0x67, 0x0e, 0xcc,
- 0x04, 0xb5, 0x93, 0x83, 0x0f, 0x99, 0x41, 0x03, 0xfe, 0x3e, 0xeb, 0x4c, 0x30, 0x94, 0x2a, 0xdc,
- 0x50, 0xda, 0x67, 0xf0, 0x9b, 0x4e, 0x30, 0xf8, 0xcd, 0x44, 0x0c, 0x7e, 0xf0, 0xc7, 0x15, 0xd9,
- 0xa0, 0xc5, 0xe2, 0x18, 0x40, 0x5a, 0xf7, 0x58, 0x1e, 0xd5, 0x24, 0x43, 0x27, 0x0f, 0x6e, 0x55,
- 0xfa, 0x42, 0xf3, 0xc1, 0x2c, 0x38, 0x46, 0x47, 0xc3, 0x0d, 0xbb, 0x1b, 0x8c, 0x45, 0x8f, 0x17,
- 0xdd, 0x0a, 0x70, 0x9b, 0xba, 0x81, 0x5b, 0x01, 0x79, 0x13, 0x8d, 0xe0, 0xb1, 0x67, 0x96, 0x84,
- 0x31, 0x97, 0xab, 0x25, 0xc2, 0xa2, 0x24, 0x77, 0x2a, 0x49, 0xb2, 0xd0, 0xf4, 0x19, 0xf8, 0x8b,
- 0x0a, 0x98, 0xaa, 0x23, 0x6f, 0xd5, 0xbc, 0xea, 0xec, 0x7a, 0xd0, 0x94, 0x35, 0x7f, 0x3f, 0x13,
- 0x14, 0xda, 0xe4, 0x17, 0x76, 0x03, 0xd7, 0x99, 0xbe, 0xf6, 0x63, 0xb2, 0xd1, 0x4b, 0x8b, 0xd6,
- 0x59, 0x7e, 0xf1, 0xb0, 0x98, 0xcc, 0xee, 0x43, 0x40, 0xdd, 0x48, 0x4c, 0xa7, 0x89, 0xf6, 0x26,
- 0xa2, 0xaa, 0x4e, 0x1f, 0x96, 0x9f, 0x52, 0xc0, 0x6c, 0x1d, 0x79, 0x95, 0xee, 0x92, 0xb9, 0xe7,
- 0xb8, 0x96, 0x87, 0xf8, 0xcb, 0x20, 0xe2, 0xa1, 0x39, 0x0d, 0x80, 0x15, 0xfc, 0xc6, 0xa2, 0x81,
- 0x73, 0x29, 0xf0, 0x37, 0x92, 0xee, 0x18, 0x0b, 0x74, 0x8c, 0x04, 0x84, 0x44, 0x7b, 0x98, 0x71,
- 0xd5, 0xa7, 0x0f, 0xc4, 0xe7, 0xb3, 0x0c, 0x88, 0x92, 0xdb, 0xdc, 0xb6, 0xf6, 0x50, 0x2b, 0x21,
- 0x10, 0xfe, 0x6f, 0x21, 0x10, 0x41, 0x41, 0x89, 0xb7, 0x87, 0x05, 0x3a, 0x46, 0xb1, 0x3d, 0x1c,
- 0x57, 0xe0, 0x58, 0x4e, 0xa1, 0xe2, 0xa1, 0x87, 0xd9, 0x18, 0xee, 0x93, 0x65, 0x6b, 0xa8, 0xc2,
- 0x65, 0x79, 0x15, 0x6e, 0xa8, 0x81, 0x85, 0xd6, 0x3d, 0x48, 0xa6, 0x73, 0x69, 0x0c, 0x2c, 0x7d,
- 0xab, 0x4e, 0x9f, 0xe9, 0xef, 0x51, 0xc0, 0x89, 0x40, 0xe1, 0xa9, 0x23, 0x6f, 0xd1, 0xec, 0x6e,
- 0x5f, 0x74, 0x4c, 0xb7, 0xc5, 0xdf, 0xcc, 0x36, 0xf4, 0x51, 0x0c, 0xf8, 0x17, 0x3c, 0x08, 0x55,
- 0x11, 0x84, 0xbe, 0x7e, 0x41, 0x7d, 0x69, 0x19, 0xc5, 0x20, 0x13, 0xeb, 0xba, 0xf4, 0x5b, 0x01,
- 0x58, 0xcf, 0x15, 0xc0, 0xba, 0x77, 0x58, 0x12, 0xd3, 0x07, 0xee, 0x97, 0xe9, 0x8c, 0xc0, 0xb9,
- 0xb0, 0x3d, 0x28, 0x0b, 0x58, 0x84, 0x0b, 0x93, 0x12, 0x7d, 0xda, 0x60, 0x98, 0x39, 0x62, 0xa0,
- 0xfb, 0x59, 0xba, 0x73, 0xc4, 0x21, 0xba, 0x96, 0xbd, 0x53, 0x01, 0x45, 0x72, 0x3e, 0x97, 0x73,
- 0xef, 0x83, 0x0f, 0xc9, 0xa2, 0xb3, 0xcf, 0x95, 0x70, 0x22, 0xa9, 0x2b, 0x21, 0x7c, 0x47, 0x52,
- 0x87, 0xc1, 0x5e, 0x6a, 0x47, 0x82, 0x58, 0x22, 0x7f, 0xc0, 0x01, 0x14, 0xa4, 0x0f, 0xda, 0x7f,
- 0x56, 0x00, 0xc0, 0x1d, 0x9a, 0xf9, 0xa8, 0x3d, 0x4f, 0x16, 0xae, 0x73, 0xbc, 0x13, 0x25, 0x06,
- 0xea, 0x44, 0x0f, 0x50, 0xb4, 0xc4, 0xd0, 0xfb, 0xed, 0x8d, 0x49, 0x7d, 0x97, 0x42, 0xaa, 0x46,
- 0x02, 0x4b, 0x22, 0x6f, 0xa6, 0xc8, 0xba, 0xd3, 0x07, 0xe4, 0xb7, 0xb3, 0x20, 0x6f, 0x38, 0x75,
- 0xe4, 0x1d, 0x5c, 0x15, 0x48, 0x7c, 0x9e, 0x92, 0xd4, 0x3b, 0x8a, 0xf3, 0x94, 0xfd, 0x0a, 0x4a,
- 0x9f, 0x75, 0x8f, 0x64, 0xc1, 0x8c, 0xe1, 0x94, 0x03, 0x63, 0x95, 0xbc, 0x2f, 0x98, 0xfc, 0xc5,
- 0x4b, 0x41, 0x03, 0xc3, 0x6a, 0x0e, 0x74, 0xf1, 0xd2, 0xe0, 0xf2, 0xd2, 0xe7, 0xdb, 0x5d, 0xe0,
- 0xe8, 0x86, 0xdd, 0x72, 0x74, 0xd4, 0x72, 0x98, 0x49, 0x56, 0x55, 0x41, 0x6e, 0xd7, 0x6e, 0x39,
- 0x84, 0xe4, 0xbc, 0x4e, 0x9e, 0x71, 0x9a, 0x8b, 0x5a, 0x0e, 0xdb, 0xaf, 0x23, 0xcf, 0xf0, 0x6b,
- 0x0a, 0xc8, 0xe1, 0x7f, 0xe5, 0x59, 0xfd, 0x4e, 0x25, 0xe1, 0x09, 0x51, 0x5c, 0xfc, 0x48, 0x34,
- 0xa1, 0xfb, 0x38, 0x23, 0x35, 0xf5, 0x10, 0xbb, 0x29, 0xaa, 0x3e, 0x8e, 0x15, 0xa1, 0x71, 0x5a,
- 0x3d, 0x05, 0x26, 0x2e, 0xb6, 0x9d, 0xe6, 0xa5, 0xf0, 0x20, 0x23, 0x7b, 0x55, 0x6f, 0x03, 0x79,
- 0xd7, 0xb4, 0xb7, 0x10, 0x33, 0x7e, 0x1f, 0xef, 0x19, 0x0b, 0xc9, 0x4e, 0xb4, 0x4e, 0xb3, 0xc0,
- 0x77, 0x24, 0x39, 0x9b, 0xda, 0xa7, 0xf1, 0xc9, 0xe4, 0x61, 0x71, 0x88, 0x63, 0x04, 0x45, 0x30,
- 0x53, 0x2e, 0xd1, 0x2b, 0xce, 0xd6, 0x6a, 0xe7, 0xb5, 0xa2, 0x42, 0x60, 0xc6, 0x3c, 0x49, 0x11,
- 0x66, 0x5c, 0xfc, 0xbf, 0x5b, 0x98, 0xfb, 0x34, 0xfe, 0x30, 0x60, 0xfe, 0x44, 0x16, 0xcc, 0xae,
- 0x5a, 0x5d, 0x2f, 0xca, 0x9b, 0x36, 0x26, 0x3c, 0xcf, 0x4b, 0x92, 0xaa, 0xca, 0x42, 0x3d, 0xd2,
- 0x71, 0x79, 0x12, 0xa9, 0xc3, 0x71, 0x55, 0x8c, 0xc7, 0xed, 0x9b, 0x50, 0x40, 0xaf, 0x25, 0x92,
- 0xe6, 0x64, 0x62, 0x45, 0x29, 0xac, 0x64, 0xfc, 0x8a, 0x52, 0x64, 0xdd, 0xe9, 0xf3, 0xf7, 0x6b,
- 0x59, 0x70, 0x0c, 0x57, 0x1f, 0x67, 0x96, 0x8a, 0x66, 0xf3, 0x40, 0xb3, 0x54, 0x62, 0xcb, 0xf8,
- 0x3e, 0x5a, 0x46, 0x61, 0x19, 0x1f, 0x54, 0xe8, 0x98, 0xd9, 0x1c, 0x61, 0x86, 0x1d, 0xc4, 0xe6,
- 0x18, 0x33, 0xec, 0xf0, 0x6c, 0x8e, 0x37, 0xc5, 0x0e, 0xc9, 0xe6, 0x43, 0x33, 0xb0, 0xfe, 0x9a,
- 0x12, 0xb0, 0x39, 0xd2, 0xb6, 0x11, 0xc3, 0xe6, 0xc4, 0xc7, 0xb3, 0xe0, 0xbb, 0x86, 0x64, 0xfc,
- 0x88, 0xed, 0x1b, 0xc3, 0xc0, 0x74, 0x88, 0x36, 0x8e, 0x57, 0x2a, 0x60, 0x8e, 0x51, 0xd1, 0x7f,
- 0xc9, 0x1c, 0x83, 0x51, 0xe2, 0x25, 0x73, 0x62, 0x1f, 0x7b, 0x91, 0xb2, 0xf1, 0xfb, 0xd8, 0xc7,
- 0xd6, 0x9f, 0x3e, 0x38, 0x5f, 0xcf, 0x81, 0x93, 0x98, 0x84, 0x35, 0xa7, 0x65, 0x6d, 0x5e, 0xa5,
- 0x54, 0x9c, 0x37, 0xdb, 0xbb, 0xa8, 0x0b, 0xdf, 0x97, 0x95, 0x45, 0xe9, 0xff, 0x07, 0x80, 0xd3,
- 0x41, 0x2e, 0x8d, 0x70, 0xc3, 0x80, 0xba, 0x27, 0xaa, 0xb1, 0xfb, 0x6b, 0x0a, 0xa2, 0xce, 0xd6,
- 0xfc, 0x42, 0x74, 0xae, 0x3c, 0xac, 0x15, 0x4e, 0x05, 0x5f, 0x7a, 0x1d, 0x3e, 0x32, 0xfb, 0x1d,
- 0x3e, 0x6e, 0x05, 0x8a, 0xd9, 0x6a, 0x05, 0x50, 0xf5, 0x6e, 0x66, 0x93, 0x3a, 0x75, 0x9c, 0x05,
- 0xe7, 0xec, 0xa2, 0xf0, 0xe8, 0x4b, 0x44, 0xce, 0x2e, 0xf2, 0xd4, 0x79, 0x50, 0xa0, 0x57, 0x34,
- 0x05, 0x16, 0xfd, 0xfe, 0x99, 0x59, 0x2e, 0x51, 0xb5, 0xab, 0x89, 0x62, 0x78, 0x57, 0x22, 0xce,
- 0xf4, 0x1b, 0xa7, 0x43, 0x3d, 0x59, 0x17, 0x04, 0xec, 0xd9, 0x43, 0x97, 0x3c, 0x9e, 0xdd, 0xb0,
- 0x52, 0xa7, 0xd3, 0xbe, 0x6a, 0xb0, 0xd3, 0xf4, 0x89, 0x76, 0xc3, 0xb8, 0x43, 0xf9, 0xd9, 0xde,
- 0x43, 0xf9, 0xc9, 0x77, 0xc3, 0x04, 0x3a, 0x46, 0xb1, 0x1b, 0x16, 0x57, 0xe0, 0x18, 0xec, 0x91,
- 0x79, 0xaa, 0x35, 0xb3, 0xe0, 0x81, 0x6f, 0xce, 0xf6, 0x75, 0xa7, 0x02, 0xa2, 0x3b, 0x55, 0xbf,
- 0xb8, 0x82, 0xb1, 0x41, 0x53, 0xd5, 0xa7, 0x81, 0xc2, 0xa6, 0xe3, 0xee, 0x98, 0xfe, 0xc6, 0x7d,
- 0xaf, 0xf7, 0x36, 0x0b, 0xd8, 0xb7, 0x44, 0xf2, 0xe8, 0x2c, 0x2f, 0x5e, 0x8f, 0x3c, 0xdf, 0xea,
- 0xb0, 0x70, 0x58, 0xf8, 0x51, 0xbd, 0x19, 0xcc, 0xb2, 0xa8, 0x58, 0x55, 0xd4, 0xf5, 0x50, 0x8b,
- 0x1d, 0x4f, 0x16, 0x13, 0xd5, 0xb3, 0x60, 0x86, 0x25, 0x2c, 0x59, 0x6d, 0xd4, 0x65, 0x77, 0x12,
- 0x0a, 0x69, 0xea, 0x49, 0x50, 0xb0, 0xba, 0xcf, 0xe9, 0x3a, 0x36, 0xf1, 0xc9, 0x9d, 0xd4, 0xd9,
- 0x1b, 0x71, 0xdb, 0xa1, 0xf9, 0x02, 0x65, 0x95, 0x3a, 0xd1, 0xf7, 0x26, 0xc3, 0xcf, 0x0e, 0xb3,
- 0x70, 0x48, 0x1c, 0x28, 0x11, 0xa3, 0xb0, 0xdb, 0x6c, 0x22, 0xd4, 0x62, 0xa7, 0x0d, 0xfc, 0xd7,
- 0x84, 0x21, 0x14, 0x13, 0x2f, 0x33, 0x0e, 0x29, 0x86, 0xe2, 0x87, 0x4f, 0x80, 0x02, 0x8d, 0x2b,
- 0x0e, 0x5f, 0x3e, 0xd7, 0x57, 0x18, 0xe7, 0x44, 0x61, 0xdc, 0x00, 0x33, 0xb6, 0x83, 0xab, 0x5b,
- 0x37, 0x5d, 0x73, 0xa7, 0x1b, 0x67, 0x45, 0xa4, 0xe5, 0x06, 0x53, 0x46, 0x95, 0xfb, 0x6d, 0xe5,
- 0x88, 0x2e, 0x14, 0xa3, 0xfe, 0xff, 0xc1, 0xd1, 0x8b, 0xec, 0x84, 0x6d, 0x97, 0x95, 0x9c, 0x8d,
- 0xf6, 0xb9, 0xeb, 0x29, 0x79, 0x41, 0xfc, 0x73, 0xe5, 0x88, 0xde, 0x5b, 0x98, 0xfa, 0xc3, 0x60,
- 0x0e, 0xbf, 0xb6, 0x9c, 0xcb, 0x3e, 0xe1, 0x4a, 0xb4, 0xa2, 0xd1, 0x53, 0xfc, 0x9a, 0xf0, 0xe3,
- 0xca, 0x11, 0xbd, 0xa7, 0x28, 0xb5, 0x06, 0xc0, 0xb6, 0xb7, 0xd3, 0x66, 0x05, 0xe7, 0xa2, 0x45,
- 0xb2, 0xa7, 0xe0, 0x95, 0xe0, 0xa7, 0x95, 0x23, 0x3a, 0x57, 0x84, 0xba, 0x0a, 0xa6, 0xbc, 0x2b,
- 0x1e, 0x2b, 0x2f, 0x1f, 0xbd, 0xb9, 0xdd, 0x53, 0x9e, 0xe1, 0xff, 0xb3, 0x72, 0x44, 0x0f, 0x0b,
- 0x50, 0x2b, 0x60, 0xb2, 0x73, 0x91, 0x15, 0x56, 0xe8, 0x73, 0x97, 0x72, 0xff, 0xc2, 0xd6, 0x2f,
- 0x06, 0x65, 0x05, 0xbf, 0x63, 0xc2, 0x9a, 0xdd, 0x3d, 0x56, 0xd6, 0x84, 0x34, 0x61, 0x65, 0xff,
- 0x1f, 0x4c, 0x58, 0x50, 0x80, 0x5a, 0x01, 0x53, 0x5d, 0xdb, 0xec, 0x74, 0xb7, 0x1d, 0xaf, 0x7b,
- 0x6a, 0xb2, 0xc7, 0x2f, 0x32, 0xba, 0xb4, 0x3a, 0xfb, 0x47, 0x0f, 0xff, 0x56, 0x9f, 0x06, 0x4e,
- 0xec, 0x92, 0xfb, 0xd9, 0xb4, 0x2b, 0x56, 0xd7, 0xb3, 0xec, 0x2d, 0x3f, 0xb8, 0x1f, 0x1d, 0x4d,
- 0xfa, 0x7f, 0x54, 0xe7, 0xd9, 0x29, 0x05, 0x40, 0xfa, 0x26, 0xec, 0xdd, 0x8c, 0xa3, 0xd5, 0x72,
- 0x87, 0x13, 0x9e, 0x05, 0x72, 0xf8, 0x13, 0xf1, 0x2c, 0x9c, 0xeb, 0x6f, 0xe8, 0xeb, 0x95, 0x1d,
- 0xd2, 0x81, 0xf1, 0x4f, 0x78, 0x6e, 0xb4, 0x9d, 0x75, 0xd7, 0xd9, 0x72, 0x51, 0xb7, 0xcb, 0x1c,
- 0x0e, 0xb9, 0x14, 0xdc, 0xc1, 0xad, 0xee, 0x9a, 0xb5, 0x45, 0xb5, 0x27, 0xe6, 0x8e, 0xcd, 0x27,
- 0xd1, 0xd5, 0x66, 0x15, 0x5d, 0x26, 0x77, 0x7e, 0x9d, 0x3a, 0xea, 0xaf, 0x36, 0xfd, 0x14, 0x78,
- 0x0b, 0x98, 0xe1, 0x3b, 0x19, 0xbd, 0x9c, 0xc4, 0x0a, 0x75, 0x2f, 0xf6, 0x06, 0x6f, 0x06, 0x73,
- 0xa2, 0x4c, 0x73, 0x53, 0x8c, 0xe2, 0x0f, 0x85, 0xf0, 0x26, 0x70, 0xb4, 0xa7, 0x63, 0xf9, 0x67,
- 0xf6, 0x33, 0xe1, 0x99, 0xfd, 0x33, 0x00, 0x84, 0x52, 0xdc, 0xb7, 0x98, 0x1b, 0xc1, 0x54, 0x20,
- 0x97, 0x7d, 0x33, 0x7c, 0x25, 0x03, 0x26, 0x7d, 0x61, 0xeb, 0x97, 0x01, 0xcf, 0x2f, 0x36, 0xb7,
- 0x81, 0xc0, 0x96, 0xd9, 0x42, 0x1a, 0x9e, 0x47, 0x42, 0x37, 0x5e, 0xc3, 0xf2, 0xda, 0xfe, 0x71,
- 0x94, 0xde, 0x64, 0x75, 0x1d, 0x00, 0x8b, 0x60, 0x64, 0x84, 0xe7, 0x53, 0x9e, 0x92, 0xa0, 0x3f,
- 0x50, 0x79, 0xe0, 0xca, 0x38, 0xfb, 0x78, 0x76, 0x78, 0x64, 0x0a, 0xe4, 0xeb, 0xeb, 0xa5, 0xb2,
- 0x56, 0x3c, 0xa2, 0xce, 0x01, 0xa0, 0x3d, 0x6f, 0x5d, 0xd3, 0x2b, 0x5a, 0xb5, 0xac, 0x15, 0x33,
- 0xf0, 0x55, 0x59, 0x30, 0x15, 0x74, 0x82, 0xbe, 0x8d, 0xd4, 0x98, 0x68, 0x0d, 0xbc, 0xff, 0x61,
- 0x7f, 0xa7, 0xe2, 0x85, 0xec, 0x99, 0xe0, 0xda, 0xdd, 0x2e, 0x5a, 0xb2, 0xdc, 0xae, 0xa7, 0x3b,
- 0x97, 0x97, 0x1c, 0x37, 0x08, 0x67, 0xe9, 0xdf, 0x73, 0x1c, 0xf1, 0x19, 0x6b, 0x14, 0x2d, 0x44,
- 0x8e, 0x30, 0x20, 0x97, 0x59, 0x86, 0xc3, 0x04, 0x5c, 0xae, 0x47, 0x2f, 0x16, 0xee, 0x22, 0xdd,
- 0xb9, 0xdc, 0x2d, 0xd9, 0xad, 0xb2, 0xd3, 0xde, 0xdd, 0xb1, 0xbb, 0x4c, 0x27, 0x88, 0xfa, 0x8c,
- 0xb9, 0x43, 0x6e, 0x77, 0x99, 0x03, 0xa0, 0x5c, 0x5b, 0x5d, 0xd5, 0xca, 0x46, 0xa5, 0x56, 0x2d,
- 0x1e, 0xc1, 0xdc, 0x32, 0x4a, 0x0b, 0xab, 0x98, 0x3b, 0x3f, 0x02, 0x26, 0xfd, 0x3e, 0xbd, 0xef,
- 0x52, 0xe7, 0x12, 0x98, 0xf4, 0x7b, 0x39, 0x9b, 0x11, 0x9e, 0xd0, 0x7b, 0x14, 0x6d, 0xc7, 0x74,
- 0x3d, 0xe2, 0x3f, 0xed, 0x17, 0xb2, 0x60, 0x76, 0x91, 0x1e, 0xfc, 0x76, 0xf6, 0xc9, 0x8c, 0x02,
- 0x15, 0xcc, 0x95, 0x56, 0x57, 0x1b, 0x35, 0xbd, 0x51, 0xad, 0x19, 0x2b, 0x95, 0xea, 0x32, 0x9d,
- 0x21, 0x2b, 0xcb, 0xd5, 0x9a, 0xae, 0xd1, 0x09, 0xb2, 0x5e, 0xcc, 0xd0, 0xdb, 0x85, 0x16, 0x26,
- 0x41, 0xa1, 0x43, 0xb8, 0x0b, 0xbf, 0xa8, 0x24, 0x3c, 0x69, 0x1a, 0xe0, 0x14, 0x71, 0xff, 0x89,
- 0xe0, 0x83, 0x9e, 0xed, 0x73, 0x4e, 0xeb, 0x2c, 0x98, 0xa1, 0xba, 0x5c, 0x97, 0x98, 0xef, 0xd9,
- 0x15, 0x82, 0x42, 0x1a, 0xfc, 0x68, 0x36, 0xc1, 0xf1, 0xd3, 0xbe, 0x14, 0x25, 0x53, 0x2e, 0xfe,
- 0x6c, 0x98, 0xdb, 0x84, 0x54, 0x30, 0x57, 0xa9, 0x1a, 0x9a, 0x5e, 0x2d, 0xad, 0xb2, 0x2c, 0x8a,
- 0x7a, 0x0a, 0x1c, 0xaf, 0xd6, 0x58, 0x00, 0xa7, 0x3a, 0xb9, 0xb7, 0x74, 0x6d, 0xbd, 0xa6, 0x1b,
- 0xc5, 0xbc, 0x7a, 0x12, 0xa8, 0xf4, 0x59, 0xb8, 0xf6, 0xb7, 0xa0, 0x3e, 0x11, 0xdc, 0xb4, 0x5a,
- 0x59, 0xab, 0x18, 0x8d, 0xda, 0x52, 0x43, 0xaf, 0x5d, 0xa8, 0x63, 0x04, 0x75, 0x6d, 0xb5, 0x84,
- 0x05, 0x89, 0xbb, 0x65, 0x68, 0x42, 0xbd, 0x06, 0x1c, 0x25, 0x37, 0x88, 0x91, 0xab, 0x83, 0x69,
- 0x7d, 0x93, 0xea, 0x0d, 0xe0, 0x54, 0xa5, 0x5a, 0xdf, 0x58, 0x5a, 0xaa, 0x94, 0x2b, 0x5a, 0xd5,
- 0x68, 0xac, 0x6b, 0xfa, 0x5a, 0xa5, 0x5e, 0xc7, 0xff, 0x16, 0xa7, 0xe0, 0x87, 0x15, 0x50, 0xa0,
- 0x63, 0x26, 0x7c, 0xaf, 0x02, 0x66, 0xcf, 0x9b, 0x6d, 0x0b, 0x4f, 0x14, 0xe4, 0x72, 0x27, 0x78,
- 0xa3, 0xe0, 0x9a, 0xee, 0x91, 0x4b, 0xa0, 0x98, 0x6b, 0x3a, 0x79, 0x81, 0x3f, 0xc9, 0x8b, 0x86,
- 0x21, 0x8a, 0xc6, 0xb3, 0x63, 0x80, 0xa0, 0x35, 0xce, 0x0b, 0xb5, 0x45, 0x2c, 0x6e, 0x5e, 0x17,
- 0xe0, 0x7c, 0x41, 0xc0, 0xb9, 0x7c, 0xb0, 0xe2, 0x93, 0x81, 0xff, 0x2b, 0xa3, 0x02, 0xbf, 0x08,
- 0x66, 0x36, 0xaa, 0xa5, 0x0d, 0x63, 0xa5, 0xa6, 0x57, 0x7e, 0x88, 0x84, 0x81, 0x9d, 0x05, 0x53,
- 0x4b, 0x35, 0x7d, 0xa1, 0xb2, 0xb8, 0xa8, 0x55, 0x8b, 0x79, 0xf5, 0x5a, 0x70, 0x4d, 0x5d, 0xd3,
- 0xcf, 0x57, 0xca, 0x5a, 0x63, 0xa3, 0x5a, 0x3a, 0x5f, 0xaa, 0xac, 0x92, 0x31, 0xa2, 0x10, 0x73,
- 0x31, 0xd5, 0x04, 0xfc, 0xb1, 0x1c, 0x00, 0xb4, 0xe9, 0x58, 0x93, 0xe6, 0xaf, 0x2f, 0xfa, 0xf3,
- 0xa4, 0x8b, 0x86, 0xb0, 0x98, 0x88, 0xfe, 0x5b, 0x01, 0x93, 0x2e, 0xfb, 0xc0, 0xcc, 0x27, 0x83,
- 0xca, 0xa1, 0x8f, 0x7e, 0x69, 0x7a, 0xf0, 0x3b, 0x7c, 0x5f, 0x92, 0x35, 0x42, 0x24, 0x61, 0xc9,
- 0x90, 0x5c, 0x1a, 0x0d, 0x90, 0xf0, 0xc5, 0x19, 0x30, 0x27, 0x36, 0x0c, 0x37, 0x82, 0x28, 0x53,
- 0x72, 0x8d, 0x10, 0x7f, 0xe6, 0x94, 0xac, 0xb3, 0x77, 0xb2, 0xe9, 0x14, 0xf8, 0x3d, 0x93, 0x9e,
- 0xc6, 0xf4, 0x35, 0x96, 0x62, 0x06, 0x13, 0x8f, 0x95, 0x0e, 0x7a, 0x77, 0xad, 0x71, 0xc5, 0x2b,
- 0x2a, 0xf0, 0x91, 0x1c, 0x98, 0x15, 0xee, 0x47, 0x82, 0xff, 0x94, 0x91, 0xb9, 0xf3, 0x84, 0xbb,
- 0x79, 0x29, 0x73, 0xd0, 0x9b, 0x97, 0xce, 0xfe, 0x44, 0x06, 0x4c, 0xb0, 0x44, 0xc2, 0xe0, 0x5a,
- 0x15, 0xeb, 0x02, 0x47, 0xc1, 0xf4, 0xb2, 0x66, 0x34, 0xea, 0x46, 0x49, 0x37, 0xb4, 0xc5, 0x62,
- 0x46, 0x3d, 0x01, 0x8e, 0xad, 0x6b, 0x7a, 0xbd, 0x86, 0xf9, 0xb9, 0xae, 0xd7, 0xc8, 0x40, 0x48,
- 0xd9, 0x8c, 0x61, 0x58, 0xd5, 0x16, 0x97, 0xb5, 0xc6, 0x42, 0xa9, 0xae, 0x15, 0x15, 0xfc, 0x6f,
- 0xb5, 0x66, 0x68, 0xf5, 0xc6, 0x62, 0xa5, 0xa4, 0x3f, 0x58, 0xcc, 0xe1, 0x7f, 0xeb, 0x86, 0x5e,
- 0x32, 0xb4, 0xe5, 0x4a, 0x99, 0xdc, 0xf8, 0x8b, 0x7b, 0x40, 0x1e, 0x4f, 0xa6, 0xda, 0xda, 0xba,
- 0xf1, 0x60, 0xb1, 0x90, 0xdc, 0xab, 0xaf, 0xb7, 0x71, 0x63, 0xf6, 0xea, 0x8b, 0xab, 0x7e, 0x0c,
- 0x57, 0x43, 0x29, 0xa0, 0x48, 0x29, 0xd0, 0xae, 0x74, 0x90, 0x6b, 0x21, 0xbb, 0x89, 0xe0, 0x25,
- 0x99, 0x90, 0x71, 0xfb, 0xe2, 0x57, 0x91, 0x39, 0x82, 0xd3, 0x3c, 0xe9, 0x4b, 0x8f, 0xd2, 0x9e,
- 0xdb, 0xa7, 0xb4, 0x7f, 0x2a, 0xa9, 0x5b, 0x5f, 0x2f, 0xb9, 0x23, 0x81, 0xec, 0xe3, 0x49, 0xdc,
- 0xfa, 0x06, 0x50, 0x30, 0x96, 0x48, 0x90, 0x11, 0x73, 0x7a, 0x51, 0x81, 0x6f, 0x9f, 0x02, 0x45,
- 0x4a, 0x28, 0xe7, 0x2b, 0xf5, 0x8b, 0xec, 0x92, 0xaa, 0x46, 0x82, 0xd0, 0x4f, 0xfe, 0xd1, 0xdc,
- 0xac, 0x78, 0x34, 0x57, 0x30, 0xbd, 0x29, 0xbd, 0xfb, 0xdb, 0x49, 0xbb, 0x1f, 0xe7, 0x18, 0x15,
- 0x7d, 0x45, 0x52, 0x7a, 0xdd, 0x2f, 0xb6, 0xfa, 0xf1, 0x5c, 0xa4, 0xc2, 0xae, 0x4a, 0xd2, 0x64,
- 0x91, 0x89, 0xbf, 0x2f, 0x2a, 0xa9, 0x97, 0xac, 0xe0, 0x98, 0x16, 0x73, 0x89, 0x52, 0x7a, 0x5e,
- 0xb2, 0x83, 0x28, 0x48, 0x1f, 0x85, 0xef, 0x65, 0x41, 0xae, 0xee, 0xb8, 0xde, 0xa8, 0x30, 0x48,
- 0xba, 0xb3, 0xc7, 0x71, 0xa0, 0x1e, 0xbd, 0x72, 0x4a, 0x6f, 0x67, 0x2f, 0xbe, 0xfe, 0x31, 0x44,
- 0xcf, 0x3a, 0x0a, 0xe6, 0x28, 0x25, 0x41, 0x2c, 0xf3, 0xef, 0x66, 0xe9, 0x78, 0xf5, 0x80, 0x2c,
- 0x22, 0x67, 0xc1, 0x0c, 0xb7, 0xb3, 0x16, 0xdc, 0xab, 0xc9, 0xa7, 0xc1, 0x5f, 0xe7, 0x71, 0x59,
- 0x14, 0x71, 0xe9, 0xb7, 0x6e, 0x0c, 0xc2, 0x81, 0x8f, 0x6a, 0x64, 0x4a, 0x12, 0x88, 0x2b, 0xa6,
- 0xf2, 0xf4, 0x11, 0x79, 0xa1, 0x02, 0x0a, 0xcc, 0xb3, 0x69, 0xa4, 0x08, 0x24, 0xed, 0x19, 0x01,
- 0x13, 0xe4, 0x3c, 0xa0, 0x94, 0x51, 0xf7, 0x8c, 0xf8, 0xfa, 0xd3, 0xc7, 0xe1, 0x5f, 0x99, 0xcb,
- 0x5e, 0x69, 0xcf, 0xb4, 0xda, 0xe6, 0xc5, 0x76, 0x82, 0x00, 0x98, 0x1f, 0x4d, 0x78, 0x48, 0x29,
- 0x68, 0xaa, 0x50, 0x5f, 0x04, 0xc7, 0x9f, 0x0e, 0xa6, 0xdc, 0xc0, 0xb0, 0xe6, 0x9f, 0xe1, 0xee,
- 0x71, 0x97, 0x64, 0xdf, 0xf5, 0x30, 0x67, 0xa2, 0x13, 0x49, 0x52, 0xf4, 0x8c, 0xe5, 0x04, 0xc5,
- 0x74, 0xa9, 0xd5, 0x5a, 0x42, 0xa6, 0xb7, 0xeb, 0xa2, 0x56, 0xa2, 0x29, 0x42, 0x64, 0xd1, 0x14,
- 0xcf, 0x09, 0x21, 0x6c, 0xd5, 0xaa, 0x88, 0xce, 0x0f, 0x0e, 0x18, 0x0d, 0x7c, 0x5a, 0x46, 0x32,
- 0x24, 0xbd, 0x2d, 0x80, 0xa4, 0x26, 0x40, 0xf2, 0xac, 0xe1, 0x88, 0x48, 0x1f, 0x90, 0x5f, 0x52,
- 0xc0, 0x1c, 0xd5, 0x13, 0x46, 0x8d, 0xc9, 0xef, 0x26, 0xf4, 0x84, 0xe0, 0x6e, 0x8b, 0xe0, 0xc9,
- 0x19, 0x09, 0x2c, 0x49, 0xfc, 0x26, 0xe4, 0xe8, 0x48, 0x1f, 0x99, 0xcf, 0x16, 0x00, 0xe0, 0xbc,
- 0xdb, 0x3e, 0x5a, 0x08, 0x43, 0x48, 0xc1, 0x77, 0xb0, 0xf5, 0x47, 0x5d, 0x88, 0x4d, 0xca, 0x79,
- 0xae, 0x05, 0xdb, 0x2a, 0x62, 0xa2, 0xd4, 0xac, 0xf2, 0x67, 0x09, 0x75, 0x5e, 0xe6, 0x5b, 0x36,
- 0x70, 0x72, 0x1f, 0x72, 0x94, 0x7b, 0x34, 0x81, 0xf2, 0x3b, 0x88, 0x94, 0x64, 0xa8, 0xad, 0x0e,
- 0xb1, 0x96, 0x3c, 0x05, 0x8e, 0xeb, 0x5a, 0x69, 0xb1, 0x56, 0x5d, 0x7d, 0x90, 0xbf, 0x56, 0xa0,
- 0xa8, 0xf0, 0x8b, 0x93, 0x54, 0x60, 0x7b, 0x43, 0xc2, 0x31, 0x50, 0xe4, 0x55, 0xdc, 0x6a, 0x85,
- 0x5b, 0xce, 0x0f, 0x1e, 0xd5, 0x24, 0x8a, 0x3d, 0x4c, 0x14, 0xde, 0x32, 0xc5, 0x75, 0xa3, 0x9f,
- 0x56, 0x40, 0x31, 0xbc, 0x85, 0x96, 0xdd, 0x11, 0x53, 0x13, 0x9d, 0xdf, 0x3a, 0x74, 0x17, 0x25,
- 0x74, 0x7e, 0xf3, 0x13, 0xd4, 0x5b, 0xc0, 0x5c, 0x73, 0x1b, 0x35, 0x2f, 0x55, 0x6c, 0x7f, 0x77,
- 0x98, 0x6e, 0x25, 0xf6, 0xa4, 0x8a, 0xc0, 0x3c, 0x20, 0x02, 0x23, 0x2e, 0xa2, 0x85, 0x49, 0x9a,
- 0x27, 0x2a, 0x02, 0x97, 0x3f, 0x0c, 0x70, 0xa9, 0x0a, 0xb8, 0xdc, 0x3d, 0x54, 0xa9, 0xc9, 0x60,
- 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, 0xeb, 0x46, 0xa5, 0x56, 0x6d, 0x6c, 0xd4, 0xb5, 0xc5,
- 0xc6, 0x82, 0x0f, 0x4e, 0xbd, 0xa8, 0xc0, 0x6f, 0x64, 0xc1, 0x04, 0x25, 0xab, 0xdb, 0x73, 0x6b,
- 0x6c, 0xbc, 0xd7, 0x1f, 0x7c, 0xbb, 0xf4, 0x19, 0xfe, 0x80, 0x11, 0xac, 0x9e, 0x88, 0x71, 0xea,
- 0x99, 0x60, 0x82, 0x82, 0xec, 0x3b, 0x8d, 0x9c, 0x8e, 0x18, 0xa5, 0x58, 0x31, 0xba, 0x9f, 0x5d,
- 0xf2, 0x3c, 0xff, 0x00, 0x32, 0xd2, 0x9f, 0x59, 0xde, 0xa4, 0x50, 0x35, 0xf8, 0x82, 0xe5, 0x6d,
- 0x13, 0xa7, 0x40, 0xf8, 0x5c, 0x19, 0x13, 0xe5, 0xed, 0x20, 0xbf, 0x87, 0x73, 0x0f, 0x70, 0xb0,
- 0xa4, 0x99, 0xe0, 0x87, 0xa4, 0x23, 0x5f, 0x09, 0xf2, 0x19, 0xd0, 0x14, 0xbd, 0xe1, 0x39, 0x68,
- 0x24, 0x54, 0xa1, 0x70, 0xa8, 0x49, 0xb9, 0x55, 0x49, 0x1c, 0x33, 0x4d, 0x8a, 0xa4, 0xb1, 0xac,
- 0xe4, 0x27, 0x56, 0xac, 0xae, 0xe7, 0xb8, 0x57, 0xe1, 0x1b, 0x33, 0x60, 0xe2, 0x3c, 0x72, 0xbb,
- 0x96, 0x63, 0xef, 0xdb, 0xd5, 0x3e, 0x03, 0xa6, 0x3b, 0x2e, 0xda, 0xb3, 0x9c, 0xdd, 0x6e, 0x68,
- 0x41, 0xe1, 0x93, 0x30, 0x4b, 0xcc, 0x5d, 0x6f, 0xdb, 0x71, 0xc3, 0xc0, 0x06, 0xfe, 0xbb, 0x7a,
- 0x1a, 0x00, 0xfa, 0x5c, 0x35, 0x77, 0x10, 0xdb, 0xab, 0xe7, 0x52, 0x54, 0x15, 0xe4, 0x3c, 0x6b,
- 0x07, 0xb1, 0xb8, 0x84, 0xe4, 0x19, 0x4b, 0x09, 0x89, 0x22, 0xc6, 0xa2, 0xb5, 0x29, 0xba, 0xff,
- 0x0a, 0xff, 0xab, 0x02, 0xa6, 0x97, 0x91, 0xc7, 0x48, 0xed, 0xf2, 0xe1, 0x81, 0x62, 0x62, 0x77,
- 0xe3, 0x79, 0xb0, 0x6d, 0x76, 0xfd, 0xdf, 0x02, 0x33, 0xa9, 0x98, 0x18, 0xc6, 0x48, 0x54, 0xb8,
- 0x30, 0xa8, 0xf0, 0x91, 0xac, 0xec, 0x81, 0x54, 0xc6, 0xcc, 0x79, 0x8e, 0xc0, 0xc8, 0x41, 0x60,
- 0x72, 0x8f, 0xe5, 0xd8, 0x17, 0xb3, 0x96, 0x2f, 0x89, 0x15, 0xa3, 0x07, 0xb9, 0x25, 0x8f, 0xb2,
- 0x0e, 0xa6, 0x24, 0x7d, 0xf1, 0xfa, 0xb6, 0x02, 0xa6, 0xeb, 0xdb, 0xce, 0x65, 0x46, 0x00, 0x7f,
- 0x63, 0x6d, 0x1c, 0x54, 0x37, 0x80, 0xa9, 0xbd, 0x1e, 0x98, 0xc2, 0x84, 0xe8, 0x8b, 0x55, 0xe1,
- 0xc3, 0x4a, 0x52, 0x98, 0x38, 0xe2, 0x46, 0x7e, 0xed, 0xa9, 0xfa, 0x83, 0x60, 0x82, 0x51, 0xcd,
- 0x0c, 0x1d, 0xf1, 0x00, 0xfb, 0x99, 0xf9, 0x06, 0xe6, 0xc4, 0x06, 0x26, 0x43, 0x3e, 0xba, 0x71,
- 0x63, 0x88, 0x0c, 0x9f, 0x25, 0x81, 0x0c, 0x7c, 0xe0, 0xcb, 0x23, 0x00, 0x1e, 0x7e, 0x27, 0x23,
- 0x6b, 0x0e, 0x0c, 0x38, 0x10, 0x50, 0x70, 0xa0, 0x48, 0xfb, 0x03, 0x8b, 0x4b, 0x9f, 0x9f, 0xaf,
- 0xca, 0x81, 0x99, 0x45, 0x6b, 0x73, 0x33, 0x18, 0xf5, 0x5e, 0x9a, 0x91, 0x63, 0x69, 0xf4, 0x56,
- 0x32, 0xd6, 0x2e, 0x77, 0x5d, 0x17, 0xd9, 0x7e, 0xa3, 0x58, 0x77, 0xea, 0x49, 0x55, 0x6f, 0x05,
- 0x47, 0xfd, 0x81, 0xde, 0xcf, 0x48, 0xc5, 0xb2, 0x37, 0x19, 0x7e, 0x4b, 0x7a, 0x2f, 0xc9, 0xe7,
- 0x28, 0xdf, 0xa4, 0x88, 0x0e, 0x78, 0x0f, 0x98, 0xdd, 0xa6, 0xb9, 0xc9, 0x82, 0xdb, 0x1f, 0x2c,
- 0x4f, 0xf6, 0x44, 0x34, 0x5d, 0x43, 0xdd, 0xae, 0xb9, 0x85, 0x74, 0x31, 0x73, 0x4f, 0xf7, 0x55,
- 0x92, 0x5c, 0x2b, 0x22, 0xb7, 0x2d, 0x25, 0xd1, 0x92, 0xf4, 0xa5, 0xe3, 0xab, 0x8f, 0x07, 0xb9,
- 0x25, 0xab, 0x8d, 0xe0, 0xcf, 0x64, 0xc1, 0x94, 0x8e, 0x9a, 0x8e, 0xdd, 0xc4, 0x6f, 0x9c, 0x63,
- 0xc9, 0x3f, 0xf0, 0x7d, 0xe7, 0x7e, 0x11, 0x9a, 0xdb, 0x84, 0x06, 0xe1, 0x72, 0xe6, 0x83, 0x32,
- 0x22, 0xfa, 0xcd, 0xeb, 0x03, 0xde, 0x94, 0x05, 0xde, 0x9c, 0x93, 0x2f, 0x6a, 0x0c, 0x01, 0xd3,
- 0xb1, 0xc2, 0xbf, 0xb9, 0xd9, 0x76, 0x4c, 0xc1, 0xe4, 0xd4, 0xab, 0xdb, 0xdc, 0x06, 0x8a, 0xfe,
- 0xf9, 0x00, 0xc7, 0x5b, 0xb7, 0x6c, 0x3b, 0x38, 0x80, 0xba, 0x2f, 0x5d, 0xdc, 0x2d, 0x8d, 0x8d,
- 0xe1, 0x41, 0xda, 0xce, 0x6a, 0x8f, 0x90, 0xec, 0x5b, 0xc0, 0xdc, 0xc5, 0xab, 0x1e, 0xea, 0xb2,
- 0x5c, 0xac, 0xda, 0x9c, 0xde, 0x93, 0x0a, 0xdf, 0x23, 0x15, 0xeb, 0x23, 0xa6, 0xc2, 0x64, 0xac,
- 0x5e, 0x19, 0x62, 0xdd, 0x75, 0x1c, 0x14, 0xab, 0xb5, 0x45, 0x8d, 0xf8, 0x39, 0xf9, 0x8e, 0x23,
- 0x5b, 0xf0, 0x65, 0x0a, 0x98, 0x21, 0x4e, 0x03, 0x3e, 0x0a, 0x37, 0x49, 0xac, 0x02, 0xe0, 0x97,
- 0xa4, 0x7d, 0xa0, 0x48, 0x93, 0xf9, 0x0a, 0xa2, 0x19, 0xbd, 0x69, 0xb5, 0x7b, 0x19, 0x9d, 0xd7,
- 0x7b, 0x52, 0xfb, 0x00, 0xa2, 0xf4, 0x05, 0xe4, 0x77, 0xa4, 0x1c, 0xa1, 0x06, 0x51, 0x77, 0x58,
- 0xa8, 0x7c, 0x40, 0x01, 0xd3, 0x78, 0xd5, 0xe1, 0x83, 0x52, 0x13, 0x40, 0x71, 0xec, 0xf6, 0xd5,
- 0xd0, 0x18, 0xe1, 0xbf, 0x26, 0xea, 0x24, 0x7f, 0x29, 0xbd, 0x5e, 0x26, 0x2c, 0xe2, 0x68, 0x19,
- 0x13, 0x7e, 0xef, 0x97, 0x5a, 0x45, 0x0f, 0x20, 0xee, 0xb0, 0xe0, 0xfb, 0xcd, 0x3c, 0x28, 0x6c,
- 0x74, 0x08, 0x72, 0x5f, 0xcb, 0xca, 0x44, 0xb7, 0xde, 0xe7, 0x04, 0x8f, 0xd5, 0xac, 0xb6, 0xd3,
- 0x34, 0xdb, 0xeb, 0xe1, 0x69, 0xa2, 0x30, 0x41, 0xbd, 0x9b, 0xf9, 0xc5, 0xd1, 0xa3, 0x58, 0xb7,
- 0xc4, 0x06, 0x7e, 0x26, 0x3c, 0xe2, 0x0e, 0x1c, 0xdc, 0x0e, 0x8e, 0xb5, 0xac, 0xae, 0x79, 0xb1,
- 0x8d, 0x34, 0xbb, 0xe9, 0x5e, 0xa5, 0xec, 0xa0, 0x3e, 0x44, 0xfb, 0x3f, 0xa8, 0xf7, 0x82, 0x7c,
- 0xd7, 0xbb, 0xda, 0xa6, 0x0b, 0x3f, 0xfe, 0x7c, 0x42, 0x64, 0x55, 0x75, 0x9c, 0x5d, 0xa7, 0x7f,
- 0xf1, 0x97, 0x3e, 0x4e, 0x48, 0x5e, 0x60, 0x79, 0x27, 0x28, 0x38, 0xae, 0xb5, 0x65, 0xd1, 0xfb,
- 0x14, 0xe6, 0xf6, 0xc5, 0x33, 0xa3, 0xaa, 0x40, 0x8d, 0x64, 0xd1, 0x59, 0x56, 0xf8, 0xfe, 0xac,
- 0x6c, 0xf0, 0x14, 0x42, 0x23, 0x05, 0x67, 0x3c, 0x97, 0x58, 0xbe, 0x56, 0x2a, 0xac, 0x49, 0x34,
- 0x59, 0xe9, 0x4f, 0xc2, 0x9f, 0xcb, 0x82, 0xc9, 0x45, 0xe7, 0xb2, 0x4d, 0x04, 0xf6, 0x2e, 0x39,
- 0x9d, 0xb5, 0xcf, 0x41, 0x37, 0xf1, 0xea, 0xad, 0x58, 0xaf, 0x76, 0xd2, 0x5a, 0xbf, 0xca, 0x08,
- 0x18, 0x62, 0x7b, 0x80, 0xe4, 0x55, 0x49, 0x71, 0xf5, 0xa4, 0xcf, 0xd7, 0x3f, 0x51, 0x40, 0x6e,
- 0xd1, 0x75, 0x3a, 0xf0, 0x6d, 0x99, 0x04, 0x1b, 0xfe, 0x2d, 0xd7, 0xe9, 0x18, 0xe4, 0x16, 0x94,
- 0xd0, 0x95, 0x9f, 0x4f, 0x53, 0xef, 0x02, 0x93, 0x1d, 0xa7, 0x6b, 0x79, 0xfe, 0x72, 0x60, 0xee,
- 0x8e, 0xc7, 0xf5, 0xed, 0x95, 0xeb, 0x2c, 0x93, 0x1e, 0x64, 0xc7, 0xa3, 0x2f, 0x61, 0x21, 0xe6,
- 0x0b, 0x66, 0xa3, 0x7f, 0x13, 0x4c, 0x4f, 0x2a, 0x7c, 0x39, 0x8f, 0xe4, 0xb3, 0x44, 0x24, 0x9f,
- 0xd0, 0x87, 0xc3, 0xae, 0xd3, 0x19, 0xc9, 0x16, 0xdd, 0xab, 0x03, 0x54, 0x9f, 0x2d, 0xa0, 0x7a,
- 0x9b, 0x54, 0x9d, 0xe9, 0x23, 0xfa, 0xfe, 0x1c, 0x00, 0x44, 0x5d, 0xd8, 0xc0, 0x0b, 0x19, 0x39,
- 0x5d, 0xe9, 0xa7, 0x72, 0x1c, 0x2f, 0x4b, 0x22, 0x2f, 0x9f, 0x14, 0xa1, 0x8d, 0x90, 0xe2, 0x23,
- 0x38, 0x5a, 0x02, 0xf9, 0x5d, 0xfc, 0x99, 0x71, 0x54, 0xb2, 0x08, 0xf2, 0xaa, 0xd3, 0x3f, 0xe1,
- 0x1f, 0x67, 0x40, 0x9e, 0x24, 0xa8, 0xa7, 0x01, 0x20, 0x13, 0x34, 0x3d, 0x14, 0x92, 0x21, 0x53,
- 0x31, 0x97, 0x42, 0xa4, 0xd5, 0x6a, 0xb1, 0xcf, 0x54, 0xf5, 0x0d, 0x13, 0xf0, 0xdf, 0x64, 0xda,
- 0x26, 0x65, 0xb1, 0x89, 0x9c, 0x4b, 0xc1, 0x7f, 0x93, 0xb7, 0x55, 0xb4, 0x49, 0x83, 0xe1, 0xe6,
- 0xf4, 0x30, 0x21, 0xf8, 0x7b, 0x35, 0xb8, 0xf0, 0xc4, 0xff, 0x9b, 0xa4, 0xe0, 0x45, 0x2d, 0x11,
- 0xcb, 0x85, 0xb0, 0x8a, 0x02, 0xc9, 0xd4, 0x9b, 0x0c, 0xdf, 0x10, 0x88, 0xcd, 0xa2, 0x20, 0x36,
- 0x4f, 0x49, 0xc0, 0xde, 0xf4, 0x85, 0xe7, 0x2b, 0x79, 0x30, 0x55, 0x75, 0x5a, 0x4c, 0x76, 0xb8,
- 0x85, 0xdf, 0xc7, 0xf3, 0x89, 0x16, 0x7e, 0x41, 0x19, 0x11, 0x02, 0x72, 0xbf, 0x28, 0x20, 0x72,
- 0x25, 0xf0, 0xf2, 0xa1, 0x2e, 0x80, 0x02, 0x91, 0xde, 0xfd, 0x17, 0xd9, 0xc4, 0x15, 0x41, 0x58,
- 0xab, 0xb3, 0x3f, 0xff, 0xcd, 0xc9, 0xd8, 0x7f, 0x02, 0x79, 0xd2, 0xc0, 0x98, 0xbd, 0x11, 0xb1,
- 0xa1, 0xd9, 0xf8, 0x86, 0x2a, 0xf1, 0x0d, 0xcd, 0xf5, 0x36, 0x34, 0xc9, 0x7a, 0x3e, 0x4a, 0x42,
- 0xd2, 0x97, 0xf1, 0xff, 0x31, 0x01, 0x40, 0xd5, 0xdc, 0xb3, 0xb6, 0xe8, 0xde, 0xea, 0x5f, 0xf8,
- 0xeb, 0x18, 0xb6, 0x0b, 0xfa, 0x9f, 0xb9, 0x89, 0xf0, 0x2e, 0x30, 0xc1, 0xe6, 0x3d, 0xd6, 0x90,
- 0x1b, 0x85, 0x86, 0x84, 0xa5, 0x50, 0xf5, 0xf2, 0x8a, 0xa7, 0xfb, 0xf9, 0x85, 0xab, 0xfd, 0xb2,
- 0x3d, 0x57, 0xfb, 0xf5, 0xdd, 0x1d, 0x88, 0xba, 0xf0, 0x0f, 0xbe, 0x47, 0x7a, 0x83, 0x8a, 0xa3,
- 0x87, 0x6b, 0x51, 0x44, 0x17, 0xbc, 0x13, 0x4c, 0x38, 0xc1, 0x76, 0xb0, 0x12, 0x69, 0xcf, 0xaa,
- 0xd8, 0x9b, 0x8e, 0xee, 0xe7, 0x94, 0xdc, 0x95, 0x92, 0xa2, 0x63, 0x2c, 0x87, 0x1c, 0x4e, 0x2e,
- 0xfb, 0x81, 0x85, 0x70, 0x3b, 0x2e, 0x58, 0xde, 0xf6, 0xaa, 0x65, 0x5f, 0xea, 0xc2, 0xff, 0x20,
- 0xa7, 0x41, 0x72, 0xf8, 0x67, 0x93, 0xe1, 0x2f, 0xc6, 0x6d, 0xa8, 0x8b, 0xa8, 0xdd, 0x1b, 0x55,
- 0x4a, 0x7f, 0x6a, 0x23, 0x00, 0xbc, 0x1b, 0x14, 0x28, 0xa1, 0x6c, 0x10, 0x3d, 0x1b, 0x89, 0x5f,
- 0x50, 0x92, 0xce, 0xfe, 0x80, 0x8f, 0x04, 0x38, 0x9e, 0x17, 0x70, 0x5c, 0x38, 0x10, 0x65, 0xa9,
- 0x43, 0x7a, 0xf6, 0xa9, 0x60, 0x82, 0x71, 0x5a, 0x9d, 0xe3, 0x7b, 0x71, 0xf1, 0x88, 0x0a, 0x40,
- 0x61, 0xcd, 0xd9, 0x43, 0x86, 0x53, 0xcc, 0xe0, 0x67, 0x4c, 0x9f, 0xe1, 0x14, 0xb3, 0xf0, 0x35,
- 0x93, 0x60, 0x32, 0x88, 0xe8, 0xf2, 0xb9, 0x2c, 0x28, 0x86, 0x97, 0xf0, 0xd3, 0x16, 0xc9, 0xfb,
- 0x56, 0xfe, 0x92, 0xb4, 0x83, 0x44, 0x10, 0x69, 0xa5, 0xb7, 0x32, 0xc9, 0x5b, 0xc6, 0xdf, 0x2a,
- 0xe5, 0x30, 0x21, 0x5b, 0x4b, 0xfa, 0x5d, 0xed, 0x53, 0x59, 0x90, 0x2f, 0xb7, 0x1d, 0x1b, 0x25,
- 0xba, 0x64, 0xbc, 0xff, 0x8e, 0x02, 0xfc, 0xf1, 0xac, 0xac, 0xae, 0x11, 0x32, 0x00, 0xd7, 0x2d,
- 0xc9, 0x5b, 0xb9, 0x49, 0x2a, 0xb6, 0xe8, 0xf4, 0x19, 0xfa, 0x8d, 0x2c, 0x98, 0xa2, 0xb1, 0x51,
- 0x4a, 0xed, 0x36, 0x7c, 0x5c, 0xc8, 0xd4, 0x3e, 0x51, 0x71, 0xe0, 0xef, 0x48, 0x3b, 0xb8, 0x07,
- 0xad, 0x0a, 0xca, 0x4e, 0x10, 0x24, 0x26, 0x99, 0xbf, 0xb5, 0xdc, 0x9e, 0xd8, 0x40, 0x82, 0xd2,
- 0x67, 0xf5, 0x9f, 0x67, 0xb1, 0x02, 0x60, 0x5f, 0x5a, 0x77, 0xd1, 0x9e, 0x85, 0x2e, 0xc3, 0xeb,
- 0x43, 0x66, 0xef, 0x0f, 0xfc, 0xf0, 0x66, 0x69, 0x23, 0x0e, 0x57, 0x64, 0xe4, 0x96, 0xd4, 0x74,
- 0x3b, 0xcc, 0xc4, 0x46, 0xf1, 0xde, 0x68, 0x1c, 0x5c, 0x31, 0x3a, 0x9f, 0x5d, 0xd2, 0x66, 0x13,
- 0x4d, 0x45, 0xfa, 0x8c, 0x7d, 0x78, 0x02, 0x4c, 0x6e, 0xd8, 0xdd, 0x4e, 0xdb, 0xec, 0x6e, 0xc3,
- 0xef, 0x2a, 0xc1, 0x1d, 0xdf, 0x4f, 0x17, 0xce, 0x97, 0xff, 0xe8, 0x2e, 0x72, 0x7d, 0x7f, 0x29,
- 0xfa, 0xd2, 0xff, 0x12, 0x59, 0xf8, 0x7e, 0x45, 0x76, 0x91, 0xea, 0x57, 0x1a, 0x7f, 0xf9, 0x75,
- 0x05, 0x4c, 0x76, 0xac, 0xa6, 0xb7, 0xeb, 0x06, 0x57, 0x92, 0x3e, 0x59, 0xae, 0x94, 0x75, 0xfa,
- 0x97, 0x1e, 0xfc, 0x0e, 0x4d, 0x30, 0xc1, 0x12, 0xf7, 0x6d, 0x0b, 0xed, 0x3f, 0x2f, 0x79, 0x12,
- 0x14, 0x4c, 0xd7, 0xb3, 0xba, 0xfe, 0x95, 0xcf, 0xec, 0x0d, 0x0f, 0x97, 0xf4, 0x69, 0xc3, 0x6d,
- 0xfb, 0x91, 0x28, 0x82, 0x04, 0xf8, 0x01, 0xa9, 0xf5, 0x63, 0x7c, 0xcb, 0x93, 0x41, 0xfe, 0xc0,
- 0x10, 0xb6, 0xe6, 0x6b, 0xc1, 0x35, 0x7a, 0xc9, 0xd0, 0x1a, 0x34, 0x70, 0x41, 0x10, 0xa3, 0xa0,
- 0x05, 0xbf, 0xcb, 0xdb, 0xef, 0xc4, 0x39, 0x82, 0x71, 0x31, 0x9c, 0x23, 0x82, 0x84, 0x98, 0x39,
- 0xe2, 0x37, 0xa5, 0x77, 0x77, 0x02, 0x96, 0x0c, 0xb0, 0xe5, 0xc5, 0xdd, 0xfc, 0xf2, 0x41, 0xa9,
- 0x9d, 0x9a, 0x41, 0x35, 0x1d, 0x22, 0xfb, 0x7f, 0x7d, 0x02, 0x4c, 0x2c, 0x9b, 0xed, 0x36, 0x72,
- 0xaf, 0xe2, 0xa9, 0xa5, 0xe8, 0x53, 0xb8, 0x66, 0xda, 0xd6, 0x26, 0x5e, 0xdf, 0xc7, 0x0e, 0x7a,
- 0xef, 0x91, 0x8e, 0x2a, 0xca, 0xea, 0x98, 0xef, 0x2d, 0x3f, 0x82, 0xe7, 0xe7, 0x40, 0xce, 0xb2,
- 0x37, 0x1d, 0x36, 0xf4, 0xf5, 0x5a, 0xd1, 0xfd, 0x9f, 0xc9, 0x12, 0x84, 0x64, 0x94, 0x0c, 0x2c,
- 0x2a, 0x49, 0x45, 0xfa, 0x23, 0xe0, 0x6f, 0xe5, 0xc0, 0xac, 0x4f, 0x44, 0xc5, 0x6e, 0xa1, 0x2b,
- 0xbc, 0x49, 0xe5, 0x65, 0x39, 0xd9, 0x43, 0x51, 0xbd, 0xed, 0x21, 0x45, 0x45, 0xb0, 0xd4, 0x00,
- 0xa0, 0x69, 0x7a, 0x68, 0xcb, 0x71, 0xad, 0x60, 0x5c, 0x7b, 0x5a, 0x92, 0xd2, 0xca, 0xf4, 0xef,
- 0xab, 0x3a, 0x57, 0x8e, 0x7a, 0x2f, 0x98, 0x46, 0xc1, 0xb9, 0x67, 0xdf, 0xe4, 0x12, 0x8b, 0x17,
- 0x9f, 0x1f, 0xfe, 0xb9, 0xd4, 0xd9, 0x2b, 0x99, 0x66, 0x26, 0xc3, 0xac, 0x31, 0x5c, 0x1f, 0xda,
- 0xa8, 0xae, 0x95, 0xf4, 0xfa, 0x4a, 0x69, 0x75, 0xb5, 0x52, 0x5d, 0x0e, 0x82, 0x78, 0xa8, 0x60,
- 0x6e, 0xb1, 0x76, 0xa1, 0xca, 0x45, 0x59, 0xc9, 0xc1, 0x75, 0x30, 0xe9, 0xf3, 0xab, 0x9f, 0xb3,
- 0x23, 0xcf, 0x33, 0xe6, 0xec, 0xc8, 0x25, 0x61, 0x25, 0xcb, 0x6a, 0x06, 0x0e, 0x33, 0xe4, 0x19,
- 0xfe, 0x91, 0x09, 0xf2, 0xc4, 0x36, 0x0e, 0xdf, 0x49, 0xee, 0x84, 0xee, 0xb4, 0xcd, 0x26, 0x82,
- 0x3b, 0x09, 0xb4, 0x6a, 0x3f, 0xcc, 0x7d, 0x76, 0x5f, 0x98, 0x7b, 0xf2, 0xc8, 0xb4, 0xb7, 0xe3,
- 0xfd, 0xec, 0xf1, 0x3a, 0xcd, 0x22, 0x1e, 0x53, 0x8a, 0xdd, 0x25, 0xa1, 0x66, 0x7c, 0x46, 0x66,
- 0x84, 0x48, 0x46, 0xd3, 0x94, 0x4c, 0xa3, 0x94, 0xdb, 0x4f, 0x89, 0xa3, 0x28, 0xfd, 0x1e, 0xff,
- 0xc5, 0x1c, 0xc8, 0xd7, 0x3b, 0x6d, 0xcb, 0x83, 0xaf, 0xcc, 0x8e, 0x04, 0x33, 0x7a, 0x35, 0x81,
- 0x32, 0xf0, 0x6a, 0x82, 0x70, 0x17, 0x34, 0x27, 0xb1, 0x0b, 0x6a, 0xa0, 0x2b, 0x9e, 0xb8, 0x0b,
- 0x7a, 0x17, 0x0b, 0xc4, 0x45, 0xf7, 0x50, 0x9f, 0xd0, 0x87, 0xa5, 0xa4, 0x59, 0x7d, 0x22, 0xbc,
- 0x9d, 0x7d, 0x2a, 0x0b, 0x34, 0x05, 0x40, 0x61, 0xa1, 0x66, 0x18, 0xb5, 0xb5, 0xe2, 0x11, 0x12,
- 0xa1, 0xa4, 0xb6, 0x5e, 0xcc, 0xa8, 0x53, 0x20, 0x5f, 0xa9, 0x56, 0x35, 0xbd, 0x98, 0x25, 0xa1,
- 0xaf, 0x2a, 0xc6, 0xaa, 0x56, 0x54, 0xc4, 0x38, 0xd5, 0xb1, 0x6a, 0xb4, 0x58, 0x77, 0x9a, 0xe2,
- 0x25, 0xa7, 0x50, 0x47, 0xd3, 0x93, 0xbe, 0x70, 0xfd, 0x17, 0x05, 0xe4, 0xd7, 0x90, 0xbb, 0x85,
- 0xe0, 0x8f, 0x26, 0xd8, 0xac, 0xdb, 0xb4, 0xdc, 0x2e, 0x0d, 0x14, 0x16, 0x6e, 0xd6, 0xf1, 0x69,
- 0xea, 0xcd, 0x60, 0xb6, 0x8b, 0x9a, 0x8e, 0xdd, 0xf2, 0x33, 0xd1, 0xf1, 0x48, 0x4c, 0x84, 0xaf,
- 0x48, 0x08, 0x19, 0x21, 0x74, 0x24, 0x3b, 0x6e, 0x49, 0x80, 0xe9, 0x57, 0x6b, 0xfa, 0xc0, 0x7c,
- 0x4b, 0xc1, 0x3f, 0x75, 0xae, 0xc2, 0x57, 0x48, 0xef, 0xa2, 0xde, 0x0e, 0x0a, 0x44, 0x4c, 0xfd,
- 0x39, 0xba, 0xff, 0x78, 0xcc, 0xf2, 0xa8, 0x0b, 0xe0, 0x58, 0x17, 0xb5, 0x51, 0xd3, 0x43, 0x2d,
- 0xdc, 0x75, 0xf5, 0x81, 0x83, 0xc2, 0xfe, 0xec, 0xf0, 0x4f, 0x79, 0x00, 0xef, 0x11, 0x01, 0xbc,
- 0xa5, 0x0f, 0x2b, 0x71, 0x83, 0xa2, 0x75, 0x65, 0xdc, 0x8c, 0x7a, 0xdb, 0x09, 0x8c, 0xdb, 0xfe,
- 0x3b, 0xfe, 0xb6, 0xed, 0xed, 0xb4, 0xc9, 0x37, 0xe6, 0xc1, 0xef, 0xbf, 0xab, 0xf3, 0x60, 0xc2,
- 0xb4, 0xaf, 0x92, 0x4f, 0xb9, 0x98, 0x56, 0xfb, 0x99, 0xe0, 0x6b, 0x02, 0xe4, 0xef, 0x13, 0x90,
- 0x7f, 0x92, 0x1c, 0xb9, 0xe9, 0x03, 0xff, 0x93, 0x13, 0x20, 0xbf, 0x6e, 0x76, 0x3d, 0x04, 0xff,
- 0x6f, 0x45, 0x16, 0xf9, 0x5b, 0xc0, 0xdc, 0xa6, 0xd3, 0xdc, 0xed, 0xa2, 0x96, 0xd8, 0x29, 0x7b,
- 0x52, 0x47, 0x81, 0xb9, 0x7a, 0x1b, 0x28, 0xfa, 0x89, 0xac, 0x58, 0x7f, 0x3b, 0x7d, 0x5f, 0x3a,
- 0x89, 0x7a, 0xdc, 0x5d, 0x37, 0x5d, 0xaf, 0xb6, 0x49, 0xd2, 0x82, 0xa8, 0xc7, 0x7c, 0xa2, 0x00,
- 0x7d, 0x21, 0x06, 0xfa, 0x89, 0x68, 0xe8, 0x27, 0x25, 0xa0, 0x57, 0x4b, 0x60, 0x72, 0xd3, 0x6a,
- 0x23, 0xf2, 0xc3, 0x14, 0xf9, 0xa1, 0xdf, 0x9c, 0x44, 0x78, 0x1f, 0xcc, 0x49, 0x4b, 0x56, 0x1b,
- 0xe9, 0xc1, 0x6f, 0xfe, 0x42, 0x06, 0x84, 0x0b, 0x99, 0x55, 0xea, 0xdf, 0x8a, 0x15, 0x2f, 0xdb,
- 0xdc, 0x41, 0xbe, 0x11, 0xcd, 0x66, 0xa7, 0x47, 0x5a, 0xa6, 0x67, 0x12, 0x30, 0x66, 0x74, 0xf2,
- 0x2c, 0xfa, 0x77, 0x28, 0xbd, 0xfe, 0x1d, 0x2f, 0x52, 0x92, 0x8d, 0x88, 0x3e, 0xb1, 0x11, 0x3d,
- 0xea, 0xa2, 0x0f, 0x10, 0xd5, 0x14, 0x83, 0x77, 0x0c, 0x4c, 0xd3, 0x74, 0x91, 0xb7, 0xce, 0x7b,
- 0x54, 0xe4, 0x75, 0x31, 0x91, 0xb8, 0xd6, 0x75, 0xeb, 0xe6, 0x0e, 0x22, 0x95, 0x95, 0xf1, 0x37,
- 0xe6, 0x32, 0xb5, 0x2f, 0x3d, 0x1c, 0x7f, 0xf3, 0xa3, 0x1e, 0x7f, 0xfb, 0xb5, 0x31, 0xfd, 0x6e,
- 0xf8, 0xba, 0x1c, 0x50, 0xca, 0xbb, 0xde, 0x63, 0x7a, 0xf8, 0xfd, 0x9e, 0xb4, 0xbf, 0x0a, 0x1b,
- 0xcf, 0x22, 0x2f, 0x05, 0x1f, 0xd3, 0xe8, 0x9b, 0x50, 0x4a, 0xe4, 0xfc, 0x62, 0xa2, 0xda, 0x96,
- 0xbe, 0x8c, 0xbc, 0x4d, 0x09, 0x1c, 0x1e, 0x5f, 0x98, 0x39, 0xb8, 0x6a, 0x0e, 0xe9, 0xf8, 0xc4,
- 0x8d, 0x0c, 0xc1, 0xbb, 0x3f, 0xf0, 0xe4, 0x84, 0x18, 0x69, 0x64, 0x9b, 0x9c, 0xb0, 0x72, 0x46,
- 0xa7, 0x2f, 0xf0, 0x55, 0xd2, 0x6e, 0xe0, 0x94, 0x6d, 0xb1, 0x2e, 0x81, 0xc9, 0x74, 0x2a, 0xb9,
- 0x8b, 0x1f, 0x63, 0xaa, 0x4d, 0x1f, 0xb0, 0xbf, 0x8f, 0x36, 0x19, 0x0e, 0x83, 0x18, 0x7c, 0xad,
- 0xf4, 0xb6, 0x12, 0x6d, 0xf6, 0x00, 0x7b, 0x61, 0x32, 0x7e, 0xcb, 0x6d, 0x3a, 0xc5, 0x56, 0x9c,
- 0x3e, 0xc7, 0xbf, 0xa9, 0x80, 0x02, 0xdd, 0x4a, 0x84, 0x6f, 0xc9, 0x24, 0xb8, 0x31, 0xdb, 0x13,
- 0x5d, 0x01, 0x83, 0xf7, 0x24, 0x36, 0x07, 0xc1, 0x65, 0x30, 0x97, 0xc8, 0x65, 0x50, 0x3c, 0x57,
- 0x29, 0xd1, 0x8f, 0x68, 0x1b, 0x53, 0x5e, 0x4e, 0x26, 0xe9, 0x61, 0x7d, 0x09, 0x4a, 0x1f, 0xef,
- 0x9f, 0xce, 0x83, 0x19, 0x5a, 0xf5, 0x05, 0xab, 0xb5, 0x85, 0x3c, 0xf8, 0xee, 0xec, 0xf7, 0x0f,
- 0xea, 0x6a, 0x15, 0xcc, 0x5c, 0x26, 0x64, 0xaf, 0x9a, 0x57, 0x9d, 0x5d, 0x8f, 0x59, 0x2e, 0x6e,
- 0x8b, 0xb5, 0x7b, 0xd0, 0x76, 0xce, 0xd3, 0x3f, 0x74, 0xe1, 0x7f, 0xcc, 0x63, 0x6a, 0xf0, 0xa7,
- 0x8e, 0x58, 0x05, 0xa2, 0x64, 0xf1, 0x49, 0xea, 0x49, 0x50, 0xd8, 0xb3, 0xd0, 0xe5, 0x4a, 0x8b,
- 0x69, 0xb7, 0xec, 0x4d, 0x3c, 0x42, 0x1e, 0xbb, 0xff, 0xca, 0xc3, 0xcd, 0x68, 0x49, 0x57, 0x0a,
- 0xe5, 0x76, 0x61, 0x07, 0x92, 0x35, 0x86, 0x33, 0xbe, 0xe2, 0xc5, 0x8a, 0x49, 0x2e, 0xec, 0x8f,
- 0x52, 0x9c, 0xc5, 0x80, 0x16, 0xb1, 0x27, 0x48, 0x28, 0x03, 0x46, 0x7c, 0xe7, 0xa2, 0x5c, 0x94,
- 0x85, 0x01, 0x55, 0xa7, 0xcf, 0xf9, 0x37, 0x28, 0x60, 0xaa, 0x8e, 0xbc, 0x25, 0x0b, 0xb5, 0x5b,
- 0x5d, 0xe8, 0x1e, 0x5c, 0x35, 0x3a, 0x07, 0x0a, 0x9b, 0xa4, 0xb0, 0x41, 0xe7, 0x0f, 0x58, 0x36,
- 0xf8, 0xba, 0xac, 0xec, 0xce, 0x2e, 0xb3, 0xbe, 0xf9, 0xd4, 0x8e, 0x04, 0x26, 0x39, 0xcf, 0xdc,
- 0xf8, 0x9a, 0xd3, 0x47, 0xe9, 0xed, 0x0a, 0x98, 0x61, 0x37, 0xb1, 0x95, 0xda, 0xd6, 0x96, 0x0d,
- 0x77, 0x47, 0xd0, 0x43, 0xd4, 0xa7, 0x80, 0xbc, 0x89, 0x4b, 0x63, 0x4e, 0xfa, 0xb0, 0xef, 0xe0,
- 0x49, 0xea, 0xd3, 0x69, 0xc6, 0x04, 0xc1, 0x14, 0x43, 0xc1, 0xf6, 0x69, 0x1e, 0x63, 0x30, 0xc5,
- 0x81, 0x95, 0xa7, 0x8f, 0xd8, 0x97, 0x15, 0x70, 0x9c, 0x11, 0x70, 0x1e, 0xb9, 0x9e, 0xd5, 0x34,
- 0xdb, 0x14, 0xb9, 0x17, 0x67, 0x46, 0x01, 0xdd, 0x0a, 0x98, 0xdd, 0xe3, 0x8b, 0x65, 0x10, 0x9e,
- 0xed, 0x0b, 0xa1, 0x40, 0x80, 0x2e, 0xfe, 0x98, 0x20, 0x28, 0x9d, 0xc0, 0x55, 0xa1, 0xcc, 0x31,
- 0x06, 0xa5, 0x93, 0x26, 0x22, 0x7d, 0x88, 0x5f, 0x9e, 0xa3, 0x01, 0x6a, 0xc2, 0xe1, 0xf3, 0x2f,
- 0xa4, 0xb1, 0xdd, 0x00, 0xd3, 0x04, 0x4b, 0xfa, 0x23, 0x33, 0x43, 0xc4, 0x08, 0x71, 0x30, 0xee,
- 0xb0, 0xcb, 0x9f, 0x82, 0x7f, 0x75, 0xbe, 0x1c, 0x78, 0x01, 0x80, 0xf0, 0x13, 0x3f, 0x48, 0x67,
- 0xa2, 0x06, 0xe9, 0xac, 0xdc, 0x20, 0xfd, 0x66, 0xe9, 0xe0, 0x25, 0xfd, 0xc9, 0x3e, 0xb8, 0x78,
- 0xc8, 0x85, 0xad, 0x18, 0x5c, 0x7b, 0xfa, 0x72, 0xf1, 0x9a, 0x5c, 0xef, 0x95, 0xdb, 0x1f, 0x1d,
- 0xc9, 0x7a, 0x8a, 0x1f, 0x0f, 0x94, 0x9e, 0xf1, 0xe0, 0x00, 0x9a, 0xf4, 0xad, 0xe0, 0x28, 0xad,
- 0xa2, 0x1c, 0x90, 0x95, 0xa7, 0xa1, 0x19, 0x7a, 0x92, 0xe1, 0xa3, 0x43, 0x08, 0xc1, 0xa0, 0xfb,
- 0xc0, 0xe3, 0x06, 0xb9, 0x64, 0xca, 0x6e, 0x52, 0x01, 0x39, 0xbc, 0x6b, 0xc4, 0xbf, 0x91, 0xa3,
- 0xda, 0xee, 0x06, 0xb9, 0x9f, 0x0b, 0x7e, 0x21, 0x37, 0x8a, 0x19, 0xe1, 0x7e, 0x90, 0x23, 0xae,
- 0xea, 0x4a, 0xa4, 0x49, 0x23, 0xac, 0x32, 0xbc, 0x3c, 0x0d, 0x5d, 0xf1, 0x56, 0x8e, 0xe8, 0xe4,
- 0x4f, 0xf5, 0x36, 0x70, 0xf4, 0xa2, 0xd9, 0xbc, 0xb4, 0xe5, 0x3a, 0xbb, 0xe4, 0x26, 0x23, 0x87,
- 0x5d, 0x89, 0x44, 0xae, 0x96, 0x13, 0x3f, 0xa8, 0x77, 0xf8, 0xaa, 0x43, 0x7e, 0x90, 0xea, 0xb0,
- 0x72, 0x84, 0x29, 0x0f, 0xea, 0x53, 0x83, 0x41, 0xa7, 0x10, 0x3b, 0xe8, 0xac, 0x1c, 0xf1, 0x87,
- 0x1d, 0x75, 0x11, 0x4c, 0xb6, 0xac, 0x3d, 0xb2, 0x55, 0x4d, 0x56, 0x5d, 0x83, 0x8e, 0x12, 0x2f,
- 0x5a, 0x7b, 0x74, 0x63, 0x7b, 0xe5, 0x88, 0x1e, 0xfc, 0xa9, 0x2e, 0x83, 0x29, 0xb2, 0x2d, 0x40,
- 0x8a, 0x99, 0x4c, 0x74, 0x4c, 0x78, 0xe5, 0x88, 0x1e, 0xfe, 0x8b, 0xb5, 0x8f, 0x1c, 0x39, 0xc3,
- 0x71, 0x9f, 0xbf, 0xdd, 0x9e, 0x49, 0xb4, 0xdd, 0x8e, 0x79, 0x41, 0x37, 0xdc, 0x4f, 0x82, 0x7c,
- 0x93, 0x70, 0x38, 0xcb, 0x38, 0x4c, 0x5f, 0xd5, 0x7b, 0x40, 0x6e, 0xc7, 0x74, 0xfd, 0xc5, 0xf3,
- 0x2d, 0x83, 0xcb, 0x5d, 0x33, 0xdd, 0x4b, 0x18, 0x41, 0xfc, 0xd7, 0xc2, 0x04, 0xc8, 0x13, 0xc6,
- 0x05, 0x0f, 0xf0, 0x6d, 0x39, 0xaa, 0x86, 0x94, 0x1d, 0x1b, 0x4f, 0xfb, 0x86, 0xe3, 0x1f, 0x74,
- 0xf9, 0x50, 0x66, 0x34, 0x1a, 0x64, 0xdf, 0x3b, 0xaa, 0x95, 0xc8, 0x3b, 0xaa, 0x7b, 0x2e, 0x4b,
- 0xcd, 0xf5, 0x5e, 0x96, 0x1a, 0x9a, 0x0f, 0xf2, 0x83, 0x1d, 0x55, 0xfe, 0x74, 0x08, 0xd5, 0xa5,
- 0x97, 0x11, 0xd1, 0x2b, 0xf0, 0xb6, 0x65, 0x73, 0x6d, 0xf6, 0x5f, 0x13, 0x0e, 0x4a, 0x49, 0x95,
- 0x9a, 0x01, 0xe4, 0xa5, 0x3f, 0x36, 0xfd, 0x46, 0x0e, 0x9c, 0xa2, 0x57, 0xf2, 0xee, 0x21, 0xc3,
- 0x11, 0xef, 0x0e, 0x84, 0x9f, 0x1c, 0x89, 0xd0, 0xf4, 0x99, 0x70, 0x94, 0xbe, 0x13, 0xce, 0xbe,
- 0xc3, 0xc6, 0xb9, 0x01, 0x87, 0x8d, 0xf3, 0xc9, 0x2c, 0x87, 0xbf, 0xc7, 0xcb, 0xcf, 0xba, 0x28,
- 0x3f, 0x77, 0x47, 0x00, 0xd4, 0x8f, 0x2f, 0x23, 0xd1, 0x6f, 0xde, 0x19, 0x48, 0x4a, 0x5d, 0x90,
- 0x94, 0xfb, 0x86, 0x27, 0x24, 0x7d, 0x69, 0xf9, 0xdd, 0x1c, 0xb8, 0x26, 0x24, 0xa6, 0x8a, 0x2e,
- 0x33, 0x41, 0xf9, 0xdc, 0x48, 0x04, 0x25, 0x79, 0x2c, 0x83, 0xb4, 0x25, 0xe6, 0x8f, 0xa5, 0xcf,
- 0x00, 0xf5, 0x02, 0x15, 0xf0, 0x26, 0x42, 0x58, 0x4e, 0x82, 0x02, 0x1d, 0x61, 0x18, 0x34, 0xec,
- 0x2d, 0xe1, 0x70, 0x23, 0x77, 0x72, 0x48, 0x96, 0xb6, 0x31, 0xc8, 0x0f, 0xb3, 0x6b, 0x18, 0xbb,
- 0xae, 0x5d, 0xb1, 0x3d, 0x07, 0xfe, 0xc4, 0x48, 0x04, 0x27, 0xf0, 0x86, 0x53, 0x86, 0xf1, 0x86,
- 0x1b, 0xca, 0xca, 0xe1, 0xb7, 0xe0, 0x50, 0xac, 0x1c, 0x11, 0x95, 0xa7, 0x8f, 0xdf, 0x3b, 0x14,
- 0x7a, 0x3d, 0x7f, 0x1d, 0x79, 0x0b, 0xa2, 0x86, 0x08, 0x1f, 0x1c, 0x05, 0x90, 0xc7, 0x7d, 0x35,
- 0x89, 0xdd, 0x2e, 0x45, 0x5e, 0xc4, 0x13, 0x4f, 0xb1, 0xb7, 0x1c, 0x08, 0xcb, 0xc1, 0x1e, 0x0a,
- 0x47, 0x82, 0x94, 0xdc, 0xe5, 0x06, 0x09, 0xc8, 0x48, 0x1f, 0xb3, 0x97, 0x2a, 0xa0, 0xc0, 0xae,
- 0x62, 0xdf, 0x48, 0xc5, 0x61, 0x42, 0x8c, 0x75, 0x2c, 0xb1, 0x23, 0x97, 0xf8, 0xc2, 0xf2, 0xf4,
- 0xf6, 0xe2, 0x0e, 0xe9, 0x46, 0xf2, 0x6f, 0x65, 0xc1, 0x74, 0x1d, 0x79, 0x65, 0xd3, 0x75, 0x2d,
- 0x73, 0x6b, 0x54, 0x1e, 0xdf, 0xb2, 0xde, 0xc3, 0xf0, 0xdb, 0x19, 0xd9, 0xf3, 0x34, 0x81, 0x21,
- 0xdc, 0x27, 0x35, 0x22, 0xb6, 0x9f, 0xdc, 0x55, 0xf0, 0x83, 0x4a, 0x1b, 0x83, 0xc7, 0x76, 0x16,
- 0x4c, 0xf8, 0x67, 0xea, 0xce, 0x09, 0xe7, 0x2c, 0xb7, 0xbd, 0x1d, 0xff, 0x18, 0x0c, 0x79, 0xde,
- 0x7f, 0x96, 0x0b, 0xbe, 0x3a, 0xa1, 0xa3, 0x7c, 0xfc, 0x81, 0xc0, 0x64, 0x7d, 0x2c, 0x89, 0x3b,
- 0xfc, 0x61, 0x1d, 0x01, 0xfc, 0x9d, 0x09, 0x66, 0x8e, 0x5c, 0x35, 0x3d, 0x74, 0x05, 0xfe, 0x85,
- 0x02, 0x26, 0xea, 0xc8, 0xc3, 0xf3, 0x2d, 0x26, 0xff, 0xc0, 0x12, 0xae, 0x72, 0x16, 0x8f, 0x29,
- 0x66, 0xc3, 0x78, 0x0e, 0x98, 0xea, 0xb8, 0x4e, 0x13, 0x75, 0xbb, 0xcc, 0x7a, 0xc1, 0x3b, 0xaa,
- 0xf5, 0x9b, 0xfd, 0x09, 0x69, 0xf3, 0xeb, 0xfe, 0x3f, 0x7a, 0xf8, 0x7b, 0x52, 0x35, 0x80, 0x96,
- 0xc4, 0x1a, 0x38, 0x6e, 0x35, 0x20, 0xae, 0xf2, 0xf4, 0x81, 0xfe, 0x8c, 0x02, 0x66, 0xea, 0xc8,
- 0x0b, 0xb8, 0x98, 0x60, 0x93, 0x23, 0x1a, 0x5e, 0x01, 0x4a, 0xe5, 0x60, 0x50, 0xca, 0x5f, 0x90,
- 0x27, 0x72, 0x33, 0x28, 0x6c, 0x8c, 0x17, 0xe4, 0xc9, 0x51, 0x30, 0x86, 0xe3, 0x6b, 0x4f, 0x00,
- 0x53, 0x84, 0x16, 0xd2, 0x61, 0x7f, 0x2e, 0x17, 0x76, 0xde, 0xcf, 0xa7, 0xd4, 0x79, 0xef, 0x05,
- 0x79, 0x72, 0xf1, 0x3e, 0xe9, 0xb8, 0xd3, 0x32, 0x6a, 0xfb, 0x1a, 0xce, 0xae, 0xd3, 0xbf, 0xfa,
- 0xfb, 0x69, 0xe6, 0x93, 0xf9, 0x69, 0xbe, 0x31, 0x9b, 0x68, 0x26, 0xa4, 0x6b, 0x87, 0x11, 0x76,
- 0xf9, 0x04, 0xf3, 0x66, 0x4c, 0xdd, 0xe9, 0x0b, 0xc7, 0x8b, 0x15, 0x30, 0x89, 0xe7, 0x6d, 0xa2,
- 0x8f, 0x5f, 0x38, 0xb8, 0x38, 0xf4, 0x57, 0xf4, 0x13, 0x8e, 0xc0, 0x3e, 0x47, 0x46, 0xa7, 0xde,
- 0x27, 0x18, 0x81, 0xe3, 0x2a, 0x4f, 0x1f, 0x8f, 0x77, 0x51, 0x3c, 0x48, 0x7f, 0x80, 0x6f, 0x52,
- 0x80, 0xb2, 0x8c, 0xbc, 0x71, 0x6b, 0x91, 0x6f, 0x97, 0x0e, 0x55, 0x24, 0x30, 0x8c, 0xd0, 0x3c,
- 0xbf, 0x8c, 0x46, 0xd3, 0x81, 0xe4, 0x62, 0x14, 0x49, 0x11, 0x90, 0x3e, 0x6a, 0xef, 0xa5, 0xa8,
- 0xd1, 0xcd, 0x85, 0x1f, 0x1b, 0xc1, 0xa8, 0x3a, 0x5e, 0xc3, 0x87, 0xcf, 0x40, 0x52, 0xc6, 0x61,
- 0xf5, 0xb7, 0x7e, 0x95, 0x8f, 0xe5, 0x42, 0x3a, 0x80, 0x3b, 0xfb, 0x36, 0x6a, 0x5e, 0x42, 0x2d,
- 0xf8, 0xc3, 0x07, 0x87, 0xee, 0x14, 0x98, 0x68, 0xd2, 0xd2, 0x08, 0x78, 0x93, 0xba, 0xff, 0x9a,
- 0xe0, 0x76, 0x65, 0x71, 0x20, 0xa2, 0xbf, 0x8f, 0xf1, 0x76, 0x65, 0x89, 0xea, 0xc7, 0xa0, 0xb6,
- 0xd0, 0x55, 0x46, 0xa5, 0xe9, 0xd8, 0xf0, 0x3f, 0x1e, 0x1c, 0x96, 0x1b, 0xc0, 0x94, 0xd5, 0x74,
- 0xec, 0xca, 0x8e, 0x1f, 0xdc, 0x6f, 0x4a, 0x0f, 0x13, 0xfc, 0xaf, 0xda, 0x8e, 0xf3, 0x90, 0xc5,
- 0x76, 0xcd, 0xc3, 0x84, 0x61, 0x95, 0x09, 0x4c, 0xfa, 0x61, 0x29, 0x13, 0x7d, 0xea, 0x4e, 0x1f,
- 0xb2, 0x47, 0x43, 0xef, 0x36, 0x3a, 0x14, 0x3e, 0x26, 0xac, 0xc0, 0xc3, 0x4c, 0x67, 0x7c, 0x2b,
- 0x0e, 0x65, 0x3a, 0x8b, 0x21, 0x60, 0x0c, 0xf7, 0x8b, 0x84, 0x38, 0xa6, 0x6e, 0x03, 0x3e, 0x00,
- 0x3a, 0xa3, 0x53, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x54, 0xc4, 0x0f, 0xb2, 0x50, 0x97, 0x4c, 0xe3,
- 0x81, 0xff, 0x69, 0x14, 0xe0, 0xdc, 0x3d, 0x8c, 0xbf, 0x02, 0xf5, 0x56, 0x48, 0x70, 0x2f, 0xf4,
- 0x3e, 0x0e, 0xe2, 0x52, 0xc6, 0x78, 0x63, 0xba, 0x4c, 0xfd, 0xe9, 0x03, 0xf8, 0xb3, 0x0a, 0x98,
- 0x23, 0x3e, 0x02, 0x6d, 0x64, 0xba, 0x74, 0xa0, 0x1c, 0x89, 0xa3, 0xfc, 0xbb, 0xa4, 0x03, 0xfc,
- 0x88, 0x7c, 0x08, 0xe9, 0x18, 0x09, 0x14, 0x72, 0xd1, 0x7d, 0x24, 0x49, 0x18, 0xcb, 0x36, 0x4a,
- 0x31, 0x20, 0x81, 0x89, 0xf8, 0x68, 0xf0, 0x48, 0xe8, 0x91, 0x2b, 0x32, 0xc3, 0xef, 0x6c, 0x63,
- 0xf6, 0xc8, 0x95, 0x21, 0x62, 0x0c, 0x57, 0x46, 0x3e, 0x85, 0x19, 0x9c, 0x0d, 0x72, 0x6d, 0xfa,
- 0x6b, 0x73, 0xc1, 0x89, 0xb6, 0xcf, 0x8c, 0xc4, 0x03, 0xf3, 0x00, 0x81, 0xed, 0x55, 0x90, 0x73,
- 0x9d, 0xcb, 0xd4, 0xb4, 0x35, 0xab, 0x93, 0x67, 0xa2, 0xf2, 0x3b, 0xed, 0xdd, 0x1d, 0x9b, 0x9e,
- 0x0c, 0x9d, 0xd5, 0xfd, 0x57, 0xf5, 0x66, 0x30, 0x7b, 0xd9, 0xf2, 0xb6, 0x57, 0x90, 0xd9, 0x42,
- 0xae, 0xee, 0x5c, 0x26, 0x1e, 0x73, 0x93, 0xba, 0x98, 0x28, 0xfa, 0xaf, 0x48, 0xe8, 0x97, 0xe4,
- 0x2e, 0xf5, 0xb1, 0x1c, 0x7f, 0x4b, 0xa2, 0x79, 0x46, 0x53, 0x95, 0xbe, 0xc0, 0xbc, 0x4f, 0x01,
- 0x53, 0xba, 0x73, 0x99, 0x09, 0xc9, 0xff, 0x79, 0xb8, 0x32, 0x92, 0x78, 0xa1, 0x47, 0xef, 0xc6,
- 0xf7, 0xc9, 0x1f, 0xfb, 0x42, 0x2f, 0xb6, 0xfa, 0xb1, 0x9c, 0x5c, 0x9a, 0xd1, 0x9d, 0xcb, 0x75,
- 0xe4, 0xd1, 0x1e, 0x01, 0x1b, 0x23, 0x72, 0xb2, 0xb6, 0xba, 0xb4, 0x40, 0xb6, 0x0e, 0x0f, 0xde,
- 0x93, 0xee, 0x22, 0x04, 0x0c, 0x0a, 0x48, 0x1c, 0xf7, 0x2e, 0xc2, 0x40, 0x0a, 0xc6, 0x10, 0x23,
- 0x45, 0x01, 0xd3, 0xba, 0x73, 0x19, 0x4f, 0x0d, 0x4b, 0x56, 0xbb, 0x3d, 0x9a, 0x19, 0x32, 0xa9,
- 0xf2, 0xef, 0xb3, 0xc1, 0xa7, 0x62, 0xec, 0xca, 0xff, 0x00, 0x02, 0xd2, 0x87, 0xe1, 0x45, 0xb4,
- 0xb3, 0xf8, 0x33, 0xb4, 0x3d, 0x1a, 0x1c, 0x86, 0xed, 0x10, 0x01, 0x19, 0x87, 0xd6, 0x21, 0xa2,
- 0x28, 0x18, 0xcb, 0xce, 0xc9, 0x5c, 0x99, 0x4c, 0xf3, 0xa3, 0xed, 0x13, 0x8f, 0x24, 0x73, 0x4d,
- 0x64, 0xd3, 0xae, 0x40, 0xc8, 0x48, 0xd0, 0x48, 0xe0, 0x82, 0x28, 0x41, 0x43, 0xfa, 0x78, 0x7c,
- 0x58, 0x01, 0x33, 0x94, 0x84, 0xc7, 0x88, 0x16, 0x30, 0x54, 0xa7, 0xe2, 0x5b, 0x70, 0x38, 0x9d,
- 0x2a, 0x86, 0x82, 0xb1, 0xdc, 0xd2, 0x89, 0xf5, 0xb8, 0x21, 0x8e, 0x8f, 0x47, 0x21, 0x38, 0xb4,
- 0x32, 0x36, 0xc2, 0x23, 0xe4, 0xc3, 0x28, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0x45, 0x41, 0x2f, 0x1a,
- 0x25, 0x06, 0x07, 0xe8, 0x0a, 0x23, 0x84, 0x61, 0xc8, 0xae, 0x70, 0x48, 0x48, 0x7c, 0x45, 0x01,
- 0x80, 0x12, 0xb0, 0xe6, 0xec, 0x91, 0x4b, 0x79, 0x46, 0x30, 0x9c, 0xf5, 0xba, 0xd5, 0x2b, 0x03,
- 0xdc, 0xea, 0x13, 0x86, 0x70, 0x49, 0x6a, 0x09, 0xe4, 0xb8, 0x8c, 0x1b, 0x39, 0x76, 0x4b, 0x60,
- 0x7c, 0xfd, 0xe9, 0x63, 0xfc, 0x25, 0xaa, 0xcd, 0x85, 0x07, 0x4c, 0x7f, 0x79, 0x24, 0x28, 0x73,
- 0xab, 0x7f, 0x45, 0x5c, 0xfd, 0x1f, 0x00, 0xdb, 0x61, 0x75, 0xc4, 0x41, 0x07, 0x47, 0xd3, 0xd7,
- 0x11, 0x0f, 0xef, 0x80, 0xe8, 0x8f, 0xe5, 0xc0, 0x51, 0x36, 0x88, 0x7c, 0x3f, 0x40, 0x9c, 0xf0,
- 0x1c, 0x9e, 0x30, 0x48, 0x0e, 0x40, 0x79, 0x54, 0x06, 0xa9, 0x24, 0xa6, 0x4c, 0x09, 0xf2, 0xc6,
- 0x62, 0xdd, 0x28, 0x68, 0x57, 0x3a, 0xa6, 0xdd, 0x92, 0x0f, 0xf7, 0x3b, 0x00, 0x78, 0xdf, 0xd6,
- 0xa8, 0x88, 0xb6, 0xc6, 0x3e, 0x96, 0xc9, 0xc4, 0x3b, 0xd7, 0x84, 0x65, 0x94, 0xdc, 0xb1, 0xef,
- 0x5c, 0x47, 0xd7, 0x9d, 0x3e, 0x4a, 0x8f, 0x28, 0x20, 0x57, 0x77, 0x5c, 0x0f, 0x3e, 0x9c, 0xa4,
- 0x77, 0x52, 0xce, 0x87, 0x20, 0xf9, 0xef, 0x6a, 0x59, 0xb8, 0x35, 0xf9, 0x5c, 0xfc, 0x51, 0x67,
- 0xd3, 0x33, 0x89, 0x57, 0x37, 0xae, 0x9f, 0xbb, 0x3e, 0x39, 0x69, 0x3c, 0x1d, 0xca, 0xbf, 0x7a,
- 0xf4, 0x01, 0x8c, 0xd4, 0xe2, 0xe9, 0x44, 0xd6, 0x9c, 0x3e, 0x6e, 0xff, 0x7d, 0x8e, 0xf9, 0xb6,
- 0x2e, 0x59, 0x6d, 0x04, 0x1f, 0xa6, 0x2e, 0x23, 0x55, 0x73, 0x07, 0xc9, 0x1f, 0x89, 0x89, 0x75,
- 0x6d, 0x25, 0xf1, 0x65, 0x95, 0x30, 0xbe, 0x6c, 0xd2, 0x0e, 0x45, 0x0f, 0xa0, 0x53, 0x92, 0xc6,
- 0xdd, 0xa1, 0x62, 0xea, 0x1e, 0x4b, 0x9c, 0xce, 0x63, 0x75, 0xe4, 0x51, 0xa5, 0xb2, 0xe6, 0xdf,
- 0xc0, 0xf2, 0x23, 0x23, 0x89, 0xd8, 0x19, 0x5c, 0xf0, 0xa2, 0xf4, 0x5c, 0xf0, 0xf2, 0x3e, 0x1e,
- 0x9c, 0x35, 0x11, 0x9c, 0x67, 0x44, 0x33, 0x48, 0x24, 0x72, 0x24, 0x30, 0xbd, 0x3d, 0x80, 0x69,
- 0x5d, 0x80, 0xe9, 0x9e, 0x21, 0xa9, 0x48, 0x1f, 0xb0, 0xcf, 0x63, 0x55, 0x85, 0x2c, 0xfa, 0x4b,
- 0x76, 0x8b, 0x45, 0x58, 0xfd, 0xc7, 0xc3, 0xde, 0x6c, 0xdb, 0x1f, 0x82, 0x55, 0x88, 0xe5, 0x9c,
- 0xef, 0xbd, 0xad, 0x7e, 0x81, 0x86, 0x73, 0xc5, 0x83, 0x28, 0xd9, 0x69, 0x93, 0xbf, 0xb1, 0x3e,
- 0xf8, 0x0f, 0xfe, 0x49, 0x32, 0xfb, 0x1b, 0x29, 0xa2, 0x87, 0x71, 0x29, 0xeb, 0x40, 0x09, 0x2c,
- 0x73, 0x12, 0xd4, 0xfd, 0xfb, 0x70, 0x0b, 0x0b, 0x23, 0x81, 0x0c, 0xe9, 0x16, 0x46, 0x0a, 0x38,
- 0x4c, 0xb7, 0xb0, 0x41, 0x04, 0x8c, 0xe1, 0x96, 0xf9, 0x3c, 0xdb, 0x95, 0x27, 0x3e, 0x93, 0xf0,
- 0xaf, 0xb2, 0xa9, 0xcf, 0xb6, 0xdf, 0xc9, 0x24, 0xf2, 0x63, 0x26, 0x74, 0xc5, 0x4f, 0xb7, 0x49,
- 0x3c, 0x93, 0xe3, 0x8a, 0x1b, 0x83, 0xfd, 0x27, 0x4b, 0x7c, 0xca, 0x2f, 0x58, 0x2d, 0x6f, 0x7b,
- 0x44, 0x27, 0x33, 0x2e, 0xe3, 0xb2, 0xfc, 0xeb, 0x8a, 0xc9, 0x0b, 0xfc, 0x97, 0x4c, 0xa2, 0x50,
- 0x50, 0x01, 0x4b, 0x08, 0x59, 0x11, 0x2c, 0x4e, 0x10, 0xc0, 0x29, 0xb6, 0xbc, 0x31, 0x4a, 0xf4,
- 0x79, 0xab, 0x85, 0x9c, 0xc7, 0xa0, 0x44, 0x13, 0xba, 0x46, 0x27, 0xd1, 0x71, 0xc5, 0xfd, 0x3b,
- 0x95, 0xe8, 0x80, 0x25, 0x23, 0x92, 0xe8, 0xd8, 0xf2, 0xd2, 0xe7, 0xf1, 0xab, 0x67, 0xd8, 0x82,
- 0x68, 0xd5, 0xb2, 0x2f, 0xc1, 0x7f, 0x2a, 0xf8, 0x17, 0x25, 0x5f, 0xb0, 0xbc, 0x6d, 0x16, 0xd3,
- 0xe5, 0x77, 0xa5, 0xef, 0x38, 0x19, 0x22, 0x6e, 0x8b, 0x18, 0x16, 0x2a, 0xbf, 0x2f, 0x2c, 0x54,
- 0x09, 0xcc, 0x5a, 0xb6, 0x87, 0x5c, 0xdb, 0x6c, 0x2f, 0xb5, 0xcd, 0xad, 0xee, 0xa9, 0x89, 0xbe,
- 0x97, 0xd0, 0x55, 0xb8, 0x3c, 0xba, 0xf8, 0x07, 0x7f, 0x9d, 0xe4, 0xa4, 0x78, 0x2d, 0x7e, 0x44,
- 0x14, 0xab, 0xa9, 0xe8, 0x28, 0x56, 0x41, 0x94, 0x2a, 0x30, 0x38, 0xc8, 0xb5, 0xac, 0x8e, 0x9b,
- 0x30, 0x6c, 0xdf, 0x39, 0xc9, 0x68, 0x6a, 0x41, 0x08, 0xc7, 0x5f, 0x55, 0x12, 0x59, 0xe9, 0xb0,
- 0x20, 0xcc, 0xf7, 0x0a, 0x41, 0x62, 0x0d, 0x95, 0x6f, 0xbc, 0xd2, 0xd3, 0xf8, 0x40, 0xe5, 0xc9,
- 0x49, 0xa8, 0x3c, 0xbc, 0x50, 0xe5, 0xe5, 0x84, 0x2a, 0x89, 0xd1, 0x4f, 0xa6, 0xb5, 0x63, 0x38,
- 0x55, 0x94, 0x07, 0xc7, 0xfc, 0xa8, 0xb5, 0x9d, 0x0e, 0x32, 0x5d, 0xd3, 0x6e, 0x22, 0xf8, 0x68,
- 0x76, 0x14, 0x6a, 0xef, 0x12, 0x98, 0xb4, 0x9a, 0x8e, 0x5d, 0xb7, 0x9e, 0xef, 0x5f, 0x12, 0x17,
- 0x1f, 0x2c, 0x9d, 0x70, 0xa4, 0xc2, 0xfe, 0xd0, 0x83, 0x7f, 0xd5, 0x0a, 0x98, 0x6a, 0x9a, 0x6e,
- 0x8b, 0x06, 0xd3, 0xcb, 0xf7, 0x5c, 0xc8, 0x14, 0x59, 0x50, 0xd9, 0xff, 0x45, 0x0f, 0xff, 0x56,
- 0x6b, 0x22, 0x13, 0x0b, 0x3d, 0x51, 0x39, 0x22, 0x0b, 0x5b, 0x0c, 0x7f, 0x12, 0x78, 0x8e, 0xb9,
- 0xe3, 0xa2, 0x36, 0xb9, 0x13, 0x9e, 0x8e, 0x10, 0x53, 0x7a, 0x98, 0x90, 0x74, 0x99, 0x4f, 0xaa,
- 0xda, 0x87, 0xc6, 0xb8, 0x97, 0xf9, 0x52, 0x54, 0xa4, 0x2f, 0x99, 0xef, 0x2c, 0x80, 0x59, 0x3a,
- 0xaa, 0x31, 0x76, 0xc2, 0x9f, 0x25, 0x57, 0x3a, 0x7b, 0x0f, 0xa0, 0xab, 0xb0, 0x7e, 0xf0, 0x39,
- 0xb9, 0x08, 0x94, 0x4b, 0x41, 0xe0, 0x40, 0xfc, 0x98, 0x74, 0xff, 0xdd, 0xa7, 0x6b, 0x9e, 0xd2,
- 0x34, 0xee, 0xfd, 0xf7, 0xf8, 0xea, 0xd3, 0xc7, 0xe7, 0x17, 0x14, 0xa0, 0x94, 0x5a, 0x2d, 0xd8,
- 0x3c, 0x38, 0x14, 0x67, 0xc0, 0xb4, 0xdf, 0x67, 0xc2, 0x58, 0x8e, 0x7c, 0x52, 0x52, 0x63, 0x66,
- 0xc0, 0x9b, 0x52, 0x6b, 0xec, 0xbb, 0x03, 0x31, 0x75, 0xa7, 0x0f, 0xca, 0x2f, 0x4f, 0xb0, 0x4e,
- 0xb3, 0xe0, 0x38, 0x97, 0xc8, 0x91, 0x97, 0x87, 0x15, 0x90, 0x5f, 0x42, 0x5e, 0x73, 0x7b, 0x44,
- 0x7d, 0x66, 0xd7, 0x6d, 0xfb, 0x7d, 0x66, 0xdf, 0xfd, 0xf4, 0x83, 0x75, 0x58, 0x9f, 0xac, 0x79,
- 0x42, 0xd2, 0xb8, 0xa3, 0x34, 0xc7, 0xd6, 0x9e, 0x3e, 0x38, 0xff, 0xa2, 0x80, 0xb9, 0xc0, 0xc2,
- 0x45, 0x31, 0xf9, 0xf9, 0xc7, 0x9c, 0xdd, 0x12, 0x7e, 0x2e, 0x59, 0xa8, 0xb3, 0x80, 0xa7, 0x62,
- 0xcb, 0x52, 0x36, 0x2c, 0x26, 0x08, 0x82, 0x26, 0x47, 0xe0, 0x18, 0x56, 0xf0, 0x0a, 0x98, 0x24,
- 0x04, 0x2d, 0x5a, 0x7b, 0xc4, 0x05, 0x50, 0x30, 0x34, 0xfe, 0xf8, 0x48, 0x0c, 0x8d, 0xf7, 0x88,
- 0x86, 0x46, 0xc9, 0xc8, 0xc5, 0xbe, 0x9d, 0x31, 0xa1, 0x4f, 0x0c, 0xfe, 0x7f, 0xe4, 0x66, 0xc6,
- 0x04, 0x3e, 0x31, 0x03, 0xea, 0x4f, 0x1f, 0xd1, 0x4f, 0x36, 0xd8, 0x60, 0xeb, 0x6f, 0x8c, 0xc2,
- 0xff, 0x7e, 0x0c, 0xe4, 0xce, 0xe3, 0x87, 0xff, 0x15, 0xde, 0x6c, 0xf5, 0x8a, 0x11, 0x04, 0x59,
- 0x78, 0x36, 0xc8, 0xe1, 0xf2, 0xd9, 0xb2, 0xe5, 0x36, 0xb9, 0x5d, 0x5a, 0x4c, 0x88, 0x4e, 0xfe,
- 0x53, 0x4f, 0x82, 0x42, 0xd7, 0xd9, 0x75, 0x9b, 0x58, 0x7d, 0xc6, 0x12, 0xc3, 0xde, 0x92, 0x06,
- 0x17, 0x15, 0x8a, 0x9e, 0x1f, 0x9d, 0xeb, 0x27, 0x77, 0xd1, 0x91, 0x22, 0x5c, 0x74, 0x94, 0x60,
- 0xff, 0x40, 0x82, 0xb6, 0xf4, 0x25, 0xe2, 0xaf, 0xc8, 0x9d, 0x7f, 0xad, 0x51, 0xc1, 0x1e, 0xc1,
- 0x96, 0x83, 0x8a, 0x43, 0x52, 0xc7, 0x6d, 0x91, 0xb5, 0x41, 0x3c, 0xf7, 0xb1, 0x3a, 0x6e, 0x4b,
- 0xd0, 0x30, 0x96, 0xd3, 0xe6, 0x05, 0xe6, 0x6c, 0xfa, 0xe0, 0x28, 0xd1, 0xcd, 0x09, 0x42, 0x7f,
- 0x20, 0x74, 0x46, 0xe8, 0x84, 0x3a, 0x34, 0x3a, 0x87, 0xe4, 0x86, 0xfa, 0x07, 0x0a, 0x89, 0x68,
- 0xe9, 0x2b, 0x39, 0xf2, 0x17, 0x16, 0x25, 0x86, 0x08, 0xcf, 0xc1, 0x42, 0x3c, 0xe7, 0xd9, 0xe1,
- 0x43, 0x7c, 0x8b, 0xac, 0xe3, 0xe8, 0x1f, 0x77, 0x88, 0x6f, 0x59, 0x42, 0xd2, 0x07, 0xf2, 0xd7,
- 0xe8, 0x05, 0x61, 0xa5, 0xa6, 0x67, 0xed, 0x8d, 0xb8, 0xa7, 0x89, 0xd3, 0x4b, 0xc2, 0xa8, 0xbe,
- 0xfb, 0x38, 0x44, 0x29, 0x1c, 0x77, 0x54, 0x5f, 0x39, 0x32, 0xc6, 0x70, 0x1c, 0x1d, 0x60, 0xee,
- 0x31, 0xdb, 0xcc, 0x9b, 0x98, 0x35, 0x00, 0x1d, 0x1c, 0xad, 0xb3, 0x60, 0x86, 0x5b, 0xfa, 0xfb,
- 0x17, 0xcf, 0x08, 0x69, 0x49, 0x0f, 0xac, 0x07, 0x2c, 0x1b, 0xb9, 0x61, 0x20, 0x81, 0xc1, 0x57,
- 0x86, 0x88, 0xb1, 0xdc, 0xeb, 0xe6, 0xcf, 0x61, 0x63, 0xc2, 0xea, 0x77, 0x79, 0xac, 0x6a, 0x22,
- 0x56, 0x77, 0xc9, 0xb0, 0x49, 0x6e, 0x4e, 0x93, 0x5a, 0x37, 0xbe, 0x23, 0x80, 0x4b, 0x17, 0xe0,
- 0x7a, 0xf6, 0xd0, 0x74, 0xa4, 0x8f, 0xd8, 0x9b, 0x15, 0x7a, 0xb9, 0x53, 0x69, 0xcf, 0xb4, 0xda,
- 0x24, 0xca, 0xc0, 0x08, 0x2e, 0x27, 0xfe, 0x33, 0x1e, 0x94, 0xf3, 0x22, 0x28, 0xf7, 0xcb, 0x30,
- 0x43, 0xa0, 0x28, 0x02, 0x9b, 0xa7, 0xf3, 0xc6, 0x71, 0x1a, 0x62, 0xf8, 0xda, 0xde, 0x70, 0x7e,
- 0xec, 0x3b, 0x6f, 0x35, 0xff, 0xed, 0x00, 0xa4, 0x07, 0x05, 0x90, 0xb4, 0x83, 0xd2, 0x95, 0x3e,
- 0x56, 0xaf, 0xa4, 0x53, 0x57, 0x9d, 0x2e, 0xaf, 0x46, 0x33, 0x75, 0xb1, 0x95, 0x9b, 0x22, 0xac,
- 0xdc, 0x12, 0x9e, 0x71, 0x08, 0x5d, 0x77, 0x7d, 0xe2, 0x06, 0x75, 0xa7, 0xdc, 0x88, 0xcf, 0x38,
- 0x0c, 0xa4, 0x20, 0x7d, 0x70, 0xfe, 0x41, 0x01, 0x60, 0xd9, 0x75, 0x76, 0x3b, 0x35, 0xb7, 0x85,
- 0x5c, 0xf8, 0x37, 0xe1, 0x62, 0xed, 0x65, 0x23, 0x58, 0xac, 0xad, 0x03, 0xb0, 0x15, 0x14, 0xce,
- 0x46, 0xa3, 0xa7, 0xc8, 0x2d, 0xcd, 0x42, 0xa2, 0x74, 0xae, 0x0c, 0xf1, 0x9a, 0xdf, 0xe7, 0x8a,
- 0x18, 0xc7, 0xcd, 0x2f, 0x61, 0x71, 0xa3, 0x5c, 0xac, 0xbd, 0x2b, 0xc0, 0xda, 0x10, 0xb0, 0xbe,
- 0xff, 0x00, 0x94, 0xa4, 0x8f, 0xf9, 0x3f, 0x4e, 0x80, 0x69, 0xba, 0xb5, 0x4a, 0x79, 0xfa, 0x77,
- 0x21, 0xe8, 0xbf, 0x3c, 0x02, 0xd0, 0x37, 0xc0, 0x8c, 0x13, 0x96, 0x4e, 0xe7, 0x3f, 0xde, 0x58,
- 0x16, 0x0b, 0x3b, 0x47, 0x97, 0x2e, 0x14, 0x03, 0x3f, 0xc2, 0x23, 0xaf, 0x8b, 0xc8, 0xdf, 0x13,
- 0xc3, 0x6f, 0xae, 0xc4, 0x51, 0x42, 0xff, 0xee, 0x00, 0xfa, 0x0d, 0x01, 0xfa, 0xd2, 0x41, 0x48,
- 0x19, 0xc3, 0x15, 0x07, 0x0a, 0xc8, 0x91, 0x13, 0x89, 0xbf, 0x91, 0xa2, 0x2d, 0xe6, 0x14, 0x98,
- 0x20, 0x5d, 0x36, 0x58, 0x23, 0xfa, 0xaf, 0xf8, 0x8b, 0xb9, 0xe9, 0x21, 0x37, 0xf0, 0x2e, 0xf1,
- 0x5f, 0x31, 0x0d, 0xbe, 0x27, 0x78, 0xf7, 0x54, 0x81, 0x6e, 0x1a, 0x07, 0x09, 0x43, 0x2f, 0x20,
- 0x79, 0x8e, 0x8f, 0xec, 0x8c, 0xe2, 0x30, 0x0b, 0xc8, 0x01, 0x84, 0xa4, 0x0f, 0xfc, 0x17, 0x72,
- 0xe0, 0x14, 0xb5, 0x00, 0x2e, 0xb9, 0xce, 0x4e, 0xcf, 0x8d, 0x62, 0xd6, 0xc1, 0x65, 0xe1, 0x16,
- 0x30, 0xe7, 0x09, 0x3e, 0xf0, 0x4c, 0x26, 0x7a, 0x52, 0xe1, 0x9f, 0xf2, 0xfe, 0x2f, 0xcf, 0x13,
- 0x91, 0x5c, 0x88, 0x61, 0x60, 0x14, 0xed, 0x89, 0x37, 0x55, 0x24, 0x09, 0xe5, 0x0c, 0x8a, 0xca,
- 0x50, 0xf6, 0xe5, 0x40, 0xa6, 0xf2, 0x32, 0x32, 0xf5, 0xfe, 0x40, 0xa6, 0x7e, 0x58, 0x90, 0xa9,
- 0xe5, 0x83, 0xb3, 0x24, 0x7d, 0xd9, 0x7a, 0x6d, 0xb0, 0x89, 0x17, 0x6c, 0xb1, 0xee, 0xa4, 0xb0,
- 0xb1, 0xca, 0xfb, 0x8e, 0xe5, 0x04, 0xdf, 0x31, 0xf1, 0x0e, 0x90, 0x04, 0x56, 0x0b, 0x91, 0xea,
- 0x08, 0x59, 0x9a, 0x03, 0x59, 0xcb, 0xa7, 0x2e, 0x6b, 0xb5, 0x86, 0xb2, 0x4b, 0xc4, 0x56, 0x34,
- 0x06, 0x3b, 0xe0, 0x1c, 0x28, 0x2c, 0x59, 0x6d, 0x0f, 0xb9, 0xf0, 0x4b, 0xcc, 0x2a, 0xf1, 0xda,
- 0x14, 0x27, 0x80, 0x45, 0x50, 0xd8, 0x24, 0xb5, 0x31, 0x95, 0xf9, 0x76, 0xb9, 0xde, 0x43, 0x29,
- 0xd4, 0xd9, 0xbf, 0x49, 0x23, 0x22, 0xf6, 0x14, 0x33, 0x32, 0x73, 0x46, 0x82, 0x88, 0x88, 0x83,
- 0x49, 0x18, 0xcb, 0x65, 0x60, 0x05, 0x1d, 0xed, 0xe0, 0x39, 0xfe, 0x52, 0x7a, 0x08, 0x17, 0x81,
- 0x62, 0xb5, 0xba, 0x64, 0x70, 0x9c, 0xd2, 0xf1, 0x63, 0x52, 0xbf, 0xae, 0x5e, 0x56, 0x51, 0x92,
- 0xc7, 0xed, 0xd7, 0x25, 0x45, 0x45, 0xfa, 0x98, 0x7d, 0x87, 0x38, 0xf5, 0x76, 0xda, 0x66, 0x13,
- 0x61, 0xea, 0x53, 0x43, 0x8d, 0x8e, 0x64, 0x39, 0x7f, 0x24, 0xe3, 0xfa, 0x69, 0xfe, 0x00, 0xfd,
- 0x74, 0x58, 0x93, 0x71, 0xc0, 0x73, 0xd2, 0xf0, 0x43, 0x33, 0x19, 0xc7, 0x92, 0x31, 0x86, 0xab,
- 0x5e, 0xfd, 0xc3, 0xcb, 0x63, 0xed, 0xad, 0xc3, 0x6e, 0xa8, 0x31, 0x66, 0x8d, 0xec, 0xa0, 0xf2,
- 0x30, 0x1b, 0x6a, 0xd1, 0x34, 0x8c, 0x01, 0xad, 0x39, 0x86, 0xd6, 0x67, 0xd9, 0x34, 0x9a, 0xf2,
- 0x9e, 0x76, 0xd7, 0x71, 0xbd, 0x64, 0x7b, 0xda, 0x98, 0x3a, 0x9d, 0xfc, 0x97, 0xf4, 0x90, 0x9c,
- 0x78, 0x96, 0x7d, 0x54, 0xd3, 0x67, 0x82, 0x43, 0x72, 0x83, 0x08, 0x48, 0x1f, 0xde, 0xb7, 0x1e,
- 0xd2, 0xe4, 0x39, 0x6c, 0x77, 0x64, 0x7d, 0x60, 0x64, 0x53, 0xe7, 0x30, 0xdd, 0x31, 0x9a, 0x86,
- 0xf4, 0xf1, 0xfa, 0x7b, 0x6e, 0xe2, 0x7c, 0xf3, 0x18, 0x27, 0x4e, 0xbf, 0x67, 0xe6, 0x87, 0xec,
- 0x99, 0xc3, 0xee, 0xd5, 0x31, 0x5e, 0x8f, 0x6e, 0xc2, 0x1c, 0x66, 0xaf, 0x2e, 0x86, 0x88, 0xf4,
- 0x11, 0x7f, 0x8b, 0x02, 0xf2, 0xf5, 0xf1, 0xcf, 0x97, 0xc3, 0xae, 0x45, 0x08, 0xaf, 0xea, 0x23,
- 0x9b, 0x2e, 0x87, 0x59, 0x8b, 0x44, 0x92, 0x30, 0x86, 0xcb, 0x0e, 0x8e, 0x82, 0x19, 0x62, 0x12,
- 0xf1, 0xb7, 0xc4, 0xff, 0x9e, 0xcd, 0x9a, 0x6f, 0x4c, 0xb1, 0xaf, 0x3e, 0x07, 0x4c, 0xfa, 0xfb,
- 0x66, 0x6c, 0xe6, 0x9c, 0x97, 0xeb, 0x9f, 0xc1, 0xbe, 0x5b, 0xf0, 0xff, 0x81, 0x1c, 0x57, 0x46,
- 0xbe, 0xaf, 0x3e, 0xac, 0xe3, 0xca, 0xa1, 0xee, 0xad, 0xff, 0x49, 0x38, 0xa3, 0xfe, 0xc7, 0xf4,
- 0x30, 0xef, 0xdd, 0x73, 0xcf, 0xf5, 0xd9, 0x73, 0x7f, 0x94, 0xc7, 0xb2, 0x2e, 0x62, 0x79, 0xaf,
- 0x2c, 0x0b, 0x47, 0x38, 0xd7, 0x3e, 0x12, 0xc0, 0x79, 0x5e, 0x80, 0x73, 0xe1, 0x40, 0xb4, 0x8c,
- 0xe1, 0x90, 0x6a, 0x2e, 0x9c, 0x73, 0x3f, 0x96, 0x62, 0x3f, 0xee, 0x39, 0x01, 0x93, 0xdb, 0x77,
- 0x02, 0x46, 0xe8, 0xe9, 0xf9, 0x03, 0xf6, 0xf4, 0x8f, 0xf1, 0xd2, 0x61, 0x88, 0xd2, 0xf1, 0x6c,
- 0x79, 0x44, 0x46, 0x37, 0x33, 0xbf, 0x27, 0x10, 0x8f, 0x0b, 0x82, 0x78, 0x94, 0x0f, 0x46, 0x4c,
- 0xfa, 0xf2, 0xf1, 0x87, 0xfe, 0x82, 0xf6, 0x90, 0xfb, 0xfb, 0xb0, 0x5b, 0xc5, 0x02, 0x13, 0x47,
- 0x36, 0x73, 0x0f, 0xb3, 0x55, 0x3c, 0x88, 0x92, 0x31, 0xc4, 0xbf, 0x9b, 0x05, 0xd3, 0x84, 0xa6,
- 0x0b, 0x56, 0x6b, 0x0b, 0x79, 0xf0, 0x57, 0xa9, 0x3f, 0xa9, 0x1f, 0x6d, 0x74, 0x44, 0x21, 0xa1,
- 0xa2, 0xce, 0x26, 0x27, 0xf5, 0xe8, 0xa0, 0x44, 0xce, 0x73, 0x04, 0x8e, 0x3b, 0x6a, 0xe5, 0x40,
- 0x0a, 0xd2, 0x87, 0xec, 0x23, 0xd4, 0xdd, 0x66, 0xd5, 0xbc, 0xea, 0xec, 0x7a, 0xf0, 0x85, 0x23,
- 0x18, 0xa0, 0x17, 0x40, 0xa1, 0x4d, 0x4a, 0x63, 0x47, 0x68, 0xe2, 0x97, 0x3b, 0x8c, 0x05, 0xb4,
- 0x7e, 0x9d, 0xfd, 0x99, 0xf4, 0x1c, 0x4d, 0xc8, 0x47, 0x5a, 0xce, 0xb8, 0xcf, 0xd1, 0x0c, 0xa8,
- 0x7f, 0x2c, 0xf7, 0x1a, 0x4d, 0xe2, 0xda, 0xad, 0x1d, 0xcb, 0x1b, 0x51, 0xb4, 0x8d, 0x36, 0x2e,
- 0xcb, 0x8f, 0xb6, 0x41, 0x5e, 0x92, 0x9e, 0xee, 0xe5, 0xb8, 0x82, 0x7f, 0x1f, 0xf7, 0xe9, 0xde,
- 0xf8, 0xea, 0xd3, 0xc7, 0xe4, 0xbf, 0xd0, 0x9e, 0x75, 0x9e, 0x3a, 0x4a, 0xa7, 0xe8, 0x83, 0x3d,
- 0x74, 0x67, 0xa1, 0xa4, 0x1d, 0x5e, 0x67, 0xe9, 0x5b, 0x7f, 0xfa, 0xc0, 0x7c, 0xe0, 0x34, 0xc8,
- 0x2f, 0xa2, 0x8b, 0xbb, 0x5b, 0xf0, 0x1e, 0x30, 0x69, 0xb8, 0x08, 0x55, 0xec, 0x4d, 0x07, 0x73,
- 0xd7, 0xc3, 0xcf, 0x3e, 0x24, 0xec, 0x0d, 0xe3, 0xb1, 0x8d, 0xcc, 0x56, 0x78, 0x56, 0xd0, 0x7f,
- 0x85, 0xaf, 0xc8, 0x82, 0x5c, 0xdd, 0x33, 0x3d, 0x38, 0x15, 0x60, 0x0b, 0x5f, 0xc8, 0x63, 0x71,
- 0x8f, 0x88, 0xc5, 0x2d, 0x02, 0x2f, 0x08, 0x05, 0xf3, 0xf8, 0xff, 0x08, 0x00, 0x20, 0x98, 0x7c,
- 0xa8, 0xeb, 0xd8, 0x38, 0x87, 0x7f, 0x5c, 0xd5, 0x7f, 0x87, 0xaf, 0x09, 0xd8, 0x7d, 0x9f, 0xc0,
- 0xee, 0x27, 0xc9, 0x55, 0x31, 0x06, 0x4b, 0x5b, 0x16, 0x4c, 0x61, 0xd6, 0xae, 0x20, 0xb3, 0xd5,
- 0x85, 0x8f, 0x0f, 0x85, 0x3f, 0x82, 0xcd, 0xf0, 0x83, 0xd2, 0x01, 0x50, 0x69, 0xab, 0x82, 0xc2,
- 0xa3, 0x3d, 0x3a, 0xfc, 0xcd, 0xff, 0xac, 0x18, 0x38, 0xe6, 0x1c, 0xc8, 0x59, 0xf6, 0xa6, 0xc3,
- 0xfc, 0x0b, 0xaf, 0x8f, 0x28, 0x1b, 0xcb, 0x84, 0x4e, 0x32, 0x4a, 0x46, 0x47, 0x8d, 0x27, 0x6b,
- 0x2c, 0x17, 0x0d, 0xe6, 0x70, 0xed, 0xf0, 0xff, 0x18, 0xc8, 0x6c, 0x55, 0x05, 0xb9, 0x8e, 0xe9,
- 0x6d, 0xb3, 0xaa, 0xc9, 0x33, 0xd6, 0x91, 0x77, 0x6d, 0xd3, 0x76, 0xec, 0xab, 0x3b, 0xd6, 0xf3,
- 0x83, 0xfb, 0x8c, 0x85, 0x34, 0x4c, 0xf9, 0x16, 0xb2, 0x91, 0x6b, 0x7a, 0xa8, 0xbe, 0xb7, 0x45,
- 0xd6, 0x58, 0x93, 0x3a, 0x9f, 0x94, 0x58, 0xfe, 0x31, 0xc5, 0xd1, 0xf2, 0xbf, 0x69, 0xb5, 0x11,
- 0x89, 0xaa, 0xc5, 0xe4, 0xdf, 0x7f, 0x4f, 0x24, 0xff, 0x7d, 0xaa, 0x48, 0x1f, 0x8d, 0xef, 0x66,
- 0xc1, 0x4c, 0x1d, 0x0b, 0x5c, 0x7d, 0x77, 0x67, 0xc7, 0x74, 0xaf, 0xc2, 0x9b, 0x42, 0x54, 0x38,
- 0xd1, 0xcc, 0x88, 0x7e, 0x29, 0x7f, 0x20, 0x7d, 0x95, 0x37, 0xeb, 0xda, 0x5c, 0x0d, 0x89, 0xfb,
- 0xc1, 0x53, 0x41, 0x1e, 0x8b, 0xb7, 0xef, 0x71, 0x19, 0xdb, 0x11, 0x68, 0x4e, 0xc9, 0xe8, 0x63,
- 0x03, 0x69, 0x1b, 0x43, 0xe4, 0x93, 0x2c, 0x38, 0x5a, 0xf7, 0xcc, 0xe6, 0xa5, 0x65, 0xc7, 0x75,
- 0x76, 0x3d, 0xcb, 0x46, 0x5d, 0xf8, 0xb8, 0x10, 0x01, 0x5f, 0xfe, 0x33, 0xa1, 0xfc, 0xc3, 0x7f,
- 0xcd, 0xc8, 0xce, 0xa2, 0xc1, 0xb0, 0xca, 0x17, 0x1f, 0x11, 0x4c, 0x4c, 0x6e, 0x5e, 0x94, 0x29,
- 0x71, 0x2c, 0xa7, 0x24, 0x8a, 0xda, 0x95, 0x8e, 0xe3, 0x7a, 0xab, 0x4e, 0xd3, 0x6c, 0x77, 0x3d,
- 0xc7, 0x45, 0xb0, 0x16, 0xcb, 0x35, 0x3c, 0xc2, 0xb4, 0x9c, 0x66, 0x38, 0x39, 0xb2, 0x37, 0x5e,
- 0xec, 0x14, 0x51, 0xc6, 0x3f, 0x22, 0xbd, 0xcb, 0x48, 0xb9, 0xd2, 0x4b, 0x51, 0x84, 0x9c, 0xf7,
- 0x1b, 0xd2, 0x92, 0x1d, 0x6c, 0x91, 0xdb, 0x79, 0x94, 0x22, 0x6a, 0x0c, 0xa6, 0xf2, 0x2c, 0x98,
- 0xad, 0xef, 0x5e, 0x0c, 0x0a, 0xe9, 0xf2, 0x4a, 0xc8, 0xeb, 0xa4, 0x23, 0x8a, 0x30, 0xc1, 0xe3,
- 0x0b, 0x8a, 0xe0, 0xef, 0xcd, 0x60, 0xb6, 0xcb, 0x67, 0x63, 0x78, 0x8b, 0x89, 0x92, 0x91, 0x44,
- 0x06, 0xd7, 0x9a, 0x3e, 0x03, 0xdf, 0x93, 0x05, 0xb3, 0xb5, 0x0e, 0xb2, 0x51, 0x8b, 0x7a, 0x41,
- 0x0a, 0x0c, 0x7c, 0x45, 0x42, 0x06, 0x0a, 0x05, 0x45, 0x30, 0x30, 0xf4, 0x58, 0x5e, 0xf4, 0x99,
- 0x17, 0x26, 0x24, 0x62, 0x5c, 0x5c, 0x6d, 0xe9, 0x33, 0xee, 0x8b, 0x59, 0x30, 0xad, 0xef, 0xda,
- 0xeb, 0xae, 0x83, 0x67, 0x63, 0x17, 0xde, 0x1b, 0x0e, 0x10, 0xb7, 0x83, 0x63, 0xad, 0x5d, 0x97,
- 0xd8, 0x9f, 0x2a, 0x76, 0x1d, 0x35, 0x1d, 0xbb, 0xd5, 0x25, 0xed, 0xc8, 0xeb, 0xfb, 0x3f, 0xdc,
- 0x9d, 0x7b, 0xf8, 0xeb, 0x4a, 0x06, 0xfe, 0xac, 0x74, 0x58, 0x22, 0xda, 0x78, 0xae, 0x6a, 0xf9,
- 0x91, 0x40, 0x32, 0xf8, 0xd0, 0xa0, 0x1a, 0xd2, 0x67, 0xee, 0x87, 0xb2, 0x40, 0x2d, 0x35, 0x9b,
- 0xce, 0xae, 0xed, 0xd5, 0x51, 0x1b, 0x35, 0x3d, 0xc3, 0x35, 0x9b, 0x08, 0x1e, 0x0d, 0x78, 0xcc,
- 0xb8, 0xf6, 0x0a, 0xe9, 0xfd, 0x45, 0xda, 0xa6, 0xfd, 0x65, 0x26, 0x60, 0x9e, 0xdc, 0x2e, 0xa2,
- 0x64, 0x45, 0x63, 0xb8, 0x67, 0x27, 0x0b, 0x72, 0xeb, 0x96, 0xbd, 0xc5, 0x47, 0x6b, 0x3a, 0x8e,
- 0x75, 0x9d, 0x16, 0xba, 0xc2, 0xa4, 0x91, 0xbe, 0xa8, 0x77, 0x80, 0xe3, 0xf6, 0xee, 0xce, 0x45,
- 0xe4, 0xd6, 0x36, 0xc9, 0x4c, 0xd0, 0x35, 0x9c, 0x3a, 0xb2, 0xa9, 0xa2, 0x94, 0xd7, 0xfb, 0x7e,
- 0x13, 0xd5, 0x04, 0x09, 0x05, 0x17, 0x53, 0x12, 0xc1, 0xeb, 0x80, 0xa8, 0x2c, 0x47, 0x54, 0x22,
- 0xd5, 0xb6, 0x4f, 0xe1, 0xe9, 0xf3, 0xf7, 0x6b, 0x59, 0x30, 0xb1, 0x86, 0x3c, 0xd7, 0x6a, 0x76,
- 0xe1, 0xe7, 0xf1, 0x34, 0x84, 0xbc, 0x75, 0xd3, 0x35, 0x77, 0x90, 0x87, 0xdc, 0x2e, 0xd4, 0x42,
- 0xa6, 0x43, 0x30, 0xd9, 0x69, 0x9b, 0xde, 0xa6, 0xe3, 0xee, 0x30, 0x9d, 0x21, 0x78, 0xc7, 0xfa,
- 0xc1, 0x1e, 0x72, 0xbb, 0x21, 0x59, 0xfe, 0x2b, 0x13, 0x70, 0x79, 0x6d, 0x8c, 0x91, 0x32, 0x2f,
- 0x90, 0x71, 0x20, 0x6d, 0x4c, 0xa6, 0xc4, 0xb1, 0xdc, 0x25, 0xa3, 0xac, 0x3a, 0x5b, 0xf0, 0x55,
- 0x0a, 0xc8, 0x11, 0xc9, 0x7b, 0x4b, 0x46, 0x58, 0x42, 0xec, 0xa0, 0x6e, 0xd7, 0xdc, 0x42, 0xfe,
- 0x12, 0x82, 0xbd, 0xaa, 0x77, 0x81, 0x7c, 0x1b, 0xed, 0xa1, 0x36, 0x21, 0x63, 0xee, 0x8e, 0x9b,
- 0x84, 0x96, 0xad, 0x3a, 0x5b, 0xf3, 0xb8, 0xac, 0x79, 0x56, 0xce, 0xfc, 0x2a, 0xce, 0xaa, 0xd3,
- 0x3f, 0xce, 0x3e, 0x07, 0xe4, 0xc9, 0xbb, 0x3a, 0x05, 0xf2, 0x8b, 0xda, 0xc2, 0xc6, 0x72, 0xf1,
- 0x08, 0x7e, 0xf4, 0xe9, 0x9b, 0x02, 0xf9, 0xa5, 0x92, 0x51, 0x5a, 0x2d, 0x66, 0x71, 0x3b, 0x2a,
- 0xd5, 0xa5, 0x5a, 0x51, 0xc1, 0x89, 0xeb, 0xa5, 0x6a, 0xa5, 0x5c, 0xcc, 0xa9, 0xd3, 0x60, 0xe2,
- 0x42, 0x49, 0xaf, 0x56, 0xaa, 0xcb, 0xc5, 0x3c, 0xfc, 0x5b, 0x1e, 0xbf, 0xbb, 0x45, 0xfc, 0x6e,
- 0x8e, 0xa2, 0xa9, 0x1f, 0x64, 0xbf, 0x12, 0x40, 0x76, 0xaf, 0x00, 0xd9, 0x0f, 0xc8, 0x14, 0x32,
- 0x06, 0x94, 0xb2, 0x60, 0x62, 0xdd, 0x75, 0x9a, 0xa8, 0xdb, 0x85, 0xbf, 0x94, 0x05, 0x85, 0xb2,
- 0x69, 0x37, 0x51, 0x1b, 0x5e, 0x17, 0x42, 0x45, 0x7d, 0x81, 0x32, 0xc1, 0x71, 0x80, 0x7f, 0xe0,
- 0x39, 0x73, 0xbf, 0xc8, 0x99, 0xdb, 0x84, 0x46, 0xb1, 0x72, 0xe7, 0x69, 0x99, 0x11, 0xfc, 0x79,
- 0x7d, 0xc0, 0x9f, 0xb2, 0xc0, 0x9f, 0x73, 0xf2, 0x45, 0xa5, 0xcf, 0xa5, 0x6f, 0x67, 0xc0, 0xf1,
- 0x65, 0x64, 0x23, 0xd7, 0x6a, 0x52, 0xe2, 0xfd, 0xf6, 0xdf, 0x2b, 0xb6, 0xff, 0x89, 0x02, 0xd1,
- 0xfd, 0xfe, 0x10, 0x1b, 0xff, 0xda, 0xa0, 0xf1, 0xf7, 0x0b, 0x8d, 0xbf, 0x5d, 0xb2, 0x9c, 0x31,
- 0x5c, 0x1c, 0x3b, 0x05, 0x66, 0xaa, 0x8e, 0x67, 0x6d, 0x5a, 0x4d, 0xba, 0x71, 0xfc, 0x4a, 0x05,
- 0xe4, 0x56, 0xad, 0xae, 0xc7, 0x9f, 0x40, 0x3f, 0x03, 0xa6, 0x2d, 0xbb, 0xd9, 0xde, 0x6d, 0x21,
- 0x1d, 0x99, 0x54, 0x56, 0x26, 0x75, 0x3e, 0x29, 0xb4, 0xc7, 0x63, 0xb2, 0x14, 0xdf, 0x1e, 0xff,
- 0x29, 0x69, 0xdd, 0x89, 0x27, 0x81, 0x9c, 0xef, 0x8e, 0x98, 0x92, 0x4a, 0x60, 0xd6, 0xe6, 0xb2,
- 0xfa, 0x47, 0xce, 0x7b, 0x23, 0x36, 0xf3, 0xc5, 0xe9, 0xe2, 0x1f, 0xf0, 0x7d, 0x52, 0xaa, 0xd6,
- 0x20, 0x82, 0x92, 0x21, 0xb3, 0x94, 0x1c, 0x19, 0x55, 0x05, 0x73, 0x95, 0xaa, 0xa1, 0xe9, 0xd5,
- 0xd2, 0x2a, 0xcb, 0xa2, 0xc0, 0xef, 0x66, 0x41, 0x5e, 0x47, 0x9d, 0xf6, 0x55, 0x3e, 0x24, 0x27,
- 0xf3, 0xee, 0xca, 0x04, 0xde, 0x5d, 0xea, 0x12, 0x00, 0x66, 0x13, 0x57, 0x4c, 0xee, 0x1e, 0xc9,
- 0xf6, 0x0d, 0x14, 0x27, 0x34, 0xb0, 0x14, 0xe4, 0xd6, 0xb9, 0x3f, 0xe1, 0x8b, 0xa5, 0xcd, 0x3d,
- 0x42, 0x69, 0x84, 0xc2, 0x88, 0xe1, 0xe0, 0xfd, 0x52, 0x16, 0x9a, 0x81, 0xc5, 0x1d, 0x0e, 0xfb,
- 0xbf, 0x9c, 0x05, 0x39, 0x03, 0xaf, 0xbf, 0xb8, 0xa5, 0xd8, 0x27, 0x87, 0x93, 0x71, 0x5c, 0x4c,
- 0x84, 0x8c, 0xdf, 0x07, 0x66, 0x78, 0x89, 0x65, 0xfb, 0x1b, 0xb1, 0x22, 0x2e, 0xfc, 0x30, 0x8c,
- 0x84, 0xf7, 0x21, 0xe7, 0x70, 0x58, 0xfc, 0x95, 0xdb, 0x00, 0x58, 0x43, 0x58, 0xaf, 0xed, 0x6e,
- 0x5b, 0x1d, 0xf8, 0xdf, 0x14, 0x30, 0xb5, 0x8c, 0xbc, 0xba, 0x67, 0x7a, 0xbb, 0xdd, 0x1e, 0x1b,
- 0xa5, 0xed, 0x94, 0xcd, 0xe6, 0x36, 0x62, 0xc3, 0x91, 0xff, 0x0a, 0xdf, 0xad, 0xc8, 0x6e, 0x02,
- 0x86, 0xf5, 0xcc, 0x07, 0x75, 0x44, 0x60, 0xf2, 0x64, 0x90, 0x6b, 0x99, 0x9e, 0xc9, 0xb0, 0xb8,
- 0xae, 0x07, 0x8b, 0xb0, 0x20, 0x9d, 0x64, 0x83, 0xbf, 0x95, 0x95, 0xd9, 0x05, 0x94, 0xa8, 0x3f,
- 0x19, 0x08, 0xef, 0xcb, 0x0c, 0x81, 0xc2, 0x31, 0x30, 0x5b, 0xad, 0x19, 0x8d, 0xd5, 0xda, 0xf2,
- 0xb2, 0x86, 0x53, 0x8b, 0x8a, 0x7a, 0x12, 0xa8, 0xeb, 0xa5, 0x07, 0xd7, 0xb4, 0xaa, 0xd1, 0xa8,
- 0xd6, 0x16, 0x35, 0xf6, 0x67, 0x4e, 0x3d, 0x0a, 0xa6, 0xcb, 0xa5, 0xf2, 0x8a, 0x9f, 0x90, 0x57,
- 0x4f, 0x81, 0xe3, 0x6b, 0xda, 0xda, 0x82, 0xa6, 0xd7, 0x57, 0x2a, 0xeb, 0x0d, 0x5c, 0xcc, 0x52,
- 0x6d, 0xa3, 0xba, 0x58, 0x2c, 0xa8, 0x10, 0x9c, 0xe4, 0xbe, 0x5c, 0xd0, 0x6b, 0xd5, 0xe5, 0x46,
- 0xdd, 0x28, 0x19, 0x5a, 0x71, 0x42, 0xbd, 0x06, 0x1c, 0x2d, 0x97, 0xaa, 0x24, 0x7b, 0xb9, 0x56,
- 0xad, 0x6a, 0x65, 0xa3, 0x38, 0x09, 0xff, 0x35, 0x07, 0xa6, 0x2b, 0xdd, 0xaa, 0xb9, 0x83, 0xce,
- 0x9b, 0x6d, 0xab, 0x05, 0x7f, 0x96, 0xd3, 0x26, 0x6f, 0x06, 0xb3, 0x2e, 0x7d, 0x44, 0x2d, 0xc3,
- 0x42, 0x14, 0xcd, 0x59, 0x5d, 0x4c, 0x54, 0x4f, 0x82, 0x82, 0x4d, 0x0a, 0x60, 0xac, 0x61, 0x6f,
- 0xea, 0x02, 0x00, 0xf4, 0xc9, 0x08, 0x6f, 0xc1, 0x3b, 0xdb, 0xdb, 0x9b, 0xcc, 0x1d, 0xd4, 0x45,
- 0xee, 0x9e, 0xd5, 0x44, 0x7e, 0x4e, 0x9d, 0xfb, 0x0b, 0x7e, 0x45, 0x91, 0x35, 0x0a, 0x72, 0xa0,
- 0x72, 0xcd, 0x89, 0x18, 0x0d, 0x7f, 0x46, 0x91, 0x31, 0xe9, 0x49, 0x15, 0x99, 0x4c, 0x52, 0x5e,
- 0x9a, 0x1d, 0x42, 0x52, 0x66, 0xc1, 0x94, 0x51, 0xab, 0x35, 0xea, 0x2b, 0x35, 0xdd, 0x28, 0x2a,
- 0xea, 0x0c, 0x98, 0xc4, 0xaf, 0xab, 0xb5, 0xea, 0x72, 0x31, 0xa7, 0x9e, 0x00, 0xc7, 0x56, 0x4a,
- 0xf5, 0x46, 0xa5, 0x7a, 0xbe, 0xb4, 0x5a, 0x59, 0x6c, 0x94, 0x57, 0x4a, 0x7a, 0xbd, 0x98, 0x57,
- 0xaf, 0x03, 0x27, 0x8c, 0x8a, 0xa6, 0x37, 0x96, 0xb4, 0x92, 0xb1, 0xa1, 0x6b, 0xf5, 0x46, 0xb5,
- 0xd6, 0xa8, 0x96, 0xd6, 0xb4, 0x62, 0x01, 0x77, 0x7f, 0xf2, 0x29, 0x14, 0x9b, 0x89, 0xfd, 0xc2,
- 0x38, 0x19, 0x21, 0x8c, 0x53, 0xbd, 0xc2, 0x08, 0x78, 0xb1, 0xd2, 0xb5, 0xba, 0xa6, 0x9f, 0xd7,
- 0x8a, 0xd3, 0xfd, 0x64, 0x6d, 0x46, 0x3d, 0x0e, 0x8a, 0x98, 0x86, 0x46, 0xa5, 0xee, 0xe7, 0x5c,
- 0x2c, 0xce, 0xc2, 0x8f, 0x15, 0xc0, 0x49, 0x1d, 0x6d, 0x59, 0x5d, 0x0f, 0xb9, 0xeb, 0xe6, 0xd5,
- 0x1d, 0x64, 0x7b, 0xfe, 0x20, 0xff, 0xbf, 0x13, 0x0b, 0xe3, 0x1a, 0x98, 0xed, 0xd0, 0x32, 0xd6,
- 0x90, 0xb7, 0xed, 0xb4, 0xd8, 0x2c, 0xfc, 0xc4, 0xc8, 0x91, 0x63, 0x7e, 0x9d, 0xcf, 0xae, 0x8b,
- 0x7f, 0x73, 0xb2, 0xad, 0xc4, 0xc8, 0x76, 0x6e, 0x18, 0xd9, 0x56, 0x6f, 0x00, 0x53, 0xbb, 0x5d,
- 0xe4, 0x6a, 0x3b, 0xa6, 0xd5, 0xf6, 0x6f, 0x31, 0x0b, 0x12, 0xe0, 0x3b, 0x72, 0xb2, 0x6e, 0xa6,
- 0x5c, 0x5b, 0xfa, 0xb3, 0x31, 0x62, 0x6c, 0x3d, 0x0d, 0x00, 0x6b, 0xec, 0x86, 0xdb, 0x66, 0xc2,
- 0xca, 0xa5, 0x60, 0xfa, 0x2e, 0x5a, 0xed, 0xb6, 0x65, 0x6f, 0x05, 0xc6, 0xfa, 0x30, 0x01, 0xbe,
- 0x54, 0x91, 0x71, 0x3b, 0x4d, 0x4a, 0x5b, 0xb2, 0xde, 0xf4, 0xe2, 0xec, 0x98, 0xc7, 0xdd, 0xfd,
- 0x5d, 0xa7, 0xa0, 0x16, 0xc1, 0x0c, 0x49, 0x63, 0x3d, 0xb0, 0x38, 0x81, 0xc7, 0x60, 0xbf, 0xb8,
- 0x35, 0xcd, 0x58, 0xa9, 0x2d, 0x06, 0xdf, 0x26, 0x71, 0x91, 0x98, 0x98, 0x52, 0xf5, 0x41, 0xd2,
- 0x1b, 0xa7, 0xd4, 0xc7, 0x81, 0xeb, 0xb8, 0x01, 0xbb, 0xb4, 0xaa, 0x6b, 0xa5, 0xc5, 0x07, 0x1b,
- 0xda, 0xf3, 0x2a, 0x75, 0xa3, 0x2e, 0x76, 0x2e, 0xbf, 0x1f, 0x4d, 0x63, 0x7a, 0xb5, 0xb5, 0x52,
- 0x65, 0x95, 0x8d, 0xef, 0x4b, 0x35, 0x7d, 0xad, 0x64, 0x14, 0x67, 0xe0, 0xab, 0x14, 0x50, 0x5c,
- 0x46, 0xde, 0xba, 0xe3, 0x7a, 0x66, 0x7b, 0xd5, 0xb2, 0x2f, 0x6d, 0xb8, 0x6d, 0x5e, 0x67, 0xfa,
- 0x17, 0xe9, 0xb3, 0xb5, 0xe2, 0x14, 0x29, 0x14, 0x18, 0x6d, 0xc6, 0xee, 0x90, 0x6c, 0xa1, 0x30,
- 0x85, 0x09, 0xf0, 0xc7, 0xb3, 0x32, 0x67, 0x69, 0xe5, 0x6b, 0x4d, 0x26, 0x27, 0x2f, 0x18, 0xf7,
- 0xfc, 0xdc, 0x07, 0xb5, 0x02, 0x7c, 0x38, 0x07, 0x26, 0x97, 0x2c, 0xdb, 0x6c, 0x5b, 0xcf, 0x17,
- 0x02, 0xc4, 0x85, 0x63, 0x4c, 0x26, 0x66, 0x8c, 0xc9, 0x0e, 0x35, 0x7f, 0xfe, 0xa2, 0x22, 0xbb,
- 0x61, 0xc1, 0xf1, 0xde, 0x27, 0x32, 0x62, 0xf2, 0xfc, 0xfd, 0xac, 0xcc, 0x96, 0xc4, 0xe0, 0xf2,
- 0x92, 0x61, 0xf8, 0x89, 0xef, 0x0f, 0x1d, 0xab, 0xa7, 0x7f, 0x4f, 0xf6, 0x13, 0x85, 0x29, 0xf8,
- 0x67, 0x0a, 0x80, 0xcb, 0xc8, 0x3b, 0x8f, 0xdc, 0x60, 0x29, 0x40, 0x46, 0x7d, 0xa6, 0x6f, 0x73,
- 0x5d, 0xf6, 0x2d, 0x3c, 0x80, 0x17, 0x44, 0x00, 0x4b, 0x31, 0x9d, 0x27, 0xa2, 0xe8, 0x88, 0xce,
- 0x5b, 0x01, 0x85, 0x2e, 0xf9, 0xce, 0xc4, 0xec, 0xa9, 0xd1, 0xd3, 0x25, 0x29, 0x8c, 0x2f, 0x9d,
- 0x16, 0xac, 0xb3, 0x02, 0xe0, 0x77, 0x82, 0x45, 0xd0, 0x0f, 0x09, 0xd2, 0xb1, 0x74, 0x60, 0x62,
- 0x93, 0xc9, 0x8b, 0x9b, 0xae, 0xb8, 0xf4, 0xd3, 0x6f, 0xe0, 0x17, 0x72, 0xe0, 0x78, 0xbf, 0xe6,
- 0xf0, 0xf7, 0xc8, 0x1d, 0x07, 0x79, 0x44, 0x66, 0x7c, 0xda, 0xd9, 0xe9, 0x8b, 0xfa, 0x34, 0x70,
- 0x82, 0x6d, 0x98, 0x5e, 0x44, 0x86, 0x53, 0x45, 0x97, 0xbb, 0x6d, 0xe4, 0x79, 0xc8, 0x25, 0x2d,
- 0x9b, 0xd4, 0xfb, 0x7f, 0x84, 0x7f, 0xa7, 0xc8, 0xba, 0xa6, 0x0f, 0xe0, 0x77, 0x44, 0x4f, 0xff,
- 0x69, 0x45, 0xc6, 0xd9, 0x3c, 0x59, 0xd9, 0xc9, 0x50, 0x7c, 0xd1, 0xb8, 0x67, 0xf8, 0xfe, 0x53,
- 0x2b, 0xe9, 0xf3, 0x34, 0xdd, 0x9f, 0xa1, 0xcf, 0x6b, 0x7a, 0x65, 0xa9, 0xa2, 0xe1, 0xf9, 0xfe,
- 0x04, 0x38, 0x16, 0x7e, 0x5b, 0x7c, 0xb0, 0x51, 0xd7, 0xaa, 0x46, 0x71, 0x12, 0x0f, 0x20, 0x34,
- 0x79, 0xa9, 0x54, 0x59, 0xd5, 0x16, 0x1b, 0x46, 0x0d, 0x7f, 0x59, 0x1c, 0x6e, 0xce, 0x87, 0x2f,
- 0xcc, 0x81, 0xa3, 0x84, 0xb7, 0x57, 0x09, 0x57, 0x31, 0x53, 0x7a, 0x3c, 0x57, 0x02, 0x80, 0xa6,
- 0x28, 0x7b, 0xe1, 0x67, 0xa4, 0xef, 0x08, 0xe3, 0x20, 0xec, 0xa9, 0x23, 0x42, 0x32, 0xbe, 0x9d,
- 0x95, 0x39, 0xef, 0x29, 0x5d, 0x6c, 0x32, 0xa1, 0xf8, 0xe7, 0x71, 0x4f, 0x05, 0xd1, 0xe0, 0x13,
- 0xf5, 0xaf, 0x4c, 0x7e, 0x7e, 0xde, 0x7a, 0x45, 0x27, 0xe2, 0x30, 0x07, 0x00, 0x49, 0x21, 0x12,
- 0x44, 0xe5, 0xa0, 0xef, 0x44, 0x12, 0x25, 0x07, 0xa5, 0xb2, 0x51, 0x39, 0xaf, 0x45, 0xc9, 0xc1,
- 0xa7, 0x15, 0x30, 0xb9, 0x8c, 0x3c, 0xbc, 0xd8, 0xe9, 0xc2, 0x67, 0x49, 0x18, 0x66, 0xb0, 0x7e,
- 0x41, 0x2e, 0x47, 0x0e, 0xd6, 0xe7, 0xf4, 0x0d, 0xfe, 0xd4, 0x30, 0xba, 0x81, 0x5f, 0x75, 0xc4,
- 0x44, 0xf2, 0x0c, 0x90, 0xf7, 0xf0, 0x67, 0x66, 0x1f, 0x7e, 0x7c, 0xe4, 0x3c, 0x82, 0x0b, 0x59,
- 0x34, 0x3d, 0x53, 0xa7, 0xf9, 0xb9, 0x69, 0x43, 0x52, 0xa9, 0x88, 0x20, 0xe4, 0xfb, 0x51, 0x31,
- 0xfc, 0x5b, 0x05, 0x9c, 0xa0, 0xfd, 0xa3, 0xd4, 0xe9, 0xd4, 0x3d, 0xc7, 0x45, 0x3a, 0x6a, 0x22,
- 0xab, 0xe3, 0xf5, 0x18, 0xde, 0x5c, 0x9a, 0xea, 0xef, 0xec, 0xb1, 0x57, 0xf8, 0x26, 0x45, 0x36,
- 0xa2, 0xe1, 0xbe, 0xfe, 0xd8, 0x53, 0x5f, 0x44, 0x67, 0x7f, 0x34, 0x2b, 0x13, 0xa3, 0x30, 0x61,
- 0xe1, 0xc9, 0x80, 0xfa, 0xf0, 0x21, 0x00, 0xe5, 0x9b, 0x54, 0x74, 0xad, 0xac, 0x55, 0xd6, 0xf1,
- 0x24, 0x70, 0x23, 0xb8, 0x7e, 0x7d, 0x43, 0x2f, 0xaf, 0x94, 0xea, 0x5a, 0x43, 0xd7, 0x96, 0x2b,
- 0x75, 0x43, 0x2f, 0x19, 0x95, 0x9a, 0x4f, 0xc0, 0x84, 0x7a, 0x03, 0x38, 0x55, 0xdf, 0x58, 0xa8,
- 0x97, 0xf5, 0xca, 0x3a, 0x49, 0xd7, 0xb5, 0xaa, 0x76, 0x81, 0x7d, 0x9d, 0x84, 0x1f, 0x2c, 0x82,
- 0x69, 0xac, 0x99, 0xd7, 0xa9, 0xc2, 0x0e, 0xbf, 0x99, 0x03, 0xd3, 0x3a, 0xea, 0x3a, 0xed, 0x3d,
- 0xa2, 0xbc, 0x8f, 0x6b, 0x4d, 0xf0, 0x2d, 0x45, 0xf6, 0x34, 0x14, 0x47, 0xec, 0x3c, 0x47, 0x68,
- 0xf4, 0x0a, 0xd0, 0xf4, 0xa3, 0x03, 0x33, 0xbd, 0x25, 0x4c, 0x50, 0xe7, 0x81, 0xea, 0x5c, 0xb6,
- 0x91, 0x5b, 0x6f, 0x5e, 0xd6, 0xbc, 0xed, 0x52, 0xab, 0xe5, 0xa2, 0x6e, 0x97, 0x99, 0x15, 0xfa,
- 0x7c, 0x51, 0x6f, 0x05, 0x47, 0x49, 0x2a, 0x97, 0x99, 0x1e, 0xdd, 0xec, 0x4d, 0x0e, 0x72, 0x96,
- 0xec, 0xab, 0x7e, 0xce, 0x3c, 0x97, 0x33, 0x4c, 0xe6, 0x9d, 0x0f, 0x0b, 0xa2, 0xcf, 0xeb, 0x19,
- 0x30, 0x6d, 0x9b, 0x3b, 0x48, 0xbb, 0xd2, 0xb1, 0x5c, 0xd4, 0x3d, 0x35, 0x41, 0x76, 0xd3, 0xf8,
- 0x24, 0xf8, 0xfb, 0x52, 0xa7, 0xb7, 0xe4, 0x38, 0x96, 0x4c, 0xf6, 0x97, 0x87, 0x10, 0xfd, 0x3e,
- 0xe3, 0x8c, 0x02, 0x3f, 0xa8, 0x80, 0x19, 0x46, 0x54, 0xc9, 0xbe, 0x5a, 0x69, 0xc1, 0x1b, 0x05,
- 0xb5, 0xd4, 0xc4, 0x69, 0xbe, 0x5a, 0x4a, 0x5e, 0xe0, 0xcf, 0x29, 0xb2, 0xee, 0x44, 0x7d, 0x1a,
- 0x4e, 0xea, 0x88, 0x76, 0x71, 0xd9, 0x74, 0x76, 0x99, 0x4b, 0xcd, 0xa4, 0x4e, 0x5f, 0xd2, 0xb4,
- 0xb6, 0xc1, 0x0f, 0x49, 0x39, 0x2b, 0x49, 0x36, 0xe3, 0x90, 0x00, 0xfc, 0xb8, 0x02, 0xe6, 0x18,
- 0x55, 0x75, 0xe6, 0x35, 0x2b, 0xe5, 0x3e, 0xfe, 0xf3, 0xd2, 0x8a, 0x60, 0x9f, 0xf6, 0xb3, 0x9a,
- 0x1e, 0x33, 0x40, 0x7e, 0x44, 0x2a, 0xd4, 0x88, 0x74, 0x43, 0x0e, 0x09, 0xca, 0x77, 0xe6, 0xc0,
- 0xf4, 0x46, 0x17, 0xb9, 0xcc, 0x2f, 0x0e, 0xbe, 0x3e, 0x07, 0x94, 0x65, 0x24, 0xec, 0x70, 0xbe,
- 0x24, 0x27, 0x6b, 0xad, 0xe3, 0x1b, 0xcb, 0x15, 0x8a, 0x75, 0xa4, 0x08, 0xd8, 0x6e, 0x01, 0x73,
- 0x94, 0xa5, 0x25, 0xcf, 0xc3, 0x4a, 0xa2, 0x7f, 0x08, 0xa0, 0x27, 0x75, 0x14, 0x7b, 0x38, 0xa4,
- 0x2e, 0x9c, 0xa5, 0x8c, 0x69, 0x5a, 0x45, 0x9b, 0x34, 0x10, 0x55, 0x4e, 0xef, 0x49, 0x25, 0x17,
- 0x37, 0x77, 0x10, 0xf5, 0x06, 0xe5, 0x32, 0xe7, 0x49, 0xe6, 0x7e, 0x9f, 0xe0, 0x37, 0xa5, 0x22,
- 0xf4, 0xc9, 0x73, 0x27, 0x99, 0x2c, 0x74, 0x46, 0xa3, 0x92, 0x1c, 0x07, 0x45, 0x9c, 0x83, 0x6c,
- 0x8c, 0xe8, 0x5a, 0xbd, 0xb6, 0x7a, 0x5e, 0xeb, 0x6f, 0x5f, 0xc8, 0xc3, 0x17, 0x29, 0x60, 0x6a,
- 0xc1, 0x75, 0xcc, 0x56, 0xd3, 0xec, 0x7a, 0xf0, 0x3b, 0x59, 0x30, 0xb3, 0x6e, 0x5e, 0x6d, 0x3b,
- 0x66, 0x8b, 0x78, 0x22, 0xf6, 0x8c, 0x05, 0x1d, 0xfa, 0xc9, 0x1f, 0x0b, 0xd8, 0xab, 0xe8, 0x66,
- 0x1f, 0x38, 0xc2, 0x67, 0x64, 0xae, 0x12, 0x0b, 0xf6, 0xdf, 0xb2, 0xfd, 0x42, 0x7f, 0xf9, 0x74,
- 0xcd, 0xf3, 0x34, 0x45, 0x68, 0x94, 0x1f, 0x94, 0x0b, 0xe6, 0x25, 0x53, 0xe4, 0xe1, 0x6c, 0x97,
- 0x3f, 0x3c, 0x09, 0x0a, 0x8b, 0x88, 0x68, 0x71, 0xbf, 0x9d, 0x05, 0x13, 0xec, 0x32, 0x7d, 0x78,
- 0x97, 0xe0, 0xe4, 0xd8, 0x22, 0x19, 0x82, 0xe1, 0x38, 0x78, 0xc7, 0x8b, 0x75, 0xee, 0xf4, 0x12,
- 0x79, 0x4e, 0xe0, 0xfe, 0x45, 0xeb, 0x8d, 0xb8, 0xc0, 0x3f, 0x99, 0xfb, 0x57, 0x6c, 0x51, 0xe9,
- 0x3b, 0x41, 0xbd, 0x3b, 0xcb, 0x7c, 0x9e, 0xb8, 0x51, 0xef, 0x57, 0x79, 0xf9, 0x8c, 0x75, 0x03,
- 0x63, 0xc4, 0xc7, 0x78, 0x2d, 0xdd, 0x09, 0x26, 0x28, 0xcf, 0xfd, 0xf5, 0x68, 0xaf, 0x03, 0x01,
- 0x2d, 0x82, 0x9c, 0x64, 0xf2, 0x73, 0x4a, 0xfa, 0x8e, 0x45, 0x57, 0x3e, 0x96, 0x13, 0x7d, 0x33,
- 0x55, 0xe4, 0x5d, 0x76, 0xdc, 0x4b, 0x75, 0xcf, 0xf4, 0x10, 0xfc, 0xe7, 0x2c, 0x50, 0xea, 0xc8,
- 0xe3, 0xcf, 0x12, 0x57, 0xc1, 0x31, 0xda, 0x20, 0x96, 0x91, 0x8c, 0xdf, 0xb4, 0x21, 0x67, 0xfa,
- 0x32, 0x81, 0xcb, 0xa7, 0xef, 0xff, 0x15, 0xfe, 0x52, 0xdf, 0x10, 0x0a, 0xd9, 0x3e, 0x8b, 0x06,
- 0xc6, 0x19, 0x9e, 0x40, 0x2c, 0x60, 0x11, 0x72, 0xfa, 0x7b, 0x52, 0x6a, 0xb5, 0x5c, 0x99, 0x87,
- 0x32, 0x14, 0x9c, 0x9d, 0x00, 0x79, 0x6d, 0xa7, 0xe3, 0x5d, 0x3d, 0xfb, 0x04, 0x30, 0x5b, 0xf7,
- 0x5c, 0x64, 0xee, 0x70, 0x3a, 0xb5, 0xe7, 0x5c, 0x42, 0xb6, 0xaf, 0x53, 0x93, 0x97, 0xbb, 0xef,
- 0x02, 0x13, 0xb6, 0xd3, 0x30, 0x77, 0xbd, 0x6d, 0xf5, 0xc6, 0x7d, 0x97, 0xde, 0xaf, 0x51, 0x6f,
- 0xdd, 0x1a, 0x3b, 0x4b, 0xf3, 0x95, 0x7b, 0x88, 0x56, 0x55, 0xb0, 0x9d, 0xd2, 0xae, 0xb7, 0xbd,
- 0x70, 0xc3, 0xc7, 0xff, 0xe6, 0x74, 0xe6, 0xd3, 0x7f, 0x73, 0x3a, 0xf3, 0xe5, 0xbf, 0x39, 0x9d,
- 0xf9, 0xf9, 0xaf, 0x9e, 0x3e, 0xf2, 0xe9, 0xaf, 0x9e, 0x3e, 0xf2, 0xf9, 0xaf, 0x9e, 0x3e, 0xf2,
- 0x43, 0xd9, 0xce, 0xc5, 0x8b, 0x05, 0x52, 0xca, 0x9d, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x74, 0xca, 0x11, 0x38, 0x6d, 0xdf, 0x01, 0x00,
+ // 18541 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x24, 0x47,
+ 0x75, 0x27, 0x3a, 0x55, 0x59, 0x55, 0xdd, 0x1d, 0xfd, 0x98, 0x9a, 0xd4, 0xcc, 0x68, 0x14, 0x12,
+ 0xa3, 0x61, 0x24, 0x84, 0x2c, 0x44, 0x0b, 0x24, 0x5e, 0x12, 0x12, 0x52, 0x75, 0x75, 0x76, 0x77,
+ 0xa1, 0xee, 0xaa, 0x26, 0x2b, 0x7b, 0x06, 0xd9, 0xd7, 0xb7, 0x36, 0xa7, 0x2a, 0xba, 0x3b, 0x35,
+ 0xd5, 0x99, 0xe5, 0xac, 0xec, 0x9e, 0x19, 0xee, 0xb7, 0x77, 0x6d, 0x63, 0x40, 0xd8, 0x66, 0x31,
+ 0xc6, 0xac, 0x0d, 0x18, 0x30, 0x4f, 0x1b, 0x6c, 0xc0, 0xbc, 0x0d, 0xb6, 0xb1, 0xcd, 0xdb, 0x18,
+ 0x63, 0x0c, 0xc6, 0x3c, 0x6c, 0x3e, 0x83, 0xc1, 0x2c, 0xde, 0xbb, 0x2c, 0xd7, 0xfe, 0x16, 0x58,
+ 0x6c, 0xb8, 0xdc, 0x2f, 0x1e, 0x99, 0x19, 0x51, 0x5d, 0x99, 0x15, 0x59, 0x5d, 0x59, 0x2d, 0xec,
+ 0xfd, 0x2f, 0x33, 0x32, 0x32, 0xe2, 0xc4, 0xf9, 0x9d, 0x13, 0x71, 0x22, 0xe2, 0xc4, 0x09, 0x70,
+ 0xaa, 0x73, 0xe1, 0xb6, 0x8e, 0xeb, 0x78, 0x4e, 0xf7, 0xb6, 0xa6, 0xb3, 0xb3, 0x63, 0xda, 0xad,
+ 0xee, 0x3c, 0x79, 0x57, 0x27, 0x4c, 0xfb, 0x8a, 0x77, 0xa5, 0x83, 0xe0, 0x8d, 0x9d, 0x8b, 0x5b,
+ 0xb7, 0xb5, 0xad, 0x0b, 0xb7, 0x75, 0x2e, 0xdc, 0xb6, 0xe3, 0xb4, 0x50, 0xdb, 0xff, 0x81, 0xbc,
+ 0xb0, 0xec, 0xf0, 0xe6, 0xa8, 0x5c, 0x6d, 0xa7, 0x69, 0xb6, 0xbb, 0x9e, 0xe3, 0x22, 0x96, 0xf3,
+ 0x64, 0x58, 0x25, 0xda, 0x43, 0xb6, 0xe7, 0x97, 0x70, 0xdd, 0x96, 0xe3, 0x6c, 0xb5, 0x11, 0xfd,
+ 0x76, 0x61, 0x77, 0xf3, 0xb6, 0xae, 0xe7, 0xee, 0x36, 0x3d, 0xf6, 0xf5, 0x4c, 0xef, 0xd7, 0x16,
+ 0xea, 0x36, 0x5d, 0xab, 0xe3, 0x39, 0x2e, 0xcd, 0x71, 0xf6, 0x87, 0x9f, 0x9b, 0x00, 0x8a, 0xde,
+ 0x69, 0xc2, 0xef, 0x4c, 0x00, 0xa5, 0xd4, 0xe9, 0xc0, 0x0f, 0x67, 0x01, 0x58, 0x46, 0xde, 0x39,
+ 0xe4, 0x76, 0x2d, 0xc7, 0x86, 0x47, 0xc1, 0x84, 0x8e, 0x7e, 0x6a, 0x17, 0x75, 0xbd, 0xbb, 0x72,
+ 0x0f, 0x7d, 0x5d, 0xc9, 0xc0, 0xd7, 0x67, 0xc1, 0xa4, 0x8e, 0xba, 0x1d, 0xc7, 0xee, 0x22, 0xf5,
+ 0x3e, 0x90, 0x47, 0xae, 0xeb, 0xb8, 0xa7, 0x32, 0x67, 0x32, 0x37, 0x4f, 0xdf, 0x7e, 0xcb, 0x3c,
+ 0x6b, 0xfe, 0xbc, 0xde, 0x69, 0xce, 0x97, 0x3a, 0x9d, 0xf9, 0xb0, 0xa4, 0x79, 0xff, 0xa7, 0x79,
+ 0x0d, 0xff, 0xa1, 0xd3, 0x1f, 0xd5, 0x53, 0x60, 0x62, 0x8f, 0x66, 0x38, 0x95, 0x3d, 0x93, 0xb9,
+ 0x79, 0x4a, 0xf7, 0x5f, 0xf1, 0x97, 0x16, 0xf2, 0x4c, 0xab, 0xdd, 0x3d, 0xa5, 0xd0, 0x2f, 0xec,
+ 0x15, 0xbe, 0x26, 0x03, 0xf2, 0xa4, 0x10, 0xb5, 0x0c, 0x72, 0x4d, 0xa7, 0x85, 0x48, 0xf5, 0x73,
+ 0xb7, 0xdf, 0x26, 0x5f, 0xfd, 0x7c, 0xd9, 0x69, 0x21, 0x9d, 0xfc, 0xac, 0x9e, 0x01, 0xd3, 0x3e,
+ 0x5b, 0x42, 0x32, 0xf8, 0xa4, 0xb3, 0xb7, 0x83, 0x1c, 0xce, 0xaf, 0x4e, 0x82, 0x5c, 0x75, 0x63,
+ 0x75, 0xb5, 0x78, 0x44, 0x3d, 0x06, 0x66, 0x37, 0xaa, 0xf7, 0x57, 0x6b, 0xe7, 0xab, 0x0d, 0x4d,
+ 0xd7, 0x6b, 0x7a, 0x31, 0xa3, 0xce, 0x82, 0xa9, 0x85, 0xd2, 0x62, 0xa3, 0x52, 0x5d, 0xdf, 0x30,
+ 0x8a, 0x59, 0xf8, 0x4a, 0x05, 0xcc, 0xd5, 0x91, 0xb7, 0x88, 0xf6, 0xac, 0x26, 0xaa, 0x7b, 0xa6,
+ 0x87, 0xe0, 0x0b, 0x33, 0x01, 0x33, 0xd5, 0x0d, 0x5c, 0x69, 0xf0, 0x89, 0x35, 0xe0, 0x8e, 0x7d,
+ 0x0d, 0x10, 0x4b, 0x98, 0x67, 0x7f, 0xcf, 0x73, 0x69, 0x3a, 0x5f, 0xce, 0xd9, 0xc7, 0x82, 0x69,
+ 0xee, 0x9b, 0x3a, 0x07, 0xc0, 0x42, 0xa9, 0x7c, 0xff, 0xb2, 0x5e, 0xdb, 0xa8, 0x2e, 0x16, 0x8f,
+ 0xe0, 0xf7, 0xa5, 0x9a, 0xae, 0xb1, 0xf7, 0x0c, 0xfc, 0x5e, 0x86, 0x03, 0x73, 0x51, 0x04, 0x73,
+ 0x7e, 0x30, 0x31, 0x7d, 0x00, 0x85, 0x6f, 0x08, 0xc0, 0x59, 0x16, 0xc0, 0xb9, 0x23, 0x59, 0x71,
+ 0xe9, 0x03, 0xf4, 0x9c, 0x2c, 0x98, 0xac, 0x6f, 0xef, 0x7a, 0x2d, 0xe7, 0x92, 0x0d, 0xa7, 0x02,
+ 0x64, 0xe0, 0x37, 0x79, 0x9e, 0x3c, 0x4d, 0xe4, 0xc9, 0xcd, 0xfb, 0x1b, 0xc1, 0x4a, 0x88, 0xe0,
+ 0xc6, 0x6f, 0x04, 0xdc, 0x28, 0x09, 0xdc, 0x78, 0xac, 0x6c, 0x41, 0xe9, 0xf3, 0xe1, 0x97, 0xee,
+ 0x00, 0xf9, 0x7a, 0xc7, 0x6c, 0x22, 0xf8, 0x09, 0x05, 0xcc, 0xac, 0x22, 0x73, 0x0f, 0x95, 0x3a,
+ 0x1d, 0xd7, 0xd9, 0x43, 0xb0, 0x1c, 0xca, 0xeb, 0x29, 0x30, 0xd1, 0xc5, 0x99, 0x2a, 0x2d, 0xd2,
+ 0x82, 0x29, 0xdd, 0x7f, 0x55, 0x4f, 0x03, 0x60, 0xb5, 0x90, 0xed, 0x59, 0x9e, 0x85, 0xba, 0xa7,
+ 0xb2, 0x67, 0x94, 0x9b, 0xa7, 0x74, 0x2e, 0x05, 0x7e, 0x27, 0x2b, 0x2b, 0x63, 0x84, 0x8a, 0x79,
+ 0x9e, 0x82, 0x08, 0xae, 0xbe, 0x36, 0x2b, 0x23, 0x63, 0x03, 0x8b, 0x4b, 0xc6, 0xdb, 0xb7, 0x64,
+ 0x92, 0x33, 0x17, 0xe7, 0xa8, 0xd6, 0x1a, 0xf5, 0x8d, 0xf2, 0x4a, 0xa3, 0xbe, 0x5e, 0x2a, 0x6b,
+ 0x45, 0xa4, 0x1e, 0x07, 0x45, 0xf2, 0xd8, 0xa8, 0xd4, 0x1b, 0x8b, 0xda, 0xaa, 0x66, 0x68, 0x8b,
+ 0xc5, 0x4d, 0x55, 0x05, 0x73, 0xba, 0xf6, 0x8c, 0x0d, 0xad, 0x6e, 0x34, 0x96, 0x4a, 0x95, 0x55,
+ 0x6d, 0xb1, 0xb8, 0x85, 0x7f, 0x5e, 0xad, 0xac, 0x55, 0x8c, 0x86, 0xae, 0x95, 0xca, 0x2b, 0xda,
+ 0x62, 0x71, 0x5b, 0xbd, 0x1a, 0x5c, 0x55, 0xad, 0x35, 0x4a, 0xeb, 0xeb, 0x7a, 0xed, 0x9c, 0xd6,
+ 0x60, 0x7f, 0xd4, 0x8b, 0x16, 0xad, 0xc8, 0x68, 0xd4, 0x57, 0x4a, 0xba, 0x56, 0x5a, 0x58, 0xd5,
+ 0x8a, 0x0f, 0xc2, 0x67, 0x2b, 0x60, 0x76, 0xcd, 0xbc, 0x88, 0xea, 0xdb, 0xa6, 0x8b, 0xcc, 0x0b,
+ 0x6d, 0x04, 0x6f, 0x90, 0xc0, 0x13, 0x7e, 0x82, 0xc7, 0x4b, 0x13, 0xf1, 0xba, 0xad, 0x0f, 0x83,
+ 0x85, 0x2a, 0x22, 0x00, 0xfb, 0x5f, 0x81, 0x1a, 0xac, 0x08, 0x80, 0x3d, 0x21, 0x61, 0x79, 0xc9,
+ 0x10, 0xfb, 0xd9, 0x87, 0x01, 0x62, 0xf0, 0x4b, 0x0a, 0x98, 0xab, 0xd8, 0x7b, 0x96, 0x87, 0x96,
+ 0x91, 0x8d, 0x5c, 0x3c, 0x0e, 0x48, 0xc1, 0xf0, 0x7a, 0x85, 0x83, 0x61, 0x49, 0x84, 0xe1, 0x71,
+ 0x7d, 0xd8, 0x26, 0xd6, 0x11, 0x31, 0xda, 0x5e, 0x07, 0xa6, 0x2c, 0x92, 0xaf, 0x6c, 0xb5, 0x18,
+ 0xc7, 0xc2, 0x04, 0xf5, 0x46, 0x30, 0x4b, 0x5f, 0x96, 0xac, 0x36, 0xba, 0x1f, 0x5d, 0x61, 0xe3,
+ 0xae, 0x98, 0x08, 0x7f, 0x31, 0x50, 0xbe, 0x8a, 0x80, 0xe5, 0x13, 0x93, 0x12, 0x95, 0x0c, 0xcc,
+ 0x97, 0x3c, 0x1c, 0xd4, 0x6f, 0x9f, 0x96, 0x59, 0xf0, 0x07, 0x59, 0x30, 0x5d, 0xf7, 0x9c, 0x0e,
+ 0x16, 0x59, 0xcb, 0xde, 0x92, 0x03, 0xf7, 0x63, 0xbc, 0x8e, 0x95, 0x45, 0x70, 0x1f, 0xdb, 0x87,
+ 0x8f, 0x5c, 0x05, 0x11, 0x1a, 0xf6, 0x9d, 0x40, 0xc3, 0x96, 0x04, 0x54, 0x6e, 0x4f, 0x54, 0xda,
+ 0x8f, 0xa0, 0x7e, 0xbd, 0x44, 0x01, 0x45, 0x5f, 0xcc, 0xbc, 0xf2, 0xae, 0xeb, 0x22, 0xdb, 0x93,
+ 0x03, 0xe1, 0x6f, 0x78, 0x10, 0x56, 0x44, 0x10, 0x6e, 0x8f, 0x11, 0x66, 0xbf, 0x96, 0x14, 0x75,
+ 0xec, 0x8f, 0x03, 0x34, 0xef, 0x17, 0xd0, 0x7c, 0x72, 0x72, 0xb2, 0x92, 0x41, 0xba, 0x32, 0x04,
+ 0xa2, 0xc7, 0x41, 0x11, 0x8f, 0x49, 0x65, 0xa3, 0x72, 0x4e, 0x6b, 0x54, 0xaa, 0xe7, 0x2a, 0x86,
+ 0x56, 0x44, 0xf0, 0xc5, 0x0a, 0x98, 0xa1, 0xa4, 0xe9, 0x68, 0xcf, 0xb9, 0x28, 0xd9, 0xeb, 0x7d,
+ 0x29, 0xa1, 0xb1, 0xc0, 0xd7, 0x10, 0xa1, 0x19, 0x3f, 0x9f, 0xc0, 0x58, 0x88, 0x29, 0xee, 0xe1,
+ 0xd4, 0x5b, 0xed, 0x53, 0x83, 0xad, 0x3e, 0xda, 0xd2, 0xb7, 0xb7, 0x7a, 0x49, 0x0e, 0x00, 0xda,
+ 0xc8, 0x73, 0x16, 0xba, 0x04, 0xd7, 0x42, 0x4c, 0x04, 0xb1, 0xcd, 0x0c, 0x14, 0xdb, 0x6c, 0x3f,
+ 0xb1, 0x7d, 0x0f, 0x3f, 0x66, 0x2d, 0x88, 0xe8, 0xdd, 0x1a, 0xc9, 0x6e, 0x4c, 0x49, 0xf4, 0xec,
+ 0xd0, 0x17, 0x94, 0xac, 0x68, 0x75, 0x5e, 0x07, 0xa6, 0xc8, 0x63, 0xd5, 0xdc, 0x41, 0x4c, 0x87,
+ 0xc2, 0x04, 0xf5, 0x2c, 0x98, 0xa1, 0x19, 0x9b, 0x8e, 0x8d, 0xdb, 0x93, 0x23, 0x19, 0x84, 0x34,
+ 0x0c, 0x62, 0xd3, 0x45, 0xa6, 0xe7, 0xb8, 0xa4, 0x8c, 0x3c, 0x05, 0x91, 0x4b, 0x82, 0xdf, 0x08,
+ 0xb4, 0x50, 0x13, 0x24, 0xe7, 0xf1, 0x49, 0x9a, 0x92, 0x4c, 0x6e, 0xf6, 0x86, 0xd3, 0x3f, 0xaa,
+ 0x75, 0x0d, 0x8c, 0xf6, 0x12, 0x99, 0xda, 0x21, 0xf5, 0x24, 0x50, 0x59, 0x2a, 0xce, 0x5b, 0xae,
+ 0x55, 0x0d, 0xad, 0x6a, 0x14, 0x37, 0xfb, 0x4a, 0xd4, 0x16, 0x7c, 0x6d, 0x0e, 0xe4, 0x9e, 0xee,
+ 0x58, 0x36, 0x7c, 0x4e, 0x46, 0x10, 0x09, 0x1b, 0x79, 0x97, 0x1c, 0xf7, 0x62, 0xa0, 0xa8, 0x61,
+ 0x42, 0x3c, 0x36, 0xa1, 0x28, 0x29, 0x03, 0x45, 0x29, 0xd7, 0x4f, 0x94, 0x7e, 0x99, 0x17, 0xa5,
+ 0xbb, 0x45, 0x51, 0xba, 0xa9, 0x0f, 0xff, 0x31, 0xf1, 0x11, 0x1d, 0xc0, 0x47, 0x83, 0x0e, 0xe0,
+ 0x5e, 0x01, 0xc6, 0xc7, 0xc8, 0x15, 0x93, 0x0c, 0xc0, 0x2f, 0xa6, 0xaa, 0xf8, 0xfd, 0xa0, 0xde,
+ 0x8a, 0x80, 0x7a, 0xbb, 0x4f, 0x9f, 0x60, 0xed, 0xef, 0x3a, 0x1e, 0xdc, 0xdf, 0x4d, 0x5c, 0x54,
+ 0x4f, 0x80, 0x63, 0x8b, 0x95, 0xa5, 0x25, 0x4d, 0xd7, 0xaa, 0x46, 0xa3, 0xaa, 0x19, 0xe7, 0x6b,
+ 0xfa, 0xfd, 0xc5, 0x36, 0x7c, 0x8d, 0x02, 0x00, 0xe6, 0x50, 0xd9, 0xb4, 0x9b, 0xa8, 0x2d, 0xd7,
+ 0xa3, 0xff, 0x8f, 0x6c, 0xb2, 0x3e, 0x21, 0x2c, 0x3f, 0x02, 0xce, 0x57, 0x64, 0xe5, 0xb5, 0x32,
+ 0xb2, 0xb0, 0x64, 0xa0, 0xbe, 0xe9, 0xe1, 0x60, 0x7b, 0x5e, 0x05, 0x8e, 0xfa, 0xe5, 0xb1, 0xec,
+ 0xfd, 0xa7, 0x7d, 0x6f, 0xcd, 0x81, 0x39, 0x06, 0x8b, 0x3f, 0x8f, 0x7f, 0x28, 0x23, 0x33, 0x91,
+ 0x87, 0x60, 0x92, 0x4d, 0xdb, 0xfd, 0xee, 0x3d, 0x78, 0x57, 0x97, 0xc1, 0x74, 0x07, 0xb9, 0x3b,
+ 0x56, 0xb7, 0x6b, 0x39, 0x36, 0x5d, 0x90, 0x9b, 0xbb, 0xfd, 0x51, 0x01, 0xc7, 0xc9, 0xda, 0xe5,
+ 0xfc, 0xba, 0xe9, 0x7a, 0x56, 0xd3, 0xea, 0x98, 0xb6, 0xb7, 0x1e, 0x66, 0xd6, 0xf9, 0x3f, 0xe1,
+ 0x8b, 0x12, 0x4e, 0x6b, 0xc4, 0x96, 0x44, 0x88, 0xc4, 0x1f, 0x24, 0x98, 0x92, 0xc4, 0x16, 0x98,
+ 0x4c, 0x2c, 0x3e, 0x9c, 0xaa, 0x58, 0xf4, 0xc1, 0x7b, 0x4b, 0xbd, 0x06, 0x9c, 0xa8, 0x54, 0xcb,
+ 0x35, 0x5d, 0xd7, 0xca, 0x46, 0x63, 0x5d, 0xd3, 0xd7, 0x2a, 0xf5, 0x7a, 0xa5, 0x56, 0xad, 0x1f,
+ 0x44, 0xdb, 0xe1, 0xc7, 0x95, 0x40, 0x62, 0x16, 0x51, 0xb3, 0x6d, 0xd9, 0x08, 0xde, 0x7b, 0x40,
+ 0x81, 0x11, 0x57, 0x7d, 0xe4, 0x71, 0x66, 0xf5, 0x47, 0xe0, 0xfc, 0xea, 0xe4, 0x38, 0xf7, 0x2f,
+ 0xf0, 0xdf, 0xb0, 0xfa, 0x7f, 0x49, 0x01, 0xc7, 0x38, 0x45, 0xd4, 0xd1, 0xce, 0xc8, 0x56, 0xf2,
+ 0x7e, 0x96, 0xd7, 0xdd, 0x8a, 0x88, 0x69, 0x3f, 0x6b, 0x7a, 0x1f, 0x19, 0x11, 0xb0, 0xbe, 0x29,
+ 0x80, 0x75, 0x55, 0x80, 0xf5, 0x29, 0x43, 0x94, 0x99, 0x0c, 0xd9, 0xdf, 0x4d, 0x15, 0xd9, 0x6b,
+ 0xc0, 0x89, 0xf5, 0x92, 0x6e, 0x54, 0xca, 0x95, 0xf5, 0x12, 0x1e, 0x47, 0xb9, 0x21, 0x3b, 0xc2,
+ 0x5c, 0x17, 0x41, 0xef, 0x8b, 0xef, 0x1f, 0xe5, 0xc0, 0x75, 0xfd, 0x3b, 0xda, 0xf2, 0xb6, 0x69,
+ 0x6f, 0x21, 0x68, 0xc9, 0x40, 0xbd, 0x08, 0x26, 0x9a, 0x24, 0x3b, 0xc5, 0x99, 0xdf, 0xba, 0x89,
+ 0xe9, 0xcb, 0x69, 0x0d, 0xba, 0xff, 0x2b, 0x7c, 0x07, 0x2f, 0x10, 0x86, 0x28, 0x10, 0x4f, 0x8b,
+ 0x07, 0x6f, 0x1f, 0xdd, 0x11, 0xb2, 0xf1, 0xa9, 0x40, 0x36, 0xce, 0x0b, 0xb2, 0x51, 0x3e, 0x58,
+ 0xf1, 0xc9, 0xc4, 0xe4, 0xcf, 0x1e, 0x0e, 0x1d, 0x40, 0xa4, 0x34, 0x59, 0xd1, 0xa3, 0x42, 0xdf,
+ 0xee, 0xfe, 0x55, 0x0a, 0x28, 0x2c, 0xa2, 0x36, 0x92, 0x5d, 0x89, 0xfc, 0x56, 0x56, 0x76, 0x43,
+ 0x84, 0xc2, 0x40, 0xcb, 0x8e, 0x5e, 0x1d, 0xf1, 0xac, 0x1d, 0xd4, 0xf5, 0xcc, 0x9d, 0x0e, 0x61,
+ 0xb5, 0xa2, 0x87, 0x09, 0xf0, 0xe7, 0xb2, 0x32, 0xdb, 0x25, 0x31, 0xd5, 0xfc, 0xdb, 0x58, 0x53,
+ 0xfc, 0xea, 0x1c, 0x28, 0x9c, 0x37, 0xdb, 0x6d, 0xe4, 0xc1, 0xaf, 0x65, 0x41, 0xa1, 0x8c, 0xe7,
+ 0xa4, 0x08, 0x3e, 0x26, 0x04, 0x0b, 0x82, 0x49, 0xd7, 0x71, 0xbc, 0x75, 0xd3, 0xdb, 0x66, 0x68,
+ 0x05, 0xef, 0x6c, 0x9b, 0xf6, 0x77, 0x78, 0xd0, 0xee, 0x15, 0x41, 0xfb, 0x31, 0x81, 0x9b, 0xb4,
+ 0xa2, 0x79, 0x5a, 0x49, 0x04, 0x6a, 0x10, 0x4c, 0xee, 0xd8, 0x68, 0xc7, 0xb1, 0xad, 0xa6, 0x3f,
+ 0xd2, 0xfb, 0xef, 0xf0, 0x03, 0xc1, 0x2c, 0x79, 0x41, 0xc0, 0x6c, 0x5e, 0xba, 0x96, 0x64, 0xa0,
+ 0xd5, 0x87, 0xc0, 0xec, 0x7a, 0x70, 0x2d, 0x85, 0xa0, 0x61, 0xd4, 0x1a, 0x65, 0x5d, 0x2b, 0x19,
+ 0x5a, 0x63, 0xb5, 0x56, 0x2e, 0xad, 0x36, 0x74, 0x6d, 0xbd, 0x56, 0x44, 0xf0, 0xbf, 0x66, 0x31,
+ 0x73, 0x9b, 0xce, 0x1e, 0x72, 0xe1, 0xb2, 0x14, 0x9f, 0xe3, 0x78, 0xc2, 0x30, 0xf8, 0x65, 0xe9,
+ 0xad, 0x72, 0xc6, 0x1d, 0x46, 0x41, 0x44, 0x57, 0xf8, 0x41, 0xa9, 0x6d, 0xef, 0xd8, 0xa2, 0x1e,
+ 0x06, 0x9c, 0xfe, 0x9f, 0x59, 0x30, 0x51, 0x76, 0xec, 0x3d, 0xe4, 0x7a, 0xbc, 0x95, 0xc9, 0x73,
+ 0x33, 0x23, 0x72, 0x13, 0x77, 0x4d, 0xc8, 0xf6, 0x5c, 0xa7, 0xe3, 0x9b, 0x99, 0xfe, 0x2b, 0xfc,
+ 0xcd, 0xa4, 0x1c, 0x66, 0x35, 0x47, 0x2f, 0x37, 0xf5, 0xaf, 0x48, 0x20, 0x4f, 0xe9, 0x51, 0x80,
+ 0xd7, 0x24, 0xc1, 0xa5, 0x3f, 0x01, 0xe9, 0xef, 0xf2, 0x7e, 0x59, 0x01, 0xb3, 0x54, 0xf9, 0xea,
+ 0x88, 0x8c, 0x8b, 0xb0, 0xc6, 0x2f, 0xf4, 0xf4, 0x30, 0x7f, 0xe5, 0x88, 0xc0, 0xfe, 0x82, 0xd9,
+ 0xe9, 0x04, 0x8b, 0x7e, 0x2b, 0x47, 0x74, 0xf6, 0x4e, 0xc5, 0x7c, 0xa1, 0x00, 0x72, 0xe6, 0xae,
+ 0xb7, 0x0d, 0x7f, 0x20, 0x6d, 0xf2, 0x0b, 0x9d, 0x01, 0xa3, 0x27, 0x02, 0x92, 0xe3, 0x20, 0xef,
+ 0x39, 0x17, 0x91, 0xcf, 0x07, 0xfa, 0x82, 0xe1, 0x30, 0x3b, 0x1d, 0x83, 0x7c, 0x60, 0x70, 0xf8,
+ 0xef, 0x78, 0x84, 0x31, 0x9b, 0x4d, 0x67, 0xd7, 0xf6, 0x2a, 0xfe, 0xc2, 0x5f, 0x98, 0x00, 0x3f,
+ 0x9f, 0x91, 0x99, 0x42, 0x48, 0x10, 0x98, 0x0c, 0xb2, 0x0b, 0x43, 0xa8, 0xd2, 0x3c, 0xb8, 0xa5,
+ 0xb4, 0xbe, 0xde, 0x30, 0x6a, 0xf7, 0x6b, 0xd5, 0x70, 0xb8, 0x6f, 0x54, 0xaa, 0x0d, 0x63, 0x45,
+ 0x6b, 0x94, 0x37, 0x74, 0xb2, 0x3a, 0x53, 0x2a, 0x97, 0x6b, 0x1b, 0x55, 0xa3, 0x88, 0xe0, 0x9b,
+ 0xb3, 0x60, 0xa6, 0xdc, 0x76, 0xba, 0x01, 0xc2, 0xd7, 0x87, 0x08, 0x07, 0x6c, 0xcc, 0x70, 0x6c,
+ 0x84, 0xff, 0x9a, 0x91, 0xdd, 0xea, 0xf5, 0x19, 0xc2, 0x15, 0x1f, 0xd1, 0x4b, 0xfd, 0xa6, 0xd4,
+ 0x56, 0xef, 0xe0, 0xf2, 0xd2, 0x57, 0x89, 0xcf, 0xdc, 0x05, 0x26, 0x4a, 0x54, 0x30, 0xe0, 0xdf,
+ 0x65, 0x40, 0xa1, 0xec, 0xd8, 0x9b, 0xd6, 0x96, 0x7a, 0x13, 0x98, 0x43, 0xb6, 0x79, 0xa1, 0x8d,
+ 0x16, 0x4d, 0xcf, 0xdc, 0xb3, 0xd0, 0x25, 0xd2, 0x80, 0x49, 0xbd, 0x27, 0x15, 0x13, 0xc5, 0x52,
+ 0xd0, 0x85, 0xdd, 0x2d, 0x42, 0xd4, 0xa4, 0xce, 0x27, 0xa9, 0x4f, 0x01, 0x57, 0xd3, 0xd7, 0x75,
+ 0x17, 0xb9, 0xa8, 0x8d, 0xcc, 0x2e, 0xc2, 0xc6, 0xa8, 0x8d, 0xda, 0x44, 0x68, 0x27, 0xf5, 0xa8,
+ 0xcf, 0xea, 0x59, 0x30, 0x43, 0x3f, 0x11, 0x53, 0xa7, 0x4b, 0xc4, 0x78, 0x52, 0x17, 0xd2, 0xd4,
+ 0xc7, 0x82, 0x3c, 0xba, 0xec, 0xb9, 0xe6, 0xa9, 0x16, 0xc1, 0xeb, 0xea, 0x79, 0xea, 0xeb, 0x35,
+ 0xef, 0xfb, 0x7a, 0xcd, 0xd7, 0x89, 0x27, 0x98, 0x4e, 0x73, 0xc1, 0x5f, 0x9f, 0x0c, 0x0c, 0x89,
+ 0x1f, 0x66, 0x43, 0xc1, 0x50, 0x41, 0xce, 0x36, 0x77, 0x10, 0x93, 0x0b, 0xf2, 0xac, 0xde, 0x02,
+ 0x8e, 0x9a, 0x7b, 0xa6, 0x67, 0xba, 0xab, 0x4e, 0xd3, 0x6c, 0x93, 0xc1, 0xcf, 0xd7, 0xfc, 0xde,
+ 0x0f, 0x64, 0x1d, 0xde, 0x73, 0x5c, 0x44, 0x72, 0xf9, 0xeb, 0xf0, 0x7e, 0x02, 0x2e, 0xdd, 0x6a,
+ 0x3a, 0x36, 0xa1, 0x5f, 0xd1, 0xc9, 0x33, 0xe6, 0x4a, 0xcb, 0xea, 0xe2, 0x86, 0x90, 0x52, 0xaa,
+ 0x74, 0x41, 0xb9, 0x7e, 0xc5, 0x6e, 0x92, 0x35, 0xf8, 0x49, 0x3d, 0xea, 0xb3, 0xba, 0x00, 0xa6,
+ 0xd9, 0xf2, 0xf3, 0x1a, 0x96, 0xab, 0x02, 0x91, 0xab, 0x33, 0xa2, 0x27, 0x0d, 0xc5, 0x73, 0xbe,
+ 0x1a, 0xe6, 0xd3, 0xf9, 0x9f, 0xd4, 0xfb, 0xc0, 0xb5, 0xec, 0xb5, 0xbc, 0xdb, 0xf5, 0x9c, 0x1d,
+ 0x0a, 0xfa, 0x92, 0xd5, 0xa6, 0x2d, 0x98, 0x20, 0x2d, 0x88, 0xcb, 0xa2, 0xde, 0x0e, 0x8e, 0x77,
+ 0x5c, 0xb4, 0x89, 0xdc, 0x07, 0xcc, 0x9d, 0xdd, 0xcb, 0x86, 0x6b, 0xda, 0xdd, 0x8e, 0xe3, 0x7a,
+ 0xa7, 0x26, 0x09, 0xf1, 0x7d, 0xbf, 0xb1, 0x8e, 0x72, 0x12, 0x14, 0x28, 0xfb, 0xe0, 0x0b, 0xf3,
+ 0xd2, 0x4e, 0x74, 0xac, 0x41, 0xb1, 0xe6, 0xd9, 0xe3, 0xc0, 0x04, 0xeb, 0xe1, 0x08, 0x50, 0xd3,
+ 0xb7, 0x9f, 0xec, 0x99, 0xcd, 0xb1, 0x52, 0x74, 0x3f, 0x9b, 0x7a, 0x07, 0x28, 0x34, 0x49, 0xb3,
+ 0x08, 0x66, 0xd3, 0xb7, 0x5f, 0xdb, 0xbf, 0x52, 0x92, 0x45, 0x67, 0x59, 0xe1, 0x17, 0x14, 0x29,
+ 0xbf, 0xbb, 0x38, 0x8a, 0x93, 0x69, 0xf5, 0x37, 0xb2, 0x43, 0x74, 0x9b, 0xb7, 0x82, 0x9b, 0x59,
+ 0x9f, 0xc8, 0xec, 0x8f, 0xc5, 0xc6, 0xc2, 0x86, 0x6f, 0x82, 0x63, 0xab, 0xa4, 0x6e, 0x94, 0x74,
+ 0x3c, 0x7f, 0x5a, 0xc4, 0xa6, 0xfb, 0x2d, 0xe0, 0xa6, 0x01, 0xb9, 0x35, 0xa3, 0x51, 0x2d, 0xad,
+ 0x69, 0xc5, 0x4d, 0xd1, 0xb6, 0xa9, 0x1b, 0xb5, 0xf5, 0x86, 0xbe, 0x51, 0xad, 0x56, 0xaa, 0xcb,
+ 0xb4, 0x30, 0x6c, 0x12, 0x9e, 0x0c, 0x33, 0x9c, 0xd7, 0x2b, 0x86, 0xd6, 0x28, 0xd7, 0xaa, 0x4b,
+ 0x95, 0xe5, 0xa2, 0x35, 0xc8, 0x30, 0x7a, 0x50, 0x3d, 0x03, 0xae, 0x13, 0x28, 0xa9, 0xd4, 0xaa,
+ 0x78, 0x3e, 0x51, 0x2e, 0x55, 0xcb, 0x1a, 0x9e, 0x3c, 0x5c, 0x54, 0x21, 0x38, 0x41, 0x8b, 0x6b,
+ 0x2c, 0x55, 0x56, 0xf9, 0x2d, 0x80, 0x8f, 0x65, 0xd4, 0x53, 0xe0, 0x2a, 0xfe, 0x5b, 0xa5, 0x7a,
+ 0xae, 0xb4, 0x5a, 0x59, 0x2c, 0xfe, 0x69, 0x46, 0xbd, 0x11, 0x5c, 0x2f, 0xfc, 0x45, 0x57, 0xf3,
+ 0x1b, 0x95, 0xc5, 0xc6, 0x5a, 0xa5, 0xbe, 0x56, 0x32, 0xca, 0x2b, 0xc5, 0x8f, 0x93, 0xf9, 0x42,
+ 0x60, 0x00, 0x73, 0xce, 0x70, 0x2f, 0xe1, 0xc7, 0xf4, 0x92, 0x28, 0xa8, 0x8f, 0xe9, 0x0b, 0x7b,
+ 0xbc, 0x0d, 0xfb, 0xe1, 0x60, 0x74, 0x58, 0x14, 0x44, 0xe8, 0x71, 0x09, 0xca, 0x4a, 0x26, 0x43,
+ 0xc6, 0x10, 0x22, 0x74, 0x06, 0x5c, 0x57, 0xd5, 0x28, 0x52, 0xba, 0x56, 0xae, 0x9d, 0xd3, 0xf4,
+ 0xc6, 0xf9, 0xd2, 0xea, 0xaa, 0x66, 0x34, 0x96, 0x2a, 0x7a, 0xdd, 0x28, 0x6e, 0xc2, 0x6f, 0x67,
+ 0x83, 0x39, 0x34, 0xc7, 0xad, 0xbf, 0xcb, 0x26, 0x55, 0xeb, 0xd8, 0xb9, 0xf2, 0x13, 0x41, 0xa1,
+ 0xeb, 0x99, 0xde, 0x6e, 0x97, 0x69, 0xf5, 0x23, 0xfa, 0x6b, 0xf5, 0x7c, 0x9d, 0x64, 0xd2, 0x59,
+ 0x66, 0xf8, 0x85, 0x4c, 0x12, 0x35, 0x1d, 0xc1, 0x34, 0xda, 0x1a, 0x82, 0xc5, 0xa7, 0x01, 0xf4,
+ 0xa5, 0xbd, 0x52, 0x6f, 0x94, 0x56, 0x75, 0xad, 0xb4, 0xf8, 0x40, 0x30, 0x79, 0x46, 0xea, 0x09,
+ 0x70, 0x6c, 0xa3, 0x8a, 0xa7, 0xc3, 0x44, 0x5d, 0x6a, 0xd5, 0xaa, 0x56, 0xc6, 0x7c, 0xff, 0x39,
+ 0xb2, 0x54, 0x8d, 0x2d, 0x68, 0x42, 0x37, 0xb6, 0x72, 0x38, 0xfe, 0x7f, 0x5d, 0xda, 0xa3, 0x23,
+ 0x94, 0x30, 0xbe, 0xac, 0xd1, 0xe2, 0xf0, 0x79, 0x29, 0x27, 0x0e, 0x29, 0x4a, 0x92, 0xe1, 0xf1,
+ 0x1f, 0x86, 0xc0, 0xe3, 0x04, 0x38, 0xc6, 0xe3, 0x41, 0x9c, 0x39, 0xa2, 0x61, 0xf8, 0xca, 0x24,
+ 0x28, 0xd4, 0x51, 0x1b, 0x35, 0x3d, 0xf8, 0x56, 0xce, 0x98, 0x98, 0x03, 0xd9, 0xc0, 0x79, 0x20,
+ 0x6b, 0xb5, 0x84, 0xe9, 0x73, 0xb6, 0x67, 0xfa, 0x1c, 0x63, 0x06, 0x28, 0x89, 0xcc, 0x80, 0x5c,
+ 0x0a, 0x66, 0x40, 0x7e, 0x78, 0x33, 0xa0, 0x30, 0xc8, 0x0c, 0x80, 0xaf, 0x2b, 0x24, 0xed, 0x25,
+ 0x28, 0xab, 0x0f, 0x77, 0xf0, 0xff, 0x1f, 0xb9, 0x24, 0xbd, 0x4a, 0x5f, 0x8a, 0x93, 0x49, 0xf1,
+ 0x0f, 0x94, 0x14, 0x96, 0x1f, 0xd4, 0x1b, 0xc0, 0xf5, 0xe1, 0x7b, 0x43, 0x7b, 0x66, 0xa5, 0x6e,
+ 0xd4, 0xc9, 0x88, 0x5f, 0xae, 0xe9, 0xfa, 0xc6, 0x3a, 0x5d, 0xb9, 0x3b, 0x09, 0xd4, 0xb0, 0x14,
+ 0x7d, 0xa3, 0x4a, 0xc7, 0xf7, 0x2d, 0xb1, 0xf4, 0xa5, 0x4a, 0x75, 0xb1, 0x11, 0xe8, 0x4c, 0x75,
+ 0xa9, 0x56, 0xdc, 0xc6, 0x53, 0x36, 0xae, 0x74, 0x3c, 0x40, 0xb3, 0x1a, 0x4a, 0xd5, 0xc5, 0xc6,
+ 0x5a, 0x55, 0x5b, 0xab, 0x55, 0x2b, 0x65, 0x92, 0x5e, 0xd7, 0x8c, 0xa2, 0x85, 0x07, 0x9a, 0x1e,
+ 0x8b, 0xa2, 0xae, 0x95, 0xf4, 0xf2, 0x8a, 0xa6, 0xd3, 0x2a, 0x1f, 0x54, 0x6f, 0x02, 0x67, 0x4b,
+ 0xd5, 0x9a, 0x81, 0x53, 0x4a, 0xd5, 0x07, 0x8c, 0x07, 0xd6, 0xb5, 0xc6, 0xba, 0x5e, 0x2b, 0x6b,
+ 0xf5, 0x3a, 0xd6, 0x53, 0x66, 0x7f, 0x14, 0xdb, 0xea, 0xd3, 0xc0, 0x5d, 0x1c, 0x69, 0x9a, 0x41,
+ 0xb6, 0x89, 0xd6, 0x6a, 0xc4, 0x53, 0x60, 0x51, 0x6b, 0xac, 0x94, 0xea, 0x8d, 0x4a, 0xb5, 0x5c,
+ 0x5b, 0x5b, 0x2f, 0x19, 0x15, 0xac, 0xce, 0xeb, 0x7a, 0xcd, 0xa8, 0x35, 0xce, 0x69, 0x7a, 0xbd,
+ 0x52, 0xab, 0x16, 0x6d, 0xdc, 0x64, 0x4e, 0xff, 0xfd, 0x7e, 0xd8, 0x51, 0xaf, 0x03, 0xa7, 0xfc,
+ 0xf4, 0xd5, 0x1a, 0x66, 0x34, 0x67, 0x91, 0x74, 0x52, 0xb5, 0x48, 0xfe, 0x25, 0x0b, 0x72, 0x75,
+ 0xcf, 0xe9, 0xc0, 0x1f, 0x0b, 0x3b, 0x98, 0xd3, 0x00, 0xb8, 0x64, 0xd7, 0x07, 0xcf, 0xc2, 0xd8,
+ 0xbc, 0x8c, 0x4b, 0x81, 0x1f, 0x91, 0x5e, 0xaa, 0x0e, 0xfb, 0x6c, 0xa7, 0x13, 0x61, 0xab, 0x7c,
+ 0x4f, 0xce, 0x77, 0x3f, 0xba, 0xa0, 0x64, 0xf2, 0xfe, 0xf3, 0xc3, 0x2c, 0x46, 0x43, 0x70, 0x92,
+ 0x83, 0x0d, 0xf3, 0xdf, 0x17, 0x09, 0xa4, 0x5e, 0x0d, 0xae, 0xea, 0x11, 0x2e, 0x22, 0x53, 0x9b,
+ 0xea, 0x23, 0xc1, 0x23, 0x38, 0xf1, 0xd6, 0xd6, 0x6a, 0xe7, 0xb4, 0x40, 0x90, 0x17, 0x4b, 0x46,
+ 0xa9, 0xb8, 0x05, 0x3f, 0xa3, 0x80, 0xdc, 0x9a, 0xb3, 0xd7, 0xbb, 0x43, 0x60, 0xa3, 0x4b, 0xdc,
+ 0x5a, 0xa8, 0xff, 0x2a, 0xfa, 0x2a, 0x4b, 0xb1, 0x7d, 0x2d, 0x7a, 0x37, 0xf0, 0xf3, 0xd9, 0x24,
+ 0x6c, 0x5f, 0x3b, 0xe8, 0x16, 0xe0, 0x3f, 0x0e, 0xc3, 0xf6, 0x08, 0xd6, 0x22, 0xf5, 0x2c, 0x38,
+ 0x1d, 0x7e, 0xa8, 0x2c, 0x6a, 0x55, 0xa3, 0xb2, 0xf4, 0x40, 0xc8, 0xdc, 0x8a, 0x2e, 0xc5, 0xfe,
+ 0x41, 0xdd, 0x58, 0xfc, 0x4c, 0xe3, 0x14, 0x38, 0x1e, 0x7e, 0x5b, 0xd6, 0x0c, 0xff, 0xcb, 0x83,
+ 0xf0, 0x39, 0x79, 0x30, 0x43, 0xbb, 0xf5, 0x8d, 0x4e, 0xcb, 0xf4, 0x10, 0xbc, 0x23, 0x44, 0xf7,
+ 0x66, 0x70, 0xb4, 0xb2, 0xbe, 0x54, 0xaf, 0x7b, 0x8e, 0x6b, 0x6e, 0xa1, 0x52, 0xab, 0xe5, 0x32,
+ 0x6e, 0xf5, 0x26, 0xc3, 0x77, 0x49, 0xaf, 0xf3, 0x89, 0x43, 0x09, 0xad, 0x33, 0x02, 0xf5, 0x2f,
+ 0x4b, 0xad, 0xcb, 0x49, 0x14, 0x98, 0x0c, 0xfd, 0x07, 0x47, 0xac, 0x73, 0xd1, 0xb8, 0x6c, 0x9e,
+ 0x7d, 0x5e, 0x16, 0x4c, 0x19, 0xd6, 0x0e, 0x7a, 0x96, 0x63, 0xa3, 0xae, 0x3a, 0x01, 0x94, 0xe5,
+ 0x35, 0xa3, 0x78, 0x04, 0x3f, 0x60, 0xa3, 0x2a, 0x43, 0x1e, 0x34, 0x5c, 0x01, 0x7e, 0x28, 0x19,
+ 0x45, 0x05, 0x3f, 0xac, 0x69, 0x46, 0x31, 0x87, 0x1f, 0xaa, 0x9a, 0x51, 0xcc, 0xe3, 0x87, 0xf5,
+ 0x55, 0xa3, 0x58, 0xc0, 0x0f, 0x95, 0xba, 0x51, 0x9c, 0xc0, 0x0f, 0x0b, 0x75, 0xa3, 0x38, 0x89,
+ 0x1f, 0xce, 0xd5, 0x8d, 0xe2, 0x14, 0x7e, 0x28, 0x1b, 0x46, 0x11, 0xe0, 0x87, 0xa7, 0xd7, 0x8d,
+ 0xe2, 0x34, 0x7e, 0x28, 0x95, 0x8d, 0xe2, 0x0c, 0x79, 0xd0, 0x8c, 0xe2, 0x2c, 0x7e, 0xa8, 0xd7,
+ 0x8d, 0xe2, 0x1c, 0x29, 0xb9, 0x6e, 0x14, 0x8f, 0x92, 0xba, 0x2a, 0x46, 0xb1, 0x88, 0x1f, 0x56,
+ 0xea, 0x46, 0xf1, 0x18, 0xc9, 0x5c, 0x37, 0x8a, 0x2a, 0xa9, 0xb4, 0x6e, 0x14, 0xaf, 0x22, 0x79,
+ 0xea, 0x46, 0xf1, 0x38, 0xa9, 0xa2, 0x6e, 0x14, 0x4f, 0x10, 0x32, 0x34, 0xa3, 0x78, 0x92, 0xe4,
+ 0xd1, 0x8d, 0xe2, 0xd5, 0xe4, 0x53, 0xd5, 0x28, 0x9e, 0x22, 0x84, 0x69, 0x46, 0xf1, 0x1a, 0xf2,
+ 0xa0, 0x1b, 0x45, 0x48, 0x3e, 0x95, 0x8c, 0xe2, 0xb5, 0xf0, 0x11, 0x60, 0x6a, 0x19, 0x79, 0x14,
+ 0x44, 0x58, 0x04, 0xca, 0x32, 0xf2, 0x78, 0x33, 0xfe, 0xab, 0x0a, 0xb8, 0x9a, 0x4d, 0xfd, 0x96,
+ 0x5c, 0x67, 0x67, 0x15, 0x6d, 0x99, 0xcd, 0x2b, 0xda, 0x65, 0x6c, 0x42, 0xc1, 0xba, 0xb0, 0x74,
+ 0xd5, 0x09, 0x3b, 0x23, 0xf2, 0x1c, 0x6b, 0x71, 0xfa, 0x8b, 0x51, 0x4a, 0xb8, 0x18, 0xc5, 0x2c,
+ 0xb2, 0x7f, 0xe6, 0x25, 0x5a, 0x58, 0x3f, 0xce, 0xf4, 0xac, 0x1f, 0x63, 0x35, 0xe9, 0x20, 0xb7,
+ 0xeb, 0xd8, 0x66, 0xbb, 0xce, 0xb6, 0x4b, 0xe9, 0xaa, 0x57, 0x6f, 0xb2, 0xfa, 0x0c, 0x5f, 0x33,
+ 0xa8, 0x55, 0xf6, 0xd4, 0xb8, 0x19, 0x6e, 0x6f, 0x33, 0x23, 0x94, 0xe4, 0xe3, 0x81, 0x92, 0x18,
+ 0x82, 0x92, 0xdc, 0x77, 0x80, 0xb2, 0x93, 0xe9, 0x4b, 0x65, 0xb8, 0xa9, 0x45, 0xe8, 0x4c, 0xe8,
+ 0x2f, 0x57, 0x2b, 0xf0, 0x33, 0x59, 0x70, 0x52, 0xb3, 0xfb, 0x59, 0xf8, 0xbc, 0x2c, 0xbc, 0x99,
+ 0x87, 0x66, 0x5d, 0x64, 0xe9, 0x5d, 0x7d, 0x9b, 0xdd, 0xbf, 0xcc, 0x08, 0x8e, 0x7e, 0x32, 0xe0,
+ 0x68, 0x5d, 0xe0, 0xe8, 0xbd, 0xc3, 0x17, 0x9d, 0x8c, 0xa1, 0xd5, 0x91, 0x76, 0x40, 0x39, 0xf8,
+ 0x8d, 0x1c, 0x78, 0x04, 0xf5, 0x78, 0x60, 0x14, 0x52, 0x2d, 0x2b, 0xd9, 0x2d, 0x1d, 0x75, 0x3d,
+ 0xd3, 0xf5, 0x84, 0x53, 0xa8, 0x3d, 0x53, 0xa9, 0x4c, 0x0a, 0x53, 0xa9, 0xec, 0xc0, 0xa9, 0x14,
+ 0x7c, 0x27, 0x6f, 0x3e, 0x9c, 0x17, 0x31, 0x2e, 0xf5, 0xef, 0xff, 0xe3, 0x5a, 0x18, 0x05, 0x75,
+ 0x60, 0x57, 0xfc, 0xb8, 0x00, 0xf5, 0xd2, 0x81, 0x6b, 0x48, 0x86, 0xf8, 0x47, 0x46, 0x6b, 0xe7,
+ 0xe5, 0xf8, 0x6f, 0xa2, 0x51, 0x52, 0x6c, 0xa5, 0x6a, 0xa0, 0x7f, 0x6a, 0x02, 0x4c, 0x11, 0x5d,
+ 0x58, 0xb5, 0xec, 0x8b, 0xf0, 0x35, 0x0a, 0x98, 0xa9, 0xa2, 0x4b, 0xe5, 0x6d, 0xb3, 0xdd, 0x46,
+ 0xf6, 0x16, 0xe2, 0xcd, 0xf6, 0x53, 0x60, 0xc2, 0xec, 0x74, 0xaa, 0xe1, 0x3e, 0x83, 0xff, 0xca,
+ 0xfa, 0xdf, 0xaf, 0xf7, 0x55, 0xf2, 0x4c, 0x8c, 0x92, 0x07, 0xf5, 0xce, 0xf3, 0x75, 0x46, 0xcc,
+ 0x90, 0xcf, 0x80, 0xe9, 0xa6, 0x9f, 0x25, 0xf0, 0x56, 0xe7, 0x93, 0xe0, 0x3f, 0x24, 0xea, 0x06,
+ 0xa4, 0x2a, 0x4f, 0x26, 0x14, 0x68, 0xc4, 0x76, 0xc8, 0x09, 0x70, 0xcc, 0xa8, 0xd5, 0x1a, 0x6b,
+ 0xa5, 0xea, 0x03, 0xe1, 0x29, 0xd1, 0x4d, 0xf8, 0x8a, 0x1c, 0x98, 0xab, 0x3b, 0xed, 0x3d, 0x14,
+ 0xc2, 0x54, 0x09, 0x61, 0xea, 0xe1, 0x53, 0x66, 0x1f, 0x9f, 0xd4, 0x93, 0xa0, 0x60, 0xda, 0xdd,
+ 0x4b, 0xc8, 0xb7, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x8f, 0x78, 0x3d, 0xd6, 0x45, 0x18, 0xef, 0x1e,
+ 0xc0, 0x49, 0x91, 0xaa, 0x08, 0x20, 0xcf, 0x82, 0x99, 0x2e, 0xdd, 0x2c, 0x34, 0xb8, 0x3d, 0x61,
+ 0x21, 0x8d, 0x90, 0x48, 0x77, 0xab, 0x15, 0x46, 0x22, 0x79, 0x83, 0xaf, 0x09, 0xd4, 0x7f, 0x43,
+ 0x80, 0xb8, 0x74, 0x10, 0xc2, 0x92, 0x81, 0xfc, 0xaa, 0x51, 0xcf, 0xf0, 0x4e, 0x81, 0xe3, 0x4c,
+ 0x6b, 0x1b, 0xe5, 0x95, 0xd2, 0xea, 0xaa, 0x56, 0x5d, 0xd6, 0x1a, 0x95, 0x45, 0xba, 0x55, 0x11,
+ 0xa6, 0x94, 0x0c, 0x43, 0x5b, 0x5b, 0x37, 0xea, 0x0d, 0xed, 0x99, 0x65, 0x4d, 0x5b, 0x24, 0x8e,
+ 0x48, 0xe4, 0x24, 0x81, 0xef, 0x32, 0x56, 0xaa, 0xd6, 0xcf, 0x6b, 0x7a, 0x71, 0xfb, 0x6c, 0x09,
+ 0x4c, 0x73, 0xfd, 0x3c, 0xa6, 0x6e, 0x11, 0x6d, 0x9a, 0xbb, 0x6d, 0x66, 0xab, 0x15, 0x8f, 0x60,
+ 0xea, 0x08, 0x6f, 0x6a, 0x76, 0xfb, 0x4a, 0x31, 0xa3, 0x16, 0xc1, 0x0c, 0xdf, 0xa5, 0x17, 0xb3,
+ 0xf0, 0x7b, 0xd7, 0x82, 0xa9, 0xf3, 0x8e, 0x7b, 0x91, 0x78, 0x8f, 0xc1, 0xf7, 0xd2, 0x68, 0x12,
+ 0xfe, 0xb9, 0x3c, 0x6e, 0x60, 0x7f, 0x95, 0xbc, 0xb7, 0x80, 0x5f, 0xda, 0xfc, 0xc0, 0xb3, 0x77,
+ 0x67, 0xc0, 0xf4, 0x25, 0x3f, 0x77, 0xa8, 0xe9, 0x5c, 0x12, 0xfc, 0x2d, 0xb9, 0xfd, 0xff, 0xc1,
+ 0x55, 0xa6, 0xbf, 0x3f, 0xfd, 0xd6, 0x2c, 0x28, 0x2c, 0x23, 0xaf, 0xd4, 0x6e, 0xf3, 0x7c, 0x7b,
+ 0xa9, 0xf4, 0x79, 0x0a, 0xa1, 0x11, 0xa5, 0x76, 0x3b, 0x5a, 0xa9, 0x38, 0x06, 0xf9, 0x7e, 0xbf,
+ 0x42, 0x1a, 0x7c, 0x9d, 0xd4, 0x49, 0xa8, 0x01, 0x15, 0xa6, 0xcf, 0xb1, 0x37, 0x28, 0xc1, 0x1e,
+ 0xf7, 0xf3, 0x39, 0x2b, 0xe7, 0xf1, 0x61, 0x24, 0x91, 0x4c, 0xfc, 0x5e, 0xb9, 0x9f, 0x4f, 0xbd,
+ 0x1f, 0x4c, 0xec, 0x76, 0x51, 0xd9, 0xec, 0x22, 0x42, 0x5b, 0x6f, 0x4b, 0x6b, 0x17, 0x1e, 0x44,
+ 0x4d, 0x6f, 0xbe, 0xb2, 0x83, 0x0d, 0xea, 0x0d, 0x9a, 0x31, 0x08, 0xce, 0xc1, 0xde, 0x75, 0xbf,
+ 0x04, 0xf8, 0xc2, 0x21, 0x20, 0x8b, 0xdd, 0xef, 0x8d, 0x3c, 0x7a, 0x95, 0x18, 0xa8, 0x11, 0x6c,
+ 0xd2, 0x0e, 0x03, 0xd4, 0xa7, 0xb2, 0x20, 0x57, 0xeb, 0x20, 0x5b, 0xce, 0x01, 0xf5, 0x35, 0xf2,
+ 0x5e, 0x5e, 0x41, 0xc3, 0x70, 0xe9, 0x11, 0xdc, 0xbb, 0x0d, 0xe4, 0x2c, 0x7b, 0xd3, 0x61, 0x06,
+ 0xe6, 0xb5, 0x11, 0x9b, 0x39, 0x15, 0x7b, 0xd3, 0xd1, 0x49, 0x46, 0x59, 0x07, 0xaf, 0xb8, 0xba,
+ 0xd3, 0x67, 0xe9, 0x37, 0x27, 0x41, 0x81, 0x8a, 0x25, 0x7c, 0x89, 0x02, 0x94, 0x52, 0xab, 0x15,
+ 0x71, 0x88, 0x23, 0xbb, 0xef, 0x10, 0x87, 0x43, 0x7e, 0x0b, 0xf8, 0x1e, 0xbc, 0x8b, 0xa1, 0x20,
+ 0x24, 0xfb, 0x68, 0xa6, 0x1a, 0xa5, 0x56, 0x2b, 0xda, 0x97, 0x34, 0xa8, 0x30, 0x2b, 0x56, 0xc8,
+ 0x6b, 0xaa, 0x22, 0xa7, 0xa9, 0x89, 0x3b, 0xf4, 0x48, 0xfa, 0xd2, 0x87, 0xe8, 0x9f, 0xb3, 0x60,
+ 0x62, 0xd5, 0xea, 0x7a, 0x18, 0x9b, 0x92, 0x0c, 0x36, 0xd7, 0x81, 0x29, 0x9f, 0x35, 0xb8, 0xeb,
+ 0xc2, 0xfd, 0x72, 0x98, 0x00, 0x5f, 0xcb, 0xa3, 0xf3, 0x74, 0x11, 0x9d, 0x27, 0xc4, 0xb7, 0x9e,
+ 0x51, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0x77, 0x02, 0x86, 0xaf, 0x09, 0x0c,
+ 0xbf, 0x73, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0x67, 0xb3, 0x00, 0xe0, 0xba, 0xd9, 0x41, 0x98, 0x47,
+ 0x0b, 0xc7, 0x5b, 0x63, 0xb8, 0xfb, 0x0a, 0x9e, 0xbb, 0x6b, 0x22, 0x77, 0x9f, 0x3c, 0xb8, 0xa9,
+ 0x71, 0x07, 0x5e, 0xd4, 0x22, 0x50, 0xac, 0x80, 0xb5, 0xf8, 0x11, 0xbe, 0x35, 0x60, 0xea, 0xba,
+ 0xc0, 0xd4, 0xbb, 0x87, 0xac, 0x29, 0x7d, 0xbe, 0xfe, 0x4d, 0x16, 0x4c, 0xd4, 0x91, 0x87, 0xbb,
+ 0x49, 0x78, 0x4e, 0xe6, 0xc8, 0x09, 0xa7, 0xdb, 0x59, 0x49, 0xdd, 0xfe, 0x6e, 0x46, 0x36, 0x4c,
+ 0x46, 0xc8, 0x19, 0x46, 0x53, 0xc4, 0x22, 0xc0, 0xeb, 0xa5, 0xc2, 0x64, 0x0c, 0x2a, 0x2d, 0x7d,
+ 0xee, 0xbe, 0x39, 0x1b, 0x6c, 0xb0, 0x3f, 0x46, 0x98, 0xa0, 0xf1, 0xe6, 0x6d, 0x66, 0xbf, 0x79,
+ 0xfb, 0xed, 0x4c, 0x72, 0x53, 0x23, 0x6e, 0x77, 0x39, 0xb1, 0x41, 0x31, 0x82, 0x8d, 0xdf, 0x61,
+ 0xf8, 0xf5, 0x6c, 0x05, 0x14, 0xd8, 0x0a, 0xf1, 0xbd, 0xf1, 0x2b, 0xc4, 0x83, 0xa7, 0x08, 0xef,
+ 0x19, 0xc2, 0x5c, 0x8b, 0x5b, 0xb6, 0x0d, 0xc8, 0xc8, 0x72, 0x64, 0xdc, 0x0a, 0xf2, 0x24, 0x8e,
+ 0x1f, 0x1b, 0xe7, 0xc2, 0x3d, 0x7b, 0xbf, 0x08, 0x0d, 0x7f, 0xd5, 0x69, 0xa6, 0xc4, 0x28, 0x8c,
+ 0x60, 0xa5, 0x77, 0x18, 0x14, 0x3e, 0xfd, 0x91, 0x4c, 0x60, 0x84, 0xbc, 0x27, 0xc7, 0x4c, 0xbc,
+ 0x8f, 0x8a, 0x11, 0x05, 0x9a, 0x8e, 0xed, 0xa1, 0xcb, 0xdc, 0xda, 0x7a, 0x90, 0x10, 0x6b, 0x19,
+ 0x9c, 0x02, 0x13, 0x9e, 0xcb, 0xaf, 0xb7, 0xfb, 0xaf, 0x7c, 0x8f, 0x93, 0x17, 0x7b, 0x9c, 0x2a,
+ 0x38, 0x6b, 0xd9, 0xcd, 0xf6, 0x6e, 0x0b, 0xe9, 0xa8, 0x6d, 0xe2, 0x56, 0x75, 0x4b, 0xdd, 0x45,
+ 0xd4, 0x41, 0x76, 0x0b, 0xd9, 0x1e, 0xa5, 0xd3, 0xf7, 0xad, 0x95, 0xc8, 0x09, 0xbf, 0xc6, 0x0b,
+ 0xc6, 0x3d, 0xa2, 0x60, 0x3c, 0xba, 0xdf, 0xfc, 0x20, 0xc6, 0x08, 0xbd, 0x13, 0x00, 0xda, 0xb6,
+ 0x73, 0x16, 0xba, 0xc4, 0x3a, 0xc4, 0x6b, 0x7a, 0x4c, 0xd1, 0x5a, 0x90, 0x41, 0xe7, 0x32, 0xc3,
+ 0x2f, 0x05, 0xc2, 0x70, 0x9f, 0x20, 0x0c, 0xb7, 0x4a, 0x92, 0x90, 0x4c, 0x0e, 0x3a, 0x43, 0xac,
+ 0x59, 0xcc, 0x82, 0xa9, 0x70, 0xa5, 0x51, 0x51, 0xaf, 0x01, 0x27, 0x7c, 0xdf, 0x85, 0xaa, 0xa6,
+ 0x2d, 0xd6, 0x1b, 0x1b, 0xeb, 0xcb, 0x7a, 0x69, 0x51, 0x2b, 0x02, 0x55, 0x05, 0x73, 0xb5, 0x85,
+ 0xa7, 0x6b, 0x65, 0x23, 0x70, 0x39, 0xc8, 0xc1, 0xbf, 0xce, 0x82, 0x3c, 0x71, 0x0c, 0x87, 0x3f,
+ 0x39, 0x22, 0xc9, 0xe9, 0x0a, 0x3b, 0x35, 0xc1, 0xbc, 0x42, 0x3e, 0xd2, 0x1f, 0x63, 0x26, 0xa1,
+ 0xea, 0x40, 0x91, 0xfe, 0x62, 0x0a, 0x4a, 0x5f, 0x3d, 0xb1, 0x4a, 0xd6, 0xb7, 0x9d, 0x4b, 0xff,
+ 0x9e, 0x55, 0x12, 0xb7, 0xff, 0x90, 0x55, 0xb2, 0x0f, 0x09, 0x63, 0x57, 0xc9, 0x3e, 0x7a, 0x17,
+ 0xa3, 0xa6, 0xf0, 0x1f, 0x72, 0xc1, 0xc2, 0xca, 0xff, 0x73, 0xb0, 0x85, 0x95, 0x12, 0x98, 0xb5,
+ 0x6c, 0x0f, 0xb9, 0xb6, 0xd9, 0x5e, 0x6a, 0x9b, 0x5b, 0xfe, 0xf1, 0xe3, 0xde, 0x59, 0x78, 0x85,
+ 0xcb, 0xa3, 0x8b, 0x7f, 0xa8, 0xa7, 0x01, 0xf0, 0xd0, 0x4e, 0xa7, 0x6d, 0x7a, 0xa1, 0xe8, 0x71,
+ 0x29, 0xbc, 0xf4, 0xe5, 0x44, 0xe9, 0x7b, 0x1c, 0xb8, 0x8a, 0x82, 0x66, 0x5c, 0xe9, 0xa0, 0x0d,
+ 0xdb, 0xfa, 0xa9, 0x5d, 0x12, 0x80, 0x86, 0xca, 0x68, 0xbf, 0x4f, 0xf0, 0xbf, 0x4b, 0x1f, 0xa3,
+ 0xf4, 0x35, 0x7b, 0xc0, 0x31, 0xca, 0x40, 0x9b, 0x94, 0x1e, 0x6d, 0x0a, 0x0c, 0x82, 0x9c, 0x84,
+ 0x41, 0xc0, 0x73, 0x3e, 0x2f, 0x69, 0x4c, 0xbf, 0x5a, 0xea, 0x9c, 0x66, 0x5c, 0x33, 0xd2, 0xef,
+ 0xa1, 0xde, 0xab, 0x80, 0x39, 0x5a, 0xf5, 0x82, 0xe3, 0x5c, 0xdc, 0x31, 0xdd, 0x8b, 0xfc, 0xdc,
+ 0x62, 0x08, 0x71, 0x8b, 0x5e, 0x29, 0xfb, 0x24, 0x8f, 0xec, 0xb2, 0x88, 0xec, 0xe3, 0xa3, 0x59,
+ 0xe2, 0xd3, 0x35, 0x9e, 0xc5, 0x8d, 0x37, 0x06, 0x98, 0x3d, 0x5d, 0xc0, 0xec, 0x49, 0x89, 0x09,
+ 0x4c, 0x1f, 0xbb, 0x3f, 0x0b, 0xb0, 0xf3, 0x3b, 0xec, 0xd4, 0xb0, 0xfb, 0xf2, 0x70, 0xd8, 0xf9,
+ 0x74, 0x0d, 0x81, 0x5d, 0x11, 0x28, 0x17, 0x83, 0x2d, 0x25, 0xfc, 0xc8, 0x37, 0x28, 0x97, 0x1e,
+ 0x9a, 0x11, 0x24, 0x8f, 0x05, 0xcd, 0xe3, 0x22, 0x09, 0xb5, 0x4e, 0xaa, 0x98, 0x7e, 0x51, 0x7a,
+ 0xbd, 0xa5, 0x2f, 0x83, 0x28, 0x75, 0xe3, 0xd1, 0x4a, 0xb9, 0xc5, 0x1a, 0x79, 0x32, 0xd3, 0x47,
+ 0xf3, 0x9f, 0x72, 0x60, 0xca, 0x3f, 0xcc, 0xea, 0xc1, 0xbf, 0xe4, 0x86, 0xf0, 0x93, 0xa0, 0xd0,
+ 0x75, 0x76, 0xdd, 0x26, 0x62, 0x2b, 0x60, 0xec, 0x6d, 0x88, 0xd5, 0x9a, 0x81, 0xe3, 0xf2, 0xbe,
+ 0xa1, 0x3f, 0x97, 0x78, 0xe8, 0x8f, 0x34, 0x2c, 0xe1, 0x0b, 0xa5, 0x43, 0x0f, 0x0a, 0xb8, 0xd4,
+ 0x91, 0xf7, 0x70, 0x1c, 0xab, 0xff, 0x44, 0x6a, 0xbe, 0x3f, 0xa0, 0x25, 0xc9, 0xc4, 0xaa, 0x36,
+ 0x84, 0x51, 0x79, 0x2d, 0xb8, 0xda, 0xcf, 0xc1, 0xac, 0x49, 0x62, 0x3d, 0x6e, 0xe8, 0xab, 0x45,
+ 0x05, 0x3e, 0x3b, 0x07, 0x8a, 0x94, 0xb4, 0x5a, 0x60, 0x58, 0xc1, 0x97, 0x1e, 0xba, 0xf5, 0x18,
+ 0x3d, 0x1d, 0xfc, 0x74, 0x56, 0x36, 0xbc, 0x91, 0xc0, 0xf8, 0xb0, 0x75, 0x11, 0x92, 0x34, 0x84,
+ 0x2a, 0xc5, 0x08, 0x1f, 0xfc, 0xed, 0x8c, 0x4c, 0xb4, 0x24, 0x39, 0x12, 0xd3, 0xef, 0x79, 0x5e,
+ 0x9b, 0xf3, 0xe3, 0x0e, 0x2c, 0xb9, 0xce, 0xce, 0x86, 0xdb, 0x86, 0x1f, 0x90, 0x0a, 0x46, 0x17,
+ 0x61, 0xaa, 0x67, 0x23, 0x4d, 0x75, 0x3c, 0x44, 0xef, 0xba, 0x6d, 0x7f, 0x88, 0xde, 0x75, 0xdb,
+ 0x43, 0x0c, 0xd1, 0xea, 0x4d, 0x60, 0xce, 0x6c, 0xb5, 0xd6, 0xcd, 0x2d, 0x54, 0xc6, 0x73, 0x60,
+ 0xdb, 0x63, 0x67, 0x92, 0x7b, 0x52, 0x13, 0xec, 0x8c, 0x09, 0x40, 0x30, 0x1e, 0x3c, 0x9c, 0x76,
+ 0xc6, 0x24, 0xe8, 0x4b, 0x5f, 0x4a, 0xfe, 0x20, 0x0b, 0x26, 0xca, 0xdb, 0x26, 0xd9, 0x19, 0x7b,
+ 0x94, 0x10, 0x14, 0x24, 0x72, 0x6f, 0xf2, 0xf9, 0xd2, 0x9b, 0xc2, 0x7e, 0x0b, 0x69, 0xf9, 0x11,
+ 0xbc, 0x3f, 0x09, 0x0a, 0xcd, 0x6d, 0x33, 0xe4, 0x3c, 0x7b, 0x93, 0xdc, 0xfb, 0x8d, 0xad, 0x22,
+ 0x7d, 0xf6, 0x7d, 0x3c, 0x0b, 0x66, 0x7d, 0xbb, 0x7f, 0x09, 0x79, 0xcd, 0x6d, 0x78, 0xa7, 0xec,
+ 0x02, 0x0f, 0xd3, 0x9a, 0x6c, 0xa0, 0x35, 0xf0, 0x07, 0x99, 0x84, 0xa2, 0x2d, 0xd4, 0x1c, 0xb1,
+ 0x3a, 0x96, 0x48, 0x16, 0xe3, 0x0a, 0x4c, 0x9f, 0x99, 0x5f, 0xca, 0x02, 0x60, 0x38, 0xc1, 0xfc,
+ 0xf3, 0x00, 0x9c, 0x7c, 0xb1, 0x74, 0x94, 0x77, 0xd6, 0xf0, 0xb0, 0xda, 0xe4, 0x3d, 0x84, 0xe4,
+ 0xd6, 0xd6, 0xa0, 0x9a, 0xc6, 0xa2, 0xeb, 0x53, 0x8b, 0xbb, 0x9d, 0xb6, 0xd5, 0x34, 0xbd, 0xde,
+ 0xfd, 0xd8, 0x68, 0xf6, 0x92, 0xeb, 0x5a, 0x12, 0x19, 0x78, 0x41, 0x1d, 0x11, 0xbc, 0xa4, 0x87,
+ 0x55, 0xb3, 0xfe, 0x61, 0x55, 0xc9, 0x3d, 0x96, 0x01, 0x85, 0x8f, 0x41, 0x3c, 0x15, 0x70, 0xb4,
+ 0xd6, 0x41, 0xf6, 0x82, 0x8b, 0xcc, 0x56, 0xd3, 0xdd, 0xdd, 0xb9, 0xd0, 0xe5, 0x9d, 0x09, 0xe2,
+ 0x65, 0x94, 0x5b, 0xb2, 0xcd, 0x0a, 0x4b, 0xb6, 0xf0, 0xb9, 0x8a, 0xec, 0xd1, 0x69, 0x6e, 0x63,
+ 0x81, 0xa3, 0x61, 0x88, 0x21, 0x2d, 0xd1, 0x16, 0x58, 0xcf, 0xea, 0x6c, 0x2e, 0xc9, 0xea, 0xec,
+ 0x9b, 0xa4, 0x0e, 0x62, 0x4b, 0xb5, 0x6b, 0x2c, 0x3b, 0x99, 0x73, 0x75, 0xe4, 0x45, 0xc0, 0x7b,
+ 0x23, 0x98, 0xbd, 0x10, 0x7e, 0x09, 0x20, 0x16, 0x13, 0xfb, 0xf8, 0x17, 0xbc, 0x39, 0xe9, 0x8a,
+ 0x89, 0x48, 0x42, 0x04, 0xba, 0x01, 0x82, 0x59, 0x99, 0x4d, 0xcc, 0x44, 0xcb, 0x1f, 0xb1, 0xf5,
+ 0xa7, 0x8f, 0xc2, 0x87, 0xb2, 0x60, 0x9a, 0x5c, 0x42, 0xb3, 0x70, 0x85, 0x78, 0xb7, 0x4b, 0x1a,
+ 0x25, 0x2f, 0xe0, 0xd9, 0xac, 0x82, 0x5c, 0xdb, 0xb2, 0x2f, 0xfa, 0xbb, 0xcf, 0xf8, 0x39, 0xbc,
+ 0xd2, 0x20, 0xdb, 0xe7, 0x4a, 0x83, 0x60, 0x7f, 0x20, 0xa8, 0xf7, 0x40, 0x77, 0x6c, 0x0d, 0x2c,
+ 0x2e, 0x7d, 0x36, 0xfe, 0x79, 0x0e, 0x14, 0xea, 0xc8, 0x74, 0x9b, 0xdb, 0xf0, 0x15, 0x5c, 0x9c,
+ 0x80, 0x25, 0x30, 0xb1, 0x69, 0xb5, 0x3d, 0xe4, 0x52, 0xbf, 0x1b, 0xbe, 0x03, 0xa7, 0x8a, 0xbc,
+ 0xd0, 0x76, 0x9a, 0x17, 0xe7, 0x99, 0xb1, 0x3d, 0xef, 0x87, 0x5c, 0x9a, 0x5f, 0x22, 0x3f, 0xe9,
+ 0xfe, 0xcf, 0xd8, 0xec, 0xeb, 0x3a, 0xae, 0x17, 0x15, 0xc3, 0x34, 0xa2, 0x94, 0xba, 0xe3, 0x7a,
+ 0x3a, 0xfd, 0x11, 0x83, 0xb9, 0xb9, 0xdb, 0x6e, 0x1b, 0xe8, 0xb2, 0xe7, 0x4f, 0xb4, 0xfc, 0x77,
+ 0x6c, 0x12, 0x3a, 0x9b, 0x9b, 0x5d, 0x44, 0xa7, 0xf9, 0x79, 0x9d, 0xbd, 0xa9, 0xc7, 0x41, 0xbe,
+ 0x6d, 0xed, 0x58, 0x74, 0x6a, 0x90, 0xd7, 0xe9, 0x8b, 0x7a, 0x0b, 0x28, 0x86, 0xb3, 0x12, 0x4a,
+ 0xe8, 0xa9, 0x02, 0x51, 0xc0, 0x7d, 0xe9, 0x58, 0x32, 0x2e, 0xa2, 0x2b, 0xdd, 0x53, 0x13, 0xe4,
+ 0x3b, 0x79, 0x16, 0x9d, 0x1c, 0x65, 0x76, 0x1a, 0x28, 0x5f, 0xa3, 0xe7, 0x9c, 0x2e, 0x6a, 0x3a,
+ 0x6e, 0xcb, 0xe7, 0x4d, 0xf4, 0x74, 0x81, 0xe5, 0x4b, 0xb6, 0x3f, 0xd0, 0xb7, 0xf2, 0xf4, 0xe5,
+ 0xe9, 0x65, 0x05, 0xdc, 0x39, 0xe2, 0xaa, 0xcf, 0x5b, 0xde, 0xf6, 0x1a, 0xf2, 0x4c, 0xf8, 0xe7,
+ 0xca, 0xff, 0x96, 0xab, 0x18, 0xb9, 0xa2, 0x47, 0xe6, 0xbd, 0x5d, 0xd7, 0xc6, 0xdc, 0x62, 0x41,
+ 0xaa, 0xb8, 0x14, 0xf5, 0x6e, 0x70, 0x4d, 0xf8, 0xe6, 0x2f, 0x53, 0x2e, 0xb2, 0xa9, 0xe6, 0x14,
+ 0xc9, 0x1e, 0x9d, 0x41, 0x5d, 0x07, 0x37, 0xd0, 0x8f, 0x2b, 0xc6, 0xda, 0xea, 0x8a, 0xb5, 0xb5,
+ 0xdd, 0xb6, 0xb6, 0xb6, 0xbd, 0x6e, 0xc5, 0xee, 0x7a, 0xc8, 0x6c, 0xd5, 0x36, 0x75, 0x1a, 0x63,
+ 0x18, 0x90, 0x72, 0x64, 0xb2, 0x8a, 0xde, 0x37, 0x72, 0x23, 0x15, 0x2f, 0x0f, 0x11, 0xfa, 0xf0,
+ 0x24, 0xac, 0x0f, 0xdd, 0xdd, 0x76, 0x80, 0xe9, 0x75, 0x3d, 0x98, 0x86, 0x02, 0xbd, 0xdb, 0x26,
+ 0x4a, 0x41, 0x32, 0x27, 0x1d, 0xb3, 0x62, 0x28, 0x49, 0x5f, 0x39, 0xfe, 0xbf, 0x02, 0xc8, 0x2f,
+ 0xbb, 0x66, 0x67, 0x1b, 0x3e, 0x3b, 0x85, 0xbe, 0x36, 0x90, 0xce, 0xec, 0x20, 0xe9, 0x54, 0x06,
+ 0x48, 0x67, 0x8e, 0x93, 0xce, 0x68, 0x4f, 0x81, 0xb3, 0x60, 0xa6, 0xe9, 0xb4, 0xdb, 0xa8, 0x89,
+ 0xf9, 0x51, 0x69, 0x91, 0xb8, 0x2a, 0x53, 0xba, 0x90, 0x46, 0x82, 0xcf, 0x21, 0xaf, 0x4e, 0xd7,
+ 0xaf, 0xa9, 0xd0, 0x87, 0x09, 0xf0, 0xa5, 0x59, 0x90, 0xd3, 0x5a, 0x5b, 0x48, 0x58, 0xe3, 0xce,
+ 0x70, 0x6b, 0xdc, 0x27, 0x41, 0xc1, 0x33, 0xdd, 0x2d, 0xe4, 0xf9, 0x73, 0x7e, 0xfa, 0x16, 0xc4,
+ 0xc4, 0x53, 0xb8, 0x98, 0x78, 0x4f, 0x06, 0x39, 0xcc, 0x33, 0x16, 0x6d, 0xe6, 0x86, 0x7e, 0xf0,
+ 0x13, 0xde, 0xcf, 0xe3, 0x1a, 0xe7, 0x71, 0xab, 0x75, 0xf2, 0x43, 0x2f, 0xd6, 0xf9, 0x7d, 0x58,
+ 0x93, 0xeb, 0x52, 0x9a, 0x8e, 0x5d, 0xd9, 0x31, 0xb7, 0x10, 0x6b, 0x66, 0x98, 0xe0, 0x7f, 0xd5,
+ 0x76, 0x9c, 0x07, 0x2d, 0x16, 0x9e, 0x2e, 0x4c, 0xc0, 0x4d, 0xd8, 0xb6, 0x5a, 0x2d, 0x64, 0x33,
+ 0xcd, 0x66, 0x6f, 0x67, 0x4f, 0x83, 0x1c, 0xa6, 0x01, 0xcb, 0x0f, 0x1e, 0xf8, 0x8b, 0x47, 0xd4,
+ 0x19, 0xac, 0x56, 0x54, 0x79, 0x8b, 0x19, 0x71, 0xad, 0x53, 0xc6, 0xf5, 0x85, 0x36, 0xae, 0xbf,
+ 0x72, 0x3d, 0x16, 0xe4, 0x6d, 0xa7, 0x85, 0x06, 0x0e, 0x35, 0x34, 0x97, 0xfa, 0x04, 0x90, 0x47,
+ 0x2d, 0xdc, 0x2b, 0x28, 0x24, 0xfb, 0xe9, 0x78, 0x5e, 0xea, 0x34, 0x73, 0x32, 0xff, 0x9a, 0x7e,
+ 0xd4, 0xa6, 0xaf, 0x80, 0xbf, 0x3e, 0x01, 0x8e, 0xd2, 0x3e, 0xa0, 0xbe, 0x7b, 0x01, 0x17, 0x75,
+ 0x01, 0xc1, 0x77, 0x29, 0x42, 0x10, 0xce, 0xee, 0xee, 0x85, 0xc0, 0x6c, 0xa4, 0x2f, 0xbc, 0x82,
+ 0x66, 0x47, 0x32, 0x68, 0x29, 0xc3, 0x0e, 0x5a, 0xc2, 0x00, 0xa4, 0xf8, 0x2a, 0x1e, 0x0e, 0x57,
+ 0x05, 0x92, 0xec, 0x0f, 0x57, 0xfd, 0x06, 0x9b, 0x53, 0x60, 0xc2, 0xdc, 0xf4, 0x90, 0x5b, 0x69,
+ 0x11, 0x79, 0x9c, 0xd2, 0xfd, 0x57, 0x3c, 0x20, 0x5e, 0x40, 0x9b, 0x8e, 0x8b, 0x35, 0x7d, 0x8a,
+ 0x0e, 0x88, 0xfe, 0x3b, 0xa7, 0x9f, 0x40, 0xd8, 0x83, 0xba, 0x19, 0x1c, 0xb5, 0xb6, 0x6c, 0xc7,
+ 0x45, 0x81, 0x63, 0xe3, 0xa9, 0x19, 0x7a, 0xd6, 0xbe, 0x27, 0x59, 0xbd, 0x15, 0x1c, 0xb3, 0x9d,
+ 0x45, 0xd4, 0x61, 0x7c, 0xa7, 0xa8, 0xce, 0x12, 0x8d, 0xd8, 0xff, 0x61, 0x5f, 0xd7, 0x32, 0xb7,
+ 0xbf, 0x6b, 0x81, 0x9f, 0x4a, 0x3a, 0x1f, 0xee, 0x01, 0x7e, 0x64, 0x76, 0x99, 0xfa, 0x54, 0x30,
+ 0xd3, 0x62, 0x6e, 0x4f, 0x4d, 0x2b, 0xd0, 0x9a, 0xc8, 0xff, 0x84, 0xcc, 0xa1, 0xc8, 0xe5, 0x78,
+ 0x91, 0x5b, 0x06, 0x93, 0xe4, 0x90, 0x0b, 0x96, 0xb9, 0x7c, 0x4f, 0x2c, 0x3f, 0x32, 0x65, 0x0b,
+ 0x1a, 0xc5, 0xb1, 0x6d, 0xbe, 0xcc, 0x7e, 0xd1, 0x83, 0x9f, 0x93, 0xcd, 0xac, 0xe3, 0x39, 0x34,
+ 0x06, 0xef, 0xd4, 0x1c, 0x38, 0xba, 0xec, 0x3a, 0xbb, 0x9d, 0x6e, 0xa8, 0x9e, 0x7f, 0xd7, 0x7f,
+ 0x33, 0xa2, 0x20, 0x8e, 0x45, 0xfd, 0x15, 0xf7, 0x0c, 0x98, 0x76, 0x59, 0x8f, 0x1a, 0x6e, 0x4d,
+ 0xf0, 0x49, 0xbc, 0x6a, 0x2b, 0x07, 0x51, 0xed, 0x50, 0x41, 0x72, 0x82, 0x82, 0xf4, 0x0a, 0x72,
+ 0xbe, 0x8f, 0x20, 0xff, 0x6d, 0x36, 0xa1, 0x20, 0xf7, 0xb0, 0x28, 0x42, 0x90, 0xcb, 0xa0, 0xb0,
+ 0x45, 0x32, 0x32, 0x39, 0x7e, 0x8c, 0x5c, 0xcb, 0x48, 0xe1, 0x3a, 0xfb, 0x35, 0xe4, 0xab, 0xc2,
+ 0xf1, 0x35, 0x99, 0x50, 0xc5, 0x53, 0x9b, 0xbe, 0x50, 0xbd, 0x3d, 0x07, 0x66, 0x82, 0xda, 0xc9,
+ 0xb9, 0x91, 0xcc, 0xa0, 0x0e, 0x7f, 0xdf, 0xea, 0x4c, 0xd0, 0x95, 0x2a, 0x5c, 0x57, 0xda, 0xa7,
+ 0xf3, 0x9b, 0x4e, 0xd0, 0xf9, 0xcd, 0x44, 0x74, 0x7e, 0xf0, 0x67, 0x14, 0xd9, 0x98, 0xcf, 0x62,
+ 0x1f, 0x40, 0x5a, 0xf7, 0x70, 0xee, 0xd5, 0x24, 0x23, 0x4f, 0x0f, 0x6e, 0x55, 0xfa, 0x42, 0xf3,
+ 0xfe, 0x2c, 0x38, 0x46, 0x7b, 0xc3, 0x0d, 0xbb, 0x1b, 0xf4, 0x45, 0x8f, 0x14, 0xbd, 0x32, 0x70,
+ 0x9b, 0xba, 0x81, 0x57, 0x06, 0x79, 0x13, 0x17, 0xc1, 0x63, 0x8f, 0x7c, 0x09, 0x7d, 0x2e, 0x57,
+ 0x4b, 0xc4, 0x8a, 0x92, 0xdc, 0xa1, 0x2e, 0xc9, 0x42, 0xd3, 0x67, 0xe0, 0xaf, 0x28, 0x60, 0xaa,
+ 0x8e, 0xbc, 0x55, 0xf3, 0x8a, 0xb3, 0xeb, 0x41, 0x53, 0x76, 0xf9, 0xfb, 0x29, 0xa0, 0xd0, 0x26,
+ 0xbf, 0xb0, 0x0b, 0xcc, 0xce, 0xf4, 0x5d, 0x3f, 0x26, 0xfb, 0xe4, 0xb4, 0x68, 0x9d, 0xe5, 0x17,
+ 0xcf, 0xda, 0xc9, 0xec, 0x3e, 0x04, 0xd4, 0x8d, 0x64, 0xe9, 0x34, 0xd1, 0xde, 0x44, 0x54, 0xd5,
+ 0xe9, 0xc3, 0xf2, 0x5c, 0x05, 0xcc, 0xd6, 0x91, 0x57, 0xe9, 0x2e, 0x99, 0x7b, 0x8e, 0x6b, 0x79,
+ 0x88, 0xbf, 0x4b, 0x23, 0x1e, 0x9a, 0xd3, 0x00, 0x58, 0xc1, 0x6f, 0x2c, 0x98, 0x3a, 0x97, 0x02,
+ 0x7f, 0x3b, 0xe9, 0x86, 0xbb, 0x40, 0xc7, 0x48, 0x40, 0x48, 0xb4, 0x87, 0x19, 0x57, 0x7d, 0xfa,
+ 0x40, 0x7c, 0x3e, 0xcb, 0x80, 0x28, 0xb9, 0xcd, 0x6d, 0x6b, 0x0f, 0xb5, 0x12, 0x02, 0xe1, 0xff,
+ 0x16, 0x02, 0x11, 0x14, 0x94, 0x78, 0x7b, 0x58, 0xa0, 0x63, 0x14, 0xdb, 0xc3, 0x71, 0x05, 0x8e,
+ 0xe5, 0x10, 0x2f, 0xee, 0x7a, 0xd8, 0x1a, 0xc3, 0xbd, 0xb2, 0x6c, 0x0d, 0x4d, 0xb8, 0x2c, 0x6f,
+ 0xc2, 0x0d, 0xd5, 0xb1, 0xd0, 0xba, 0x07, 0xc9, 0x74, 0x2e, 0x8d, 0x8e, 0xa5, 0x6f, 0xd5, 0xe9,
+ 0x33, 0xfd, 0xdd, 0x0a, 0x38, 0x11, 0x18, 0x3c, 0x75, 0xe4, 0x2d, 0x9a, 0xdd, 0xed, 0x0b, 0x8e,
+ 0xe9, 0xb6, 0xf8, 0x8b, 0xed, 0x86, 0x3e, 0xc9, 0x02, 0x3f, 0xc7, 0x83, 0x50, 0x15, 0x41, 0xe8,
+ 0xeb, 0x56, 0xd5, 0x97, 0x96, 0x51, 0x74, 0x32, 0xb1, 0x9e, 0x5f, 0xbf, 0x1b, 0x80, 0xf5, 0x0c,
+ 0x01, 0xac, 0x7b, 0x86, 0x25, 0x31, 0x7d, 0xe0, 0x7e, 0x8d, 0x8e, 0x08, 0x9c, 0x07, 0xe0, 0x03,
+ 0xb2, 0x80, 0x45, 0x78, 0x80, 0x29, 0xd1, 0x87, 0x35, 0x86, 0x19, 0x23, 0x06, 0x7a, 0xef, 0xa5,
+ 0x3b, 0x46, 0x1c, 0xa2, 0x67, 0xde, 0xdb, 0x15, 0x50, 0x24, 0xc7, 0x9b, 0x39, 0xef, 0x48, 0xf8,
+ 0xa0, 0x2c, 0x3a, 0xfb, 0x3c, 0x31, 0x27, 0x92, 0x7a, 0x62, 0xc2, 0xb7, 0x25, 0xf5, 0xb7, 0xec,
+ 0xa5, 0x76, 0x24, 0x88, 0x25, 0x72, 0xa7, 0x1c, 0x40, 0x41, 0xfa, 0xa0, 0xfd, 0x67, 0x05, 0x00,
+ 0xac, 0xd0, 0xcc, 0xc5, 0xef, 0x99, 0xb2, 0x70, 0xdd, 0xc6, 0xfb, 0xa0, 0x62, 0xa0, 0x4e, 0xf4,
+ 0x00, 0x45, 0x4b, 0x0c, 0x9d, 0x07, 0x5f, 0x9f, 0xd4, 0x77, 0x29, 0xa4, 0x6a, 0x24, 0xb0, 0x24,
+ 0xf2, 0x66, 0x8a, 0xac, 0x3b, 0x7d, 0x40, 0x7e, 0x2f, 0x0b, 0xf2, 0x86, 0x53, 0x47, 0xde, 0xc1,
+ 0x4d, 0x81, 0xc4, 0xc7, 0x51, 0x49, 0xbd, 0xa3, 0x38, 0x8e, 0xda, 0xaf, 0xa0, 0xf4, 0x59, 0xf7,
+ 0xae, 0x2c, 0x98, 0x31, 0x9c, 0x72, 0xb0, 0x58, 0x25, 0xef, 0x0b, 0x26, 0x7f, 0x6f, 0x55, 0xd0,
+ 0xc0, 0xb0, 0x9a, 0x03, 0xdd, 0x5b, 0x35, 0xb8, 0xbc, 0xf4, 0xf9, 0x76, 0x27, 0x38, 0xba, 0x61,
+ 0xb7, 0x1c, 0x1d, 0xb5, 0x1c, 0xb6, 0x24, 0xab, 0xaa, 0x20, 0xb7, 0x6b, 0xb7, 0x1c, 0x42, 0x72,
+ 0x5e, 0x27, 0xcf, 0x38, 0xcd, 0x45, 0x2d, 0x87, 0xed, 0xd7, 0x91, 0x67, 0xf8, 0x35, 0x05, 0xe4,
+ 0xf0, 0xbf, 0xf2, 0xac, 0x7e, 0xbb, 0x92, 0xf0, 0x80, 0x2d, 0x2e, 0x7e, 0x24, 0x96, 0xd0, 0xbd,
+ 0xdc, 0x22, 0x35, 0xf5, 0x10, 0xbb, 0x21, 0xaa, 0x3e, 0x8e, 0x15, 0xe1, 0xe2, 0xb4, 0x7a, 0x0a,
+ 0x4c, 0x5c, 0x68, 0x3b, 0xcd, 0x8b, 0xe1, 0x39, 0x50, 0xf6, 0xaa, 0xde, 0x02, 0xf2, 0xae, 0x69,
+ 0x6f, 0x21, 0xb6, 0xf8, 0x7d, 0xbc, 0xa7, 0x2f, 0x24, 0x3b, 0xd1, 0x3a, 0xcd, 0x02, 0xdf, 0x96,
+ 0xe4, 0x68, 0x6f, 0x9f, 0xc6, 0x27, 0x93, 0x87, 0xc5, 0x21, 0x4e, 0x61, 0x14, 0xc1, 0x4c, 0xb9,
+ 0x44, 0x6f, 0x88, 0x5b, 0xab, 0x9d, 0xd3, 0x8a, 0x0a, 0x81, 0x19, 0xf3, 0x24, 0x45, 0x98, 0x71,
+ 0xf1, 0xff, 0x6e, 0x61, 0xee, 0xd3, 0xf8, 0xc3, 0x80, 0xf9, 0xe3, 0x59, 0x30, 0xbb, 0x6a, 0x75,
+ 0xbd, 0x28, 0x6f, 0xda, 0x98, 0xe8, 0x46, 0x2f, 0x4c, 0x6a, 0x2a, 0x0b, 0xf5, 0x48, 0x87, 0x35,
+ 0x4a, 0x64, 0x0e, 0xc7, 0x55, 0x31, 0x1e, 0xb7, 0x6f, 0x42, 0x01, 0xbd, 0xd5, 0x49, 0x9a, 0x93,
+ 0x89, 0x0d, 0xa5, 0xb0, 0x92, 0xf1, 0x1b, 0x4a, 0x91, 0x75, 0xa7, 0xcf, 0xdf, 0xaf, 0x65, 0xc1,
+ 0x31, 0x5c, 0x7d, 0xdc, 0xb2, 0x54, 0x34, 0x9b, 0x07, 0x2e, 0x4b, 0x25, 0x5e, 0x19, 0xdf, 0x47,
+ 0xcb, 0x28, 0x56, 0xc6, 0x07, 0x15, 0x3a, 0x66, 0x36, 0x47, 0x2c, 0xc3, 0x0e, 0x62, 0x73, 0xcc,
+ 0x32, 0xec, 0xf0, 0x6c, 0x8e, 0x5f, 0x8a, 0x1d, 0x92, 0xcd, 0x87, 0xb6, 0xc0, 0xfa, 0x3a, 0x25,
+ 0x60, 0x73, 0xe4, 0xda, 0x46, 0x0c, 0x9b, 0x13, 0x9f, 0x6e, 0x83, 0xef, 0x18, 0x92, 0xf1, 0x23,
+ 0x5e, 0xdf, 0x18, 0x06, 0xa6, 0x43, 0x5c, 0xe3, 0x78, 0x99, 0x02, 0xe6, 0x18, 0x15, 0xfd, 0xa7,
+ 0xcc, 0x31, 0x18, 0x25, 0x9e, 0x32, 0x27, 0xf6, 0xb1, 0x17, 0x29, 0x1b, 0xbf, 0x8f, 0x7d, 0x6c,
+ 0xfd, 0xe9, 0x83, 0xf3, 0xf5, 0x1c, 0x38, 0x89, 0x49, 0x58, 0x73, 0x5a, 0xd6, 0xe6, 0x15, 0x4a,
+ 0xc5, 0x39, 0xb3, 0xbd, 0x8b, 0xba, 0xf0, 0xbd, 0x59, 0x59, 0x94, 0xfe, 0x0f, 0x00, 0x9c, 0x0e,
+ 0x72, 0x69, 0x80, 0x20, 0x06, 0xd4, 0xdd, 0x51, 0x8d, 0xdd, 0x5f, 0x53, 0x10, 0xb4, 0xb7, 0xe6,
+ 0x17, 0xa2, 0x73, 0xe5, 0x61, 0xab, 0x70, 0x2a, 0xf8, 0xd2, 0xeb, 0xf0, 0x91, 0xd9, 0xef, 0xf0,
+ 0x71, 0x33, 0x50, 0xcc, 0x56, 0x2b, 0x80, 0xaa, 0x77, 0x33, 0x9b, 0xd4, 0xa9, 0xe3, 0x2c, 0x38,
+ 0x67, 0x17, 0x85, 0x47, 0x5f, 0x22, 0x72, 0x76, 0x91, 0xa7, 0xce, 0x83, 0x02, 0xbd, 0xe1, 0x2a,
+ 0x58, 0xd1, 0xef, 0x9f, 0x99, 0xe5, 0x12, 0x4d, 0xbb, 0x9a, 0x28, 0x86, 0x77, 0x26, 0xe2, 0x4c,
+ 0xbf, 0x7e, 0x3a, 0xb4, 0x93, 0x75, 0x41, 0xc0, 0x9e, 0x36, 0x74, 0xc9, 0xe3, 0xd9, 0x0d, 0x2b,
+ 0x75, 0x3a, 0xed, 0x2b, 0x06, 0x0b, 0x46, 0x90, 0x68, 0x37, 0x8c, 0x8b, 0x69, 0x90, 0xed, 0x8d,
+ 0x69, 0x90, 0x7c, 0x37, 0x4c, 0xa0, 0x63, 0x14, 0xbb, 0x61, 0x71, 0x05, 0x8e, 0x61, 0x3d, 0x32,
+ 0x4f, 0xad, 0x66, 0x16, 0x7b, 0xf1, 0x8d, 0xd9, 0xbe, 0xee, 0x54, 0x40, 0x74, 0xa7, 0xea, 0x17,
+ 0x96, 0x31, 0x36, 0xe6, 0xac, 0xfa, 0x04, 0x50, 0xd8, 0x74, 0xdc, 0x1d, 0xd3, 0xdf, 0xb8, 0xef,
+ 0xf5, 0xde, 0x66, 0xf1, 0x0e, 0x97, 0x48, 0x1e, 0x9d, 0xe5, 0xc5, 0xf3, 0x91, 0x67, 0x59, 0x1d,
+ 0x16, 0x4d, 0x0c, 0x3f, 0xaa, 0x37, 0x82, 0x59, 0x16, 0x54, 0xac, 0x8a, 0xba, 0x1e, 0x6a, 0xb1,
+ 0xd3, 0xdd, 0x62, 0xa2, 0x7a, 0x16, 0xcc, 0xb0, 0x84, 0x25, 0xab, 0x8d, 0xba, 0xec, 0x4a, 0x47,
+ 0x21, 0x4d, 0x3d, 0x09, 0x0a, 0x56, 0xf7, 0xe9, 0x5d, 0xc7, 0x26, 0x3e, 0xb9, 0x93, 0x3a, 0x7b,
+ 0x23, 0x6e, 0x3b, 0x34, 0x5f, 0x60, 0xac, 0x52, 0x27, 0xfa, 0xde, 0x64, 0xf8, 0x99, 0x61, 0x26,
+ 0x0e, 0x89, 0xe3, 0x4c, 0x62, 0x14, 0x76, 0x9b, 0x4d, 0x84, 0x5a, 0xec, 0xb4, 0x81, 0xff, 0x9a,
+ 0x30, 0x02, 0x65, 0xe2, 0x69, 0xc6, 0x21, 0x85, 0xa0, 0xfc, 0xc0, 0x09, 0x50, 0xa0, 0x61, 0xd9,
+ 0xe1, 0x4b, 0xe6, 0xfa, 0x0a, 0xe3, 0x9c, 0x28, 0x8c, 0x1b, 0x60, 0xc6, 0x76, 0x70, 0x75, 0xeb,
+ 0xa6, 0x6b, 0xee, 0x74, 0xe3, 0x56, 0x11, 0x69, 0xb9, 0xc1, 0x90, 0x51, 0xe5, 0x7e, 0x5b, 0x39,
+ 0xa2, 0x0b, 0xc5, 0xa8, 0xff, 0x27, 0x38, 0x7a, 0x81, 0x9d, 0xb0, 0xed, 0xb2, 0x92, 0xb3, 0xd1,
+ 0x3e, 0x77, 0x3d, 0x25, 0x2f, 0x88, 0x7f, 0xae, 0x1c, 0xd1, 0x7b, 0x0b, 0x53, 0x7f, 0x02, 0xcc,
+ 0xe1, 0xd7, 0x96, 0x73, 0xc9, 0x27, 0x5c, 0x89, 0x36, 0x34, 0x7a, 0x8a, 0x5f, 0x13, 0x7e, 0x5c,
+ 0x39, 0xa2, 0xf7, 0x14, 0xa5, 0xd6, 0x00, 0xd8, 0xf6, 0x76, 0xda, 0xac, 0xe0, 0x5c, 0xb4, 0x48,
+ 0xf6, 0x14, 0xbc, 0x12, 0xfc, 0xb4, 0x72, 0x44, 0xe7, 0x8a, 0x50, 0x57, 0xc1, 0x94, 0x77, 0xd9,
+ 0x63, 0xe5, 0xe5, 0xa3, 0x37, 0xb7, 0x7b, 0xca, 0x33, 0xfc, 0x7f, 0x56, 0x8e, 0xe8, 0x61, 0x01,
+ 0x6a, 0x05, 0x4c, 0x76, 0x2e, 0xb0, 0xc2, 0x0a, 0x7d, 0xae, 0xa2, 0xee, 0x5f, 0xd8, 0xfa, 0x85,
+ 0xa0, 0xac, 0xe0, 0x77, 0x4c, 0x58, 0xb3, 0xbb, 0xc7, 0xca, 0x9a, 0x90, 0x26, 0xac, 0xec, 0xff,
+ 0x83, 0x09, 0x0b, 0x0a, 0x50, 0x2b, 0x60, 0xaa, 0x6b, 0x9b, 0x9d, 0xee, 0xb6, 0xe3, 0x75, 0x4f,
+ 0x4d, 0xf6, 0xf8, 0x45, 0x46, 0x97, 0x56, 0x67, 0xff, 0xe8, 0xe1, 0xdf, 0xea, 0x13, 0xc0, 0x89,
+ 0x5d, 0x72, 0xbd, 0x9d, 0x76, 0xd9, 0xea, 0x7a, 0x96, 0xbd, 0xe5, 0xc7, 0x46, 0xa4, 0xbd, 0x49,
+ 0xff, 0x8f, 0xea, 0x3c, 0x3b, 0xa5, 0x00, 0x88, 0x6e, 0xc2, 0xde, 0xcd, 0x38, 0x5a, 0x2d, 0x77,
+ 0x38, 0xe1, 0xa9, 0x20, 0x87, 0x3f, 0x11, 0xcf, 0xc2, 0xb9, 0xfe, 0x0b, 0x7d, 0xbd, 0xb2, 0x43,
+ 0x14, 0x18, 0xff, 0x84, 0xc7, 0x46, 0xdb, 0x59, 0x77, 0x9d, 0x2d, 0x17, 0x75, 0xbb, 0xcc, 0xe1,
+ 0x90, 0x4b, 0xc1, 0x0a, 0x6e, 0x75, 0xd7, 0xac, 0x2d, 0x6a, 0x3d, 0x31, 0x77, 0x6c, 0x3e, 0x89,
+ 0xce, 0x36, 0xab, 0xe8, 0x12, 0xb9, 0x32, 0xed, 0xd4, 0x51, 0x7f, 0xb6, 0xe9, 0xa7, 0xc0, 0x9b,
+ 0xc0, 0x0c, 0xaf, 0x64, 0xf4, 0x6e, 0x17, 0x2b, 0xb4, 0xbd, 0xd8, 0x1b, 0xbc, 0x11, 0xcc, 0x89,
+ 0x32, 0xcd, 0x0d, 0x31, 0x8a, 0xdf, 0x15, 0xc2, 0x1b, 0xc0, 0xd1, 0x1e, 0xc5, 0xf2, 0xcf, 0xec,
+ 0x67, 0xc2, 0x33, 0xfb, 0x67, 0x00, 0x08, 0xa5, 0xb8, 0x6f, 0x31, 0xd7, 0x83, 0xa9, 0x40, 0x2e,
+ 0xfb, 0x66, 0xf8, 0x4a, 0x06, 0x4c, 0xfa, 0xc2, 0xd6, 0x2f, 0x03, 0x1e, 0x5f, 0x6c, 0x6e, 0x03,
+ 0x81, 0x4d, 0xb3, 0x85, 0x34, 0x3c, 0x8e, 0x84, 0x6e, 0xbc, 0x86, 0xe5, 0xb5, 0xfd, 0xe3, 0x28,
+ 0xbd, 0xc9, 0xea, 0x3a, 0x00, 0x16, 0xc1, 0xc8, 0x08, 0xcf, 0xa7, 0x3c, 0x2e, 0x81, 0x3e, 0x50,
+ 0x79, 0xe0, 0xca, 0x38, 0xfb, 0x48, 0x76, 0x78, 0x64, 0x0a, 0xe4, 0xeb, 0xeb, 0xa5, 0xb2, 0x56,
+ 0x3c, 0xa2, 0xce, 0x01, 0xa0, 0x3d, 0x73, 0x5d, 0xd3, 0x2b, 0x5a, 0xb5, 0xac, 0x15, 0x33, 0xf0,
+ 0xe5, 0x59, 0x30, 0x15, 0x28, 0x41, 0xdf, 0x46, 0x6a, 0x4c, 0xb4, 0x06, 0x5e, 0x9f, 0xb1, 0x5f,
+ 0xa9, 0x78, 0x21, 0x7b, 0x0a, 0xb8, 0x7a, 0xb7, 0x8b, 0x96, 0x2c, 0xb7, 0xeb, 0xe9, 0xce, 0xa5,
+ 0x25, 0xc7, 0x0d, 0xa2, 0x81, 0xfa, 0xd7, 0x44, 0x47, 0x7c, 0xc6, 0x16, 0x45, 0x0b, 0x91, 0x23,
+ 0x0c, 0xc8, 0x65, 0x2b, 0xc3, 0x61, 0x02, 0x2e, 0xd7, 0xa3, 0xf7, 0x32, 0x77, 0x91, 0xee, 0x5c,
+ 0xea, 0x96, 0xec, 0x56, 0xd9, 0x69, 0xef, 0xee, 0xd8, 0x5d, 0x66, 0x13, 0x44, 0x7d, 0xc6, 0xdc,
+ 0x21, 0x97, 0xe3, 0xcc, 0x01, 0x50, 0xae, 0xad, 0xae, 0x6a, 0x65, 0xa3, 0x52, 0xab, 0x16, 0x8f,
+ 0x60, 0x6e, 0x19, 0xa5, 0x85, 0x55, 0xcc, 0x9d, 0x9f, 0x04, 0x93, 0xbe, 0x4e, 0xef, 0xbb, 0x13,
+ 0xbb, 0x04, 0x26, 0x7d, 0x2d, 0x67, 0x23, 0xc2, 0xa3, 0x7a, 0x8f, 0xa2, 0xed, 0x98, 0xae, 0x47,
+ 0xfc, 0xa7, 0xfd, 0x42, 0x16, 0xcc, 0x2e, 0xd2, 0x83, 0xdf, 0xce, 0x3e, 0x96, 0x51, 0xa0, 0x82,
+ 0xb9, 0xd2, 0xea, 0x6a, 0xa3, 0xa6, 0x37, 0xaa, 0x35, 0x63, 0xa5, 0x52, 0x5d, 0xa6, 0x23, 0x64,
+ 0x65, 0xb9, 0x5a, 0xd3, 0x35, 0x3a, 0x40, 0xd6, 0x8b, 0x19, 0x7a, 0x39, 0xd3, 0xc2, 0x24, 0x28,
+ 0x74, 0x08, 0x77, 0xe1, 0x17, 0x95, 0x84, 0x27, 0x4d, 0x03, 0x9c, 0x22, 0xae, 0x8f, 0x11, 0x7c,
+ 0xd0, 0xb3, 0x7d, 0xce, 0x69, 0x9d, 0x05, 0x33, 0xd4, 0x96, 0xeb, 0x92, 0xe5, 0x7b, 0x76, 0x03,
+ 0xa3, 0x90, 0x06, 0x3f, 0x94, 0x4d, 0x70, 0xfc, 0xb4, 0x2f, 0x45, 0xc9, 0x8c, 0x8b, 0xbf, 0x1a,
+ 0xe6, 0x32, 0x26, 0x15, 0xcc, 0x55, 0xaa, 0x86, 0xa6, 0x57, 0x4b, 0xab, 0x2c, 0x8b, 0xa2, 0x9e,
+ 0x02, 0xc7, 0xab, 0x35, 0x16, 0xff, 0xaa, 0x4e, 0xae, 0x7d, 0x5d, 0x5b, 0xaf, 0xe9, 0x46, 0x31,
+ 0xaf, 0x9e, 0x04, 0x2a, 0x7d, 0x16, 0x6e, 0x4d, 0x2e, 0xa8, 0x8f, 0x06, 0x37, 0xac, 0x56, 0xd6,
+ 0x2a, 0x46, 0xa3, 0xb6, 0xd4, 0xd0, 0x6b, 0xe7, 0xeb, 0x18, 0x41, 0x5d, 0x5b, 0x2d, 0x61, 0x41,
+ 0xe2, 0x2e, 0x69, 0x9a, 0x50, 0xaf, 0x02, 0x47, 0xc9, 0x05, 0x6c, 0xe4, 0xe6, 0x65, 0x5a, 0xdf,
+ 0xa4, 0x7a, 0x1d, 0x38, 0x55, 0xa9, 0xd6, 0x37, 0x96, 0x96, 0x2a, 0xe5, 0x8a, 0x56, 0x35, 0x1a,
+ 0xeb, 0x9a, 0xbe, 0x56, 0xa9, 0xd7, 0xf1, 0xbf, 0xc5, 0x29, 0xf8, 0x01, 0x05, 0x14, 0x68, 0x9f,
+ 0x09, 0xdf, 0xa3, 0x80, 0xd9, 0x73, 0x66, 0xdb, 0xc2, 0x03, 0x05, 0xb9, 0x1b, 0x0b, 0x5e, 0x2f,
+ 0xb8, 0xa6, 0x7b, 0xe4, 0x0e, 0x2d, 0xe6, 0x9a, 0x4e, 0x5e, 0xe0, 0xcf, 0xf1, 0xa2, 0x61, 0x88,
+ 0xa2, 0xf1, 0xb4, 0x18, 0x20, 0x68, 0x8d, 0xf3, 0x42, 0x6d, 0x11, 0x93, 0x9b, 0x57, 0x07, 0x38,
+ 0x9f, 0x17, 0x70, 0x2e, 0x1f, 0xac, 0xf8, 0x64, 0xe0, 0xff, 0xfa, 0xa8, 0xc0, 0x2f, 0x82, 0x99,
+ 0x8d, 0x6a, 0x69, 0xc3, 0x58, 0xa9, 0xe9, 0x95, 0x1f, 0x27, 0x51, 0x74, 0x67, 0xc1, 0xd4, 0x52,
+ 0x4d, 0x5f, 0xa8, 0x2c, 0x2e, 0x6a, 0xd5, 0x62, 0x5e, 0xbd, 0x1a, 0x5c, 0x55, 0xd7, 0xf4, 0x73,
+ 0x95, 0xb2, 0xd6, 0xd8, 0xa8, 0x96, 0xce, 0x95, 0x2a, 0xab, 0xa4, 0x8f, 0x28, 0xc4, 0xdc, 0xeb,
+ 0x35, 0x01, 0x7f, 0x3a, 0x07, 0x00, 0x6d, 0x3a, 0xb6, 0xa4, 0xf9, 0xdb, 0x9f, 0xfe, 0x3a, 0xe9,
+ 0xa4, 0x21, 0x2c, 0x26, 0x42, 0x7f, 0x2b, 0x60, 0xd2, 0x65, 0x1f, 0xd8, 0xf2, 0xc9, 0xa0, 0x72,
+ 0xe8, 0xa3, 0x5f, 0x9a, 0x1e, 0xfc, 0x0e, 0xdf, 0x9b, 0x64, 0x8e, 0x10, 0x49, 0x58, 0x32, 0x24,
+ 0x97, 0x46, 0x03, 0x24, 0x7c, 0x41, 0x06, 0xcc, 0x89, 0x0d, 0xc3, 0x8d, 0x20, 0xc6, 0x94, 0x5c,
+ 0x23, 0xc4, 0x9f, 0x39, 0x23, 0xeb, 0xec, 0x1d, 0x6c, 0x38, 0x05, 0xbe, 0x66, 0xd2, 0xd3, 0x98,
+ 0xbe, 0xc5, 0x52, 0xcc, 0x60, 0xe2, 0xb1, 0xd1, 0x41, 0xaf, 0xfe, 0x35, 0x2e, 0x7b, 0x45, 0x05,
+ 0xbe, 0x2b, 0x07, 0x66, 0x85, 0xeb, 0xa5, 0xe0, 0xb7, 0x33, 0x32, 0x57, 0xc6, 0x70, 0x17, 0x57,
+ 0x65, 0x0e, 0x7a, 0x71, 0xd5, 0xd9, 0x9f, 0xcd, 0x80, 0x09, 0x96, 0x48, 0x18, 0x5c, 0xab, 0x62,
+ 0x5b, 0xe0, 0x28, 0x98, 0x5e, 0xd6, 0x8c, 0x46, 0xdd, 0x28, 0xe9, 0x86, 0xb6, 0x58, 0xcc, 0xa8,
+ 0x27, 0xc0, 0xb1, 0x75, 0x4d, 0xaf, 0xd7, 0x30, 0x3f, 0xd7, 0xf5, 0x1a, 0xe9, 0x08, 0x29, 0x9b,
+ 0x31, 0x0c, 0xab, 0xda, 0xe2, 0xb2, 0xd6, 0x58, 0x28, 0xd5, 0xb5, 0xa2, 0x82, 0xff, 0xad, 0xd6,
+ 0x0c, 0xad, 0xde, 0x58, 0xac, 0x94, 0xf4, 0x07, 0x8a, 0x39, 0xfc, 0x6f, 0xdd, 0xd0, 0x4b, 0x86,
+ 0xb6, 0x5c, 0x29, 0x93, 0x0b, 0x93, 0xb1, 0x06, 0xe4, 0xf1, 0x60, 0xaa, 0xad, 0xad, 0x1b, 0x0f,
+ 0x14, 0x0b, 0xc9, 0xbd, 0xfa, 0x7a, 0x1b, 0x37, 0x66, 0xaf, 0xbe, 0xb8, 0xea, 0xc7, 0x70, 0xb3,
+ 0x96, 0x02, 0x8a, 0x94, 0x02, 0xed, 0x72, 0x07, 0xb9, 0x16, 0xb2, 0x9b, 0x08, 0x5e, 0x94, 0x89,
+ 0xb8, 0xb7, 0x2f, 0x7e, 0x15, 0x19, 0x23, 0x38, 0xcb, 0x93, 0xbe, 0xf4, 0x18, 0xed, 0xb9, 0x7d,
+ 0x46, 0xfb, 0x27, 0x93, 0xba, 0xf5, 0xf5, 0x92, 0x3b, 0x12, 0xc8, 0x3e, 0x96, 0xc4, 0xad, 0x6f,
+ 0x00, 0x05, 0x63, 0x09, 0xa4, 0x19, 0x31, 0xa6, 0x17, 0x15, 0xf8, 0xd6, 0x29, 0x50, 0xa4, 0x84,
+ 0x72, 0xbe, 0x52, 0xbf, 0xc2, 0xee, 0xf8, 0x6a, 0x24, 0x08, 0xfd, 0xe4, 0x1f, 0xcd, 0xcd, 0x8a,
+ 0x47, 0x73, 0x85, 0xa5, 0x37, 0xa5, 0x77, 0x7f, 0x3b, 0xa9, 0xfa, 0x71, 0x8e, 0x51, 0xd1, 0xd1,
+ 0xf6, 0xd2, 0x53, 0xbf, 0xd8, 0xea, 0xc7, 0x73, 0x0f, 0x0d, 0xbb, 0x69, 0x4a, 0x93, 0x45, 0x26,
+ 0xfe, 0xba, 0xad, 0xa4, 0x5e, 0xb2, 0x82, 0x63, 0x5a, 0xcc, 0x1d, 0x54, 0xe9, 0x79, 0xc9, 0x0e,
+ 0xa2, 0x20, 0x7d, 0x14, 0x7e, 0x90, 0x05, 0xb9, 0xba, 0xe3, 0x7a, 0xa3, 0xc2, 0x20, 0xe9, 0xce,
+ 0x1e, 0xc7, 0x81, 0x7a, 0xf4, 0xcc, 0x29, 0xbd, 0x9d, 0xbd, 0xf8, 0xfa, 0xc7, 0x10, 0x3d, 0xeb,
+ 0x28, 0x98, 0xa3, 0x94, 0x04, 0xa1, 0xe0, 0xbf, 0x9f, 0xa5, 0xfd, 0xd5, 0xfd, 0xb2, 0x88, 0x9c,
+ 0x05, 0x33, 0xdc, 0xce, 0x5a, 0x70, 0x2d, 0x29, 0x9f, 0x06, 0x7f, 0x93, 0xc7, 0x65, 0x51, 0xc4,
+ 0xa5, 0xdf, 0xbc, 0x31, 0x88, 0xa6, 0x3e, 0xaa, 0x9e, 0x29, 0x49, 0x20, 0xae, 0x98, 0xca, 0xd3,
+ 0x47, 0xe4, 0x39, 0x0a, 0x28, 0x30, 0xcf, 0xa6, 0x91, 0x22, 0x90, 0x54, 0x33, 0x02, 0x26, 0xc8,
+ 0x79, 0x40, 0x29, 0xa3, 0xd6, 0x8c, 0xf8, 0xfa, 0xd3, 0xc7, 0xe1, 0x87, 0xcc, 0x65, 0xaf, 0xb4,
+ 0x67, 0x5a, 0x6d, 0xf3, 0x42, 0x3b, 0x41, 0x00, 0xcc, 0x0f, 0x25, 0x3c, 0xa4, 0x14, 0x34, 0x55,
+ 0xa8, 0x2f, 0x82, 0xe3, 0x4f, 0x04, 0x53, 0x6e, 0xb0, 0xb0, 0xe6, 0x9f, 0xe1, 0xee, 0x71, 0x97,
+ 0x64, 0xdf, 0xf5, 0x30, 0x67, 0xa2, 0x13, 0x49, 0x52, 0xf4, 0x8c, 0xe5, 0x04, 0xc5, 0x74, 0xa9,
+ 0xd5, 0x5a, 0x42, 0xa6, 0xb7, 0xeb, 0xa2, 0x56, 0xa2, 0x21, 0x42, 0x64, 0xd1, 0x14, 0xcf, 0x09,
+ 0x21, 0x6c, 0xd5, 0xaa, 0x88, 0xce, 0x93, 0x06, 0xf4, 0x06, 0x3e, 0x2d, 0x23, 0xe9, 0x92, 0xde,
+ 0x12, 0x40, 0x52, 0x13, 0x20, 0x79, 0xea, 0x70, 0x44, 0xa4, 0x0f, 0xc8, 0xaf, 0x2a, 0x60, 0x8e,
+ 0xda, 0x09, 0xa3, 0xc6, 0xe4, 0x0f, 0x13, 0x7a, 0x42, 0x70, 0x97, 0x6d, 0xf0, 0xe4, 0x8c, 0x04,
+ 0x96, 0x24, 0x7e, 0x13, 0x72, 0x74, 0xa4, 0x8f, 0xcc, 0x67, 0x0a, 0x00, 0x70, 0xde, 0x6d, 0x1f,
+ 0x2a, 0x84, 0x21, 0xa4, 0xe0, 0xdb, 0xd8, 0xfc, 0xa3, 0x2e, 0xc4, 0x26, 0xe5, 0x3c, 0xd7, 0x82,
+ 0x6d, 0x15, 0x31, 0x51, 0x6a, 0x54, 0xf9, 0xab, 0x84, 0x36, 0x2f, 0xf3, 0x2d, 0x1b, 0x38, 0xb8,
+ 0x0f, 0xd9, 0xcb, 0x7d, 0x38, 0x81, 0xf1, 0x3b, 0x88, 0x94, 0x64, 0xa8, 0xad, 0x0e, 0x31, 0x97,
+ 0x3c, 0x05, 0x8e, 0xeb, 0x5a, 0x69, 0xb1, 0x56, 0x5d, 0x7d, 0x80, 0xbf, 0x95, 0xa1, 0xa8, 0xf0,
+ 0x93, 0x93, 0x54, 0x60, 0x7b, 0x6d, 0xc2, 0x3e, 0x50, 0xe4, 0x55, 0xdc, 0x6c, 0x85, 0x9b, 0xce,
+ 0x0f, 0xee, 0xd5, 0x24, 0x8a, 0x3d, 0x4c, 0x14, 0xde, 0x34, 0xc5, 0xa9, 0xd1, 0xf3, 0x15, 0x50,
+ 0x0c, 0x2f, 0xf1, 0x65, 0x57, 0xec, 0xd4, 0x44, 0xe7, 0xb7, 0x0e, 0xdd, 0x45, 0x09, 0x9d, 0xdf,
+ 0xfc, 0x04, 0xf5, 0x26, 0x30, 0xd7, 0xdc, 0x46, 0xcd, 0x8b, 0x15, 0xdb, 0xdf, 0x1d, 0xa6, 0x5b,
+ 0x89, 0x3d, 0xa9, 0x22, 0x30, 0xf7, 0x8b, 0xc0, 0x88, 0x93, 0x68, 0x61, 0x90, 0xe6, 0x89, 0x8a,
+ 0xc0, 0xe5, 0x4f, 0x03, 0x5c, 0xaa, 0x02, 0x2e, 0x77, 0x0d, 0x55, 0x6a, 0x32, 0x58, 0xaa, 0x43,
+ 0xc0, 0x02, 0xc1, 0xc9, 0xda, 0xba, 0x51, 0xa9, 0x55, 0x1b, 0x1b, 0x75, 0x6d, 0xb1, 0xb1, 0xe0,
+ 0x83, 0x53, 0x2f, 0x2a, 0xf0, 0x1b, 0x59, 0x30, 0x41, 0xc9, 0xea, 0xf6, 0x5c, 0xba, 0x1b, 0xef,
+ 0xf5, 0x07, 0xdf, 0x2a, 0x7d, 0x86, 0x3f, 0x60, 0x04, 0xab, 0x27, 0xa2, 0x9f, 0x7a, 0x0a, 0x98,
+ 0xa0, 0x20, 0xfb, 0x4e, 0x23, 0xa7, 0x23, 0x7a, 0x29, 0x56, 0x8c, 0xee, 0x67, 0x97, 0x3c, 0xcf,
+ 0x3f, 0x80, 0x8c, 0xf4, 0x47, 0x96, 0x37, 0x28, 0xd4, 0x0c, 0x3e, 0x6f, 0x79, 0xdb, 0xc4, 0x29,
+ 0x10, 0x3e, 0x43, 0x66, 0x89, 0xf2, 0x56, 0x90, 0xdf, 0xc3, 0xb9, 0x07, 0x38, 0x58, 0xd2, 0x4c,
+ 0xf0, 0x4f, 0xa4, 0x23, 0x5f, 0x09, 0xf2, 0x19, 0xd0, 0x14, 0xbd, 0xe1, 0x39, 0xa8, 0x27, 0x54,
+ 0xa1, 0x70, 0xa8, 0x49, 0xb9, 0x59, 0x49, 0x1c, 0x33, 0x4d, 0x8a, 0xa4, 0xb1, 0xcc, 0xe4, 0x27,
+ 0x56, 0xac, 0xae, 0xe7, 0xb8, 0x57, 0xe0, 0xeb, 0x33, 0x60, 0xe2, 0x1c, 0x72, 0xbb, 0x96, 0x63,
+ 0xef, 0xdb, 0xd5, 0x3e, 0x03, 0xa6, 0x3b, 0x2e, 0xda, 0xb3, 0x9c, 0xdd, 0x6e, 0xb8, 0x82, 0xc2,
+ 0x27, 0x61, 0x96, 0x98, 0xbb, 0xde, 0xb6, 0xe3, 0x86, 0x81, 0x0d, 0xfc, 0x77, 0xf5, 0x34, 0x00,
+ 0xf4, 0xb9, 0x6a, 0xee, 0x20, 0xb6, 0x57, 0xcf, 0xa5, 0xa8, 0x2a, 0xc8, 0x79, 0xd6, 0x0e, 0x62,
+ 0x71, 0x09, 0xc9, 0x33, 0x96, 0x12, 0x12, 0x45, 0x8c, 0x45, 0x6b, 0x53, 0x74, 0xff, 0x15, 0xfe,
+ 0x96, 0x02, 0xa6, 0x97, 0x91, 0xc7, 0x48, 0xed, 0xf2, 0xe1, 0x81, 0x62, 0x62, 0x77, 0xe3, 0x71,
+ 0xb0, 0x6d, 0x76, 0xfd, 0xdf, 0x82, 0x65, 0x52, 0x31, 0x31, 0x8c, 0x91, 0xa8, 0x70, 0x61, 0x50,
+ 0xe1, 0xbb, 0xb2, 0xb2, 0x07, 0x52, 0x19, 0x33, 0xe7, 0x39, 0x02, 0x23, 0x3b, 0x81, 0xc9, 0x3d,
+ 0x96, 0x63, 0x5f, 0xcc, 0x5a, 0xbe, 0x24, 0x56, 0x8c, 0x1e, 0xe4, 0x96, 0x3c, 0xca, 0x3a, 0x98,
+ 0x92, 0xf4, 0xc5, 0xeb, 0xbb, 0x0a, 0x98, 0xae, 0x6f, 0x3b, 0x97, 0x18, 0x01, 0xfc, 0x85, 0xbf,
+ 0x71, 0x50, 0x5d, 0x07, 0xa6, 0xf6, 0x7a, 0x60, 0x0a, 0x13, 0xa2, 0xef, 0xa5, 0x85, 0x0f, 0x29,
+ 0x49, 0x61, 0xe2, 0x88, 0x1b, 0xf9, 0xad, 0xb1, 0xea, 0x93, 0xc0, 0x04, 0xa3, 0x9a, 0x2d, 0x74,
+ 0xc4, 0x03, 0xec, 0x67, 0xe6, 0x1b, 0x98, 0x13, 0x1b, 0x98, 0x0c, 0xf9, 0xe8, 0xc6, 0x8d, 0x21,
+ 0x32, 0x7c, 0x96, 0x04, 0x32, 0xf0, 0x81, 0x2f, 0x8f, 0x00, 0x78, 0xf8, 0xbd, 0x8c, 0xec, 0x72,
+ 0x60, 0xc0, 0x81, 0x80, 0x82, 0x03, 0x45, 0xda, 0x1f, 0x58, 0x5c, 0xfa, 0xfc, 0x7c, 0x79, 0x0e,
+ 0xcc, 0x2c, 0x5a, 0x9b, 0x9b, 0x41, 0xaf, 0xf7, 0xa2, 0x8c, 0x1c, 0x4b, 0xa3, 0xb7, 0x92, 0xb1,
+ 0x75, 0xb9, 0xeb, 0xba, 0xc8, 0xf6, 0x1b, 0xc5, 0xd4, 0xa9, 0x27, 0x55, 0xbd, 0x19, 0x1c, 0xf5,
+ 0x3b, 0x7a, 0x3f, 0x23, 0x15, 0xcb, 0xde, 0x64, 0xf8, 0x1d, 0xe9, 0xbd, 0x24, 0x9f, 0xa3, 0x7c,
+ 0x93, 0x22, 0x14, 0xf0, 0x6e, 0x30, 0xbb, 0x4d, 0x73, 0x93, 0x09, 0xb7, 0xdf, 0x59, 0x9e, 0xec,
+ 0x89, 0x68, 0xba, 0x86, 0xba, 0x5d, 0x73, 0x0b, 0xe9, 0x62, 0xe6, 0x1e, 0xf5, 0x55, 0x92, 0x5c,
+ 0x2b, 0x22, 0xb7, 0x2d, 0x25, 0xd1, 0x92, 0xf4, 0xa5, 0xe3, 0xab, 0x8f, 0x04, 0xb9, 0x25, 0xab,
+ 0x8d, 0xe0, 0xcf, 0x67, 0xc1, 0x94, 0x8e, 0x9a, 0x8e, 0xdd, 0xc4, 0x6f, 0x9c, 0x63, 0xc9, 0x3f,
+ 0x65, 0x64, 0xaf, 0xd3, 0xc2, 0xe5, 0xcc, 0x07, 0x65, 0x44, 0xe8, 0x8d, 0xdc, 0xb5, 0x59, 0xb1,
+ 0x45, 0x8d, 0x21, 0x60, 0x3a, 0x36, 0xf8, 0x37, 0x37, 0xdb, 0x8e, 0x29, 0x2c, 0x39, 0xf5, 0xda,
+ 0x36, 0xb7, 0x80, 0xa2, 0x7f, 0x3e, 0xc0, 0xf1, 0xd6, 0x2d, 0xdb, 0x0e, 0x0e, 0xa0, 0xee, 0x4b,
+ 0x17, 0x77, 0x4b, 0x63, 0x63, 0x78, 0x90, 0xb6, 0xb3, 0xda, 0x23, 0x24, 0xfb, 0x26, 0x30, 0x77,
+ 0xe1, 0x8a, 0x87, 0xba, 0x2c, 0x17, 0xab, 0x36, 0xa7, 0xf7, 0xa4, 0xc2, 0x77, 0x4b, 0xc5, 0xfa,
+ 0x88, 0xa9, 0x30, 0x19, 0xab, 0x57, 0x86, 0x98, 0x77, 0x1d, 0x07, 0xc5, 0x6a, 0x6d, 0x51, 0x23,
+ 0x7e, 0x4e, 0xbe, 0xe3, 0xc8, 0x16, 0x7c, 0xb1, 0x02, 0x66, 0x88, 0xd3, 0x80, 0x8f, 0xc2, 0x0d,
+ 0x12, 0xb3, 0x00, 0xf8, 0x25, 0x69, 0x1f, 0x28, 0xd2, 0x64, 0xbe, 0x82, 0x68, 0x46, 0x6f, 0x5a,
+ 0xed, 0x5e, 0x46, 0xe7, 0xf5, 0x9e, 0xd4, 0x3e, 0x80, 0x28, 0x7d, 0x01, 0xf9, 0x7d, 0x29, 0x47,
+ 0xa8, 0x41, 0xd4, 0x1d, 0x16, 0x2a, 0x7f, 0xa0, 0x80, 0x69, 0x3c, 0xeb, 0xf0, 0x41, 0xa9, 0x09,
+ 0xa0, 0x38, 0x76, 0xfb, 0x4a, 0xb8, 0x18, 0xe1, 0xbf, 0x26, 0x52, 0x92, 0xbf, 0x91, 0x9e, 0x2f,
+ 0x13, 0x16, 0x71, 0xb4, 0x8c, 0x09, 0xbf, 0xf7, 0x49, 0xcd, 0xa2, 0x07, 0x10, 0x77, 0x58, 0xf0,
+ 0xfd, 0x4e, 0x1e, 0x14, 0x36, 0x3a, 0x04, 0xb9, 0xaf, 0x65, 0x65, 0xa2, 0x5b, 0xef, 0x73, 0x82,
+ 0xc7, 0x66, 0x56, 0xdb, 0x69, 0x9a, 0xed, 0xf5, 0xf0, 0x34, 0x51, 0x98, 0xa0, 0xde, 0xc5, 0xfc,
+ 0xe2, 0xe8, 0x51, 0xac, 0x9b, 0x62, 0x03, 0x3f, 0x13, 0x1e, 0x71, 0x07, 0x0e, 0x6e, 0x05, 0xc7,
+ 0x5a, 0x56, 0xd7, 0xbc, 0xd0, 0x46, 0x9a, 0xdd, 0x74, 0xaf, 0x50, 0x76, 0x50, 0x1f, 0xa2, 0xfd,
+ 0x1f, 0xd4, 0x7b, 0x40, 0xbe, 0xeb, 0x5d, 0x69, 0xd3, 0x89, 0x1f, 0x7f, 0x3e, 0x21, 0xb2, 0xaa,
+ 0x3a, 0xce, 0xae, 0xd3, 0xbf, 0xf8, 0x3b, 0x33, 0x27, 0x24, 0xef, 0xff, 0xbc, 0x03, 0x14, 0x1c,
+ 0xd7, 0xda, 0xb2, 0xe8, 0x7d, 0x0a, 0x73, 0xfb, 0xe2, 0x99, 0x51, 0x53, 0xa0, 0x46, 0xb2, 0xe8,
+ 0x2c, 0x2b, 0x7c, 0x5f, 0x56, 0x36, 0x78, 0x0a, 0xa1, 0x91, 0x82, 0x33, 0x9e, 0x3b, 0x40, 0x5f,
+ 0x25, 0x15, 0xd6, 0x24, 0x9a, 0xac, 0xf4, 0x07, 0xe1, 0xcf, 0x66, 0xc1, 0xe4, 0xa2, 0x73, 0xc9,
+ 0x26, 0x02, 0x7b, 0xa7, 0x9c, 0xcd, 0xda, 0xe7, 0xa0, 0x9b, 0x78, 0xf5, 0x56, 0xac, 0x57, 0x3b,
+ 0x69, 0xad, 0x5f, 0x65, 0x04, 0x0c, 0xb1, 0x1a, 0x20, 0x79, 0x55, 0x52, 0x5c, 0x3d, 0xe9, 0xf3,
+ 0xf5, 0x2f, 0x14, 0x90, 0x5b, 0x74, 0x9d, 0x0e, 0x7c, 0x4b, 0x26, 0xc1, 0x86, 0x7f, 0xcb, 0x75,
+ 0x3a, 0x06, 0xb9, 0x05, 0x25, 0x74, 0xe5, 0xe7, 0xd3, 0xd4, 0x3b, 0xc1, 0x64, 0xc7, 0xe9, 0x5a,
+ 0x9e, 0x3f, 0x1d, 0x98, 0xbb, 0xfd, 0x11, 0x7d, 0xb5, 0x72, 0x9d, 0x65, 0xd2, 0x83, 0xec, 0xb8,
+ 0xf7, 0x25, 0x2c, 0xc4, 0x7c, 0xc1, 0x6c, 0xf4, 0x6f, 0x82, 0xe9, 0x49, 0x85, 0x2f, 0xe1, 0x91,
+ 0x7c, 0xaa, 0x88, 0xe4, 0xa3, 0xfa, 0x70, 0xd8, 0x75, 0x3a, 0x23, 0xd9, 0xa2, 0x7b, 0x45, 0x80,
+ 0xea, 0xd3, 0x04, 0x54, 0x6f, 0x91, 0xaa, 0x33, 0x7d, 0x44, 0xdf, 0x97, 0x03, 0x80, 0x98, 0x0b,
+ 0x1b, 0x78, 0x22, 0x23, 0x67, 0x2b, 0x3d, 0x37, 0xc7, 0xf1, 0xb2, 0x24, 0xf2, 0xf2, 0x31, 0x11,
+ 0xd6, 0x08, 0x29, 0x3e, 0x82, 0xa3, 0x25, 0x90, 0xdf, 0xc5, 0x9f, 0x19, 0x47, 0x25, 0x8b, 0x20,
+ 0xaf, 0x3a, 0xfd, 0x13, 0xfe, 0x79, 0x06, 0xe4, 0x49, 0x82, 0x7a, 0x1a, 0x00, 0x32, 0x40, 0xd3,
+ 0x43, 0x21, 0x19, 0x32, 0x14, 0x73, 0x29, 0x44, 0x5a, 0xad, 0x16, 0xfb, 0x4c, 0x4d, 0xdf, 0x30,
+ 0x01, 0xff, 0x4d, 0x86, 0x6d, 0x52, 0x16, 0x1b, 0xc8, 0xb9, 0x14, 0xfc, 0x37, 0x79, 0x5b, 0x45,
+ 0x9b, 0x34, 0x18, 0x6e, 0x4e, 0x0f, 0x13, 0x82, 0xbf, 0x57, 0x83, 0x0b, 0x4f, 0xfc, 0xbf, 0x49,
+ 0x0a, 0x9e, 0xd4, 0x12, 0xb1, 0x5c, 0x08, 0xab, 0x28, 0x90, 0x4c, 0xbd, 0xc9, 0xf0, 0xb5, 0x81,
+ 0xd8, 0x2c, 0x0a, 0x62, 0xf3, 0xb8, 0x04, 0xec, 0x4d, 0x5f, 0x78, 0xbe, 0x92, 0x07, 0x53, 0x55,
+ 0xa7, 0xc5, 0x64, 0x87, 0x9b, 0xf8, 0x7d, 0x2c, 0x9f, 0x68, 0xe2, 0x17, 0x94, 0x11, 0x21, 0x20,
+ 0xf7, 0x89, 0x02, 0x22, 0x57, 0x02, 0x2f, 0x1f, 0xea, 0x02, 0x28, 0x10, 0xe9, 0xdd, 0x7f, 0x91,
+ 0x4d, 0x5c, 0x11, 0x84, 0xb5, 0x3a, 0xfb, 0xf3, 0xdf, 0x9c, 0x8c, 0xfd, 0x27, 0x90, 0x27, 0x0d,
+ 0x8c, 0xd9, 0x1b, 0x11, 0x1b, 0x9a, 0x8d, 0x6f, 0xa8, 0x12, 0xdf, 0xd0, 0x5c, 0x6f, 0x43, 0x93,
+ 0xcc, 0xe7, 0xa3, 0x24, 0x24, 0x7d, 0x19, 0xff, 0xef, 0x13, 0x00, 0x54, 0xcd, 0x3d, 0x6b, 0x8b,
+ 0xee, 0xad, 0x7e, 0xce, 0x9f, 0xc7, 0xb0, 0x5d, 0xd0, 0xff, 0xcc, 0x0d, 0x84, 0x77, 0x82, 0x09,
+ 0x36, 0xee, 0xb1, 0x86, 0x5c, 0x2f, 0x34, 0x24, 0x2c, 0x85, 0x9a, 0x97, 0x97, 0x3d, 0xdd, 0xcf,
+ 0x2f, 0x5c, 0xed, 0x97, 0xed, 0xb9, 0xda, 0xaf, 0xef, 0xee, 0x40, 0xd4, 0x85, 0x7f, 0xf0, 0xdd,
+ 0xd2, 0x1b, 0x54, 0x1c, 0x3d, 0x5c, 0x8b, 0x22, 0x54, 0xf0, 0x0e, 0x30, 0xe1, 0x04, 0xdb, 0xc1,
+ 0x4a, 0xe4, 0x7a, 0x56, 0xc5, 0xde, 0x74, 0x74, 0x3f, 0xa7, 0xe4, 0xae, 0x94, 0x14, 0x1d, 0x63,
+ 0x39, 0xe4, 0x70, 0x72, 0xd9, 0x0f, 0x2c, 0x84, 0xdb, 0x71, 0xde, 0xf2, 0xb6, 0x57, 0x2d, 0xfb,
+ 0x62, 0x17, 0xfe, 0x07, 0x39, 0x0b, 0x92, 0xc3, 0x3f, 0x9b, 0x0c, 0x7f, 0x31, 0x6e, 0x43, 0x5d,
+ 0x44, 0xed, 0x9e, 0xa8, 0x52, 0xfa, 0x53, 0x1b, 0x01, 0xe0, 0x5d, 0xa0, 0x40, 0x09, 0x65, 0x9d,
+ 0xe8, 0xd9, 0x48, 0xfc, 0x82, 0x92, 0x74, 0xf6, 0x07, 0x7c, 0x57, 0x80, 0xe3, 0x39, 0x01, 0xc7,
+ 0x85, 0x03, 0x51, 0x96, 0x3a, 0xa4, 0x67, 0x1f, 0x0f, 0x26, 0x18, 0xa7, 0xd5, 0x39, 0x5e, 0x8b,
+ 0x8b, 0x47, 0x54, 0x00, 0x0a, 0x6b, 0xce, 0x1e, 0x32, 0x9c, 0x62, 0x06, 0x3f, 0x63, 0xfa, 0x0c,
+ 0xa7, 0x98, 0x85, 0xaf, 0x9c, 0x04, 0x93, 0x41, 0x44, 0x97, 0xcf, 0x66, 0x41, 0xb1, 0xec, 0x22,
+ 0xd3, 0x43, 0x4b, 0xae, 0xb3, 0x43, 0x5b, 0x24, 0xef, 0x5b, 0xf9, 0xab, 0xd2, 0x0e, 0x12, 0x41,
+ 0xa4, 0x95, 0xde, 0xca, 0x24, 0x6f, 0x19, 0x7f, 0xb3, 0x94, 0xc3, 0x84, 0x6c, 0x2d, 0xe9, 0xab,
+ 0xda, 0x27, 0xb3, 0x20, 0x5f, 0x6e, 0x3b, 0x36, 0x4a, 0x74, 0xc9, 0x78, 0xff, 0x1d, 0x05, 0xf8,
+ 0x33, 0x59, 0x59, 0x5b, 0x23, 0x64, 0x00, 0xae, 0x5b, 0x92, 0xb7, 0x72, 0x83, 0x54, 0x6c, 0xd1,
+ 0xe9, 0x33, 0xf4, 0x1b, 0x59, 0x30, 0x45, 0x63, 0xa3, 0x94, 0xda, 0x6d, 0xf8, 0x88, 0x90, 0xa9,
+ 0x7d, 0xa2, 0xe2, 0xc0, 0xdf, 0x97, 0x76, 0x70, 0x0f, 0x5a, 0x15, 0x94, 0x9d, 0x20, 0x48, 0x4c,
+ 0x32, 0x7f, 0x6b, 0xb9, 0x3d, 0xb1, 0x81, 0x04, 0xa5, 0xcf, 0xea, 0xbf, 0xce, 0x62, 0x03, 0xc0,
+ 0xbe, 0xb8, 0xee, 0xa2, 0x3d, 0x0b, 0x5d, 0x82, 0xd7, 0x86, 0xcc, 0xde, 0x1f, 0xf8, 0xe1, 0x8d,
+ 0xd2, 0x8b, 0x38, 0x5c, 0x91, 0x91, 0x5b, 0x52, 0xd3, 0xed, 0x30, 0x13, 0xeb, 0xc5, 0x7b, 0xa3,
+ 0x71, 0x70, 0xc5, 0xe8, 0x7c, 0x76, 0xc9, 0x35, 0x9b, 0x68, 0x2a, 0xd2, 0x67, 0xec, 0x43, 0x13,
+ 0x60, 0x72, 0xc3, 0xee, 0x76, 0xda, 0x66, 0x77, 0x1b, 0x7e, 0x5f, 0x09, 0xee, 0xf8, 0x7e, 0xa2,
+ 0x70, 0xbe, 0xfc, 0xa7, 0x76, 0x91, 0xeb, 0xfb, 0x4b, 0xd1, 0x97, 0xfe, 0x97, 0xc8, 0xc2, 0xf7,
+ 0x29, 0xb2, 0x93, 0x54, 0xbf, 0xd2, 0xf8, 0xcb, 0xaf, 0x2b, 0x60, 0xb2, 0x63, 0x35, 0xbd, 0x5d,
+ 0x37, 0xb8, 0x92, 0xf4, 0xb1, 0x72, 0xa5, 0xac, 0xd3, 0xbf, 0xf4, 0xe0, 0x77, 0x68, 0x82, 0x09,
+ 0x96, 0xb8, 0x6f, 0x5b, 0x68, 0xff, 0x79, 0xc9, 0x93, 0xa0, 0x60, 0xba, 0x9e, 0xd5, 0xf5, 0xaf,
+ 0x7c, 0x66, 0x6f, 0xb8, 0xbb, 0xa4, 0x4f, 0x1b, 0x6e, 0xdb, 0x8f, 0x44, 0x11, 0x24, 0xc0, 0x3f,
+ 0x90, 0x9a, 0x3f, 0xc6, 0xb7, 0x3c, 0x19, 0xe4, 0xf7, 0x0f, 0xb1, 0xd6, 0x7c, 0x35, 0xb8, 0x4a,
+ 0x2f, 0x19, 0x5a, 0x83, 0x06, 0x2e, 0x08, 0x62, 0x14, 0xb4, 0xe0, 0xf7, 0xf9, 0xf5, 0x3b, 0x71,
+ 0x8c, 0x60, 0x5c, 0x0c, 0xc7, 0x88, 0x20, 0x21, 0x66, 0x8c, 0xf8, 0x1d, 0xe9, 0xdd, 0x9d, 0x80,
+ 0x25, 0x03, 0xd6, 0xf2, 0xe2, 0x6e, 0x7e, 0x79, 0xbf, 0xd4, 0x4e, 0xcd, 0xa0, 0x9a, 0x0e, 0x91,
+ 0xfd, 0xbf, 0x39, 0x01, 0x26, 0x96, 0xcd, 0x76, 0x1b, 0xb9, 0x57, 0xf0, 0xd0, 0x52, 0xf4, 0x29,
+ 0x5c, 0x33, 0x6d, 0x6b, 0x13, 0xcf, 0xef, 0x63, 0x3b, 0xbd, 0x77, 0x4b, 0x47, 0x15, 0x65, 0x75,
+ 0xcc, 0xf7, 0x96, 0x1f, 0xc1, 0xf3, 0xdb, 0x40, 0xce, 0xb2, 0x37, 0x1d, 0xd6, 0xf5, 0xf5, 0xae,
+ 0xa2, 0xfb, 0x3f, 0x93, 0x29, 0x08, 0xc9, 0x28, 0x19, 0x58, 0x54, 0x92, 0x8a, 0xf4, 0x7b, 0xc0,
+ 0xdf, 0xcd, 0x81, 0x59, 0x9f, 0x88, 0x8a, 0xdd, 0x42, 0x97, 0xf9, 0x25, 0x95, 0x17, 0xe7, 0x64,
+ 0x0f, 0x45, 0xf5, 0xb6, 0x87, 0x14, 0x15, 0xc1, 0x52, 0x03, 0x80, 0xa6, 0xe9, 0xa1, 0x2d, 0xc7,
+ 0xb5, 0x82, 0x7e, 0xed, 0x09, 0x49, 0x4a, 0x2b, 0xd3, 0xbf, 0xaf, 0xe8, 0x5c, 0x39, 0xea, 0x3d,
+ 0x60, 0x1a, 0x05, 0xe7, 0x9e, 0xfd, 0x25, 0x97, 0x58, 0xbc, 0xf8, 0xfc, 0xf0, 0xaf, 0xa5, 0xce,
+ 0x5e, 0xc9, 0x34, 0x33, 0x19, 0x66, 0x8d, 0xe1, 0x74, 0x68, 0xa3, 0xba, 0x56, 0xd2, 0xeb, 0x2b,
+ 0xa5, 0xd5, 0xd5, 0x4a, 0x75, 0x39, 0x08, 0xe2, 0xa1, 0x82, 0xb9, 0xc5, 0xda, 0xf9, 0x2a, 0x17,
+ 0x65, 0x25, 0x07, 0xd7, 0xc1, 0xa4, 0xcf, 0xaf, 0x7e, 0xce, 0x8e, 0x3c, 0xcf, 0x98, 0xb3, 0x23,
+ 0x97, 0x84, 0x8d, 0x2c, 0xab, 0x19, 0x38, 0xcc, 0x90, 0x67, 0xf8, 0x67, 0x26, 0xc8, 0x93, 0xb5,
+ 0x71, 0xf8, 0x76, 0x72, 0x27, 0x74, 0xa7, 0x6d, 0x36, 0x11, 0xdc, 0x49, 0x60, 0x55, 0xfb, 0x61,
+ 0xee, 0xb3, 0xfb, 0xc2, 0xdc, 0x93, 0x47, 0x66, 0xbd, 0x1d, 0xef, 0xb7, 0x1e, 0xaf, 0xd3, 0x2c,
+ 0xe2, 0x31, 0xa5, 0xd8, 0x5d, 0x12, 0xba, 0x8c, 0xcf, 0xc8, 0x8c, 0x10, 0xc9, 0x68, 0x9a, 0x92,
+ 0x59, 0x94, 0x72, 0xfb, 0x29, 0x71, 0x14, 0xa5, 0xaf, 0xf1, 0x5f, 0xcc, 0x81, 0x7c, 0xbd, 0xd3,
+ 0xb6, 0x3c, 0xf8, 0xb2, 0xec, 0x48, 0x30, 0xa3, 0x57, 0x13, 0x28, 0x03, 0xaf, 0x26, 0x08, 0x77,
+ 0x41, 0x73, 0x12, 0xbb, 0xa0, 0x06, 0xba, 0xec, 0x89, 0xbb, 0xa0, 0x77, 0xb2, 0x40, 0x5c, 0x74,
+ 0x0f, 0xf5, 0x51, 0x7d, 0x58, 0x4a, 0x9a, 0xd5, 0x27, 0xc2, 0xdb, 0xd9, 0xc7, 0xb3, 0x40, 0x53,
+ 0x00, 0x14, 0x16, 0x6a, 0x86, 0x51, 0x5b, 0x2b, 0x1e, 0x21, 0x11, 0x4a, 0x6a, 0xeb, 0xc5, 0x8c,
+ 0x3a, 0x05, 0xf2, 0x95, 0x6a, 0x55, 0xd3, 0x8b, 0x59, 0x12, 0xfa, 0xaa, 0x62, 0xac, 0x6a, 0x45,
+ 0x45, 0x8c, 0x53, 0x1d, 0x6b, 0x46, 0x8b, 0x75, 0xa7, 0x29, 0x5e, 0x72, 0x06, 0x75, 0x34, 0x3d,
+ 0xe9, 0x0b, 0xd7, 0x7f, 0x51, 0x40, 0x7e, 0x0d, 0xb9, 0x5b, 0x08, 0xfe, 0x54, 0x82, 0xcd, 0xba,
+ 0x4d, 0xcb, 0xed, 0xd2, 0x40, 0x61, 0xe1, 0x66, 0x1d, 0x9f, 0xa6, 0xde, 0x08, 0x66, 0xbb, 0xa8,
+ 0xe9, 0xd8, 0x2d, 0x3f, 0x13, 0xed, 0x8f, 0xc4, 0x44, 0xf8, 0xd2, 0x84, 0x90, 0x11, 0x42, 0x47,
+ 0xb2, 0xe3, 0x96, 0x04, 0x98, 0x7e, 0xb5, 0xa6, 0x0f, 0xcc, 0x77, 0x14, 0xfc, 0x53, 0xe7, 0x0a,
+ 0x7c, 0xa9, 0xf4, 0x2e, 0xea, 0xad, 0xa0, 0x40, 0xc4, 0xd4, 0x1f, 0xa3, 0xfb, 0xf7, 0xc7, 0x2c,
+ 0x8f, 0xba, 0x00, 0x8e, 0x75, 0x51, 0x1b, 0x35, 0x3d, 0xd4, 0xc2, 0xaa, 0xab, 0x0f, 0xec, 0x14,
+ 0xf6, 0x67, 0x87, 0x7f, 0xc9, 0x03, 0x78, 0xb7, 0x08, 0xe0, 0x4d, 0x7d, 0x58, 0x89, 0x1b, 0x14,
+ 0x6d, 0x2b, 0xe3, 0x66, 0xd4, 0xdb, 0x4e, 0xb0, 0xb8, 0xed, 0xbf, 0xe3, 0x6f, 0xdb, 0xde, 0x4e,
+ 0x9b, 0x7c, 0x63, 0x1e, 0xfc, 0xfe, 0xbb, 0x3a, 0x0f, 0x26, 0x4c, 0xfb, 0x0a, 0xf9, 0x94, 0x8b,
+ 0x69, 0xb5, 0x9f, 0x09, 0xbe, 0x32, 0x40, 0xfe, 0x5e, 0x01, 0xf9, 0xc7, 0xc8, 0x91, 0x9b, 0x3e,
+ 0xf0, 0x3f, 0x37, 0x01, 0xf2, 0xeb, 0x66, 0xd7, 0x43, 0xf0, 0xff, 0x55, 0x64, 0x91, 0xbf, 0x09,
+ 0xcc, 0x6d, 0x3a, 0xcd, 0xdd, 0x2e, 0x6a, 0x89, 0x4a, 0xd9, 0x93, 0x3a, 0x0a, 0xcc, 0xd5, 0x5b,
+ 0x40, 0xd1, 0x4f, 0x64, 0xc5, 0xfa, 0xdb, 0xe9, 0xfb, 0xd2, 0x49, 0xd4, 0xe3, 0xee, 0xba, 0xe9,
+ 0x7a, 0xb5, 0x4d, 0x92, 0x16, 0x44, 0x3d, 0xe6, 0x13, 0x05, 0xe8, 0x0b, 0x31, 0xd0, 0x4f, 0x44,
+ 0x43, 0x3f, 0x29, 0x01, 0xbd, 0x5a, 0x02, 0x93, 0x9b, 0x56, 0x1b, 0x91, 0x1f, 0xa6, 0xc8, 0x0f,
+ 0xfd, 0xc6, 0x24, 0xc2, 0xfb, 0x60, 0x4c, 0x5a, 0xb2, 0xda, 0x48, 0x0f, 0x7e, 0xf3, 0x27, 0x32,
+ 0x20, 0x9c, 0xc8, 0xac, 0x52, 0xff, 0x56, 0x6c, 0x78, 0xd9, 0xe6, 0x0e, 0xf2, 0x17, 0xd1, 0x6c,
+ 0x76, 0x7a, 0xa4, 0x65, 0x7a, 0x26, 0x01, 0x63, 0x46, 0x27, 0xcf, 0xa2, 0x7f, 0x87, 0xd2, 0xeb,
+ 0xdf, 0xf1, 0x3c, 0x25, 0x59, 0x8f, 0xe8, 0x13, 0x1b, 0xa1, 0x51, 0x17, 0x7c, 0x80, 0xa8, 0xa5,
+ 0x18, 0xbc, 0x63, 0x60, 0x9a, 0xa6, 0x8b, 0xbc, 0x75, 0xde, 0xa3, 0x22, 0xaf, 0x8b, 0x89, 0xc4,
+ 0xb5, 0xae, 0x5b, 0x37, 0x77, 0x10, 0xa9, 0xac, 0x8c, 0xbf, 0x31, 0x97, 0xa9, 0x7d, 0xe9, 0x61,
+ 0xff, 0x9b, 0x1f, 0x75, 0xff, 0xdb, 0xaf, 0x8d, 0xe9, 0xab, 0xe1, 0xab, 0x73, 0x40, 0x29, 0xef,
+ 0x7a, 0x0f, 0xeb, 0xee, 0xf7, 0x07, 0xd2, 0xfe, 0x2a, 0xac, 0x3f, 0x8b, 0xbc, 0x14, 0x7c, 0x4c,
+ 0xbd, 0x6f, 0x42, 0x29, 0x91, 0xf3, 0x8b, 0x89, 0x6a, 0x5b, 0xfa, 0x32, 0xf2, 0x16, 0x25, 0x70,
+ 0x78, 0x7c, 0x4e, 0xe6, 0xe0, 0xa6, 0x39, 0xa4, 0xfd, 0x13, 0xd7, 0x33, 0x04, 0xef, 0x7e, 0xc7,
+ 0x93, 0x13, 0x62, 0xa4, 0x91, 0x6d, 0x72, 0xc2, 0xca, 0x19, 0x9d, 0xbe, 0xc0, 0x97, 0x4b, 0xbb,
+ 0x81, 0x53, 0xb6, 0xc5, 0xba, 0x04, 0x26, 0xb3, 0xa9, 0xe4, 0x2e, 0x7e, 0x8c, 0xa9, 0x36, 0x7d,
+ 0xc0, 0xbe, 0x15, 0xbd, 0x64, 0x38, 0x0c, 0x62, 0xf0, 0x55, 0xd2, 0xdb, 0x4a, 0xb4, 0xd9, 0x03,
+ 0xd6, 0x0b, 0x93, 0xf1, 0x5b, 0x6e, 0xd3, 0x29, 0xb6, 0xe2, 0xf4, 0x39, 0xfe, 0x4d, 0x05, 0x14,
+ 0xe8, 0x56, 0x22, 0x7c, 0x53, 0x26, 0xc1, 0x8d, 0xd9, 0x9e, 0xe8, 0x0a, 0x18, 0xbc, 0x27, 0x59,
+ 0x73, 0x10, 0x5c, 0x06, 0x73, 0x89, 0x5c, 0x06, 0xc5, 0x73, 0x95, 0x12, 0x7a, 0x44, 0xdb, 0x98,
+ 0xf2, 0x74, 0x32, 0x89, 0x86, 0xf5, 0x25, 0x28, 0x7d, 0xbc, 0x9f, 0x9f, 0x07, 0x33, 0xb4, 0xea,
+ 0xf3, 0x56, 0x6b, 0x0b, 0x79, 0xf0, 0x9d, 0xd9, 0x1f, 0x1d, 0xd4, 0xd5, 0x2a, 0x98, 0xb9, 0x44,
+ 0xc8, 0x5e, 0x35, 0xaf, 0x38, 0xbb, 0x1e, 0x5b, 0xb9, 0xb8, 0x25, 0x76, 0xdd, 0x83, 0xb6, 0x73,
+ 0x9e, 0xfe, 0xa1, 0x0b, 0xff, 0x63, 0x1e, 0xd3, 0x05, 0x7f, 0xea, 0x88, 0x55, 0x20, 0x46, 0x16,
+ 0x9f, 0xa4, 0x9e, 0x04, 0x85, 0x3d, 0x0b, 0x5d, 0xaa, 0xb4, 0x98, 0x75, 0xcb, 0xde, 0xc4, 0x23,
+ 0xe4, 0xb1, 0xfb, 0xaf, 0x3c, 0xdc, 0x8c, 0x96, 0x74, 0xa5, 0x50, 0x6e, 0x17, 0x76, 0x20, 0x59,
+ 0x63, 0x38, 0xe3, 0x2b, 0x5e, 0xac, 0x98, 0xe4, 0xc2, 0xfe, 0x28, 0xc3, 0x59, 0x0c, 0x68, 0x11,
+ 0x7b, 0x82, 0x84, 0x32, 0x60, 0xc4, 0x77, 0x2e, 0xca, 0x45, 0x59, 0x18, 0x50, 0x75, 0xfa, 0x9c,
+ 0x7f, 0xad, 0x02, 0xa6, 0xea, 0xc8, 0x5b, 0xb2, 0x50, 0xbb, 0xd5, 0x85, 0xee, 0xc1, 0x4d, 0xa3,
+ 0xdb, 0x40, 0x61, 0x93, 0x14, 0x36, 0xe8, 0xfc, 0x01, 0xcb, 0x06, 0x5f, 0x9d, 0x95, 0xdd, 0xd9,
+ 0x65, 0xab, 0x6f, 0x3e, 0xb5, 0x23, 0x81, 0x49, 0xce, 0x33, 0x37, 0xbe, 0xe6, 0xf4, 0x51, 0x7a,
+ 0xab, 0x02, 0x66, 0xd8, 0x4d, 0x6c, 0xa5, 0xb6, 0xb5, 0x65, 0xc3, 0xdd, 0x11, 0x68, 0x88, 0xfa,
+ 0x38, 0x90, 0x37, 0x71, 0x69, 0xcc, 0x49, 0x1f, 0xf6, 0xed, 0x3c, 0x49, 0x7d, 0x3a, 0xcd, 0x98,
+ 0x20, 0x98, 0x62, 0x28, 0xd8, 0x3e, 0xcd, 0x63, 0x0c, 0xa6, 0x38, 0xb0, 0xf2, 0xf4, 0x11, 0xfb,
+ 0xb2, 0x02, 0x8e, 0x33, 0x02, 0xce, 0x21, 0xd7, 0xb3, 0x9a, 0x66, 0x9b, 0x22, 0xf7, 0x82, 0xcc,
+ 0x28, 0xa0, 0x5b, 0x01, 0xb3, 0x7b, 0x7c, 0xb1, 0x0c, 0xc2, 0xb3, 0x7d, 0x21, 0x14, 0x08, 0xd0,
+ 0xc5, 0x1f, 0x13, 0x04, 0xa5, 0x13, 0xb8, 0x2a, 0x94, 0x39, 0xc6, 0xa0, 0x74, 0xd2, 0x44, 0xa4,
+ 0x0f, 0xf1, 0x4b, 0x72, 0x34, 0x40, 0x4d, 0xd8, 0x7d, 0x7e, 0x4e, 0x1a, 0xdb, 0x0d, 0x30, 0x4d,
+ 0xb0, 0xa4, 0x3f, 0xb2, 0x65, 0x88, 0x18, 0x21, 0x0e, 0xfa, 0x1d, 0x76, 0xf9, 0x53, 0xf0, 0xaf,
+ 0xce, 0x97, 0x03, 0xcf, 0x03, 0x10, 0x7e, 0xe2, 0x3b, 0xe9, 0x4c, 0x54, 0x27, 0x9d, 0x95, 0xeb,
+ 0xa4, 0xdf, 0x28, 0x1d, 0xbc, 0xa4, 0x3f, 0xd9, 0x07, 0x17, 0x0f, 0xb9, 0xb0, 0x15, 0x83, 0x6b,
+ 0x4f, 0x5f, 0x2e, 0x5e, 0x99, 0xeb, 0xbd, 0x72, 0xfb, 0x43, 0x23, 0x99, 0x4f, 0xf1, 0xfd, 0x81,
+ 0xd2, 0xd3, 0x1f, 0x1c, 0xc0, 0x92, 0xbe, 0x19, 0x1c, 0xa5, 0x55, 0x94, 0x03, 0xb2, 0xf2, 0x34,
+ 0x34, 0x43, 0x4f, 0x32, 0xfc, 0xf0, 0x10, 0x42, 0x30, 0xe8, 0x3e, 0xf0, 0xb8, 0x4e, 0x2e, 0x99,
+ 0xb1, 0x9b, 0x54, 0x40, 0x0e, 0xef, 0x1a, 0xf1, 0x6f, 0xe4, 0xa8, 0xb5, 0xbb, 0x41, 0xee, 0xe7,
+ 0x82, 0x5f, 0xc8, 0x8d, 0x62, 0x44, 0xb8, 0x0f, 0xe4, 0x88, 0xab, 0xba, 0x12, 0xb9, 0xa4, 0x11,
+ 0x56, 0x19, 0x5e, 0x9e, 0x86, 0x2e, 0x7b, 0x2b, 0x47, 0x74, 0xf2, 0xa7, 0x7a, 0x0b, 0x38, 0x7a,
+ 0xc1, 0x6c, 0x5e, 0xdc, 0x72, 0x9d, 0x5d, 0x72, 0x93, 0x91, 0xc3, 0xae, 0x44, 0x22, 0x57, 0xcb,
+ 0x89, 0x1f, 0xd4, 0xdb, 0x7d, 0xd3, 0x21, 0x3f, 0xc8, 0x74, 0x58, 0x39, 0xc2, 0x8c, 0x07, 0xf5,
+ 0xf1, 0x41, 0xa7, 0x53, 0x88, 0xed, 0x74, 0x56, 0x8e, 0xf8, 0xdd, 0x8e, 0xba, 0x08, 0x26, 0x5b,
+ 0xd6, 0x1e, 0xd9, 0xaa, 0x26, 0xb3, 0xae, 0x41, 0x47, 0x89, 0x17, 0xad, 0x3d, 0xba, 0xb1, 0xbd,
+ 0x72, 0x44, 0x0f, 0xfe, 0x54, 0x97, 0xc1, 0x14, 0xd9, 0x16, 0x20, 0xc5, 0x4c, 0x26, 0x3a, 0x26,
+ 0xbc, 0x72, 0x44, 0x0f, 0xff, 0xc5, 0xd6, 0x47, 0x8e, 0x9c, 0xe1, 0xb8, 0xd7, 0xdf, 0x6e, 0xcf,
+ 0x24, 0xda, 0x6e, 0xc7, 0xbc, 0xa0, 0x1b, 0xee, 0x27, 0x41, 0xbe, 0x49, 0x38, 0x9c, 0x65, 0x1c,
+ 0xa6, 0xaf, 0xea, 0xdd, 0x20, 0xb7, 0x63, 0xba, 0xfe, 0xe4, 0xf9, 0xa6, 0xc1, 0xe5, 0xae, 0x99,
+ 0xee, 0x45, 0x8c, 0x20, 0xfe, 0x6b, 0x61, 0x02, 0xe4, 0x09, 0xe3, 0x82, 0x07, 0xf8, 0x96, 0x1c,
+ 0x35, 0x43, 0xca, 0x8e, 0x8d, 0x87, 0x7d, 0xc3, 0xf1, 0x0f, 0xba, 0xfc, 0x49, 0x66, 0x34, 0x16,
+ 0x64, 0xdf, 0x3b, 0xaa, 0x95, 0xc8, 0x3b, 0xaa, 0x7b, 0x2e, 0x4b, 0xcd, 0xf5, 0x5e, 0x96, 0x1a,
+ 0x2e, 0x1f, 0xe4, 0x07, 0x3b, 0xaa, 0xfc, 0xe5, 0x10, 0xa6, 0x4b, 0x2f, 0x23, 0xa2, 0x67, 0xe0,
+ 0x6d, 0xcb, 0xe6, 0xda, 0xec, 0xbf, 0x26, 0xec, 0x94, 0x92, 0x1a, 0x35, 0x03, 0xc8, 0x4b, 0xbf,
+ 0x6f, 0xfa, 0xed, 0x1c, 0x38, 0x45, 0xaf, 0xe4, 0xdd, 0x43, 0x86, 0x23, 0xde, 0x1d, 0x08, 0x3f,
+ 0x31, 0x12, 0xa1, 0xe9, 0x33, 0xe0, 0x28, 0x7d, 0x07, 0x9c, 0x7d, 0x87, 0x8d, 0x73, 0x03, 0x0e,
+ 0x1b, 0xe7, 0x93, 0xad, 0x1c, 0xfe, 0x11, 0x2f, 0x3f, 0xeb, 0xa2, 0xfc, 0xdc, 0x15, 0x01, 0x50,
+ 0x3f, 0xbe, 0x8c, 0xc4, 0xbe, 0x79, 0x7b, 0x20, 0x29, 0x75, 0x41, 0x52, 0xee, 0x1d, 0x9e, 0x90,
+ 0xf4, 0xa5, 0xe5, 0x0f, 0x73, 0xe0, 0xaa, 0x90, 0x98, 0x2a, 0xba, 0xc4, 0x04, 0xe5, 0xb3, 0x23,
+ 0x11, 0x94, 0xe4, 0xb1, 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x97, 0x3e, 0x03, 0xd4, 0x0b, 0x54, 0xc0,
+ 0x9b, 0x08, 0x61, 0x39, 0x09, 0x0a, 0xb4, 0x87, 0x61, 0xd0, 0xb0, 0xb7, 0x84, 0xdd, 0x8d, 0xdc,
+ 0xc9, 0x21, 0x59, 0xda, 0xc6, 0x20, 0x3f, 0x6c, 0x5d, 0xc3, 0xd8, 0x75, 0xed, 0x8a, 0xed, 0x39,
+ 0xf0, 0x67, 0x47, 0x22, 0x38, 0x81, 0x37, 0x9c, 0x32, 0x8c, 0x37, 0xdc, 0x50, 0xab, 0x1c, 0x7e,
+ 0x0b, 0x0e, 0x65, 0x95, 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0x9b, 0x42, 0xaf, 0xe7, 0xaf, 0x23,
+ 0x6f, 0x41, 0xb4, 0x10, 0xe1, 0x03, 0xa3, 0x00, 0xf2, 0xb8, 0x6f, 0x26, 0xb1, 0xdb, 0xa5, 0xc8,
+ 0x8b, 0x78, 0xe2, 0x29, 0xf6, 0x96, 0x03, 0x61, 0x3a, 0xd8, 0x43, 0xe1, 0x48, 0x90, 0x92, 0xbb,
+ 0xdc, 0x20, 0x01, 0x19, 0xe9, 0x63, 0xf6, 0x22, 0x05, 0x14, 0xd8, 0x55, 0xec, 0x1b, 0xa9, 0x38,
+ 0x4c, 0x88, 0xb1, 0x8e, 0x25, 0x76, 0xe4, 0x12, 0x5f, 0x58, 0x9e, 0xde, 0x5e, 0xdc, 0x21, 0xdd,
+ 0x48, 0xfe, 0x9d, 0x2c, 0x98, 0xae, 0x23, 0xaf, 0x6c, 0xba, 0xae, 0x65, 0x6e, 0x8d, 0xca, 0xe3,
+ 0x5b, 0xd6, 0x7b, 0x18, 0x7e, 0x37, 0x23, 0x7b, 0x9e, 0x26, 0x58, 0x08, 0xf7, 0x49, 0x8d, 0x88,
+ 0xed, 0x27, 0x77, 0x15, 0xfc, 0xa0, 0xd2, 0xc6, 0xe0, 0xb1, 0x9d, 0x05, 0x13, 0xfe, 0x99, 0xba,
+ 0xdb, 0x84, 0x73, 0x96, 0xdb, 0xde, 0x8e, 0x7f, 0x0c, 0x86, 0x3c, 0xef, 0x3f, 0xcb, 0x05, 0x5f,
+ 0x91, 0xd0, 0x51, 0x3e, 0xfe, 0x40, 0x60, 0x32, 0x1d, 0x4b, 0xe2, 0x0e, 0x7f, 0x58, 0x47, 0x00,
+ 0x7f, 0x7f, 0x82, 0x2d, 0x47, 0xae, 0x9a, 0x1e, 0xba, 0x0c, 0x3f, 0xa7, 0x80, 0x89, 0x3a, 0xf2,
+ 0xf0, 0x78, 0x8b, 0xc9, 0x3f, 0xb0, 0x84, 0xab, 0xdc, 0x8a, 0xc7, 0x14, 0x5b, 0xc3, 0x78, 0x3a,
+ 0x98, 0xea, 0xb8, 0x4e, 0x13, 0x75, 0xbb, 0x6c, 0xf5, 0x82, 0x77, 0x54, 0xeb, 0x37, 0xfa, 0x13,
+ 0xd2, 0xe6, 0xd7, 0xfd, 0x7f, 0xf4, 0xf0, 0xf7, 0xa4, 0x66, 0x00, 0x2d, 0x89, 0x35, 0x70, 0xdc,
+ 0x66, 0x40, 0x5c, 0xe5, 0xe9, 0x03, 0xfd, 0x69, 0x05, 0xcc, 0xd4, 0x91, 0x17, 0x70, 0x31, 0xc1,
+ 0x26, 0x47, 0x34, 0xbc, 0x02, 0x94, 0xca, 0xc1, 0xa0, 0x94, 0xbf, 0x20, 0x4f, 0xe4, 0x66, 0x50,
+ 0xd8, 0x18, 0x2f, 0xc8, 0x93, 0xa3, 0x60, 0x0c, 0xc7, 0xd7, 0x1e, 0x05, 0xa6, 0x08, 0x2d, 0x44,
+ 0x61, 0x7f, 0x31, 0x17, 0x2a, 0xef, 0xe7, 0x53, 0x52, 0xde, 0x7b, 0x40, 0x9e, 0x5c, 0xbc, 0x4f,
+ 0x14, 0x77, 0x5a, 0xc6, 0x6c, 0x5f, 0xc3, 0xd9, 0x75, 0xfa, 0x57, 0x7f, 0x3f, 0xcd, 0x7c, 0x32,
+ 0x3f, 0xcd, 0xd7, 0x67, 0x13, 0x8d, 0x84, 0x74, 0xee, 0x30, 0x42, 0x95, 0x4f, 0x30, 0x6e, 0xc6,
+ 0xd4, 0x9d, 0xbe, 0x70, 0xbc, 0x40, 0x01, 0x93, 0x78, 0xdc, 0x26, 0xf6, 0xf8, 0xf9, 0x83, 0x8b,
+ 0x43, 0x7f, 0x43, 0x3f, 0x61, 0x0f, 0xec, 0x73, 0x64, 0x74, 0xe6, 0x7d, 0x82, 0x1e, 0x38, 0xae,
+ 0xf2, 0xf4, 0xf1, 0x78, 0x07, 0xc5, 0x83, 0xe8, 0x03, 0x7c, 0x83, 0x02, 0x94, 0x65, 0xe4, 0x8d,
+ 0xdb, 0x8a, 0x7c, 0xab, 0x74, 0xa8, 0x22, 0x81, 0x61, 0x84, 0xe6, 0xf9, 0x65, 0x34, 0x1a, 0x05,
+ 0x92, 0x8b, 0x51, 0x24, 0x45, 0x40, 0xfa, 0xa8, 0xbd, 0x87, 0xa2, 0x46, 0x37, 0x17, 0x7e, 0x7a,
+ 0x04, 0xbd, 0xea, 0x78, 0x17, 0x3e, 0x7c, 0x06, 0x92, 0x32, 0x0e, 0x4b, 0xdf, 0xfa, 0x55, 0x3e,
+ 0x96, 0x0b, 0xe9, 0x00, 0x56, 0xf6, 0x6d, 0xd4, 0xbc, 0x88, 0x5a, 0xf0, 0x27, 0x0e, 0x0e, 0xdd,
+ 0x29, 0x30, 0xd1, 0xa4, 0xa5, 0x11, 0xf0, 0x26, 0x75, 0xff, 0x35, 0xc1, 0xed, 0xca, 0x62, 0x47,
+ 0x44, 0x7f, 0x1f, 0xe3, 0xed, 0xca, 0x12, 0xd5, 0x8f, 0xc1, 0x6c, 0xa1, 0xb3, 0x8c, 0x4a, 0xd3,
+ 0xb1, 0xe1, 0x7f, 0x3c, 0x38, 0x2c, 0xd7, 0x81, 0x29, 0xab, 0xe9, 0xd8, 0x95, 0x1d, 0x3f, 0xb8,
+ 0xdf, 0x94, 0x1e, 0x26, 0xf8, 0x5f, 0xb5, 0x1d, 0xe7, 0x41, 0x8b, 0xed, 0x9a, 0x87, 0x09, 0xc3,
+ 0x1a, 0x13, 0x98, 0xf4, 0xc3, 0x32, 0x26, 0xfa, 0xd4, 0x9d, 0x3e, 0x64, 0x1f, 0x0e, 0xbd, 0xdb,
+ 0x68, 0x57, 0xf8, 0xb0, 0x58, 0x05, 0x1e, 0x66, 0x38, 0xe3, 0x5b, 0x71, 0x28, 0xc3, 0x59, 0x0c,
+ 0x01, 0x63, 0xb8, 0x5f, 0x24, 0xc4, 0x31, 0xf5, 0x35, 0xe0, 0x03, 0xa0, 0x33, 0x3a, 0xf3, 0x70,
+ 0x48, 0x74, 0x0e, 0xc7, 0x44, 0x7c, 0x3f, 0x0b, 0x75, 0xc9, 0x2c, 0x1e, 0xf8, 0x9f, 0x46, 0x01,
+ 0xce, 0x5d, 0xc3, 0xf8, 0x2b, 0x50, 0x6f, 0x85, 0x04, 0xf7, 0x42, 0xef, 0xe3, 0x20, 0x2e, 0x65,
+ 0x8c, 0x37, 0xa6, 0xcb, 0xd4, 0x9f, 0x3e, 0x80, 0xbf, 0xa0, 0x80, 0x39, 0xe2, 0x23, 0xd0, 0x46,
+ 0xa6, 0x4b, 0x3b, 0xca, 0x91, 0x38, 0xca, 0xbf, 0x43, 0x3a, 0xc0, 0x8f, 0xc8, 0x87, 0x90, 0x8e,
+ 0x91, 0x40, 0x21, 0x17, 0xdd, 0x47, 0x92, 0x84, 0xb1, 0x6c, 0xa3, 0x14, 0x03, 0x12, 0x98, 0x88,
+ 0x8f, 0x06, 0x8f, 0x84, 0x1e, 0xb9, 0x22, 0x33, 0x7c, 0x65, 0x1b, 0xb3, 0x47, 0xae, 0x0c, 0x11,
+ 0x63, 0xb8, 0x32, 0xf2, 0x71, 0x6c, 0xc1, 0xd9, 0x20, 0xd7, 0xa6, 0xbf, 0x2a, 0x17, 0x9c, 0x68,
+ 0xfb, 0xf4, 0x48, 0x3c, 0x30, 0x0f, 0x10, 0xd8, 0x5e, 0x05, 0x39, 0xd7, 0xb9, 0x44, 0x97, 0xb6,
+ 0x66, 0x75, 0xf2, 0x4c, 0x4c, 0x7e, 0xa7, 0xbd, 0xbb, 0x63, 0xd3, 0x93, 0xa1, 0xb3, 0xba, 0xff,
+ 0xaa, 0xde, 0x08, 0x66, 0x2f, 0x59, 0xde, 0xf6, 0x0a, 0x32, 0x5b, 0xc8, 0xd5, 0x9d, 0x4b, 0xc4,
+ 0x63, 0x6e, 0x52, 0x17, 0x13, 0x45, 0xff, 0x15, 0x09, 0xfb, 0x92, 0xdc, 0xa5, 0x3e, 0x96, 0xe3,
+ 0x6f, 0x49, 0x2c, 0xcf, 0x68, 0xaa, 0xd2, 0x17, 0x98, 0xf7, 0x2a, 0x60, 0x4a, 0x77, 0x2e, 0x31,
+ 0x21, 0xf9, 0xbf, 0x0f, 0x57, 0x46, 0x12, 0x4f, 0xf4, 0xe8, 0xdd, 0xf8, 0x3e, 0xf9, 0x63, 0x9f,
+ 0xe8, 0xc5, 0x56, 0x3f, 0x96, 0x93, 0x4b, 0x33, 0xba, 0x73, 0xa9, 0x8e, 0x3c, 0xaa, 0x11, 0xb0,
+ 0x31, 0x22, 0x27, 0x6b, 0xab, 0x4b, 0x0b, 0x64, 0xf3, 0xf0, 0xe0, 0x3d, 0xe9, 0x2e, 0x42, 0xc0,
+ 0xa0, 0x80, 0xc4, 0x71, 0xef, 0x22, 0x0c, 0xa4, 0x60, 0x0c, 0x31, 0x52, 0x14, 0x30, 0xad, 0x3b,
+ 0x97, 0xf0, 0xd0, 0xb0, 0x64, 0xb5, 0xdb, 0xa3, 0x19, 0x21, 0x93, 0x1a, 0xff, 0x3e, 0x1b, 0x7c,
+ 0x2a, 0xc6, 0x6e, 0xfc, 0x0f, 0x20, 0x20, 0x7d, 0x18, 0x9e, 0x47, 0x95, 0xc5, 0x1f, 0xa1, 0xed,
+ 0xd1, 0xe0, 0x30, 0xac, 0x42, 0x04, 0x64, 0x1c, 0x9a, 0x42, 0x44, 0x51, 0x30, 0x96, 0x9d, 0x93,
+ 0xb9, 0x32, 0x19, 0xe6, 0x47, 0xab, 0x13, 0xef, 0x4a, 0xe6, 0x9a, 0xc8, 0x86, 0x5d, 0x81, 0x90,
+ 0x91, 0xa0, 0x91, 0xc0, 0x05, 0x51, 0x82, 0x86, 0xf4, 0xf1, 0xf8, 0x80, 0x02, 0x66, 0x28, 0x09,
+ 0x0f, 0x13, 0x2b, 0x60, 0x28, 0xa5, 0xe2, 0x5b, 0x70, 0x38, 0x4a, 0x15, 0x43, 0xc1, 0x58, 0x6e,
+ 0xe9, 0xc4, 0x76, 0xdc, 0x10, 0xc7, 0xc7, 0xa3, 0x10, 0x1c, 0xda, 0x18, 0x1b, 0xe1, 0x11, 0xf2,
+ 0x61, 0x8c, 0xb1, 0x43, 0x3a, 0x46, 0xfe, 0xbc, 0x40, 0x8b, 0x46, 0x89, 0xc1, 0x01, 0x54, 0x61,
+ 0x84, 0x30, 0x0c, 0xa9, 0x0a, 0x87, 0x84, 0xc4, 0x57, 0x14, 0x00, 0x28, 0x01, 0x6b, 0xce, 0x1e,
+ 0xb9, 0x94, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x32, 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97,
+ 0xa4, 0x2b, 0x81, 0x1c, 0x97, 0x71, 0x23, 0xc7, 0xbe, 0x12, 0x18, 0x5f, 0x7f, 0xfa, 0x18, 0x7f,
+ 0x89, 0x5a, 0x73, 0xe1, 0x01, 0xd3, 0x5f, 0x1b, 0x09, 0xca, 0xdc, 0xec, 0x5f, 0x11, 0x67, 0xff,
+ 0x07, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, 0x6d, 0xc4, 0xc3, 0x3b, 0x20, 0xfa,
+ 0xd3, 0x39, 0x70, 0x94, 0x75, 0x22, 0x3f, 0x0a, 0x10, 0x27, 0x3c, 0x87, 0x27, 0x74, 0x92, 0x03,
+ 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x09, 0xf2, 0xc6, 0xb2, 0xba, 0x51, 0xd0, 0x2e,
+ 0x77, 0x4c, 0xbb, 0x25, 0x1f, 0xee, 0x77, 0x00, 0xf0, 0xfe, 0x5a, 0xa3, 0x22, 0xae, 0x35, 0xf6,
+ 0x59, 0x99, 0x4c, 0xbc, 0x73, 0x4d, 0x58, 0x46, 0xc9, 0x1d, 0xfb, 0xce, 0x75, 0x74, 0xdd, 0xe9,
+ 0xa3, 0xf4, 0x2e, 0x05, 0xe4, 0xea, 0x8e, 0xeb, 0xc1, 0x87, 0x92, 0x68, 0x27, 0xe5, 0x7c, 0x08,
+ 0x92, 0xff, 0xae, 0x96, 0x85, 0x5b, 0x93, 0x6f, 0x8b, 0x3f, 0xea, 0x6c, 0x7a, 0x26, 0xf1, 0xea,
+ 0xc6, 0xf5, 0x73, 0xd7, 0x27, 0x27, 0x8d, 0xa7, 0x43, 0xf9, 0x57, 0x8f, 0x3e, 0x80, 0x91, 0x5a,
+ 0x3c, 0x9d, 0xc8, 0x9a, 0xd3, 0xc7, 0xed, 0xbf, 0xcd, 0x31, 0xdf, 0xd6, 0x25, 0xab, 0x8d, 0xe0,
+ 0x43, 0xd4, 0x65, 0xa4, 0x6a, 0xee, 0x20, 0xf9, 0x23, 0x31, 0xb1, 0xae, 0xad, 0x24, 0xbe, 0xac,
+ 0x12, 0xc6, 0x97, 0x4d, 0xaa, 0x50, 0xf4, 0x00, 0x3a, 0x25, 0x69, 0xdc, 0x0a, 0x15, 0x53, 0xf7,
+ 0x58, 0xe2, 0x74, 0x1e, 0xab, 0x23, 0x8f, 0x1a, 0x95, 0x35, 0xff, 0x06, 0x96, 0x9f, 0x1c, 0x49,
+ 0xc4, 0xce, 0xe0, 0x82, 0x17, 0xa5, 0xe7, 0x82, 0x97, 0xf7, 0xf2, 0xe0, 0xac, 0x89, 0xe0, 0x3c,
+ 0x39, 0x9a, 0x41, 0x22, 0x91, 0x23, 0x81, 0xe9, 0xad, 0x01, 0x4c, 0xeb, 0x02, 0x4c, 0x77, 0x0f,
+ 0x49, 0x45, 0xfa, 0x80, 0x7d, 0x1e, 0x9b, 0x2a, 0x64, 0xd2, 0x5f, 0xb2, 0x5b, 0x2c, 0xc2, 0xea,
+ 0x3f, 0x1f, 0xf6, 0x66, 0xdb, 0xfe, 0x10, 0xac, 0x42, 0x2c, 0xe7, 0x7c, 0xef, 0x6d, 0xf5, 0x0b,
+ 0x34, 0x9c, 0x2b, 0xee, 0x44, 0xc9, 0x4e, 0x9b, 0xfc, 0x8d, 0xf5, 0xc1, 0x7f, 0xf0, 0x2f, 0x92,
+ 0xad, 0xbf, 0x91, 0x22, 0x7a, 0x18, 0x97, 0xb2, 0x0d, 0x94, 0x60, 0x65, 0x4e, 0x82, 0xba, 0x7f,
+ 0x1f, 0x6e, 0x61, 0x61, 0x24, 0x90, 0x21, 0xdd, 0xc2, 0x48, 0x01, 0x87, 0xe9, 0x16, 0x36, 0x88,
+ 0x80, 0x31, 0xdc, 0x32, 0x9f, 0x67, 0xbb, 0xf2, 0xc4, 0x67, 0x12, 0xfe, 0x6d, 0x36, 0xf5, 0xd1,
+ 0xf6, 0x7b, 0x99, 0x44, 0x7e, 0xcc, 0x84, 0xae, 0xf8, 0xe1, 0x36, 0x89, 0x67, 0x72, 0x5c, 0x71,
+ 0x63, 0x58, 0xff, 0xc9, 0x12, 0x9f, 0xf2, 0xf3, 0x56, 0xcb, 0xdb, 0x1e, 0xd1, 0xc9, 0x8c, 0x4b,
+ 0xb8, 0x2c, 0xff, 0xba, 0x62, 0xf2, 0x02, 0xff, 0x35, 0x93, 0x28, 0x14, 0x54, 0xc0, 0x12, 0x42,
+ 0x56, 0x04, 0x8b, 0x13, 0x04, 0x70, 0x8a, 0x2d, 0x6f, 0x8c, 0x12, 0x7d, 0xce, 0x6a, 0x21, 0xe7,
+ 0x61, 0x28, 0xd1, 0x84, 0xae, 0xd1, 0x49, 0x74, 0x5c, 0x71, 0xff, 0x4e, 0x25, 0x3a, 0x60, 0xc9,
+ 0x88, 0x24, 0x3a, 0xb6, 0xbc, 0xf4, 0x79, 0xfc, 0x8a, 0x19, 0x36, 0x21, 0x5a, 0xb5, 0xec, 0x8b,
+ 0xf0, 0xdb, 0x05, 0xff, 0xa2, 0xe4, 0xf3, 0x96, 0xb7, 0xcd, 0x62, 0xba, 0xfc, 0xa1, 0xf4, 0x1d,
+ 0x27, 0x43, 0xc4, 0x6d, 0x11, 0xc3, 0x42, 0xe5, 0xf7, 0x85, 0x85, 0x2a, 0x81, 0x59, 0xcb, 0xf6,
+ 0x90, 0x6b, 0x9b, 0xed, 0xa5, 0xb6, 0xb9, 0xd5, 0x3d, 0x35, 0xd1, 0xf7, 0x12, 0xba, 0x0a, 0x97,
+ 0x47, 0x17, 0xff, 0xe0, 0xaf, 0x93, 0x9c, 0x14, 0xaf, 0xc5, 0x8f, 0x88, 0x62, 0x35, 0x15, 0x1d,
+ 0xc5, 0x2a, 0x88, 0x52, 0x05, 0x06, 0x07, 0xb9, 0x96, 0xb5, 0x71, 0x13, 0x86, 0xed, 0xbb, 0x4d,
+ 0x32, 0x9a, 0x5a, 0x10, 0xc2, 0xf1, 0x37, 0x94, 0x44, 0xab, 0x74, 0x58, 0x10, 0xe6, 0x7b, 0x85,
+ 0x20, 0xb1, 0x85, 0xca, 0x37, 0x5e, 0xe9, 0x69, 0x7c, 0x60, 0xf2, 0xe4, 0x24, 0x4c, 0x1e, 0x5e,
+ 0xa8, 0xf2, 0x72, 0x42, 0x95, 0x64, 0xd1, 0x4f, 0xa6, 0xb5, 0x63, 0x38, 0x55, 0x94, 0x07, 0xc7,
+ 0xfc, 0xa8, 0xb5, 0x9d, 0x0e, 0x32, 0x5d, 0xd3, 0x6e, 0x22, 0xf8, 0xe1, 0xec, 0x28, 0xcc, 0xde,
+ 0x25, 0x30, 0x69, 0x35, 0x1d, 0xbb, 0x6e, 0x3d, 0xcb, 0xbf, 0x24, 0x2e, 0x3e, 0x58, 0x3a, 0xe1,
+ 0x48, 0x85, 0xfd, 0xa1, 0x07, 0xff, 0xaa, 0x15, 0x30, 0xd5, 0x34, 0xdd, 0x16, 0x0d, 0xa6, 0x97,
+ 0xef, 0xb9, 0x90, 0x29, 0xb2, 0xa0, 0xb2, 0xff, 0x8b, 0x1e, 0xfe, 0xad, 0xd6, 0x44, 0x26, 0x16,
+ 0x7a, 0xa2, 0x72, 0x44, 0x16, 0xb6, 0x18, 0xfe, 0x24, 0xf0, 0x1c, 0x73, 0xc7, 0x45, 0x6d, 0x72,
+ 0x27, 0x3c, 0xed, 0x21, 0xa6, 0xf4, 0x30, 0x21, 0xe9, 0x34, 0x9f, 0x54, 0xb5, 0x0f, 0x8d, 0x71,
+ 0x4f, 0xf3, 0xa5, 0xa8, 0x48, 0x5f, 0x32, 0xdf, 0x5e, 0x00, 0xb3, 0xb4, 0x57, 0x63, 0xec, 0x84,
+ 0xbf, 0x40, 0xae, 0x74, 0xf6, 0xee, 0x47, 0x57, 0x60, 0xfd, 0xe0, 0x63, 0x72, 0x11, 0x28, 0x17,
+ 0x83, 0xc0, 0x81, 0xf8, 0x31, 0xe9, 0xfe, 0xbb, 0x4f, 0xd7, 0x3c, 0xa5, 0x69, 0xdc, 0xfb, 0xef,
+ 0xf1, 0xd5, 0xa7, 0x8f, 0xcf, 0x2f, 0x2b, 0x40, 0x29, 0xb5, 0x5a, 0xb0, 0x79, 0x70, 0x28, 0xce,
+ 0x80, 0x69, 0x5f, 0x67, 0xc2, 0x58, 0x8e, 0x7c, 0x52, 0xd2, 0xc5, 0xcc, 0x80, 0x37, 0xa5, 0xd6,
+ 0xd8, 0x77, 0x07, 0x62, 0xea, 0x4e, 0x1f, 0x94, 0x5f, 0x9b, 0x60, 0x4a, 0xb3, 0xe0, 0x38, 0x17,
+ 0xc9, 0x91, 0x97, 0x87, 0x14, 0x90, 0x5f, 0x42, 0x5e, 0x73, 0x7b, 0x44, 0x3a, 0xb3, 0xeb, 0xb6,
+ 0x7d, 0x9d, 0xd9, 0x77, 0x3f, 0xfd, 0x60, 0x1b, 0xd6, 0x27, 0x6b, 0x9e, 0x90, 0x34, 0xee, 0x28,
+ 0xcd, 0xb1, 0xb5, 0xa7, 0x0f, 0xce, 0xbf, 0x2a, 0x60, 0x2e, 0x58, 0xe1, 0xa2, 0x98, 0xfc, 0xd2,
+ 0xc3, 0x6e, 0xdd, 0x12, 0x7e, 0x36, 0x59, 0xa8, 0xb3, 0x80, 0xa7, 0x62, 0xcb, 0x52, 0x5e, 0x58,
+ 0x4c, 0x10, 0x04, 0x4d, 0x8e, 0xc0, 0x31, 0xcc, 0xe0, 0x15, 0x30, 0x49, 0x08, 0x5a, 0xb4, 0xf6,
+ 0x88, 0x0b, 0xa0, 0xb0, 0xd0, 0xf8, 0x33, 0x23, 0x59, 0x68, 0xbc, 0x5b, 0x5c, 0x68, 0x94, 0x8c,
+ 0x5c, 0xec, 0xaf, 0x33, 0x26, 0xf4, 0x89, 0xc1, 0xff, 0x8f, 0x7c, 0x99, 0x31, 0x81, 0x4f, 0xcc,
+ 0x80, 0xfa, 0xd3, 0x47, 0xf4, 0x13, 0x0d, 0xd6, 0xd9, 0xfa, 0x1b, 0xa3, 0xf0, 0xbf, 0x1d, 0x03,
+ 0xb9, 0x73, 0xf8, 0xe1, 0x7f, 0x86, 0x37, 0x5b, 0xbd, 0x74, 0x04, 0x41, 0x16, 0x9e, 0x06, 0x72,
+ 0xb8, 0x7c, 0x36, 0x6d, 0xb9, 0x45, 0x6e, 0x97, 0x16, 0x13, 0xa2, 0x93, 0xff, 0xd4, 0x93, 0xa0,
+ 0xd0, 0x75, 0x76, 0xdd, 0x26, 0x36, 0x9f, 0xb1, 0xc4, 0xb0, 0xb7, 0xa4, 0xc1, 0x45, 0x85, 0xa2,
+ 0xe7, 0x47, 0xe7, 0xfa, 0xc9, 0x5d, 0x74, 0xa4, 0x08, 0x17, 0x1d, 0x25, 0xd8, 0x3f, 0x90, 0xa0,
+ 0x2d, 0x7d, 0x89, 0xf8, 0x5b, 0x72, 0xe7, 0x5f, 0x6b, 0x54, 0xb0, 0x47, 0xb0, 0xe5, 0xa0, 0xe2,
+ 0x90, 0xd4, 0x71, 0x5b, 0x64, 0x6d, 0x10, 0xcf, 0x7d, 0xac, 0x8e, 0xdb, 0x12, 0x34, 0x8c, 0xe5,
+ 0xb4, 0x79, 0x81, 0x39, 0x9b, 0x3e, 0x30, 0x4a, 0x74, 0x73, 0x82, 0xd0, 0x1f, 0x08, 0x9d, 0x11,
+ 0x3a, 0xa1, 0x0e, 0x8d, 0xce, 0x21, 0xb9, 0xa1, 0x7e, 0x44, 0x21, 0x11, 0x2d, 0x7d, 0x23, 0x47,
+ 0xfe, 0xc2, 0xa2, 0xc4, 0x10, 0xe1, 0x31, 0x58, 0x88, 0xe7, 0x3c, 0x3b, 0x7c, 0x88, 0x6f, 0x91,
+ 0x75, 0x1c, 0xfd, 0xe3, 0x0e, 0xf1, 0x2d, 0x4b, 0x48, 0xfa, 0x40, 0xbe, 0x8e, 0x5e, 0x10, 0x56,
+ 0x6a, 0x7a, 0xd6, 0xde, 0x88, 0x35, 0x4d, 0x1c, 0x5e, 0x12, 0x46, 0xf5, 0xdd, 0xc7, 0x21, 0x4a,
+ 0xe1, 0xb8, 0xa3, 0xfa, 0xca, 0x91, 0x31, 0x86, 0xe3, 0xe8, 0x00, 0x73, 0x8f, 0xad, 0xcd, 0xbc,
+ 0x81, 0xad, 0x06, 0xa0, 0x83, 0xa3, 0x75, 0x16, 0xcc, 0x70, 0x53, 0x7f, 0xff, 0xe2, 0x19, 0x21,
+ 0x2d, 0xe9, 0x81, 0xf5, 0x80, 0x65, 0x23, 0x5f, 0x18, 0x48, 0xb0, 0xe0, 0x2b, 0x43, 0xc4, 0x58,
+ 0xee, 0x75, 0xf3, 0xc7, 0xb0, 0x31, 0x61, 0xf5, 0x87, 0x3c, 0x56, 0x35, 0x11, 0xab, 0x3b, 0x65,
+ 0xd8, 0x24, 0x37, 0xa6, 0x49, 0xcd, 0x1b, 0xdf, 0x16, 0xc0, 0xa5, 0x0b, 0x70, 0x3d, 0x6d, 0x68,
+ 0x3a, 0xd2, 0x47, 0xec, 0x8d, 0x0a, 0xbd, 0xdc, 0xa9, 0xb4, 0x67, 0x5a, 0x6d, 0x12, 0x65, 0x60,
+ 0x04, 0x97, 0x13, 0xff, 0x15, 0x0f, 0xca, 0x39, 0x11, 0x94, 0xfb, 0x64, 0x98, 0x21, 0x50, 0x14,
+ 0x81, 0xcd, 0x13, 0xf9, 0xc5, 0x71, 0x1a, 0x62, 0xf8, 0xea, 0xde, 0x70, 0x7e, 0xec, 0x3b, 0xbf,
+ 0x6a, 0xfe, 0x7b, 0x01, 0x48, 0x0f, 0x08, 0x20, 0x69, 0x07, 0xa5, 0x2b, 0x7d, 0xac, 0x5e, 0x46,
+ 0x87, 0xae, 0x3a, 0x9d, 0x5e, 0x8d, 0x66, 0xe8, 0x62, 0x33, 0x37, 0x45, 0x98, 0xb9, 0x25, 0x3c,
+ 0xe3, 0x10, 0xba, 0xee, 0xfa, 0xc4, 0x0d, 0x52, 0xa7, 0xdc, 0x88, 0xcf, 0x38, 0x0c, 0xa4, 0x20,
+ 0x7d, 0x70, 0xfe, 0x49, 0x01, 0x60, 0xd9, 0x75, 0x76, 0x3b, 0x35, 0xb7, 0x85, 0x5c, 0xf8, 0xf7,
+ 0xe1, 0x64, 0xed, 0xc5, 0x23, 0x98, 0xac, 0xad, 0x03, 0xb0, 0x15, 0x14, 0xce, 0x7a, 0xa3, 0xc7,
+ 0xc9, 0x4d, 0xcd, 0x42, 0xa2, 0x74, 0xae, 0x0c, 0xf1, 0x9a, 0xdf, 0x67, 0x88, 0x18, 0xc7, 0x8d,
+ 0x2f, 0x61, 0x71, 0xa3, 0x9c, 0xac, 0xbd, 0x23, 0xc0, 0xda, 0x10, 0xb0, 0xbe, 0xef, 0x00, 0x94,
+ 0xa4, 0x8f, 0xf9, 0x3f, 0x4f, 0x80, 0x69, 0xba, 0xb5, 0x4a, 0x79, 0xfa, 0x8f, 0x21, 0xe8, 0xbf,
+ 0x36, 0x02, 0xd0, 0x37, 0xc0, 0x8c, 0x13, 0x96, 0x4e, 0xc7, 0x3f, 0x7e, 0xb1, 0x2c, 0x16, 0x76,
+ 0x8e, 0x2e, 0x5d, 0x28, 0x06, 0x7e, 0x90, 0x47, 0x5e, 0x17, 0x91, 0xbf, 0x3b, 0x86, 0xdf, 0x5c,
+ 0x89, 0xa3, 0x84, 0xfe, 0x9d, 0x01, 0xf4, 0x1b, 0x02, 0xf4, 0xa5, 0x83, 0x90, 0x32, 0x86, 0x2b,
+ 0x0e, 0x14, 0x90, 0x23, 0x27, 0x12, 0x7f, 0x3b, 0xc5, 0xb5, 0x98, 0x53, 0x60, 0x82, 0xa8, 0x6c,
+ 0x30, 0x47, 0xf4, 0x5f, 0xf1, 0x17, 0x73, 0xd3, 0x43, 0x6e, 0xe0, 0x5d, 0xe2, 0xbf, 0x62, 0x1a,
+ 0x7c, 0x4f, 0xf0, 0xee, 0xa9, 0x02, 0xdd, 0x34, 0x0e, 0x12, 0x86, 0x9e, 0x40, 0xf2, 0x1c, 0x1f,
+ 0xd9, 0x19, 0xc5, 0x61, 0x26, 0x90, 0x03, 0x08, 0x49, 0x1f, 0xf8, 0x2f, 0xe4, 0xc0, 0x29, 0xba,
+ 0x02, 0xb8, 0xe4, 0x3a, 0x3b, 0x3d, 0x37, 0x8a, 0x59, 0x07, 0x97, 0x85, 0x9b, 0xc0, 0x9c, 0x27,
+ 0xf8, 0xc0, 0x33, 0x99, 0xe8, 0x49, 0x85, 0x7f, 0xc9, 0xfb, 0xbf, 0x3c, 0x53, 0x44, 0x72, 0x21,
+ 0x86, 0x81, 0x51, 0xb4, 0x27, 0xde, 0x54, 0x91, 0x24, 0x94, 0x5b, 0x50, 0x54, 0x86, 0x5a, 0x5f,
+ 0x0e, 0x64, 0x2a, 0x2f, 0x23, 0x53, 0xef, 0x0b, 0x64, 0xea, 0x27, 0x04, 0x99, 0x5a, 0x3e, 0x38,
+ 0x4b, 0xd2, 0x97, 0xad, 0x57, 0x05, 0x9b, 0x78, 0xc1, 0x16, 0xeb, 0x4e, 0x0a, 0x1b, 0xab, 0xbc,
+ 0xef, 0x58, 0x4e, 0xf0, 0x1d, 0x13, 0xef, 0x00, 0x49, 0xb0, 0x6a, 0x21, 0x52, 0x1d, 0x21, 0x4b,
+ 0x73, 0x20, 0x6b, 0xf9, 0xd4, 0x65, 0xad, 0xd6, 0x50, 0xeb, 0x12, 0xb1, 0x15, 0x8d, 0x61, 0x1d,
+ 0x70, 0x0e, 0x14, 0x96, 0xac, 0xb6, 0x87, 0x5c, 0xf8, 0x25, 0xb6, 0x2a, 0xf1, 0xaa, 0x14, 0x07,
+ 0x80, 0x45, 0x50, 0xd8, 0x24, 0xb5, 0x31, 0x93, 0xf9, 0x56, 0x39, 0xed, 0xa1, 0x14, 0xea, 0xec,
+ 0xdf, 0xa4, 0x11, 0x11, 0x7b, 0x8a, 0x19, 0xd9, 0x72, 0x46, 0x82, 0x88, 0x88, 0x83, 0x49, 0x18,
+ 0xcb, 0x65, 0x60, 0x05, 0x1d, 0xed, 0xe0, 0x31, 0xfe, 0x62, 0x7a, 0x08, 0x17, 0x81, 0x62, 0xb5,
+ 0xba, 0xa4, 0x73, 0x9c, 0xd2, 0xf1, 0x63, 0x52, 0xbf, 0xae, 0x5e, 0x56, 0x51, 0x92, 0xc7, 0xed,
+ 0xd7, 0x25, 0x45, 0x45, 0xfa, 0x98, 0x7d, 0x8f, 0x38, 0xf5, 0x76, 0xda, 0x66, 0x13, 0x61, 0xea,
+ 0x53, 0x43, 0x8d, 0xf6, 0x64, 0x39, 0xbf, 0x27, 0xe3, 0xf4, 0x34, 0x7f, 0x00, 0x3d, 0x1d, 0x76,
+ 0xc9, 0x38, 0xe0, 0x39, 0x69, 0xf8, 0xa1, 0x2d, 0x19, 0xc7, 0x92, 0x31, 0x86, 0xab, 0x5e, 0xfd,
+ 0xc3, 0xcb, 0x63, 0xd5, 0xd6, 0x61, 0x37, 0xd4, 0x18, 0xb3, 0x46, 0x76, 0x50, 0x79, 0x98, 0x0d,
+ 0xb5, 0x68, 0x1a, 0xc6, 0x80, 0xd6, 0x1c, 0x43, 0xeb, 0x33, 0x6c, 0x18, 0x4d, 0x79, 0x4f, 0xbb,
+ 0xeb, 0xb8, 0x5e, 0xb2, 0x3d, 0x6d, 0x4c, 0x9d, 0x4e, 0xfe, 0x4b, 0x7a, 0x48, 0x4e, 0x3c, 0xcb,
+ 0x3e, 0xaa, 0xe1, 0x33, 0xc1, 0x21, 0xb9, 0x41, 0x04, 0xa4, 0x0f, 0xef, 0x9b, 0x0f, 0x69, 0xf0,
+ 0x1c, 0x56, 0x1d, 0x99, 0x0e, 0x8c, 0x6c, 0xe8, 0x1c, 0x46, 0x1d, 0xa3, 0x69, 0x48, 0x1f, 0xaf,
+ 0x6f, 0x71, 0x03, 0xe7, 0x1b, 0xc7, 0x38, 0x70, 0xfa, 0x9a, 0x99, 0x1f, 0x52, 0x33, 0x87, 0xdd,
+ 0xab, 0x63, 0xbc, 0x1e, 0xdd, 0x80, 0x39, 0xcc, 0x5e, 0x5d, 0x0c, 0x11, 0xe9, 0x23, 0xfe, 0x26,
+ 0x05, 0xe4, 0xeb, 0xe3, 0x1f, 0x2f, 0x87, 0x9d, 0x8b, 0x10, 0x5e, 0xd5, 0x47, 0x36, 0x5c, 0x0e,
+ 0x33, 0x17, 0x89, 0x24, 0x61, 0x0c, 0x97, 0x1d, 0x1c, 0x05, 0x33, 0x64, 0x49, 0xc4, 0xdf, 0x12,
+ 0xff, 0x16, 0x1b, 0x35, 0x5f, 0x9f, 0xa2, 0xae, 0x3e, 0x1d, 0x4c, 0xfa, 0xfb, 0x66, 0x6c, 0xe4,
+ 0x9c, 0x97, 0xd3, 0xcf, 0x60, 0xdf, 0x2d, 0xf8, 0xff, 0x40, 0x8e, 0x2b, 0x23, 0xdf, 0x57, 0x1f,
+ 0xd6, 0x71, 0xe5, 0x50, 0xf7, 0xd6, 0xff, 0x22, 0x1c, 0x51, 0xff, 0x63, 0x7a, 0x98, 0xf7, 0xee,
+ 0xb9, 0xe7, 0xfa, 0xec, 0xb9, 0x7f, 0x98, 0xc7, 0xb2, 0x2e, 0x62, 0x79, 0x8f, 0x2c, 0x0b, 0x47,
+ 0x38, 0xd6, 0xbe, 0x2b, 0x80, 0xf3, 0x9c, 0x00, 0xe7, 0xc2, 0x81, 0x68, 0x19, 0xc3, 0x21, 0xd5,
+ 0x5c, 0x38, 0xe6, 0x7e, 0x34, 0x45, 0x3d, 0xee, 0x39, 0x01, 0x93, 0xdb, 0x77, 0x02, 0x46, 0xd0,
+ 0xf4, 0xfc, 0x01, 0x35, 0xfd, 0xa3, 0xbc, 0x74, 0x18, 0xa2, 0x74, 0x3c, 0x4d, 0x1e, 0x91, 0xd1,
+ 0x8d, 0xcc, 0xef, 0x0e, 0xc4, 0xe3, 0xbc, 0x20, 0x1e, 0xe5, 0x83, 0x11, 0x93, 0xbe, 0x7c, 0xfc,
+ 0xa9, 0x3f, 0xa1, 0x3d, 0x64, 0x7d, 0x1f, 0x76, 0xab, 0x58, 0x60, 0xe2, 0xc8, 0x46, 0xee, 0x61,
+ 0xb6, 0x8a, 0x07, 0x51, 0x32, 0x86, 0xf8, 0x77, 0xb3, 0x60, 0x9a, 0xd0, 0x74, 0xde, 0x6a, 0x6d,
+ 0x21, 0x0f, 0xfe, 0x06, 0xf5, 0x27, 0xf5, 0xa3, 0x8d, 0x8e, 0x28, 0x24, 0x54, 0xd4, 0xd9, 0xe4,
+ 0xa4, 0x1e, 0x1d, 0x94, 0xc8, 0x79, 0x8e, 0xc0, 0x71, 0x47, 0xad, 0x1c, 0x48, 0x41, 0xfa, 0x90,
+ 0x7d, 0x90, 0xba, 0xdb, 0xac, 0x9a, 0x57, 0x9c, 0x5d, 0x0f, 0x3e, 0x67, 0x04, 0x1d, 0xf4, 0x02,
+ 0x28, 0xb4, 0x49, 0x69, 0xec, 0x08, 0x4d, 0xfc, 0x74, 0x87, 0xb1, 0x80, 0xd6, 0xaf, 0xb3, 0x3f,
+ 0x93, 0x9e, 0xa3, 0x09, 0xf9, 0x48, 0xcb, 0x19, 0xf7, 0x39, 0x9a, 0x01, 0xf5, 0x8f, 0xe5, 0x5e,
+ 0xa3, 0x49, 0x5c, 0xbb, 0xb5, 0x63, 0x79, 0x23, 0x8a, 0xb6, 0xd1, 0xc6, 0x65, 0xf9, 0xd1, 0x36,
+ 0xc8, 0x4b, 0xd2, 0xd3, 0xbd, 0x1c, 0x57, 0xf0, 0xef, 0xe3, 0x3e, 0xdd, 0x1b, 0x5f, 0x7d, 0xfa,
+ 0x98, 0xfc, 0x17, 0xaa, 0x59, 0xe7, 0xa8, 0xa3, 0x74, 0x8a, 0x3e, 0xd8, 0x43, 0x2b, 0x0b, 0x25,
+ 0xed, 0xf0, 0x94, 0xa5, 0x6f, 0xfd, 0xe9, 0x03, 0xf3, 0xc9, 0xd3, 0x20, 0xbf, 0x88, 0x2e, 0xec,
+ 0x6e, 0xc1, 0xbb, 0xc1, 0xa4, 0xe1, 0x22, 0x54, 0xb1, 0x37, 0x1d, 0xcc, 0x5d, 0x0f, 0x3f, 0xfb,
+ 0x90, 0xb0, 0x37, 0x8c, 0xc7, 0x36, 0x32, 0x5b, 0xe1, 0x59, 0x41, 0xff, 0x15, 0xbe, 0x34, 0x0b,
+ 0x72, 0x75, 0xcf, 0xf4, 0xe0, 0x54, 0x80, 0x2d, 0x7c, 0x0e, 0x8f, 0xc5, 0xdd, 0x22, 0x16, 0x37,
+ 0x09, 0xbc, 0x20, 0x14, 0xcc, 0xe3, 0xff, 0x23, 0x00, 0x80, 0x60, 0xf2, 0xc1, 0xae, 0x63, 0xe3,
+ 0x1c, 0xfe, 0x71, 0x55, 0xff, 0x1d, 0xbe, 0x32, 0x60, 0xf7, 0xbd, 0x02, 0xbb, 0x1f, 0x23, 0x57,
+ 0xc5, 0x18, 0x56, 0xda, 0xb2, 0x60, 0x0a, 0xb3, 0x76, 0x05, 0x99, 0xad, 0x2e, 0x7c, 0x64, 0x28,
+ 0xfc, 0x11, 0x6c, 0x86, 0xef, 0x97, 0x0e, 0x80, 0x4a, 0x5b, 0x15, 0x14, 0x1e, 0xed, 0xd1, 0xe1,
+ 0x6f, 0xfe, 0x67, 0xc5, 0xc0, 0x31, 0xb7, 0x81, 0x9c, 0x65, 0x6f, 0x3a, 0xcc, 0xbf, 0xf0, 0xda,
+ 0x88, 0xb2, 0xb1, 0x4c, 0xe8, 0x24, 0xa3, 0x64, 0x74, 0xd4, 0x78, 0xb2, 0xc6, 0x72, 0xd1, 0x60,
+ 0x0e, 0xd7, 0x0e, 0xff, 0xaf, 0x81, 0xcc, 0x56, 0x55, 0x90, 0xeb, 0x98, 0xde, 0x36, 0xab, 0x9a,
+ 0x3c, 0x63, 0x1b, 0x79, 0xd7, 0x36, 0x6d, 0xc7, 0xbe, 0xb2, 0x63, 0x3d, 0x2b, 0xb8, 0xcf, 0x58,
+ 0x48, 0xc3, 0x94, 0x6f, 0x21, 0x1b, 0xb9, 0xa6, 0x87, 0xea, 0x7b, 0x5b, 0x64, 0x8e, 0x35, 0xa9,
+ 0xf3, 0x49, 0x89, 0xe5, 0x1f, 0x53, 0x1c, 0x2d, 0xff, 0x9b, 0x56, 0x1b, 0x91, 0xa8, 0x5a, 0x4c,
+ 0xfe, 0xfd, 0xf7, 0x44, 0xf2, 0xdf, 0xa7, 0x8a, 0xf4, 0xd1, 0xf8, 0x7e, 0x16, 0xcc, 0xd4, 0xb1,
+ 0xc0, 0xd5, 0x77, 0x77, 0x76, 0x4c, 0xf7, 0x0a, 0xbc, 0x21, 0x44, 0x85, 0x13, 0xcd, 0x8c, 0xe8,
+ 0x97, 0xf2, 0x11, 0xe9, 0xab, 0xbc, 0x99, 0x6a, 0x73, 0x35, 0x24, 0xd6, 0x83, 0xc7, 0x83, 0x3c,
+ 0x16, 0x6f, 0xdf, 0xe3, 0x32, 0x56, 0x11, 0x68, 0x4e, 0xc9, 0xe8, 0x63, 0x03, 0x69, 0x1b, 0x43,
+ 0xe4, 0x93, 0x2c, 0x38, 0x5a, 0xf7, 0xcc, 0xe6, 0xc5, 0x65, 0xc7, 0x75, 0x76, 0x3d, 0xcb, 0x46,
+ 0x5d, 0xf8, 0x88, 0x10, 0x01, 0x5f, 0xfe, 0x33, 0xa1, 0xfc, 0xc3, 0x1f, 0x66, 0x64, 0x47, 0xd1,
+ 0xa0, 0x5b, 0xe5, 0x8b, 0x8f, 0x08, 0x26, 0x26, 0x37, 0x2e, 0xca, 0x94, 0x38, 0x96, 0x53, 0x12,
+ 0x45, 0xed, 0x72, 0xc7, 0x71, 0xbd, 0x55, 0xa7, 0x69, 0xb6, 0xbb, 0x9e, 0xe3, 0x22, 0x58, 0x8b,
+ 0xe5, 0x1a, 0xee, 0x61, 0x5a, 0x4e, 0x33, 0x1c, 0x1c, 0xd9, 0x1b, 0x2f, 0x76, 0x8a, 0x28, 0xe3,
+ 0x1f, 0x94, 0xde, 0x65, 0xa4, 0x5c, 0xe9, 0xa5, 0x28, 0x42, 0xce, 0xfb, 0x75, 0x69, 0xc9, 0x0e,
+ 0xb6, 0xc8, 0xed, 0x3c, 0x4a, 0x11, 0x35, 0x86, 0xa5, 0xf2, 0x2c, 0x98, 0xad, 0xef, 0x5e, 0x08,
+ 0x0a, 0xe9, 0xf2, 0x46, 0xc8, 0xab, 0xa5, 0x23, 0x8a, 0x30, 0xc1, 0xe3, 0x0b, 0x8a, 0xe0, 0xef,
+ 0x8d, 0x60, 0xb6, 0xcb, 0x67, 0x63, 0x78, 0x8b, 0x89, 0x92, 0x91, 0x44, 0x06, 0xd7, 0x9a, 0x3e,
+ 0x03, 0xdf, 0x9d, 0x05, 0xb3, 0xb5, 0x0e, 0xb2, 0x51, 0x8b, 0x7a, 0x41, 0x0a, 0x0c, 0x7c, 0x69,
+ 0x42, 0x06, 0x0a, 0x05, 0x45, 0x30, 0x30, 0xf4, 0x58, 0x5e, 0xf4, 0x99, 0x17, 0x26, 0x24, 0x62,
+ 0x5c, 0x5c, 0x6d, 0xe9, 0x33, 0xee, 0x8b, 0x59, 0x30, 0xad, 0xef, 0xda, 0xeb, 0xae, 0x83, 0x47,
+ 0x63, 0x17, 0xde, 0x13, 0x76, 0x10, 0xb7, 0x82, 0x63, 0xad, 0x5d, 0x97, 0xac, 0x3f, 0x55, 0xec,
+ 0x3a, 0x6a, 0x3a, 0x76, 0xab, 0x4b, 0xda, 0x91, 0xd7, 0xf7, 0x7f, 0xb8, 0x2b, 0xf7, 0xd0, 0xd7,
+ 0x95, 0x0c, 0xfc, 0x05, 0xe9, 0xb0, 0x44, 0xb4, 0xf1, 0x5c, 0xd5, 0xf2, 0x3d, 0x81, 0x64, 0xf0,
+ 0xa1, 0x41, 0x35, 0xa4, 0xcf, 0xdc, 0xcf, 0x64, 0x81, 0x5a, 0x6a, 0x36, 0x9d, 0x5d, 0xdb, 0xab,
+ 0xa3, 0x36, 0x6a, 0x7a, 0x86, 0x6b, 0x36, 0x11, 0x6f, 0x3f, 0x17, 0x81, 0xd2, 0xb2, 0x5c, 0xd6,
+ 0x07, 0xe3, 0x47, 0xc6, 0xc7, 0x97, 0x4a, 0xef, 0x38, 0xd2, 0x56, 0xee, 0xaf, 0x25, 0x01, 0x3b,
+ 0xe5, 0xf6, 0x15, 0x25, 0x2b, 0x1a, 0xc3, 0xcd, 0x3b, 0x59, 0x90, 0x5b, 0xb7, 0xec, 0x2d, 0x3e,
+ 0x7e, 0xd3, 0x71, 0x6c, 0xfd, 0xb4, 0xd0, 0x65, 0x26, 0x9f, 0xf4, 0x45, 0xbd, 0x1d, 0x1c, 0xb7,
+ 0x77, 0x77, 0x2e, 0x20, 0xb7, 0xb6, 0x49, 0xc6, 0x86, 0xae, 0xe1, 0xd4, 0x91, 0x4d, 0x4d, 0xa7,
+ 0xbc, 0xde, 0xf7, 0x9b, 0x68, 0x38, 0x48, 0x98, 0xbc, 0x98, 0x92, 0x08, 0x5e, 0x07, 0x44, 0x65,
+ 0x39, 0xa2, 0x12, 0x19, 0xbb, 0x7d, 0x0a, 0x4f, 0x9f, 0xbf, 0x5f, 0xcb, 0x82, 0x89, 0x35, 0xe4,
+ 0xb9, 0x56, 0xb3, 0x0b, 0x3f, 0x8f, 0x07, 0x26, 0xe4, 0xad, 0x9b, 0xae, 0xb9, 0x83, 0x3c, 0xe4,
+ 0x76, 0xa1, 0x16, 0x32, 0x1d, 0x82, 0xc9, 0x4e, 0xdb, 0xf4, 0x36, 0x1d, 0x77, 0x87, 0x49, 0x70,
+ 0xf0, 0x8e, 0x2d, 0x86, 0x3d, 0xe4, 0x76, 0x43, 0xb2, 0xfc, 0x57, 0x26, 0xe0, 0xf2, 0xf6, 0x19,
+ 0x23, 0x65, 0x5e, 0x20, 0xe3, 0x40, 0xf6, 0x99, 0x4c, 0x89, 0x63, 0xb9, 0x5d, 0x46, 0x59, 0x75,
+ 0xb6, 0xe0, 0xcb, 0x15, 0x90, 0x23, 0x92, 0xf7, 0xa6, 0x8c, 0x30, 0xa9, 0xd8, 0x41, 0xdd, 0xae,
+ 0xb9, 0x85, 0xfc, 0x49, 0x05, 0x7b, 0x55, 0xef, 0x04, 0xf9, 0x36, 0xda, 0x43, 0x6d, 0x42, 0xc6,
+ 0xdc, 0xed, 0x37, 0x08, 0x2d, 0x5b, 0x75, 0xb6, 0xe6, 0x71, 0x59, 0xf3, 0xac, 0x9c, 0xf9, 0x55,
+ 0x9c, 0x55, 0xa7, 0x7f, 0x9c, 0x7d, 0x3a, 0xc8, 0x93, 0x77, 0x75, 0x0a, 0xe4, 0x17, 0xb5, 0x85,
+ 0x8d, 0xe5, 0xe2, 0x11, 0xfc, 0xe8, 0xd3, 0x37, 0x05, 0xf2, 0x4b, 0x25, 0xa3, 0xb4, 0x5a, 0xcc,
+ 0xe2, 0x76, 0x54, 0xaa, 0x4b, 0xb5, 0xa2, 0x82, 0x13, 0xd7, 0x4b, 0xd5, 0x4a, 0xb9, 0x98, 0x53,
+ 0xa7, 0xc1, 0xc4, 0xf9, 0x92, 0x5e, 0xad, 0x54, 0x97, 0x8b, 0x79, 0xf8, 0x0f, 0x3c, 0x7e, 0x77,
+ 0x89, 0xf8, 0xdd, 0x18, 0x45, 0x53, 0x3f, 0xc8, 0x7e, 0x3d, 0x80, 0xec, 0x1e, 0x01, 0xb2, 0x1f,
+ 0x93, 0x29, 0x64, 0x0c, 0x28, 0x65, 0xc1, 0xc4, 0xba, 0xeb, 0x34, 0x51, 0xb7, 0x0b, 0x7f, 0x35,
+ 0x0b, 0x0a, 0x65, 0xd3, 0x6e, 0xa2, 0x36, 0xbc, 0x26, 0x84, 0x8a, 0x7a, 0x07, 0x65, 0x82, 0x03,
+ 0x02, 0xff, 0xc4, 0x73, 0xe6, 0x3e, 0x91, 0x33, 0xb7, 0x08, 0x8d, 0x62, 0xe5, 0xce, 0xd3, 0x32,
+ 0x23, 0xf8, 0xf3, 0x9a, 0x80, 0x3f, 0x65, 0x81, 0x3f, 0xb7, 0xc9, 0x17, 0x95, 0x3e, 0x97, 0xbe,
+ 0x9b, 0x01, 0xc7, 0x97, 0x91, 0x8d, 0x5c, 0xab, 0x49, 0x89, 0xf7, 0xdb, 0x7f, 0x8f, 0xd8, 0xfe,
+ 0x47, 0x0b, 0x44, 0xf7, 0xfb, 0x43, 0x6c, 0xfc, 0xab, 0x82, 0xc6, 0xdf, 0x27, 0x34, 0xfe, 0x56,
+ 0xc9, 0x72, 0xc6, 0x70, 0x95, 0xec, 0x14, 0x98, 0xa9, 0x3a, 0x9e, 0xb5, 0x69, 0x35, 0xe9, 0x56,
+ 0xf2, 0xcb, 0x14, 0x90, 0x5b, 0xb5, 0xba, 0x1e, 0x7f, 0x26, 0xfd, 0x0c, 0x98, 0xb6, 0xec, 0x66,
+ 0x7b, 0xb7, 0x85, 0x74, 0x64, 0x52, 0x59, 0x99, 0xd4, 0xf9, 0xa4, 0x70, 0x85, 0x1e, 0x93, 0xa5,
+ 0xf8, 0x2b, 0xf4, 0x9f, 0x94, 0xb6, 0xa6, 0x78, 0x12, 0xc8, 0x89, 0xef, 0x88, 0x21, 0xa9, 0x04,
+ 0x66, 0x6d, 0x2e, 0xab, 0x7f, 0x08, 0xbd, 0x37, 0x86, 0x33, 0x5f, 0x9c, 0x2e, 0xfe, 0x01, 0xdf,
+ 0x2b, 0x65, 0x7c, 0x0d, 0x22, 0x28, 0x19, 0x32, 0x4b, 0xc9, 0x91, 0x51, 0x55, 0x30, 0x57, 0xa9,
+ 0x1a, 0x9a, 0x5e, 0x2d, 0xad, 0xb2, 0x2c, 0x0a, 0xfc, 0x7e, 0x16, 0xe4, 0x75, 0xd4, 0x69, 0x5f,
+ 0xe1, 0x83, 0x74, 0x32, 0x7f, 0xaf, 0x4c, 0xe0, 0xef, 0xa5, 0x2e, 0x01, 0x60, 0x36, 0x71, 0xc5,
+ 0xe4, 0x36, 0x92, 0x6c, 0xdf, 0xd0, 0x71, 0x42, 0x03, 0x4b, 0x41, 0x6e, 0x9d, 0xfb, 0x13, 0xbe,
+ 0x40, 0x7a, 0x01, 0x48, 0x28, 0x8d, 0x50, 0x18, 0xd1, 0x1d, 0xbc, 0x4f, 0x6a, 0xcd, 0x66, 0x60,
+ 0x71, 0x87, 0xc3, 0xfe, 0x2f, 0x67, 0x41, 0xce, 0xc0, 0x33, 0x32, 0x6e, 0x72, 0xf6, 0x89, 0xe1,
+ 0x64, 0x1c, 0x17, 0x13, 0x21, 0xe3, 0xf7, 0x82, 0x19, 0x5e, 0x62, 0xd9, 0x8e, 0x47, 0xac, 0x88,
+ 0x0b, 0x3f, 0x0c, 0x23, 0xe1, 0x7d, 0xc8, 0x39, 0x1c, 0x16, 0x7f, 0xe5, 0x16, 0x00, 0xd6, 0x10,
+ 0xb6, 0x6b, 0xbb, 0xdb, 0x56, 0x07, 0xfe, 0x57, 0x05, 0x4c, 0x2d, 0x23, 0xaf, 0xee, 0x99, 0xde,
+ 0x6e, 0xb7, 0x67, 0xd5, 0xd2, 0x76, 0xca, 0x66, 0x73, 0x1b, 0xb1, 0xee, 0xc8, 0x7f, 0x85, 0xef,
+ 0x54, 0x64, 0xb7, 0x05, 0xc3, 0x7a, 0xe6, 0x83, 0x3a, 0x22, 0x30, 0x79, 0x2c, 0xc8, 0xb5, 0x4c,
+ 0xcf, 0x64, 0x58, 0x5c, 0xd3, 0x83, 0x45, 0x58, 0x90, 0x4e, 0xb2, 0xc1, 0xdf, 0xcd, 0xca, 0xec,
+ 0x0b, 0x4a, 0xd4, 0x9f, 0x0c, 0x84, 0xf7, 0x66, 0x86, 0x40, 0xe1, 0x18, 0x98, 0xad, 0xd6, 0x8c,
+ 0xc6, 0x6a, 0x6d, 0x79, 0x59, 0xc3, 0xa9, 0x45, 0x45, 0x3d, 0x09, 0xd4, 0xf5, 0xd2, 0x03, 0x6b,
+ 0x5a, 0xd5, 0x68, 0x54, 0x6b, 0x8b, 0x1a, 0xfb, 0x33, 0xa7, 0x1e, 0x05, 0xd3, 0xe5, 0x52, 0x79,
+ 0xc5, 0x4f, 0xc8, 0xab, 0xa7, 0xc0, 0xf1, 0x35, 0x6d, 0x6d, 0x41, 0xd3, 0xeb, 0x2b, 0x95, 0xf5,
+ 0x06, 0x2e, 0x66, 0xa9, 0xb6, 0x51, 0x5d, 0x2c, 0x16, 0x54, 0x08, 0x4e, 0x72, 0x5f, 0xce, 0xeb,
+ 0xb5, 0xea, 0x72, 0xa3, 0x6e, 0x94, 0x0c, 0xad, 0x38, 0xa1, 0x5e, 0x05, 0x8e, 0x96, 0x4b, 0x55,
+ 0x92, 0xbd, 0x5c, 0xab, 0x56, 0xb5, 0xb2, 0x51, 0x9c, 0x84, 0x3f, 0xcc, 0x81, 0xe9, 0x4a, 0xb7,
+ 0x6a, 0xee, 0xa0, 0x73, 0x66, 0xdb, 0x6a, 0xc1, 0x5f, 0xe0, 0xac, 0xc9, 0x1b, 0xc1, 0xac, 0x4b,
+ 0x1f, 0x51, 0xcb, 0xb0, 0x10, 0x45, 0x73, 0x56, 0x17, 0x13, 0xd5, 0x93, 0xa0, 0x60, 0x93, 0x02,
+ 0x18, 0x6b, 0xd8, 0x9b, 0xba, 0x00, 0x00, 0x7d, 0x32, 0xc2, 0x7b, 0xf1, 0xce, 0xf6, 0x6a, 0x93,
+ 0xb9, 0x83, 0xba, 0xc8, 0xdd, 0xb3, 0x9a, 0xc8, 0xcf, 0xa9, 0x73, 0x7f, 0xc1, 0xaf, 0x28, 0xb2,
+ 0xcb, 0x84, 0x1c, 0xa8, 0x5c, 0x73, 0x22, 0x7a, 0xc3, 0x9f, 0x57, 0x64, 0x16, 0xf9, 0xa4, 0x8a,
+ 0x4c, 0x26, 0x29, 0x2f, 0xca, 0x0e, 0x21, 0x29, 0xb3, 0x60, 0xca, 0xa8, 0xd5, 0x1a, 0xf5, 0x95,
+ 0x9a, 0x6e, 0x14, 0x15, 0x75, 0x06, 0x4c, 0xe2, 0xd7, 0xd5, 0x5a, 0x75, 0xb9, 0x98, 0x53, 0x4f,
+ 0x80, 0x63, 0x2b, 0xa5, 0x7a, 0xa3, 0x52, 0x3d, 0x57, 0x5a, 0xad, 0x2c, 0x36, 0xca, 0x2b, 0x25,
+ 0xbd, 0x5e, 0xcc, 0xab, 0xd7, 0x80, 0x13, 0x46, 0x45, 0xd3, 0x1b, 0x4b, 0x5a, 0xc9, 0xd8, 0xd0,
+ 0xb5, 0x7a, 0xa3, 0x5a, 0x6b, 0x54, 0x4b, 0x6b, 0x5a, 0xb1, 0x80, 0xd5, 0x9f, 0x7c, 0x0a, 0xc5,
+ 0x66, 0x62, 0xbf, 0x30, 0x4e, 0x46, 0x08, 0xe3, 0x54, 0xaf, 0x30, 0x02, 0x5e, 0xac, 0x74, 0xad,
+ 0xae, 0xe9, 0xe7, 0xb4, 0xe2, 0x74, 0x3f, 0x59, 0x9b, 0x51, 0x8f, 0x83, 0x22, 0xa6, 0xa1, 0x51,
+ 0xa9, 0xfb, 0x39, 0x17, 0x8b, 0xb3, 0xf0, 0xa3, 0x05, 0x70, 0x52, 0x47, 0x5b, 0x56, 0xd7, 0x43,
+ 0xee, 0xba, 0x79, 0x65, 0x07, 0xd9, 0x9e, 0xdf, 0xc9, 0xff, 0xaf, 0xc4, 0xc2, 0xb8, 0x06, 0x66,
+ 0x3b, 0xb4, 0x8c, 0x35, 0xe4, 0x6d, 0x3b, 0x2d, 0x36, 0x0a, 0x3f, 0x3a, 0xb2, 0xe7, 0x98, 0x5f,
+ 0xe7, 0xb3, 0xeb, 0xe2, 0xdf, 0x9c, 0x6c, 0x2b, 0x31, 0xb2, 0x9d, 0x1b, 0x46, 0xb6, 0xd5, 0xeb,
+ 0xc0, 0xd4, 0x6e, 0x17, 0xb9, 0xda, 0x8e, 0x69, 0xb5, 0xfd, 0x7b, 0xcd, 0x82, 0x04, 0xf8, 0xb6,
+ 0x9c, 0xac, 0xe3, 0x29, 0xd7, 0x96, 0xfe, 0x6c, 0x8c, 0xe8, 0x5b, 0x4f, 0x03, 0xc0, 0x1a, 0xbb,
+ 0xe1, 0xb6, 0x99, 0xb0, 0x72, 0x29, 0x98, 0xbe, 0x0b, 0x56, 0xbb, 0x6d, 0xd9, 0x5b, 0xc1, 0xf2,
+ 0x7d, 0x98, 0x00, 0x5f, 0xa4, 0xc8, 0x38, 0xa2, 0x26, 0xa5, 0x2d, 0x99, 0x36, 0xbd, 0x20, 0x3b,
+ 0xe6, 0x7e, 0x77, 0xbf, 0xea, 0x14, 0xd4, 0x22, 0x98, 0x21, 0x69, 0x4c, 0x03, 0x8b, 0x13, 0xb8,
+ 0x0f, 0xf6, 0x8b, 0x5b, 0xd3, 0x8c, 0x95, 0xda, 0x62, 0xf0, 0x6d, 0x12, 0x17, 0x89, 0x89, 0x29,
+ 0x55, 0x1f, 0x20, 0xda, 0x38, 0xa5, 0x3e, 0x02, 0x5c, 0xc3, 0x75, 0xd8, 0xa5, 0x55, 0x5d, 0x2b,
+ 0x2d, 0x3e, 0xd0, 0xd0, 0x9e, 0x59, 0xa9, 0x1b, 0x75, 0x51, 0xb9, 0x7c, 0x3d, 0x9a, 0xc6, 0xf4,
+ 0x6a, 0x6b, 0xa5, 0xca, 0x2a, 0xeb, 0xdf, 0x97, 0x6a, 0xfa, 0x5a, 0xc9, 0x28, 0xce, 0xc0, 0x97,
+ 0x2b, 0xa0, 0xb8, 0x8c, 0xbc, 0x75, 0xc7, 0xf5, 0xcc, 0xf6, 0xaa, 0x65, 0x5f, 0xdc, 0x70, 0xdb,
+ 0xbc, 0xcd, 0xf4, 0xaf, 0xd2, 0xa7, 0x6d, 0xc5, 0x21, 0x52, 0x28, 0x30, 0x7a, 0x61, 0xbb, 0x43,
+ 0xb2, 0x85, 0xc2, 0x14, 0x26, 0xc0, 0x9f, 0xc9, 0xca, 0x9c, 0xae, 0x95, 0xaf, 0x35, 0x99, 0x9c,
+ 0x3c, 0x7b, 0xdc, 0xe3, 0x73, 0x1f, 0xd4, 0x0a, 0xf0, 0xa1, 0x1c, 0x98, 0x5c, 0xb2, 0x6c, 0xb3,
+ 0x6d, 0x3d, 0x4b, 0x08, 0x19, 0x17, 0xf6, 0x31, 0x99, 0x98, 0x3e, 0x26, 0x3b, 0xd4, 0xf8, 0xf9,
+ 0x2b, 0x8a, 0xec, 0x16, 0x06, 0xc7, 0x7b, 0x9f, 0xc8, 0x88, 0xc1, 0xf3, 0x8f, 0xb3, 0x32, 0x9b,
+ 0x14, 0x83, 0xcb, 0x4b, 0x86, 0xe1, 0xc7, 0x7f, 0x34, 0x6c, 0xac, 0x1e, 0xfd, 0x9e, 0xec, 0x27,
+ 0x0a, 0x53, 0xf0, 0xaf, 0x14, 0x00, 0x97, 0x91, 0x77, 0x0e, 0xb9, 0xc1, 0x54, 0x80, 0xf4, 0xfa,
+ 0xcc, 0xde, 0xe6, 0x54, 0xf6, 0x4d, 0x3c, 0x80, 0xe7, 0x45, 0x00, 0x4b, 0x31, 0xca, 0x13, 0x51,
+ 0x74, 0x84, 0xf2, 0x56, 0x40, 0xa1, 0x4b, 0xbe, 0x33, 0x31, 0x7b, 0x7c, 0xf4, 0x70, 0x49, 0x0a,
+ 0xe3, 0x4b, 0xa7, 0x05, 0xeb, 0xac, 0x00, 0xf8, 0xbd, 0x60, 0x12, 0xf4, 0xe3, 0x82, 0x74, 0x2c,
+ 0x1d, 0x98, 0xd8, 0x64, 0xf2, 0xe2, 0xa6, 0x2b, 0x2e, 0xfd, 0xec, 0x1b, 0xf8, 0x85, 0x1c, 0x38,
+ 0xde, 0xaf, 0x39, 0xfc, 0xcd, 0x72, 0xc7, 0x41, 0x1e, 0x91, 0x11, 0x9f, 0x2a, 0x3b, 0x7d, 0x51,
+ 0x9f, 0x00, 0x4e, 0xb0, 0x2d, 0xd4, 0x0b, 0xc8, 0x70, 0xaa, 0xe8, 0x52, 0xb7, 0x8d, 0x3c, 0x0f,
+ 0xb9, 0xa4, 0x65, 0x93, 0x7a, 0xff, 0x8f, 0xf0, 0x1f, 0x15, 0x59, 0x67, 0xf5, 0x01, 0xfc, 0x8e,
+ 0xd0, 0xf4, 0xe7, 0x2b, 0x32, 0xee, 0xe7, 0xc9, 0xca, 0x4e, 0x86, 0xe2, 0xf3, 0xc6, 0x3d, 0xc2,
+ 0xf7, 0x1f, 0x5a, 0x89, 0xce, 0xd3, 0x74, 0x7f, 0x84, 0x3e, 0xa7, 0xe9, 0x95, 0xa5, 0x8a, 0x86,
+ 0xc7, 0xfb, 0x13, 0xe0, 0x58, 0xf8, 0x6d, 0xf1, 0x81, 0x46, 0x5d, 0xab, 0x1a, 0xc5, 0x49, 0xdc,
+ 0x81, 0xd0, 0xe4, 0xa5, 0x52, 0x65, 0x55, 0x5b, 0x6c, 0x18, 0x35, 0xfc, 0x65, 0x71, 0xb8, 0x31,
+ 0x1f, 0x3e, 0x27, 0x07, 0x8e, 0x12, 0xde, 0x5e, 0x21, 0x5c, 0xc5, 0x4c, 0xe9, 0xf1, 0x65, 0x09,
+ 0x00, 0x9a, 0xa2, 0xec, 0x85, 0x9f, 0x96, 0xbe, 0x35, 0x8c, 0x83, 0xb0, 0xa7, 0x8e, 0x08, 0xc9,
+ 0xf8, 0x6e, 0x56, 0xe6, 0x04, 0xa8, 0x74, 0xb1, 0xc9, 0x84, 0xe2, 0x5f, 0xc6, 0x3d, 0x14, 0x44,
+ 0x83, 0x4f, 0xcc, 0xbf, 0x32, 0xf9, 0xf9, 0x99, 0xeb, 0x15, 0x9d, 0x88, 0xc3, 0x1c, 0x00, 0x24,
+ 0x85, 0x48, 0x10, 0x95, 0x83, 0xbe, 0x03, 0x49, 0x94, 0x1c, 0x94, 0xca, 0x46, 0xe5, 0x9c, 0x16,
+ 0x25, 0x07, 0x9f, 0x52, 0xc0, 0xe4, 0x32, 0xf2, 0xf0, 0x64, 0xa7, 0x0b, 0x9f, 0x2a, 0xb1, 0x30,
+ 0x83, 0xed, 0x0b, 0x72, 0x5d, 0x72, 0x30, 0x3f, 0xa7, 0x6f, 0xf0, 0xb9, 0xc3, 0xd8, 0x06, 0x7e,
+ 0xd5, 0x11, 0x03, 0xc9, 0x93, 0x41, 0xde, 0xc3, 0x9f, 0xd9, 0xfa, 0xf0, 0x23, 0x23, 0xc7, 0x11,
+ 0x5c, 0xc8, 0xa2, 0xe9, 0x99, 0x3a, 0xcd, 0xcf, 0x0d, 0x1b, 0x92, 0x46, 0x45, 0x04, 0x21, 0x3f,
+ 0x8a, 0x86, 0xe1, 0x3f, 0x28, 0xe0, 0x04, 0xd5, 0x8f, 0x52, 0xa7, 0x53, 0xf7, 0x1c, 0x17, 0xe9,
+ 0xa8, 0x89, 0xac, 0x8e, 0xd7, 0xb3, 0xf0, 0xe6, 0xd2, 0x54, 0x7f, 0x67, 0x8f, 0xbd, 0xc2, 0x37,
+ 0x28, 0xb2, 0x31, 0x0e, 0xf7, 0xe9, 0x63, 0x4f, 0x7d, 0x11, 0xca, 0xfe, 0xe1, 0xac, 0x4c, 0xd4,
+ 0xc2, 0x84, 0x85, 0x27, 0x03, 0xea, 0x03, 0x87, 0x00, 0x94, 0xbf, 0xa4, 0xa2, 0x6b, 0x65, 0xad,
+ 0xb2, 0x8e, 0x07, 0x81, 0xeb, 0xc1, 0xb5, 0xeb, 0x1b, 0x7a, 0x79, 0xa5, 0x54, 0xd7, 0x1a, 0xba,
+ 0xb6, 0x5c, 0xa9, 0x1b, 0x7a, 0xc9, 0xa8, 0xd4, 0x7c, 0x02, 0x26, 0xd4, 0xeb, 0xc0, 0xa9, 0xfa,
+ 0xc6, 0x42, 0xbd, 0xac, 0x57, 0xd6, 0x49, 0xba, 0xae, 0x55, 0xb5, 0xf3, 0xec, 0xeb, 0x24, 0x7c,
+ 0x7f, 0x11, 0x4c, 0x63, 0xcb, 0xbc, 0x4e, 0x0d, 0x76, 0xf8, 0xcd, 0x1c, 0x98, 0xd6, 0x51, 0xd7,
+ 0x69, 0xef, 0x11, 0xe3, 0x7d, 0x5c, 0x73, 0x82, 0xef, 0x28, 0xb2, 0xe7, 0xa3, 0x38, 0x62, 0xe7,
+ 0x39, 0x42, 0xa3, 0x67, 0x80, 0xa6, 0x1f, 0x2f, 0x98, 0xd9, 0x2d, 0x61, 0x82, 0x3a, 0x0f, 0x54,
+ 0xe7, 0x92, 0x8d, 0xdc, 0x7a, 0xf3, 0x92, 0xe6, 0x6d, 0x97, 0x5a, 0x2d, 0x17, 0x75, 0xbb, 0x6c,
+ 0x59, 0xa1, 0xcf, 0x17, 0xf5, 0x66, 0x70, 0x94, 0xa4, 0x72, 0x99, 0xe9, 0x61, 0xce, 0xde, 0xe4,
+ 0x20, 0x67, 0xc9, 0xbe, 0xe2, 0xe7, 0xcc, 0x73, 0x39, 0xc3, 0x64, 0xde, 0x1d, 0xb1, 0x20, 0x7a,
+ 0xc1, 0x9e, 0x01, 0xd3, 0xb6, 0xb9, 0x83, 0xb4, 0xcb, 0x1d, 0xcb, 0x45, 0xdd, 0x53, 0x13, 0x64,
+ 0x37, 0x8d, 0x4f, 0x82, 0x7f, 0x2c, 0x75, 0x9e, 0x4b, 0x8e, 0x63, 0xc9, 0x64, 0x7f, 0x79, 0x08,
+ 0xd1, 0xef, 0xd3, 0xcf, 0x28, 0xf0, 0xfd, 0x0a, 0x98, 0x61, 0x44, 0x95, 0xec, 0x2b, 0x95, 0x16,
+ 0xbc, 0x5e, 0x30, 0x4b, 0x4d, 0x9c, 0xe6, 0x9b, 0xa5, 0xe4, 0x05, 0xfe, 0xa2, 0x22, 0xeb, 0x4e,
+ 0xd4, 0xa7, 0xe1, 0xa4, 0x8e, 0x68, 0x17, 0x97, 0x4d, 0x67, 0x97, 0xb9, 0xd4, 0x4c, 0xea, 0xf4,
+ 0x25, 0xcd, 0xd5, 0x36, 0xf8, 0x27, 0x52, 0xce, 0x4a, 0x92, 0xcd, 0x38, 0x24, 0x00, 0x3f, 0xa6,
+ 0x80, 0x39, 0x46, 0x55, 0x9d, 0xf9, 0xd1, 0x4a, 0x39, 0x94, 0xff, 0x92, 0xb4, 0x21, 0xd8, 0xa7,
+ 0xfd, 0xac, 0xa6, 0x87, 0x0d, 0x90, 0x1f, 0x94, 0x0a, 0x3e, 0x22, 0xdd, 0x90, 0x43, 0x82, 0xf2,
+ 0xed, 0x39, 0x30, 0xbd, 0xd1, 0x45, 0x2e, 0xf3, 0x8b, 0x83, 0xaf, 0xc9, 0x01, 0x65, 0x19, 0x09,
+ 0x3b, 0x9c, 0x2f, 0xcc, 0xc9, 0xae, 0xd6, 0xf1, 0x8d, 0xe5, 0x0a, 0xc5, 0x36, 0x52, 0x04, 0x6c,
+ 0x37, 0x81, 0x39, 0xca, 0xd2, 0x92, 0xe7, 0x61, 0x23, 0xd1, 0x3f, 0x16, 0xd0, 0x93, 0x3a, 0x8a,
+ 0x3d, 0x1c, 0x52, 0x17, 0xce, 0x52, 0xc6, 0x34, 0xad, 0xa2, 0x4d, 0x1a, 0x9a, 0x2a, 0xa7, 0xf7,
+ 0xa4, 0x92, 0xab, 0x9c, 0x3b, 0x88, 0xfa, 0x87, 0x72, 0x99, 0xf3, 0x24, 0x73, 0xbf, 0x4f, 0xf0,
+ 0x9b, 0x52, 0x31, 0xfb, 0xe4, 0xb9, 0x93, 0x4c, 0x16, 0x3a, 0xa3, 0x31, 0x49, 0x8e, 0x83, 0x22,
+ 0xce, 0x41, 0x36, 0x46, 0x74, 0xad, 0x5e, 0x5b, 0x3d, 0xa7, 0xf5, 0x5f, 0x5f, 0xc8, 0xc3, 0xe7,
+ 0x29, 0x60, 0x6a, 0xc1, 0x75, 0xcc, 0x56, 0xd3, 0xec, 0x7a, 0xf0, 0x7b, 0x59, 0x30, 0xb3, 0x6e,
+ 0x5e, 0x69, 0x3b, 0x66, 0x8b, 0x78, 0x22, 0xf6, 0xf4, 0x05, 0x1d, 0xfa, 0xc9, 0xef, 0x0b, 0xd8,
+ 0xab, 0xe8, 0x78, 0x1f, 0xb8, 0xc6, 0x67, 0x64, 0x2e, 0x17, 0x0b, 0xf6, 0xdf, 0xb2, 0xfd, 0x82,
+ 0x81, 0xf9, 0x74, 0xcd, 0xf3, 0x34, 0x45, 0x58, 0x94, 0xef, 0x97, 0x0b, 0xef, 0x25, 0x53, 0xe4,
+ 0xe1, 0x6c, 0x97, 0x3f, 0x34, 0x09, 0x0a, 0x8b, 0x88, 0x58, 0x71, 0xbf, 0x97, 0x05, 0x13, 0xec,
+ 0x7a, 0x7d, 0x78, 0xa7, 0xe0, 0xe4, 0xd8, 0x22, 0x19, 0x82, 0xee, 0x38, 0x78, 0xc7, 0x93, 0x75,
+ 0xee, 0x3c, 0x13, 0x79, 0x4e, 0xe0, 0xfe, 0x45, 0xeb, 0x8d, 0xb8, 0xd2, 0x3f, 0x99, 0xfb, 0x57,
+ 0x6c, 0x51, 0xe9, 0x3b, 0x41, 0xbd, 0x33, 0xcb, 0x7c, 0x9e, 0xb8, 0x5e, 0xef, 0x37, 0x78, 0xf9,
+ 0x8c, 0x75, 0x03, 0x63, 0xc4, 0xc7, 0x78, 0x2d, 0xdd, 0x01, 0x26, 0x28, 0xcf, 0xfd, 0xf9, 0x68,
+ 0xaf, 0x03, 0x01, 0x2d, 0x82, 0x9c, 0x6d, 0xf2, 0x73, 0x4a, 0xfa, 0x8e, 0x45, 0x57, 0x3e, 0x96,
+ 0x33, 0x7e, 0x33, 0x55, 0xe4, 0x5d, 0x72, 0xdc, 0x8b, 0x75, 0xcf, 0xf4, 0x10, 0xfc, 0x97, 0x2c,
+ 0x50, 0xea, 0xc8, 0xe3, 0x4f, 0x17, 0x57, 0xc1, 0x31, 0xda, 0x20, 0x96, 0x91, 0xf4, 0xdf, 0xb4,
+ 0x21, 0x67, 0xfa, 0x32, 0x81, 0xcb, 0xa7, 0xef, 0xff, 0x15, 0xfe, 0x6a, 0xdf, 0xa0, 0x0a, 0xd9,
+ 0x3e, 0x93, 0x06, 0xc6, 0x19, 0x9e, 0x40, 0x2c, 0x60, 0x11, 0x72, 0xfa, 0x47, 0x52, 0x66, 0xb5,
+ 0x5c, 0x99, 0x87, 0xd3, 0x15, 0xbc, 0xf2, 0x1a, 0x90, 0x2b, 0x6f, 0x9b, 0x1e, 0x7c, 0x87, 0x02,
+ 0x40, 0xa9, 0xd5, 0x5a, 0xa3, 0x0e, 0xb7, 0xbc, 0xa7, 0xd8, 0x59, 0x30, 0xd3, 0xdc, 0x36, 0xc3,
+ 0xd8, 0xe1, 0xb4, 0x3f, 0x10, 0xd2, 0xd4, 0x27, 0x84, 0x9e, 0xbb, 0x94, 0xab, 0xb0, 0x07, 0x26,
+ 0x5c, 0x07, 0x2b, 0x3b, 0xf0, 0xea, 0x15, 0x43, 0x4d, 0xc5, 0x9e, 0x97, 0xc5, 0xbf, 0xcf, 0x87,
+ 0xe4, 0x45, 0xcf, 0xe1, 0x58, 0xd1, 0xc1, 0x49, 0xc1, 0x30, 0x21, 0xe1, 0x49, 0x2a, 0xb9, 0x03,
+ 0xb3, 0xf1, 0x74, 0x8d, 0x25, 0x34, 0x9c, 0xaa, 0xb5, 0x2c, 0x9f, 0xb5, 0x2c, 0x20, 0x05, 0x7c,
+ 0x41, 0x26, 0x19, 0x7c, 0xf1, 0x8c, 0xbb, 0x0f, 0xcc, 0xa2, 0x96, 0xe5, 0x21, 0xbf, 0x95, 0x8c,
+ 0x81, 0x71, 0x10, 0x8b, 0x3f, 0xc0, 0x67, 0x4b, 0x07, 0x35, 0x21, 0x0c, 0xdd, 0xdf, 0xa2, 0x08,
+ 0xfd, 0x93, 0x0b, 0x53, 0x22, 0x57, 0x66, 0xfa, 0x60, 0x3d, 0x57, 0x01, 0x27, 0x0c, 0x67, 0x6b,
+ 0xab, 0x8d, 0x7c, 0x36, 0x21, 0xea, 0x36, 0x09, 0xcd, 0x51, 0xc2, 0x45, 0xf6, 0x68, 0x9c, 0x07,
+ 0x2d, 0x36, 0x7b, 0xa1, 0x2f, 0xf0, 0xf9, 0xd2, 0xe1, 0x17, 0x09, 0xbb, 0xfa, 0xd2, 0x19, 0x81,
+ 0x82, 0x5c, 0x40, 0x45, 0xe9, 0x62, 0xd3, 0x07, 0xe2, 0xf3, 0x59, 0x30, 0x4b, 0x6f, 0xf1, 0xf2,
+ 0x05, 0xf4, 0xfe, 0x11, 0x02, 0x00, 0xbf, 0x97, 0x91, 0x75, 0x80, 0x25, 0x3c, 0x11, 0x28, 0x89,
+ 0x60, 0xb1, 0xdc, 0xa1, 0xe5, 0x81, 0xc5, 0xa5, 0xcf, 0xda, 0xdf, 0x52, 0xc0, 0xf4, 0x32, 0xf2,
+ 0x35, 0xad, 0xcb, 0x5f, 0xb3, 0x21, 0xc3, 0xd8, 0x1b, 0xc1, 0xec, 0x05, 0xb4, 0xe9, 0xb8, 0x88,
+ 0x5c, 0x1b, 0x12, 0x30, 0x57, 0x4c, 0x8c, 0x88, 0xec, 0x22, 0x84, 0x10, 0x59, 0x10, 0xd9, 0x7e,
+ 0xeb, 0x7e, 0x3e, 0x71, 0x54, 0x46, 0x0c, 0x27, 0x4f, 0x02, 0x93, 0x0c, 0x54, 0xdf, 0x02, 0x8b,
+ 0xeb, 0xf2, 0x82, 0xbc, 0xf0, 0x75, 0x01, 0x58, 0x9a, 0x00, 0xd6, 0xe3, 0x93, 0x10, 0x31, 0x96,
+ 0x6b, 0x6c, 0x8b, 0x5c, 0xfd, 0x0b, 0x57, 0x2a, 0xad, 0x2e, 0x5c, 0x4b, 0x86, 0xd7, 0x69, 0x00,
+ 0x02, 0xb9, 0xf7, 0x4f, 0x84, 0x72, 0x29, 0x62, 0xd0, 0xd7, 0xd8, 0x03, 0x4f, 0xbd, 0xec, 0x20,
+ 0xe4, 0x8c, 0x18, 0x18, 0xb9, 0x83, 0x52, 0x32, 0x94, 0x8c, 0x21, 0xc0, 0x8b, 0x02, 0x4e, 0xd4,
+ 0xfd, 0x7d, 0xf3, 0x55, 0xb3, 0x1b, 0xaa, 0x54, 0x39, 0x19, 0x44, 0xc2, 0x21, 0x8b, 0x40, 0x59,
+ 0xbe, 0x95, 0x6c, 0x38, 0xe8, 0x4b, 0xc9, 0x68, 0xd1, 0x51, 0x6f, 0x05, 0xc7, 0xec, 0xdd, 0x9d,
+ 0x80, 0xeb, 0x44, 0xe3, 0x99, 0x86, 0xef, 0xff, 0x90, 0x64, 0xd0, 0x91, 0x21, 0x7e, 0x2c, 0xd3,
+ 0xc5, 0xe9, 0x0d, 0x3b, 0x70, 0x85, 0x80, 0x8f, 0x4d, 0x04, 0x23, 0xfc, 0x76, 0x26, 0x51, 0xef,
+ 0xc6, 0xd5, 0x14, 0x31, 0xa4, 0x24, 0xe8, 0xa5, 0xa2, 0x0b, 0x4b, 0x9d, 0x6d, 0x67, 0x27, 0x40,
+ 0x5e, 0xdb, 0xe9, 0x78, 0x57, 0xce, 0x3e, 0x0a, 0xcc, 0xd6, 0x3d, 0x17, 0x99, 0x3b, 0xdc, 0xa2,
+ 0xbf, 0xe7, 0x5c, 0x44, 0xb6, 0xbf, 0xe8, 0x4f, 0x5e, 0xee, 0xba, 0x13, 0x4c, 0xd8, 0x4e, 0xc3,
+ 0xdc, 0xf5, 0xb6, 0xd5, 0xeb, 0xe7, 0xb7, 0x1c, 0x67, 0xab, 0x8d, 0xe6, 0x3b, 0xae, 0xe3, 0x39,
+ 0x17, 0x76, 0x37, 0xe7, 0x19, 0xf8, 0x35, 0x76, 0xfc, 0xff, 0x2b, 0x77, 0x93, 0x65, 0xdf, 0x82,
+ 0xed, 0x94, 0x76, 0xbd, 0xed, 0x85, 0xeb, 0x3e, 0xf6, 0xf7, 0xa7, 0x33, 0x9f, 0xfa, 0xfb, 0xd3,
+ 0x99, 0x2f, 0xff, 0xfd, 0xe9, 0xcc, 0x2f, 0x7d, 0xf5, 0xf4, 0x91, 0x4f, 0x7d, 0xf5, 0xf4, 0x91,
+ 0xcf, 0x7f, 0xf5, 0xf4, 0x91, 0x1f, 0xcf, 0x76, 0x2e, 0x5c, 0x28, 0x90, 0x52, 0xee, 0xf8, 0xff,
+ 0x03, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x4c, 0xfa, 0x11, 0x5f, 0xed, 0x01, 0x00,
}
func (m *Rpc) Marshal() (dAtA []byte, err error) {
@@ -75634,6 +77734,136 @@ func (m *RpcObjectCreateFromUrlResponseError) MarshalToSizedBuffer(dAtA []byte)
return len(dAtA) - i, nil
}
+func (m *RpcObjectChatAdd) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectChatAdd) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectChatAdd) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectChatAddRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectChatAddRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectChatAddRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.ObjectId) > 0 {
+ i -= len(m.ObjectId)
+ copy(dAtA[i:], m.ObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectChatAddResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectChatAddResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectChatAddResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.ChatId) > 0 {
+ i -= len(m.ChatId)
+ copy(dAtA[i:], m.ChatId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectChatAddResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectChatAddResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectChatAddResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *RpcObjectBookmarkFetch) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -84271,21 +86501,21 @@ func (m *RpcRelationListWithValueResponse) MarshalToSizedBuffer(dAtA []byte) (in
var l int
_ = l
if len(m.Counters) > 0 {
- dAtA181 := make([]byte, len(m.Counters)*10)
- var j180 int
+ dAtA182 := make([]byte, len(m.Counters)*10)
+ var j181 int
for _, num1 := range m.Counters {
num := uint64(num1)
for num >= 1<<7 {
- dAtA181[j180] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA182[j181] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j180++
+ j181++
}
- dAtA181[j180] = uint8(num)
- j180++
+ dAtA182[j181] = uint8(num)
+ j181++
}
- i -= j180
- copy(dAtA[i:], dAtA181[:j180])
- i = encodeVarintCommands(dAtA, i, uint64(j180))
+ i -= j181
+ copy(dAtA[i:], dAtA182[:j181])
+ i = encodeVarintCommands(dAtA, i, uint64(j181))
i--
dAtA[i] = 0x1a
}
@@ -105297,6 +107527,13 @@ func (m *RpcDebugAccountSelectTraceRequest) MarshalToSizedBuffer(dAtA []byte) (i
_ = i
var l int
_ = l
+ if len(m.Dir) > 0 {
+ i -= len(m.Dir)
+ copy(dAtA[i:], m.Dir)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Dir)))
+ i--
+ dAtA[i] = 0xa
+ }
return len(dAtA) - i, nil
}
@@ -109035,6 +111272,1157 @@ func (m *RpcDeviceNetworkStateSetResponseError) MarshalToSizedBuffer(dAtA []byte
return len(dAtA) - i, nil
}
+func (m *RpcChat) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChat) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatAddMessage) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatAddMessage) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatAddMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatAddMessageRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatAddMessageRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatAddMessageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Message != nil {
+ {
+ size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatAddMessageResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatAddMessageResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatAddMessageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Event != nil {
+ {
+ size, err := m.Event.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.MessageId) > 0 {
+ i -= len(m.MessageId)
+ copy(dAtA[i:], m.MessageId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.MessageId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatAddMessageResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatAddMessageResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatAddMessageResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatEditMessageContent) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatEditMessageContent) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatEditMessageContent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatEditMessageContentRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatEditMessageContentRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatEditMessageContentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.EditedMessage != nil {
+ {
+ size, err := m.EditedMessage.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.MessageId) > 0 {
+ i -= len(m.MessageId)
+ copy(dAtA[i:], m.MessageId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.MessageId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatEditMessageContentResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatEditMessageContentResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatEditMessageContentResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatEditMessageContentResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatEditMessageContentResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatEditMessageContentResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatToggleMessageReaction) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatToggleMessageReaction) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatToggleMessageReaction) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatToggleMessageReactionRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatToggleMessageReactionRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatToggleMessageReactionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Emoji) > 0 {
+ i -= len(m.Emoji)
+ copy(dAtA[i:], m.Emoji)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Emoji)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.MessageId) > 0 {
+ i -= len(m.MessageId)
+ copy(dAtA[i:], m.MessageId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.MessageId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatToggleMessageReactionResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatToggleMessageReactionResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatToggleMessageReactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatDeleteMessage) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatDeleteMessage) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatDeleteMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatDeleteMessageRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatDeleteMessageRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatDeleteMessageRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.MessageId) > 0 {
+ i -= len(m.MessageId)
+ copy(dAtA[i:], m.MessageId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.MessageId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatDeleteMessageResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatDeleteMessageResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatDeleteMessageResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatDeleteMessageResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatDeleteMessageResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatDeleteMessageResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessages) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessages) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessages) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Limit != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Limit))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.BeforeOrderId) > 0 {
+ i -= len(m.BeforeOrderId)
+ copy(dAtA[i:], m.BeforeOrderId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.BeforeOrderId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Messages) > 0 {
+ for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Messages[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesByIds) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesByIds) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesByIds) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.MessageIds) > 0 {
+ for iNdEx := len(m.MessageIds) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.MessageIds[iNdEx])
+ copy(dAtA[i:], m.MessageIds[iNdEx])
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.MessageIds[iNdEx])))
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Messages) > 0 {
+ for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Messages[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatSubscribeLastMessages) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatSubscribeLastMessages) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatSubscribeLastMessages) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Limit != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Limit))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.NumMessagesBefore != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.NumMessagesBefore))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Messages) > 0 {
+ for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Messages[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatUnsubscribe) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatUnsubscribe) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatUnsubscribe) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatUnsubscribeRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatUnsubscribeRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatUnsubscribeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.ChatObjectId) > 0 {
+ i -= len(m.ChatObjectId)
+ copy(dAtA[i:], m.ChatObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ChatObjectId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatUnsubscribeResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatUnsubscribeResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatUnsubscribeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcChatUnsubscribeResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcChatUnsubscribeResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcChatUnsubscribeResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *Empty) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -112508,6 +115896,61 @@ func (m *RpcObjectCreateFromUrlResponseError) Size() (n int) {
return n
}
+func (m *RpcObjectChatAdd) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcObjectChatAddRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcObjectChatAddResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.ChatId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcObjectChatAddResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
func (m *RpcObjectBookmarkFetch) Size() (n int) {
if m == nil {
return 0
@@ -125168,6 +128611,10 @@ func (m *RpcDebugAccountSelectTraceRequest) Size() (n int) {
}
var l int
_ = l
+ l = len(m.Dir)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
return n
}
@@ -126730,6 +130177,492 @@ func (m *RpcDeviceNetworkStateSetResponseError) Size() (n int) {
return n
}
+func (m *RpcChat) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatAddMessage) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatAddMessageRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Message != nil {
+ l = m.Message.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatAddMessageResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.MessageId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Event != nil {
+ l = m.Event.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatAddMessageResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatEditMessageContent) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatEditMessageContentRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.MessageId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.EditedMessage != nil {
+ l = m.EditedMessage.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatEditMessageContentResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatEditMessageContentResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatToggleMessageReaction) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatToggleMessageReactionRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.MessageId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.Emoji)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatToggleMessageReactionResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatToggleMessageReactionResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatDeleteMessage) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatDeleteMessageRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.MessageId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatDeleteMessageResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatDeleteMessageResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatGetMessages) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatGetMessagesRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.BeforeOrderId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Limit != 0 {
+ n += 1 + sovCommands(uint64(m.Limit))
+ }
+ return n
+}
+
+func (m *RpcChatGetMessagesResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if len(m.Messages) > 0 {
+ for _, e := range m.Messages {
+ l = e.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *RpcChatGetMessagesResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatGetMessagesByIds) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatGetMessagesByIdsRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if len(m.MessageIds) > 0 {
+ for _, s := range m.MessageIds {
+ l = len(s)
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *RpcChatGetMessagesByIdsResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if len(m.Messages) > 0 {
+ for _, e := range m.Messages {
+ l = e.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *RpcChatGetMessagesByIdsResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatSubscribeLastMessages) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatSubscribeLastMessagesRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Limit != 0 {
+ n += 1 + sovCommands(uint64(m.Limit))
+ }
+ return n
+}
+
+func (m *RpcChatSubscribeLastMessagesResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if len(m.Messages) > 0 {
+ for _, e := range m.Messages {
+ l = e.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ }
+ if m.NumMessagesBefore != 0 {
+ n += 1 + sovCommands(uint64(m.NumMessagesBefore))
+ }
+ return n
+}
+
+func (m *RpcChatSubscribeLastMessagesResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatUnsubscribe) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcChatUnsubscribeRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ChatObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatUnsubscribeResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcChatUnsubscribeResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
func (m *Empty) Size() (n int) {
if m == nil {
return 0
@@ -148500,6 +152433,357 @@ func (m *RpcObjectCreateFromUrlResponseError) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *RpcObjectChatAdd) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChatAdd: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChatAdd: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectChatAddRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectChatAddResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcObjectChatAddResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectChatAddResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcObjectChatAddResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *RpcObjectBookmarkFetch) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -229514,6 +233798,38 @@ func (m *RpcDebugAccountSelectTraceRequest) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dir", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dir = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipCommands(dAtA[iNdEx:])
@@ -239293,6 +243609,3099 @@ func (m *RpcDeviceNetworkStateSetResponseError) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *RpcChat) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Chat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Chat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatAddMessage) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AddMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AddMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatAddMessageRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Message == nil {
+ m.Message = &model.ChatMessage{}
+ }
+ if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatAddMessageResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatAddMessageResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessageId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MessageId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Event == nil {
+ m.Event = &ResponseEvent{}
+ }
+ if err := m.Event.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatAddMessageResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatAddMessageResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatEditMessageContent) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EditMessageContent: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EditMessageContent: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatEditMessageContentRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessageId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MessageId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EditedMessage", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.EditedMessage == nil {
+ m.EditedMessage = &model.ChatMessage{}
+ }
+ if err := m.EditedMessage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatEditMessageContentResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatEditMessageContentResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatEditMessageContentResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatEditMessageContentResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatToggleMessageReaction) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ToggleMessageReaction: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ToggleMessageReaction: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatToggleMessageReactionRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessageId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MessageId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Emoji", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Emoji = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatToggleMessageReactionResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatToggleMessageReactionResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatToggleMessageReactionResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatToggleMessageReactionResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatDeleteMessage) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeleteMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeleteMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatDeleteMessageRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessageId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MessageId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatDeleteMessageResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatDeleteMessageResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatDeleteMessageResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatDeleteMessageResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessages) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetMessages: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetMessages: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BeforeOrderId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.BeforeOrderId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
+ }
+ m.Limit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Limit |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatGetMessagesResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Messages = append(m.Messages, &model.ChatMessage{})
+ if err := m.Messages[len(m.Messages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatGetMessagesResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesByIds) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetMessagesByIds: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetMessagesByIds: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesByIdsRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MessageIds", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MessageIds = append(m.MessageIds, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesByIdsResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatGetMessagesByIdsResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Messages = append(m.Messages, &model.ChatMessage{})
+ if err := m.Messages[len(m.Messages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatGetMessagesByIdsResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatGetMessagesByIdsResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatSubscribeLastMessages) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SubscribeLastMessages: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SubscribeLastMessages: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatSubscribeLastMessagesRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
+ }
+ m.Limit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Limit |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatSubscribeLastMessagesResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatSubscribeLastMessagesResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Messages = append(m.Messages, &model.ChatMessage{})
+ if err := m.Messages[len(m.Messages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field NumMessagesBefore", wireType)
+ }
+ m.NumMessagesBefore = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.NumMessagesBefore |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatSubscribeLastMessagesResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatSubscribeLastMessagesResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatUnsubscribe) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Unsubscribe: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Unsubscribe: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatUnsubscribeRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChatObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatUnsubscribeResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcChatUnsubscribeResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcChatUnsubscribeResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcChatUnsubscribeResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *Empty) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pb/events.pb.go b/pb/events.pb.go
index b4a1d3c53..ffb6f7587 100644
--- a/pb/events.pb.go
+++ b/pb/events.pb.go
@@ -55,7 +55,7 @@ func (x EventBlockDataviewSliceOperation) String() string {
}
func (EventBlockDataviewSliceOperation) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 0}
}
type EventStatusThreadSyncStatus int32
@@ -67,6 +67,7 @@ const (
EventStatusThread_Synced EventStatusThreadSyncStatus = 3
EventStatusThread_Failed EventStatusThreadSyncStatus = 4
EventStatusThread_IncompatibleVersion EventStatusThreadSyncStatus = 5
+ EventStatusThread_NetworkNeedsUpdate EventStatusThreadSyncStatus = 6
)
var EventStatusThreadSyncStatus_name = map[int32]string{
@@ -76,6 +77,7 @@ var EventStatusThreadSyncStatus_name = map[int32]string{
3: "Synced",
4: "Failed",
5: "IncompatibleVersion",
+ 6: "NetworkNeedsUpdate",
}
var EventStatusThreadSyncStatus_value = map[string]int32{
@@ -85,6 +87,7 @@ var EventStatusThreadSyncStatus_value = map[string]int32{
"Synced": 3,
"Failed": 4,
"IncompatibleVersion": 5,
+ "NetworkNeedsUpdate": 6,
}
func (x EventStatusThreadSyncStatus) String() string {
@@ -92,7 +95,7 @@ func (x EventStatusThreadSyncStatus) String() string {
}
func (EventStatusThreadSyncStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 0}
}
type EventSpaceStatus int32
@@ -126,7 +129,7 @@ func (x EventSpaceStatus) String() string {
}
func (EventSpaceStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 0}
}
type EventSpaceNetwork int32
@@ -154,7 +157,7 @@ func (x EventSpaceNetwork) String() string {
}
func (EventSpaceNetwork) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 1}
}
type EventSpaceSyncError int32
@@ -185,7 +188,7 @@ func (x EventSpaceSyncError) String() string {
}
func (EventSpaceSyncError) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 2}
}
type EventP2PStatusStatus int32
@@ -194,18 +197,21 @@ const (
EventP2PStatus_NotConnected EventP2PStatusStatus = 0
EventP2PStatus_NotPossible EventP2PStatusStatus = 1
EventP2PStatus_Connected EventP2PStatusStatus = 2
+ EventP2PStatus_Restricted EventP2PStatusStatus = 3
)
var EventP2PStatusStatus_name = map[int32]string{
0: "NotConnected",
1: "NotPossible",
2: "Connected",
+ 3: "Restricted",
}
var EventP2PStatusStatus_value = map[string]int32{
"NotConnected": 0,
"NotPossible": 1,
"Connected": 2,
+ "Restricted": 3,
}
func (x EventP2PStatusStatus) String() string {
@@ -213,7 +219,7 @@ func (x EventP2PStatusStatus) String() string {
}
func (EventP2PStatusStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 13, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 14, 0}
}
type ModelProcessType int32
@@ -428,6 +434,10 @@ type EventMessage struct {
// *EventMessageValueOfSpaceSyncStatusUpdate
// *EventMessageValueOfP2PStatusUpdate
// *EventMessageValueOfImportFinish
+ // *EventMessageValueOfChatAdd
+ // *EventMessageValueOfChatUpdate
+ // *EventMessageValueOfChatUpdateReactions
+ // *EventMessageValueOfChatDelete
Value IsEventMessageValue `protobuf_oneof:"value"`
}
@@ -680,6 +690,18 @@ type EventMessageValueOfP2PStatusUpdate struct {
type EventMessageValueOfImportFinish struct {
ImportFinish *EventImportFinish `protobuf:"bytes,121,opt,name=importFinish,proto3,oneof" json:"importFinish,omitempty"`
}
+type EventMessageValueOfChatAdd struct {
+ ChatAdd *EventChatAdd `protobuf:"bytes,128,opt,name=chatAdd,proto3,oneof" json:"chatAdd,omitempty"`
+}
+type EventMessageValueOfChatUpdate struct {
+ ChatUpdate *EventChatUpdate `protobuf:"bytes,129,opt,name=chatUpdate,proto3,oneof" json:"chatUpdate,omitempty"`
+}
+type EventMessageValueOfChatUpdateReactions struct {
+ ChatUpdateReactions *EventChatUpdateReactions `protobuf:"bytes,130,opt,name=chatUpdateReactions,proto3,oneof" json:"chatUpdateReactions,omitempty"`
+}
+type EventMessageValueOfChatDelete struct {
+ ChatDelete *EventChatDelete `protobuf:"bytes,131,opt,name=chatDelete,proto3,oneof" json:"chatDelete,omitempty"`
+}
func (*EventMessageValueOfAccountShow) IsEventMessageValue() {}
func (*EventMessageValueOfAccountDetails) IsEventMessageValue() {}
@@ -751,6 +773,10 @@ func (*EventMessageValueOfMembershipUpdate) IsEventMessageValue()
func (*EventMessageValueOfSpaceSyncStatusUpdate) IsEventMessageValue() {}
func (*EventMessageValueOfP2PStatusUpdate) IsEventMessageValue() {}
func (*EventMessageValueOfImportFinish) IsEventMessageValue() {}
+func (*EventMessageValueOfChatAdd) IsEventMessageValue() {}
+func (*EventMessageValueOfChatUpdate) IsEventMessageValue() {}
+func (*EventMessageValueOfChatUpdateReactions) IsEventMessageValue() {}
+func (*EventMessageValueOfChatDelete) IsEventMessageValue() {}
func (m *EventMessage) GetValue() IsEventMessageValue {
if m != nil {
@@ -1249,6 +1275,34 @@ func (m *EventMessage) GetImportFinish() *EventImportFinish {
return nil
}
+func (m *EventMessage) GetChatAdd() *EventChatAdd {
+ if x, ok := m.GetValue().(*EventMessageValueOfChatAdd); ok {
+ return x.ChatAdd
+ }
+ return nil
+}
+
+func (m *EventMessage) GetChatUpdate() *EventChatUpdate {
+ if x, ok := m.GetValue().(*EventMessageValueOfChatUpdate); ok {
+ return x.ChatUpdate
+ }
+ return nil
+}
+
+func (m *EventMessage) GetChatUpdateReactions() *EventChatUpdateReactions {
+ if x, ok := m.GetValue().(*EventMessageValueOfChatUpdateReactions); ok {
+ return x.ChatUpdateReactions
+ }
+ return nil
+}
+
+func (m *EventMessage) GetChatDelete() *EventChatDelete {
+ if x, ok := m.GetValue().(*EventMessageValueOfChatDelete); ok {
+ return x.ChatDelete
+ }
+ return nil
+}
+
// XXX_OneofWrappers is for the internal use of the proto package.
func (*EventMessage) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -1322,9 +1376,257 @@ func (*EventMessage) XXX_OneofWrappers() []interface{} {
(*EventMessageValueOfSpaceSyncStatusUpdate)(nil),
(*EventMessageValueOfP2PStatusUpdate)(nil),
(*EventMessageValueOfImportFinish)(nil),
+ (*EventMessageValueOfChatAdd)(nil),
+ (*EventMessageValueOfChatUpdate)(nil),
+ (*EventMessageValueOfChatUpdateReactions)(nil),
+ (*EventMessageValueOfChatDelete)(nil),
}
}
+type EventChat struct {
+}
+
+func (m *EventChat) Reset() { *m = EventChat{} }
+func (m *EventChat) String() string { return proto.CompactTextString(m) }
+func (*EventChat) ProtoMessage() {}
+func (*EventChat) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 1}
+}
+func (m *EventChat) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventChat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventChat.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventChat) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventChat.Merge(m, src)
+}
+func (m *EventChat) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventChat) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventChat.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventChat proto.InternalMessageInfo
+
+type EventChatAdd struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ OrderId string `protobuf:"bytes,2,opt,name=orderId,proto3" json:"orderId,omitempty"`
+ Message *model.ChatMessage `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
+}
+
+func (m *EventChatAdd) Reset() { *m = EventChatAdd{} }
+func (m *EventChatAdd) String() string { return proto.CompactTextString(m) }
+func (*EventChatAdd) ProtoMessage() {}
+func (*EventChatAdd) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 1, 0}
+}
+func (m *EventChatAdd) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventChatAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventChatAdd.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventChatAdd) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventChatAdd.Merge(m, src)
+}
+func (m *EventChatAdd) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventChatAdd) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventChatAdd.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventChatAdd proto.InternalMessageInfo
+
+func (m *EventChatAdd) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+func (m *EventChatAdd) GetOrderId() string {
+ if m != nil {
+ return m.OrderId
+ }
+ return ""
+}
+
+func (m *EventChatAdd) GetMessage() *model.ChatMessage {
+ if m != nil {
+ return m.Message
+ }
+ return nil
+}
+
+type EventChatDelete struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (m *EventChatDelete) Reset() { *m = EventChatDelete{} }
+func (m *EventChatDelete) String() string { return proto.CompactTextString(m) }
+func (*EventChatDelete) ProtoMessage() {}
+func (*EventChatDelete) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 1, 1}
+}
+func (m *EventChatDelete) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventChatDelete) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventChatDelete.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventChatDelete) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventChatDelete.Merge(m, src)
+}
+func (m *EventChatDelete) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventChatDelete) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventChatDelete.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventChatDelete proto.InternalMessageInfo
+
+func (m *EventChatDelete) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+type EventChatUpdate struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Message *model.ChatMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+}
+
+func (m *EventChatUpdate) Reset() { *m = EventChatUpdate{} }
+func (m *EventChatUpdate) String() string { return proto.CompactTextString(m) }
+func (*EventChatUpdate) ProtoMessage() {}
+func (*EventChatUpdate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 1, 2}
+}
+func (m *EventChatUpdate) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventChatUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventChatUpdate.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventChatUpdate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventChatUpdate.Merge(m, src)
+}
+func (m *EventChatUpdate) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventChatUpdate) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventChatUpdate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventChatUpdate proto.InternalMessageInfo
+
+func (m *EventChatUpdate) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+func (m *EventChatUpdate) GetMessage() *model.ChatMessage {
+ if m != nil {
+ return m.Message
+ }
+ return nil
+}
+
+type EventChatUpdateReactions struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Reactions *model.ChatMessageReactions `protobuf:"bytes,2,opt,name=reactions,proto3" json:"reactions,omitempty"`
+}
+
+func (m *EventChatUpdateReactions) Reset() { *m = EventChatUpdateReactions{} }
+func (m *EventChatUpdateReactions) String() string { return proto.CompactTextString(m) }
+func (*EventChatUpdateReactions) ProtoMessage() {}
+func (*EventChatUpdateReactions) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 1, 3}
+}
+func (m *EventChatUpdateReactions) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventChatUpdateReactions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventChatUpdateReactions.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventChatUpdateReactions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventChatUpdateReactions.Merge(m, src)
+}
+func (m *EventChatUpdateReactions) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventChatUpdateReactions) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventChatUpdateReactions.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventChatUpdateReactions proto.InternalMessageInfo
+
+func (m *EventChatUpdateReactions) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+func (m *EventChatUpdateReactions) GetReactions() *model.ChatMessageReactions {
+ if m != nil {
+ return m.Reactions
+ }
+ return nil
+}
+
type EventAccount struct {
}
@@ -1332,7 +1634,7 @@ func (m *EventAccount) Reset() { *m = EventAccount{} }
func (m *EventAccount) String() string { return proto.CompactTextString(m) }
func (*EventAccount) ProtoMessage() {}
func (*EventAccount) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2}
}
func (m *EventAccount) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1372,7 +1674,7 @@ func (m *EventAccountShow) Reset() { *m = EventAccountShow{} }
func (m *EventAccountShow) String() string { return proto.CompactTextString(m) }
func (*EventAccountShow) ProtoMessage() {}
func (*EventAccountShow) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0}
}
func (m *EventAccountShow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1424,7 +1726,7 @@ func (m *EventAccountDetails) Reset() { *m = EventAccountDetails{} }
func (m *EventAccountDetails) String() string { return proto.CompactTextString(m) }
func (*EventAccountDetails) ProtoMessage() {}
func (*EventAccountDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1}
}
func (m *EventAccountDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1474,7 +1776,7 @@ func (m *EventAccountConfig) Reset() { *m = EventAccountConfig{} }
func (m *EventAccountConfig) String() string { return proto.CompactTextString(m) }
func (*EventAccountConfig) ProtoMessage() {}
func (*EventAccountConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 2}
}
func (m *EventAccountConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1512,7 +1814,7 @@ func (m *EventAccountConfigUpdate) Reset() { *m = EventAccountConfigUpda
func (m *EventAccountConfigUpdate) String() string { return proto.CompactTextString(m) }
func (*EventAccountConfigUpdate) ProtoMessage() {}
func (*EventAccountConfigUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 2, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 2, 0}
}
func (m *EventAccountConfigUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1564,7 +1866,7 @@ func (m *EventAccountUpdate) Reset() { *m = EventAccountUpdate{} }
func (m *EventAccountUpdate) String() string { return proto.CompactTextString(m) }
func (*EventAccountUpdate) ProtoMessage() {}
func (*EventAccountUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 3}
}
func (m *EventAccountUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1616,7 +1918,7 @@ func (m *EventAccountLinkChallenge) Reset() { *m = EventAccountLinkChall
func (m *EventAccountLinkChallenge) String() string { return proto.CompactTextString(m) }
func (*EventAccountLinkChallenge) ProtoMessage() {}
func (*EventAccountLinkChallenge) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 4}
}
func (m *EventAccountLinkChallenge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1669,7 +1971,7 @@ func (m *EventAccountLinkChallengeClientInfo) Reset() { *m = EventAccoun
func (m *EventAccountLinkChallengeClientInfo) String() string { return proto.CompactTextString(m) }
func (*EventAccountLinkChallengeClientInfo) ProtoMessage() {}
func (*EventAccountLinkChallengeClientInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 1, 4, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 2, 4, 0}
}
func (m *EventAccountLinkChallengeClientInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1726,7 +2028,7 @@ func (m *EventObject) Reset() { *m = EventObject{} }
func (m *EventObject) String() string { return proto.CompactTextString(m) }
func (*EventObject) ProtoMessage() {}
func (*EventObject) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3}
}
func (m *EventObject) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1762,7 +2064,7 @@ func (m *EventObjectDetails) Reset() { *m = EventObjectDetails{} }
func (m *EventObjectDetails) String() string { return proto.CompactTextString(m) }
func (*EventObjectDetails) ProtoMessage() {}
func (*EventObjectDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0}
}
func (m *EventObjectDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1802,7 +2104,7 @@ func (m *EventObjectDetailsAmend) Reset() { *m = EventObjectDetailsAmend
func (m *EventObjectDetailsAmend) String() string { return proto.CompactTextString(m) }
func (*EventObjectDetailsAmend) ProtoMessage() {}
func (*EventObjectDetailsAmend) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0, 0}
}
func (m *EventObjectDetailsAmend) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1861,7 +2163,7 @@ func (m *EventObjectDetailsAmendKeyValue) Reset() { *m = EventObjectDeta
func (m *EventObjectDetailsAmendKeyValue) String() string { return proto.CompactTextString(m) }
func (*EventObjectDetailsAmendKeyValue) ProtoMessage() {}
func (*EventObjectDetailsAmendKeyValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0, 0, 0}
}
func (m *EventObjectDetailsAmendKeyValue) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1915,7 +2217,7 @@ func (m *EventObjectDetailsSet) Reset() { *m = EventObjectDetailsSet{} }
func (m *EventObjectDetailsSet) String() string { return proto.CompactTextString(m) }
func (*EventObjectDetailsSet) ProtoMessage() {}
func (*EventObjectDetailsSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0, 1}
}
func (m *EventObjectDetailsSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1976,7 +2278,7 @@ func (m *EventObjectDetailsUnset) Reset() { *m = EventObjectDetailsUnset
func (m *EventObjectDetailsUnset) String() string { return proto.CompactTextString(m) }
func (*EventObjectDetailsUnset) ProtoMessage() {}
func (*EventObjectDetailsUnset) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 0, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0, 2}
}
func (m *EventObjectDetailsUnset) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2033,7 +2335,7 @@ func (m *EventObjectSubscription) Reset() { *m = EventObjectSubscription
func (m *EventObjectSubscription) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscription) ProtoMessage() {}
func (*EventObjectSubscription) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1}
}
func (m *EventObjectSubscription) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2073,7 +2375,7 @@ func (m *EventObjectSubscriptionAdd) Reset() { *m = EventObjectSubscript
func (m *EventObjectSubscriptionAdd) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscriptionAdd) ProtoMessage() {}
func (*EventObjectSubscriptionAdd) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1, 0}
}
func (m *EventObjectSubscriptionAdd) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2133,7 +2435,7 @@ func (m *EventObjectSubscriptionRemove) Reset() { *m = EventObjectSubscr
func (m *EventObjectSubscriptionRemove) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscriptionRemove) ProtoMessage() {}
func (*EventObjectSubscriptionRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1, 1}
}
func (m *EventObjectSubscriptionRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2187,7 +2489,7 @@ func (m *EventObjectSubscriptionPosition) Reset() { *m = EventObjectSubs
func (m *EventObjectSubscriptionPosition) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscriptionPosition) ProtoMessage() {}
func (*EventObjectSubscriptionPosition) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1, 2}
}
func (m *EventObjectSubscriptionPosition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2251,7 +2553,7 @@ func (m *EventObjectSubscriptionCounters) Reset() { *m = EventObjectSubs
func (m *EventObjectSubscriptionCounters) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscriptionCounters) ProtoMessage() {}
func (*EventObjectSubscriptionCounters) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1, 3}
}
func (m *EventObjectSubscriptionCounters) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2318,7 +2620,7 @@ func (m *EventObjectSubscriptionGroups) Reset() { *m = EventObjectSubscr
func (m *EventObjectSubscriptionGroups) String() string { return proto.CompactTextString(m) }
func (*EventObjectSubscriptionGroups) ProtoMessage() {}
func (*EventObjectSubscriptionGroups) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1, 4}
}
func (m *EventObjectSubscriptionGroups) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2375,7 +2677,7 @@ func (m *EventObjectRelations) Reset() { *m = EventObjectRelations{} }
func (m *EventObjectRelations) String() string { return proto.CompactTextString(m) }
func (*EventObjectRelations) ProtoMessage() {}
func (*EventObjectRelations) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 2}
}
func (m *EventObjectRelations) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2413,7 +2715,7 @@ func (m *EventObjectRelationsAmend) Reset() { *m = EventObjectRelationsA
func (m *EventObjectRelationsAmend) String() string { return proto.CompactTextString(m) }
func (*EventObjectRelationsAmend) ProtoMessage() {}
func (*EventObjectRelationsAmend) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 2, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 2, 0}
}
func (m *EventObjectRelationsAmend) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2465,7 +2767,7 @@ func (m *EventObjectRelationsRemove) Reset() { *m = EventObjectRelations
func (m *EventObjectRelationsRemove) String() string { return proto.CompactTextString(m) }
func (*EventObjectRelationsRemove) ProtoMessage() {}
func (*EventObjectRelationsRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 2, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 2, 1}
}
func (m *EventObjectRelationsRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2517,7 +2819,7 @@ func (m *EventObjectRemove) Reset() { *m = EventObjectRemove{} }
func (m *EventObjectRemove) String() string { return proto.CompactTextString(m) }
func (*EventObjectRemove) ProtoMessage() {}
func (*EventObjectRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 3}
}
func (m *EventObjectRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2560,7 +2862,7 @@ func (m *EventObjectRestrictions) Reset() { *m = EventObjectRestrictions
func (m *EventObjectRestrictions) String() string { return proto.CompactTextString(m) }
func (*EventObjectRestrictions) ProtoMessage() {}
func (*EventObjectRestrictions) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4}
}
func (m *EventObjectRestrictions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2598,7 +2900,7 @@ func (m *EventObjectRestrictionsSet) Reset() { *m = EventObjectRestricti
func (m *EventObjectRestrictionsSet) String() string { return proto.CompactTextString(m) }
func (*EventObjectRestrictionsSet) ProtoMessage() {}
func (*EventObjectRestrictionsSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 4, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 0}
}
func (m *EventObjectRestrictionsSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2649,7 +2951,7 @@ func (m *EventObjectClose) Reset() { *m = EventObjectClose{} }
func (m *EventObjectClose) String() string { return proto.CompactTextString(m) }
func (*EventObjectClose) ProtoMessage() {}
func (*EventObjectClose) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 2, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5}
}
func (m *EventObjectClose) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2692,7 +2994,7 @@ func (m *EventBlock) Reset() { *m = EventBlock{} }
func (m *EventBlock) String() string { return proto.CompactTextString(m) }
func (*EventBlock) ProtoMessage() {}
func (*EventBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4}
}
func (m *EventBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2739,7 +3041,7 @@ func (m *EventBlockAdd) Reset() { *m = EventBlockAdd{} }
func (m *EventBlockAdd) String() string { return proto.CompactTextString(m) }
func (*EventBlockAdd) ProtoMessage() {}
func (*EventBlockAdd) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0}
}
func (m *EventBlockAdd) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2789,7 +3091,7 @@ func (m *EventBlockFilesUpload) Reset() { *m = EventBlockFilesUpload{} }
func (m *EventBlockFilesUpload) String() string { return proto.CompactTextString(m) }
func (*EventBlockFilesUpload) ProtoMessage() {}
func (*EventBlockFilesUpload) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 1}
}
func (m *EventBlockFilesUpload) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2840,7 +3142,7 @@ func (m *EventBlockDelete) Reset() { *m = EventBlockDelete{} }
func (m *EventBlockDelete) String() string { return proto.CompactTextString(m) }
func (*EventBlockDelete) ProtoMessage() {}
func (*EventBlockDelete) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 2}
}
func (m *EventBlockDelete) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2884,7 +3186,7 @@ func (m *EventBlockMarksInfo) Reset() { *m = EventBlockMarksInfo{} }
func (m *EventBlockMarksInfo) String() string { return proto.CompactTextString(m) }
func (*EventBlockMarksInfo) ProtoMessage() {}
func (*EventBlockMarksInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 3}
}
func (m *EventBlockMarksInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2927,7 +3229,7 @@ func (m *EventBlockSet) Reset() { *m = EventBlockSet{} }
func (m *EventBlockSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockSet) ProtoMessage() {}
func (*EventBlockSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4}
}
func (m *EventBlockSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2965,7 +3267,7 @@ func (m *EventBlockSetRelation) Reset() { *m = EventBlockSetRelation{} }
func (m *EventBlockSetRelation) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetRelation) ProtoMessage() {}
func (*EventBlockSetRelation) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 0}
}
func (m *EventBlockSetRelation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3016,7 +3318,7 @@ func (m *EventBlockSetRelationKey) Reset() { *m = EventBlockSetRelationK
func (m *EventBlockSetRelationKey) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetRelationKey) ProtoMessage() {}
func (*EventBlockSetRelationKey) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 0, 0}
}
func (m *EventBlockSetRelationKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3061,7 +3363,7 @@ func (m *EventBlockSetFields) Reset() { *m = EventBlockSetFields{} }
func (m *EventBlockSetFields) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFields) ProtoMessage() {}
func (*EventBlockSetFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 1}
}
func (m *EventBlockSetFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3113,7 +3415,7 @@ func (m *EventBlockSetChildrenIds) Reset() { *m = EventBlockSetChildrenI
func (m *EventBlockSetChildrenIds) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetChildrenIds) ProtoMessage() {}
func (*EventBlockSetChildrenIds) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 2}
}
func (m *EventBlockSetChildrenIds) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3165,7 +3467,7 @@ func (m *EventBlockSetRestrictions) Reset() { *m = EventBlockSetRestrict
func (m *EventBlockSetRestrictions) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetRestrictions) ProtoMessage() {}
func (*EventBlockSetRestrictions) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 3}
}
func (m *EventBlockSetRestrictions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3217,7 +3519,7 @@ func (m *EventBlockSetBackgroundColor) Reset() { *m = EventBlockSetBackg
func (m *EventBlockSetBackgroundColor) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBackgroundColor) ProtoMessage() {}
func (*EventBlockSetBackgroundColor) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 4}
}
func (m *EventBlockSetBackgroundColor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3269,7 +3571,7 @@ func (m *EventBlockSetAlign) Reset() { *m = EventBlockSetAlign{} }
func (m *EventBlockSetAlign) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetAlign) ProtoMessage() {}
func (*EventBlockSetAlign) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 5}
}
func (m *EventBlockSetAlign) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3321,7 +3623,7 @@ func (m *EventBlockSetVerticalAlign) Reset() { *m = EventBlockSetVertica
func (m *EventBlockSetVerticalAlign) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetVerticalAlign) ProtoMessage() {}
func (*EventBlockSetVerticalAlign) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 6}
}
func (m *EventBlockSetVerticalAlign) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3379,7 +3681,7 @@ func (m *EventBlockSetText) Reset() { *m = EventBlockSetText{} }
func (m *EventBlockSetText) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetText) ProtoMessage() {}
func (*EventBlockSetText) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7}
}
func (m *EventBlockSetText) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3472,7 +3774,7 @@ func (m *EventBlockSetTextText) Reset() { *m = EventBlockSetTextText{} }
func (m *EventBlockSetTextText) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextText) ProtoMessage() {}
func (*EventBlockSetTextText) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 0}
}
func (m *EventBlockSetTextText) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3516,7 +3818,7 @@ func (m *EventBlockSetTextStyle) Reset() { *m = EventBlockSetTextStyle{}
func (m *EventBlockSetTextStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextStyle) ProtoMessage() {}
func (*EventBlockSetTextStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 1}
}
func (m *EventBlockSetTextStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3560,7 +3862,7 @@ func (m *EventBlockSetTextMarks) Reset() { *m = EventBlockSetTextMarks{}
func (m *EventBlockSetTextMarks) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextMarks) ProtoMessage() {}
func (*EventBlockSetTextMarks) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 2}
}
func (m *EventBlockSetTextMarks) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3604,7 +3906,7 @@ func (m *EventBlockSetTextChecked) Reset() { *m = EventBlockSetTextCheck
func (m *EventBlockSetTextChecked) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextChecked) ProtoMessage() {}
func (*EventBlockSetTextChecked) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 3}
}
func (m *EventBlockSetTextChecked) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3648,7 +3950,7 @@ func (m *EventBlockSetTextColor) Reset() { *m = EventBlockSetTextColor{}
func (m *EventBlockSetTextColor) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextColor) ProtoMessage() {}
func (*EventBlockSetTextColor) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 4}
}
func (m *EventBlockSetTextColor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3692,7 +3994,7 @@ func (m *EventBlockSetTextIconEmoji) Reset() { *m = EventBlockSetTextIco
func (m *EventBlockSetTextIconEmoji) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextIconEmoji) ProtoMessage() {}
func (*EventBlockSetTextIconEmoji) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 5}
}
func (m *EventBlockSetTextIconEmoji) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3736,7 +4038,7 @@ func (m *EventBlockSetTextIconImage) Reset() { *m = EventBlockSetTextIco
func (m *EventBlockSetTextIconImage) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTextIconImage) ProtoMessage() {}
func (*EventBlockSetTextIconImage) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 7, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 7, 6}
}
func (m *EventBlockSetTextIconImage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3782,7 +4084,7 @@ func (m *EventBlockSetLatex) Reset() { *m = EventBlockSetLatex{} }
func (m *EventBlockSetLatex) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLatex) ProtoMessage() {}
func (*EventBlockSetLatex) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 8}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 8}
}
func (m *EventBlockSetLatex) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3840,7 +4142,7 @@ func (m *EventBlockSetLatexText) Reset() { *m = EventBlockSetLatexText{}
func (m *EventBlockSetLatexText) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLatexText) ProtoMessage() {}
func (*EventBlockSetLatexText) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 8, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 8, 0}
}
func (m *EventBlockSetLatexText) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3884,7 +4186,7 @@ func (m *EventBlockSetLatexProcessor) Reset() { *m = EventBlockSetLatexP
func (m *EventBlockSetLatexProcessor) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLatexProcessor) ProtoMessage() {}
func (*EventBlockSetLatexProcessor) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 8, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 8, 1}
}
func (m *EventBlockSetLatexProcessor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3929,7 +4231,7 @@ func (m *EventBlockSetDiv) Reset() { *m = EventBlockSetDiv{} }
func (m *EventBlockSetDiv) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetDiv) ProtoMessage() {}
func (*EventBlockSetDiv) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 9}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 9}
}
func (m *EventBlockSetDiv) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3980,7 +4282,7 @@ func (m *EventBlockSetDivStyle) Reset() { *m = EventBlockSetDivStyle{} }
func (m *EventBlockSetDivStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetDivStyle) ProtoMessage() {}
func (*EventBlockSetDivStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 9, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 9, 0}
}
func (m *EventBlockSetDivStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4032,7 +4334,7 @@ func (m *EventBlockSetFile) Reset() { *m = EventBlockSetFile{} }
func (m *EventBlockSetFile) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFile) ProtoMessage() {}
func (*EventBlockSetFile) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10}
}
func (m *EventBlockSetFile) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4132,7 +4434,7 @@ func (m *EventBlockSetFileName) Reset() { *m = EventBlockSetFileName{} }
func (m *EventBlockSetFileName) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileName) ProtoMessage() {}
func (*EventBlockSetFileName) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 0}
}
func (m *EventBlockSetFileName) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4176,7 +4478,7 @@ func (m *EventBlockSetFileWidth) Reset() { *m = EventBlockSetFileWidth{}
func (m *EventBlockSetFileWidth) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileWidth) ProtoMessage() {}
func (*EventBlockSetFileWidth) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 1}
}
func (m *EventBlockSetFileWidth) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4220,7 +4522,7 @@ func (m *EventBlockSetFileState) Reset() { *m = EventBlockSetFileState{}
func (m *EventBlockSetFileState) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileState) ProtoMessage() {}
func (*EventBlockSetFileState) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 2}
}
func (m *EventBlockSetFileState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4264,7 +4566,7 @@ func (m *EventBlockSetFileType) Reset() { *m = EventBlockSetFileType{} }
func (m *EventBlockSetFileType) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileType) ProtoMessage() {}
func (*EventBlockSetFileType) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 3}
}
func (m *EventBlockSetFileType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4308,7 +4610,7 @@ func (m *EventBlockSetFileStyle) Reset() { *m = EventBlockSetFileStyle{}
func (m *EventBlockSetFileStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileStyle) ProtoMessage() {}
func (*EventBlockSetFileStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 4}
}
func (m *EventBlockSetFileStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4352,7 +4654,7 @@ func (m *EventBlockSetFileHash) Reset() { *m = EventBlockSetFileHash{} }
func (m *EventBlockSetFileHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileHash) ProtoMessage() {}
func (*EventBlockSetFileHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 5}
}
func (m *EventBlockSetFileHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4396,7 +4698,7 @@ func (m *EventBlockSetFileMime) Reset() { *m = EventBlockSetFileMime{} }
func (m *EventBlockSetFileMime) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileMime) ProtoMessage() {}
func (*EventBlockSetFileMime) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 6}
}
func (m *EventBlockSetFileMime) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4440,7 +4742,7 @@ func (m *EventBlockSetFileSize) Reset() { *m = EventBlockSetFileSize{} }
func (m *EventBlockSetFileSize) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileSize) ProtoMessage() {}
func (*EventBlockSetFileSize) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 7}
}
func (m *EventBlockSetFileSize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4484,7 +4786,7 @@ func (m *EventBlockSetFileTargetObjectId) Reset() { *m = EventBlockSetFi
func (m *EventBlockSetFileTargetObjectId) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetFileTargetObjectId) ProtoMessage() {}
func (*EventBlockSetFileTargetObjectId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 10, 8}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 10, 8}
}
func (m *EventBlockSetFileTargetObjectId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4535,7 +4837,7 @@ func (m *EventBlockSetLink) Reset() { *m = EventBlockSetLink{} }
func (m *EventBlockSetLink) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLink) ProtoMessage() {}
func (*EventBlockSetLink) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11}
}
func (m *EventBlockSetLink) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4628,7 +4930,7 @@ func (m *EventBlockSetLinkTargetBlockId) Reset() { *m = EventBlockSetLin
func (m *EventBlockSetLinkTargetBlockId) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkTargetBlockId) ProtoMessage() {}
func (*EventBlockSetLinkTargetBlockId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 0}
}
func (m *EventBlockSetLinkTargetBlockId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4672,7 +4974,7 @@ func (m *EventBlockSetLinkStyle) Reset() { *m = EventBlockSetLinkStyle{}
func (m *EventBlockSetLinkStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkStyle) ProtoMessage() {}
func (*EventBlockSetLinkStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 1}
}
func (m *EventBlockSetLinkStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4716,7 +5018,7 @@ func (m *EventBlockSetLinkFields) Reset() { *m = EventBlockSetLinkFields
func (m *EventBlockSetLinkFields) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkFields) ProtoMessage() {}
func (*EventBlockSetLinkFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 2}
}
func (m *EventBlockSetLinkFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4760,7 +5062,7 @@ func (m *EventBlockSetLinkIconSize) Reset() { *m = EventBlockSetLinkIcon
func (m *EventBlockSetLinkIconSize) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkIconSize) ProtoMessage() {}
func (*EventBlockSetLinkIconSize) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 3}
}
func (m *EventBlockSetLinkIconSize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4804,7 +5106,7 @@ func (m *EventBlockSetLinkCardStyle) Reset() { *m = EventBlockSetLinkCar
func (m *EventBlockSetLinkCardStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkCardStyle) ProtoMessage() {}
func (*EventBlockSetLinkCardStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 4}
}
func (m *EventBlockSetLinkCardStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4848,7 +5150,7 @@ func (m *EventBlockSetLinkDescription) Reset() { *m = EventBlockSetLinkD
func (m *EventBlockSetLinkDescription) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkDescription) ProtoMessage() {}
func (*EventBlockSetLinkDescription) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 5}
}
func (m *EventBlockSetLinkDescription) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4892,7 +5194,7 @@ func (m *EventBlockSetLinkRelations) Reset() { *m = EventBlockSetLinkRel
func (m *EventBlockSetLinkRelations) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetLinkRelations) ProtoMessage() {}
func (*EventBlockSetLinkRelations) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 11, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 11, 6}
}
func (m *EventBlockSetLinkRelations) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4944,7 +5246,7 @@ func (m *EventBlockSetBookmark) Reset() { *m = EventBlockSetBookmark{} }
func (m *EventBlockSetBookmark) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmark) ProtoMessage() {}
func (*EventBlockSetBookmark) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12}
}
func (m *EventBlockSetBookmark) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5044,7 +5346,7 @@ func (m *EventBlockSetBookmarkUrl) Reset() { *m = EventBlockSetBookmarkU
func (m *EventBlockSetBookmarkUrl) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkUrl) ProtoMessage() {}
func (*EventBlockSetBookmarkUrl) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 0}
}
func (m *EventBlockSetBookmarkUrl) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5088,7 +5390,7 @@ func (m *EventBlockSetBookmarkTitle) Reset() { *m = EventBlockSetBookmar
func (m *EventBlockSetBookmarkTitle) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkTitle) ProtoMessage() {}
func (*EventBlockSetBookmarkTitle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 1}
}
func (m *EventBlockSetBookmarkTitle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5132,7 +5434,7 @@ func (m *EventBlockSetBookmarkDescription) Reset() { *m = EventBlockSetB
func (m *EventBlockSetBookmarkDescription) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkDescription) ProtoMessage() {}
func (*EventBlockSetBookmarkDescription) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 2}
}
func (m *EventBlockSetBookmarkDescription) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5176,7 +5478,7 @@ func (m *EventBlockSetBookmarkImageHash) Reset() { *m = EventBlockSetBoo
func (m *EventBlockSetBookmarkImageHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkImageHash) ProtoMessage() {}
func (*EventBlockSetBookmarkImageHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 3}
}
func (m *EventBlockSetBookmarkImageHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5220,7 +5522,7 @@ func (m *EventBlockSetBookmarkFaviconHash) Reset() { *m = EventBlockSetB
func (m *EventBlockSetBookmarkFaviconHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkFaviconHash) ProtoMessage() {}
func (*EventBlockSetBookmarkFaviconHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 4}
}
func (m *EventBlockSetBookmarkFaviconHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5264,7 +5566,7 @@ func (m *EventBlockSetBookmarkType) Reset() { *m = EventBlockSetBookmark
func (m *EventBlockSetBookmarkType) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkType) ProtoMessage() {}
func (*EventBlockSetBookmarkType) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 5}
}
func (m *EventBlockSetBookmarkType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5308,7 +5610,7 @@ func (m *EventBlockSetBookmarkTargetObjectId) Reset() { *m = EventBlockS
func (m *EventBlockSetBookmarkTargetObjectId) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkTargetObjectId) ProtoMessage() {}
func (*EventBlockSetBookmarkTargetObjectId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 6}
}
func (m *EventBlockSetBookmarkTargetObjectId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5352,7 +5654,7 @@ func (m *EventBlockSetBookmarkState) Reset() { *m = EventBlockSetBookmar
func (m *EventBlockSetBookmarkState) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetBookmarkState) ProtoMessage() {}
func (*EventBlockSetBookmarkState) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 12, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 12, 7}
}
func (m *EventBlockSetBookmarkState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5397,7 +5699,7 @@ func (m *EventBlockSetTableRow) Reset() { *m = EventBlockSetTableRow{} }
func (m *EventBlockSetTableRow) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTableRow) ProtoMessage() {}
func (*EventBlockSetTableRow) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 13}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 13}
}
func (m *EventBlockSetTableRow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5448,7 +5750,7 @@ func (m *EventBlockSetTableRowIsHeader) Reset() { *m = EventBlockSetTabl
func (m *EventBlockSetTableRowIsHeader) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetTableRowIsHeader) ProtoMessage() {}
func (*EventBlockSetTableRowIsHeader) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 13, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 13, 0}
}
func (m *EventBlockSetTableRowIsHeader) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5495,7 +5797,7 @@ func (m *EventBlockSetWidget) Reset() { *m = EventBlockSetWidget{} }
func (m *EventBlockSetWidget) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetWidget) ProtoMessage() {}
func (*EventBlockSetWidget) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 14}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 14}
}
func (m *EventBlockSetWidget) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5560,7 +5862,7 @@ func (m *EventBlockSetWidgetLayout) Reset() { *m = EventBlockSetWidgetLa
func (m *EventBlockSetWidgetLayout) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetWidgetLayout) ProtoMessage() {}
func (*EventBlockSetWidgetLayout) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 14, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 14, 0}
}
func (m *EventBlockSetWidgetLayout) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5604,7 +5906,7 @@ func (m *EventBlockSetWidgetLimit) Reset() { *m = EventBlockSetWidgetLim
func (m *EventBlockSetWidgetLimit) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetWidgetLimit) ProtoMessage() {}
func (*EventBlockSetWidgetLimit) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 14, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 14, 1}
}
func (m *EventBlockSetWidgetLimit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5648,7 +5950,7 @@ func (m *EventBlockSetWidgetViewId) Reset() { *m = EventBlockSetWidgetVi
func (m *EventBlockSetWidgetViewId) String() string { return proto.CompactTextString(m) }
func (*EventBlockSetWidgetViewId) ProtoMessage() {}
func (*EventBlockSetWidgetViewId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 14, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 4, 14, 2}
}
func (m *EventBlockSetWidgetViewId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5691,7 +5993,7 @@ func (m *EventBlockFill) Reset() { *m = EventBlockFill{} }
func (m *EventBlockFill) String() string { return proto.CompactTextString(m) }
func (*EventBlockFill) ProtoMessage() {}
func (*EventBlockFill) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5}
}
func (m *EventBlockFill) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5729,7 +6031,7 @@ func (m *EventBlockFillDetails) Reset() { *m = EventBlockFillDetails{} }
func (m *EventBlockFillDetails) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillDetails) ProtoMessage() {}
func (*EventBlockFillDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 0}
}
func (m *EventBlockFillDetails) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5781,7 +6083,7 @@ func (m *EventBlockFillDatabaseRecords) Reset() { *m = EventBlockFillDat
func (m *EventBlockFillDatabaseRecords) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillDatabaseRecords) ProtoMessage() {}
func (*EventBlockFillDatabaseRecords) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 1}
}
func (m *EventBlockFillDatabaseRecords) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5833,7 +6135,7 @@ func (m *EventBlockFillFields) Reset() { *m = EventBlockFillFields{} }
func (m *EventBlockFillFields) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFields) ProtoMessage() {}
func (*EventBlockFillFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 2}
}
func (m *EventBlockFillFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5885,7 +6187,7 @@ func (m *EventBlockFillChildrenIds) Reset() { *m = EventBlockFillChildre
func (m *EventBlockFillChildrenIds) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillChildrenIds) ProtoMessage() {}
func (*EventBlockFillChildrenIds) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 3}
}
func (m *EventBlockFillChildrenIds) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5937,7 +6239,7 @@ func (m *EventBlockFillRestrictions) Reset() { *m = EventBlockFillRestri
func (m *EventBlockFillRestrictions) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillRestrictions) ProtoMessage() {}
func (*EventBlockFillRestrictions) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 4}
}
func (m *EventBlockFillRestrictions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -5989,7 +6291,7 @@ func (m *EventBlockFillBackgroundColor) Reset() { *m = EventBlockFillBac
func (m *EventBlockFillBackgroundColor) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBackgroundColor) ProtoMessage() {}
func (*EventBlockFillBackgroundColor) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 5}
}
func (m *EventBlockFillBackgroundColor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6041,7 +6343,7 @@ func (m *EventBlockFillAlign) Reset() { *m = EventBlockFillAlign{} }
func (m *EventBlockFillAlign) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillAlign) ProtoMessage() {}
func (*EventBlockFillAlign) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 6}
}
func (m *EventBlockFillAlign) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6097,7 +6399,7 @@ func (m *EventBlockFillText) Reset() { *m = EventBlockFillText{} }
func (m *EventBlockFillText) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillText) ProtoMessage() {}
func (*EventBlockFillText) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7}
}
func (m *EventBlockFillText) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6176,7 +6478,7 @@ func (m *EventBlockFillTextText) Reset() { *m = EventBlockFillTextText{}
func (m *EventBlockFillTextText) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillTextText) ProtoMessage() {}
func (*EventBlockFillTextText) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7, 0}
}
func (m *EventBlockFillTextText) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6220,7 +6522,7 @@ func (m *EventBlockFillTextStyle) Reset() { *m = EventBlockFillTextStyle
func (m *EventBlockFillTextStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillTextStyle) ProtoMessage() {}
func (*EventBlockFillTextStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7, 1}
}
func (m *EventBlockFillTextStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6264,7 +6566,7 @@ func (m *EventBlockFillTextMarks) Reset() { *m = EventBlockFillTextMarks
func (m *EventBlockFillTextMarks) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillTextMarks) ProtoMessage() {}
func (*EventBlockFillTextMarks) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7, 2}
}
func (m *EventBlockFillTextMarks) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6308,7 +6610,7 @@ func (m *EventBlockFillTextChecked) Reset() { *m = EventBlockFillTextChe
func (m *EventBlockFillTextChecked) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillTextChecked) ProtoMessage() {}
func (*EventBlockFillTextChecked) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7, 3}
}
func (m *EventBlockFillTextChecked) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6352,7 +6654,7 @@ func (m *EventBlockFillTextColor) Reset() { *m = EventBlockFillTextColor
func (m *EventBlockFillTextColor) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillTextColor) ProtoMessage() {}
func (*EventBlockFillTextColor) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 7, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 7, 4}
}
func (m *EventBlockFillTextColor) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6397,7 +6699,7 @@ func (m *EventBlockFillDiv) Reset() { *m = EventBlockFillDiv{} }
func (m *EventBlockFillDiv) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillDiv) ProtoMessage() {}
func (*EventBlockFillDiv) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 8}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 8}
}
func (m *EventBlockFillDiv) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6448,7 +6750,7 @@ func (m *EventBlockFillDivStyle) Reset() { *m = EventBlockFillDivStyle{}
func (m *EventBlockFillDivStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillDivStyle) ProtoMessage() {}
func (*EventBlockFillDivStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 8, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 8, 0}
}
func (m *EventBlockFillDivStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6499,7 +6801,7 @@ func (m *EventBlockFillFile) Reset() { *m = EventBlockFillFile{} }
func (m *EventBlockFillFile) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFile) ProtoMessage() {}
func (*EventBlockFillFile) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9}
}
func (m *EventBlockFillFile) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6592,7 +6894,7 @@ func (m *EventBlockFillFileName) Reset() { *m = EventBlockFillFileName{}
func (m *EventBlockFillFileName) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileName) ProtoMessage() {}
func (*EventBlockFillFileName) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 0}
}
func (m *EventBlockFillFileName) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6636,7 +6938,7 @@ func (m *EventBlockFillFileWidth) Reset() { *m = EventBlockFillFileWidth
func (m *EventBlockFillFileWidth) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileWidth) ProtoMessage() {}
func (*EventBlockFillFileWidth) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 1}
}
func (m *EventBlockFillFileWidth) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6680,7 +6982,7 @@ func (m *EventBlockFillFileState) Reset() { *m = EventBlockFillFileState
func (m *EventBlockFillFileState) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileState) ProtoMessage() {}
func (*EventBlockFillFileState) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 2}
}
func (m *EventBlockFillFileState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6724,7 +7026,7 @@ func (m *EventBlockFillFileType) Reset() { *m = EventBlockFillFileType{}
func (m *EventBlockFillFileType) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileType) ProtoMessage() {}
func (*EventBlockFillFileType) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 3}
}
func (m *EventBlockFillFileType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6768,7 +7070,7 @@ func (m *EventBlockFillFileStyle) Reset() { *m = EventBlockFillFileStyle
func (m *EventBlockFillFileStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileStyle) ProtoMessage() {}
func (*EventBlockFillFileStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 4}
}
func (m *EventBlockFillFileStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6812,7 +7114,7 @@ func (m *EventBlockFillFileHash) Reset() { *m = EventBlockFillFileHash{}
func (m *EventBlockFillFileHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileHash) ProtoMessage() {}
func (*EventBlockFillFileHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 5}
}
func (m *EventBlockFillFileHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6856,7 +7158,7 @@ func (m *EventBlockFillFileMime) Reset() { *m = EventBlockFillFileMime{}
func (m *EventBlockFillFileMime) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileMime) ProtoMessage() {}
func (*EventBlockFillFileMime) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 6}
}
func (m *EventBlockFillFileMime) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6900,7 +7202,7 @@ func (m *EventBlockFillFileSize) Reset() { *m = EventBlockFillFileSize{}
func (m *EventBlockFillFileSize) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillFileSize) ProtoMessage() {}
func (*EventBlockFillFileSize) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 9, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 9, 7}
}
func (m *EventBlockFillFileSize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -6947,7 +7249,7 @@ func (m *EventBlockFillLink) Reset() { *m = EventBlockFillLink{} }
func (m *EventBlockFillLink) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillLink) ProtoMessage() {}
func (*EventBlockFillLink) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 10}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 10}
}
func (m *EventBlockFillLink) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7012,7 +7314,7 @@ func (m *EventBlockFillLinkTargetBlockId) Reset() { *m = EventBlockFillL
func (m *EventBlockFillLinkTargetBlockId) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillLinkTargetBlockId) ProtoMessage() {}
func (*EventBlockFillLinkTargetBlockId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 10, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 10, 0}
}
func (m *EventBlockFillLinkTargetBlockId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7056,7 +7358,7 @@ func (m *EventBlockFillLinkStyle) Reset() { *m = EventBlockFillLinkStyle
func (m *EventBlockFillLinkStyle) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillLinkStyle) ProtoMessage() {}
func (*EventBlockFillLinkStyle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 10, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 10, 1}
}
func (m *EventBlockFillLinkStyle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7100,7 +7402,7 @@ func (m *EventBlockFillLinkFields) Reset() { *m = EventBlockFillLinkFiel
func (m *EventBlockFillLinkFields) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillLinkFields) ProtoMessage() {}
func (*EventBlockFillLinkFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 10, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 10, 2}
}
func (m *EventBlockFillLinkFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7151,7 +7453,7 @@ func (m *EventBlockFillBookmark) Reset() { *m = EventBlockFillBookmark{}
func (m *EventBlockFillBookmark) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmark) ProtoMessage() {}
func (*EventBlockFillBookmark) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11}
}
func (m *EventBlockFillBookmark) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7244,7 +7546,7 @@ func (m *EventBlockFillBookmarkUrl) Reset() { *m = EventBlockFillBookmar
func (m *EventBlockFillBookmarkUrl) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkUrl) ProtoMessage() {}
func (*EventBlockFillBookmarkUrl) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 0}
}
func (m *EventBlockFillBookmarkUrl) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7288,7 +7590,7 @@ func (m *EventBlockFillBookmarkTitle) Reset() { *m = EventBlockFillBookm
func (m *EventBlockFillBookmarkTitle) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkTitle) ProtoMessage() {}
func (*EventBlockFillBookmarkTitle) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 1}
}
func (m *EventBlockFillBookmarkTitle) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7332,7 +7634,7 @@ func (m *EventBlockFillBookmarkDescription) Reset() { *m = EventBlockFil
func (m *EventBlockFillBookmarkDescription) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkDescription) ProtoMessage() {}
func (*EventBlockFillBookmarkDescription) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 2}
}
func (m *EventBlockFillBookmarkDescription) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7376,7 +7678,7 @@ func (m *EventBlockFillBookmarkImageHash) Reset() { *m = EventBlockFillB
func (m *EventBlockFillBookmarkImageHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkImageHash) ProtoMessage() {}
func (*EventBlockFillBookmarkImageHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 3}
}
func (m *EventBlockFillBookmarkImageHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7420,7 +7722,7 @@ func (m *EventBlockFillBookmarkFaviconHash) Reset() { *m = EventBlockFil
func (m *EventBlockFillBookmarkFaviconHash) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkFaviconHash) ProtoMessage() {}
func (*EventBlockFillBookmarkFaviconHash) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 4}
}
func (m *EventBlockFillBookmarkFaviconHash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7464,7 +7766,7 @@ func (m *EventBlockFillBookmarkType) Reset() { *m = EventBlockFillBookma
func (m *EventBlockFillBookmarkType) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkType) ProtoMessage() {}
func (*EventBlockFillBookmarkType) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 5}
}
func (m *EventBlockFillBookmarkType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7508,7 +7810,7 @@ func (m *EventBlockFillBookmarkTargetObjectId) Reset() { *m = EventBlock
func (m *EventBlockFillBookmarkTargetObjectId) String() string { return proto.CompactTextString(m) }
func (*EventBlockFillBookmarkTargetObjectId) ProtoMessage() {}
func (*EventBlockFillBookmarkTargetObjectId) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 5, 11, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 5, 11, 6}
}
func (m *EventBlockFillBookmarkTargetObjectId) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7551,7 +7853,7 @@ func (m *EventBlockDataview) Reset() { *m = EventBlockDataview{} }
func (m *EventBlockDataview) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataview) ProtoMessage() {}
func (*EventBlockDataview) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6}
}
func (m *EventBlockDataview) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7591,7 +7893,7 @@ func (m *EventBlockDataviewViewSet) Reset() { *m = EventBlockDataviewVie
func (m *EventBlockDataviewViewSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewSet) ProtoMessage() {}
func (*EventBlockDataviewViewSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 0}
}
func (m *EventBlockDataviewViewSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7654,7 +7956,7 @@ func (m *EventBlockDataviewViewUpdate) Reset() { *m = EventBlockDataview
func (m *EventBlockDataviewViewUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdate) ProtoMessage() {}
func (*EventBlockDataviewViewUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1}
}
func (m *EventBlockDataviewViewUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7743,7 +8045,7 @@ func (m *EventBlockDataviewViewUpdateFields) Reset() { *m = EventBlockDa
func (m *EventBlockDataviewViewUpdateFields) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFields) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 0}
}
func (m *EventBlockDataviewViewUpdateFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7863,7 +8165,7 @@ func (m *EventBlockDataviewViewUpdateFilter) Reset() { *m = EventBlockDa
func (m *EventBlockDataviewViewUpdateFilter) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFilter) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFilter) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 1}
}
func (m *EventBlockDataviewViewUpdateFilter) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -7974,7 +8276,7 @@ func (m *EventBlockDataviewViewUpdateFilterAdd) Reset() { *m = EventBloc
func (m *EventBlockDataviewViewUpdateFilterAdd) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFilterAdd) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFilterAdd) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 1, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 1, 0}
}
func (m *EventBlockDataviewViewUpdateFilterAdd) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8027,7 +8329,7 @@ func (m *EventBlockDataviewViewUpdateFilterRemove) Reset() {
func (m *EventBlockDataviewViewUpdateFilterRemove) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFilterRemove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFilterRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 1, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 1, 1}
}
func (m *EventBlockDataviewViewUpdateFilterRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8074,7 +8376,7 @@ func (m *EventBlockDataviewViewUpdateFilterUpdate) Reset() {
func (m *EventBlockDataviewViewUpdateFilterUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFilterUpdate) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFilterUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 1, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 1, 2}
}
func (m *EventBlockDataviewViewUpdateFilterUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8128,7 +8430,7 @@ func (m *EventBlockDataviewViewUpdateFilterMove) Reset() {
func (m *EventBlockDataviewViewUpdateFilterMove) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateFilterMove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateFilterMove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 1, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 1, 3}
}
func (m *EventBlockDataviewViewUpdateFilterMove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8185,7 +8487,7 @@ func (m *EventBlockDataviewViewUpdateRelation) Reset() { *m = EventBlock
func (m *EventBlockDataviewViewUpdateRelation) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateRelation) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateRelation) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 2}
}
func (m *EventBlockDataviewViewUpdateRelation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8298,7 +8600,7 @@ func (m *EventBlockDataviewViewUpdateRelationAdd) Reset() {
func (m *EventBlockDataviewViewUpdateRelationAdd) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateRelationAdd) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateRelationAdd) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 2, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 2, 0}
}
func (m *EventBlockDataviewViewUpdateRelationAdd) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8353,7 +8655,7 @@ func (m *EventBlockDataviewViewUpdateRelationRemove) String() string {
}
func (*EventBlockDataviewViewUpdateRelationRemove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateRelationRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 2, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 2, 1}
}
func (m *EventBlockDataviewViewUpdateRelationRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8402,7 +8704,7 @@ func (m *EventBlockDataviewViewUpdateRelationUpdate) String() string {
}
func (*EventBlockDataviewViewUpdateRelationUpdate) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateRelationUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 2, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 2, 2}
}
func (m *EventBlockDataviewViewUpdateRelationUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8456,7 +8758,7 @@ func (m *EventBlockDataviewViewUpdateRelationMove) Reset() {
func (m *EventBlockDataviewViewUpdateRelationMove) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateRelationMove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateRelationMove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 2, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 2, 3}
}
func (m *EventBlockDataviewViewUpdateRelationMove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8513,7 +8815,7 @@ func (m *EventBlockDataviewViewUpdateSort) Reset() { *m = EventBlockData
func (m *EventBlockDataviewViewUpdateSort) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateSort) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateSort) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 3}
}
func (m *EventBlockDataviewViewUpdateSort) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8624,7 +8926,7 @@ func (m *EventBlockDataviewViewUpdateSortAdd) Reset() { *m = EventBlockD
func (m *EventBlockDataviewViewUpdateSortAdd) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateSortAdd) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateSortAdd) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 3, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 3, 0}
}
func (m *EventBlockDataviewViewUpdateSortAdd) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8677,7 +8979,7 @@ func (m *EventBlockDataviewViewUpdateSortRemove) Reset() {
func (m *EventBlockDataviewViewUpdateSortRemove) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateSortRemove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateSortRemove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 3, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 3, 1}
}
func (m *EventBlockDataviewViewUpdateSortRemove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8724,7 +9026,7 @@ func (m *EventBlockDataviewViewUpdateSortUpdate) Reset() {
func (m *EventBlockDataviewViewUpdateSortUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateSortUpdate) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateSortUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 3, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 3, 2}
}
func (m *EventBlockDataviewViewUpdateSortUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8776,7 +9078,7 @@ func (m *EventBlockDataviewViewUpdateSortMove) Reset() { *m = EventBlock
func (m *EventBlockDataviewViewUpdateSortMove) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewUpdateSortMove) ProtoMessage() {}
func (*EventBlockDataviewViewUpdateSortMove) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 1, 3, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 1, 3, 3}
}
func (m *EventBlockDataviewViewUpdateSortMove) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8828,7 +9130,7 @@ func (m *EventBlockDataviewViewDelete) Reset() { *m = EventBlockDataview
func (m *EventBlockDataviewViewDelete) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewDelete) ProtoMessage() {}
func (*EventBlockDataviewViewDelete) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 2}
}
func (m *EventBlockDataviewViewDelete) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8880,7 +9182,7 @@ func (m *EventBlockDataviewViewOrder) Reset() { *m = EventBlockDataviewV
func (m *EventBlockDataviewViewOrder) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewViewOrder) ProtoMessage() {}
func (*EventBlockDataviewViewOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 3}
}
func (m *EventBlockDataviewViewOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8932,7 +9234,7 @@ func (m *EventBlockDataviewSourceSet) Reset() { *m = EventBlockDataviewS
func (m *EventBlockDataviewSourceSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewSourceSet) ProtoMessage() {}
func (*EventBlockDataviewSourceSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 4}
}
func (m *EventBlockDataviewSourceSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -8984,7 +9286,7 @@ func (m *EventBlockDataviewOldRelationDelete) Reset() { *m = EventBlockD
func (m *EventBlockDataviewOldRelationDelete) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewOldRelationDelete) ProtoMessage() {}
func (*EventBlockDataviewOldRelationDelete) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 5}
}
func (m *EventBlockDataviewOldRelationDelete) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9038,7 +9340,7 @@ func (m *EventBlockDataviewOldRelationSet) Reset() { *m = EventBlockData
func (m *EventBlockDataviewOldRelationSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewOldRelationSet) ProtoMessage() {}
func (*EventBlockDataviewOldRelationSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 6}
}
func (m *EventBlockDataviewOldRelationSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9097,7 +9399,7 @@ func (m *EventBlockDataviewRelationDelete) Reset() { *m = EventBlockData
func (m *EventBlockDataviewRelationDelete) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewRelationDelete) ProtoMessage() {}
func (*EventBlockDataviewRelationDelete) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 7}
}
func (m *EventBlockDataviewRelationDelete) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9150,7 +9452,7 @@ func (m *EventBlockDataviewRelationSet) Reset() { *m = EventBlockDatavie
func (m *EventBlockDataviewRelationSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewRelationSet) ProtoMessage() {}
func (*EventBlockDataviewRelationSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 8}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 8}
}
func (m *EventBlockDataviewRelationSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9202,7 +9504,7 @@ func (m *EventBlockDataviewGroupOrderUpdate) Reset() { *m = EventBlockDa
func (m *EventBlockDataviewGroupOrderUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewGroupOrderUpdate) ProtoMessage() {}
func (*EventBlockDataviewGroupOrderUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 9}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 9}
}
func (m *EventBlockDataviewGroupOrderUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9256,7 +9558,7 @@ func (m *EventBlockDataviewObjectOrderUpdate) Reset() { *m = EventBlockD
func (m *EventBlockDataviewObjectOrderUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewObjectOrderUpdate) ProtoMessage() {}
func (*EventBlockDataviewObjectOrderUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 10}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 10}
}
func (m *EventBlockDataviewObjectOrderUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9323,7 +9625,7 @@ func (m *EventBlockDataviewSliceChange) Reset() { *m = EventBlockDatavie
func (m *EventBlockDataviewSliceChange) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewSliceChange) ProtoMessage() {}
func (*EventBlockDataviewSliceChange) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 11}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 11}
}
func (m *EventBlockDataviewSliceChange) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9382,7 +9684,7 @@ func (m *EventBlockDataviewTargetObjectIdSet) Reset() { *m = EventBlockD
func (m *EventBlockDataviewTargetObjectIdSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewTargetObjectIdSet) ProtoMessage() {}
func (*EventBlockDataviewTargetObjectIdSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 12}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 12}
}
func (m *EventBlockDataviewTargetObjectIdSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9434,7 +9736,7 @@ func (m *EventBlockDataviewIsCollectionSet) Reset() { *m = EventBlockDat
func (m *EventBlockDataviewIsCollectionSet) String() string { return proto.CompactTextString(m) }
func (*EventBlockDataviewIsCollectionSet) ProtoMessage() {}
func (*EventBlockDataviewIsCollectionSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 3, 6, 13}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 4, 6, 13}
}
func (m *EventBlockDataviewIsCollectionSet) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9484,7 +9786,7 @@ func (m *EventUser) Reset() { *m = EventUser{} }
func (m *EventUser) String() string { return proto.CompactTextString(m) }
func (*EventUser) ProtoMessage() {}
func (*EventUser) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5}
}
func (m *EventUser) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9520,7 +9822,7 @@ func (m *EventUserBlock) Reset() { *m = EventUserBlock{} }
func (m *EventUserBlock) String() string { return proto.CompactTextString(m) }
func (*EventUserBlock) ProtoMessage() {}
func (*EventUserBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5, 0}
}
func (m *EventUserBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9564,7 +9866,7 @@ func (m *EventUserBlockJoin) Reset() { *m = EventUserBlockJoin{} }
func (m *EventUserBlockJoin) String() string { return proto.CompactTextString(m) }
func (*EventUserBlockJoin) ProtoMessage() {}
func (*EventUserBlockJoin) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5, 0, 0}
}
func (m *EventUserBlockJoin) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9615,7 +9917,7 @@ func (m *EventUserBlockLeft) Reset() { *m = EventUserBlockLeft{} }
func (m *EventUserBlockLeft) String() string { return proto.CompactTextString(m) }
func (*EventUserBlockLeft) ProtoMessage() {}
func (*EventUserBlockLeft) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5, 0, 1}
}
func (m *EventUserBlockLeft) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9666,7 +9968,7 @@ func (m *EventUserBlockTextRange) Reset() { *m = EventUserBlockTextRange
func (m *EventUserBlockTextRange) String() string { return proto.CompactTextString(m) }
func (*EventUserBlockTextRange) ProtoMessage() {}
func (*EventUserBlockTextRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5, 0, 2}
}
func (m *EventUserBlockTextRange) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9730,7 +10032,7 @@ func (m *EventUserBlockSelectRange) Reset() { *m = EventUserBlockSelectR
func (m *EventUserBlockSelectRange) String() string { return proto.CompactTextString(m) }
func (*EventUserBlockSelectRange) ProtoMessage() {}
func (*EventUserBlockSelectRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 4, 0, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 5, 0, 3}
}
func (m *EventUserBlockSelectRange) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9781,7 +10083,7 @@ func (m *EventPing) Reset() { *m = EventPing{} }
func (m *EventPing) String() string { return proto.CompactTextString(m) }
func (*EventPing) ProtoMessage() {}
func (*EventPing) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 5}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 6}
}
func (m *EventPing) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9824,7 +10126,7 @@ func (m *EventProcess) Reset() { *m = EventProcess{} }
func (m *EventProcess) String() string { return proto.CompactTextString(m) }
func (*EventProcess) ProtoMessage() {}
func (*EventProcess) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 6}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 7}
}
func (m *EventProcess) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9861,7 +10163,7 @@ func (m *EventProcessNew) Reset() { *m = EventProcessNew{} }
func (m *EventProcessNew) String() string { return proto.CompactTextString(m) }
func (*EventProcessNew) ProtoMessage() {}
func (*EventProcessNew) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 6, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0}
}
func (m *EventProcessNew) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9905,7 +10207,7 @@ func (m *EventProcessUpdate) Reset() { *m = EventProcessUpdate{} }
func (m *EventProcessUpdate) String() string { return proto.CompactTextString(m) }
func (*EventProcessUpdate) ProtoMessage() {}
func (*EventProcessUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 6, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 7, 1}
}
func (m *EventProcessUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9949,7 +10251,7 @@ func (m *EventProcessDone) Reset() { *m = EventProcessDone{} }
func (m *EventProcessDone) String() string { return proto.CompactTextString(m) }
func (*EventProcessDone) ProtoMessage() {}
func (*EventProcessDone) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 6, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 7, 2}
}
func (m *EventProcessDone) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -9992,7 +10294,7 @@ func (m *EventStatus) Reset() { *m = EventStatus{} }
func (m *EventStatus) String() string { return proto.CompactTextString(m) }
func (*EventStatus) ProtoMessage() {}
func (*EventStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8}
}
func (m *EventStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10031,7 +10333,7 @@ func (m *EventStatusThread) Reset() { *m = EventStatusThread{} }
func (m *EventStatusThread) String() string { return proto.CompactTextString(m) }
func (*EventStatusThread) ProtoMessage() {}
func (*EventStatusThread) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0}
}
func (m *EventStatusThread) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10089,7 +10391,7 @@ func (m *EventStatusThreadSummary) Reset() { *m = EventStatusThreadSumma
func (m *EventStatusThreadSummary) String() string { return proto.CompactTextString(m) }
func (*EventStatusThreadSummary) ProtoMessage() {}
func (*EventStatusThreadSummary) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 0}
}
func (m *EventStatusThreadSummary) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10136,7 +10438,7 @@ func (m *EventStatusThreadCafe) Reset() { *m = EventStatusThreadCafe{} }
func (m *EventStatusThreadCafe) String() string { return proto.CompactTextString(m) }
func (*EventStatusThreadCafe) ProtoMessage() {}
func (*EventStatusThreadCafe) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 1}
}
func (m *EventStatusThreadCafe) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10204,7 +10506,7 @@ func (m *EventStatusThreadCafePinStatus) Reset() { *m = EventStatusThrea
func (m *EventStatusThreadCafePinStatus) String() string { return proto.CompactTextString(m) }
func (*EventStatusThreadCafePinStatus) ProtoMessage() {}
func (*EventStatusThreadCafePinStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 1, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 1, 0}
}
func (m *EventStatusThreadCafePinStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10275,7 +10577,7 @@ func (m *EventStatusThreadAccount) Reset() { *m = EventStatusThreadAccou
func (m *EventStatusThreadAccount) String() string { return proto.CompactTextString(m) }
func (*EventStatusThreadAccount) ProtoMessage() {}
func (*EventStatusThreadAccount) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 2}
}
func (m *EventStatusThreadAccount) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10364,7 +10666,7 @@ func (m *EventStatusThreadDevice) Reset() { *m = EventStatusThreadDevice
func (m *EventStatusThreadDevice) String() string { return proto.CompactTextString(m) }
func (*EventStatusThreadDevice) ProtoMessage() {}
func (*EventStatusThreadDevice) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 7, 0, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0, 3}
}
func (m *EventStatusThreadDevice) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10428,7 +10730,7 @@ func (m *EventFile) Reset() { *m = EventFile{} }
func (m *EventFile) String() string { return proto.CompactTextString(m) }
func (*EventFile) ProtoMessage() {}
func (*EventFile) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 8}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 9}
}
func (m *EventFile) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10466,7 +10768,7 @@ func (m *EventFileLimitReached) Reset() { *m = EventFileLimitReached{} }
func (m *EventFileLimitReached) String() string { return proto.CompactTextString(m) }
func (*EventFileLimitReached) ProtoMessage() {}
func (*EventFileLimitReached) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 8, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 9, 0}
}
func (m *EventFileLimitReached) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10518,7 +10820,7 @@ func (m *EventFileSpaceUsage) Reset() { *m = EventFileSpaceUsage{} }
func (m *EventFileSpaceUsage) String() string { return proto.CompactTextString(m) }
func (*EventFileSpaceUsage) ProtoMessage() {}
func (*EventFileSpaceUsage) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 8, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 9, 1}
}
func (m *EventFileSpaceUsage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10569,7 +10871,7 @@ func (m *EventFileLocalUsage) Reset() { *m = EventFileLocalUsage{} }
func (m *EventFileLocalUsage) String() string { return proto.CompactTextString(m) }
func (*EventFileLocalUsage) ProtoMessage() {}
func (*EventFileLocalUsage) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 8, 2}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 9, 2}
}
func (m *EventFileLocalUsage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10613,7 +10915,7 @@ func (m *EventFileLimitUpdated) Reset() { *m = EventFileLimitUpdated{} }
func (m *EventFileLimitUpdated) String() string { return proto.CompactTextString(m) }
func (*EventFileLimitUpdated) ProtoMessage() {}
func (*EventFileLimitUpdated) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 8, 3}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 9, 3}
}
func (m *EventFileLimitUpdated) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10656,7 +10958,7 @@ func (m *EventMembership) Reset() { *m = EventMembership{} }
func (m *EventMembership) String() string { return proto.CompactTextString(m) }
func (*EventMembership) ProtoMessage() {}
func (*EventMembership) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 9}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 10}
}
func (m *EventMembership) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10693,7 +10995,7 @@ func (m *EventMembershipUpdate) Reset() { *m = EventMembershipUpdate{} }
func (m *EventMembershipUpdate) String() string { return proto.CompactTextString(m) }
func (*EventMembershipUpdate) ProtoMessage() {}
func (*EventMembershipUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 9, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 10, 0}
}
func (m *EventMembershipUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10736,7 +11038,7 @@ func (m *EventNotification) Reset() { *m = EventNotification{} }
func (m *EventNotification) String() string { return proto.CompactTextString(m) }
func (*EventNotification) ProtoMessage() {}
func (*EventNotification) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 10}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 11}
}
func (m *EventNotification) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10773,7 +11075,7 @@ func (m *EventNotificationSend) Reset() { *m = EventNotificationSend{} }
func (m *EventNotificationSend) String() string { return proto.CompactTextString(m) }
func (*EventNotificationSend) ProtoMessage() {}
func (*EventNotificationSend) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 10, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 11, 0}
}
func (m *EventNotificationSend) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10817,7 +11119,7 @@ func (m *EventNotificationUpdate) Reset() { *m = EventNotificationUpdate
func (m *EventNotificationUpdate) String() string { return proto.CompactTextString(m) }
func (*EventNotificationUpdate) ProtoMessage() {}
func (*EventNotificationUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 10, 1}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 11, 1}
}
func (m *EventNotificationUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10860,7 +11162,7 @@ func (m *EventPayload) Reset() { *m = EventPayload{} }
func (m *EventPayload) String() string { return proto.CompactTextString(m) }
func (*EventPayload) ProtoMessage() {}
func (*EventPayload) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 11}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 12}
}
func (m *EventPayload) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10897,7 +11199,7 @@ func (m *EventPayloadBroadcast) Reset() { *m = EventPayloadBroadcast{} }
func (m *EventPayloadBroadcast) String() string { return proto.CompactTextString(m) }
func (*EventPayloadBroadcast) ProtoMessage() {}
func (*EventPayloadBroadcast) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 11, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 12, 0}
}
func (m *EventPayloadBroadcast) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10940,7 +11242,7 @@ func (m *EventSpace) Reset() { *m = EventSpace{} }
func (m *EventSpace) String() string { return proto.CompactTextString(m) }
func (*EventSpace) ProtoMessage() {}
func (*EventSpace) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13}
}
func (m *EventSpace) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -10976,7 +11278,7 @@ func (m *EventSpaceSyncStatus) Reset() { *m = EventSpaceSyncStatus{} }
func (m *EventSpaceSyncStatus) String() string { return proto.CompactTextString(m) }
func (*EventSpaceSyncStatus) ProtoMessage() {}
func (*EventSpaceSyncStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 0}
}
func (m *EventSpaceSyncStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11017,7 +11319,7 @@ func (m *EventSpaceSyncStatusUpdate) Reset() { *m = EventSpaceSyncStatus
func (m *EventSpaceSyncStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*EventSpaceSyncStatusUpdate) ProtoMessage() {}
func (*EventSpaceSyncStatusUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 12, 0, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 0, 0}
}
func (m *EventSpaceSyncStatusUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11088,7 +11390,7 @@ func (m *EventP2PStatus) Reset() { *m = EventP2PStatus{} }
func (m *EventP2PStatus) String() string { return proto.CompactTextString(m) }
func (*EventP2PStatus) ProtoMessage() {}
func (*EventP2PStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 13}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 14}
}
func (m *EventP2PStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11127,7 +11429,7 @@ func (m *EventP2PStatusUpdate) Reset() { *m = EventP2PStatusUpdate{} }
func (m *EventP2PStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*EventP2PStatusUpdate) ProtoMessage() {}
func (*EventP2PStatusUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 13, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 14, 0}
}
func (m *EventP2PStatusUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11184,7 +11486,7 @@ func (m *EventImport) Reset() { *m = EventImport{} }
func (m *EventImport) String() string { return proto.CompactTextString(m) }
func (*EventImport) ProtoMessage() {}
func (*EventImport) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 14}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 15}
}
func (m *EventImport) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11223,7 +11525,7 @@ func (m *EventImportFinish) Reset() { *m = EventImportFinish{} }
func (m *EventImportFinish) String() string { return proto.CompactTextString(m) }
func (*EventImportFinish) ProtoMessage() {}
func (*EventImportFinish) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 14, 0}
+ return fileDescriptor_a966342d378ae5f5, []int{0, 15, 0}
}
func (m *EventImportFinish) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -11508,6 +11810,11 @@ func init() {
proto.RegisterEnum("anytype.ModelProcessState", ModelProcessState_name, ModelProcessState_value)
proto.RegisterType((*Event)(nil), "anytype.Event")
proto.RegisterType((*EventMessage)(nil), "anytype.Event.Message")
+ proto.RegisterType((*EventChat)(nil), "anytype.Event.Chat")
+ proto.RegisterType((*EventChatAdd)(nil), "anytype.Event.Chat.Add")
+ proto.RegisterType((*EventChatDelete)(nil), "anytype.Event.Chat.Delete")
+ proto.RegisterType((*EventChatUpdate)(nil), "anytype.Event.Chat.Update")
+ proto.RegisterType((*EventChatUpdateReactions)(nil), "anytype.Event.Chat.UpdateReactions")
proto.RegisterType((*EventAccount)(nil), "anytype.Event.Account")
proto.RegisterType((*EventAccountShow)(nil), "anytype.Event.Account.Show")
proto.RegisterType((*EventAccountDetails)(nil), "anytype.Event.Account.Details")
@@ -11709,377 +12016,387 @@ func init() {
func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) }
var fileDescriptor_a966342d378ae5f5 = []byte{
- // 5908 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x49, 0x8c, 0x1c, 0xc9,
- 0x75, 0x76, 0xed, 0xcb, 0xeb, 0x85, 0xc5, 0x18, 0x0e, 0x27, 0x27, 0xd9, 0xc3, 0xe1, 0x34, 0x57,
- 0x71, 0x38, 0x45, 0x0e, 0xb7, 0xa6, 0x28, 0x0e, 0xc9, 0xde, 0x38, 0x5d, 0x5c, 0x9a, 0xad, 0x68,
- 0x92, 0x1a, 0x8d, 0x04, 0x41, 0xd9, 0x95, 0xd1, 0xd5, 0x29, 0x66, 0x67, 0x96, 0x32, 0xb3, 0x9b,
- 0x6c, 0xe9, 0xff, 0x65, 0xc1, 0x0b, 0x0c, 0x03, 0x36, 0xec, 0x83, 0x21, 0x1b, 0xbe, 0x18, 0x36,
- 0x6c, 0xc0, 0x80, 0x0d, 0xc3, 0x86, 0x0f, 0x96, 0x2f, 0x86, 0x01, 0xc3, 0x80, 0x57, 0x40, 0xbe,
- 0xf9, 0x26, 0x61, 0x74, 0xf1, 0xc1, 0x3e, 0xc8, 0x06, 0x0c, 0x9f, 0x0c, 0x23, 0x96, 0xcc, 0x8c,
- 0xc8, 0xa5, 0xb2, 0x4a, 0x33, 0xf2, 0x02, 0xeb, 0x54, 0x15, 0x11, 0xef, 0x7d, 0xb1, 0xbc, 0xf7,
- 0x22, 0x5e, 0xbc, 0x88, 0x48, 0x38, 0x3a, 0xdc, 0xba, 0x38, 0xf4, 0xdc, 0xc0, 0xf5, 0x2f, 0x92,
- 0x7d, 0xe2, 0x04, 0x7e, 0x97, 0xa5, 0x50, 0xd3, 0x70, 0x0e, 0x82, 0x83, 0x21, 0xd1, 0x4f, 0x0d,
- 0x9f, 0x0f, 0x2e, 0xda, 0xd6, 0xd6, 0xc5, 0xe1, 0xd6, 0xc5, 0x5d, 0xd7, 0x24, 0x76, 0x48, 0xce,
- 0x12, 0x82, 0x5c, 0x9f, 0x1b, 0xb8, 0xee, 0xc0, 0x26, 0xbc, 0x6c, 0x6b, 0x6f, 0xfb, 0xa2, 0x1f,
- 0x78, 0x7b, 0xfd, 0x80, 0x97, 0xce, 0xff, 0xee, 0x9f, 0x94, 0xa1, 0xbe, 0x4a, 0xe1, 0xd1, 0x65,
- 0x68, 0xed, 0x12, 0xdf, 0x37, 0x06, 0xc4, 0xd7, 0xca, 0x27, 0xaa, 0xe7, 0xa6, 0x2e, 0x1f, 0xed,
- 0x8a, 0xaa, 0xba, 0x8c, 0xa2, 0xfb, 0x88, 0x17, 0xe3, 0x88, 0x0e, 0xcd, 0x41, 0xbb, 0xef, 0x3a,
- 0x01, 0x79, 0x19, 0xf4, 0x4c, 0xad, 0x72, 0xa2, 0x7c, 0xae, 0x8d, 0xe3, 0x0c, 0x74, 0x15, 0xda,
- 0x96, 0x63, 0x05, 0x96, 0x11, 0xb8, 0x9e, 0x56, 0x3d, 0x51, 0x56, 0x20, 0x59, 0x23, 0xbb, 0x8b,
- 0xfd, 0xbe, 0xbb, 0xe7, 0x04, 0x38, 0x26, 0x44, 0x1a, 0x34, 0x03, 0xcf, 0xe8, 0x93, 0x9e, 0xa9,
- 0xd5, 0x18, 0x62, 0x98, 0xd4, 0xff, 0xb8, 0x0b, 0x4d, 0xd1, 0x06, 0x74, 0x07, 0xa6, 0x0c, 0xce,
- 0xbb, 0xb9, 0xe3, 0xbe, 0xd0, 0xca, 0x0c, 0xfd, 0x58, 0xa2, 0xc1, 0x02, 0xbd, 0x4b, 0x49, 0xd6,
- 0x4a, 0x58, 0xe6, 0x40, 0x3d, 0x98, 0x15, 0xc9, 0x15, 0x12, 0x18, 0x96, 0xed, 0x6b, 0x7f, 0xc5,
- 0x41, 0x8e, 0xe7, 0x80, 0x08, 0xb2, 0xb5, 0x12, 0x4e, 0x30, 0xa2, 0xcf, 0xc3, 0x2b, 0x22, 0x67,
- 0xd9, 0x75, 0xb6, 0xad, 0xc1, 0xd3, 0xa1, 0x69, 0x04, 0x44, 0xfb, 0x6b, 0x8e, 0x77, 0x2a, 0x07,
- 0x8f, 0xd3, 0x76, 0x39, 0xf1, 0x5a, 0x09, 0x67, 0x61, 0xa0, 0x7b, 0x30, 0x23, 0xb2, 0x05, 0xe8,
- 0xdf, 0x70, 0xd0, 0x37, 0x72, 0x40, 0x23, 0x34, 0x95, 0x0d, 0x7d, 0x01, 0x8e, 0x88, 0x8c, 0x87,
- 0x96, 0xf3, 0x7c, 0x79, 0xc7, 0xb0, 0x6d, 0xe2, 0x0c, 0x88, 0xf6, 0xb7, 0xa3, 0xdb, 0xa8, 0x10,
- 0xaf, 0x95, 0x70, 0x26, 0x08, 0x7a, 0x0c, 0x1d, 0x77, 0xeb, 0x2b, 0xa4, 0x1f, 0x0e, 0xc8, 0x26,
- 0x09, 0xb4, 0x0e, 0xc3, 0x7d, 0x2b, 0x81, 0xfb, 0x98, 0x91, 0x85, 0x43, 0xd9, 0xdd, 0x24, 0xc1,
- 0x5a, 0x09, 0xa7, 0x98, 0xd1, 0x53, 0x40, 0x4a, 0xde, 0xe2, 0x2e, 0x71, 0x4c, 0xed, 0x32, 0x83,
- 0x3c, 0x39, 0x1a, 0x92, 0x91, 0xae, 0x95, 0x70, 0x06, 0x40, 0x0a, 0xf6, 0xa9, 0xe3, 0x93, 0x40,
- 0xbb, 0x32, 0x0e, 0x2c, 0x23, 0x4d, 0xc1, 0xb2, 0x5c, 0x3a, 0xb6, 0x3c, 0x17, 0x13, 0xdb, 0x08,
- 0x2c, 0xd7, 0x11, 0xed, 0xbd, 0xca, 0x80, 0x4f, 0x67, 0x03, 0x47, 0xb4, 0x51, 0x8b, 0x33, 0x41,
- 0xd0, 0x97, 0xe0, 0xd5, 0x44, 0x3e, 0x26, 0xbb, 0xee, 0x3e, 0xd1, 0xae, 0x31, 0xf4, 0x33, 0x45,
- 0xe8, 0x9c, 0x7a, 0xad, 0x84, 0xb3, 0x61, 0xd0, 0x12, 0x4c, 0x87, 0x05, 0x0c, 0xf6, 0x3a, 0x83,
- 0x9d, 0xcb, 0x83, 0x15, 0x60, 0x0a, 0x0f, 0xb5, 0x45, 0x9e, 0x5e, 0xb6, 0x5d, 0x9f, 0x68, 0x8b,
- 0x99, 0xb6, 0x28, 0x20, 0x18, 0x09, 0xb5, 0x45, 0x89, 0x43, 0xee, 0xa4, 0x1f, 0x78, 0x56, 0x9f,
- 0x35, 0x90, 0x6a, 0xd1, 0xc2, 0xe8, 0x4e, 0xc6, 0xc4, 0x42, 0x95, 0xb2, 0x61, 0x10, 0x86, 0x43,
- 0xfe, 0xde, 0x96, 0xdf, 0xf7, 0xac, 0x21, 0xcd, 0x5b, 0x34, 0x4d, 0xed, 0xd6, 0x28, 0xe4, 0x4d,
- 0x89, 0xb8, 0xbb, 0x68, 0x52, 0xe9, 0x24, 0x01, 0xd0, 0x17, 0x00, 0xc9, 0x59, 0x62, 0xf8, 0xde,
- 0x63, 0xb0, 0x9f, 0x1a, 0x03, 0x36, 0x1a, 0xcb, 0x0c, 0x18, 0x64, 0xc0, 0x11, 0x39, 0x77, 0xc3,
- 0xf5, 0x2d, 0xfa, 0xab, 0xdd, 0x66, 0xf0, 0x6f, 0x8f, 0x01, 0x1f, 0xb2, 0x50, 0xc5, 0xca, 0x82,
- 0x4a, 0x56, 0xb1, 0x4c, 0xcd, 0x9a, 0x78, 0xbe, 0x76, 0x67, 0xec, 0x2a, 0x42, 0x96, 0x64, 0x15,
- 0x61, 0x7e, 0x72, 0x88, 0xde, 0xf7, 0xdc, 0xbd, 0xa1, 0xaf, 0xdd, 0x1d, 0x7b, 0x88, 0x38, 0x43,
- 0x72, 0x88, 0x78, 0x2e, 0xba, 0x0e, 0xad, 0x2d, 0xdb, 0xed, 0x3f, 0xa7, 0xc2, 0xac, 0x30, 0x48,
- 0x2d, 0x01, 0xb9, 0x44, 0x8b, 0x85, 0xf8, 0x22, 0x5a, 0xaa, 0xac, 0xec, 0xff, 0x0a, 0xb1, 0x49,
- 0x40, 0xc4, 0xb2, 0x74, 0x2c, 0x93, 0x95, 0x93, 0x50, 0x65, 0x95, 0x38, 0xd0, 0x0a, 0x4c, 0x6d,
- 0x5b, 0x36, 0xf1, 0x9f, 0x0e, 0x6d, 0xd7, 0xe0, 0x6b, 0xd4, 0xd4, 0xe5, 0x13, 0x99, 0x00, 0xf7,
- 0x62, 0x3a, 0x8a, 0x22, 0xb1, 0xa1, 0xdb, 0xd0, 0xde, 0x35, 0xbc, 0xe7, 0x7e, 0xcf, 0xd9, 0x76,
- 0xb5, 0x7a, 0xe6, 0xc2, 0xc3, 0x31, 0x1e, 0x85, 0x54, 0x6b, 0x25, 0x1c, 0xb3, 0xd0, 0xe5, 0x8b,
- 0x35, 0x6a, 0x93, 0x04, 0xf7, 0x2c, 0x62, 0x9b, 0xbe, 0xd6, 0x60, 0x20, 0x6f, 0x66, 0x82, 0x6c,
- 0x92, 0xa0, 0xcb, 0xc9, 0xe8, 0xf2, 0xa5, 0x32, 0xa2, 0x0f, 0xe0, 0x95, 0x30, 0x67, 0x79, 0xc7,
- 0xb2, 0x4d, 0x8f, 0x38, 0x3d, 0xd3, 0xd7, 0x9a, 0x99, 0x2b, 0x43, 0x8c, 0x27, 0xd1, 0xd2, 0xd5,
- 0x2b, 0x03, 0x82, 0xce, 0x8c, 0x61, 0xb6, 0x6c, 0x92, 0x5a, 0x2b, 0x73, 0x66, 0x8c, 0xa1, 0x65,
- 0x62, 0xaa, 0x5d, 0x59, 0x20, 0xc8, 0x84, 0xd7, 0xc2, 0xfc, 0x25, 0xa3, 0xff, 0x7c, 0xe0, 0xb9,
- 0x7b, 0x8e, 0xb9, 0xec, 0xda, 0xae, 0xa7, 0xb5, 0x19, 0xfe, 0xb9, 0x5c, 0xfc, 0x04, 0xfd, 0x5a,
- 0x09, 0xe7, 0x41, 0xa1, 0x65, 0x98, 0x0e, 0x8b, 0x9e, 0x90, 0x97, 0x81, 0x06, 0x99, 0xcb, 0x6f,
- 0x0c, 0x4d, 0x89, 0xe8, 0x04, 0x29, 0x33, 0xc9, 0x20, 0x54, 0x25, 0xb4, 0xa9, 0x02, 0x10, 0x4a,
- 0x24, 0x83, 0xd0, 0xb4, 0x0c, 0x42, 0x97, 0x5f, 0x6d, 0xa6, 0x00, 0x84, 0x12, 0xc9, 0x20, 0x34,
- 0x4d, 0x97, 0xea, 0xa8, 0xa7, 0xae, 0xfb, 0x9c, 0xea, 0x93, 0x36, 0x9b, 0xb9, 0x54, 0x4b, 0xa3,
- 0x25, 0x08, 0xe9, 0x52, 0x9d, 0x64, 0xa6, 0x0e, 0x4a, 0x98, 0xb7, 0x68, 0x5b, 0x03, 0x47, 0x3b,
- 0x34, 0x42, 0x97, 0x29, 0x1a, 0xa3, 0xa2, 0x0e, 0x8a, 0xc2, 0x86, 0xee, 0x0a, 0xb3, 0xdc, 0x24,
- 0xc1, 0x8a, 0xb5, 0xaf, 0x1d, 0xce, 0x5c, 0x86, 0x62, 0x94, 0x15, 0x6b, 0x3f, 0xb2, 0x4b, 0xce,
- 0x22, 0x77, 0x2d, 0x5c, 0xe4, 0xb4, 0x57, 0x0b, 0xba, 0x16, 0x12, 0xca, 0x5d, 0x0b, 0xf3, 0xe4,
- 0xae, 0x3d, 0x34, 0x02, 0xf2, 0x52, 0x7b, 0xbd, 0xa0, 0x6b, 0x8c, 0x4a, 0xee, 0x1a, 0xcb, 0xa0,
- 0xab, 0x5b, 0x98, 0xf1, 0x8c, 0x78, 0x81, 0xd5, 0x37, 0x6c, 0x3e, 0x54, 0xa7, 0x32, 0xd7, 0xa0,
- 0x18, 0x4f, 0xa1, 0xa6, 0xab, 0x5b, 0x26, 0x8c, 0xdc, 0xf1, 0x27, 0xc6, 0x96, 0x4d, 0xb0, 0xfb,
- 0x42, 0x3b, 0x5d, 0xd0, 0xf1, 0x90, 0x50, 0xee, 0x78, 0x98, 0x27, 0xcf, 0x2d, 0x9f, 0xb3, 0xcc,
- 0x01, 0x09, 0xb4, 0x73, 0x05, 0x73, 0x0b, 0x27, 0x93, 0xe7, 0x16, 0x9e, 0x13, 0xcd, 0x00, 0x2b,
- 0x46, 0x60, 0xec, 0x5b, 0xe4, 0xc5, 0x33, 0x8b, 0xbc, 0xa0, 0x0b, 0xfb, 0x2b, 0x23, 0x66, 0x80,
- 0x90, 0xb6, 0x2b, 0x88, 0xa3, 0x19, 0x20, 0x01, 0x12, 0xcd, 0x00, 0x72, 0xbe, 0x98, 0xd6, 0x8f,
- 0x8c, 0x98, 0x01, 0x14, 0xfc, 0x68, 0x8e, 0xcf, 0x83, 0x42, 0x06, 0x1c, 0x4d, 0x15, 0x3d, 0xf6,
- 0x4c, 0xe2, 0x69, 0x6f, 0xb0, 0x4a, 0xce, 0x16, 0x57, 0xc2, 0xc8, 0xd7, 0x4a, 0x38, 0x07, 0x28,
- 0x55, 0xc5, 0xa6, 0xbb, 0xe7, 0xf5, 0x09, 0x1d, 0xa7, 0x93, 0xe3, 0x54, 0x11, 0x91, 0xa7, 0xaa,
- 0x88, 0x4a, 0xd0, 0x3e, 0xbc, 0x11, 0x95, 0xd0, 0x8a, 0xd9, 0x2a, 0xca, 0x6a, 0x17, 0x1b, 0x8b,
- 0x33, 0xac, 0xa6, 0xee, 0xe8, 0x9a, 0x92, 0x5c, 0x6b, 0x25, 0x3c, 0x1a, 0x16, 0x1d, 0xc0, 0x71,
- 0x85, 0x80, 0xaf, 0xf3, 0x72, 0xc5, 0x67, 0x59, 0xc5, 0x17, 0x47, 0x57, 0x9c, 0x62, 0x5b, 0x2b,
- 0xe1, 0x02, 0x60, 0x34, 0x84, 0x63, 0xca, 0x60, 0x84, 0x86, 0x2d, 0x54, 0xe4, 0xff, 0xb1, 0x7a,
- 0x2f, 0x8c, 0xae, 0x57, 0xe5, 0x59, 0x2b, 0xe1, 0x51, 0x90, 0x68, 0x00, 0x5a, 0x66, 0x31, 0x95,
- 0xe4, 0xd7, 0x33, 0xdd, 0x9e, 0x9c, 0xea, 0xb8, 0x2c, 0x73, 0xc1, 0x32, 0x35, 0x5f, 0x0c, 0xe7,
- 0xff, 0x1f, 0x57, 0xf3, 0xa3, 0x71, 0xcc, 0x83, 0x52, 0x64, 0x47, 0x8b, 0x9e, 0x18, 0xde, 0x80,
- 0x04, 0x7c, 0xa0, 0x7b, 0x26, 0xed, 0xd4, 0x37, 0xc6, 0x91, 0x5d, 0x8a, 0x4d, 0x91, 0x5d, 0x26,
- 0x30, 0xf2, 0x61, 0x4e, 0xa1, 0xe8, 0xf9, 0xcb, 0xae, 0x6d, 0x93, 0x7e, 0x38, 0x9a, 0x3f, 0xc1,
- 0x2a, 0x7e, 0x67, 0x74, 0xc5, 0x09, 0xa6, 0xb5, 0x12, 0x1e, 0x09, 0x9a, 0xea, 0xef, 0x63, 0xdb,
- 0x4c, 0xe8, 0x8c, 0x36, 0x96, 0xae, 0x26, 0xd9, 0x52, 0xfd, 0x4d, 0x51, 0xa4, 0x74, 0x55, 0xa2,
- 0xa0, 0xdd, 0x7d, 0x6d, 0x1c, 0x5d, 0x55, 0x79, 0x52, 0xba, 0xaa, 0x16, 0xd3, 0xd5, 0x6d, 0xcf,
- 0x27, 0x1e, 0xc3, 0xb8, 0xef, 0x5a, 0x8e, 0xf6, 0x66, 0xe6, 0xea, 0xf6, 0xd4, 0x27, 0x9e, 0xa8,
- 0x88, 0x52, 0xd1, 0xd5, 0x4d, 0x61, 0x53, 0x70, 0x1e, 0x92, 0xed, 0x40, 0x3b, 0x51, 0x84, 0x43,
- 0xa9, 0x14, 0x1c, 0x9a, 0x41, 0x57, 0x8a, 0x28, 0x63, 0x93, 0x50, 0xa9, 0x60, 0xc3, 0x19, 0x10,
- 0xed, 0xad, 0xcc, 0x95, 0x42, 0x82, 0x93, 0x88, 0xe9, 0x4a, 0x91, 0x05, 0x42, 0x77, 0xfe, 0x51,
- 0x3e, 0xf5, 0xc8, 0x38, 0xf4, 0x7c, 0xe6, 0xce, 0x5f, 0x82, 0x8e, 0x48, 0xe9, 0x1e, 0x24, 0x0d,
- 0x80, 0x3e, 0x05, 0xb5, 0xa1, 0xe5, 0x0c, 0x34, 0x93, 0x01, 0xbd, 0x92, 0x00, 0xda, 0xb0, 0x9c,
- 0xc1, 0x5a, 0x09, 0x33, 0x12, 0x74, 0x0b, 0x60, 0xe8, 0xb9, 0x7d, 0xe2, 0xfb, 0xeb, 0xe4, 0x85,
- 0x46, 0x18, 0x83, 0x9e, 0x64, 0xe0, 0x04, 0xdd, 0x75, 0x42, 0xd7, 0x65, 0x89, 0x1e, 0xad, 0xc2,
- 0x8c, 0x48, 0x09, 0x2b, 0xdf, 0xce, 0x74, 0xfe, 0x42, 0x80, 0x38, 0x0a, 0xa4, 0x70, 0xd1, 0xbd,
- 0x8f, 0xc8, 0x58, 0x71, 0x1d, 0xa2, 0x0d, 0x32, 0xf7, 0x3e, 0x21, 0x08, 0x25, 0xa1, 0x3e, 0x96,
- 0xc4, 0x81, 0x96, 0x60, 0x3a, 0xd8, 0xf1, 0x88, 0x61, 0x6e, 0x06, 0x46, 0xb0, 0xe7, 0x6b, 0x4e,
- 0xa6, 0x9b, 0xc6, 0x0b, 0xbb, 0x4f, 0x18, 0x25, 0x75, 0x41, 0x65, 0x1e, 0xb4, 0x0e, 0x1d, 0xba,
- 0x11, 0x7a, 0x68, 0xed, 0x5a, 0x01, 0x26, 0x46, 0x7f, 0x87, 0x98, 0x9a, 0x9b, 0xb9, 0x89, 0xa2,
- 0x6e, 0x6f, 0x57, 0xa6, 0xa3, 0xde, 0x4a, 0x92, 0x17, 0xad, 0xc1, 0x2c, 0xcd, 0xdb, 0x1c, 0x1a,
- 0x7d, 0xf2, 0xd4, 0x37, 0x06, 0x44, 0x1b, 0x66, 0x6a, 0x20, 0x43, 0x8b, 0xa9, 0xa8, 0xb3, 0xa2,
- 0xf2, 0x85, 0x48, 0x0f, 0xdd, 0xbe, 0x61, 0x73, 0xa4, 0xaf, 0xe6, 0x23, 0xc5, 0x54, 0x21, 0x52,
- 0x9c, 0xa3, 0xf4, 0x91, 0x8f, 0xbd, 0xa9, 0xed, 0x17, 0xf4, 0x51, 0xd0, 0x29, 0x7d, 0x14, 0x79,
- 0x14, 0xcf, 0x71, 0x03, 0x6b, 0xdb, 0xea, 0x0b, 0xfb, 0x75, 0x4c, 0xcd, 0xcb, 0xc4, 0x5b, 0x97,
- 0xc8, 0xba, 0x9b, 0x3c, 0xb2, 0x94, 0xe2, 0x45, 0x4f, 0x00, 0xc9, 0x79, 0x42, 0xa9, 0x7c, 0x86,
- 0x38, 0x3f, 0x0a, 0x31, 0xd2, 0xac, 0x0c, 0x7e, 0xda, 0xca, 0xa1, 0x71, 0x40, 0xb7, 0xb7, 0x4b,
- 0x9e, 0x6b, 0x98, 0x7d, 0xc3, 0x0f, 0xb4, 0x20, 0xb3, 0x95, 0x1b, 0x9c, 0xac, 0x1b, 0xd1, 0xd1,
- 0x56, 0x26, 0x79, 0x29, 0xde, 0x2e, 0xd9, 0xdd, 0x22, 0x9e, 0xbf, 0x63, 0x0d, 0x45, 0x1b, 0xf7,
- 0x32, 0xf1, 0x1e, 0x45, 0x64, 0x71, 0x0b, 0x53, 0xbc, 0xd4, 0x11, 0xf7, 0xa9, 0xb4, 0x37, 0x0f,
- 0x9c, 0x3e, 0x57, 0x46, 0x01, 0xfa, 0x22, 0xd3, 0x11, 0x67, 0x9a, 0xd1, 0x8d, 0x89, 0x63, 0xe8,
- 0x6c, 0x18, 0xf4, 0x00, 0x0e, 0x0d, 0x2f, 0x0f, 0x15, 0xe4, 0x97, 0x99, 0x8e, 0xf3, 0xc6, 0xe5,
- 0x8d, 0x24, 0x64, 0x92, 0x93, 0x9a, 0x9a, 0xb5, 0x3b, 0x74, 0xbd, 0xe0, 0x9e, 0xe5, 0x58, 0xfe,
- 0x8e, 0x76, 0x90, 0x69, 0x6a, 0x3d, 0x46, 0xd2, 0xe5, 0x34, 0xd4, 0xd4, 0x64, 0x9e, 0xa5, 0x26,
- 0xd4, 0xf7, 0x0d, 0x7b, 0x8f, 0xe8, 0x7f, 0x58, 0x87, 0xa6, 0x88, 0xe9, 0xea, 0xeb, 0x50, 0x63,
- 0x01, 0xf0, 0x23, 0x50, 0xb7, 0x1c, 0x93, 0xbc, 0x64, 0xb1, 0xf3, 0x3a, 0xe6, 0x09, 0x74, 0x09,
- 0x9a, 0x22, 0xc6, 0x2b, 0xa2, 0x2a, 0x79, 0x11, 0xfb, 0x90, 0x4c, 0xff, 0x10, 0x9a, 0x61, 0x20,
- 0x7c, 0x0e, 0xda, 0x43, 0xcf, 0xa5, 0xda, 0xdb, 0x33, 0x19, 0x6c, 0x1b, 0xc7, 0x19, 0xe8, 0x5d,
- 0x68, 0x9a, 0x22, 0xd4, 0xce, 0xa1, 0x5f, 0xeb, 0xf2, 0xb3, 0x89, 0x6e, 0x78, 0x36, 0xd1, 0xdd,
- 0x64, 0x67, 0x13, 0x38, 0xa4, 0xd3, 0xbf, 0x59, 0x86, 0x06, 0x8f, 0x87, 0xeb, 0xfb, 0xd0, 0x10,
- 0x23, 0x73, 0x0d, 0x1a, 0x7d, 0x96, 0xa7, 0x25, 0x63, 0xe1, 0x4a, 0x0b, 0x45, 0x80, 0x1d, 0x0b,
- 0x62, 0xca, 0xe6, 0xf3, 0x59, 0xab, 0x32, 0x92, 0x8d, 0x4b, 0x01, 0x0b, 0xe2, 0xff, 0xb6, 0x7a,
- 0xff, 0xa3, 0x0c, 0x33, 0x6a, 0x98, 0x7d, 0x0e, 0xda, 0xfd, 0x28, 0x70, 0x2f, 0x46, 0xb7, 0x2f,
- 0x05, 0xe1, 0xa1, 0x6f, 0x5b, 0xc4, 0x09, 0x58, 0x44, 0xa9, 0x92, 0xe9, 0xa8, 0x64, 0x86, 0xf5,
- 0xbb, 0xcb, 0x11, 0x1b, 0x96, 0x20, 0xf4, 0x6f, 0x00, 0xc4, 0x25, 0xe8, 0x44, 0xb4, 0x74, 0xac,
- 0x1b, 0xbb, 0x61, 0xf5, 0x72, 0x96, 0x44, 0xb1, 0x61, 0x04, 0x3b, 0xe2, 0x34, 0x48, 0xce, 0x42,
- 0x17, 0xe0, 0xb0, 0x6f, 0x0d, 0x1c, 0x23, 0xd8, 0xf3, 0xc8, 0x33, 0xe2, 0x59, 0xdb, 0x16, 0x31,
- 0x59, 0x00, 0xae, 0x85, 0xd3, 0x05, 0xfa, 0xcf, 0xb5, 0xa1, 0xc1, 0x5d, 0x42, 0xfd, 0xdf, 0x2a,
- 0x91, 0x8e, 0xe9, 0x7f, 0x5e, 0x86, 0x3a, 0x0f, 0x8d, 0xcf, 0x42, 0xc5, 0x0a, 0xd5, 0xac, 0x62,
- 0x99, 0xe8, 0x9e, 0xac, 0x5f, 0xd5, 0x0c, 0x7f, 0x29, 0xeb, 0xa8, 0xa0, 0xfb, 0x80, 0x1c, 0x3c,
- 0xa3, 0x36, 0x12, 0x29, 0x1d, 0x3a, 0x0a, 0x0d, 0x7f, 0x6f, 0xab, 0x67, 0xfa, 0x5a, 0xf5, 0x44,
- 0xf5, 0x5c, 0x1b, 0x8b, 0x94, 0x7e, 0x1f, 0x5a, 0x21, 0x31, 0xea, 0x40, 0xf5, 0x39, 0x39, 0x10,
- 0x95, 0xd3, 0xbf, 0xe8, 0x82, 0xb0, 0xb5, 0xc8, 0x6c, 0x92, 0xba, 0xcd, 0x6b, 0x11, 0x06, 0xf9,
- 0x65, 0xa8, 0x52, 0x27, 0x2c, 0xd9, 0x85, 0xc9, 0x4d, 0x24, 0xb7, 0xb5, 0xcb, 0x50, 0xe7, 0xc7,
- 0x13, 0xc9, 0x3a, 0x10, 0xd4, 0x9e, 0x93, 0x03, 0x3e, 0x46, 0x6d, 0xcc, 0xfe, 0xe7, 0x82, 0xfc,
- 0x59, 0x15, 0xa6, 0xe5, 0x90, 0xac, 0xbe, 0x0a, 0xd5, 0x45, 0x33, 0x3d, 0xf4, 0x1a, 0x34, 0x8d,
- 0xed, 0x80, 0x78, 0xd1, 0x29, 0x60, 0x98, 0xa4, 0xb3, 0x0c, 0xc3, 0x62, 0x72, 0x6e, 0x63, 0x9e,
- 0xd0, 0xbb, 0xd0, 0x10, 0x91, 0xee, 0x24, 0x52, 0x44, 0x5f, 0x91, 0xe9, 0xef, 0x43, 0x2b, 0x0a,
- 0x5c, 0x7f, 0xdc, 0xba, 0x3d, 0x68, 0x45, 0x11, 0xea, 0x23, 0x50, 0x0f, 0xdc, 0xc0, 0xb0, 0x19,
- 0x5c, 0x15, 0xf3, 0x04, 0x35, 0x34, 0x87, 0xbc, 0x0c, 0x96, 0xa3, 0x59, 0xb0, 0x8a, 0xe3, 0x0c,
- 0x3e, 0xc9, 0x91, 0x7d, 0x5e, 0x5a, 0xe5, 0xa5, 0x51, 0x46, 0x5c, 0x67, 0x4d, 0xae, 0xf3, 0x00,
- 0x1a, 0x22, 0x6c, 0x1d, 0x95, 0x97, 0xa5, 0x72, 0xb4, 0x08, 0xf5, 0x01, 0x2d, 0x17, 0x52, 0x7f,
- 0x3b, 0x31, 0x45, 0x70, 0x6f, 0x74, 0xd9, 0x75, 0x02, 0xaa, 0xc6, 0xea, 0x6e, 0x1c, 0x73, 0x4e,
- 0x2a, 0x42, 0x8f, 0x9f, 0x41, 0x70, 0x8b, 0x12, 0x29, 0xfd, 0xb7, 0xcb, 0xd0, 0x8e, 0x0e, 0x7d,
- 0xf4, 0x0f, 0xf3, 0x8c, 0x67, 0x11, 0x66, 0x3c, 0x41, 0x45, 0x67, 0x87, 0xd0, 0x84, 0x8e, 0x25,
- 0x5a, 0x82, 0x25, 0x1a, 0xac, 0x72, 0xe8, 0xb7, 0x72, 0x85, 0x3a, 0x0f, 0xd3, 0x21, 0xe9, 0x83,
- 0x58, 0xf5, 0x94, 0x3c, 0x5d, 0x8f, 0xb8, 0x3b, 0x50, 0xb5, 0x4c, 0x7e, 0x06, 0xdd, 0xc6, 0xf4,
- 0xaf, 0xbe, 0x0d, 0xd3, 0x72, 0xe8, 0x57, 0x7f, 0x96, 0x6d, 0x3d, 0x77, 0x68, 0x35, 0x52, 0x98,
- 0xb9, 0x92, 0xf0, 0x6f, 0xc3, 0x2e, 0xc4, 0x24, 0x58, 0x61, 0xd0, 0x5f, 0x83, 0x3a, 0x3f, 0x90,
- 0x4a, 0x20, 0xeb, 0xbf, 0xd6, 0x87, 0x3a, 0x13, 0x82, 0x7e, 0x85, 0x1b, 0xc0, 0x05, 0x68, 0xb0,
- 0xcd, 0x55, 0x78, 0x54, 0x7e, 0x24, 0x4b, 0x62, 0x58, 0xd0, 0xe8, 0xcb, 0x30, 0x25, 0x1d, 0x05,
- 0x50, 0x8d, 0x65, 0x05, 0x91, 0x16, 0x84, 0x49, 0xa4, 0x43, 0x8b, 0x2e, 0x96, 0x62, 0x02, 0xa5,
- 0xfd, 0x8f, 0xd2, 0xfa, 0x29, 0x68, 0x88, 0xcd, 0xa2, 0x2e, 0x8e, 0x3e, 0x7a, 0xd1, 0x28, 0x45,
- 0x69, 0xfd, 0x8b, 0xd0, 0x8e, 0x4e, 0x0c, 0xd0, 0x63, 0x98, 0x16, 0x27, 0x06, 0x7c, 0xc3, 0x43,
- 0x89, 0x67, 0x0b, 0xb4, 0x8b, 0xee, 0x6e, 0xd8, 0xa1, 0x43, 0xf7, 0xc9, 0xc1, 0x90, 0x60, 0x05,
- 0x40, 0xff, 0x99, 0x73, 0x6c, 0xe4, 0xf5, 0x21, 0xb4, 0xa2, 0x30, 0x69, 0x52, 0x0a, 0x0b, 0x7c,
- 0x6a, 0xac, 0x14, 0xc6, 0xf8, 0x39, 0x3f, 0x9d, 0x80, 0xd9, 0x0c, 0xaa, 0x1f, 0x83, 0xea, 0x03,
- 0x72, 0x40, 0x2d, 0x84, 0x4f, 0xa4, 0xc2, 0x42, 0xf8, 0x84, 0xd9, 0x83, 0x86, 0x38, 0xae, 0x48,
- 0xd6, 0x77, 0x11, 0x1a, 0xdb, 0xfc, 0x04, 0xa4, 0x60, 0xca, 0x14, 0x64, 0xfa, 0x1d, 0x98, 0x92,
- 0x0f, 0x29, 0x92, 0x78, 0x27, 0x60, 0xaa, 0x2f, 0x1d, 0x83, 0x70, 0x31, 0xc8, 0x59, 0x3a, 0x51,
- 0xd5, 0x31, 0x85, 0xb0, 0x9a, 0xa9, 0x87, 0x6f, 0x65, 0x0e, 0xfb, 0x08, 0x6d, 0x7c, 0x00, 0x87,
- 0x92, 0xa7, 0x11, 0xc9, 0x9a, 0xce, 0xc1, 0xa1, 0xad, 0xc4, 0xd9, 0x07, 0x9f, 0x03, 0x93, 0xd9,
- 0x7a, 0x0f, 0xea, 0x3c, 0x5a, 0x9c, 0x84, 0xb8, 0x04, 0x75, 0x83, 0x45, 0xa3, 0x29, 0xe3, 0xac,
- 0xb4, 0x27, 0x95, 0x5b, 0xc9, 0x58, 0x31, 0x27, 0xd4, 0x2d, 0x98, 0x51, 0x03, 0xd0, 0x49, 0xc8,
- 0x35, 0x98, 0xd9, 0x57, 0x02, 0xdd, 0x1c, 0x7a, 0x3e, 0x13, 0x5a, 0x81, 0xc2, 0x2a, 0xa3, 0xfe,
- 0x93, 0x0d, 0xa8, 0xb1, 0x13, 0x94, 0x64, 0x15, 0xd7, 0xa1, 0x16, 0x90, 0x97, 0xa1, 0x8f, 0x3a,
- 0x3f, 0xf2, 0x38, 0x86, 0x6f, 0xe3, 0x19, 0x3d, 0xfa, 0x34, 0xd4, 0xfd, 0xe0, 0xc0, 0x0e, 0xcf,
- 0xfd, 0x4e, 0x8e, 0x66, 0xdc, 0xa4, 0xa4, 0x98, 0x73, 0x50, 0x56, 0x66, 0x0b, 0xe2, 0xc4, 0xaf,
- 0x80, 0x95, 0x19, 0x21, 0xe6, 0x1c, 0xe8, 0x0e, 0x34, 0xfb, 0x3b, 0xa4, 0xff, 0x9c, 0x98, 0xe2,
- 0xa8, 0xef, 0xf4, 0x68, 0xe6, 0x65, 0x4e, 0x8c, 0x43, 0x2e, 0x5a, 0x77, 0x9f, 0x49, 0xb7, 0x31,
- 0x4e, 0xdd, 0x4c, 0xe2, 0x98, 0x73, 0xa0, 0x55, 0x68, 0x5b, 0x7d, 0xd7, 0x59, 0xdd, 0x75, 0xbf,
- 0x62, 0x89, 0x33, 0xbd, 0xb3, 0xa3, 0xd9, 0x7b, 0x21, 0x39, 0x8e, 0x39, 0x43, 0x98, 0xde, 0x2e,
- 0xdd, 0x16, 0xb7, 0xc6, 0x85, 0x61, 0xe4, 0x38, 0xe6, 0xd4, 0xe7, 0x84, 0x3c, 0xb3, 0x8d, 0xfc,
- 0x1e, 0xd4, 0xd9, 0x90, 0xa3, 0xf7, 0xe4, 0xe2, 0x59, 0xa9, 0xa6, 0xdc, 0x19, 0x4b, 0x88, 0x2a,
- 0xc2, 0x61, 0xe3, 0xaf, 0xe2, 0x4c, 0x8d, 0x83, 0x23, 0xe4, 0xc6, 0x71, 0xde, 0x84, 0xa6, 0x10,
- 0x85, 0xda, 0xe0, 0x56, 0x48, 0xf0, 0x06, 0xd4, 0xb9, 0x61, 0x66, 0xf7, 0xe7, 0x2d, 0x68, 0x47,
- 0x83, 0x39, 0x9a, 0x84, 0x8d, 0x4e, 0x0e, 0xc9, 0xcf, 0x56, 0xa0, 0xce, 0x4f, 0x92, 0xd2, 0x53,
- 0xad, 0x6c, 0x05, 0x27, 0x47, 0x1f, 0x4c, 0xc9, 0x66, 0x70, 0x8f, 0x6d, 0xd4, 0xa8, 0x63, 0x1e,
- 0xdd, 0xcc, 0x3a, 0x57, 0xc0, 0xbd, 0x11, 0xd2, 0xe3, 0x98, 0xb5, 0x40, 0x9c, 0x8f, 0xa1, 0x1d,
- 0x71, 0xa1, 0x25, 0x55, 0xa4, 0x17, 0x46, 0x8a, 0x22, 0x59, 0xa5, 0x00, 0xfc, 0x56, 0x19, 0xaa,
- 0x2b, 0xd6, 0x7e, 0x6a, 0x1c, 0x6e, 0x84, 0x56, 0x5d, 0x34, 0x1d, 0xac, 0x58, 0xfb, 0x8a, 0x51,
- 0xeb, 0xab, 0xa1, 0xc6, 0xdd, 0x52, 0x9b, 0x77, 0x66, 0xb4, 0x07, 0x16, 0xc3, 0xf0, 0x86, 0xfd,
- 0x62, 0x13, 0x6a, 0xec, 0x90, 0x36, 0x6b, 0x9e, 0x3a, 0x18, 0x16, 0x37, 0x8c, 0x85, 0x81, 0xd8,
- 0x82, 0xcb, 0xe8, 0xf9, 0x3c, 0x65, 0x04, 0xc5, 0xf3, 0x14, 0x8f, 0x6a, 0x51, 0x52, 0xcc, 0x39,
- 0x68, 0x95, 0xbb, 0xd6, 0x2e, 0x11, 0xd3, 0x54, 0x41, 0x95, 0x8f, 0xac, 0x5d, 0x82, 0x19, 0x3d,
- 0xe5, 0xdb, 0x31, 0xfc, 0x1d, 0x31, 0x43, 0x15, 0xf0, 0xad, 0x19, 0xfe, 0x0e, 0x66, 0xf4, 0x94,
- 0xcf, 0xa1, 0x5b, 0xc2, 0xc6, 0x38, 0x7c, 0x74, 0xa7, 0x88, 0x19, 0x3d, 0xe5, 0xf3, 0xad, 0xaf,
- 0x11, 0x31, 0x27, 0x15, 0xf0, 0x6d, 0x5a, 0x5f, 0x23, 0x98, 0xd1, 0xc7, 0x53, 0x78, 0x6b, 0xbc,
- 0xa1, 0x91, 0xa6, 0xf0, 0x27, 0x30, 0x1b, 0x28, 0x47, 0x0d, 0xe2, 0xa6, 0xc0, 0x85, 0x02, 0xb9,
- 0x28, 0x3c, 0x38, 0x81, 0x41, 0x8d, 0x80, 0x6d, 0x80, 0xb3, 0x8d, 0xe0, 0x0d, 0xa8, 0x7f, 0xce,
- 0x32, 0x83, 0x1d, 0xb5, 0xb8, 0xae, 0x4c, 0x79, 0x54, 0x6c, 0x13, 0x4d, 0x79, 0xb2, 0xd4, 0x39,
- 0xce, 0x0a, 0xd4, 0xa8, 0xfa, 0x4c, 0xa6, 0xc7, 0xb1, 0xd6, 0x7d, 0xac, 0x09, 0x58, 0x1e, 0x68,
- 0x8e, 0x33, 0x07, 0x35, 0xaa, 0x21, 0x39, 0x43, 0x32, 0x07, 0x35, 0xaa, 0x77, 0xf9, 0xa5, 0x54,
- 0xda, 0x6a, 0x69, 0x35, 0x2c, 0x3d, 0x03, 0xb3, 0xaa, 0x38, 0x72, 0x50, 0xfe, 0xb4, 0x09, 0x35,
- 0x76, 0xe3, 0x21, 0x69, 0x91, 0x9f, 0x85, 0x19, 0x2e, 0xbf, 0x25, 0xe1, 0x82, 0x57, 0x32, 0x2f,
- 0x3c, 0xa9, 0xf7, 0x28, 0x84, 0x0a, 0x08, 0x16, 0xac, 0x22, 0x8c, 0xef, 0x54, 0x30, 0x28, 0x45,
- 0x23, 0x6f, 0x45, 0xce, 0x6b, 0xad, 0xe0, 0xba, 0x0d, 0xe3, 0xe5, 0x2e, 0x70, 0xe8, 0xc9, 0xa2,
- 0x25, 0x68, 0xd1, 0xa5, 0x95, 0x0e, 0x97, 0x30, 0xdb, 0x33, 0xa3, 0xf9, 0x7b, 0x82, 0x1a, 0x47,
- 0x7c, 0x74, 0x61, 0xef, 0x1b, 0x9e, 0xc9, 0x5a, 0x25, 0x6c, 0xf8, 0xec, 0x68, 0x90, 0xe5, 0x90,
- 0x1c, 0xc7, 0x9c, 0xe8, 0x01, 0x4c, 0x99, 0x24, 0x8a, 0x13, 0x08, 0xa3, 0xfe, 0xd4, 0x68, 0xa0,
- 0x95, 0x98, 0x01, 0xcb, 0xdc, 0xb4, 0x4d, 0xe1, 0xde, 0xd0, 0x2f, 0x74, 0x36, 0x18, 0x54, 0x7c,
- 0xad, 0x31, 0xe6, 0xd4, 0x4f, 0xc3, 0x8c, 0x22, 0xb7, 0x4f, 0xd4, 0xeb, 0x90, 0x65, 0xc9, 0x71,
- 0x16, 0xa2, 0x2d, 0xca, 0x3b, 0xaa, 0xdb, 0x91, 0xbb, 0x23, 0x11, 0x8c, 0x0f, 0xa1, 0x15, 0x0a,
- 0x06, 0xdd, 0x55, 0xdb, 0x70, 0xbe, 0xb8, 0x0d, 0x91, 0x4c, 0x05, 0xda, 0x3a, 0xb4, 0x23, 0x09,
- 0xa1, 0x45, 0x15, 0xee, 0xed, 0x62, 0xb8, 0x58, 0xba, 0x02, 0x0f, 0xc3, 0x94, 0x24, 0x28, 0xb4,
- 0xac, 0x22, 0xbe, 0x53, 0x8c, 0x28, 0x8b, 0x39, 0xf6, 0x7a, 0x22, 0x89, 0xc9, 0x52, 0xa9, 0xc6,
- 0x52, 0xf9, 0x83, 0x26, 0xb4, 0xa2, 0x5b, 0x46, 0x19, 0x7b, 0xcc, 0x3d, 0xcf, 0x2e, 0xdc, 0x63,
- 0x86, 0xfc, 0xdd, 0xa7, 0x9e, 0x8d, 0x29, 0x07, 0x15, 0x71, 0x60, 0x05, 0x91, 0xa9, 0x9e, 0x2d,
- 0x66, 0x7d, 0x42, 0xc9, 0x31, 0xe7, 0x42, 0x8f, 0x55, 0x2d, 0xaf, 0x8d, 0x38, 0x85, 0x56, 0x40,
- 0x72, 0x35, 0xbd, 0x07, 0x6d, 0x8b, 0xba, 0x7e, 0x6b, 0xf1, 0xca, 0xfb, 0x76, 0x31, 0x5c, 0x2f,
- 0x64, 0xc1, 0x31, 0x37, 0x6d, 0xdb, 0xb6, 0xb1, 0x4f, 0xed, 0x9a, 0x81, 0x35, 0xc6, 0x6d, 0xdb,
- 0xbd, 0x98, 0x09, 0xcb, 0x08, 0xe8, 0xa6, 0xf0, 0x5d, 0x9a, 0x05, 0x33, 0x4b, 0x3c, 0x54, 0xb1,
- 0xff, 0xf2, 0x41, 0x6a, 0xa5, 0xe5, 0x66, 0x7c, 0x69, 0x0c, 0x94, 0x91, 0xab, 0x2d, 0x95, 0x20,
- 0xf7, 0x8c, 0xda, 0xe3, 0x4a, 0x50, 0xf6, 0x8e, 0xf4, 0x63, 0x50, 0x7d, 0xea, 0xd9, 0xf9, 0x6b,
- 0x35, 0x13, 0x77, 0x4e, 0xf1, 0x49, 0xd5, 0x12, 0xf2, 0x1d, 0xfa, 0x48, 0x26, 0xb9, 0x38, 0xd2,
- 0xa0, 0xe7, 0x10, 0xbd, 0x27, 0x16, 0xf4, 0x6b, 0xaa, 0xbd, 0xbd, 0x99, 0xb0, 0x37, 0x6a, 0x61,
- 0x1b, 0x1e, 0xe1, 0x17, 0x2d, 0xa4, 0x95, 0x7c, 0xdc, 0x75, 0xf2, 0x7e, 0xe8, 0x7f, 0x4c, 0x34,
- 0x53, 0x24, 0xc7, 0x96, 0x63, 0xfd, 0x74, 0x19, 0x5a, 0xd1, 0x25, 0xb2, 0x74, 0x74, 0xbe, 0x65,
- 0xf9, 0x6b, 0xc4, 0x30, 0x89, 0x27, 0xec, 0xf6, 0x7c, 0xe1, 0xed, 0xb4, 0x6e, 0x4f, 0x70, 0xe0,
- 0x88, 0x57, 0x3f, 0x01, 0xad, 0x30, 0x37, 0x67, 0x53, 0xf6, 0xbd, 0x0a, 0x34, 0xc4, 0xf5, 0xb3,
- 0x64, 0x23, 0x6e, 0x43, 0xc3, 0x36, 0x0e, 0xdc, 0xbd, 0x70, 0xcb, 0x74, 0xa6, 0xe0, 0x46, 0x5b,
- 0xf7, 0x21, 0xa3, 0xc6, 0x82, 0x0b, 0x7d, 0x06, 0xea, 0xb6, 0xb5, 0x6b, 0x05, 0x62, 0xfa, 0x38,
- 0x5d, 0xc8, 0xce, 0x0e, 0xaa, 0x39, 0x0f, 0xad, 0x9c, 0xdd, 0x3a, 0x09, 0xef, 0x0c, 0x17, 0x56,
- 0xfe, 0x8c, 0x51, 0x63, 0xc1, 0xa5, 0xdf, 0x87, 0x06, 0x6f, 0xce, 0x64, 0x8b, 0x84, 0xda, 0x93,
- 0x58, 0xd3, 0x59, 0xdb, 0x72, 0xbc, 0xd2, 0xe3, 0xd0, 0xe0, 0x95, 0xe7, 0x68, 0xcd, 0x77, 0x5f,
- 0x67, 0xfb, 0x1d, 0x5b, 0x7f, 0x18, 0x1f, 0xfe, 0x7d, 0xfc, 0xb3, 0x0c, 0xfd, 0x09, 0x1c, 0x5a,
- 0x31, 0x02, 0x63, 0xcb, 0xf0, 0x09, 0x26, 0x7d, 0xd7, 0x33, 0x33, 0x51, 0x3d, 0x5e, 0x24, 0x22,
- 0xd4, 0xf9, 0xa8, 0x82, 0xee, 0xc7, 0xa1, 0xc3, 0xff, 0x39, 0xa1, 0xc3, 0x3f, 0xaa, 0xe5, 0xc4,
- 0xf3, 0xc6, 0x89, 0x64, 0x50, 0x85, 0x4b, 0x05, 0xf4, 0x6e, 0xaa, 0xbe, 0xf7, 0xa9, 0x02, 0x4e,
- 0xc5, 0xf9, 0xbe, 0xa9, 0x46, 0xf4, 0x8a, 0x78, 0x95, 0x90, 0xde, 0xdd, 0x64, 0x48, 0xef, 0x4c,
- 0x01, 0x77, 0x2a, 0xa6, 0x77, 0x53, 0x8d, 0xe9, 0x15, 0xd5, 0x2e, 0x07, 0xf5, 0xfe, 0x8f, 0x85,
- 0xd1, 0x7e, 0x25, 0x27, 0xec, 0xf3, 0x69, 0x35, 0xec, 0x33, 0x42, 0x6b, 0x7e, 0x54, 0x71, 0x9f,
- 0x5f, 0x6d, 0xe4, 0xc4, 0x7d, 0x16, 0x94, 0xb8, 0xcf, 0x88, 0x96, 0x25, 0x03, 0x3f, 0x37, 0xd5,
- 0xc0, 0xcf, 0xa9, 0x02, 0x4e, 0x25, 0xf2, 0xb3, 0xa0, 0x44, 0x7e, 0x8a, 0x2a, 0x95, 0x42, 0x3f,
- 0x0b, 0x4a, 0xe8, 0xa7, 0x88, 0x51, 0x8a, 0xfd, 0x2c, 0x28, 0xb1, 0x9f, 0x22, 0x46, 0x29, 0xf8,
- 0xb3, 0xa0, 0x04, 0x7f, 0x8a, 0x18, 0xa5, 0xe8, 0xcf, 0x4d, 0x35, 0xfa, 0x53, 0x3c, 0x3e, 0x92,
- 0xd0, 0x7f, 0x1c, 0xa8, 0xf9, 0x2f, 0x0c, 0xd4, 0xfc, 0x42, 0x35, 0x27, 0x00, 0x83, 0xb3, 0x03,
- 0x30, 0x17, 0xf2, 0x25, 0x59, 0x1c, 0x81, 0x19, 0x7f, 0x15, 0x48, 0x87, 0x60, 0xde, 0x4b, 0x84,
- 0x60, 0x4e, 0x17, 0x30, 0xab, 0x31, 0x98, 0xff, 0x35, 0x41, 0x86, 0xdf, 0x6b, 0x8c, 0xd8, 0x4f,
- 0xdf, 0x90, 0xf7, 0xd3, 0x23, 0x56, 0xb2, 0xf4, 0x86, 0xfa, 0xb6, 0xba, 0xa1, 0x3e, 0x37, 0x06,
- 0xaf, 0xb2, 0xa3, 0xde, 0xc8, 0xda, 0x51, 0x77, 0xc7, 0x40, 0xc9, 0xdd, 0x52, 0xdf, 0x4f, 0x6f,
- 0xa9, 0x2f, 0x8c, 0x81, 0x97, 0xb9, 0xa7, 0xde, 0xc8, 0xda, 0x53, 0x8f, 0xd3, 0xba, 0xdc, 0x4d,
- 0xf5, 0x67, 0x94, 0x4d, 0xf5, 0xd9, 0x71, 0x86, 0x2b, 0x5e, 0x1c, 0x3e, 0x9f, 0xb3, 0xab, 0x7e,
- 0x77, 0x1c, 0x98, 0xd1, 0x41, 0xec, 0x1f, 0xef, 0x8b, 0xd5, 0x6a, 0x7e, 0xe7, 0x4d, 0x68, 0x85,
- 0x17, 0x6d, 0xf4, 0xaf, 0x42, 0x33, 0x7c, 0x73, 0x94, 0xb4, 0x9c, 0xa3, 0xd1, 0xa6, 0x8e, 0x7b,
- 0xcf, 0x22, 0x85, 0x6e, 0x43, 0x8d, 0xfe, 0x13, 0x66, 0x71, 0x7e, 0xbc, 0x0b, 0x3d, 0xb4, 0x12,
- 0xcc, 0xf8, 0xf4, 0x7f, 0x3d, 0x02, 0x20, 0x3d, 0xc5, 0x18, 0xb7, 0xda, 0xf7, 0xe9, 0x64, 0x66,
- 0x07, 0xc4, 0x63, 0x17, 0xb9, 0x0a, 0x9f, 0x2a, 0xc4, 0x35, 0x50, 0x6d, 0x09, 0x88, 0x87, 0x05,
- 0x3b, 0x7a, 0x04, 0xad, 0x30, 0x90, 0xaa, 0xd5, 0x18, 0xd4, 0xbb, 0x63, 0x43, 0x85, 0xa1, 0x3d,
- 0x1c, 0x41, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x06, 0xf5, 0xce, 0xd8, 0x50, 0x9b,
- 0xae, 0x17, 0x60, 0xc6, 0xca, 0xbb, 0x26, 0xbd, 0x74, 0x9d, 0xa4, 0x6b, 0xca, 0x8c, 0xfd, 0x2f,
- 0xd5, 0x68, 0x0e, 0x5d, 0x16, 0xd6, 0xc8, 0x75, 0xe8, 0xe2, 0xf8, 0x52, 0x92, 0xad, 0x12, 0x09,
- 0x27, 0x88, 0x4b, 0x82, 0xfb, 0x37, 0xe7, 0xa1, 0xd3, 0x77, 0xf7, 0x89, 0x87, 0xe3, 0x2b, 0x4e,
- 0xe2, 0x16, 0x5a, 0x2a, 0x1f, 0xe9, 0xd0, 0xda, 0xb1, 0x4c, 0xd2, 0xeb, 0x8b, 0xf9, 0xaf, 0x85,
- 0xa3, 0x34, 0x7a, 0x00, 0x2d, 0x16, 0x63, 0x0f, 0x23, 0xfc, 0x93, 0x35, 0x92, 0x87, 0xfa, 0x43,
- 0x00, 0x5a, 0x11, 0xab, 0xfc, 0x9e, 0x15, 0xb0, 0x31, 0x6c, 0xe1, 0x28, 0x4d, 0x1b, 0xcc, 0xee,
- 0x91, 0xc9, 0x0d, 0x6e, 0xf2, 0x06, 0x27, 0xf3, 0xd1, 0x55, 0x78, 0x95, 0xe5, 0x25, 0xb6, 0x98,
- 0x3c, 0x54, 0xdf, 0xc2, 0xd9, 0x85, 0xec, 0xde, 0x9c, 0x31, 0xe0, 0xf7, 0xda, 0x59, 0xf0, 0xae,
- 0x8e, 0xe3, 0x0c, 0x74, 0x01, 0x0e, 0x9b, 0x64, 0xdb, 0xd8, 0xb3, 0x83, 0x27, 0x64, 0x77, 0x68,
- 0x1b, 0x01, 0xe9, 0x99, 0xec, 0xb1, 0x6d, 0x1b, 0xa7, 0x0b, 0xd0, 0x25, 0x78, 0x45, 0x64, 0x72,
- 0x33, 0xa6, 0xd2, 0xe8, 0x99, 0xec, 0xed, 0x69, 0x1b, 0x67, 0x15, 0xe9, 0xdf, 0xad, 0x51, 0xa1,
- 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x65, 0xf3, 0xca, 0x84, 0x06, 0x22, 0xde, 0x93,
- 0x53, 0x04, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x0b, 0xe7, 0xf5, 0x49, 0xb1, 0xa2, 0x6f, 0x00, 0x08,
- 0x1c, 0x8a, 0xb8, 0xc7, 0x2f, 0x8e, 0x57, 0x7f, 0x38, 0xc4, 0xe8, 0x3e, 0xb9, 0xc0, 0x41, 0xf7,
- 0xa1, 0xc6, 0x5a, 0xc8, 0x17, 0xd6, 0xab, 0x93, 0xe2, 0x3d, 0xe2, 0xed, 0x63, 0x18, 0x7a, 0x9f,
- 0xdf, 0x7d, 0x93, 0x2e, 0x5c, 0x96, 0xd5, 0x0b, 0x97, 0x4b, 0x50, 0xb7, 0x02, 0xb2, 0x9b, 0xbe,
- 0x7f, 0x3b, 0x52, 0x55, 0xc5, 0xcc, 0xc3, 0x59, 0x47, 0xde, 0x03, 0xfc, 0x30, 0xba, 0x8b, 0x9d,
- 0x9c, 0x0f, 0xef, 0x42, 0x8d, 0xb2, 0xa7, 0x7c, 0xc9, 0x71, 0x2a, 0x66, 0x9c, 0xfa, 0x65, 0xa8,
- 0xd1, 0xce, 0x8e, 0xe8, 0x9d, 0x68, 0x4f, 0x25, 0x6a, 0xcf, 0xd2, 0x14, 0xb4, 0xdd, 0x21, 0xf1,
- 0x98, 0x61, 0xe8, 0xff, 0x5c, 0x93, 0x2e, 0xc5, 0xf5, 0x64, 0x1d, 0xbb, 0x36, 0xf1, 0xcc, 0x29,
- 0x6b, 0x19, 0x4e, 0x68, 0xd9, 0x8d, 0xc9, 0xd1, 0x52, 0x7a, 0x86, 0x13, 0x7a, 0xf6, 0x43, 0x60,
- 0xa6, 0x34, 0xed, 0xa1, 0xa2, 0x69, 0xd7, 0x27, 0x47, 0x54, 0x74, 0x8d, 0x14, 0xe9, 0xda, 0x8a,
- 0xaa, 0x6b, 0xdd, 0xf1, 0x44, 0x1e, 0x2d, 0x4d, 0x63, 0x68, 0xdb, 0x17, 0x73, 0xb5, 0x6d, 0x49,
- 0xd1, 0xb6, 0x49, 0xab, 0xfe, 0x84, 0xf4, 0xed, 0xef, 0x6b, 0x50, 0xa3, 0xcb, 0x23, 0x5a, 0x95,
- 0x75, 0xed, 0xdd, 0x89, 0x96, 0x56, 0x59, 0xcf, 0xd6, 0x13, 0x7a, 0x76, 0x75, 0x32, 0xa4, 0x94,
- 0x8e, 0xad, 0x27, 0x74, 0x6c, 0x42, 0xbc, 0x94, 0x7e, 0xad, 0x29, 0xfa, 0x75, 0x79, 0x32, 0x34,
- 0x45, 0xb7, 0x8c, 0x22, 0xdd, 0xba, 0xab, 0xea, 0xd6, 0x98, 0xde, 0x1b, 0xf3, 0x55, 0xc6, 0xd0,
- 0xab, 0x0f, 0x72, 0xf5, 0xea, 0xb6, 0xa2, 0x57, 0x93, 0x54, 0xfb, 0x09, 0xe9, 0xd4, 0x55, 0xee,
- 0x74, 0x8a, 0x7b, 0xc6, 0x63, 0x3a, 0x9d, 0xfa, 0x35, 0x68, 0xc7, 0x6f, 0xd9, 0x33, 0xae, 0xe7,
- 0x73, 0xb2, 0xb0, 0xd6, 0x30, 0xa9, 0x5f, 0x81, 0x76, 0xfc, 0x3e, 0x3d, 0xa3, 0x2e, 0x9f, 0x15,
- 0x0a, 0x2e, 0x91, 0xd2, 0x57, 0xe1, 0x70, 0xfa, 0xf5, 0x6c, 0x46, 0x1c, 0x5e, 0xba, 0x5b, 0x1e,
- 0x3e, 0x45, 0x91, 0xb2, 0xf4, 0x17, 0x30, 0x9b, 0x78, 0x0f, 0x3b, 0x31, 0x06, 0xba, 0x22, 0xb9,
- 0xc8, 0x55, 0xb1, 0x07, 0xcf, 0xbe, 0x2d, 0x1f, 0x3b, 0xc2, 0xfa, 0x0a, 0xcc, 0x16, 0x34, 0x7e,
- 0x9c, 0xcb, 0xf2, 0x5f, 0x86, 0xa9, 0x51, 0x6d, 0xff, 0x04, 0x2e, 0xf3, 0x07, 0xd0, 0x49, 0xbd,
- 0xe5, 0x4f, 0x56, 0xb3, 0x01, 0x30, 0x88, 0x68, 0x84, 0xd2, 0x5e, 0x9a, 0xe0, 0xe9, 0x02, 0xe3,
- 0xc3, 0x12, 0x86, 0xfe, 0x5b, 0x65, 0x38, 0x9c, 0x7e, 0xc8, 0x3f, 0xee, 0xe6, 0x47, 0x83, 0x26,
- 0xc3, 0x8a, 0x5e, 0x7c, 0x84, 0x49, 0xf4, 0x08, 0xa6, 0x7d, 0xdb, 0xea, 0x93, 0xe5, 0x1d, 0xc3,
- 0x19, 0x10, 0x5f, 0xec, 0x68, 0x0a, 0x1e, 0xe3, 0x6f, 0xc6, 0x1c, 0x58, 0x61, 0xd7, 0x5f, 0xc0,
- 0x94, 0x54, 0x88, 0x6e, 0x41, 0xc5, 0x1d, 0xa6, 0xee, 0x35, 0xe6, 0x63, 0x3e, 0x0e, 0xed, 0x0d,
- 0x57, 0xdc, 0x61, 0xda, 0x24, 0x65, 0xf3, 0xad, 0x2a, 0xe6, 0xab, 0x3f, 0x80, 0xc3, 0xe9, 0xb7,
- 0xf2, 0xc9, 0xe1, 0x39, 0x93, 0x8a, 0x12, 0xf0, 0x61, 0x4a, 0x6e, 0xf9, 0x17, 0xe0, 0x50, 0xf2,
- 0x05, 0x7c, 0xc6, 0x6b, 0x9c, 0xf8, 0x51, 0x53, 0x18, 0xae, 0x9f, 0xff, 0xf9, 0x32, 0xcc, 0xaa,
- 0x1d, 0x41, 0x47, 0x01, 0xa9, 0x39, 0xeb, 0xae, 0x43, 0x3a, 0x25, 0xf4, 0x2a, 0x1c, 0x56, 0xf3,
- 0x17, 0x4d, 0xb3, 0x53, 0x4e, 0x93, 0xd3, 0x69, 0xab, 0x53, 0x41, 0x1a, 0x1c, 0x49, 0x8c, 0x10,
- 0x9b, 0x44, 0x3b, 0x55, 0xf4, 0x3a, 0xbc, 0x9a, 0x2c, 0x19, 0xda, 0x46, 0x9f, 0x74, 0x6a, 0xfa,
- 0x0f, 0x2a, 0x50, 0x7b, 0xea, 0x13, 0x4f, 0xff, 0xc7, 0x4a, 0xf8, 0x4a, 0xe3, 0x06, 0xd4, 0xd8,
- 0xe3, 0x74, 0xe9, 0x35, 0x63, 0x39, 0xf1, 0x9a, 0x51, 0x79, 0x11, 0x17, 0xbf, 0x66, 0xbc, 0x01,
- 0x35, 0xf6, 0x1c, 0x7d, 0x72, 0xce, 0x9f, 0x2a, 0x43, 0x3b, 0x7e, 0x1a, 0x3e, 0x31, 0xbf, 0xfc,
- 0x2a, 0xa4, 0xa2, 0xbe, 0x0a, 0x39, 0x0f, 0x75, 0x8f, 0xbd, 0xdf, 0xe0, 0xb3, 0x4c, 0xf2, 0xad,
- 0x09, 0xab, 0x10, 0x73, 0x12, 0x9d, 0xc0, 0x94, 0xfc, 0xf0, 0x7d, 0xf2, 0x66, 0x9c, 0x12, 0x5f,
- 0xbd, 0xe9, 0x99, 0xfe, 0xa2, 0xe7, 0x19, 0x07, 0x42, 0x31, 0xd5, 0x4c, 0x7d, 0x0e, 0x6a, 0x1b,
- 0x96, 0x33, 0xc8, 0x7e, 0x44, 0xaa, 0x7f, 0xbb, 0x0c, 0x4d, 0x71, 0x79, 0x57, 0x5f, 0x80, 0xea,
- 0x3a, 0x79, 0x41, 0x1b, 0x22, 0xae, 0x0d, 0xa7, 0x1a, 0xf2, 0x88, 0xf5, 0x42, 0xd0, 0xe3, 0x90,
- 0x4c, 0xbf, 0x19, 0x2d, 0x93, 0x93, 0xf3, 0xde, 0x80, 0x1a, 0x7b, 0xaf, 0x3e, 0x39, 0xe7, 0x6f,
- 0xb4, 0xa0, 0xc1, 0x5f, 0x62, 0xea, 0xdf, 0x6a, 0x41, 0x83, 0xbf, 0x61, 0x47, 0xb7, 0xa1, 0xe9,
- 0xef, 0xed, 0xee, 0x1a, 0xde, 0x81, 0x96, 0xfd, 0xc1, 0x44, 0xe5, 0xc9, 0x7b, 0x77, 0x93, 0xd3,
- 0xe2, 0x90, 0x09, 0x5d, 0x83, 0x5a, 0xdf, 0xd8, 0x26, 0xa9, 0xe3, 0xdc, 0x2c, 0xe6, 0x65, 0x63,
- 0x9b, 0x60, 0x46, 0x8e, 0xee, 0x42, 0x4b, 0x88, 0xc5, 0x17, 0xf1, 0x9c, 0xd1, 0xf5, 0x86, 0xc2,
- 0x8c, 0xb8, 0xf4, 0xfb, 0xd0, 0x14, 0x8d, 0x41, 0x77, 0xa2, 0x77, 0xa8, 0xc9, 0xc8, 0x73, 0x66,
- 0x17, 0xa2, 0xc7, 0xcd, 0xd1, 0x8b, 0xd4, 0xbf, 0xa8, 0x40, 0x8d, 0x36, 0xee, 0x63, 0x23, 0xa1,
- 0xe3, 0x00, 0xb6, 0xe1, 0x07, 0x1b, 0x7b, 0xb6, 0x4d, 0x4c, 0xf1, 0xc2, 0x4e, 0xca, 0x41, 0xe7,
- 0xe0, 0x10, 0x4f, 0xf9, 0x3b, 0x9b, 0x7b, 0xfd, 0x3e, 0x89, 0x9e, 0x89, 0x26, 0xb3, 0xd1, 0x22,
- 0xd4, 0xd9, 0x57, 0xd5, 0x84, 0x57, 0xf8, 0x76, 0xe1, 0xc8, 0x76, 0x37, 0x2c, 0x47, 0xb4, 0x86,
- 0x73, 0xea, 0x2e, 0xb4, 0xa3, 0x3c, 0x6a, 0x84, 0x43, 0xcb, 0x71, 0x2c, 0x67, 0x20, 0x34, 0x3a,
- 0x4c, 0xd2, 0x45, 0x87, 0xfe, 0x15, 0xed, 0xad, 0x63, 0x91, 0xa2, 0xf9, 0xdb, 0x86, 0x65, 0x8b,
- 0x26, 0xd6, 0xb1, 0x48, 0x51, 0xa4, 0x3d, 0xf1, 0xf2, 0xbf, 0xc6, 0x3a, 0x18, 0x26, 0xf5, 0x8f,
- 0xca, 0xd1, 0x63, 0xec, 0xac, 0xc7, 0x99, 0xa9, 0x58, 0xd2, 0x9c, 0x1c, 0xd0, 0xe6, 0x0b, 0x82,
- 0x14, 0xa2, 0x3e, 0x0a, 0x0d, 0xd7, 0xb1, 0x2d, 0x87, 0x88, 0xd8, 0x91, 0x48, 0x25, 0xc6, 0xb8,
- 0x9e, 0x1a, 0x63, 0x51, 0xbe, 0x6a, 0x5a, 0xb4, 0x89, 0x8d, 0xb8, 0x9c, 0xe7, 0xa0, 0xf7, 0xa0,
- 0x69, 0x92, 0x7d, 0xab, 0x4f, 0x7c, 0xad, 0xc9, 0x54, 0xef, 0xe4, 0xc8, 0xb1, 0x5d, 0x61, 0xb4,
- 0x38, 0xe4, 0xd1, 0x03, 0x68, 0xf0, 0xac, 0xa8, 0x4b, 0x65, 0xa9, 0x4b, 0x71, 0xa3, 0x2b, 0x23,
- 0x1a, 0x5d, 0x2d, 0x68, 0x74, 0x2d, 0xd9, 0xe8, 0x79, 0x13, 0x20, 0x56, 0x37, 0x34, 0x05, 0xcd,
- 0xa7, 0xce, 0x73, 0xc7, 0x7d, 0xe1, 0x74, 0x4a, 0x34, 0xf1, 0x78, 0x7b, 0x9b, 0xd6, 0xd2, 0x29,
- 0xd3, 0x04, 0xa5, 0xb3, 0x9c, 0x41, 0xa7, 0x82, 0x00, 0x1a, 0x34, 0x41, 0xcc, 0x4e, 0x95, 0xfe,
- 0xbf, 0xc7, 0xe4, 0xd7, 0xa9, 0xa1, 0xd7, 0xe0, 0x95, 0x9e, 0xd3, 0x77, 0x77, 0x87, 0x46, 0x60,
- 0x6d, 0xd9, 0xe4, 0x19, 0xf1, 0x7c, 0xcb, 0x75, 0x3a, 0x75, 0xfd, 0xdf, 0xcb, 0xfc, 0xd4, 0x57,
- 0xbf, 0x0b, 0xd3, 0xca, 0xa7, 0x28, 0x34, 0x68, 0xb2, 0x2f, 0x03, 0xc4, 0x7e, 0xb7, 0x48, 0x32,
- 0x2d, 0xe1, 0xcf, 0xe2, 0x85, 0xcb, 0xc2, 0x53, 0xfa, 0x3d, 0x00, 0xe9, 0x03, 0x14, 0xc7, 0x01,
- 0xb6, 0x0e, 0x02, 0xe2, 0xf3, 0x8f, 0x4f, 0x50, 0x88, 0x1a, 0x96, 0x72, 0x64, 0xfc, 0x8a, 0x82,
- 0xaf, 0x5f, 0x07, 0x90, 0x3e, 0x3f, 0x41, 0xed, 0x87, 0xa6, 0x96, 0x92, 0x60, 0xc9, 0x6c, 0xbd,
- 0x2b, 0x7a, 0x10, 0x7e, 0x68, 0x22, 0x6c, 0x01, 0x8f, 0xd2, 0xc9, 0x2d, 0x60, 0x39, 0xfa, 0x2a,
- 0x40, 0xfc, 0xad, 0x05, 0x7d, 0x21, 0x9a, 0xa2, 0xdf, 0x81, 0x9a, 0x69, 0x04, 0x86, 0x98, 0x1d,
- 0x5f, 0x4f, 0xac, 0x50, 0x31, 0x0b, 0x66, 0x64, 0xfa, 0x6f, 0x96, 0x61, 0x5a, 0xfe, 0xae, 0x84,
- 0xfe, 0x3e, 0xd4, 0xd8, 0x87, 0x29, 0xee, 0xc0, 0xb4, 0xfc, 0x61, 0x89, 0xd4, 0x77, 0x7d, 0x39,
- 0x9e, 0xcc, 0x8a, 0x15, 0x06, 0xbd, 0x17, 0x35, 0xe9, 0x63, 0x43, 0x5d, 0x82, 0xa6, 0xf8, 0x4e,
- 0x85, 0x7e, 0x1a, 0xda, 0xf1, 0x67, 0x29, 0xe8, 0x1c, 0xc1, 0xf3, 0x43, 0x29, 0x8b, 0xa4, 0xfe,
- 0x4f, 0x55, 0xa8, 0x33, 0x71, 0xea, 0xdf, 0xac, 0xc8, 0x9a, 0xa8, 0xff, 0xa0, 0x9c, 0xbb, 0xe7,
- 0xbb, 0xa2, 0x7c, 0x1e, 0x60, 0x36, 0xf5, 0x39, 0x16, 0xf1, 0x15, 0x0a, 0x75, 0x02, 0xbd, 0x0e,
- 0x4d, 0x87, 0x04, 0x2f, 0x5c, 0xef, 0x39, 0x33, 0x92, 0xd9, 0xf4, 0x27, 0x58, 0x18, 0xd7, 0x3a,
- 0xa7, 0xc1, 0x21, 0x31, 0xba, 0x0a, 0x75, 0xe2, 0x79, 0xae, 0xc7, 0x4c, 0x67, 0x36, 0xf5, 0x61,
- 0x93, 0xf8, 0x8b, 0x17, 0xab, 0x94, 0x0a, 0x73, 0x62, 0x74, 0x15, 0x5e, 0xf5, 0xb9, 0xb5, 0x70,
- 0xdf, 0xd1, 0x17, 0xef, 0xa7, 0xc5, 0xac, 0x92, 0x5d, 0x38, 0xff, 0xd9, 0x70, 0x21, 0x95, 0x0c,
- 0xac, 0x24, 0x5b, 0x5e, 0x19, 0xb5, 0xa1, 0xce, 0x2a, 0xea, 0x54, 0x64, 0xf3, 0xac, 0x52, 0xf7,
- 0x50, 0x34, 0x7d, 0x9d, 0x10, 0x53, 0x7c, 0x11, 0xa3, 0x53, 0x9b, 0xbf, 0x02, 0x4d, 0x91, 0x4f,
- 0xe9, 0x17, 0x79, 0xdb, 0x3b, 0x25, 0x34, 0x0d, 0xad, 0x4d, 0x62, 0x6f, 0xaf, 0xb9, 0x7e, 0xd0,
- 0x29, 0xa3, 0x19, 0x68, 0x33, 0x5b, 0x78, 0xec, 0xd8, 0x07, 0x9d, 0xca, 0xfc, 0x07, 0xd0, 0x8e,
- 0x7a, 0x84, 0x5a, 0x50, 0x5b, 0xdf, 0xb3, 0xed, 0x4e, 0x89, 0xb9, 0xa0, 0x81, 0xeb, 0x85, 0x01,
- 0xe8, 0xd5, 0x97, 0x74, 0x3d, 0xe9, 0x94, 0xf3, 0xac, 0xbe, 0x82, 0x3a, 0x30, 0x2d, 0x2a, 0xe7,
- 0x6d, 0xae, 0xea, 0x7f, 0x57, 0x86, 0x76, 0xf4, 0x29, 0x0f, 0xea, 0xff, 0x85, 0x32, 0xce, 0x9f,
- 0x07, 0x16, 0x12, 0xd2, 0xce, 0xff, 0x32, 0x48, 0x42, 0xe2, 0x67, 0x60, 0x56, 0x4c, 0xad, 0xe1,
- 0xe0, 0xf3, 0xd9, 0x31, 0x91, 0x3b, 0x7f, 0x33, 0x1a, 0xf5, 0x0e, 0x33, 0xb1, 0x65, 0xd7, 0x71,
- 0x48, 0x3f, 0x60, 0x63, 0x7f, 0x08, 0xa6, 0xd6, 0xdd, 0x60, 0xc3, 0xf5, 0x7d, 0xda, 0x33, 0x3e,
- 0x52, 0x71, 0x79, 0x45, 0xff, 0xf5, 0x32, 0x34, 0xf8, 0x07, 0x45, 0xf4, 0x5f, 0x2e, 0x43, 0x83,
- 0x7f, 0x44, 0x04, 0x9d, 0x87, 0x8e, 0xe7, 0x52, 0xa0, 0x70, 0xa3, 0xd0, 0x5b, 0x11, 0xbd, 0x4a,
- 0xe5, 0xd3, 0xbd, 0xab, 0x2b, 0x69, 0x81, 0x58, 0xda, 0x95, 0x3c, 0x74, 0x13, 0x80, 0x7f, 0xa4,
- 0xe4, 0xc9, 0xc1, 0x90, 0x08, 0xf5, 0x4d, 0x5e, 0x1d, 0x13, 0x9f, 0x35, 0x61, 0x87, 0x2c, 0x12,
- 0xf5, 0xfc, 0xd7, 0x61, 0x06, 0x13, 0x7f, 0xe8, 0x3a, 0x3e, 0xf9, 0x51, 0x7d, 0xb4, 0x3c, 0xf7,
- 0xf3, 0xe3, 0xf3, 0xdf, 0xae, 0x42, 0x9d, 0x79, 0x8d, 0xfa, 0xef, 0x57, 0x23, 0xff, 0x36, 0xe3,
- 0x4e, 0x61, 0x7c, 0xf3, 0x47, 0xb6, 0x66, 0xc5, 0xdf, 0x94, 0x8f, 0x8f, 0x2e, 0xcb, 0x37, 0x7e,
- 0x64, 0x4b, 0x56, 0x39, 0x94, 0x9b, 0x3e, 0x9f, 0x81, 0xd6, 0xd0, 0x73, 0x07, 0x1e, 0x75, 0x6c,
- 0x6b, 0x89, 0x4f, 0xcc, 0xa8, 0x6c, 0x1b, 0x82, 0x0c, 0x47, 0x0c, 0xfa, 0x3a, 0xb4, 0xc2, 0xdc,
- 0x9c, 0x0f, 0x20, 0x20, 0xa8, 0x99, 0xae, 0x58, 0x9c, 0xab, 0x98, 0xfd, 0xa7, 0xe3, 0x22, 0x46,
- 0x30, 0xdc, 0x94, 0x8a, 0xe4, 0xfc, 0x97, 0xc4, 0x89, 0xec, 0x0c, 0xb4, 0x57, 0x3c, 0x77, 0xc8,
- 0x5e, 0xba, 0x77, 0x4a, 0xd4, 0xea, 0xb9, 0x18, 0x3b, 0x65, 0xfa, 0x7f, 0xf5, 0x25, 0xfb, 0x5f,
- 0x61, 0xc6, 0x6a, 0xec, 0x13, 0x4a, 0xd6, 0xa9, 0x22, 0x04, 0xb3, 0x98, 0xb0, 0x53, 0x28, 0xe1,
- 0x12, 0x75, 0x6a, 0x14, 0xe8, 0x91, 0x35, 0xe0, 0xdb, 0xbc, 0x4e, 0x7d, 0x7e, 0x31, 0xbc, 0x79,
- 0x43, 0x8d, 0x97, 0x6f, 0x2b, 0xa7, 0xa0, 0x89, 0xf7, 0x98, 0x5f, 0xd6, 0x29, 0xd3, 0x6c, 0xea,
- 0xec, 0x73, 0xe8, 0x65, 0xc3, 0xe9, 0x13, 0x9b, 0xad, 0xe5, 0xd1, 0xec, 0x52, 0x5b, 0x9a, 0xfb,
- 0xcb, 0x8f, 0x8e, 0x97, 0xbf, 0xf3, 0xd1, 0xf1, 0xf2, 0xf7, 0x3e, 0x3a, 0x5e, 0xfe, 0xa5, 0xef,
- 0x1f, 0x2f, 0x7d, 0xe7, 0xfb, 0xc7, 0x4b, 0xff, 0xf0, 0xfd, 0xe3, 0xa5, 0x0f, 0x2b, 0xc3, 0xad,
- 0xad, 0x06, 0xbb, 0x32, 0x71, 0xe5, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x47, 0xc1, 0xf9, 0xb8,
- 0x72, 0x5f, 0x00, 0x00,
+ // 6076 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x4b, 0x8c, 0x1c, 0xc7,
+ 0x79, 0xff, 0xbc, 0x1f, 0xdf, 0x2e, 0x97, 0xc3, 0x22, 0x45, 0xb5, 0x4a, 0x14, 0x45, 0xad, 0x48,
+ 0x8a, 0x96, 0xa8, 0x21, 0x45, 0x52, 0x5c, 0x99, 0x16, 0x1f, 0xfb, 0xa2, 0x76, 0xf8, 0x58, 0xae,
+ 0x6b, 0x49, 0x5a, 0x96, 0x0d, 0xc3, 0xbd, 0xd3, 0xb5, 0xb3, 0x6d, 0xce, 0x76, 0x8f, 0xbb, 0x7b,
+ 0x97, 0x5c, 0xdb, 0x7f, 0xff, 0x1d, 0x3b, 0x41, 0x10, 0x20, 0x41, 0x72, 0x08, 0x92, 0x20, 0x97,
+ 0x00, 0x46, 0x02, 0xe4, 0x10, 0x18, 0x09, 0x72, 0x71, 0x2e, 0x46, 0x80, 0xc0, 0x40, 0x5e, 0x07,
+ 0xe7, 0x96, 0x4b, 0x60, 0x43, 0xbe, 0xe4, 0x90, 0x1c, 0x9c, 0x00, 0x41, 0x4e, 0x41, 0x50, 0x8f,
+ 0xee, 0xae, 0xea, 0xc7, 0xf4, 0x8c, 0x25, 0xe7, 0x81, 0xf8, 0x34, 0x53, 0x55, 0xdf, 0xf7, 0xab,
+ 0xd7, 0xf7, 0x7d, 0x55, 0xf5, 0x7d, 0xd5, 0x05, 0xc7, 0x47, 0x5b, 0x17, 0x46, 0x9e, 0x1b, 0xb8,
+ 0xfe, 0x05, 0xba, 0x4f, 0x9d, 0xc0, 0xef, 0xf2, 0x14, 0x6a, 0x9a, 0xce, 0x41, 0x70, 0x30, 0xa2,
+ 0xf8, 0xf4, 0xe8, 0xc9, 0xe0, 0xc2, 0xd0, 0xde, 0xba, 0x30, 0xda, 0xba, 0xb0, 0xeb, 0x5a, 0x74,
+ 0x18, 0x92, 0xf3, 0x84, 0x24, 0xc7, 0x27, 0x06, 0xae, 0x3b, 0x18, 0x52, 0x51, 0xb6, 0xb5, 0xb7,
+ 0x7d, 0xc1, 0x0f, 0xbc, 0xbd, 0x7e, 0x20, 0x4a, 0xe7, 0xbf, 0xfd, 0xbd, 0x32, 0xd4, 0x57, 0x19,
+ 0x3c, 0xba, 0x04, 0xad, 0x5d, 0xea, 0xfb, 0xe6, 0x80, 0xfa, 0x46, 0xf9, 0x54, 0xf5, 0xdc, 0xcc,
+ 0xa5, 0xe3, 0x5d, 0x59, 0x55, 0x97, 0x53, 0x74, 0xef, 0x8b, 0x62, 0x12, 0xd1, 0xa1, 0x13, 0xd0,
+ 0xee, 0xbb, 0x4e, 0x40, 0x9f, 0x05, 0x3d, 0xcb, 0xa8, 0x9c, 0x2a, 0x9f, 0x6b, 0x93, 0x38, 0x03,
+ 0x5d, 0x81, 0xb6, 0xed, 0xd8, 0x81, 0x6d, 0x06, 0xae, 0x67, 0x54, 0x4f, 0x95, 0x35, 0x48, 0xde,
+ 0xc8, 0xee, 0x62, 0xbf, 0xef, 0xee, 0x39, 0x01, 0x89, 0x09, 0x91, 0x01, 0xcd, 0xc0, 0x33, 0xfb,
+ 0xb4, 0x67, 0x19, 0x35, 0x8e, 0x18, 0x26, 0xf1, 0xf7, 0x2f, 0x42, 0x53, 0xb6, 0x01, 0xdd, 0x84,
+ 0x19, 0x53, 0xf0, 0x6e, 0xee, 0xb8, 0x4f, 0x8d, 0x32, 0x47, 0x7f, 0x31, 0xd1, 0x60, 0x89, 0xde,
+ 0x65, 0x24, 0x6b, 0x25, 0xa2, 0x72, 0xa0, 0x1e, 0xcc, 0xc9, 0xe4, 0x0a, 0x0d, 0x4c, 0x7b, 0xe8,
+ 0x1b, 0x7f, 0x25, 0x40, 0x4e, 0xe6, 0x80, 0x48, 0xb2, 0xb5, 0x12, 0x49, 0x30, 0xa2, 0xcf, 0xc2,
+ 0x51, 0x99, 0xb3, 0xec, 0x3a, 0xdb, 0xf6, 0xe0, 0xd1, 0xc8, 0x32, 0x03, 0x6a, 0xfc, 0xb5, 0xc0,
+ 0x3b, 0x9d, 0x83, 0x27, 0x68, 0xbb, 0x82, 0x78, 0xad, 0x44, 0xb2, 0x30, 0xd0, 0x6d, 0x38, 0x24,
+ 0xb3, 0x25, 0xe8, 0xdf, 0x08, 0xd0, 0x97, 0x72, 0x40, 0x23, 0x34, 0x9d, 0x0d, 0x7d, 0x0e, 0x8e,
+ 0xc9, 0x8c, 0x7b, 0xb6, 0xf3, 0x64, 0x79, 0xc7, 0x1c, 0x0e, 0xa9, 0x33, 0xa0, 0xc6, 0xdf, 0x8e,
+ 0x6f, 0xa3, 0x46, 0xbc, 0x56, 0x22, 0x99, 0x20, 0xe8, 0x01, 0x74, 0xdc, 0xad, 0x2f, 0xd1, 0x7e,
+ 0x38, 0x20, 0x9b, 0x34, 0x30, 0x3a, 0x1c, 0xf7, 0x95, 0x04, 0xee, 0x03, 0x4e, 0x16, 0x0e, 0x65,
+ 0x77, 0x93, 0x06, 0x6b, 0x25, 0x92, 0x62, 0x46, 0x8f, 0x00, 0x69, 0x79, 0x8b, 0xbb, 0xd4, 0xb1,
+ 0x8c, 0x4b, 0x1c, 0xf2, 0xd5, 0xf1, 0x90, 0x9c, 0x74, 0xad, 0x44, 0x32, 0x00, 0x52, 0xb0, 0x8f,
+ 0x1c, 0x9f, 0x06, 0xc6, 0xe5, 0x49, 0x60, 0x39, 0x69, 0x0a, 0x96, 0xe7, 0xb2, 0xb1, 0x15, 0xb9,
+ 0x84, 0x0e, 0xcd, 0xc0, 0x76, 0x1d, 0xd9, 0xde, 0x2b, 0x1c, 0xf8, 0x4c, 0x36, 0x70, 0x44, 0x1b,
+ 0xb5, 0x38, 0x13, 0x04, 0x7d, 0x01, 0x9e, 0x4b, 0xe4, 0x13, 0xba, 0xeb, 0xee, 0x53, 0xe3, 0x6d,
+ 0x8e, 0x7e, 0xb6, 0x08, 0x5d, 0x50, 0xaf, 0x95, 0x48, 0x36, 0x0c, 0x5a, 0x82, 0xd9, 0xb0, 0x80,
+ 0xc3, 0x5e, 0xe5, 0xb0, 0x27, 0xf2, 0x60, 0x25, 0x98, 0xc6, 0xc3, 0x74, 0x51, 0xa4, 0x97, 0x87,
+ 0xae, 0x4f, 0x8d, 0xc5, 0x4c, 0x5d, 0x94, 0x10, 0x9c, 0x84, 0xe9, 0xa2, 0xc2, 0xa1, 0x76, 0xd2,
+ 0x0f, 0x3c, 0xbb, 0xcf, 0x1b, 0xc8, 0xa4, 0x68, 0x61, 0x7c, 0x27, 0x63, 0x62, 0x29, 0x4a, 0xd9,
+ 0x30, 0x88, 0xc0, 0x61, 0x7f, 0x6f, 0xcb, 0xef, 0x7b, 0xf6, 0x88, 0xe5, 0x2d, 0x5a, 0x96, 0xf1,
+ 0xee, 0x38, 0xe4, 0x4d, 0x85, 0xb8, 0xbb, 0x68, 0xb1, 0xd9, 0x49, 0x02, 0xa0, 0xcf, 0x01, 0x52,
+ 0xb3, 0xe4, 0xf0, 0x5d, 0xe7, 0xb0, 0x9f, 0x98, 0x00, 0x36, 0x1a, 0xcb, 0x0c, 0x18, 0x64, 0xc2,
+ 0x31, 0x35, 0x77, 0xc3, 0xf5, 0x6d, 0xf6, 0x6b, 0xdc, 0xe0, 0xf0, 0x6f, 0x4c, 0x00, 0x1f, 0xb2,
+ 0x30, 0xc1, 0xca, 0x82, 0x4a, 0x56, 0xb1, 0xcc, 0xd4, 0x9a, 0x7a, 0xbe, 0x71, 0x73, 0xe2, 0x2a,
+ 0x42, 0x96, 0x64, 0x15, 0x61, 0x7e, 0x72, 0x88, 0xde, 0xf3, 0xdc, 0xbd, 0x91, 0x6f, 0xdc, 0x9a,
+ 0x78, 0x88, 0x04, 0x43, 0x72, 0x88, 0x44, 0x2e, 0xba, 0x0a, 0xad, 0xad, 0xa1, 0xdb, 0x7f, 0xc2,
+ 0x26, 0xb3, 0xc2, 0x21, 0x8d, 0x04, 0xe4, 0x12, 0x2b, 0x96, 0xd3, 0x17, 0xd1, 0x32, 0x61, 0xe5,
+ 0xff, 0x57, 0xe8, 0x90, 0x06, 0x54, 0x2e, 0x4b, 0x2f, 0x66, 0xb2, 0x0a, 0x12, 0x26, 0xac, 0x0a,
+ 0x07, 0x5a, 0x81, 0x99, 0x6d, 0x7b, 0x48, 0xfd, 0x47, 0xa3, 0xa1, 0x6b, 0x8a, 0x35, 0x6a, 0xe6,
+ 0xd2, 0xa9, 0x4c, 0x80, 0xdb, 0x31, 0x1d, 0x43, 0x51, 0xd8, 0xd0, 0x0d, 0x68, 0xef, 0x9a, 0xde,
+ 0x13, 0xbf, 0xe7, 0x6c, 0xbb, 0x46, 0x3d, 0x73, 0xe1, 0x11, 0x18, 0xf7, 0x43, 0xaa, 0xb5, 0x12,
+ 0x89, 0x59, 0xd8, 0xf2, 0xc5, 0x1b, 0xb5, 0x49, 0x83, 0xdb, 0x36, 0x1d, 0x5a, 0xbe, 0xd1, 0xe0,
+ 0x20, 0x2f, 0x67, 0x82, 0x6c, 0xd2, 0xa0, 0x2b, 0xc8, 0xd8, 0xf2, 0xa5, 0x33, 0xa2, 0xf7, 0xe1,
+ 0x68, 0x98, 0xb3, 0xbc, 0x63, 0x0f, 0x2d, 0x8f, 0x3a, 0x3d, 0xcb, 0x37, 0x9a, 0x99, 0x2b, 0x43,
+ 0x8c, 0xa7, 0xd0, 0xb2, 0xd5, 0x2b, 0x03, 0x82, 0x59, 0xc6, 0x30, 0x5b, 0x55, 0x49, 0xa3, 0x95,
+ 0x69, 0x19, 0x63, 0x68, 0x95, 0x98, 0x49, 0x57, 0x16, 0x08, 0xb2, 0xe0, 0xf9, 0x30, 0x7f, 0xc9,
+ 0xec, 0x3f, 0x19, 0x78, 0xee, 0x9e, 0x63, 0x2d, 0xbb, 0x43, 0xd7, 0x33, 0xda, 0x1c, 0xff, 0x5c,
+ 0x2e, 0x7e, 0x82, 0x7e, 0xad, 0x44, 0xf2, 0xa0, 0xd0, 0x32, 0xcc, 0x86, 0x45, 0x0f, 0xe9, 0xb3,
+ 0xc0, 0x80, 0xcc, 0xe5, 0x37, 0x86, 0x66, 0x44, 0xcc, 0x40, 0xaa, 0x4c, 0x2a, 0x08, 0x13, 0x09,
+ 0x63, 0xa6, 0x00, 0x84, 0x11, 0xa9, 0x20, 0x2c, 0xad, 0x82, 0xb0, 0xe5, 0xd7, 0x38, 0x54, 0x00,
+ 0xc2, 0x88, 0x54, 0x10, 0x96, 0x66, 0x4b, 0x75, 0xd4, 0x53, 0xd7, 0x7d, 0xc2, 0xe4, 0xc9, 0x98,
+ 0xcb, 0x5c, 0xaa, 0x95, 0xd1, 0x92, 0x84, 0x6c, 0xa9, 0x4e, 0x32, 0xb3, 0x0d, 0x4a, 0x98, 0xb7,
+ 0x38, 0xb4, 0x07, 0x8e, 0x71, 0x78, 0x8c, 0x2c, 0x33, 0x34, 0x4e, 0xc5, 0x36, 0x28, 0x1a, 0x1b,
+ 0xba, 0x25, 0xd5, 0x72, 0x93, 0x06, 0x2b, 0xf6, 0xbe, 0x71, 0x24, 0x73, 0x19, 0x8a, 0x51, 0x56,
+ 0xec, 0xfd, 0x48, 0x2f, 0x05, 0x8b, 0xda, 0xb5, 0x70, 0x91, 0x33, 0x9e, 0x2b, 0xe8, 0x5a, 0x48,
+ 0xa8, 0x76, 0x2d, 0xcc, 0x53, 0xbb, 0x76, 0xcf, 0x0c, 0xe8, 0x33, 0xe3, 0x85, 0x82, 0xae, 0x71,
+ 0x2a, 0xb5, 0x6b, 0x3c, 0x83, 0xad, 0x6e, 0x61, 0xc6, 0x63, 0xea, 0x05, 0x76, 0xdf, 0x1c, 0x8a,
+ 0xa1, 0x3a, 0x9d, 0xb9, 0x06, 0xc5, 0x78, 0x1a, 0x35, 0x5b, 0xdd, 0x32, 0x61, 0xd4, 0x8e, 0x3f,
+ 0x34, 0xb7, 0x86, 0x94, 0xb8, 0x4f, 0x8d, 0x33, 0x05, 0x1d, 0x0f, 0x09, 0xd5, 0x8e, 0x87, 0x79,
+ 0xaa, 0x6d, 0xf9, 0x8c, 0x6d, 0x0d, 0x68, 0x60, 0x9c, 0x2b, 0xb0, 0x2d, 0x82, 0x4c, 0xb5, 0x2d,
+ 0x22, 0x27, 0xb2, 0x00, 0x2b, 0x66, 0x60, 0xee, 0xdb, 0xf4, 0xe9, 0x63, 0x9b, 0x3e, 0x65, 0x0b,
+ 0xfb, 0xd1, 0x31, 0x16, 0x20, 0xa4, 0xed, 0x4a, 0xe2, 0xc8, 0x02, 0x24, 0x40, 0x22, 0x0b, 0xa0,
+ 0xe6, 0x4b, 0xb3, 0x7e, 0x6c, 0x8c, 0x05, 0xd0, 0xf0, 0x23, 0x1b, 0x9f, 0x07, 0x85, 0x4c, 0x38,
+ 0x9e, 0x2a, 0x7a, 0xe0, 0x59, 0xd4, 0x33, 0x5e, 0xe2, 0x95, 0xbc, 0x56, 0x5c, 0x09, 0x27, 0x5f,
+ 0x2b, 0x91, 0x1c, 0xa0, 0x54, 0x15, 0x9b, 0xee, 0x9e, 0xd7, 0xa7, 0x6c, 0x9c, 0x5e, 0x9d, 0xa4,
+ 0x8a, 0x88, 0x3c, 0x55, 0x45, 0x54, 0x82, 0xf6, 0xe1, 0xa5, 0xa8, 0x84, 0x55, 0xcc, 0x57, 0x51,
+ 0x5e, 0xbb, 0x3c, 0x58, 0x9c, 0xe5, 0x35, 0x75, 0xc7, 0xd7, 0x94, 0xe4, 0x5a, 0x2b, 0x91, 0xf1,
+ 0xb0, 0xe8, 0x00, 0x4e, 0x6a, 0x04, 0x62, 0x9d, 0x57, 0x2b, 0x7e, 0x8d, 0x57, 0x7c, 0x61, 0x7c,
+ 0xc5, 0x29, 0xb6, 0xb5, 0x12, 0x29, 0x00, 0x46, 0x23, 0x78, 0x51, 0x1b, 0x8c, 0x50, 0xb1, 0xa5,
+ 0x88, 0x7c, 0x8d, 0xd7, 0x7b, 0x7e, 0x7c, 0xbd, 0x3a, 0xcf, 0x5a, 0x89, 0x8c, 0x83, 0x44, 0x03,
+ 0x30, 0x32, 0x8b, 0xd9, 0x4c, 0x7e, 0x35, 0x73, 0xdb, 0x93, 0x53, 0x9d, 0x98, 0xcb, 0x5c, 0xb0,
+ 0x4c, 0xc9, 0x97, 0xc3, 0xf9, 0xff, 0x26, 0x95, 0xfc, 0x68, 0x1c, 0xf3, 0xa0, 0xb4, 0xb9, 0x63,
+ 0x45, 0x0f, 0x4d, 0x6f, 0x40, 0x03, 0x31, 0xd0, 0x3d, 0x8b, 0x75, 0xea, 0xeb, 0x93, 0xcc, 0x5d,
+ 0x8a, 0x4d, 0x9b, 0xbb, 0x4c, 0x60, 0xe4, 0xc3, 0x09, 0x8d, 0xa2, 0xe7, 0x2f, 0xbb, 0xc3, 0x21,
+ 0xed, 0x87, 0xa3, 0xf9, 0xff, 0x79, 0xc5, 0x6f, 0x8e, 0xaf, 0x38, 0xc1, 0xb4, 0x56, 0x22, 0x63,
+ 0x41, 0x53, 0xfd, 0x7d, 0x30, 0xb4, 0x12, 0x32, 0x63, 0x4c, 0x24, 0xab, 0x49, 0xb6, 0x54, 0x7f,
+ 0x53, 0x14, 0x29, 0x59, 0x55, 0x28, 0x58, 0x77, 0x9f, 0x9f, 0x44, 0x56, 0x75, 0x9e, 0x94, 0xac,
+ 0xea, 0xc5, 0x6c, 0x75, 0xdb, 0xf3, 0xa9, 0xc7, 0x31, 0xee, 0xb8, 0xb6, 0x63, 0xbc, 0x9c, 0xb9,
+ 0xba, 0x3d, 0xf2, 0xa9, 0x27, 0x2b, 0x62, 0x54, 0x6c, 0x75, 0xd3, 0xd8, 0x34, 0x9c, 0x7b, 0x74,
+ 0x3b, 0x30, 0x4e, 0x15, 0xe1, 0x30, 0x2a, 0x0d, 0x87, 0x65, 0xb0, 0x95, 0x22, 0xca, 0xd8, 0xa4,
+ 0x6c, 0x56, 0x88, 0xe9, 0x0c, 0xa8, 0xf1, 0x4a, 0xe6, 0x4a, 0xa1, 0xc0, 0x29, 0xc4, 0x6c, 0xa5,
+ 0xc8, 0x02, 0x61, 0x27, 0xff, 0x28, 0x9f, 0xed, 0xc8, 0x04, 0xf4, 0x7c, 0xe6, 0xc9, 0x5f, 0x81,
+ 0x8e, 0x48, 0xd9, 0x19, 0x24, 0x0d, 0x80, 0x3e, 0x01, 0xb5, 0x91, 0xed, 0x0c, 0x0c, 0x8b, 0x03,
+ 0x1d, 0x4d, 0x00, 0x6d, 0xd8, 0xce, 0x60, 0xad, 0x44, 0x38, 0x09, 0x7a, 0x17, 0x60, 0xe4, 0xb9,
+ 0x7d, 0xea, 0xfb, 0xeb, 0xf4, 0xa9, 0x41, 0x39, 0x03, 0x4e, 0x32, 0x08, 0x82, 0xee, 0x3a, 0x65,
+ 0xeb, 0xb2, 0x42, 0x8f, 0x56, 0xe1, 0x90, 0x4c, 0x49, 0x2d, 0xdf, 0xce, 0xdc, 0xfc, 0x85, 0x00,
+ 0xb1, 0x17, 0x48, 0xe3, 0x62, 0x67, 0x1f, 0x99, 0xb1, 0xe2, 0x3a, 0xd4, 0x18, 0x64, 0x9e, 0x7d,
+ 0x42, 0x10, 0x46, 0xc2, 0xf6, 0x58, 0x0a, 0x07, 0x5a, 0x82, 0xd9, 0x60, 0xc7, 0xa3, 0xa6, 0xb5,
+ 0x19, 0x98, 0xc1, 0x9e, 0x6f, 0x38, 0x99, 0xdb, 0x34, 0x51, 0xd8, 0x7d, 0xc8, 0x29, 0xd9, 0x16,
+ 0x54, 0xe5, 0x41, 0xeb, 0xd0, 0x61, 0x07, 0xa1, 0x7b, 0xf6, 0xae, 0x1d, 0x10, 0x6a, 0xf6, 0x77,
+ 0xa8, 0x65, 0xb8, 0x99, 0x87, 0x28, 0xb6, 0xed, 0xed, 0xaa, 0x74, 0x6c, 0xb7, 0x92, 0xe4, 0x45,
+ 0x6b, 0x30, 0xc7, 0xf2, 0x36, 0x47, 0x66, 0x9f, 0x3e, 0xf2, 0xcd, 0x01, 0x35, 0x46, 0x99, 0x12,
+ 0xc8, 0xd1, 0x62, 0x2a, 0xb6, 0x59, 0xd1, 0xf9, 0x42, 0xa4, 0x7b, 0x6e, 0xdf, 0x1c, 0x0a, 0xa4,
+ 0x2f, 0xe7, 0x23, 0xc5, 0x54, 0x21, 0x52, 0x9c, 0xa3, 0xf5, 0x51, 0x8c, 0xbd, 0x65, 0xec, 0x17,
+ 0xf4, 0x51, 0xd2, 0x69, 0x7d, 0x94, 0x79, 0x0c, 0xcf, 0x71, 0x03, 0x7b, 0xdb, 0xee, 0x4b, 0xfd,
+ 0x75, 0x2c, 0xc3, 0xcb, 0xc4, 0x5b, 0x57, 0xc8, 0xba, 0x9b, 0xc2, 0xb3, 0x94, 0xe2, 0x45, 0x0f,
+ 0x01, 0xa9, 0x79, 0x52, 0xa8, 0x7c, 0x8e, 0x38, 0x3f, 0x0e, 0x31, 0x92, 0xac, 0x0c, 0x7e, 0xd6,
+ 0xca, 0x91, 0x79, 0xc0, 0x8e, 0xb7, 0x4b, 0x9e, 0x6b, 0x5a, 0x7d, 0xd3, 0x0f, 0x8c, 0x20, 0xb3,
+ 0x95, 0x1b, 0x82, 0xac, 0x1b, 0xd1, 0xb1, 0x56, 0x26, 0x79, 0x19, 0xde, 0x2e, 0xdd, 0xdd, 0xa2,
+ 0x9e, 0xbf, 0x63, 0x8f, 0x64, 0x1b, 0xf7, 0x32, 0xf1, 0xee, 0x47, 0x64, 0x71, 0x0b, 0x53, 0xbc,
+ 0x6c, 0x23, 0xee, 0xb3, 0xd9, 0xde, 0x3c, 0x70, 0xfa, 0x42, 0x18, 0x25, 0xe8, 0xd3, 0xcc, 0x8d,
+ 0x38, 0x97, 0x8c, 0x6e, 0x4c, 0x1c, 0x43, 0x67, 0xc3, 0xa0, 0xbb, 0x70, 0x78, 0x74, 0x69, 0xa4,
+ 0x21, 0x3f, 0xcb, 0xdc, 0x38, 0x6f, 0x5c, 0xda, 0x48, 0x42, 0x26, 0x39, 0x99, 0xaa, 0xd9, 0xbb,
+ 0x23, 0xd7, 0x0b, 0x6e, 0xdb, 0x8e, 0xed, 0xef, 0x18, 0x07, 0x99, 0xaa, 0xd6, 0xe3, 0x24, 0x5d,
+ 0x41, 0xc3, 0x54, 0x4d, 0xe5, 0x41, 0x57, 0xa0, 0xd9, 0xdf, 0x31, 0x83, 0x45, 0xcb, 0x32, 0xbe,
+ 0x21, 0x1c, 0xbd, 0xcf, 0x27, 0xf8, 0x97, 0x77, 0xcc, 0x40, 0xba, 0x48, 0x42, 0x52, 0x74, 0x1d,
+ 0x80, 0xfd, 0x95, 0x3d, 0xf8, 0x85, 0x72, 0xa6, 0xad, 0xe2, 0x8c, 0x51, 0xeb, 0x15, 0x06, 0xf4,
+ 0x3e, 0x1c, 0x8d, 0x53, 0x4c, 0x49, 0xc5, 0x99, 0xff, 0x9b, 0xe5, 0x4c, 0x6b, 0xab, 0xe0, 0x44,
+ 0xb4, 0x6b, 0x25, 0x92, 0x05, 0x11, 0x36, 0x4c, 0xae, 0xc5, 0xdf, 0x1a, 0xd3, 0xb0, 0x68, 0xdd,
+ 0x55, 0x18, 0x96, 0x9a, 0x50, 0xdf, 0x37, 0x87, 0x7b, 0x14, 0x7f, 0xaf, 0x02, 0x35, 0x46, 0x86,
+ 0x29, 0x54, 0x59, 0x87, 0xe7, 0xa0, 0x62, 0x5b, 0x3c, 0x84, 0xd0, 0x26, 0x15, 0xdb, 0x42, 0x06,
+ 0x34, 0x5d, 0xb6, 0x8f, 0x8c, 0x62, 0x1a, 0x61, 0x92, 0x0d, 0xa8, 0x8c, 0x7d, 0x48, 0xc7, 0x11,
+ 0x4e, 0xc4, 0x33, 0x18, 0x6c, 0x18, 0x26, 0x09, 0x49, 0xb1, 0x01, 0x0d, 0xb9, 0xcc, 0x27, 0x6a,
+ 0xc2, 0xeb, 0xd0, 0x90, 0xa3, 0x96, 0x6c, 0x83, 0x52, 0x53, 0x65, 0xf2, 0x9a, 0x28, 0x1c, 0x4e,
+ 0x0e, 0x5a, 0x12, 0x78, 0x09, 0xda, 0x5e, 0x34, 0x29, 0x95, 0x84, 0x8f, 0x27, 0x05, 0xdd, 0x8d,
+ 0x80, 0x48, 0xcc, 0x86, 0xff, 0xa4, 0x0e, 0x4d, 0x19, 0x22, 0xc0, 0xeb, 0x50, 0xe3, 0xf1, 0x94,
+ 0x63, 0x50, 0xb7, 0x1d, 0x8b, 0x3e, 0xe3, 0x55, 0xd5, 0x89, 0x48, 0xa0, 0x8b, 0xd0, 0x94, 0x21,
+ 0x03, 0x59, 0x57, 0x5e, 0x00, 0x28, 0x24, 0xc3, 0x1f, 0x40, 0x33, 0x8c, 0xab, 0x9c, 0x80, 0xf6,
+ 0xc8, 0x73, 0x99, 0x31, 0xec, 0x85, 0x3d, 0x88, 0x33, 0xd0, 0x5b, 0xd0, 0xb4, 0x64, 0xe4, 0xa6,
+ 0x22, 0x65, 0x5b, 0x84, 0xba, 0xba, 0x61, 0xa8, 0xab, 0xbb, 0xc9, 0x43, 0x5d, 0x24, 0xa4, 0xc3,
+ 0xdf, 0x28, 0x43, 0x43, 0x84, 0x57, 0xf0, 0x7e, 0x34, 0xf2, 0x6f, 0x43, 0xa3, 0xcf, 0xf3, 0x8c,
+ 0x64, 0x68, 0x45, 0x6b, 0xa1, 0x8c, 0xd7, 0x10, 0x49, 0xcc, 0xd8, 0x7c, 0xb1, 0x08, 0x56, 0xc6,
+ 0xb2, 0x09, 0xa5, 0x26, 0x92, 0xf8, 0xbf, 0xad, 0xde, 0xff, 0x28, 0xc3, 0x21, 0x3d, 0x6a, 0x73,
+ 0x02, 0xda, 0xfd, 0x28, 0x0e, 0x24, 0x47, 0xb7, 0xaf, 0xc4, 0x74, 0xa0, 0x3f, 0xb4, 0xa9, 0x13,
+ 0x70, 0x07, 0x65, 0x25, 0x73, 0xdf, 0x9b, 0x19, 0x25, 0xea, 0x2e, 0x47, 0x6c, 0x44, 0x81, 0xc0,
+ 0x5f, 0x07, 0x88, 0x4b, 0xd0, 0xa9, 0x68, 0x27, 0xb2, 0x6e, 0xee, 0x86, 0xd5, 0xab, 0x59, 0x0a,
+ 0xc5, 0x86, 0x19, 0xec, 0x48, 0x45, 0x54, 0xb3, 0xd0, 0x79, 0x38, 0xe2, 0xdb, 0x03, 0xc7, 0x0c,
+ 0xf6, 0x3c, 0xfa, 0x98, 0x7a, 0xf6, 0xb6, 0x4d, 0x2d, 0xae, 0x96, 0x2d, 0x92, 0x2e, 0xc0, 0xbf,
+ 0xd2, 0x86, 0x86, 0x38, 0x61, 0xe0, 0x7f, 0xab, 0x44, 0x32, 0x86, 0xff, 0xa2, 0x0c, 0x75, 0x11,
+ 0x69, 0x49, 0x2a, 0xca, 0x6d, 0x55, 0xbe, 0xaa, 0x19, 0xdb, 0xef, 0xac, 0xc8, 0x53, 0xf7, 0x2e,
+ 0x3d, 0x78, 0xcc, 0x8c, 0x4c, 0x24, 0x74, 0xe8, 0x38, 0x34, 0xfc, 0xbd, 0xad, 0x9e, 0xe5, 0x1b,
+ 0xd5, 0x53, 0xd5, 0x73, 0x6d, 0x22, 0x53, 0xf8, 0x0e, 0xb4, 0x42, 0x62, 0xd4, 0x81, 0xea, 0x13,
+ 0x7a, 0x20, 0x2b, 0x67, 0x7f, 0xd1, 0x79, 0x69, 0xac, 0x22, 0xb5, 0x49, 0xca, 0xb6, 0xa8, 0x45,
+ 0x5a, 0xb4, 0x2f, 0x42, 0x95, 0xed, 0xe9, 0x93, 0x5d, 0x98, 0x5e, 0x45, 0x72, 0x5b, 0xbb, 0x0c,
+ 0x75, 0x11, 0xed, 0x4a, 0xd6, 0x81, 0xa0, 0xf6, 0x84, 0x1e, 0x88, 0x31, 0x6a, 0x13, 0xfe, 0x3f,
+ 0x17, 0xe4, 0xcf, 0xab, 0x30, 0xab, 0x7a, 0xf8, 0xf1, 0x6a, 0xae, 0x01, 0x36, 0xb7, 0x03, 0xd5,
+ 0x00, 0xcb, 0x24, 0xb3, 0x32, 0x1c, 0x8b, 0xcf, 0x73, 0x9b, 0x88, 0x04, 0xee, 0x42, 0x43, 0x06,
+ 0x4e, 0x92, 0x48, 0x11, 0x7d, 0x45, 0xa5, 0xbf, 0x03, 0xad, 0x28, 0x0e, 0xf2, 0x51, 0xeb, 0xf6,
+ 0xa0, 0x15, 0x05, 0x3c, 0x8e, 0x41, 0x3d, 0x70, 0x03, 0x73, 0xc8, 0xe1, 0xaa, 0x44, 0x24, 0x98,
+ 0xa2, 0x39, 0xf4, 0x59, 0xb0, 0x1c, 0x59, 0xc1, 0x2a, 0x89, 0x33, 0x84, 0x91, 0xa3, 0xfb, 0xa2,
+ 0xb4, 0x2a, 0x4a, 0xa3, 0x8c, 0xb8, 0xce, 0x9a, 0x5a, 0xe7, 0x01, 0x34, 0x64, 0x14, 0x24, 0x2a,
+ 0x2f, 0x2b, 0xe5, 0x68, 0x11, 0xea, 0x03, 0x56, 0x2e, 0x67, 0xfd, 0x8d, 0x84, 0x89, 0x10, 0x87,
+ 0x9b, 0x65, 0xd7, 0x09, 0x98, 0x18, 0xeb, 0xce, 0x1d, 0x22, 0x38, 0xd9, 0x14, 0x7a, 0x22, 0xa4,
+ 0x25, 0x34, 0x4a, 0xa6, 0xf0, 0x1f, 0x94, 0xa1, 0x1d, 0xc5, 0x10, 0xf1, 0x07, 0x79, 0xca, 0xb3,
+ 0x08, 0x87, 0x3c, 0x49, 0xc5, 0xac, 0x43, 0xa8, 0x42, 0x2f, 0x26, 0x5a, 0x42, 0x14, 0x1a, 0xa2,
+ 0x73, 0xe0, 0x77, 0x73, 0x27, 0x75, 0x1e, 0x66, 0x43, 0xd2, 0xbb, 0xb1, 0xe8, 0x69, 0x79, 0x18,
+ 0x47, 0xdc, 0x1d, 0xa8, 0xda, 0x96, 0xb8, 0xd2, 0xd0, 0x26, 0xec, 0x2f, 0xde, 0x86, 0x59, 0x35,
+ 0x92, 0x80, 0x1f, 0x67, 0x6b, 0xcf, 0x4d, 0x56, 0x8d, 0x12, 0xb5, 0xa8, 0x24, 0x8e, 0x4b, 0x61,
+ 0x17, 0x62, 0x12, 0xa2, 0x31, 0xe0, 0xe7, 0xa1, 0x2e, 0xe2, 0x9b, 0xc9, 0x65, 0xff, 0x77, 0xfb,
+ 0x50, 0xe7, 0x93, 0x80, 0x2f, 0x0b, 0x05, 0x38, 0x0f, 0x0d, 0x7e, 0x56, 0x0f, 0x6f, 0x5e, 0x1c,
+ 0xcb, 0x9a, 0x31, 0x22, 0x69, 0xf0, 0x32, 0xcc, 0x28, 0x91, 0x25, 0x26, 0xb1, 0xbc, 0x20, 0x92,
+ 0x82, 0x30, 0x89, 0x30, 0xb4, 0xd8, 0x62, 0x29, 0x0d, 0x28, 0xeb, 0x7f, 0x94, 0xc6, 0xa7, 0xa3,
+ 0x4d, 0x09, 0x96, 0x91, 0xb4, 0x5e, 0x34, 0x4a, 0x51, 0x1a, 0x7f, 0x1e, 0xda, 0x51, 0x00, 0x0a,
+ 0x3d, 0x80, 0x59, 0x19, 0x80, 0x12, 0xe7, 0x67, 0x46, 0x3c, 0x57, 0x20, 0x5d, 0xec, 0xb0, 0xcc,
+ 0x63, 0x58, 0xdd, 0x87, 0x07, 0x23, 0x4a, 0x34, 0x00, 0xfc, 0x4b, 0xe7, 0xf8, 0xc8, 0xe3, 0x11,
+ 0xb4, 0x22, 0xaf, 0x7b, 0x72, 0x16, 0x16, 0x84, 0x69, 0xac, 0x14, 0x86, 0x8c, 0x04, 0x3f, 0x33,
+ 0xc0, 0xdc, 0x82, 0xe2, 0x17, 0xa1, 0x7a, 0x97, 0x1e, 0x30, 0x0d, 0x11, 0x86, 0x54, 0x6a, 0x88,
+ 0x30, 0x98, 0x3d, 0x68, 0xc8, 0xe8, 0x57, 0xb2, 0xbe, 0x0b, 0xd0, 0xd8, 0x16, 0x01, 0xb5, 0x02,
+ 0x93, 0x29, 0xc9, 0xf0, 0x4d, 0x98, 0x51, 0x63, 0x5e, 0x49, 0xbc, 0x53, 0x30, 0xd3, 0x57, 0xa2,
+ 0x6a, 0x62, 0x1a, 0xd4, 0x2c, 0x4c, 0x75, 0x71, 0x4c, 0x21, 0xac, 0x66, 0xca, 0xe1, 0x2b, 0x99,
+ 0xc3, 0x3e, 0x46, 0x1a, 0xef, 0xc2, 0xe1, 0x64, 0x70, 0x2b, 0x59, 0xd3, 0x39, 0x38, 0xbc, 0x95,
+ 0x08, 0xa5, 0x09, 0x1b, 0x98, 0xcc, 0xc6, 0x3d, 0xa8, 0x8b, 0xe0, 0x43, 0x12, 0xe2, 0x22, 0xd4,
+ 0x4d, 0x1e, 0xdc, 0x60, 0x8c, 0x73, 0xa9, 0x5d, 0xab, 0x8c, 0xc9, 0x32, 0x0a, 0x22, 0x08, 0xb1,
+ 0x0d, 0x87, 0xf4, 0x78, 0x46, 0x12, 0x72, 0x0d, 0x0e, 0xed, 0x6b, 0x71, 0x13, 0x01, 0x3d, 0x9f,
+ 0x09, 0xad, 0x41, 0x11, 0x9d, 0x11, 0x7f, 0xb3, 0x01, 0x35, 0x1e, 0x90, 0x4b, 0x56, 0x71, 0x15,
+ 0x6a, 0x01, 0x7d, 0x16, 0xee, 0x51, 0xe7, 0xc7, 0x46, 0xf7, 0x84, 0x57, 0x88, 0xd3, 0xa3, 0x4f,
+ 0x42, 0xdd, 0x0f, 0x0e, 0x86, 0xe1, 0x69, 0xe0, 0xd5, 0xf1, 0x8c, 0x9b, 0x8c, 0x94, 0x08, 0x0e,
+ 0xc6, 0xca, 0x75, 0x41, 0x06, 0x90, 0x0b, 0x58, 0xb9, 0x12, 0x12, 0xc1, 0x81, 0x6e, 0xb2, 0x63,
+ 0x1d, 0xed, 0x3f, 0xa1, 0x96, 0x8c, 0x1c, 0x9f, 0x19, 0xcf, 0xbc, 0x2c, 0x88, 0x49, 0xc8, 0xc5,
+ 0xea, 0xee, 0xf3, 0xd9, 0x6d, 0x4c, 0x52, 0x37, 0x9f, 0x71, 0x22, 0x38, 0xd0, 0x2a, 0xb4, 0xed,
+ 0xbe, 0xeb, 0xac, 0xee, 0xba, 0x5f, 0xb2, 0x65, 0x88, 0xf8, 0xb5, 0xf1, 0xec, 0xbd, 0x90, 0x9c,
+ 0xc4, 0x9c, 0x21, 0x4c, 0x6f, 0x97, 0x1d, 0x70, 0x5a, 0x93, 0xc2, 0x70, 0x72, 0x12, 0x73, 0xe2,
+ 0x13, 0x72, 0x3e, 0xb3, 0x95, 0xfc, 0x36, 0xd4, 0xf9, 0x90, 0xa3, 0xeb, 0x6a, 0xf1, 0x9c, 0x52,
+ 0x53, 0xae, 0xc5, 0x92, 0x53, 0x15, 0xe1, 0xf0, 0xf1, 0xd7, 0x71, 0x66, 0x26, 0xc1, 0x91, 0xf3,
+ 0x26, 0x70, 0x5e, 0x86, 0xa6, 0x9c, 0x0a, 0xbd, 0xc1, 0xad, 0x90, 0xe0, 0x25, 0xa8, 0x0b, 0xc5,
+ 0xcc, 0xee, 0xcf, 0x2b, 0xd0, 0x8e, 0x06, 0x73, 0x3c, 0x09, 0x1f, 0x9d, 0x1c, 0x92, 0x5f, 0xae,
+ 0x40, 0x5d, 0x04, 0x26, 0xd3, 0xa6, 0x56, 0xd5, 0x82, 0x57, 0xc7, 0xc7, 0x39, 0x55, 0x35, 0xb8,
+ 0xcd, 0x0f, 0x6a, 0x6c, 0x63, 0x1e, 0x5d, 0xf4, 0x3b, 0x57, 0xc0, 0xbd, 0x11, 0xd2, 0x93, 0x98,
+ 0xb5, 0x60, 0x3a, 0x1f, 0x40, 0x3b, 0xe2, 0x42, 0x4b, 0xfa, 0x94, 0x9e, 0x1f, 0x3b, 0x15, 0xc9,
+ 0x2a, 0x25, 0xe0, 0x6f, 0x95, 0xa1, 0xba, 0x62, 0xef, 0xa7, 0xc6, 0xe1, 0x9d, 0x50, 0xab, 0x8b,
+ 0xcc, 0xc1, 0x8a, 0xbd, 0xaf, 0x29, 0x35, 0x5e, 0x0d, 0x25, 0xee, 0x5d, 0xbd, 0x79, 0x67, 0xc7,
+ 0xef, 0xc0, 0x62, 0x18, 0xd1, 0xb0, 0x5f, 0x6f, 0x42, 0x8d, 0xc7, 0xfc, 0xb3, 0xec, 0xd4, 0xc1,
+ 0xa8, 0xb8, 0x61, 0xdc, 0xab, 0xc8, 0x17, 0x5c, 0x4e, 0x2f, 0xec, 0x94, 0x19, 0x14, 0xdb, 0x29,
+ 0xe1, 0x24, 0x65, 0xa4, 0x44, 0x70, 0xb0, 0x2a, 0x77, 0xed, 0x5d, 0x2a, 0xcd, 0x54, 0x41, 0x95,
+ 0xf7, 0xed, 0x5d, 0x4a, 0x38, 0x3d, 0xe3, 0xdb, 0x31, 0xfd, 0x1d, 0x69, 0xa1, 0x0a, 0xf8, 0xd6,
+ 0x4c, 0x7f, 0x87, 0x70, 0x7a, 0xc6, 0xe7, 0xb0, 0x23, 0x61, 0x63, 0x12, 0x3e, 0x76, 0x52, 0x24,
+ 0x9c, 0x9e, 0xf1, 0xf9, 0xf6, 0x57, 0xa8, 0xb4, 0x49, 0x05, 0x7c, 0x9b, 0xf6, 0x57, 0x28, 0xe1,
+ 0xf4, 0xb1, 0x09, 0x6f, 0x4d, 0x36, 0x34, 0x8a, 0x09, 0x7f, 0x08, 0x73, 0x81, 0x16, 0xb9, 0x92,
+ 0x17, 0x4f, 0xce, 0x17, 0xcc, 0x8b, 0xc6, 0x43, 0x12, 0x18, 0x4c, 0x09, 0xf8, 0x01, 0x38, 0x5b,
+ 0x09, 0x5e, 0x82, 0xfa, 0x67, 0x6c, 0x2b, 0xd8, 0xd1, 0x8b, 0xeb, 0x9a, 0xc9, 0x63, 0xd3, 0x36,
+ 0x95, 0xc9, 0x53, 0x67, 0x5d, 0xe0, 0xac, 0x40, 0x8d, 0x89, 0xcf, 0x74, 0x72, 0x1c, 0x4b, 0xdd,
+ 0x47, 0x32, 0xc0, 0xea, 0x40, 0x0b, 0x9c, 0x13, 0x50, 0x63, 0x12, 0x92, 0x33, 0x24, 0x27, 0xa0,
+ 0xc6, 0xe4, 0x2e, 0xbf, 0x94, 0xcd, 0xb6, 0x5e, 0x5a, 0x0d, 0x4b, 0xcf, 0xc2, 0x9c, 0x3e, 0x1d,
+ 0x39, 0x28, 0xdf, 0x6b, 0x42, 0x8d, 0x5f, 0xa0, 0x49, 0x6a, 0xe4, 0xa7, 0xe1, 0x90, 0x98, 0xbf,
+ 0x25, 0xb9, 0x05, 0xaf, 0x64, 0xde, 0x9f, 0xd3, 0xaf, 0xe5, 0x48, 0x11, 0x90, 0x2c, 0x44, 0x47,
+ 0x98, 0x7c, 0x53, 0xc1, 0xa1, 0x34, 0x89, 0x7c, 0x37, 0xda, 0xbc, 0xd6, 0x0a, 0x6e, 0x6f, 0x71,
+ 0x5e, 0xb1, 0x05, 0x0e, 0x77, 0xb2, 0x68, 0x09, 0x5a, 0x6c, 0x69, 0x65, 0xc3, 0x25, 0xd5, 0xf6,
+ 0xec, 0x78, 0xfe, 0x9e, 0xa4, 0x26, 0x11, 0x1f, 0x5b, 0xd8, 0xfb, 0xa6, 0x67, 0xf1, 0x56, 0x49,
+ 0x1d, 0x7e, 0x6d, 0x3c, 0xc8, 0x72, 0x48, 0x4e, 0x62, 0x4e, 0x74, 0x17, 0x66, 0x2c, 0x1a, 0xf9,
+ 0x09, 0xa4, 0x52, 0x7f, 0x62, 0x3c, 0xd0, 0x4a, 0xcc, 0x40, 0x54, 0x6e, 0xd6, 0xa6, 0xf0, 0x6c,
+ 0xe8, 0x17, 0x6e, 0x36, 0x38, 0x54, 0x7c, 0x4b, 0x36, 0xe6, 0xc4, 0x67, 0xe0, 0x90, 0x36, 0x6f,
+ 0x1f, 0xeb, 0xae, 0x43, 0x9d, 0x4b, 0x81, 0xb3, 0x10, 0x1d, 0x51, 0xde, 0xd4, 0xb7, 0x1d, 0xb9,
+ 0x27, 0x12, 0xc9, 0x78, 0x0f, 0x5a, 0xe1, 0xc4, 0xa0, 0x5b, 0x7a, 0x1b, 0x5e, 0x2f, 0x6e, 0x43,
+ 0x34, 0xa7, 0x12, 0x6d, 0x1d, 0xda, 0xd1, 0x0c, 0xa1, 0x45, 0x1d, 0xee, 0x8d, 0x62, 0xb8, 0x78,
+ 0x76, 0x25, 0x1e, 0x81, 0x19, 0x65, 0xa2, 0xd0, 0xb2, 0x8e, 0xf8, 0x66, 0x31, 0xa2, 0x3a, 0xcd,
+ 0xf1, 0xae, 0x27, 0x9a, 0x31, 0x75, 0x56, 0xaa, 0xf1, 0xac, 0xfc, 0x71, 0x13, 0x5a, 0xd1, 0xa5,
+ 0xb5, 0x8c, 0x33, 0xe6, 0x9e, 0x37, 0x2c, 0x3c, 0x63, 0x86, 0xfc, 0xdd, 0x47, 0xde, 0x90, 0x30,
+ 0x0e, 0x36, 0xc5, 0x81, 0x1d, 0x44, 0xaa, 0xfa, 0x5a, 0x31, 0xeb, 0x43, 0x46, 0x4e, 0x04, 0x17,
+ 0x7a, 0xa0, 0x4b, 0x79, 0x6d, 0xcc, 0xa5, 0x06, 0x0d, 0x24, 0x57, 0xd2, 0x7b, 0xd0, 0xb6, 0xd9,
+ 0xd6, 0x6f, 0x2d, 0x5e, 0x79, 0xdf, 0x28, 0x86, 0xeb, 0x85, 0x2c, 0x24, 0xe6, 0x66, 0x6d, 0xdb,
+ 0x36, 0xf7, 0x99, 0x5e, 0x73, 0xb0, 0xc6, 0xa4, 0x6d, 0xbb, 0x1d, 0x33, 0x11, 0x15, 0x01, 0x5d,
+ 0x93, 0x7b, 0x97, 0x66, 0x81, 0x65, 0x89, 0x87, 0x2a, 0xde, 0xbf, 0xbc, 0x9f, 0x5a, 0x69, 0x85,
+ 0x1a, 0x5f, 0x9c, 0x00, 0x65, 0xec, 0x6a, 0xcb, 0x66, 0x50, 0xec, 0x8c, 0xda, 0x93, 0xce, 0xa0,
+ 0xba, 0x3b, 0xc2, 0x2f, 0x42, 0xf5, 0x91, 0x37, 0xcc, 0x5f, 0xab, 0xf9, 0x74, 0xe7, 0x14, 0xbf,
+ 0xaa, 0x6b, 0x42, 0xfe, 0x86, 0x3e, 0x9a, 0x93, 0x5c, 0x1c, 0x65, 0xd0, 0x73, 0x88, 0xae, 0xcb,
+ 0x05, 0xfd, 0x6d, 0x5d, 0xdf, 0x5e, 0x4e, 0xe8, 0x1b, 0xd3, 0xb0, 0x0d, 0x8f, 0x8a, 0x7b, 0x3b,
+ 0xca, 0x4a, 0x3e, 0xe9, 0x3a, 0x79, 0x27, 0xdc, 0x7f, 0x4c, 0x65, 0x29, 0x92, 0x63, 0x2b, 0xb0,
+ 0x7e, 0xb1, 0x0c, 0xad, 0xe8, 0x4e, 0x62, 0xda, 0x3b, 0xdf, 0xb2, 0xfd, 0x35, 0x6a, 0x5a, 0xd4,
+ 0x93, 0x7a, 0xfb, 0x7a, 0xe1, 0x65, 0xc7, 0x6e, 0x4f, 0x72, 0x90, 0x88, 0x17, 0x9f, 0x82, 0x56,
+ 0x98, 0x9b, 0x73, 0x28, 0xfb, 0x51, 0x05, 0x1a, 0xf2, 0x36, 0x63, 0xb2, 0x11, 0x37, 0xa0, 0x31,
+ 0x34, 0x0f, 0xdc, 0xbd, 0xf0, 0xc8, 0x74, 0xb6, 0xe0, 0x82, 0x64, 0xf7, 0x1e, 0xa7, 0x26, 0x92,
+ 0x0b, 0x7d, 0x0a, 0xea, 0x43, 0x7b, 0xd7, 0x0e, 0xa4, 0xf9, 0x38, 0x53, 0xc8, 0xce, 0xef, 0x3d,
+ 0x08, 0x1e, 0x56, 0x39, 0xbf, 0xc4, 0x14, 0x5e, 0x41, 0x2f, 0xac, 0xfc, 0x31, 0xa7, 0x26, 0x92,
+ 0x0b, 0xdf, 0x81, 0x86, 0x68, 0xce, 0x74, 0x8b, 0x84, 0xde, 0x93, 0x58, 0xd2, 0x79, 0xdb, 0x72,
+ 0x76, 0xa5, 0x27, 0xa1, 0x21, 0x2a, 0xcf, 0x91, 0x9a, 0x1f, 0xbe, 0xc0, 0xcf, 0x3b, 0x43, 0x7c,
+ 0x2f, 0x0e, 0xfe, 0x7d, 0xf4, 0x58, 0x06, 0x7e, 0x08, 0x87, 0x57, 0xcc, 0xc0, 0xdc, 0x32, 0x7d,
+ 0x4a, 0x68, 0xdf, 0xf5, 0xac, 0x4c, 0x54, 0x4f, 0x14, 0x49, 0x0f, 0x75, 0x3e, 0xaa, 0xa4, 0xfb,
+ 0xb9, 0xeb, 0xf0, 0x7f, 0x8e, 0xeb, 0xf0, 0x4f, 0x6b, 0x39, 0xfe, 0xbc, 0x49, 0x3c, 0x19, 0x4c,
+ 0xe0, 0x52, 0x0e, 0xbd, 0x6b, 0xfa, 0xde, 0xfb, 0x74, 0x01, 0xa7, 0xb6, 0xf9, 0xbe, 0xa6, 0x7b,
+ 0xf4, 0x8a, 0x78, 0x35, 0x97, 0xde, 0xad, 0xa4, 0x4b, 0xef, 0x6c, 0x01, 0x77, 0xca, 0xa7, 0x77,
+ 0x4d, 0xf7, 0xe9, 0x15, 0xd5, 0xae, 0x3a, 0xf5, 0xfe, 0x8f, 0xb9, 0xd1, 0x7e, 0x3b, 0xc7, 0xed,
+ 0xf3, 0x49, 0xdd, 0xed, 0x33, 0x46, 0x6a, 0x7e, 0x56, 0x7e, 0x9f, 0xdf, 0x69, 0xe4, 0xf8, 0x7d,
+ 0x16, 0x34, 0xbf, 0xcf, 0x98, 0x96, 0x25, 0x1d, 0x3f, 0xd7, 0x74, 0xc7, 0xcf, 0xe9, 0x02, 0x4e,
+ 0xcd, 0xf3, 0xb3, 0xa0, 0x79, 0x7e, 0x8a, 0x2a, 0x55, 0x5c, 0x3f, 0x0b, 0x9a, 0xeb, 0xa7, 0x88,
+ 0x51, 0xf1, 0xfd, 0x2c, 0x68, 0xbe, 0x9f, 0x22, 0x46, 0xc5, 0xf9, 0xb3, 0xa0, 0x39, 0x7f, 0x8a,
+ 0x18, 0x15, 0xef, 0xcf, 0x35, 0xdd, 0xfb, 0x53, 0x3c, 0x3e, 0xca, 0xa4, 0xff, 0xdc, 0x51, 0xf3,
+ 0x5f, 0xe8, 0xa8, 0xf9, 0xb5, 0x6a, 0x8e, 0x03, 0x86, 0x64, 0x3b, 0x60, 0xce, 0xe7, 0xcf, 0x64,
+ 0xb1, 0x07, 0x66, 0xf2, 0x55, 0x20, 0xed, 0x82, 0xb9, 0x9e, 0x70, 0xc1, 0x9c, 0x29, 0x60, 0xd6,
+ 0x7d, 0x30, 0xff, 0x6b, 0x9c, 0x0c, 0x7f, 0xd4, 0x18, 0x73, 0x9e, 0x7e, 0x47, 0x3d, 0x4f, 0x8f,
+ 0x59, 0xc9, 0xd2, 0x07, 0xea, 0x1b, 0xfa, 0x81, 0xfa, 0xdc, 0x04, 0xbc, 0xda, 0x89, 0x7a, 0x23,
+ 0xeb, 0x44, 0xdd, 0x9d, 0x00, 0x25, 0xf7, 0x48, 0x7d, 0x27, 0x7d, 0xa4, 0x3e, 0x3f, 0x01, 0x5e,
+ 0xe6, 0x99, 0x7a, 0x23, 0xeb, 0x4c, 0x3d, 0x49, 0xeb, 0x72, 0x0f, 0xd5, 0x9f, 0xd2, 0x0e, 0xd5,
+ 0xaf, 0x4d, 0x32, 0x5c, 0xf1, 0xe2, 0xf0, 0xd9, 0x9c, 0x53, 0xf5, 0x5b, 0x93, 0xc0, 0x8c, 0x77,
+ 0x62, 0xff, 0xfc, 0x5c, 0xac, 0x57, 0xf3, 0x87, 0x2f, 0x43, 0x2b, 0xbc, 0x68, 0x83, 0xbf, 0x0c,
+ 0xcd, 0xf0, 0x13, 0xb6, 0xa4, 0xe6, 0x1c, 0x8f, 0x0e, 0x75, 0x62, 0xf7, 0x2c, 0x53, 0xe8, 0x06,
+ 0xd4, 0xd8, 0x3f, 0xa9, 0x16, 0xaf, 0x4f, 0x76, 0xa1, 0x87, 0x55, 0x42, 0x38, 0x1f, 0xfe, 0xd7,
+ 0x63, 0x00, 0xca, 0x97, 0x3d, 0x93, 0x56, 0xfb, 0x1e, 0x33, 0x66, 0xc3, 0x80, 0x7a, 0xfc, 0x22,
+ 0x57, 0xe1, 0x97, 0x2f, 0x71, 0x0d, 0x4c, 0x5a, 0x02, 0xea, 0x11, 0xc9, 0x8e, 0xee, 0x43, 0x2b,
+ 0x74, 0xa4, 0x1a, 0x35, 0x0e, 0xf5, 0xd6, 0xc4, 0x50, 0xa1, 0x6b, 0x8f, 0x44, 0x10, 0x68, 0x11,
+ 0x6a, 0xbe, 0xeb, 0x05, 0x46, 0x9d, 0x43, 0xbd, 0x39, 0x31, 0xd4, 0xa6, 0xeb, 0x05, 0x84, 0xb3,
+ 0x8a, 0xae, 0x29, 0x1f, 0x4e, 0x4f, 0xd3, 0x35, 0xcd, 0x62, 0xff, 0x4b, 0x35, 0xb2, 0xa1, 0xcb,
+ 0x52, 0x1b, 0x85, 0x0c, 0x5d, 0x98, 0x7c, 0x96, 0x54, 0xad, 0x44, 0x72, 0x13, 0x24, 0x66, 0x42,
+ 0xec, 0x6f, 0x5e, 0x87, 0x4e, 0xdf, 0xdd, 0xa7, 0x1e, 0x89, 0xaf, 0x38, 0xc9, 0x5b, 0x68, 0xa9,
+ 0x7c, 0x84, 0xa1, 0xb5, 0x63, 0x5b, 0xb4, 0xd7, 0x97, 0xf6, 0xaf, 0x45, 0xa2, 0x34, 0xba, 0x0b,
+ 0x2d, 0xee, 0x63, 0x0f, 0x3d, 0xfc, 0xd3, 0x35, 0x52, 0xb8, 0xfa, 0x43, 0x00, 0x56, 0x11, 0xaf,
+ 0xfc, 0xb6, 0x1d, 0xf0, 0x31, 0x6c, 0x91, 0x28, 0xcd, 0x1a, 0xcc, 0xef, 0x91, 0xa9, 0x0d, 0x6e,
+ 0x8a, 0x06, 0x27, 0xf3, 0xd1, 0x15, 0x78, 0x8e, 0xe7, 0x25, 0x8e, 0x98, 0xc2, 0x55, 0xdf, 0x22,
+ 0xd9, 0x85, 0xfc, 0xde, 0x9c, 0x39, 0x10, 0x9f, 0x49, 0x70, 0xe7, 0x5d, 0x9d, 0xc4, 0x19, 0xe8,
+ 0x3c, 0x1c, 0xb1, 0xe8, 0xb6, 0xb9, 0x37, 0x0c, 0x1e, 0xd2, 0xdd, 0xd1, 0xd0, 0x0c, 0x68, 0xcf,
+ 0xe2, 0xdf, 0x6e, 0xb7, 0x49, 0xba, 0x00, 0x5d, 0x84, 0xa3, 0x32, 0x53, 0xa8, 0x31, 0x9b, 0x8d,
+ 0x9e, 0xc5, 0x3f, 0x65, 0x6e, 0x93, 0xac, 0x22, 0xfc, 0xc3, 0x1a, 0x9b, 0x74, 0x2e, 0xda, 0xef,
+ 0x41, 0xd5, 0xb4, 0x2c, 0xb9, 0x6c, 0x5e, 0x9e, 0x52, 0x41, 0xe4, 0xdd, 0x7b, 0x86, 0x80, 0x36,
+ 0xa2, 0x2b, 0x77, 0x62, 0xe1, 0xbc, 0x3a, 0x2d, 0x56, 0xf4, 0xa4, 0x84, 0xc4, 0x61, 0x88, 0x7b,
+ 0xe2, 0x16, 0x7f, 0xf5, 0xa7, 0x43, 0x8c, 0x2e, 0xf8, 0x4b, 0x1c, 0x74, 0x07, 0x6a, 0xbc, 0x85,
+ 0x62, 0x61, 0xbd, 0x32, 0x2d, 0xde, 0x7d, 0xd1, 0x3e, 0x8e, 0x81, 0xfb, 0xe2, 0xee, 0x9b, 0x72,
+ 0xe1, 0xb2, 0xac, 0x5f, 0xb8, 0x5c, 0x82, 0xba, 0x1d, 0xd0, 0xdd, 0xf4, 0xfd, 0xdb, 0xb1, 0xa2,
+ 0x2a, 0x2d, 0x8f, 0x60, 0x1d, 0x7b, 0x0f, 0xf0, 0x83, 0xdc, 0xdb, 0xf7, 0xb7, 0xa0, 0xc6, 0xd8,
+ 0x53, 0x7b, 0xc9, 0x49, 0x2a, 0xe6, 0x9c, 0xf8, 0x12, 0xd4, 0x58, 0x67, 0xc7, 0xf4, 0x4e, 0xb6,
+ 0xa7, 0x12, 0xb5, 0x67, 0x69, 0x06, 0xda, 0xee, 0x88, 0x7a, 0x5c, 0x31, 0xf0, 0x3f, 0xd7, 0x94,
+ 0x4b, 0x71, 0x3d, 0x55, 0xc6, 0xde, 0x9e, 0xda, 0x72, 0xaa, 0x52, 0x46, 0x12, 0x52, 0xf6, 0xce,
+ 0xf4, 0x68, 0x29, 0x39, 0x23, 0x09, 0x39, 0xfb, 0x29, 0x30, 0x53, 0x92, 0x76, 0x4f, 0x93, 0xb4,
+ 0xab, 0xd3, 0x23, 0x6a, 0xb2, 0x46, 0x8b, 0x64, 0x6d, 0x45, 0x97, 0xb5, 0xee, 0x64, 0x53, 0x1e,
+ 0x2d, 0x4d, 0x13, 0x48, 0xdb, 0xe7, 0x73, 0xa5, 0x6d, 0x49, 0x93, 0xb6, 0x69, 0xab, 0xfe, 0x98,
+ 0xe4, 0xed, 0xef, 0x6a, 0x50, 0x63, 0xcb, 0x23, 0x5a, 0x55, 0x65, 0xed, 0xad, 0xa9, 0x96, 0x56,
+ 0x55, 0xce, 0xd6, 0x13, 0x72, 0x76, 0x65, 0x3a, 0xa4, 0x94, 0x8c, 0xad, 0x27, 0x64, 0x6c, 0x4a,
+ 0xbc, 0x94, 0x7c, 0xad, 0x69, 0xf2, 0x75, 0x69, 0x3a, 0x34, 0x4d, 0xb6, 0xcc, 0x22, 0xd9, 0xba,
+ 0xa5, 0xcb, 0xd6, 0x84, 0xbb, 0x37, 0xbe, 0x57, 0x99, 0x40, 0xae, 0xde, 0xcf, 0x95, 0xab, 0x1b,
+ 0x9a, 0x5c, 0x4d, 0x53, 0xed, 0xc7, 0x24, 0x53, 0x57, 0xc4, 0xa6, 0x33, 0xfb, 0xe3, 0xa7, 0xbc,
+ 0x4d, 0x27, 0x7e, 0x1b, 0xda, 0xf1, 0xd3, 0x08, 0x19, 0xd7, 0xf3, 0x05, 0x59, 0x58, 0x6b, 0x98,
+ 0xc4, 0x97, 0xa1, 0x1d, 0x3f, 0x77, 0x90, 0x51, 0x97, 0xcf, 0x0b, 0x25, 0x97, 0x4c, 0xe1, 0x55,
+ 0x38, 0x92, 0xfe, 0x18, 0x3b, 0xc3, 0x0f, 0xaf, 0xdc, 0x2d, 0x0f, 0x3f, 0x45, 0x51, 0xb2, 0xf0,
+ 0x53, 0x98, 0x4b, 0x7c, 0x5e, 0x3d, 0x35, 0x06, 0xba, 0xac, 0x6c, 0x91, 0xab, 0x89, 0x8f, 0xf5,
+ 0xf4, 0xdb, 0xf2, 0xf1, 0x46, 0x18, 0xaf, 0xc0, 0x5c, 0x41, 0xe3, 0x27, 0xb9, 0x2c, 0xff, 0x45,
+ 0x98, 0x19, 0xd7, 0xf6, 0x8f, 0xe1, 0x32, 0x7f, 0x00, 0x9d, 0xd4, 0xd3, 0x10, 0xc9, 0x6a, 0x36,
+ 0x00, 0x06, 0x11, 0x8d, 0x14, 0xda, 0x8b, 0x53, 0x7c, 0xba, 0xc0, 0xf9, 0x88, 0x82, 0x81, 0x7f,
+ 0xbf, 0x0c, 0x47, 0xd2, 0xef, 0x42, 0x4c, 0x7a, 0xf8, 0x31, 0xa0, 0xc9, 0xb1, 0xa2, 0x2f, 0x3e,
+ 0xc2, 0x24, 0xba, 0x0f, 0xb3, 0xfe, 0xd0, 0xee, 0xd3, 0xe5, 0x1d, 0xd3, 0x19, 0x50, 0x5f, 0x9e,
+ 0x68, 0x0a, 0xde, 0x76, 0xd8, 0x8c, 0x39, 0x88, 0xc6, 0x8e, 0x9f, 0xc2, 0x8c, 0x52, 0x88, 0xde,
+ 0x85, 0x8a, 0x3b, 0x4a, 0xdd, 0x6b, 0xcc, 0xc7, 0x7c, 0x10, 0xea, 0x1b, 0xa9, 0xb8, 0xa3, 0xb4,
+ 0x4a, 0xaa, 0xea, 0x5b, 0xd5, 0xd4, 0x17, 0xdf, 0x85, 0x23, 0xe9, 0xa7, 0x17, 0x92, 0xc3, 0x73,
+ 0x36, 0xe5, 0x25, 0x10, 0xc3, 0x94, 0x3c, 0xf2, 0x2f, 0xc0, 0xe1, 0xe4, 0x83, 0x0a, 0x19, 0x5f,
+ 0xe3, 0xc4, 0x1f, 0x35, 0x85, 0xee, 0xfa, 0xf9, 0x5f, 0x2d, 0xc3, 0x9c, 0xde, 0x11, 0x74, 0x1c,
+ 0x90, 0x9e, 0xb3, 0xee, 0x3a, 0xb4, 0x53, 0x42, 0xcf, 0xc1, 0x11, 0x3d, 0x7f, 0xd1, 0xb2, 0x3a,
+ 0xe5, 0x34, 0x39, 0x33, 0x5b, 0x9d, 0x0a, 0x32, 0xe0, 0x58, 0x62, 0x84, 0xb8, 0x11, 0xed, 0x54,
+ 0xd1, 0x0b, 0xf0, 0x5c, 0xb2, 0x64, 0x34, 0x34, 0xfb, 0xb4, 0x53, 0xc3, 0x3f, 0xa9, 0x40, 0xed,
+ 0x91, 0x4f, 0x3d, 0xfc, 0x8f, 0x95, 0xf0, 0x2b, 0x8d, 0x77, 0xa0, 0xc6, 0xdf, 0x3a, 0x50, 0xbe,
+ 0x66, 0x2c, 0x27, 0xbe, 0x66, 0xd4, 0xbe, 0x88, 0x8b, 0xbf, 0x66, 0x7c, 0x07, 0x6a, 0xfc, 0x75,
+ 0x83, 0xe9, 0x39, 0xbf, 0x55, 0x86, 0x76, 0xfc, 0xd2, 0xc0, 0xd4, 0xfc, 0xea, 0x57, 0x21, 0x15,
+ 0xfd, 0xab, 0x90, 0xd7, 0xa1, 0xee, 0xf1, 0xef, 0x37, 0x84, 0x95, 0x49, 0x7e, 0x6b, 0xc2, 0x2b,
+ 0x24, 0x82, 0x04, 0x53, 0x98, 0x51, 0xdf, 0x51, 0x98, 0xbe, 0x19, 0xa7, 0xe5, 0x23, 0x4a, 0x3d,
+ 0xcb, 0x5f, 0xf4, 0x3c, 0xf3, 0x40, 0x0a, 0xa6, 0x9e, 0x89, 0x4f, 0x40, 0x6d, 0xc3, 0x76, 0x06,
+ 0xd9, 0x1f, 0x91, 0xe2, 0xef, 0x96, 0xa1, 0x29, 0x2f, 0xef, 0xe2, 0x05, 0xa8, 0xae, 0xd3, 0xa7,
+ 0xac, 0x21, 0xf2, 0xda, 0x70, 0xaa, 0x21, 0xf7, 0x79, 0x2f, 0x24, 0x3d, 0x09, 0xc9, 0xf0, 0xb5,
+ 0x68, 0x99, 0x9c, 0x9e, 0xf7, 0x1d, 0xa8, 0xf1, 0xe7, 0x0f, 0xa6, 0xe7, 0xfc, 0xb3, 0x16, 0x34,
+ 0xc4, 0x97, 0x98, 0xf8, 0x3b, 0x2d, 0x68, 0x88, 0x27, 0x11, 0xd0, 0x0d, 0x68, 0xfa, 0x7b, 0xbb,
+ 0xbb, 0xa6, 0x77, 0x60, 0x64, 0xbf, 0xbf, 0xa9, 0xbd, 0xa0, 0xd0, 0xdd, 0x14, 0xb4, 0x24, 0x64,
+ 0x42, 0x6f, 0x43, 0xad, 0x6f, 0x6e, 0xd3, 0x54, 0x38, 0x37, 0x8b, 0x79, 0xd9, 0xdc, 0xa6, 0x84,
+ 0x93, 0xa3, 0x5b, 0xd0, 0x92, 0xd3, 0xe2, 0x4b, 0x7f, 0xce, 0xf8, 0x7a, 0xc3, 0xc9, 0x8c, 0xb8,
+ 0xf0, 0x1d, 0x68, 0xca, 0xc6, 0xa0, 0x9b, 0xd1, 0x77, 0xa8, 0x49, 0xcf, 0x73, 0x66, 0x17, 0xa2,
+ 0x6f, 0xe5, 0xa3, 0x2f, 0x52, 0xbf, 0x5f, 0x81, 0x1a, 0x6b, 0xdc, 0x47, 0x46, 0x42, 0x27, 0x01,
+ 0x86, 0xa6, 0x1f, 0x6c, 0xec, 0x0d, 0x87, 0xd4, 0x92, 0x5f, 0xd8, 0x29, 0x39, 0xe8, 0x1c, 0x1c,
+ 0x16, 0x29, 0x7f, 0x67, 0x73, 0xaf, 0xdf, 0xa7, 0xd1, 0x67, 0xa2, 0xc9, 0x6c, 0xb4, 0x08, 0x75,
+ 0xfe, 0x48, 0x9f, 0xdc, 0x15, 0xbe, 0x51, 0x38, 0xb2, 0xdd, 0x0d, 0xdb, 0x91, 0xad, 0x11, 0x9c,
+ 0xd8, 0x85, 0x76, 0x94, 0xc7, 0x94, 0x70, 0x64, 0x3b, 0x8e, 0xed, 0x0c, 0xa4, 0x44, 0x87, 0x49,
+ 0xb6, 0xe8, 0xb0, 0xbf, 0xb2, 0xbd, 0x75, 0x22, 0x53, 0x2c, 0x7f, 0xdb, 0xb4, 0x87, 0xb2, 0x89,
+ 0x75, 0x22, 0x53, 0x0c, 0x69, 0x4f, 0x3e, 0x24, 0x51, 0xe3, 0x1d, 0x0c, 0x93, 0xf8, 0xc3, 0x72,
+ 0xf4, 0x31, 0x76, 0xd6, 0xc7, 0x99, 0x29, 0x5f, 0xd2, 0x09, 0xd5, 0xa1, 0x2d, 0x16, 0x04, 0xc5,
+ 0x45, 0x7d, 0x1c, 0x1a, 0xae, 0x33, 0xb4, 0x1d, 0x2a, 0x7d, 0x47, 0x32, 0x95, 0x18, 0xe3, 0x7a,
+ 0x6a, 0x8c, 0x65, 0xf9, 0xaa, 0x65, 0xb3, 0x26, 0x36, 0xe2, 0x72, 0x91, 0x83, 0xae, 0x43, 0xd3,
+ 0xa2, 0xfb, 0x76, 0x9f, 0xfa, 0x46, 0x93, 0x8b, 0xde, 0xab, 0x63, 0xc7, 0x76, 0x85, 0xd3, 0x92,
+ 0x90, 0x07, 0x07, 0xd0, 0x10, 0x59, 0x51, 0x97, 0xca, 0x4a, 0x97, 0xe2, 0x46, 0x57, 0xc6, 0x34,
+ 0xba, 0x5a, 0xd0, 0xe8, 0x5a, 0xb2, 0xd1, 0xf3, 0x5f, 0x03, 0x88, 0xc5, 0x0d, 0xcd, 0x40, 0xf3,
+ 0x91, 0xf3, 0xc4, 0x71, 0x9f, 0x3a, 0x9d, 0x12, 0x4b, 0x3c, 0xd8, 0xde, 0x66, 0xb5, 0x74, 0xca,
+ 0x2c, 0xc1, 0xe8, 0x6c, 0x67, 0xd0, 0xa9, 0x20, 0x80, 0x06, 0x4b, 0x50, 0xab, 0x53, 0x65, 0xff,
+ 0x6f, 0xf3, 0xf9, 0xeb, 0xd4, 0xd0, 0xf3, 0x70, 0xb4, 0xe7, 0xf4, 0xdd, 0xdd, 0x91, 0x19, 0xd8,
+ 0x5b, 0x43, 0xfa, 0x98, 0x7a, 0xbe, 0xed, 0x3a, 0x9d, 0x3a, 0x5b, 0xbd, 0xd6, 0x69, 0xf0, 0xd4,
+ 0xf5, 0x9e, 0xac, 0x53, 0x6a, 0xc9, 0xf7, 0x1f, 0x3a, 0x0d, 0xfc, 0xef, 0x65, 0x11, 0x0d, 0xc6,
+ 0xb7, 0x60, 0x56, 0x7b, 0xf1, 0xc4, 0x80, 0x26, 0x7f, 0x80, 0x22, 0xde, 0x8f, 0xcb, 0x24, 0x97,
+ 0x1e, 0xf1, 0xb9, 0xbc, 0xdc, 0xca, 0x88, 0x14, 0xbe, 0x0d, 0xa0, 0xbc, 0x73, 0x72, 0x12, 0x60,
+ 0xeb, 0x20, 0xa0, 0xbe, 0x78, 0xe3, 0x84, 0x41, 0xd4, 0x88, 0x92, 0xa3, 0xe2, 0x57, 0x34, 0x7c,
+ 0x7c, 0x15, 0x40, 0x79, 0xe5, 0x84, 0xe9, 0x15, 0x4b, 0x2d, 0x25, 0xc1, 0x92, 0xd9, 0xb8, 0x2b,
+ 0x7b, 0x10, 0xbe, 0x67, 0x12, 0xb6, 0x40, 0x78, 0xef, 0xd4, 0x16, 0xf0, 0x1c, 0xbc, 0x0a, 0x10,
+ 0x3f, 0xe9, 0x81, 0x17, 0x22, 0xd3, 0xfd, 0x26, 0xd4, 0x2c, 0x33, 0x30, 0xa5, 0xd5, 0x7c, 0x21,
+ 0xb1, 0x72, 0xc5, 0x2c, 0x84, 0x93, 0xe1, 0x6f, 0x97, 0x61, 0x56, 0x7d, 0xbe, 0x04, 0xbf, 0x07,
+ 0x35, 0xfe, 0xfe, 0xc9, 0x4d, 0x98, 0x55, 0xdf, 0x2f, 0x49, 0x3d, 0x1f, 0x2d, 0xf0, 0x54, 0x56,
+ 0xa2, 0x31, 0xe0, 0x5e, 0xd4, 0xa4, 0x8f, 0x0c, 0x75, 0x11, 0x9a, 0xf2, 0x39, 0x14, 0x7c, 0x06,
+ 0xda, 0xf1, 0xeb, 0x27, 0xcc, 0x76, 0x88, 0xfc, 0x70, 0x96, 0x65, 0x12, 0xff, 0x53, 0x15, 0xea,
+ 0x7c, 0x3a, 0xf1, 0x37, 0x2a, 0xaa, 0x84, 0xe2, 0x9f, 0x94, 0x73, 0xcf, 0x82, 0x97, 0xb5, 0x67,
+ 0x03, 0xe6, 0x52, 0xaf, 0xfe, 0xc8, 0xc7, 0x4e, 0x74, 0xc3, 0x7a, 0x15, 0x9a, 0x8e, 0x90, 0x4c,
+ 0xae, 0x3c, 0x73, 0xe9, 0x97, 0x7e, 0x38, 0x97, 0x94, 0x5e, 0x12, 0x12, 0xa3, 0x2b, 0x50, 0xa7,
+ 0x9e, 0xe7, 0x7a, 0x5c, 0xa5, 0xe6, 0x52, 0xef, 0xe7, 0xc4, 0x0f, 0xab, 0xac, 0x32, 0x2a, 0x22,
+ 0x88, 0xd1, 0x15, 0x78, 0xce, 0x17, 0x5a, 0x24, 0xf6, 0x94, 0xbe, 0xfc, 0xae, 0x5a, 0x5a, 0x9b,
+ 0xec, 0xc2, 0xf9, 0x4f, 0x87, 0x0b, 0xac, 0xa2, 0x78, 0x25, 0x55, 0x23, 0xcb, 0xa8, 0x0d, 0x75,
+ 0x5e, 0x51, 0xa7, 0xa2, 0xaa, 0x6d, 0x35, 0x47, 0xf1, 0x6a, 0xf3, 0x97, 0xa1, 0x29, 0xf3, 0x19,
+ 0xfd, 0xa2, 0x68, 0x7b, 0xa7, 0x84, 0x66, 0xa1, 0xb5, 0x49, 0x87, 0xdb, 0x6b, 0xae, 0x1f, 0x74,
+ 0xca, 0xe8, 0x10, 0xb4, 0xb9, 0x2e, 0x3c, 0x70, 0x86, 0x07, 0x9d, 0xca, 0xfc, 0xfb, 0xd0, 0x8e,
+ 0x7a, 0x84, 0x5a, 0x50, 0x5b, 0xdf, 0x1b, 0x0e, 0x3b, 0x25, 0xbe, 0x35, 0x0d, 0x5c, 0x2f, 0x74,
+ 0x4c, 0xaf, 0x3e, 0x63, 0xeb, 0x4c, 0xa7, 0x9c, 0x67, 0x0d, 0x2a, 0xa8, 0x03, 0xb3, 0xb2, 0x72,
+ 0xd1, 0xe6, 0x2a, 0xfe, 0x87, 0x32, 0xb4, 0xa3, 0x17, 0x63, 0xd8, 0xbe, 0x30, 0x9c, 0xe3, 0x7c,
+ 0x3b, 0xb0, 0x90, 0x98, 0xed, 0xfc, 0x07, 0x68, 0x12, 0x33, 0x7e, 0x16, 0xe6, 0xa4, 0xc9, 0x0d,
+ 0x07, 0x5f, 0x58, 0xcd, 0x44, 0xee, 0xfc, 0x9d, 0x68, 0xd4, 0x3b, 0x5c, 0xc5, 0x96, 0x5d, 0xc7,
+ 0xa1, 0xfd, 0x80, 0x8f, 0xfd, 0x61, 0x98, 0x59, 0x77, 0x83, 0x0d, 0xd7, 0xf7, 0x59, 0xcf, 0xc4,
+ 0x48, 0xc5, 0xe5, 0x15, 0x34, 0x07, 0x10, 0xde, 0x35, 0x63, 0x46, 0x12, 0xff, 0x5e, 0x19, 0x1a,
+ 0xe2, 0x1d, 0x1b, 0xfc, 0x9b, 0x65, 0x68, 0xc8, 0xb7, 0x6b, 0x5e, 0x87, 0x8e, 0xe7, 0x32, 0xe0,
+ 0xf0, 0x40, 0xd1, 0x5b, 0x91, 0xbd, 0x4c, 0xe5, 0xb3, 0x33, 0xae, 0xab, 0x48, 0x85, 0xdc, 0x02,
+ 0x68, 0x79, 0xe8, 0x1a, 0x80, 0x78, 0x1b, 0xe7, 0xe1, 0xc1, 0x88, 0x4a, 0x71, 0x4e, 0x5e, 0x31,
+ 0x93, 0xaf, 0xe9, 0xf0, 0x60, 0x8c, 0x42, 0x3d, 0xff, 0x55, 0x38, 0x44, 0xa8, 0x3f, 0x72, 0x1d,
+ 0x9f, 0xfe, 0xac, 0xde, 0xca, 0xcf, 0x7d, 0xf5, 0x7e, 0xfe, 0xbb, 0x55, 0xa8, 0xf3, 0xdd, 0x25,
+ 0xfe, 0x4e, 0x35, 0xda, 0x07, 0x67, 0xdc, 0x3d, 0x8c, 0x6f, 0x08, 0xa9, 0xda, 0xad, 0xed, 0x4b,
+ 0xd5, 0x30, 0xd3, 0x25, 0xf5, 0x66, 0x90, 0xaa, 0xd9, 0x3a, 0x87, 0x76, 0x23, 0xe8, 0x53, 0xd0,
+ 0x1a, 0x79, 0xee, 0xc0, 0x63, 0x1b, 0xe0, 0x5a, 0xe2, 0x65, 0x23, 0x9d, 0x6d, 0x43, 0x92, 0x91,
+ 0x88, 0x01, 0xaf, 0x43, 0x2b, 0xcc, 0xcd, 0x79, 0x28, 0x01, 0x41, 0xcd, 0x72, 0xe5, 0x22, 0x5e,
+ 0x25, 0xfc, 0x3f, 0x1b, 0x17, 0xf5, 0xc5, 0x9d, 0x76, 0xf4, 0xd6, 0xcd, 0xfc, 0x17, 0x64, 0xe4,
+ 0xf6, 0x10, 0xb4, 0x57, 0x3c, 0x77, 0xc4, 0xbf, 0x88, 0xef, 0x94, 0x98, 0x15, 0x10, 0xd3, 0xd8,
+ 0x29, 0xb3, 0xff, 0xab, 0xcf, 0xf8, 0xff, 0x0a, 0x57, 0x5e, 0x73, 0x9f, 0x32, 0xb2, 0x4e, 0x15,
+ 0x21, 0x98, 0x23, 0x94, 0x47, 0xab, 0xe4, 0xd6, 0xa9, 0x53, 0x63, 0x40, 0xf7, 0xed, 0x81, 0x38,
+ 0x0e, 0x76, 0xea, 0xf3, 0x8b, 0xe1, 0x0d, 0x1d, 0xa6, 0xcc, 0xe2, 0xf8, 0x39, 0x03, 0x4d, 0xb2,
+ 0xc7, 0xf7, 0x6f, 0x9d, 0x32, 0xcb, 0x66, 0x87, 0x02, 0x01, 0xbd, 0x6c, 0x3a, 0x7d, 0x3a, 0xe4,
+ 0x6b, 0x7e, 0x64, 0x6d, 0x6a, 0x4b, 0x27, 0xfe, 0xf2, 0xc3, 0x93, 0xe5, 0x1f, 0x7c, 0x78, 0xb2,
+ 0xfc, 0xa3, 0x0f, 0x4f, 0x96, 0x7f, 0xe3, 0xc7, 0x27, 0x4b, 0x3f, 0xf8, 0xf1, 0xc9, 0xd2, 0xdf,
+ 0xff, 0xf8, 0x64, 0xe9, 0x83, 0xca, 0x68, 0x6b, 0xab, 0xc1, 0xaf, 0x56, 0x5c, 0xfe, 0xcf, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xd3, 0xba, 0xe9, 0xbf, 0xe9, 0x61, 0x00, 0x00,
}
func (m *Event) Marshal() (dAtA []byte, err error) {
@@ -13667,6 +13984,98 @@ func (m *EventMessageValueOfBlockDataviewIsCollectionSet) MarshalToSizedBuffer(d
}
return len(dAtA) - i, nil
}
+func (m *EventMessageValueOfChatAdd) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventMessageValueOfChatAdd) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ChatAdd != nil {
+ {
+ size, err := m.ChatAdd.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x8
+ i--
+ dAtA[i] = 0x82
+ }
+ return len(dAtA) - i, nil
+}
+func (m *EventMessageValueOfChatUpdate) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventMessageValueOfChatUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ChatUpdate != nil {
+ {
+ size, err := m.ChatUpdate.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x8
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
+func (m *EventMessageValueOfChatUpdateReactions) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventMessageValueOfChatUpdateReactions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ChatUpdateReactions != nil {
+ {
+ size, err := m.ChatUpdateReactions.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x8
+ i--
+ dAtA[i] = 0x92
+ }
+ return len(dAtA) - i, nil
+}
+func (m *EventMessageValueOfChatDelete) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventMessageValueOfChatDelete) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.ChatDelete != nil {
+ {
+ size, err := m.ChatDelete.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x8
+ i--
+ dAtA[i] = 0x9a
+ }
+ return len(dAtA) - i, nil
+}
func (m *EventMessageValueOfAccountDetails) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
@@ -13759,6 +14168,192 @@ func (m *EventMessageValueOfAccountLinkChallenge) MarshalToSizedBuffer(dAtA []by
}
return len(dAtA) - i, nil
}
+func (m *EventChat) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventChat) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventChat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *EventChatAdd) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventChatAdd) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventChatAdd) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Message != nil {
+ {
+ size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.OrderId) > 0 {
+ i -= len(m.OrderId)
+ copy(dAtA[i:], m.OrderId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.OrderId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EventChatDelete) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventChatDelete) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventChatDelete) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EventChatUpdate) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventChatUpdate) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventChatUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Message != nil {
+ {
+ size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *EventChatUpdateReactions) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventChatUpdateReactions) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventChatUpdateReactions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Reactions != nil {
+ {
+ size, err := m.Reactions.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *EventAccount) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -14940,20 +15535,20 @@ func (m *EventBlockMarksInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
var l int
_ = l
if len(m.MarksInRange) > 0 {
- dAtA84 := make([]byte, len(m.MarksInRange)*10)
- var j83 int
+ dAtA91 := make([]byte, len(m.MarksInRange)*10)
+ var j90 int
for _, num := range m.MarksInRange {
for num >= 1<<7 {
- dAtA84[j83] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA91[j90] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j83++
+ j90++
}
- dAtA84[j83] = uint8(num)
- j83++
+ dAtA91[j90] = uint8(num)
+ j90++
}
- i -= j83
- copy(dAtA[i:], dAtA84[:j83])
- i = encodeVarintEvents(dAtA, i, uint64(j83))
+ i -= j90
+ copy(dAtA[i:], dAtA91[:j90])
+ i = encodeVarintEvents(dAtA, i, uint64(j90))
i--
dAtA[i] = 0xa
}
@@ -22423,6 +23018,54 @@ func (m *EventMessageValueOfBlockDataviewIsCollectionSet) Size() (n int) {
}
return n
}
+func (m *EventMessageValueOfChatAdd) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ChatAdd != nil {
+ l = m.ChatAdd.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+func (m *EventMessageValueOfChatUpdate) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ChatUpdate != nil {
+ l = m.ChatUpdate.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+func (m *EventMessageValueOfChatUpdateReactions) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ChatUpdateReactions != nil {
+ l = m.ChatUpdateReactions.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+func (m *EventMessageValueOfChatDelete) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.ChatDelete != nil {
+ l = m.ChatDelete.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
func (m *EventMessageValueOfAccountDetails) Size() (n int) {
if m == nil {
return 0
@@ -22471,6 +23114,83 @@ func (m *EventMessageValueOfAccountLinkChallenge) Size() (n int) {
}
return n
}
+func (m *EventChat) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *EventChatAdd) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.OrderId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ if m.Message != nil {
+ l = m.Message.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+
+func (m *EventChatDelete) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+
+func (m *EventChatUpdate) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ if m.Message != nil {
+ l = m.Message.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+
+func (m *EventChatUpdateReactions) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ if m.Reactions != nil {
+ l = m.Reactions.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+
func (m *EventAccount) Size() (n int) {
if m == nil {
return 0
@@ -28319,6 +29039,146 @@ func (m *EventMessage) Unmarshal(dAtA []byte) error {
}
m.Value = &EventMessageValueOfBlockDataviewIsCollectionSet{v}
iNdEx = postIndex
+ case 128:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatAdd", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &EventChatAdd{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &EventMessageValueOfChatAdd{v}
+ iNdEx = postIndex
+ case 129:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatUpdate", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &EventChatUpdate{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &EventMessageValueOfChatUpdate{v}
+ iNdEx = postIndex
+ case 130:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatUpdateReactions", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &EventChatUpdateReactions{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &EventMessageValueOfChatUpdateReactions{v}
+ iNdEx = postIndex
+ case 131:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChatDelete", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &EventChatDelete{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &EventMessageValueOfChatDelete{v}
+ iNdEx = postIndex
case 201:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AccountDetails", wireType)
@@ -28480,6 +29340,524 @@ func (m *EventMessage) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventChat) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Chat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Chat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EventChatAdd) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Add: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Add: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OrderId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OrderId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Message == nil {
+ m.Message = &model.ChatMessage{}
+ }
+ if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EventChatDelete) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Delete: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Delete: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EventChatUpdate) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Update: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Update: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Message == nil {
+ m.Message = &model.ChatMessage{}
+ }
+ if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *EventChatUpdateReactions) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: UpdateReactions: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: UpdateReactions: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Reactions", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Reactions == nil {
+ m.Reactions = &model.ChatMessageReactions{}
+ }
+ if err := m.Reactions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *EventAccount) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto
index 0642bc186..019992cf3 100644
--- a/pb/protos/commands.proto
+++ b/pb/protos/commands.proto
@@ -1592,6 +1592,28 @@ message Rpc {
}
}
+ message ChatAdd {
+ message Request {
+ string objectId = 1;
+ }
+
+ message Response {
+ Error error = 1;
+ string chatId = 2;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
message BookmarkFetch {
message Request {
string contextId = 1;
@@ -6429,6 +6451,7 @@ message Rpc {
message AccountSelectTrace {
message Request {
option (no_auth) = true;
+ string dir = 1; // empty means using OS-provided temp dir
}
message Response {
@@ -7256,6 +7279,198 @@ message Rpc {
}
}
}
+
+ message Chat {
+ message AddMessage {
+ message Request {
+ string chatObjectId = 1;
+ model.ChatMessage message = 2;
+ }
+
+ message Response {
+ Error error = 1;
+ string messageId = 2;
+ ResponseEvent event = 3;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+ message EditMessageContent {
+ message Request {
+ string chatObjectId = 1;
+ string messageId = 2;
+ model.ChatMessage editedMessage = 3;
+ }
+
+ message Response {
+ Error error = 1;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message ToggleMessageReaction {
+ message Request {
+ string chatObjectId = 1;
+ string messageId = 2;
+ string emoji = 3;
+ }
+
+ message Response {
+ Error error = 1;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message DeleteMessage {
+ message Request {
+ string chatObjectId = 1;
+ string messageId = 2;
+ }
+
+ message Response {
+ Error error = 1;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message GetMessages {
+ message Request {
+ string chatObjectId = 1;
+ string beforeOrderId = 2; // OrderId of the message before which to get messages
+ int32 limit = 3;
+ }
+
+ message Response {
+ Error error = 1;
+ repeated model.ChatMessage messages = 2;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message GetMessagesByIds {
+ message Request {
+ string chatObjectId = 1;
+ repeated string messageIds = 2;
+ }
+
+ message Response {
+ Error error = 1;
+ repeated model.ChatMessage messages = 2;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message SubscribeLastMessages {
+ message Request {
+ string chatObjectId = 1; // Identifier for the chat
+ int32 limit = 2; // Number of max last messages to return and subscribe
+ }
+
+ message Response {
+ Error error = 1;
+ repeated model.ChatMessage messages = 2; // List of messages
+ int32 numMessagesBefore = 3; // Number of messages before the returned messages
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+
+ message Unsubscribe {
+ message Request {
+ string chatObjectId = 1; // Identifier for the chat
+ }
+ message Response {
+ Error error = 1;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+ }
+ }
}
diff --git a/pb/protos/events.proto b/pb/protos/events.proto
index b0f3c6b89..80dc4a0f0 100644
--- a/pb/protos/events.proto
+++ b/pb/protos/events.proto
@@ -110,6 +110,30 @@ message Event {
P2PStatus.Update p2pStatusUpdate = 120;
Import.Finish importFinish = 121;
+
+ Chat.Add chatAdd = 128;
+ Chat.Update chatUpdate = 129;
+ Chat.UpdateReactions chatUpdateReactions = 130;
+ Chat.Delete chatDelete = 131;
+ }
+ }
+
+ message Chat {
+ message Add {
+ string id = 1;
+ string orderId = 2;
+ model.ChatMessage message = 3;
+ }
+ message Delete {
+ string id = 1;
+ }
+ message Update {
+ string id = 1;
+ model.ChatMessage message = 2;
+ }
+ message UpdateReactions {
+ string id = 1;
+ model.ChatMessage.Reactions reactions = 2;
}
}
@@ -1028,6 +1052,7 @@ message Event {
Synced = 3;
Failed = 4;
IncompatibleVersion = 5;
+ NetworkNeedsUpdate = 6;
}
}
}
@@ -1113,6 +1138,7 @@ message Event {
NotConnected = 0;
NotPossible = 1;
Connected = 2;
+ Restricted = 3; // only for ios for now, fallback to NotPossible if not implemented on client
}
}
diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto
index af68b0c67..9055a9287 100644
--- a/pb/protos/service/service.proto
+++ b/pb/protos/service/service.proto
@@ -73,6 +73,7 @@ service ClientCommands {
rpc ObjectCreate (anytype.Rpc.Object.Create.Request) returns (anytype.Rpc.Object.Create.Response);
rpc ObjectCreateBookmark (anytype.Rpc.Object.CreateBookmark.Request) returns (anytype.Rpc.Object.CreateBookmark.Response);
rpc ObjectCreateFromUrl (anytype.Rpc.Object.CreateFromUrl.Request) returns (anytype.Rpc.Object.CreateFromUrl.Response);
+ rpc ObjectChatAdd (anytype.Rpc.Object.ChatAdd.Request) returns (anytype.Rpc.Object.ChatAdd.Response);
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
rpc ObjectCreateSet (anytype.Rpc.Object.CreateSet.Request) returns (anytype.Rpc.Object.CreateSet.Response);
@@ -358,4 +359,14 @@ service ClientCommands {
rpc DeviceSetName (anytype.Rpc.Device.SetName.Request) returns (anytype.Rpc.Device.SetName.Response);
rpc DeviceList (anytype.Rpc.Device.List.Request) returns (anytype.Rpc.Device.List.Response);
rpc DeviceNetworkStateSet (anytype.Rpc.Device.NetworkState.Set.Request) returns (anytype.Rpc.Device.NetworkState.Set.Response);
+
+ // Chats dummy impl
+ rpc ChatAddMessage (anytype.Rpc.Chat.AddMessage.Request) returns (anytype.Rpc.Chat.AddMessage.Response);
+ rpc ChatEditMessageContent (anytype.Rpc.Chat.EditMessageContent.Request) returns (anytype.Rpc.Chat.EditMessageContent.Response);
+ rpc ChatToggleMessageReaction (anytype.Rpc.Chat.ToggleMessageReaction.Request) returns (anytype.Rpc.Chat.ToggleMessageReaction.Response);
+ rpc ChatDeleteMessage (anytype.Rpc.Chat.DeleteMessage.Request) returns (anytype.Rpc.Chat.DeleteMessage.Response);
+ rpc ChatGetMessages (anytype.Rpc.Chat.GetMessages.Request) returns (anytype.Rpc.Chat.GetMessages.Response);
+ rpc ChatGetMessagesByIds (anytype.Rpc.Chat.GetMessagesByIds.Request) returns (anytype.Rpc.Chat.GetMessagesByIds.Response);
+ rpc ChatSubscribeLastMessages (anytype.Rpc.Chat.SubscribeLastMessages.Request) returns (anytype.Rpc.Chat.SubscribeLastMessages.Response);
+ rpc ChatUnsubscribe (anytype.Rpc.Chat.Unsubscribe.Request) returns (anytype.Rpc.Chat.Unsubscribe.Response);
}
diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go
index 0028e30bb..69e398f3c 100644
--- a/pb/service/service.pb.go
+++ b/pb/service/service.pb.go
@@ -26,317 +26,327 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
- // 4950 bytes of a gzipped FileDescriptorProto
+ // 5118 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x24, 0x49,
- 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xa8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f,
- 0x8f, 0xdb, 0xb3, 0x33, 0xfb, 0x71, 0xec, 0x21, 0x21, 0x8f, 0x3d, 0xf6, 0x9a, 0xb3, 0x3d, 0xc6,
- 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0x53, 0x1d, 0x6e, 0x17, 0xae, 0xae, 0xac, 0xab, 0xca, 0x6e,
- 0x4f, 0x1f, 0x02, 0x81, 0x40, 0x20, 0x10, 0x88, 0x13, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xcf, 0xc0,
- 0xe3, 0x3d, 0x22, 0x9e, 0xd0, 0xee, 0x3f, 0x72, 0xaa, 0xcc, 0xac, 0xfc, 0x88, 0xca, 0xc8, 0x2a,
- 0xef, 0xd3, 0x8c, 0x3a, 0x7e, 0x11, 0x91, 0x59, 0x99, 0x19, 0x19, 0xf9, 0x51, 0xe5, 0xe8, 0x7a,
- 0xf9, 0x66, 0xa3, 0xac, 0x18, 0x67, 0xf5, 0x46, 0x0d, 0xd5, 0x32, 0x4b, 0xa1, 0xfd, 0x77, 0x2c,
- 0x7e, 0x8e, 0xdf, 0x4d, 0x8a, 0x15, 0x5f, 0x95, 0xf0, 0xd1, 0x87, 0x86, 0x4c, 0xd9, 0x7c, 0x9e,
- 0x14, 0xd3, 0x5a, 0x22, 0x1f, 0x7d, 0x60, 0x24, 0xb0, 0x84, 0x82, 0xab, 0xdf, 0x9f, 0xfe, 0xf7,
- 0xff, 0x8d, 0xa2, 0xf7, 0xb6, 0xf2, 0x0c, 0x0a, 0xbe, 0xa5, 0x34, 0xe2, 0xaf, 0xa2, 0xef, 0x6e,
- 0x96, 0xe5, 0x2e, 0xf0, 0x57, 0x50, 0xd5, 0x19, 0x2b, 0xe2, 0xdb, 0x63, 0xe5, 0x60, 0x7c, 0x5c,
- 0xa6, 0xe3, 0xcd, 0xb2, 0x1c, 0x1b, 0xe1, 0xf8, 0x18, 0x7e, 0xb2, 0x80, 0x9a, 0x7f, 0x74, 0x27,
- 0x0c, 0xd5, 0x25, 0x2b, 0x6a, 0x88, 0xcf, 0xa2, 0xdf, 0xd8, 0x2c, 0xcb, 0x09, 0xf0, 0x6d, 0x68,
- 0x2a, 0x30, 0xe1, 0x09, 0x87, 0xf8, 0x7e, 0x47, 0xd5, 0x05, 0xb4, 0x8f, 0x07, 0xfd, 0xa0, 0xf2,
- 0x73, 0x12, 0x7d, 0xa7, 0xf1, 0x73, 0xbe, 0xe0, 0x53, 0x76, 0x59, 0xc4, 0x37, 0xbb, 0x8a, 0x4a,
- 0xa4, 0x6d, 0xdf, 0x0a, 0x21, 0xca, 0xea, 0xeb, 0xe8, 0x57, 0x5f, 0x27, 0x79, 0x0e, 0x7c, 0xab,
- 0x82, 0xa6, 0xe0, 0xae, 0x8e, 0x14, 0x8d, 0xa5, 0x4c, 0xdb, 0xbd, 0x1d, 0x64, 0x94, 0xe1, 0xaf,
- 0xa2, 0xef, 0x4a, 0xc9, 0x31, 0xa4, 0x6c, 0x09, 0x55, 0xec, 0xd5, 0x52, 0x42, 0xe2, 0x91, 0x77,
- 0x20, 0x6c, 0x7b, 0x8b, 0x15, 0x4b, 0xa8, 0xb8, 0xdf, 0xb6, 0x12, 0x86, 0x6d, 0x1b, 0x48, 0xd9,
- 0xfe, 0xbb, 0x51, 0xf4, 0xfd, 0xcd, 0x34, 0x65, 0x8b, 0x82, 0xef, 0xb3, 0x34, 0xc9, 0xf7, 0xb3,
- 0xe2, 0xe2, 0x10, 0x2e, 0xb7, 0xce, 0x1b, 0xbe, 0x98, 0x41, 0xfc, 0xcc, 0x7d, 0xaa, 0x12, 0x1d,
- 0x6b, 0x76, 0x6c, 0xc3, 0xda, 0xf7, 0x27, 0x57, 0x53, 0x52, 0x65, 0xf9, 0xa7, 0x51, 0x74, 0x0d,
- 0x97, 0x65, 0xc2, 0xf2, 0x25, 0x98, 0xd2, 0x7c, 0xda, 0x63, 0xd8, 0xc5, 0x75, 0x79, 0x3e, 0xbb,
- 0xaa, 0x9a, 0x2a, 0x51, 0x1e, 0xbd, 0x6f, 0x77, 0x97, 0x09, 0xd4, 0x62, 0x38, 0x3d, 0xa4, 0x7b,
- 0x84, 0x42, 0xb4, 0xe7, 0x47, 0x43, 0x50, 0xe5, 0x2d, 0x8b, 0x62, 0xe5, 0x2d, 0x67, 0xb5, 0x76,
- 0xf6, 0xc0, 0x6b, 0xc1, 0x22, 0xb4, 0xaf, 0x87, 0x03, 0x48, 0xe5, 0xea, 0x8f, 0xa3, 0x5f, 0x7b,
- 0xcd, 0xaa, 0x8b, 0xba, 0x4c, 0x52, 0x50, 0x43, 0xe1, 0xae, 0xab, 0xdd, 0x4a, 0xf1, 0x68, 0xb8,
- 0xd7, 0x87, 0x59, 0x9d, 0xb6, 0x15, 0xbe, 0x2c, 0x01, 0xc7, 0x20, 0xa3, 0xd8, 0x08, 0xa9, 0x4e,
- 0x8b, 0x21, 0x65, 0xfb, 0x22, 0x8a, 0x8d, 0xed, 0x37, 0x7f, 0x02, 0x29, 0xdf, 0x9c, 0x4e, 0x71,
- 0xab, 0x18, 0x5d, 0x41, 0x8c, 0x37, 0xa7, 0x53, 0xaa, 0x55, 0xfc, 0xa8, 0x72, 0x76, 0x19, 0x7d,
- 0x80, 0x9c, 0xed, 0x67, 0xb5, 0x70, 0xb8, 0x1e, 0xb6, 0xa2, 0x30, 0xed, 0x74, 0x3c, 0x14, 0x57,
- 0x8e, 0xff, 0x62, 0x14, 0x7d, 0xcf, 0xe3, 0xf9, 0x18, 0xe6, 0x6c, 0x09, 0xf1, 0x93, 0x7e, 0x6b,
- 0x92, 0xd4, 0xfe, 0x3f, 0xbe, 0x82, 0x86, 0xa7, 0x9b, 0x4c, 0x20, 0x87, 0x94, 0x93, 0xdd, 0x44,
- 0x8a, 0x7b, 0xbb, 0x89, 0xc6, 0xac, 0x11, 0xd6, 0x0a, 0x77, 0x81, 0x6f, 0x2d, 0xaa, 0x0a, 0x0a,
- 0x4e, 0xb6, 0xa5, 0x41, 0x7a, 0xdb, 0xd2, 0x41, 0x3d, 0xf5, 0xd9, 0x05, 0xbe, 0x99, 0xe7, 0x64,
- 0x7d, 0xa4, 0xb8, 0xb7, 0x3e, 0x1a, 0x53, 0x1e, 0xd2, 0xe8, 0xd7, 0xad, 0x27, 0xc6, 0xf7, 0x8a,
- 0x33, 0x16, 0xd3, 0xcf, 0x42, 0xc8, 0xb5, 0x8f, 0xfb, 0xbd, 0x9c, 0xa7, 0x1a, 0x2f, 0xde, 0x96,
- 0xac, 0xa2, 0x9b, 0x45, 0x8a, 0x7b, 0xab, 0xa1, 0x31, 0xe5, 0xe1, 0x8f, 0xa2, 0xf7, 0x54, 0x94,
- 0x6c, 0xe7, 0xb3, 0x3b, 0xde, 0x10, 0x8a, 0x27, 0xb4, 0xbb, 0x3d, 0x94, 0x09, 0x0e, 0x4a, 0xa6,
- 0x82, 0xcf, 0x6d, 0xaf, 0x1e, 0x0a, 0x3d, 0x77, 0xc2, 0x50, 0xc7, 0xf6, 0x36, 0xe4, 0x40, 0xda,
- 0x96, 0xc2, 0x1e, 0xdb, 0x1a, 0x52, 0xb6, 0xab, 0xe8, 0xb7, 0xf4, 0x63, 0x69, 0xe6, 0x51, 0x21,
- 0x6f, 0x82, 0xf4, 0x1a, 0x51, 0x6f, 0x1b, 0xd2, 0xbe, 0x1e, 0x0f, 0x83, 0x3b, 0xf5, 0x51, 0x23,
- 0xd0, 0x5f, 0x1f, 0x34, 0xfe, 0xee, 0x84, 0x21, 0x65, 0xfb, 0xef, 0x47, 0xd1, 0x0f, 0x94, 0xec,
- 0x45, 0x91, 0xbc, 0xc9, 0x41, 0x4c, 0x89, 0x87, 0xc0, 0x2f, 0x59, 0x75, 0x31, 0x59, 0x15, 0x29,
- 0x31, 0xfd, 0xfb, 0xe1, 0x9e, 0xe9, 0x9f, 0x54, 0xb2, 0x32, 0x3e, 0x55, 0x51, 0xce, 0x4a, 0x9c,
- 0xf1, 0xb5, 0x35, 0xe0, 0xac, 0xa4, 0x32, 0x3e, 0x17, 0xe9, 0x58, 0x3d, 0x68, 0xc2, 0xa6, 0xdf,
- 0xea, 0x81, 0x1d, 0x27, 0x6f, 0x85, 0x10, 0x13, 0xb6, 0xda, 0x0e, 0xcc, 0x8a, 0xb3, 0x6c, 0x76,
- 0x5a, 0x4e, 0x9b, 0x6e, 0xfc, 0xd0, 0xdf, 0x43, 0x2d, 0x84, 0x08, 0x5b, 0x04, 0xaa, 0xbc, 0xfd,
- 0xa3, 0x49, 0x8c, 0xd4, 0x50, 0xda, 0xa9, 0xd8, 0x7c, 0x1f, 0x66, 0x49, 0xba, 0x52, 0xe3, 0xff,
- 0x93, 0xd0, 0xc0, 0xc3, 0xb4, 0x2e, 0xc4, 0xa7, 0x57, 0xd4, 0x52, 0xe5, 0xf9, 0xcf, 0x51, 0x74,
- 0xa7, 0xad, 0xfe, 0x79, 0x52, 0xcc, 0x40, 0xb5, 0xa7, 0x2c, 0xfd, 0x66, 0x31, 0x3d, 0x86, 0x9a,
- 0x27, 0x15, 0x8f, 0xbf, 0xf0, 0x57, 0x32, 0xa4, 0xa3, 0xcb, 0xf6, 0xa3, 0x6f, 0xa5, 0x6b, 0x5a,
- 0x7d, 0xd2, 0x04, 0x36, 0x15, 0x02, 0xdc, 0x56, 0x17, 0x12, 0x1c, 0x00, 0x6e, 0x85, 0x10, 0xd3,
- 0xea, 0x42, 0xb0, 0x57, 0x2c, 0x33, 0x0e, 0xbb, 0x50, 0x40, 0xd5, 0x6d, 0x75, 0xa9, 0xea, 0x22,
- 0x44, 0xab, 0x13, 0xa8, 0x09, 0x36, 0x8e, 0x37, 0x3d, 0x39, 0xae, 0x05, 0x8c, 0x74, 0xa6, 0xc7,
- 0xc7, 0xc3, 0x60, 0xb3, 0xba, 0xb3, 0x7c, 0x1e, 0xc3, 0x92, 0x5d, 0xe0, 0xd5, 0x9d, 0x6d, 0x42,
- 0x02, 0xc4, 0xea, 0xce, 0x0b, 0x9a, 0x19, 0xcc, 0xf2, 0xf3, 0x2a, 0x83, 0x4b, 0x34, 0x83, 0xd9,
- 0xca, 0x8d, 0x98, 0x98, 0xc1, 0x3c, 0x98, 0xf2, 0x70, 0x18, 0xfd, 0x8a, 0x10, 0xfe, 0x01, 0xcb,
- 0x8a, 0xf8, 0xba, 0x47, 0xa9, 0x11, 0x68, 0xab, 0x37, 0x68, 0x00, 0x95, 0xb8, 0xf9, 0x75, 0x2b,
- 0x29, 0x52, 0xc8, 0xbd, 0x25, 0x36, 0xe2, 0x60, 0x89, 0x1d, 0xcc, 0xa4, 0x0e, 0x42, 0xd8, 0xc4,
- 0xaf, 0xc9, 0x79, 0x52, 0x65, 0xc5, 0x2c, 0xf6, 0xe9, 0x5a, 0x72, 0x22, 0x75, 0xf0, 0x71, 0xa8,
- 0x0b, 0x2b, 0xc5, 0xcd, 0xb2, 0xac, 0x9a, 0xb0, 0xe8, 0xeb, 0xc2, 0x2e, 0x12, 0xec, 0xc2, 0x1d,
- 0xd4, 0xef, 0x6d, 0x1b, 0xd2, 0x3c, 0x2b, 0x82, 0xde, 0x14, 0x32, 0xc4, 0x9b, 0x41, 0x51, 0xe7,
- 0xdd, 0x87, 0x64, 0x09, 0x6d, 0xcd, 0x7c, 0x4f, 0xc6, 0x06, 0x82, 0x9d, 0x17, 0x81, 0x66, 0x9d,
- 0x26, 0xc4, 0x07, 0xc9, 0x05, 0x34, 0x0f, 0x18, 0x9a, 0x79, 0x2d, 0xf6, 0xe9, 0x3b, 0x04, 0xb1,
- 0x4e, 0xf3, 0x93, 0xca, 0xd5, 0x22, 0xfa, 0x40, 0xc8, 0x8f, 0x92, 0x8a, 0x67, 0x69, 0x56, 0x26,
- 0x45, 0x9b, 0xff, 0xfb, 0xc6, 0x75, 0x87, 0xd2, 0x2e, 0xd7, 0x07, 0xd2, 0xca, 0xed, 0xbf, 0x8f,
- 0xa2, 0x9b, 0xd8, 0xef, 0x11, 0x54, 0xf3, 0x4c, 0x2c, 0x23, 0x6b, 0x19, 0x84, 0xe3, 0xcf, 0xc3,
- 0x46, 0x3b, 0x0a, 0xba, 0x34, 0x3f, 0xbc, 0xba, 0xa2, 0x2a, 0xd8, 0x1f, 0x46, 0x91, 0x5c, 0xae,
- 0x88, 0x25, 0xa5, 0x3b, 0x6a, 0xd5, 0x3a, 0xc6, 0x59, 0x4f, 0xde, 0x0c, 0x10, 0x66, 0xaa, 0x90,
- 0xbf, 0x8b, 0x95, 0x72, 0xec, 0xd5, 0x10, 0x22, 0x62, 0xaa, 0x40, 0x08, 0x2e, 0xe8, 0xe4, 0x9c,
- 0x5d, 0xfa, 0x0b, 0xda, 0x48, 0xc2, 0x05, 0x55, 0x84, 0xd9, 0xbb, 0x52, 0x05, 0xf5, 0xed, 0x5d,
- 0xb5, 0xc5, 0x08, 0xed, 0x5d, 0x61, 0x46, 0x19, 0x66, 0xd1, 0x6f, 0xda, 0x86, 0x9f, 0x33, 0x76,
- 0x31, 0x4f, 0xaa, 0x8b, 0xf8, 0x11, 0xad, 0xdc, 0x32, 0xda, 0xd1, 0xda, 0x20, 0xd6, 0x84, 0x05,
- 0xdb, 0x61, 0x93, 0x68, 0x9c, 0x56, 0x39, 0x0a, 0x0b, 0x8e, 0x0d, 0x85, 0x10, 0x61, 0x81, 0x40,
- 0x4d, 0xe4, 0xb6, 0xbd, 0x4d, 0x00, 0xaf, 0x96, 0x1c, 0xf5, 0x09, 0x50, 0xab, 0x25, 0x0f, 0x86,
- 0xbb, 0xd0, 0x6e, 0x95, 0x94, 0xe7, 0xfe, 0x2e, 0x24, 0x44, 0xe1, 0x2e, 0xd4, 0x22, 0xb8, 0xbd,
- 0x27, 0x90, 0x54, 0xe9, 0xb9, 0xbf, 0xbd, 0xa5, 0x2c, 0xdc, 0xde, 0x9a, 0xc1, 0xed, 0x2d, 0x05,
- 0xaf, 0x33, 0x7e, 0x7e, 0x00, 0x3c, 0xf1, 0xb7, 0xb7, 0xcb, 0x84, 0xdb, 0xbb, 0xc3, 0x9a, 0x4c,
- 0xc6, 0x76, 0x38, 0x59, 0xbc, 0xa9, 0xd3, 0x2a, 0x7b, 0x03, 0x71, 0xc0, 0x8a, 0x86, 0x88, 0x4c,
- 0x86, 0x84, 0x4d, 0x90, 0x56, 0x3e, 0x5b, 0xd9, 0xde, 0xb4, 0x46, 0x41, 0xba, 0xb5, 0x61, 0x11,
- 0x44, 0x90, 0xf6, 0x93, 0xb8, 0x7a, 0xbb, 0x15, 0x5b, 0x94, 0x75, 0x4f, 0xf5, 0x10, 0x14, 0xae,
- 0x5e, 0x17, 0x56, 0x3e, 0xdf, 0x46, 0xbf, 0x6d, 0x3f, 0xd2, 0xd3, 0xa2, 0xd6, 0x5e, 0xd7, 0xe9,
- 0xe7, 0x64, 0x61, 0xc4, 0xb6, 0x54, 0x00, 0x37, 0x69, 0x4a, 0xeb, 0x99, 0x6f, 0x03, 0x4f, 0xb2,
- 0xbc, 0x8e, 0xef, 0xf9, 0x6d, 0xb4, 0x72, 0x22, 0x4d, 0xf1, 0x71, 0x78, 0xcc, 0x6e, 0x2f, 0xca,
- 0x3c, 0x4b, 0xbb, 0xfb, 0x93, 0x4a, 0x57, 0x8b, 0xc3, 0x63, 0xd6, 0xc6, 0x70, 0x0c, 0x9a, 0x00,
- 0x97, 0xff, 0x39, 0x59, 0x95, 0xe0, 0x8f, 0x41, 0x0e, 0x12, 0x8e, 0x41, 0x18, 0xc5, 0xf5, 0x99,
- 0x00, 0xdf, 0x4f, 0x56, 0x6c, 0x41, 0xc4, 0x20, 0x2d, 0x0e, 0xd7, 0xc7, 0xc6, 0x4c, 0xa6, 0xa0,
- 0x3d, 0xec, 0x15, 0x1c, 0xaa, 0x22, 0xc9, 0x77, 0xf2, 0x64, 0x56, 0xc7, 0xc4, 0xb8, 0x71, 0x29,
- 0x22, 0x53, 0xa0, 0x69, 0xcf, 0x63, 0xdc, 0xab, 0x77, 0x92, 0x25, 0xab, 0x32, 0x4e, 0x3f, 0x46,
- 0x83, 0xf4, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0xdb, 0xac, 0xd2, 0xf3, 0x6c, 0x09, 0xd3, 0x80, 0xb7,
- 0x16, 0x19, 0xe0, 0xcd, 0x42, 0x3d, 0x8d, 0x36, 0x61, 0x8b, 0x2a, 0x05, 0xb2, 0xd1, 0xa4, 0xb8,
- 0xb7, 0xd1, 0x34, 0xa6, 0x3c, 0xfc, 0xf5, 0x28, 0xfa, 0x1d, 0x29, 0xb5, 0x37, 0x0d, 0xb7, 0x93,
- 0xfa, 0xfc, 0x0d, 0x4b, 0xaa, 0x69, 0xfc, 0xb1, 0xcf, 0x8e, 0x17, 0xd5, 0xae, 0x9f, 0x5e, 0x45,
- 0x05, 0x3f, 0xd6, 0xfd, 0xac, 0xb6, 0x46, 0x9c, 0xf7, 0xb1, 0x3a, 0x48, 0xf8, 0xb1, 0x62, 0x14,
- 0x07, 0x10, 0x21, 0x97, 0x0b, 0xf4, 0x7b, 0xa4, 0xbe, 0xbb, 0x4a, 0xbf, 0xdf, 0xcb, 0xe1, 0xf8,
- 0xd8, 0x08, 0xdd, 0xde, 0xb2, 0x4e, 0xd9, 0xf0, 0xf7, 0x98, 0xf1, 0x50, 0x9c, 0xf4, 0xac, 0x47,
- 0x45, 0xd8, 0x73, 0x67, 0x64, 0x8c, 0x87, 0xe2, 0x84, 0x67, 0x2b, 0xac, 0x85, 0x3c, 0x7b, 0x42,
- 0xdb, 0x78, 0x28, 0x8e, 0x33, 0x0a, 0xc5, 0xb4, 0xf3, 0xc2, 0xa3, 0x80, 0x1d, 0x3c, 0x37, 0xac,
- 0x0d, 0x62, 0x95, 0xc3, 0xbf, 0x1d, 0x45, 0xdf, 0x37, 0x1e, 0x0f, 0xd8, 0x34, 0x3b, 0x5b, 0x49,
- 0xe8, 0x55, 0x92, 0x2f, 0xa0, 0x8e, 0x9f, 0x52, 0xd6, 0xba, 0xac, 0x2e, 0xc1, 0xb3, 0x2b, 0xe9,
- 0xe0, 0xb1, 0xb3, 0x59, 0x96, 0xf9, 0xea, 0x04, 0xe6, 0x65, 0x4e, 0x8e, 0x1d, 0x07, 0x09, 0x8f,
- 0x1d, 0x8c, 0xe2, 0x4c, 0xf3, 0x84, 0x35, 0x79, 0xac, 0x37, 0xd3, 0x14, 0xa2, 0x70, 0xa6, 0xd9,
- 0x22, 0x38, 0x57, 0x3a, 0x61, 0x5b, 0x2c, 0xcf, 0x21, 0xe5, 0xdd, 0x83, 0x47, 0xad, 0x69, 0x88,
- 0x70, 0xae, 0x84, 0x48, 0xb3, 0x46, 0x6f, 0xd7, 0x45, 0x49, 0x05, 0xcf, 0x57, 0xfb, 0x59, 0x71,
- 0x11, 0xfb, 0xd3, 0x02, 0x03, 0x10, 0x6b, 0x74, 0x2f, 0x88, 0xd7, 0x5f, 0xa7, 0xc5, 0x94, 0xf9,
- 0xd7, 0x5f, 0x8d, 0x24, 0xbc, 0xfe, 0x52, 0x04, 0x36, 0x79, 0x0c, 0x94, 0xc9, 0x46, 0x12, 0x36,
- 0xa9, 0x08, 0x5f, 0x28, 0x54, 0x3b, 0xb9, 0x64, 0x28, 0x44, 0x7b, 0xb7, 0xf7, 0x7b, 0x39, 0xdc,
- 0x43, 0xdb, 0x85, 0xd8, 0x0e, 0xf0, 0xf4, 0xdc, 0xdf, 0x43, 0x1d, 0x24, 0xdc, 0x43, 0x31, 0x8a,
- 0xab, 0x74, 0xc2, 0xf4, 0x42, 0xf2, 0x9e, 0xbf, 0x7f, 0x74, 0x16, 0x91, 0xf7, 0x7b, 0x39, 0xbc,
- 0x34, 0xda, 0x9b, 0x8b, 0x67, 0xe6, 0xed, 0xe4, 0x52, 0x16, 0x5e, 0x1a, 0x69, 0x06, 0x97, 0x5e,
- 0x0a, 0x9a, 0xc7, 0xe9, 0x2f, 0xbd, 0x91, 0x87, 0x4b, 0xef, 0x70, 0xca, 0xc9, 0xbf, 0x8e, 0xa2,
- 0xeb, 0xb6, 0x97, 0x43, 0xd6, 0x8c, 0x91, 0x57, 0x49, 0x9e, 0x4d, 0x13, 0x0e, 0x27, 0xec, 0x02,
- 0x0a, 0xb4, 0xb7, 0xe2, 0x96, 0x56, 0xf2, 0x63, 0x47, 0x81, 0xd8, 0x5b, 0x19, 0xa4, 0x88, 0xfb,
- 0x89, 0xa4, 0x4f, 0x6b, 0xd8, 0x4a, 0x6a, 0x22, 0x92, 0x39, 0x48, 0xb8, 0x9f, 0x60, 0x14, 0xe7,
- 0xab, 0x52, 0xfe, 0xe2, 0x6d, 0x09, 0x55, 0x06, 0x45, 0x0a, 0xfe, 0x7c, 0x15, 0x53, 0xe1, 0x7c,
- 0xd5, 0x43, 0x77, 0xb6, 0x1e, 0x74, 0x70, 0xea, 0xde, 0x1d, 0xc0, 0x44, 0xe0, 0xee, 0x00, 0x81,
- 0xe2, 0x4a, 0x1a, 0xc0, 0xbb, 0x7d, 0xd7, 0xb1, 0x12, 0xdc, 0xbe, 0xa3, 0xe9, 0xce, 0x86, 0x8e,
- 0x66, 0x26, 0xcd, 0x30, 0xe9, 0x29, 0xfa, 0xc4, 0x1e, 0x2e, 0x6b, 0x83, 0x58, 0xff, 0x0e, 0xd2,
- 0x31, 0xe4, 0x89, 0x98, 0x42, 0x02, 0xdb, 0x34, 0x2d, 0x33, 0x64, 0x07, 0xc9, 0x62, 0x95, 0xc3,
- 0xbf, 0x1c, 0x45, 0x1f, 0xf9, 0x3c, 0xbe, 0x2c, 0x85, 0xdf, 0x27, 0xfd, 0xb6, 0x24, 0x49, 0x5c,
- 0x8e, 0x08, 0x6b, 0xa8, 0x32, 0xfc, 0x69, 0xf4, 0x61, 0x2b, 0x32, 0x77, 0x27, 0x54, 0x01, 0xdc,
- 0x04, 0x4a, 0x97, 0x1f, 0x73, 0xda, 0xfd, 0xc6, 0x60, 0xde, 0xac, 0x4d, 0xdc, 0x72, 0xd5, 0x68,
- 0x6d, 0xa2, 0x6d, 0x28, 0x31, 0xb1, 0x36, 0xf1, 0x60, 0x66, 0x57, 0xc3, 0xae, 0xde, 0xeb, 0x8c,
- 0x9f, 0x8b, 0xdc, 0x07, 0xed, 0x6a, 0x38, 0x65, 0xd5, 0x10, 0xb1, 0xab, 0x41, 0xc2, 0x38, 0x3b,
- 0x68, 0xc1, 0x66, 0x6c, 0xfa, 0xe2, 0xaa, 0x36, 0x64, 0x8f, 0xcc, 0x07, 0xfd, 0x20, 0xee, 0xaf,
- 0xad, 0x58, 0x2d, 0x43, 0x1e, 0x85, 0x2c, 0xa0, 0xa5, 0xc8, 0xda, 0x20, 0x56, 0x39, 0xfc, 0xf3,
- 0xe8, 0x7b, 0x9d, 0x8a, 0xed, 0x40, 0xc2, 0x17, 0x15, 0x4c, 0xe3, 0x8d, 0x9e, 0x72, 0xb7, 0xa0,
- 0x76, 0xfd, 0x64, 0xb8, 0x42, 0x27, 0x5f, 0x6e, 0x39, 0xd9, 0xad, 0x74, 0x19, 0x9e, 0x86, 0x4c,
- 0xba, 0x6c, 0x30, 0x5f, 0xa6, 0x75, 0x3a, 0x4b, 0x5e, 0xbb, 0x77, 0x6d, 0x2e, 0x93, 0x2c, 0x17,
- 0xc7, 0x28, 0x1f, 0x87, 0x8c, 0x3a, 0x68, 0x70, 0xc9, 0x4b, 0xaa, 0x74, 0x22, 0xb3, 0x18, 0xe3,
- 0xd6, 0x52, 0xe9, 0x31, 0x1d, 0x09, 0x3c, 0x2b, 0xa5, 0xf5, 0x81, 0xb4, 0x72, 0xcb, 0xdb, 0xad,
- 0xc2, 0xe6, 0x67, 0xbb, 0x93, 0xfb, 0xbc, 0x2a, 0x55, 0x4f, 0x4f, 0x5f, 0x1f, 0x48, 0x2b, 0xaf,
- 0x7f, 0x16, 0x7d, 0xd8, 0xf5, 0xaa, 0x26, 0xa2, 0x8d, 0x5e, 0x53, 0x68, 0x2e, 0x7a, 0x32, 0x5c,
- 0xc1, 0x2c, 0x2f, 0xbe, 0xcc, 0x6a, 0xce, 0xaa, 0xd5, 0xe4, 0x9c, 0x5d, 0xb6, 0x77, 0x92, 0xdd,
- 0xd1, 0xaa, 0x80, 0xb1, 0x45, 0x10, 0xcb, 0x0b, 0x3f, 0xd9, 0x71, 0x65, 0xee, 0x2e, 0xd7, 0x84,
- 0x2b, 0x8b, 0xe8, 0x71, 0xe5, 0x92, 0x26, 0x56, 0xb5, 0xb5, 0x32, 0x17, 0xad, 0xef, 0xfb, 0x8b,
- 0xda, 0xbd, 0x6c, 0xfd, 0xa0, 0x1f, 0x34, 0x19, 0x8b, 0x12, 0x6f, 0x67, 0x67, 0x67, 0xba, 0x4e,
- 0xfe, 0x92, 0xda, 0x08, 0x91, 0xb1, 0x10, 0xa8, 0x49, 0x80, 0x77, 0xb2, 0x1c, 0xc4, 0x99, 0xdc,
- 0xcb, 0xb3, 0xb3, 0x9c, 0x25, 0x53, 0x94, 0x00, 0x37, 0xe2, 0xb1, 0x2d, 0x27, 0x12, 0x60, 0x1f,
- 0x67, 0xae, 0x34, 0x35, 0xd2, 0x63, 0x48, 0x59, 0x91, 0x66, 0x39, 0xbe, 0xa2, 0x25, 0x34, 0xb5,
- 0x90, 0xb8, 0xd2, 0xd4, 0x81, 0xcc, 0xc4, 0xd8, 0x88, 0x9a, 0x61, 0xdf, 0x96, 0xff, 0x6e, 0x57,
- 0xd1, 0x12, 0x13, 0x13, 0xa3, 0x07, 0x33, 0xeb, 0xc0, 0x46, 0x78, 0x5a, 0x0a, 0xe3, 0x37, 0xba,
- 0x5a, 0x52, 0x42, 0xac, 0x03, 0x5d, 0xc2, 0xac, 0x67, 0x9a, 0xdf, 0xb7, 0xd9, 0x65, 0x21, 0x8c,
- 0xde, 0xea, 0xaa, 0xb4, 0x32, 0x62, 0x3d, 0x83, 0x19, 0x65, 0xf8, 0xc7, 0xd1, 0x2f, 0x0b, 0xc3,
- 0x15, 0x2b, 0xe3, 0x6b, 0x1e, 0x85, 0xca, 0xba, 0x4d, 0x75, 0x9d, 0x94, 0x9b, 0x4b, 0x81, 0xba,
- 0x6f, 0x9c, 0xd6, 0xc9, 0x0c, 0xe2, 0x3b, 0x44, 0x8b, 0x0b, 0x29, 0x71, 0x29, 0xb0, 0x4b, 0xb9,
- 0xbd, 0xe2, 0x90, 0x4d, 0x95, 0x75, 0x4f, 0x0d, 0xb5, 0x30, 0xd4, 0x2b, 0x6c, 0xc8, 0x24, 0x33,
- 0x87, 0xc9, 0x32, 0x9b, 0xe9, 0x09, 0x47, 0xc6, 0xad, 0x1a, 0x25, 0x33, 0x86, 0x19, 0x5b, 0x10,
- 0x91, 0xcc, 0x90, 0xb0, 0xf2, 0xf9, 0x2f, 0xa3, 0xe8, 0x86, 0x61, 0x76, 0xdb, 0x9d, 0xb3, 0xbd,
- 0xe2, 0x8c, 0x35, 0xa9, 0xcf, 0x7e, 0x56, 0x5c, 0xd4, 0xf1, 0x67, 0x94, 0x49, 0x3f, 0xaf, 0x8b,
- 0xf2, 0xf9, 0x95, 0xf5, 0x4c, 0xd6, 0xda, 0x6e, 0x2b, 0x99, 0xf3, 0x52, 0xa9, 0x81, 0xb2, 0x56,
- 0xbd, 0xfb, 0x84, 0x39, 0x22, 0x6b, 0x0d, 0xf1, 0xa6, 0x89, 0xb5, 0xf3, 0x9c, 0x15, 0xb8, 0x89,
- 0x8d, 0x85, 0x46, 0x48, 0x34, 0x71, 0x07, 0x32, 0xf1, 0xb8, 0x15, 0xc9, 0x1d, 0x90, 0xcd, 0x3c,
- 0x47, 0xf1, 0x58, 0xab, 0x6a, 0x80, 0x88, 0xc7, 0x5e, 0x50, 0xf9, 0x39, 0x8e, 0xbe, 0xd3, 0x3c,
- 0xd2, 0xa3, 0x0a, 0x96, 0x19, 0xe0, 0xa3, 0x7d, 0x4b, 0x42, 0x8c, 0x7f, 0x97, 0x30, 0x23, 0xeb,
- 0xb4, 0xa8, 0xcb, 0x3c, 0xa9, 0xcf, 0xd5, 0x61, 0xaf, 0x5b, 0xe7, 0x56, 0x88, 0x8f, 0x7b, 0xef,
- 0xf6, 0x50, 0x26, 0xa8, 0xb7, 0x32, 0x1d, 0x62, 0xee, 0xf9, 0x55, 0x3b, 0x61, 0xe6, 0x7e, 0x2f,
- 0x67, 0x76, 0x9f, 0x77, 0x93, 0x3c, 0x87, 0x6a, 0xd5, 0xca, 0x0e, 0x92, 0x22, 0x3b, 0x83, 0x9a,
- 0xa3, 0xdd, 0x67, 0x45, 0x8d, 0x31, 0x46, 0xec, 0x3e, 0x07, 0x70, 0x93, 0xcd, 0x23, 0xcf, 0x7b,
- 0xc5, 0x14, 0xde, 0xa2, 0x6c, 0x1e, 0xdb, 0x11, 0x0c, 0x91, 0xcd, 0x53, 0xac, 0xd9, 0x85, 0x7d,
- 0x9e, 0xb3, 0xf4, 0x42, 0x4d, 0x01, 0x6e, 0x03, 0x0b, 0x09, 0x9e, 0x03, 0x6e, 0x85, 0x10, 0x33,
- 0x09, 0x08, 0xc1, 0x31, 0x94, 0x79, 0x92, 0xe2, 0xfb, 0x1d, 0x52, 0x47, 0xc9, 0x88, 0x49, 0x00,
- 0x33, 0xa8, 0xb8, 0xea, 0xde, 0x88, 0xaf, 0xb8, 0xe8, 0xda, 0xc8, 0xad, 0x10, 0x62, 0xa6, 0x41,
- 0x21, 0x98, 0x94, 0x79, 0xc6, 0xd1, 0x30, 0x90, 0x1a, 0x42, 0x42, 0x0c, 0x03, 0x97, 0x40, 0x26,
- 0x0f, 0xa0, 0x9a, 0x81, 0xd7, 0xa4, 0x90, 0x04, 0x4d, 0xb6, 0x84, 0xb9, 0x06, 0x28, 0xeb, 0xce,
- 0xca, 0x15, 0xba, 0x06, 0xa8, 0xaa, 0xc5, 0xca, 0x15, 0x71, 0x0d, 0xd0, 0x01, 0x50, 0x11, 0x8f,
- 0x92, 0x9a, 0xfb, 0x8b, 0x28, 0x24, 0xc1, 0x22, 0xb6, 0x84, 0x99, 0xa3, 0x65, 0x11, 0x17, 0x1c,
- 0xcd, 0xd1, 0xaa, 0x00, 0xd6, 0x69, 0xf0, 0x75, 0x52, 0x6e, 0x22, 0x89, 0x6c, 0x15, 0xe0, 0x3b,
- 0x19, 0xe4, 0xd3, 0x1a, 0x45, 0x12, 0xf5, 0xdc, 0x5b, 0x29, 0x11, 0x49, 0xba, 0x14, 0xea, 0x4a,
- 0x6a, 0xaf, 0xda, 0x57, 0x3b, 0xb4, 0x4d, 0x7d, 0x2b, 0x84, 0x98, 0xf8, 0xd4, 0x16, 0x7a, 0x2b,
- 0xa9, 0xaa, 0xac, 0x99, 0xfc, 0xef, 0xf9, 0x0b, 0xd4, 0xca, 0x89, 0xf8, 0xe4, 0xe3, 0xd0, 0xf0,
- 0x6a, 0x03, 0xb7, 0xaf, 0x60, 0x38, 0x74, 0xdf, 0x0e, 0x32, 0x26, 0xe3, 0x14, 0x12, 0xeb, 0x38,
- 0xd3, 0xf7, 0x34, 0x3d, 0xa7, 0x99, 0xf7, 0xfa, 0x30, 0xeb, 0x9a, 0xbe, 0x76, 0x71, 0xc0, 0x96,
- 0x70, 0xc2, 0x5e, 0xbc, 0xcd, 0x6a, 0x9e, 0x15, 0x33, 0x35, 0x73, 0x3f, 0x23, 0x2c, 0xf9, 0x60,
- 0xe2, 0x9a, 0x7e, 0xaf, 0x92, 0x49, 0x20, 0x50, 0x59, 0x0e, 0xe1, 0xd2, 0x9b, 0x40, 0x60, 0x8b,
- 0x9a, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xf6, 0x51, 0xb4, 0x73, 0xf5, 0x2e, 0xe3, 0x09, 0x6b, 0x73,
- 0x39, 0xca, 0x1a, 0x06, 0x89, 0xa5, 0x6c, 0x50, 0xc1, 0xac, 0x2f, 0xb5, 0x7f, 0x33, 0xc4, 0x1e,
- 0x10, 0x76, 0xba, 0xc3, 0xec, 0xe1, 0x00, 0xd2, 0xe3, 0xca, 0x9c, 0xc9, 0x53, 0xae, 0xba, 0x47,
- 0xf2, 0x0f, 0x07, 0x90, 0xd6, 0x9e, 0x8c, 0x5d, 0xad, 0xe7, 0x49, 0x7a, 0x31, 0xab, 0xd8, 0xa2,
- 0x98, 0x6e, 0xb1, 0x9c, 0x55, 0x68, 0x4f, 0xc6, 0x29, 0x35, 0x42, 0x89, 0x3d, 0x99, 0x1e, 0x15,
- 0x93, 0xc1, 0xd9, 0xa5, 0xd8, 0xcc, 0xb3, 0x19, 0x5e, 0x51, 0x3b, 0x86, 0x04, 0x40, 0x64, 0x70,
- 0x5e, 0xd0, 0xd3, 0x89, 0xe4, 0x8a, 0x9b, 0x67, 0x69, 0x92, 0x4b, 0x7f, 0x1b, 0xb4, 0x19, 0x07,
- 0xec, 0xed, 0x44, 0x1e, 0x05, 0x4f, 0x3d, 0x4f, 0x16, 0x55, 0xb1, 0x57, 0x70, 0x46, 0xd6, 0xb3,
- 0x05, 0x7a, 0xeb, 0x69, 0x81, 0x28, 0xac, 0x9e, 0xc0, 0xdb, 0xa6, 0x34, 0xcd, 0x3f, 0xbe, 0xb0,
- 0xda, 0xfc, 0x3e, 0x56, 0xf2, 0x50, 0x58, 0x45, 0x1c, 0xaa, 0x8c, 0x72, 0x22, 0x3b, 0x4c, 0x40,
- 0xdb, 0xed, 0x26, 0x0f, 0xfa, 0x41, 0xbf, 0x9f, 0x09, 0x5f, 0xe5, 0x10, 0xf2, 0x23, 0x80, 0x21,
- 0x7e, 0x5a, 0xd0, 0x6c, 0xb7, 0x38, 0xf5, 0x39, 0x87, 0xf4, 0xa2, 0x73, 0xc5, 0xc8, 0x2d, 0xa8,
- 0x44, 0x88, 0xed, 0x16, 0x02, 0xf5, 0x37, 0xd1, 0x5e, 0xca, 0x8a, 0x50, 0x13, 0x35, 0xf2, 0x21,
- 0x4d, 0xa4, 0x38, 0xb3, 0xf8, 0xd5, 0x52, 0xd5, 0x33, 0x65, 0x33, 0xad, 0x11, 0x16, 0x6c, 0x88,
- 0x58, 0xfc, 0x92, 0xb0, 0xc9, 0xc9, 0xb1, 0xcf, 0x83, 0xee, 0x9d, 0xe2, 0x8e, 0x95, 0x03, 0xfa,
- 0x4e, 0x31, 0xc5, 0xd2, 0x95, 0x94, 0x7d, 0xa4, 0xc7, 0x8a, 0xdb, 0x4f, 0x1e, 0x0f, 0x83, 0xcd,
- 0x92, 0xc7, 0xf1, 0xb9, 0x95, 0x43, 0x52, 0x49, 0xaf, 0xeb, 0x01, 0x43, 0x06, 0x23, 0x96, 0x3c,
- 0x01, 0x1c, 0x85, 0x30, 0xc7, 0xf3, 0x16, 0x2b, 0x38, 0x14, 0xdc, 0x17, 0xc2, 0x5c, 0x63, 0x0a,
- 0x0c, 0x85, 0x30, 0x4a, 0x01, 0xf5, 0x5b, 0xb1, 0x1f, 0x04, 0xfc, 0x30, 0x99, 0x7b, 0x33, 0x36,
- 0xb9, 0xd7, 0x23, 0xe5, 0xa1, 0x7e, 0x8b, 0x38, 0xeb, 0x90, 0xcf, 0xf6, 0x72, 0x92, 0x54, 0x33,
- 0xbd, 0xbb, 0x31, 0x8d, 0x9f, 0xd0, 0x76, 0x5c, 0x92, 0x38, 0xe4, 0x0b, 0x6b, 0xa0, 0xb0, 0xb3,
- 0x37, 0x4f, 0x66, 0xba, 0xa6, 0x9e, 0x1a, 0x08, 0x79, 0xa7, 0xaa, 0x0f, 0xfa, 0x41, 0xe4, 0xe7,
- 0x55, 0x36, 0x05, 0x16, 0xf0, 0x23, 0xe4, 0x43, 0xfc, 0x60, 0x10, 0x65, 0x6f, 0x4d, 0xbd, 0xe5,
- 0x8a, 0x6e, 0xb3, 0x98, 0xaa, 0x75, 0xec, 0x98, 0x78, 0x3c, 0x88, 0x0b, 0x65, 0x6f, 0x04, 0x8f,
- 0xc6, 0x68, 0xbb, 0x41, 0x1b, 0x1a, 0xa3, 0x7a, 0xff, 0x75, 0xc8, 0x18, 0xf5, 0xc1, 0xca, 0xe7,
- 0x4f, 0xd5, 0x18, 0xdd, 0x4e, 0x78, 0xd2, 0xe4, 0xed, 0xaf, 0x32, 0xb8, 0x54, 0x0b, 0x61, 0x4f,
- 0x7d, 0x5b, 0x6a, 0x2c, 0x5e, 0x26, 0x43, 0xab, 0xe2, 0x8d, 0xc1, 0x7c, 0xc0, 0xb7, 0x5a, 0x21,
- 0xf4, 0xfa, 0x46, 0x4b, 0x85, 0x8d, 0xc1, 0x7c, 0xc0, 0xb7, 0x7a, 0x4b, 0xb5, 0xd7, 0x37, 0x7a,
- 0x55, 0x75, 0x63, 0x30, 0xaf, 0x7c, 0xff, 0x55, 0x3b, 0x70, 0x6d, 0xe7, 0x4d, 0x1e, 0x96, 0xf2,
- 0x6c, 0x09, 0xbe, 0x74, 0xd2, 0xb5, 0xa7, 0xd1, 0x50, 0x3a, 0x49, 0xab, 0x58, 0x9f, 0x36, 0xf1,
- 0x95, 0xe2, 0x88, 0xd5, 0x99, 0x38, 0xa4, 0x7f, 0x36, 0xc0, 0x68, 0x0b, 0x87, 0x16, 0x4d, 0x21,
- 0x25, 0x73, 0xdc, 0xe8, 0xa0, 0xe6, 0x46, 0xf1, 0xe3, 0x80, 0xbd, 0xee, 0xc5, 0xe2, 0xf5, 0x81,
- 0xb4, 0x39, 0xf8, 0x73, 0x18, 0xfb, 0xc4, 0x31, 0xd4, 0xaa, 0xde, 0x43, 0xc7, 0x27, 0xc3, 0x15,
- 0x94, 0xfb, 0xbf, 0x69, 0xd7, 0x15, 0xd8, 0xbf, 0x1a, 0x04, 0x4f, 0x87, 0x58, 0x44, 0x03, 0xe1,
- 0xd9, 0x95, 0x74, 0x54, 0x41, 0xfe, 0x63, 0x14, 0xdd, 0xf2, 0x16, 0xc4, 0x3d, 0x7b, 0xfe, 0xdd,
- 0x21, 0xb6, 0xfd, 0x67, 0xd0, 0x5f, 0x7c, 0x1b, 0x55, 0x55, 0xba, 0x7f, 0x68, 0x97, 0xf7, 0xad,
- 0x86, 0x78, 0xeb, 0xe3, 0x65, 0x35, 0x85, 0x4a, 0x8d, 0xd8, 0x50, 0xa7, 0x33, 0x30, 0x1e, 0xb7,
- 0x9f, 0x5e, 0x51, 0xcb, 0xfa, 0x0c, 0x8f, 0x03, 0xab, 0x37, 0xee, 0xac, 0xf2, 0x84, 0x2c, 0x5b,
- 0x34, 0x2e, 0xd0, 0x67, 0x57, 0x55, 0xa3, 0x46, 0xb2, 0x05, 0x8b, 0xb7, 0xfa, 0x9f, 0x0d, 0x34,
- 0xec, 0xbc, 0xe7, 0xff, 0xc9, 0xd5, 0x94, 0x54, 0x59, 0xfe, 0x6b, 0x14, 0xdd, 0x75, 0x58, 0x73,
- 0xda, 0x81, 0xf6, 0x64, 0x7e, 0x14, 0xb0, 0x4f, 0x29, 0xe9, 0xc2, 0xfd, 0xde, 0xb7, 0x53, 0x36,
- 0xdf, 0xac, 0x71, 0x54, 0x76, 0xb2, 0x9c, 0x43, 0xd5, 0xfd, 0x66, 0x8d, 0x6b, 0x57, 0x52, 0x63,
- 0xfa, 0x9b, 0x35, 0x01, 0xdc, 0xfa, 0x66, 0x8d, 0xc7, 0xb3, 0xf7, 0x9b, 0x35, 0x5e, 0x6b, 0xc1,
- 0x6f, 0xd6, 0x84, 0x35, 0xa8, 0xc9, 0xa7, 0x2d, 0x82, 0xdc, 0x55, 0x1f, 0x64, 0xd1, 0xdd, 0x64,
- 0x7f, 0x7a, 0x15, 0x15, 0x62, 0xfa, 0x95, 0x9c, 0xb8, 0x85, 0x37, 0xe0, 0x99, 0x3a, 0x37, 0xf1,
- 0x36, 0x06, 0xf3, 0xca, 0xf7, 0x4f, 0xd4, 0xda, 0x4b, 0x4f, 0x36, 0xac, 0x12, 0xdf, 0x2b, 0x5a,
- 0x0b, 0x4d, 0x1e, 0x8d, 0x05, 0xbb, 0xe5, 0x1f, 0x0f, 0x83, 0x89, 0xea, 0x36, 0x84, 0x6a, 0xf4,
- 0x71, 0x9f, 0x21, 0xd4, 0xe4, 0x1b, 0x83, 0x79, 0x62, 0x92, 0x93, 0xbe, 0x65, 0x6b, 0x0f, 0x30,
- 0xe6, 0xb6, 0xf5, 0x93, 0xe1, 0x0a, 0xca, 0xfd, 0x52, 0x25, 0xb5, 0xb6, 0x7b, 0xd1, 0xce, 0xeb,
- 0x7d, 0xa6, 0x26, 0x4e, 0x33, 0x8f, 0x87, 0xe2, 0xa1, 0xf4, 0xc6, 0x9e, 0xe0, 0xfb, 0xd2, 0x1b,
- 0xef, 0x24, 0xff, 0xc9, 0xd5, 0x94, 0x54, 0x59, 0xfe, 0x79, 0x14, 0x5d, 0x27, 0xcb, 0xa2, 0xfa,
- 0xc1, 0x67, 0x43, 0x2d, 0xa3, 0xfe, 0xf0, 0xf9, 0x95, 0xf5, 0x54, 0xa1, 0xfe, 0x6d, 0x14, 0xdd,
- 0x08, 0x14, 0x4a, 0x76, 0x90, 0x2b, 0x58, 0x77, 0x3b, 0xca, 0x0f, 0xaf, 0xae, 0x48, 0x4d, 0xf7,
- 0x36, 0x3e, 0xe9, 0x7e, 0xcc, 0x25, 0x60, 0x7b, 0x42, 0x7f, 0xcc, 0xa5, 0x5f, 0x0b, 0x6f, 0x41,
- 0x35, 0x49, 0x89, 0x5a, 0x19, 0xf9, 0xb6, 0xa0, 0x44, 0xce, 0x82, 0x56, 0x44, 0xf7, 0x7b, 0x39,
- 0x9f, 0x93, 0x17, 0x6f, 0xcb, 0xa4, 0x98, 0xd2, 0x4e, 0xa4, 0xbc, 0xdf, 0x89, 0xe6, 0xf0, 0xd6,
- 0x5d, 0x23, 0x3d, 0x66, 0xed, 0x32, 0xef, 0x21, 0xa5, 0xaf, 0x91, 0xe0, 0xd6, 0x5d, 0x07, 0x25,
- 0xbc, 0xa9, 0x9c, 0x36, 0xe4, 0x0d, 0xa5, 0xb2, 0x8f, 0x86, 0xa0, 0x68, 0x01, 0xa1, 0xbd, 0xe9,
- 0x13, 0x81, 0xc7, 0x21, 0x2b, 0x9d, 0x53, 0x81, 0xf5, 0x81, 0x34, 0xe1, 0x76, 0x02, 0xfc, 0x4b,
- 0x48, 0xa6, 0x50, 0x05, 0xdd, 0x6a, 0x6a, 0x90, 0x5b, 0x9b, 0xf6, 0xb9, 0xdd, 0x62, 0xf9, 0x62,
- 0x5e, 0xa8, 0xc6, 0x24, 0xdd, 0xda, 0x54, 0xbf, 0x5b, 0x44, 0xe3, 0x4d, 0x4b, 0xe3, 0x56, 0xa4,
- 0x97, 0x8f, 0xc2, 0x66, 0x9c, 0xac, 0x72, 0x6d, 0x10, 0x4b, 0xd7, 0x53, 0x75, 0xa3, 0x9e, 0x7a,
- 0xa2, 0x9e, 0xb4, 0x3e, 0x90, 0xc6, 0xbb, 0x87, 0x96, 0x5b, 0xdd, 0x9f, 0x36, 0x7a, 0x6c, 0x75,
- 0xba, 0xd4, 0x93, 0xe1, 0x0a, 0x78, 0xaf, 0x56, 0xf5, 0xaa, 0x66, 0x5d, 0xb4, 0x93, 0xe5, 0x79,
- 0xbc, 0x16, 0xe8, 0x26, 0x2d, 0x14, 0xdc, 0xab, 0xf5, 0xc0, 0x44, 0x4f, 0x6e, 0xf7, 0x36, 0x8b,
- 0xb8, 0xcf, 0x8e, 0xa0, 0x06, 0xf5, 0x64, 0x9b, 0x46, 0xfb, 0x6d, 0xd6, 0xa3, 0xd6, 0xb5, 0x1d,
- 0x87, 0x1f, 0x5c, 0xa7, 0xc2, 0x1b, 0x83, 0x79, 0x74, 0x19, 0x40, 0x50, 0x62, 0x66, 0xb9, 0x43,
- 0x99, 0x70, 0x66, 0x92, 0xbb, 0x3d, 0x14, 0xda, 0xb3, 0x94, 0xc3, 0xe8, 0x75, 0x36, 0x9d, 0x01,
- 0xf7, 0x9e, 0x63, 0xd9, 0x40, 0xf0, 0x1c, 0x0b, 0x81, 0xa8, 0xe9, 0xe4, 0xef, 0x7a, 0xb3, 0x76,
- 0x6f, 0xea, 0x6b, 0x3a, 0xa5, 0x6c, 0x51, 0xa1, 0xa6, 0xf3, 0xd2, 0x28, 0x1a, 0x68, 0xb7, 0xea,
- 0xc5, 0xfd, 0x47, 0x21, 0x33, 0xe8, 0xed, 0xfd, 0xb5, 0x41, 0x2c, 0x9a, 0x51, 0x8c, 0xc3, 0x6c,
- 0x9e, 0x71, 0xdf, 0x8c, 0x62, 0xd9, 0x68, 0x90, 0xd0, 0x8c, 0xd2, 0x45, 0xa9, 0xea, 0x35, 0x39,
- 0xc2, 0xde, 0x34, 0x5c, 0x3d, 0xc9, 0x0c, 0xab, 0x9e, 0x66, 0x3b, 0xc7, 0xae, 0x85, 0xee, 0x32,
- 0xfc, 0x5c, 0x2d, 0x96, 0x3d, 0x7d, 0x5b, 0xbc, 0xd0, 0x89, 0xc1, 0x50, 0xd4, 0xa1, 0x14, 0xf0,
- 0x71, 0x42, 0xc3, 0xb5, 0x27, 0xc3, 0x65, 0x09, 0x49, 0x95, 0x14, 0xa9, 0x77, 0x71, 0x2a, 0x0c,
- 0x76, 0xc8, 0xd0, 0xe2, 0x94, 0xd4, 0x40, 0x87, 0xfa, 0xee, 0xab, 0x98, 0x9e, 0xa1, 0xa0, 0xdf,
- 0x79, 0x74, 0xdf, 0xc4, 0x7c, 0x38, 0x80, 0xc4, 0x87, 0xfa, 0x2d, 0xa0, 0xb7, 0xe5, 0xa5, 0xd3,
- 0x8f, 0x03, 0xa6, 0x5c, 0x34, 0xb4, 0x10, 0xa6, 0x55, 0x50, 0xa7, 0xd6, 0x09, 0x2e, 0xf0, 0x1f,
- 0xc3, 0xca, 0xd7, 0xa9, 0x4d, 0x7e, 0x2a, 0x90, 0x50, 0xa7, 0xee, 0xa2, 0x28, 0xcf, 0xb4, 0xd7,
- 0x41, 0xf7, 0x02, 0xfa, 0xf6, 0xd2, 0xe7, 0x7e, 0x2f, 0x87, 0x46, 0xce, 0x76, 0xb6, 0x74, 0x4e,
- 0x31, 0x3c, 0x05, 0xdd, 0xce, 0x96, 0xfe, 0x43, 0x8c, 0xb5, 0x41, 0x2c, 0xbe, 0x30, 0x90, 0x70,
- 0x78, 0xdb, 0x9e, 0xe4, 0x7b, 0x8a, 0x2b, 0xe4, 0x9d, 0xa3, 0xfc, 0x07, 0xfd, 0xa0, 0xb9, 0x9e,
- 0x7b, 0x54, 0xb1, 0x14, 0xea, 0x5a, 0x7d, 0xe1, 0xce, 0xbd, 0xff, 0xa4, 0x64, 0x63, 0xf4, 0x7d,
- 0xbb, 0x3b, 0x61, 0x48, 0xd9, 0xfe, 0x32, 0x7a, 0x77, 0x9f, 0xcd, 0x26, 0x50, 0x4c, 0xe3, 0x1f,
- 0xb8, 0x17, 0x62, 0xd9, 0x6c, 0xdc, 0xfc, 0xac, 0xed, 0x5d, 0xa3, 0xc4, 0xe6, 0x4a, 0xdf, 0x36,
- 0xbc, 0x59, 0xcc, 0x26, 0x3c, 0xe1, 0xe8, 0x4a, 0x9f, 0xf8, 0x7d, 0xdc, 0x08, 0x88, 0x2b, 0x7d,
- 0x0e, 0x80, 0xec, 0x9d, 0x54, 0x00, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x01, 0x66, 0xd6, 0xd5,
- 0xf6, 0x9a, 0xc4, 0x16, 0x5f, 0xc1, 0x33, 0x3a, 0x42, 0x4a, 0xcc, 0xba, 0x5d, 0xca, 0x74, 0x06,
- 0x59, 0x7d, 0xf1, 0x3d, 0x8f, 0xc5, 0x7c, 0x9e, 0x54, 0x2b, 0xd4, 0x19, 0x54, 0x2d, 0x2d, 0x80,
- 0xe8, 0x0c, 0x5e, 0xd0, 0xf4, 0xf2, 0xf6, 0x31, 0xa7, 0x17, 0xbb, 0xac, 0x62, 0x0b, 0x9e, 0x15,
- 0x80, 0xbf, 0xe9, 0xa0, 0x1f, 0xa8, 0xcd, 0x10, 0xbd, 0x9c, 0x62, 0x4d, 0x56, 0x28, 0x08, 0x79,
- 0x3b, 0x50, 0x7c, 0x27, 0xb6, 0xe6, 0xac, 0xc2, 0xa7, 0x83, 0xd2, 0x0a, 0x86, 0x88, 0xac, 0x90,
- 0x84, 0x51, 0xdb, 0x1f, 0x65, 0xc5, 0xcc, 0xdb, 0xf6, 0x47, 0xf6, 0x57, 0x16, 0x6f, 0xd0, 0x80,
- 0x89, 0xef, 0xf2, 0xa1, 0xc9, 0xef, 0x26, 0xa9, 0x37, 0x33, 0xbd, 0x0f, 0xdd, 0x26, 0x88, 0xf8,
- 0xee, 0x27, 0x91, 0xab, 0x97, 0x25, 0x14, 0x30, 0x6d, 0xef, 0xc0, 0xf9, 0x5c, 0x39, 0x44, 0xd0,
- 0x15, 0x26, 0x4d, 0x54, 0x15, 0xf2, 0xe3, 0x45, 0x71, 0x54, 0xb1, 0xb3, 0x2c, 0x87, 0x0a, 0x45,
- 0x55, 0xa9, 0x6e, 0xc9, 0x89, 0xa8, 0xea, 0xe3, 0xcc, 0x65, 0x0a, 0x21, 0x75, 0x3e, 0x76, 0x7c,
- 0x52, 0x25, 0x29, 0xbe, 0x4c, 0x21, 0x6d, 0x74, 0x31, 0x62, 0x27, 0x2d, 0x80, 0x9b, 0x9e, 0x7e,
- 0x00, 0xbc, 0xca, 0xd2, 0x7a, 0x02, 0xfc, 0x28, 0xa9, 0x92, 0x39, 0x70, 0xa8, 0x70, 0x4f, 0x57,
- 0xc8, 0xd8, 0x61, 0x88, 0x9e, 0x4e, 0xb1, 0xca, 0xe1, 0xef, 0x47, 0xef, 0x37, 0x81, 0x1e, 0x0a,
- 0xf5, 0x5d, 0xfe, 0x17, 0xe2, 0x0f, 0x7a, 0xc4, 0x1f, 0x68, 0x1b, 0x13, 0x5e, 0x41, 0x32, 0x6f,
- 0x6d, 0xbf, 0xa7, 0x7f, 0x17, 0xe0, 0x93, 0x51, 0xd3, 0x20, 0x87, 0x8c, 0x67, 0x67, 0xcd, 0xba,
- 0x4a, 0x9d, 0x62, 0xa1, 0x06, 0xb1, 0xc5, 0xe3, 0xc0, 0x67, 0x0a, 0x7c, 0x9c, 0x09, 0x34, 0xb6,
- 0xf4, 0x18, 0xca, 0x1c, 0x07, 0x1a, 0x47, 0x5b, 0x00, 0x44, 0xa0, 0xf1, 0x82, 0xa6, 0x77, 0xd9,
- 0xe2, 0x13, 0x08, 0x57, 0xe6, 0x04, 0x86, 0x55, 0xe6, 0xc4, 0x79, 0x47, 0x20, 0x8f, 0xde, 0x3f,
- 0x80, 0xf9, 0x1b, 0xa8, 0xea, 0xf3, 0xac, 0xdc, 0x6d, 0x66, 0xd8, 0x84, 0x2f, 0xf0, 0x5b, 0x74,
- 0x86, 0x18, 0x6b, 0x84, 0x48, 0x43, 0x08, 0xd4, 0x84, 0x32, 0x03, 0xec, 0xd5, 0x87, 0xc9, 0x1c,
- 0xc4, 0x47, 0x17, 0xe2, 0x35, 0xca, 0x88, 0x05, 0x11, 0xa1, 0x8c, 0x84, 0xad, 0xd7, 0x8d, 0x0c,
- 0x73, 0x0c, 0xb3, 0xa6, 0x87, 0x55, 0x47, 0xc9, 0x6a, 0x0e, 0x05, 0x57, 0x26, 0xd1, 0x26, 0xac,
- 0x65, 0xd2, 0xcf, 0x13, 0x9b, 0xb0, 0x43, 0xf4, 0xac, 0xa4, 0xdb, 0x79, 0xf0, 0x47, 0xac, 0xe2,
- 0xf2, 0xaf, 0x6e, 0x9c, 0x56, 0x39, 0x4a, 0xba, 0xdd, 0x87, 0xea, 0x90, 0x44, 0xd2, 0x1d, 0xd6,
- 0xb0, 0x3e, 0x57, 0xed, 0x94, 0xe1, 0x15, 0x54, 0xba, 0x9f, 0xbc, 0x98, 0x27, 0x59, 0xae, 0x7a,
- 0xc3, 0x17, 0x01, 0xdb, 0x84, 0x0e, 0xf1, 0xb9, 0xea, 0xa1, 0xba, 0xd6, 0x07, 0xbe, 0xc3, 0x25,
- 0x44, 0x7b, 0xc2, 0x3d, 0xf6, 0x89, 0x3d, 0xe1, 0x7e, 0x2d, 0xb3, 0x54, 0x33, 0xac, 0xe0, 0x56,
- 0x82, 0xd8, 0x62, 0x53, 0xbc, 0x41, 0x64, 0xd9, 0x44, 0x20, 0xb1, 0x54, 0x0b, 0x2a, 0x98, 0xb9,
- 0xcd, 0x60, 0x3b, 0x59, 0x91, 0xe4, 0xd9, 0x4f, 0xf1, 0xdd, 0x67, 0xcb, 0x4e, 0x4b, 0x10, 0x73,
- 0x9b, 0x9f, 0xf4, 0xb9, 0xda, 0x05, 0x7e, 0x92, 0x35, 0xa1, 0xff, 0x41, 0xe0, 0xb9, 0x09, 0xa2,
- 0xdf, 0x95, 0x45, 0x2a, 0x57, 0x3f, 0x1b, 0x45, 0xd7, 0xf1, 0x63, 0xdd, 0x2c, 0xcb, 0x49, 0x93,
- 0x92, 0x1c, 0x43, 0x0a, 0x59, 0xc9, 0xe3, 0x4f, 0xc3, 0xcf, 0x0a, 0xe1, 0xc4, 0xc9, 0xfa, 0x00,
- 0x35, 0xeb, 0xbc, 0xb6, 0x89, 0x25, 0x13, 0xf9, 0xe7, 0xa8, 0x4e, 0x6b, 0xa8, 0xd4, 0x4c, 0xb9,
- 0x0b, 0x1c, 0x8d, 0x4e, 0x8b, 0x1b, 0x5b, 0x60, 0x53, 0x51, 0x62, 0x74, 0x86, 0x35, 0xcc, 0xee,
- 0x8e, 0xc5, 0x1d, 0x43, 0xcd, 0xf2, 0x25, 0x88, 0xeb, 0x6f, 0x8f, 0x49, 0x63, 0x16, 0x45, 0xec,
- 0xee, 0xd0, 0xb4, 0x49, 0x37, 0xba, 0x6e, 0x37, 0x8b, 0xd5, 0x1e, 0x3e, 0x23, 0xf7, 0x58, 0x12,
- 0x18, 0x91, 0x6e, 0x04, 0x70, 0x6b, 0xf7, 0xb3, 0x62, 0xc9, 0x34, 0x4d, 0x6a, 0x7e, 0x94, 0xac,
- 0x72, 0x96, 0x4c, 0xc5, 0xbc, 0x8e, 0x77, 0x3f, 0x5b, 0x66, 0x6c, 0x43, 0xd4, 0xee, 0x27, 0x05,
- 0x9b, 0x95, 0x9d, 0xfa, 0x2b, 0x5b, 0xea, 0x6a, 0xe1, 0x6d, 0x94, 0x23, 0x89, 0xf2, 0xe2, 0x6b,
- 0x85, 0x77, 0xc2, 0x90, 0x79, 0x25, 0x4a, 0x8a, 0x44, 0x1a, 0x72, 0xc3, 0xa7, 0xe3, 0x24, 0x20,
- 0x37, 0x03, 0x84, 0xf9, 0x4c, 0x82, 0xfc, 0xbd, 0xfd, 0x43, 0x11, 0x5c, 0x7d, 0xb8, 0xf7, 0xb1,
- 0x4f, 0xd7, 0x86, 0xc6, 0xf6, 0xb7, 0xcf, 0xd6, 0x07, 0xd2, 0xd2, 0xeb, 0xf3, 0x9b, 0xff, 0xf3,
- 0xf5, 0xb5, 0xd1, 0xcf, 0xbf, 0xbe, 0x36, 0xfa, 0xff, 0xaf, 0xaf, 0x8d, 0x7e, 0xf6, 0xcd, 0xb5,
- 0x77, 0x7e, 0xfe, 0xcd, 0xb5, 0x77, 0xfe, 0xf7, 0x9b, 0x6b, 0xef, 0x7c, 0xf5, 0xae, 0xfa, 0x73,
- 0x6d, 0x6f, 0x7e, 0x49, 0xfc, 0xd1, 0xb5, 0x67, 0xbf, 0x08, 0x00, 0x00, 0xff, 0xff, 0x95, 0x20,
- 0x7a, 0x41, 0xd2, 0x6d, 0x00, 0x00,
+ 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x19,
+ 0xcf, 0x8c, 0xed, 0xf6, 0xec, 0xcc, 0x7e, 0x1c, 0x7b, 0x48, 0xc8, 0x63, 0x8f, 0xbd, 0xe6, 0x6c,
+ 0x8f, 0x71, 0xb7, 0x67, 0xa4, 0x95, 0x90, 0xa8, 0xa9, 0x0e, 0xb7, 0x0b, 0x57, 0x57, 0xd6, 0x55,
+ 0x65, 0xb7, 0xa7, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0x8f, 0x7b, 0xe1, 0x01, 0x89,
+ 0xbf, 0x86, 0xc7, 0x7d, 0xe4, 0x11, 0xed, 0xfe, 0x23, 0xa8, 0x32, 0xb3, 0xf2, 0x23, 0x2a, 0x23,
+ 0xab, 0xbc, 0x4f, 0x33, 0xea, 0xf8, 0x45, 0x44, 0x66, 0x65, 0x64, 0x66, 0xe4, 0x47, 0x95, 0xa3,
+ 0x9b, 0xc5, 0x9b, 0xad, 0xa2, 0x64, 0x9c, 0x55, 0x5b, 0x15, 0x94, 0xcb, 0x34, 0x81, 0xe6, 0xdf,
+ 0x91, 0xf8, 0x79, 0xf8, 0x6e, 0x9c, 0xaf, 0xf8, 0xaa, 0x80, 0x8f, 0x3e, 0x34, 0x64, 0xc2, 0xe6,
+ 0xf3, 0x38, 0x9f, 0x56, 0x12, 0xf9, 0xe8, 0x03, 0x23, 0x81, 0x25, 0xe4, 0x5c, 0xfd, 0xfe, 0xf4,
+ 0x97, 0xdf, 0x0c, 0xa2, 0xf7, 0x76, 0xb2, 0x14, 0x72, 0xbe, 0xa3, 0x34, 0x86, 0x5f, 0x45, 0xdf,
+ 0xdf, 0x2e, 0x8a, 0x7d, 0xe0, 0xaf, 0xa0, 0xac, 0x52, 0x96, 0x0f, 0xef, 0x8e, 0x94, 0x83, 0xd1,
+ 0x69, 0x91, 0x8c, 0xb6, 0x8b, 0x62, 0x64, 0x84, 0xa3, 0x53, 0xf8, 0xd9, 0x02, 0x2a, 0xfe, 0xd1,
+ 0xbd, 0x30, 0x54, 0x15, 0x2c, 0xaf, 0x60, 0x78, 0x1e, 0xfd, 0xd6, 0x76, 0x51, 0x8c, 0x81, 0xef,
+ 0x42, 0x5d, 0x81, 0x31, 0x8f, 0x39, 0x0c, 0xd7, 0x5a, 0xaa, 0x2e, 0xa0, 0x7d, 0x3c, 0xec, 0x06,
+ 0x95, 0x9f, 0x49, 0xf4, 0xbd, 0xda, 0xcf, 0xc5, 0x82, 0x4f, 0xd9, 0x55, 0x3e, 0xbc, 0xdd, 0x56,
+ 0x54, 0x22, 0x6d, 0xfb, 0x4e, 0x08, 0x51, 0x56, 0x5f, 0x47, 0xbf, 0xfe, 0x3a, 0xce, 0x32, 0xe0,
+ 0x3b, 0x25, 0xd4, 0x05, 0x77, 0x75, 0xa4, 0x68, 0x24, 0x65, 0xda, 0xee, 0xdd, 0x20, 0xa3, 0x0c,
+ 0x7f, 0x15, 0x7d, 0x5f, 0x4a, 0x4e, 0x21, 0x61, 0x4b, 0x28, 0x87, 0x5e, 0x2d, 0x25, 0x24, 0x1e,
+ 0x79, 0x0b, 0xc2, 0xb6, 0x77, 0x58, 0xbe, 0x84, 0x92, 0xfb, 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x81,
+ 0x94, 0xed, 0x7f, 0x18, 0x44, 0x3f, 0xdc, 0x4e, 0x12, 0xb6, 0xc8, 0xf9, 0x21, 0x4b, 0xe2, 0xec,
+ 0x30, 0xcd, 0x2f, 0x8f, 0xe1, 0x6a, 0xe7, 0xa2, 0xe6, 0xf3, 0x19, 0x0c, 0x9f, 0xb9, 0x4f, 0x55,
+ 0xa2, 0x23, 0xcd, 0x8e, 0x6c, 0x58, 0xfb, 0xfe, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x32, 0x88,
+ 0x6e, 0xe0, 0xb2, 0x8c, 0x59, 0xb6, 0x04, 0x53, 0x9a, 0x4f, 0x3b, 0x0c, 0xbb, 0xb8, 0x2e, 0xcf,
+ 0x67, 0xd7, 0x55, 0x53, 0x25, 0xca, 0xa2, 0xf7, 0xed, 0x70, 0x19, 0x43, 0x25, 0xba, 0xd3, 0x23,
+ 0x3a, 0x22, 0x14, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x2a, 0x6f, 0x69, 0x34, 0x54, 0xde, 0x32, 0x56,
+ 0x69, 0x67, 0x0f, 0xbd, 0x16, 0x2c, 0x42, 0xfb, 0x7a, 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x34, 0xfa,
+ 0x8d, 0xd7, 0xac, 0xbc, 0xac, 0x8a, 0x38, 0x01, 0xd5, 0x15, 0xee, 0xbb, 0xda, 0x8d, 0x14, 0xf7,
+ 0x86, 0x07, 0x5d, 0x98, 0x15, 0xb4, 0x8d, 0xf0, 0x65, 0x01, 0x78, 0x0c, 0x32, 0x8a, 0xb5, 0x90,
+ 0x0a, 0x5a, 0x0c, 0x29, 0xdb, 0x97, 0xd1, 0xd0, 0xd8, 0x7e, 0xf3, 0x67, 0x90, 0xf0, 0xed, 0xe9,
+ 0x14, 0xb7, 0x8a, 0xd1, 0x15, 0xc4, 0x68, 0x7b, 0x3a, 0xa5, 0x5a, 0xc5, 0x8f, 0x2a, 0x67, 0x57,
+ 0xd1, 0x07, 0xc8, 0xd9, 0x61, 0x5a, 0x09, 0x87, 0x9b, 0x61, 0x2b, 0x0a, 0xd3, 0x4e, 0x47, 0x7d,
+ 0x71, 0xe5, 0xf8, 0xaf, 0x06, 0xd1, 0x0f, 0x3c, 0x9e, 0x4f, 0x61, 0xce, 0x96, 0x30, 0x7c, 0xd2,
+ 0x6d, 0x4d, 0x92, 0xda, 0xff, 0xc7, 0xd7, 0xd0, 0xf0, 0x84, 0xc9, 0x18, 0x32, 0x48, 0x38, 0x19,
+ 0x26, 0x52, 0xdc, 0x19, 0x26, 0x1a, 0xb3, 0x7a, 0x58, 0x23, 0xdc, 0x07, 0xbe, 0xb3, 0x28, 0x4b,
+ 0xc8, 0x39, 0xd9, 0x96, 0x06, 0xe9, 0x6c, 0x4b, 0x07, 0xf5, 0xd4, 0x67, 0x1f, 0xf8, 0x76, 0x96,
+ 0x91, 0xf5, 0x91, 0xe2, 0xce, 0xfa, 0x68, 0x4c, 0x79, 0x48, 0xa2, 0xdf, 0xb4, 0x9e, 0x18, 0x3f,
+ 0xc8, 0xcf, 0xd9, 0x90, 0x7e, 0x16, 0x42, 0xae, 0x7d, 0xac, 0x75, 0x72, 0x9e, 0x6a, 0xbc, 0x78,
+ 0x5b, 0xb0, 0x92, 0x6e, 0x16, 0x29, 0xee, 0xac, 0x86, 0xc6, 0x94, 0x87, 0x3f, 0x89, 0xde, 0x53,
+ 0xa3, 0x64, 0x33, 0x9f, 0xdd, 0xf3, 0x0e, 0xa1, 0x78, 0x42, 0xbb, 0xdf, 0x41, 0x99, 0xc1, 0x41,
+ 0xc9, 0xd4, 0xe0, 0x73, 0xd7, 0xab, 0x87, 0x86, 0x9e, 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x17, 0x32,
+ 0x20, 0x6d, 0x4b, 0x61, 0x87, 0x6d, 0x0d, 0x29, 0xdb, 0x65, 0xf4, 0x3b, 0xfa, 0xb1, 0xd4, 0xf3,
+ 0xa8, 0x90, 0xd7, 0x83, 0xf4, 0x3a, 0x51, 0x6f, 0x1b, 0xd2, 0xbe, 0x36, 0xfa, 0xc1, 0xad, 0xfa,
+ 0xa8, 0x1e, 0xe8, 0xaf, 0x0f, 0xea, 0x7f, 0xf7, 0xc2, 0x90, 0xb2, 0xfd, 0x8f, 0x83, 0xe8, 0x47,
+ 0x4a, 0xf6, 0x22, 0x8f, 0xdf, 0x64, 0x20, 0xa6, 0xc4, 0x63, 0xe0, 0x57, 0xac, 0xbc, 0x1c, 0xaf,
+ 0xf2, 0x84, 0x98, 0xfe, 0xfd, 0x70, 0xc7, 0xf4, 0x4f, 0x2a, 0x59, 0x19, 0x9f, 0xaa, 0x28, 0x67,
+ 0x05, 0xce, 0xf8, 0x9a, 0x1a, 0x70, 0x56, 0x50, 0x19, 0x9f, 0x8b, 0xb4, 0xac, 0x1e, 0xd5, 0xc3,
+ 0xa6, 0xdf, 0xea, 0x91, 0x3d, 0x4e, 0xde, 0x09, 0x21, 0x66, 0xd8, 0x6a, 0x02, 0x98, 0xe5, 0xe7,
+ 0xe9, 0xec, 0xac, 0x98, 0xd6, 0x61, 0xfc, 0xc8, 0x1f, 0xa1, 0x16, 0x42, 0x0c, 0x5b, 0x04, 0xaa,
+ 0xbc, 0xfd, 0xb3, 0x49, 0x8c, 0x54, 0x57, 0xda, 0x2b, 0xd9, 0xfc, 0x10, 0x66, 0x71, 0xb2, 0x52,
+ 0xfd, 0xff, 0x93, 0x50, 0xc7, 0xc3, 0xb4, 0x2e, 0xc4, 0xa7, 0xd7, 0xd4, 0x52, 0xe5, 0xf9, 0xaf,
+ 0x41, 0x74, 0xaf, 0xa9, 0xfe, 0x45, 0x9c, 0xcf, 0x40, 0xb5, 0xa7, 0x2c, 0xfd, 0x76, 0x3e, 0x3d,
+ 0x85, 0x8a, 0xc7, 0x25, 0x1f, 0x7e, 0xe1, 0xaf, 0x64, 0x48, 0x47, 0x97, 0xed, 0x27, 0xdf, 0x49,
+ 0xd7, 0xb4, 0xfa, 0xb8, 0x1e, 0xd8, 0xd4, 0x10, 0xe0, 0xb6, 0xba, 0x90, 0xe0, 0x01, 0xe0, 0x4e,
+ 0x08, 0x31, 0xad, 0x2e, 0x04, 0x07, 0xf9, 0x32, 0xe5, 0xb0, 0x0f, 0x39, 0x94, 0xed, 0x56, 0x97,
+ 0xaa, 0x2e, 0x42, 0xb4, 0x3a, 0x81, 0x9a, 0xc1, 0xc6, 0xf1, 0xa6, 0x27, 0xc7, 0xf5, 0x80, 0x91,
+ 0xd6, 0xf4, 0xb8, 0xd1, 0x0f, 0x36, 0xab, 0x3b, 0xcb, 0xe7, 0x29, 0x2c, 0xd9, 0x25, 0x5e, 0xdd,
+ 0xd9, 0x26, 0x24, 0x40, 0xac, 0xee, 0xbc, 0xa0, 0x99, 0xc1, 0x2c, 0x3f, 0xaf, 0x52, 0xb8, 0x42,
+ 0x33, 0x98, 0xad, 0x5c, 0x8b, 0x89, 0x19, 0xcc, 0x83, 0x29, 0x0f, 0xc7, 0xd1, 0xaf, 0x09, 0xe1,
+ 0x1f, 0xb1, 0x34, 0x1f, 0xde, 0xf4, 0x28, 0xd5, 0x02, 0x6d, 0xf5, 0x16, 0x0d, 0xa0, 0x12, 0xd7,
+ 0xbf, 0xee, 0xc4, 0x79, 0x02, 0x99, 0xb7, 0xc4, 0x46, 0x1c, 0x2c, 0xb1, 0x83, 0x99, 0xd4, 0x41,
+ 0x08, 0xeb, 0xf1, 0x6b, 0x7c, 0x11, 0x97, 0x69, 0x3e, 0x1b, 0xfa, 0x74, 0x2d, 0x39, 0x91, 0x3a,
+ 0xf8, 0x38, 0x14, 0xc2, 0x4a, 0x71, 0xbb, 0x28, 0xca, 0x7a, 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04,
+ 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x42, 0x92, 0xa5, 0x79, 0xd0, 0x9b, 0x42, 0xfa, 0x78, 0x33,
+ 0x28, 0x0a, 0xde, 0x43, 0x88, 0x97, 0xd0, 0xd4, 0xcc, 0xf7, 0x64, 0x6c, 0x20, 0x18, 0xbc, 0x08,
+ 0x34, 0xeb, 0x34, 0x21, 0x3e, 0x8a, 0x2f, 0xa1, 0x7e, 0xc0, 0x50, 0xcf, 0x6b, 0x43, 0x9f, 0xbe,
+ 0x43, 0x10, 0xeb, 0x34, 0x3f, 0xa9, 0x5c, 0x2d, 0xa2, 0x0f, 0x84, 0xfc, 0x24, 0x2e, 0x79, 0x9a,
+ 0xa4, 0x45, 0x9c, 0x37, 0xf9, 0xbf, 0xaf, 0x5f, 0xb7, 0x28, 0xed, 0x72, 0xb3, 0x27, 0xad, 0xdc,
+ 0xfe, 0x72, 0x10, 0xdd, 0xc6, 0x7e, 0x4f, 0xa0, 0x9c, 0xa7, 0x62, 0x19, 0x59, 0xc9, 0x41, 0x78,
+ 0xf8, 0x79, 0xd8, 0x68, 0x4b, 0x41, 0x97, 0xe6, 0xc7, 0xd7, 0x57, 0x54, 0x05, 0xfb, 0xe3, 0x28,
+ 0x92, 0xcb, 0x15, 0xb1, 0xa4, 0x74, 0x7b, 0xad, 0x5a, 0xc7, 0x38, 0xeb, 0xc9, 0xdb, 0x01, 0xc2,
+ 0x4c, 0x15, 0xf2, 0x77, 0xb1, 0x52, 0x1e, 0x7a, 0x35, 0x84, 0x88, 0x98, 0x2a, 0x10, 0x82, 0x0b,
+ 0x3a, 0xbe, 0x60, 0x57, 0xfe, 0x82, 0xd6, 0x92, 0x70, 0x41, 0x15, 0x61, 0xf6, 0xae, 0x54, 0x41,
+ 0x7d, 0x7b, 0x57, 0x4d, 0x31, 0x42, 0x7b, 0x57, 0x98, 0x51, 0x86, 0x59, 0xf4, 0xdb, 0xb6, 0xe1,
+ 0xe7, 0x8c, 0x5d, 0xce, 0xe3, 0xf2, 0x72, 0xf8, 0x98, 0x56, 0x6e, 0x18, 0xed, 0x68, 0xbd, 0x17,
+ 0x6b, 0x86, 0x05, 0xdb, 0x61, 0x9d, 0x68, 0x9c, 0x95, 0x19, 0x1a, 0x16, 0x1c, 0x1b, 0x0a, 0x21,
+ 0x86, 0x05, 0x02, 0x35, 0x09, 0xb4, 0xf2, 0x76, 0x11, 0x8b, 0x75, 0xbb, 0xff, 0xa1, 0x48, 0x21,
+ 0x91, 0x40, 0xb7, 0x20, 0x33, 0x2b, 0xd8, 0x35, 0x19, 0x03, 0x5e, 0x89, 0x39, 0x45, 0x1b, 0x03,
+ 0xb5, 0x12, 0xf3, 0x60, 0x38, 0x3c, 0xf7, 0xcb, 0xb8, 0xb8, 0xf0, 0x87, 0xa7, 0x10, 0x85, 0xc3,
+ 0xb3, 0x41, 0x70, 0x2c, 0x8d, 0x21, 0x2e, 0x93, 0x0b, 0x7f, 0x2c, 0x49, 0x59, 0x38, 0x96, 0x34,
+ 0x83, 0x63, 0x49, 0x0a, 0x5e, 0xa7, 0xfc, 0xe2, 0x08, 0x78, 0xec, 0x8f, 0x25, 0x97, 0x09, 0xc7,
+ 0x52, 0x8b, 0x35, 0x59, 0x92, 0xed, 0x70, 0xbc, 0x78, 0x53, 0x25, 0x65, 0xfa, 0x06, 0x86, 0x01,
+ 0x2b, 0x1a, 0x22, 0xb2, 0x24, 0x12, 0x36, 0x13, 0x80, 0xf2, 0xd9, 0xc8, 0x0e, 0xa6, 0x15, 0x9a,
+ 0x00, 0x1a, 0x1b, 0x16, 0x41, 0x4c, 0x00, 0x7e, 0x12, 0x57, 0x6f, 0xbf, 0x64, 0x8b, 0xa2, 0xea,
+ 0xa8, 0x1e, 0x82, 0xc2, 0xd5, 0x6b, 0xc3, 0xca, 0xe7, 0xdb, 0xe8, 0x77, 0xed, 0x47, 0x7a, 0x96,
+ 0x57, 0xda, 0xeb, 0x26, 0xfd, 0x9c, 0x2c, 0x8c, 0xd8, 0xf2, 0x0a, 0xe0, 0x26, 0x05, 0x6a, 0x3c,
+ 0xf3, 0x5d, 0xe0, 0x71, 0x9a, 0x55, 0xc3, 0x07, 0x7e, 0x1b, 0x8d, 0x9c, 0x48, 0x81, 0x7c, 0x1c,
+ 0xee, 0xb3, 0xbb, 0x8b, 0x22, 0x4b, 0x93, 0xf6, 0xde, 0xa7, 0xd2, 0xd5, 0xe2, 0x70, 0x9f, 0xb5,
+ 0x31, 0x3c, 0xbe, 0x8d, 0x81, 0xcb, 0xff, 0x4c, 0x56, 0x05, 0xf8, 0xc7, 0x37, 0x07, 0x09, 0x8f,
+ 0x6f, 0x18, 0xc5, 0xf5, 0x19, 0x03, 0x3f, 0x8c, 0x57, 0x6c, 0x41, 0x8c, 0x41, 0x5a, 0x1c, 0xae,
+ 0x8f, 0x8d, 0x99, 0x2c, 0x44, 0x7b, 0x38, 0xc8, 0x39, 0x94, 0x79, 0x9c, 0xed, 0x65, 0xf1, 0xac,
+ 0x1a, 0x12, 0xfd, 0xc6, 0xa5, 0x88, 0x2c, 0x84, 0xa6, 0x3d, 0x8f, 0xf1, 0xa0, 0xda, 0x8b, 0x97,
+ 0xac, 0x4c, 0x39, 0xfd, 0x18, 0x0d, 0xd2, 0xf9, 0x18, 0x1d, 0xd4, 0xeb, 0x6d, 0xbb, 0x4c, 0x2e,
+ 0xd2, 0x25, 0x4c, 0x03, 0xde, 0x1a, 0xa4, 0x87, 0x37, 0x0b, 0xf5, 0x34, 0xda, 0x98, 0x2d, 0xca,
+ 0x04, 0xc8, 0x46, 0x93, 0xe2, 0xce, 0x46, 0xd3, 0x98, 0xf2, 0xf0, 0xb7, 0x83, 0xe8, 0xf7, 0xa4,
+ 0xd4, 0xde, 0x90, 0xdc, 0x8d, 0xab, 0x8b, 0x37, 0x2c, 0x2e, 0xa7, 0xc3, 0x8f, 0x7d, 0x76, 0xbc,
+ 0xa8, 0x76, 0xfd, 0xf4, 0x3a, 0x2a, 0xf8, 0xb1, 0x1e, 0xa6, 0x95, 0xd5, 0xe3, 0xbc, 0x8f, 0xd5,
+ 0x41, 0xc2, 0x8f, 0x15, 0xa3, 0x78, 0x00, 0x11, 0x72, 0xb9, 0xf8, 0x7f, 0x40, 0xea, 0xbb, 0x3b,
+ 0x00, 0x6b, 0x9d, 0x1c, 0x1e, 0x1f, 0x6b, 0xa1, 0x1b, 0x2d, 0x9b, 0x94, 0x0d, 0x7f, 0xc4, 0x8c,
+ 0xfa, 0xe2, 0xa4, 0x67, 0xdd, 0x2b, 0xc2, 0x9e, 0x5b, 0x3d, 0x63, 0xd4, 0x17, 0x27, 0x3c, 0x5b,
+ 0xc3, 0x5a, 0xc8, 0xb3, 0x67, 0x68, 0x1b, 0xf5, 0xc5, 0x71, 0x46, 0xa1, 0x98, 0x66, 0x5e, 0x78,
+ 0x1c, 0xb0, 0x83, 0xe7, 0x86, 0xf5, 0x5e, 0xac, 0x72, 0xf8, 0xf7, 0x83, 0xe8, 0x87, 0xc6, 0xe3,
+ 0x11, 0x9b, 0xa6, 0xe7, 0x2b, 0x09, 0xbd, 0x8a, 0xb3, 0x05, 0x54, 0xc3, 0xa7, 0x94, 0xb5, 0x36,
+ 0xab, 0x4b, 0xf0, 0xec, 0x5a, 0x3a, 0xb8, 0xef, 0x6c, 0x17, 0x45, 0xb6, 0x9a, 0xc0, 0xbc, 0xc8,
+ 0xc8, 0xbe, 0xe3, 0x20, 0xe1, 0xbe, 0x83, 0x51, 0x9c, 0x69, 0x4e, 0x58, 0x9d, 0xc7, 0x7a, 0x33,
+ 0x4d, 0x21, 0x0a, 0x67, 0x9a, 0x0d, 0x82, 0x73, 0xa5, 0x09, 0xdb, 0x61, 0x59, 0x06, 0x09, 0x6f,
+ 0x1f, 0x6a, 0x6a, 0x4d, 0x43, 0x84, 0x73, 0x25, 0x44, 0x9a, 0xf5, 0x7f, 0xb3, 0xe6, 0x8a, 0x4b,
+ 0x78, 0xbe, 0x3a, 0x4c, 0xf3, 0xcb, 0xa1, 0x3f, 0x2d, 0x30, 0x00, 0xb1, 0xfe, 0xf7, 0x82, 0x78,
+ 0x6d, 0x77, 0x96, 0x4f, 0x99, 0x7f, 0x6d, 0x57, 0x4b, 0xc2, 0x6b, 0x3b, 0x45, 0x60, 0x93, 0xa7,
+ 0x40, 0x99, 0xac, 0x25, 0x61, 0x93, 0x8a, 0xf0, 0x0d, 0x85, 0x6a, 0x97, 0x98, 0x1c, 0x0a, 0xd1,
+ 0xbe, 0xf0, 0x5a, 0x27, 0x87, 0x23, 0xb4, 0x59, 0xe4, 0xed, 0x01, 0x4f, 0x2e, 0xfc, 0x11, 0xea,
+ 0x20, 0xe1, 0x08, 0xc5, 0x28, 0xae, 0xd2, 0x84, 0xe9, 0x45, 0xea, 0x03, 0x7f, 0x7c, 0xb4, 0x16,
+ 0xa8, 0x6b, 0x9d, 0x1c, 0x5e, 0x1a, 0x1d, 0xcc, 0xc5, 0x33, 0xf3, 0x06, 0xb9, 0x94, 0x85, 0x97,
+ 0x46, 0x9a, 0xc1, 0xa5, 0x97, 0x82, 0xfa, 0x71, 0xfa, 0x4b, 0x6f, 0xe4, 0xe1, 0xd2, 0x3b, 0x9c,
+ 0x72, 0xf2, 0xef, 0x83, 0xe8, 0xa6, 0xed, 0xe5, 0x98, 0xd5, 0x7d, 0xe4, 0x55, 0x9c, 0xa5, 0xd3,
+ 0x98, 0xc3, 0x84, 0x5d, 0x42, 0x8e, 0xf6, 0x6d, 0xdc, 0xd2, 0x4a, 0x7e, 0xe4, 0x28, 0x10, 0xfb,
+ 0x36, 0xbd, 0x14, 0x71, 0x9c, 0x48, 0xfa, 0xac, 0x82, 0x9d, 0xb8, 0x22, 0x46, 0x32, 0x07, 0x09,
+ 0xc7, 0x09, 0x46, 0x71, 0xbe, 0x2a, 0xe5, 0x2f, 0xde, 0x16, 0x50, 0xa6, 0x90, 0x27, 0xe0, 0xcf,
+ 0x57, 0x31, 0x15, 0xce, 0x57, 0x3d, 0x74, 0x6b, 0x5b, 0x43, 0x0f, 0x4e, 0xed, 0x7b, 0x09, 0x98,
+ 0x08, 0xdc, 0x4b, 0x20, 0x50, 0x5c, 0x49, 0x03, 0x78, 0xb7, 0x06, 0x5b, 0x56, 0x82, 0x5b, 0x83,
+ 0x34, 0xdd, 0xda, 0x2c, 0xd2, 0xcc, 0xb8, 0xee, 0x26, 0x1d, 0x45, 0x1f, 0xdb, 0xdd, 0x65, 0xbd,
+ 0x17, 0xeb, 0xdf, 0x9d, 0x3a, 0x85, 0x2c, 0x16, 0x53, 0x48, 0x60, 0x0b, 0xa8, 0x61, 0xfa, 0xec,
+ 0x4e, 0x59, 0xac, 0x72, 0xf8, 0xd7, 0x83, 0xe8, 0x23, 0x9f, 0xc7, 0x97, 0x85, 0xf0, 0xfb, 0xa4,
+ 0xdb, 0x96, 0x24, 0x89, 0x8b, 0x17, 0x61, 0x0d, 0x55, 0x86, 0x3f, 0x8f, 0x3e, 0x6c, 0x44, 0xe6,
+ 0x5e, 0x86, 0x2a, 0x80, 0x9b, 0x40, 0xe9, 0xf2, 0x63, 0x4e, 0xbb, 0xdf, 0xea, 0xcd, 0x9b, 0xb5,
+ 0x89, 0x5b, 0xae, 0x0a, 0xad, 0x4d, 0xb4, 0x0d, 0x25, 0x26, 0xd6, 0x26, 0x1e, 0xcc, 0xec, 0x6a,
+ 0xd8, 0xd5, 0x7b, 0x9d, 0xf2, 0x0b, 0x91, 0xfb, 0xa0, 0x5d, 0x0d, 0xa7, 0xac, 0x1a, 0x22, 0x76,
+ 0x35, 0x48, 0x18, 0x67, 0x07, 0x0d, 0x58, 0xf7, 0x4d, 0xdf, 0xb8, 0xaa, 0x0d, 0xd9, 0x3d, 0xf3,
+ 0x61, 0x37, 0x88, 0xe3, 0xb5, 0x11, 0xab, 0x65, 0xc8, 0xe3, 0x90, 0x05, 0xb4, 0x14, 0x59, 0xef,
+ 0xc5, 0x2a, 0x87, 0x7f, 0x19, 0xfd, 0xa0, 0x55, 0xb1, 0x3d, 0x88, 0xf9, 0xa2, 0x84, 0xe9, 0x70,
+ 0xab, 0xa3, 0xdc, 0x0d, 0xa8, 0x5d, 0x3f, 0xe9, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x86, 0x95,
+ 0x2e, 0xc3, 0xd3, 0x90, 0x49, 0x97, 0x0d, 0xe6, 0xcb, 0xb4, 0x4e, 0x6b, 0xc9, 0x6b, 0x47, 0xd7,
+ 0xf6, 0x32, 0x4e, 0x33, 0x71, 0x44, 0xf3, 0x71, 0xc8, 0xa8, 0x83, 0x06, 0x97, 0xbc, 0xa4, 0x4a,
+ 0x6b, 0x64, 0x16, 0x7d, 0xdc, 0x5a, 0x2a, 0x6d, 0xd0, 0x23, 0x81, 0x67, 0xa5, 0xb4, 0xd9, 0x93,
+ 0x56, 0x6e, 0x79, 0xb3, 0x55, 0x58, 0xff, 0x6c, 0x07, 0xb9, 0xcf, 0xab, 0x52, 0xf5, 0x44, 0xfa,
+ 0x66, 0x4f, 0x5a, 0x79, 0xfd, 0x8b, 0xe8, 0xc3, 0xb6, 0x57, 0x35, 0x11, 0x6d, 0x75, 0x9a, 0x42,
+ 0x73, 0xd1, 0x93, 0xfe, 0x0a, 0x66, 0x79, 0xf1, 0x65, 0x5a, 0x71, 0x56, 0xae, 0xc6, 0x17, 0xec,
+ 0xaa, 0xb9, 0xef, 0xec, 0xf6, 0x56, 0x05, 0x8c, 0x2c, 0x82, 0x58, 0x5e, 0xf8, 0xc9, 0x96, 0x2b,
+ 0x73, 0x2f, 0xba, 0x22, 0x5c, 0x59, 0x44, 0x87, 0x2b, 0x97, 0x34, 0x63, 0x55, 0x53, 0x2b, 0x73,
+ 0x89, 0x7b, 0xcd, 0x5f, 0xd4, 0xf6, 0x45, 0xee, 0x87, 0xdd, 0xa0, 0xc9, 0x58, 0x94, 0x78, 0x37,
+ 0x3d, 0x3f, 0xd7, 0x75, 0xf2, 0x97, 0xd4, 0x46, 0x88, 0x8c, 0x85, 0x40, 0x4d, 0x02, 0xbc, 0x97,
+ 0x66, 0x20, 0xce, 0xfb, 0x5e, 0x9e, 0x9f, 0x67, 0x2c, 0x9e, 0xa2, 0x04, 0xb8, 0x16, 0x8f, 0x6c,
+ 0x39, 0x91, 0x00, 0xfb, 0x38, 0x73, 0xda, 0x53, 0x4b, 0x4f, 0x21, 0x61, 0x79, 0x92, 0x66, 0xf8,
+ 0xfa, 0x97, 0xd0, 0xd4, 0x42, 0xe2, 0xb4, 0xa7, 0x05, 0x99, 0x89, 0xb1, 0x16, 0xd5, 0xdd, 0xbe,
+ 0x29, 0xff, 0xfd, 0xb6, 0xa2, 0x25, 0x26, 0x26, 0x46, 0x0f, 0x66, 0xd6, 0x81, 0xb5, 0xf0, 0xac,
+ 0x10, 0xc6, 0x6f, 0xb5, 0xb5, 0xa4, 0x84, 0x58, 0x07, 0xba, 0x84, 0x59, 0xcf, 0xd4, 0xbf, 0xef,
+ 0xb2, 0xab, 0x5c, 0x18, 0xbd, 0xd3, 0x56, 0x69, 0x64, 0xc4, 0x7a, 0x06, 0x33, 0xca, 0xf0, 0x4f,
+ 0xa3, 0x5f, 0x15, 0x86, 0x4b, 0x56, 0x0c, 0x6f, 0x78, 0x14, 0x4a, 0xeb, 0xa6, 0xd6, 0x4d, 0x52,
+ 0x6e, 0x2e, 0x1c, 0xea, 0xd8, 0x38, 0xab, 0xe2, 0x19, 0x0c, 0xef, 0x11, 0x2d, 0x2e, 0xa4, 0xc4,
+ 0x85, 0xc3, 0x36, 0xe5, 0x46, 0xc5, 0x31, 0x9b, 0x2a, 0xeb, 0x9e, 0x1a, 0x6a, 0x61, 0x28, 0x2a,
+ 0x6c, 0xc8, 0x24, 0x33, 0xc7, 0xf1, 0x32, 0x9d, 0xe9, 0x09, 0x47, 0x8e, 0x5b, 0x15, 0x4a, 0x66,
+ 0x0c, 0x33, 0xb2, 0x20, 0x22, 0x99, 0x21, 0x61, 0xe5, 0xf3, 0xdf, 0x06, 0xd1, 0x2d, 0xc3, 0xec,
+ 0x37, 0x3b, 0x67, 0x07, 0xf9, 0x39, 0xab, 0x53, 0x9f, 0xc3, 0x34, 0xbf, 0xac, 0x86, 0x9f, 0x51,
+ 0x26, 0xfd, 0xbc, 0x2e, 0xca, 0xe7, 0xd7, 0xd6, 0x33, 0x59, 0x6b, 0xb3, 0xad, 0x64, 0xce, 0x62,
+ 0xa5, 0x06, 0xca, 0x5a, 0xf5, 0xee, 0x13, 0xe6, 0x88, 0xac, 0x35, 0xc4, 0x9b, 0x26, 0xd6, 0xce,
+ 0x33, 0x96, 0xe3, 0x26, 0x36, 0x16, 0x6a, 0x21, 0xd1, 0xc4, 0x2d, 0xc8, 0x8c, 0xc7, 0x8d, 0x48,
+ 0xee, 0x80, 0x6c, 0x67, 0x19, 0x1a, 0x8f, 0xb5, 0xaa, 0x06, 0x88, 0xf1, 0xd8, 0x0b, 0x2a, 0x3f,
+ 0xa7, 0xd1, 0xf7, 0xea, 0x47, 0x7a, 0x52, 0xc2, 0x32, 0x05, 0x7c, 0x6d, 0xc0, 0x92, 0x10, 0xfd,
+ 0xdf, 0x25, 0x4c, 0xcf, 0x3a, 0xcb, 0xab, 0x22, 0x8b, 0xab, 0x0b, 0x75, 0xd8, 0xeb, 0xd6, 0xb9,
+ 0x11, 0xe2, 0xe3, 0xde, 0xfb, 0x1d, 0x94, 0x19, 0xd4, 0x1b, 0x99, 0x1e, 0x62, 0x1e, 0xf8, 0x55,
+ 0x5b, 0xc3, 0xcc, 0x5a, 0x27, 0x67, 0x76, 0x9f, 0xf7, 0xe3, 0x2c, 0x83, 0x72, 0xd5, 0xc8, 0x8e,
+ 0xe2, 0x3c, 0x3d, 0x87, 0x8a, 0xa3, 0xdd, 0x67, 0x45, 0x8d, 0x30, 0x46, 0xec, 0x3e, 0x07, 0x70,
+ 0x93, 0xcd, 0x23, 0xcf, 0x07, 0xf9, 0x14, 0xde, 0xa2, 0x6c, 0x1e, 0xdb, 0x11, 0x0c, 0x91, 0xcd,
+ 0x53, 0xac, 0xd9, 0x85, 0x7d, 0x9e, 0xb1, 0xe4, 0x52, 0x4d, 0x01, 0x6e, 0x03, 0x0b, 0x09, 0x9e,
+ 0x03, 0xee, 0x84, 0x10, 0x33, 0x09, 0x08, 0xc1, 0x29, 0x14, 0x59, 0x9c, 0xe0, 0xbb, 0x23, 0x52,
+ 0x47, 0xc9, 0x88, 0x49, 0x00, 0x33, 0xa8, 0xb8, 0xea, 0x4e, 0x8a, 0xaf, 0xb8, 0xe8, 0x4a, 0xca,
+ 0x9d, 0x10, 0x62, 0xa6, 0x41, 0x21, 0x18, 0x17, 0x59, 0xca, 0x51, 0x37, 0x90, 0x1a, 0x42, 0x42,
+ 0x74, 0x03, 0x97, 0x40, 0x26, 0x8f, 0xa0, 0x9c, 0x81, 0xd7, 0xa4, 0x90, 0x04, 0x4d, 0x36, 0x84,
+ 0xb9, 0x62, 0x28, 0xeb, 0xce, 0x8a, 0x15, 0xba, 0x62, 0xa8, 0xaa, 0xc5, 0x8a, 0x15, 0x71, 0xc5,
+ 0xd0, 0x01, 0x50, 0x11, 0x4f, 0xe2, 0x8a, 0xfb, 0x8b, 0x28, 0x24, 0xc1, 0x22, 0x36, 0x84, 0x99,
+ 0xa3, 0x65, 0x11, 0x17, 0x1c, 0xcd, 0xd1, 0xaa, 0x00, 0xd6, 0x69, 0xf0, 0x4d, 0x52, 0x6e, 0x46,
+ 0x12, 0xd9, 0x2a, 0xc0, 0xf7, 0x52, 0xc8, 0xa6, 0x15, 0x1a, 0x49, 0xd4, 0x73, 0x6f, 0xa4, 0xc4,
+ 0x48, 0xd2, 0xa6, 0x50, 0x28, 0xa9, 0xbd, 0x6a, 0x5f, 0xed, 0xd0, 0x36, 0xf5, 0x9d, 0x10, 0x62,
+ 0xc6, 0xa7, 0xa6, 0xd0, 0x3b, 0x71, 0x59, 0xa6, 0xf5, 0xe4, 0xff, 0xc0, 0x5f, 0xa0, 0x46, 0x4e,
+ 0x8c, 0x4f, 0x3e, 0x0e, 0x75, 0xaf, 0x66, 0xe0, 0xf6, 0x15, 0x0c, 0x0f, 0xdd, 0x77, 0x83, 0x8c,
+ 0xc9, 0x38, 0x85, 0xc4, 0x3a, 0xce, 0xf4, 0x3d, 0x4d, 0xcf, 0x69, 0xe6, 0x83, 0x2e, 0xcc, 0x7a,
+ 0x05, 0x40, 0xbb, 0x38, 0x62, 0x4b, 0x98, 0xb0, 0x17, 0x6f, 0xd3, 0x8a, 0xa7, 0xf9, 0x4c, 0xcd,
+ 0xdc, 0xcf, 0x08, 0x4b, 0x3e, 0x98, 0x78, 0x05, 0xa0, 0x53, 0xc9, 0x24, 0x10, 0xa8, 0x2c, 0xc7,
+ 0x70, 0xe5, 0x4d, 0x20, 0xb0, 0x45, 0xcd, 0x11, 0x09, 0x44, 0x88, 0x37, 0xfb, 0x28, 0xda, 0xb9,
+ 0x7a, 0x4f, 0x72, 0xc2, 0x9a, 0x5c, 0x8e, 0xb2, 0x86, 0x41, 0x62, 0x29, 0x1b, 0x54, 0x30, 0xeb,
+ 0x4b, 0xed, 0xdf, 0x74, 0xb1, 0x87, 0x84, 0x9d, 0x76, 0x37, 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32,
+ 0x67, 0xf2, 0x94, 0xab, 0xf6, 0x91, 0xfc, 0xa3, 0x1e, 0xa4, 0xb5, 0x27, 0x63, 0x57, 0xeb, 0x79,
+ 0x9c, 0x5c, 0xce, 0x4a, 0xb6, 0xc8, 0xa7, 0x3b, 0x2c, 0x63, 0x25, 0xda, 0x93, 0x71, 0x4a, 0x8d,
+ 0x50, 0x62, 0x4f, 0xa6, 0x43, 0xc5, 0x64, 0x70, 0x76, 0x29, 0xb6, 0xb3, 0x74, 0x86, 0x57, 0xd4,
+ 0x8e, 0x21, 0x01, 0x10, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, 0x5c, 0x71, 0xf3, 0x34, 0x89, 0x33,
+ 0xe9, 0x6f, 0x8b, 0x36, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, 0xf0, 0xd4, 0x73, 0xb2, 0x28, 0xf3,
+ 0x83, 0x9c, 0x33, 0xb2, 0x9e, 0x0d, 0xd0, 0x59, 0x4f, 0x0b, 0x44, 0xc3, 0xea, 0x04, 0xde, 0xd6,
+ 0xa5, 0xa9, 0xff, 0xf1, 0x0d, 0xab, 0xf5, 0xef, 0x23, 0x25, 0x0f, 0x0d, 0xab, 0x88, 0x43, 0x95,
+ 0x51, 0x4e, 0x64, 0xc0, 0x04, 0xb4, 0xdd, 0x30, 0x79, 0xd8, 0x0d, 0xfa, 0xfd, 0x8c, 0xf9, 0x2a,
+ 0x83, 0x90, 0x1f, 0x01, 0xf4, 0xf1, 0xd3, 0x80, 0x66, 0xbb, 0xc5, 0xa9, 0xcf, 0x05, 0x24, 0x97,
+ 0xad, 0x2b, 0x46, 0x6e, 0x41, 0x25, 0x42, 0x6c, 0xb7, 0x10, 0xa8, 0xbf, 0x89, 0x0e, 0x12, 0x96,
+ 0x87, 0x9a, 0xa8, 0x96, 0xf7, 0x69, 0x22, 0xc5, 0x99, 0xc5, 0xaf, 0x96, 0xaa, 0xc8, 0x94, 0xcd,
+ 0xb4, 0x4e, 0x58, 0xb0, 0x21, 0x62, 0xf1, 0x4b, 0xc2, 0x26, 0x27, 0xc7, 0x3e, 0x8f, 0xda, 0xf7,
+ 0x95, 0x5b, 0x56, 0x8e, 0xe8, 0xfb, 0xca, 0x14, 0x4b, 0x57, 0x52, 0xc6, 0x48, 0x87, 0x15, 0x37,
+ 0x4e, 0x36, 0xfa, 0xc1, 0x66, 0xc9, 0xe3, 0xf8, 0xdc, 0xc9, 0x20, 0x2e, 0xa5, 0xd7, 0xcd, 0x80,
+ 0x21, 0x83, 0x11, 0x4b, 0x9e, 0x00, 0x8e, 0x86, 0x30, 0xc7, 0xf3, 0x0e, 0xcb, 0x39, 0xe4, 0xdc,
+ 0x37, 0x84, 0xb9, 0xc6, 0x14, 0x18, 0x1a, 0xc2, 0x28, 0x05, 0x14, 0xb7, 0x62, 0x3f, 0x08, 0xf8,
+ 0x71, 0x3c, 0xf7, 0x66, 0x6c, 0x72, 0xaf, 0x47, 0xca, 0x43, 0x71, 0x8b, 0x38, 0xeb, 0x90, 0xcf,
+ 0xf6, 0x32, 0x89, 0xcb, 0x99, 0xde, 0xdd, 0x98, 0x0e, 0x9f, 0xd0, 0x76, 0x5c, 0x92, 0x38, 0xe4,
+ 0x0b, 0x6b, 0xa0, 0x61, 0xe7, 0x60, 0x1e, 0xcf, 0x74, 0x4d, 0x3d, 0x35, 0x10, 0xf2, 0x56, 0x55,
+ 0x1f, 0x76, 0x83, 0xc8, 0xcf, 0xab, 0x74, 0x0a, 0x2c, 0xe0, 0x47, 0xc8, 0xfb, 0xf8, 0xc1, 0x20,
+ 0xca, 0xde, 0xea, 0x7a, 0xcb, 0x15, 0xdd, 0x76, 0x3e, 0x55, 0xeb, 0xd8, 0x11, 0xf1, 0x78, 0x10,
+ 0x17, 0xca, 0xde, 0x08, 0x1e, 0xf5, 0xd1, 0x66, 0x83, 0x36, 0xd4, 0x47, 0xf5, 0xfe, 0x6b, 0x9f,
+ 0x3e, 0xea, 0x83, 0x95, 0xcf, 0x9f, 0xab, 0x3e, 0xba, 0x1b, 0xf3, 0xb8, 0xce, 0xdb, 0x5f, 0xa5,
+ 0x70, 0xa5, 0x16, 0xc2, 0x9e, 0xfa, 0x36, 0xd4, 0x48, 0xbc, 0xa8, 0x86, 0x56, 0xc5, 0x5b, 0xbd,
+ 0xf9, 0x80, 0x6f, 0xb5, 0x42, 0xe8, 0xf4, 0x8d, 0x96, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xf5,
+ 0x06, 0x6c, 0xa7, 0x6f, 0xf4, 0x1a, 0xec, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x9b, 0xa6, 0xe3, 0xda,
+ 0xce, 0xeb, 0x3c, 0x2c, 0xe1, 0xe9, 0x12, 0x7c, 0xe9, 0xa4, 0x6b, 0x4f, 0xa3, 0xa1, 0x74, 0x92,
+ 0x56, 0xb1, 0x3e, 0x9b, 0xe2, 0x2b, 0xc5, 0x09, 0xab, 0x52, 0x71, 0x48, 0xff, 0xac, 0x87, 0xd1,
+ 0x06, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xb8, 0xd1, 0x41, 0xcd, 0x8d, 0xe2, 0x8d, 0x80, 0xbd,
+ 0xf6, 0xc5, 0xe2, 0xcd, 0x9e, 0xb4, 0x39, 0xf8, 0x73, 0x18, 0xfb, 0xc4, 0x31, 0xd4, 0xaa, 0xde,
+ 0x43, 0xc7, 0x27, 0xfd, 0x15, 0x94, 0xfb, 0xbf, 0x6b, 0xd6, 0x15, 0xd8, 0xbf, 0xea, 0x04, 0x4f,
+ 0xfb, 0x58, 0x44, 0x1d, 0xe1, 0xd9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x73, 0x10, 0xdd, 0xf1, 0x16,
+ 0xc4, 0x3d, 0x7b, 0xfe, 0xfd, 0x3e, 0xb6, 0xfd, 0x67, 0xd0, 0x5f, 0x7c, 0x17, 0x55, 0x55, 0xba,
+ 0x7f, 0x6a, 0x96, 0xf7, 0x8d, 0x86, 0x78, 0xeb, 0xe3, 0x65, 0x39, 0x85, 0x52, 0xf5, 0xd8, 0x50,
+ 0xd0, 0x19, 0x18, 0xf7, 0xdb, 0x4f, 0xaf, 0xa9, 0x65, 0x7d, 0xe2, 0xc7, 0x81, 0xd5, 0xdb, 0x7c,
+ 0x56, 0x79, 0x42, 0x96, 0x2d, 0x1a, 0x17, 0xe8, 0xb3, 0xeb, 0xaa, 0x51, 0x3d, 0xd9, 0x82, 0xc5,
+ 0x17, 0x03, 0x9e, 0xf5, 0x34, 0xec, 0x7c, 0x43, 0xe0, 0x93, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xf7,
+ 0x20, 0xba, 0xef, 0xb0, 0xe6, 0xb4, 0x03, 0xed, 0xc9, 0xfc, 0x24, 0x60, 0x9f, 0x52, 0xd2, 0x85,
+ 0xfb, 0x83, 0xef, 0xa6, 0x6c, 0xbe, 0x87, 0xe3, 0xa8, 0xec, 0xa5, 0x19, 0x87, 0xb2, 0xfd, 0x3d,
+ 0x1c, 0xd7, 0xae, 0xa4, 0x46, 0xf4, 0xf7, 0x70, 0x02, 0xb8, 0xf5, 0x3d, 0x1c, 0x8f, 0x67, 0xef,
+ 0xf7, 0x70, 0xbc, 0xd6, 0x82, 0xdf, 0xc3, 0x09, 0x6b, 0x50, 0x93, 0x4f, 0x53, 0x04, 0xb9, 0xab,
+ 0xde, 0xcb, 0xa2, 0xbb, 0xc9, 0xfe, 0xf4, 0x3a, 0x2a, 0xc4, 0xf4, 0x2b, 0x39, 0x71, 0x0b, 0xaf,
+ 0xc7, 0x33, 0x75, 0x6e, 0xe2, 0x6d, 0xf5, 0xe6, 0x95, 0xef, 0x9f, 0xa9, 0xb5, 0x97, 0x9e, 0x6c,
+ 0x58, 0x29, 0xde, 0xa9, 0x5c, 0x0f, 0x4d, 0x1e, 0xb5, 0x05, 0xbb, 0xe5, 0x37, 0xfa, 0xc1, 0x44,
+ 0x75, 0x6b, 0x42, 0x35, 0xfa, 0xa8, 0xcb, 0x10, 0x6a, 0xf2, 0xad, 0xde, 0x3c, 0x31, 0xc9, 0x49,
+ 0xdf, 0xb2, 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe5, 0x7e, 0xa9, 0x92, 0x5a,
+ 0xdb, 0xbd, 0x68, 0xe7, 0xcd, 0x2e, 0x53, 0x63, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x7a, 0x63,
+ 0x4f, 0xf0, 0x5d, 0xe9, 0x8d, 0x77, 0x92, 0xff, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x3a, 0x88,
+ 0x6e, 0x92, 0x65, 0x51, 0x71, 0xf0, 0x59, 0x5f, 0xcb, 0x28, 0x1e, 0x3e, 0xbf, 0xb6, 0x9e, 0x2a,
+ 0xd4, 0x7f, 0x0c, 0xa2, 0x5b, 0x81, 0x42, 0xc9, 0x00, 0xb9, 0x86, 0x75, 0x37, 0x50, 0x7e, 0x7c,
+ 0x7d, 0x45, 0x6a, 0xba, 0xb7, 0xf1, 0x71, 0xfb, 0x43, 0x31, 0x01, 0xdb, 0x63, 0xfa, 0x43, 0x31,
+ 0xdd, 0x5a, 0x78, 0x0b, 0xaa, 0x4e, 0x4a, 0xd4, 0xca, 0xc8, 0xb7, 0x05, 0x25, 0x72, 0x16, 0xb4,
+ 0x22, 0x5a, 0xeb, 0xe4, 0x7c, 0x4e, 0x5e, 0xbc, 0x2d, 0xe2, 0x7c, 0x4a, 0x3b, 0x91, 0xf2, 0x6e,
+ 0x27, 0x9a, 0xc3, 0x5b, 0x77, 0xb5, 0xf4, 0x94, 0x35, 0xcb, 0xbc, 0x47, 0x94, 0xbe, 0x46, 0x82,
+ 0x5b, 0x77, 0x2d, 0x94, 0xf0, 0xa6, 0x72, 0xda, 0x90, 0x37, 0x94, 0xca, 0x3e, 0xee, 0x83, 0xa2,
+ 0x05, 0x84, 0xf6, 0xa6, 0x4f, 0x04, 0x36, 0x42, 0x56, 0x5a, 0xa7, 0x02, 0x9b, 0x3d, 0x69, 0xc2,
+ 0xed, 0x18, 0xf8, 0x97, 0x10, 0x4f, 0xa1, 0x0c, 0xba, 0xd5, 0x54, 0x2f, 0xb7, 0x36, 0xed, 0x73,
+ 0xbb, 0xc3, 0xb2, 0xc5, 0x3c, 0x57, 0x8d, 0x49, 0xba, 0xb5, 0xa9, 0x6e, 0xb7, 0x88, 0xc6, 0x9b,
+ 0x96, 0xc6, 0xad, 0x48, 0x2f, 0x1f, 0x87, 0xcd, 0x38, 0x59, 0xe5, 0x7a, 0x2f, 0x96, 0xae, 0xa7,
+ 0x0a, 0xa3, 0x8e, 0x7a, 0xa2, 0x48, 0xda, 0xec, 0x49, 0xe3, 0xdd, 0x43, 0xcb, 0xad, 0x8e, 0xa7,
+ 0xad, 0x0e, 0x5b, 0xad, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0xef, 0xd5, 0xaa, 0xa8, 0xaa, 0xd7, 0x45,
+ 0x7b, 0x69, 0x96, 0x0d, 0xd7, 0x03, 0x61, 0xd2, 0x40, 0xc1, 0xbd, 0x5a, 0x0f, 0x4c, 0x44, 0x72,
+ 0xb3, 0xb7, 0x99, 0x0f, 0xbb, 0xec, 0x08, 0xaa, 0x57, 0x24, 0xdb, 0x34, 0xda, 0x6f, 0xb3, 0x1e,
+ 0xb5, 0xae, 0xed, 0x28, 0xfc, 0xe0, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0xa3, 0xcb, 0x00, 0x82, 0x12,
+ 0x33, 0xcb, 0x3d, 0xca, 0x84, 0x33, 0x93, 0xdc, 0xef, 0xa0, 0xd0, 0x9e, 0xa5, 0xec, 0x46, 0xaf,
+ 0xd3, 0xe9, 0x0c, 0xb8, 0xf7, 0x1c, 0xcb, 0x06, 0x82, 0xe7, 0x58, 0x08, 0x44, 0x4d, 0x27, 0x7f,
+ 0xd7, 0x9b, 0xb5, 0x07, 0x53, 0x5f, 0xd3, 0x29, 0x65, 0x8b, 0x0a, 0x35, 0x9d, 0x97, 0x46, 0xa3,
+ 0x81, 0x76, 0xab, 0x5e, 0xdc, 0x7f, 0x1c, 0x32, 0x83, 0xde, 0xde, 0x5f, 0xef, 0xc5, 0xa2, 0x19,
+ 0xc5, 0x38, 0x4c, 0xe7, 0x29, 0xf7, 0xcd, 0x28, 0x96, 0x8d, 0x1a, 0x09, 0xcd, 0x28, 0x6d, 0x94,
+ 0xaa, 0x5e, 0x9d, 0x23, 0x1c, 0x4c, 0xc3, 0xd5, 0x93, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0x75, 0xec,
+ 0x9a, 0xeb, 0x90, 0xe1, 0x17, 0x6a, 0xb1, 0xec, 0x89, 0x6d, 0xf1, 0x42, 0x27, 0x06, 0x43, 0xa3,
+ 0x0e, 0xa5, 0x80, 0x8f, 0x13, 0x6a, 0xae, 0x39, 0x19, 0x2e, 0x0a, 0x88, 0xcb, 0x38, 0x4f, 0xbc,
+ 0x8b, 0x53, 0x61, 0xb0, 0x45, 0x86, 0x16, 0xa7, 0xa4, 0x06, 0x3a, 0xd4, 0x77, 0x5f, 0xc5, 0xf4,
+ 0x74, 0x05, 0xfd, 0xce, 0xa3, 0xfb, 0x26, 0xe6, 0xa3, 0x1e, 0x24, 0x3e, 0xd4, 0x6f, 0x00, 0xbd,
+ 0x2d, 0x2f, 0x9d, 0x7e, 0x1c, 0x30, 0xe5, 0xa2, 0xa1, 0x85, 0x30, 0xad, 0x82, 0x82, 0x5a, 0x27,
+ 0xb8, 0xc0, 0x7f, 0x0a, 0x2b, 0x5f, 0x50, 0x9b, 0xfc, 0x54, 0x20, 0xa1, 0xa0, 0x6e, 0xa3, 0x28,
+ 0xcf, 0xb4, 0xd7, 0x41, 0x0f, 0x02, 0xfa, 0xf6, 0xd2, 0x67, 0xad, 0x93, 0x43, 0x3d, 0x67, 0x37,
+ 0x5d, 0x3a, 0xa7, 0x18, 0x9e, 0x82, 0xee, 0xa6, 0x4b, 0xff, 0x21, 0xc6, 0x7a, 0x2f, 0x16, 0x5f,
+ 0x18, 0x88, 0x39, 0xbc, 0x6d, 0x4e, 0xf2, 0x3d, 0xc5, 0x15, 0xf2, 0xd6, 0x51, 0xfe, 0xc3, 0x6e,
+ 0xd0, 0x5c, 0xcf, 0x3d, 0x29, 0x59, 0x02, 0x55, 0xa5, 0xbe, 0x9e, 0xe7, 0xde, 0x7f, 0x52, 0xb2,
+ 0x11, 0xfa, 0x76, 0xde, 0xbd, 0x30, 0xa4, 0x6c, 0x7f, 0x19, 0xbd, 0x7b, 0xc8, 0x66, 0x63, 0xc8,
+ 0xa7, 0xc3, 0x1f, 0xb9, 0x17, 0x62, 0xd9, 0x6c, 0x54, 0xff, 0xac, 0xed, 0xdd, 0xa0, 0xc4, 0xe6,
+ 0x4a, 0xdf, 0x2e, 0xbc, 0x59, 0xcc, 0xc6, 0x3c, 0xe6, 0xe8, 0x4a, 0x9f, 0xf8, 0x7d, 0x54, 0x0b,
+ 0x88, 0x2b, 0x7d, 0x0e, 0x80, 0xec, 0x4d, 0x4a, 0x00, 0xaf, 0xbd, 0x5a, 0x10, 0xb4, 0xa7, 0x00,
+ 0x33, 0xeb, 0x6a, 0x7b, 0x75, 0x62, 0x8b, 0xaf, 0xe0, 0x19, 0x1d, 0x21, 0x25, 0x66, 0xdd, 0x36,
+ 0x65, 0x82, 0x41, 0x56, 0x5f, 0x7c, 0xcf, 0x63, 0x31, 0x9f, 0xc7, 0xe5, 0x0a, 0x05, 0x83, 0xaa,
+ 0xa5, 0x05, 0x10, 0xc1, 0xe0, 0x05, 0x4d, 0x94, 0x37, 0x8f, 0x39, 0xb9, 0xdc, 0x67, 0x25, 0x5b,
+ 0xf0, 0x34, 0x07, 0xfc, 0x4d, 0x07, 0xfd, 0x40, 0x6d, 0x86, 0x88, 0x72, 0x8a, 0x35, 0x59, 0xa1,
+ 0x20, 0xe4, 0xed, 0x40, 0xf1, 0x0d, 0xda, 0x8a, 0xb3, 0x12, 0x9f, 0x0e, 0x4a, 0x2b, 0x18, 0x22,
+ 0xb2, 0x42, 0x12, 0x46, 0x6d, 0x7f, 0x92, 0xe6, 0x33, 0x6f, 0xdb, 0x9f, 0xd8, 0x5f, 0x70, 0xbc,
+ 0x45, 0x03, 0x66, 0x7c, 0x97, 0x0f, 0x4d, 0x7e, 0x37, 0x49, 0xbd, 0x99, 0xe9, 0x7d, 0xe8, 0x36,
+ 0x41, 0x8c, 0xef, 0x7e, 0x12, 0xb9, 0x7a, 0x59, 0x40, 0x0e, 0xd3, 0xe6, 0x0e, 0x9c, 0xcf, 0x95,
+ 0x43, 0x04, 0x5d, 0x61, 0xd2, 0x8c, 0xaa, 0x42, 0x7e, 0xba, 0xc8, 0x4f, 0x4a, 0x76, 0x9e, 0x66,
+ 0x50, 0xa2, 0x51, 0x55, 0xaa, 0x5b, 0x72, 0x62, 0x54, 0xf5, 0x71, 0xe6, 0x32, 0x85, 0x90, 0x3a,
+ 0x1f, 0x52, 0x9e, 0x94, 0x71, 0x82, 0x2f, 0x53, 0x48, 0x1b, 0x6d, 0x8c, 0xd8, 0x49, 0x0b, 0xe0,
+ 0x26, 0xd2, 0x8f, 0x80, 0x97, 0x69, 0x52, 0x8d, 0x81, 0x9f, 0xc4, 0x65, 0x3c, 0x07, 0x0e, 0x25,
+ 0x8e, 0x74, 0x85, 0x8c, 0x1c, 0x86, 0x88, 0x74, 0x8a, 0x55, 0x0e, 0xff, 0x30, 0x7a, 0xbf, 0x1e,
+ 0xe8, 0x21, 0x57, 0xdf, 0xfc, 0x7f, 0x21, 0xfe, 0x58, 0xc8, 0xf0, 0x03, 0x6d, 0x63, 0xcc, 0x4b,
+ 0x88, 0xe7, 0x8d, 0xed, 0xf7, 0xf4, 0xef, 0x02, 0x7c, 0x32, 0xa8, 0x1b, 0xe4, 0x98, 0xf1, 0xf4,
+ 0xbc, 0x5e, 0x57, 0xa9, 0x53, 0x2c, 0xd4, 0x20, 0xb6, 0x78, 0x14, 0xf8, 0x4c, 0x81, 0x8f, 0x33,
+ 0x03, 0x8d, 0x2d, 0x3d, 0x85, 0x22, 0xc3, 0x03, 0x8d, 0xa3, 0x2d, 0x00, 0x62, 0xa0, 0xf1, 0x82,
+ 0x26, 0xba, 0x6c, 0xf1, 0x04, 0xc2, 0x95, 0x99, 0x40, 0xbf, 0xca, 0x4c, 0x9c, 0x77, 0x04, 0xb2,
+ 0xe8, 0xfd, 0x23, 0x98, 0xbf, 0x81, 0xb2, 0xba, 0x48, 0x8b, 0xfd, 0x7a, 0x86, 0x8d, 0xf9, 0x02,
+ 0xbf, 0x45, 0x67, 0x88, 0x91, 0x46, 0x88, 0x34, 0x84, 0x40, 0xcd, 0x50, 0x66, 0x80, 0x83, 0xea,
+ 0x38, 0x9e, 0x83, 0xf8, 0xe8, 0xc2, 0x70, 0x9d, 0x32, 0x62, 0x41, 0xc4, 0x50, 0x46, 0xc2, 0xd6,
+ 0xeb, 0x46, 0x86, 0x39, 0x85, 0x59, 0x1d, 0x61, 0xe5, 0x49, 0xbc, 0x9a, 0x43, 0xce, 0x95, 0x49,
+ 0xb4, 0x09, 0x6b, 0x99, 0xf4, 0xf3, 0xc4, 0x26, 0x6c, 0x1f, 0x3d, 0x2b, 0xe9, 0x76, 0x1e, 0xfc,
+ 0x09, 0x2b, 0xb9, 0xfc, 0x8b, 0x1e, 0x67, 0x65, 0x86, 0x92, 0x6e, 0xf7, 0xa1, 0x3a, 0x24, 0x91,
+ 0x74, 0x87, 0x35, 0xac, 0x4f, 0x61, 0x3b, 0x65, 0x78, 0x05, 0xa5, 0x8e, 0x93, 0x17, 0xf3, 0x38,
+ 0xcd, 0x54, 0x34, 0x7c, 0x11, 0xb0, 0x4d, 0xe8, 0x10, 0x9f, 0xc2, 0xee, 0xab, 0x6b, 0x7d, 0x3c,
+ 0x3c, 0x5c, 0x42, 0xb4, 0x27, 0xdc, 0x61, 0x9f, 0xd8, 0x13, 0xee, 0xd6, 0x32, 0x4b, 0x35, 0xc3,
+ 0x0a, 0x6e, 0x25, 0x88, 0x1d, 0x36, 0xc5, 0x1b, 0x44, 0x96, 0x4d, 0x04, 0x12, 0x4b, 0xb5, 0xa0,
+ 0x82, 0x99, 0xdb, 0x0c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, 0x1c, 0xdf, 0x7d, 0xb6, 0xec, 0x34,
+ 0x04, 0x31, 0xb7, 0xf9, 0x49, 0x9f, 0xab, 0x7d, 0xe0, 0x93, 0xb4, 0x1e, 0xfa, 0x1f, 0x06, 0x9e,
+ 0x9b, 0x20, 0xba, 0x5d, 0x59, 0xa4, 0x72, 0xf5, 0x8b, 0x41, 0x74, 0x13, 0x3f, 0xd6, 0xed, 0xa2,
+ 0x18, 0xd7, 0x29, 0xc9, 0x29, 0x24, 0x90, 0x16, 0x7c, 0xf8, 0x69, 0xf8, 0x59, 0x21, 0x9c, 0x38,
+ 0x59, 0xef, 0xa1, 0x66, 0x9d, 0xd7, 0xd6, 0x63, 0xc9, 0x58, 0xfe, 0xa9, 0xab, 0xb3, 0x0a, 0x4a,
+ 0x35, 0x53, 0xee, 0x03, 0x47, 0xbd, 0xd3, 0xe2, 0x46, 0x16, 0x58, 0x57, 0x94, 0xe8, 0x9d, 0x61,
+ 0x0d, 0xb3, 0xbb, 0x63, 0x71, 0xa7, 0x50, 0xb1, 0x6c, 0x09, 0xe2, 0xfa, 0xdb, 0x06, 0x69, 0xcc,
+ 0xa2, 0x88, 0xdd, 0x1d, 0x9a, 0x36, 0xe9, 0x46, 0xdb, 0xed, 0x76, 0xbe, 0x3a, 0xc0, 0x67, 0xe4,
+ 0x1e, 0x4b, 0x02, 0x23, 0xd2, 0x8d, 0x00, 0x6e, 0xed, 0x7e, 0x96, 0x2c, 0x9e, 0x26, 0x71, 0xc5,
+ 0x4f, 0xe2, 0x55, 0xc6, 0xe2, 0xa9, 0x98, 0xd7, 0xf1, 0xee, 0x67, 0xc3, 0x8c, 0x6c, 0x88, 0xda,
+ 0xfd, 0xa4, 0x60, 0xb3, 0xb2, 0x53, 0x7f, 0xc1, 0x4b, 0x5d, 0x2d, 0xbc, 0x8b, 0x72, 0x24, 0x51,
+ 0x5e, 0x7c, 0xad, 0xf0, 0x5e, 0x18, 0x32, 0xaf, 0x44, 0x49, 0x91, 0x48, 0x43, 0x6e, 0xf9, 0x74,
+ 0x9c, 0x04, 0xe4, 0x76, 0x80, 0x30, 0x9f, 0x49, 0x90, 0xbf, 0x37, 0x7f, 0x84, 0x82, 0xab, 0x0f,
+ 0xf7, 0x6e, 0xf8, 0x74, 0x6d, 0x68, 0x64, 0x7f, 0xfb, 0x6c, 0xb3, 0x27, 0x6d, 0x16, 0x6e, 0xea,
+ 0xe3, 0xc1, 0x47, 0x50, 0x79, 0xde, 0x6f, 0xae, 0x85, 0x23, 0x23, 0x25, 0x16, 0x6e, 0x6d, 0xca,
+ 0x04, 0x7a, 0x2d, 0x7b, 0x31, 0x4d, 0xb9, 0x92, 0x35, 0x17, 0x76, 0x37, 0xda, 0x06, 0xda, 0x14,
+ 0x51, 0x2b, 0x9a, 0x36, 0x63, 0x79, 0xcd, 0x4c, 0xd8, 0x6c, 0x96, 0x81, 0x82, 0x4e, 0x21, 0x96,
+ 0xdf, 0x78, 0xdb, 0x6a, 0xdb, 0xf2, 0x82, 0xc4, 0x58, 0x1e, 0x54, 0x30, 0x69, 0x64, 0x8d, 0xc9,
+ 0x33, 0x88, 0xe6, 0xc1, 0xae, 0xb5, 0xcd, 0x38, 0x00, 0x91, 0x46, 0x7a, 0x41, 0xf3, 0x1a, 0x56,
+ 0x2d, 0xde, 0x87, 0xe6, 0x49, 0xe0, 0x2f, 0xe2, 0x08, 0x65, 0x4b, 0x4c, 0xbc, 0x86, 0xe5, 0xc1,
+ 0xcc, 0x3a, 0x01, 0x79, 0x78, 0xbe, 0x3a, 0x98, 0xe2, 0x75, 0x02, 0xd6, 0x17, 0x0c, 0xb1, 0x4e,
+ 0xa0, 0x58, 0xb7, 0xe9, 0xf4, 0xe7, 0x7f, 0x0f, 0xe3, 0xca, 0x54, 0xce, 0xd3, 0x74, 0x5e, 0x30,
+ 0xd4, 0x74, 0x94, 0x82, 0xfb, 0x48, 0xed, 0x8f, 0x0b, 0x7b, 0x1e, 0xa9, 0xef, 0xa3, 0xc2, 0x0f,
+ 0xba, 0x30, 0xe9, 0xe1, 0xf9, 0xed, 0xff, 0xf9, 0xe6, 0xc6, 0xe0, 0xeb, 0x6f, 0x6e, 0x0c, 0xfe,
+ 0xef, 0x9b, 0x1b, 0x83, 0x5f, 0x7c, 0x7b, 0xe3, 0x9d, 0xaf, 0xbf, 0xbd, 0xf1, 0xce, 0xff, 0x7e,
+ 0x7b, 0xe3, 0x9d, 0xaf, 0xde, 0x55, 0x7f, 0x7d, 0xf1, 0xcd, 0xaf, 0x88, 0xbf, 0xa1, 0xf8, 0xec,
+ 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x4f, 0x9f, 0x53, 0xa1, 0x71, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -413,6 +423,7 @@ type ClientCommandsClient interface {
ObjectCreate(ctx context.Context, in *pb.RpcObjectCreateRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateResponse, error)
ObjectCreateBookmark(ctx context.Context, in *pb.RpcObjectCreateBookmarkRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateBookmarkResponse, error)
ObjectCreateFromUrl(ctx context.Context, in *pb.RpcObjectCreateFromUrlRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateFromUrlResponse, error)
+ ObjectChatAdd(ctx context.Context, in *pb.RpcObjectChatAddRequest, opts ...grpc.CallOption) (*pb.RpcObjectChatAddResponse, error)
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
ObjectCreateSet(ctx context.Context, in *pb.RpcObjectCreateSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateSetResponse, error)
ObjectGraph(ctx context.Context, in *pb.RpcObjectGraphRequest, opts ...grpc.CallOption) (*pb.RpcObjectGraphResponse, error)
@@ -663,6 +674,15 @@ type ClientCommandsClient interface {
DeviceSetName(ctx context.Context, in *pb.RpcDeviceSetNameRequest, opts ...grpc.CallOption) (*pb.RpcDeviceSetNameResponse, error)
DeviceList(ctx context.Context, in *pb.RpcDeviceListRequest, opts ...grpc.CallOption) (*pb.RpcDeviceListResponse, error)
DeviceNetworkStateSet(ctx context.Context, in *pb.RpcDeviceNetworkStateSetRequest, opts ...grpc.CallOption) (*pb.RpcDeviceNetworkStateSetResponse, error)
+ // Chats dummy impl
+ ChatAddMessage(ctx context.Context, in *pb.RpcChatAddMessageRequest, opts ...grpc.CallOption) (*pb.RpcChatAddMessageResponse, error)
+ ChatEditMessageContent(ctx context.Context, in *pb.RpcChatEditMessageContentRequest, opts ...grpc.CallOption) (*pb.RpcChatEditMessageContentResponse, error)
+ ChatToggleMessageReaction(ctx context.Context, in *pb.RpcChatToggleMessageReactionRequest, opts ...grpc.CallOption) (*pb.RpcChatToggleMessageReactionResponse, error)
+ ChatDeleteMessage(ctx context.Context, in *pb.RpcChatDeleteMessageRequest, opts ...grpc.CallOption) (*pb.RpcChatDeleteMessageResponse, error)
+ ChatGetMessages(ctx context.Context, in *pb.RpcChatGetMessagesRequest, opts ...grpc.CallOption) (*pb.RpcChatGetMessagesResponse, error)
+ ChatGetMessagesByIds(ctx context.Context, in *pb.RpcChatGetMessagesByIdsRequest, opts ...grpc.CallOption) (*pb.RpcChatGetMessagesByIdsResponse, error)
+ ChatSubscribeLastMessages(ctx context.Context, in *pb.RpcChatSubscribeLastMessagesRequest, opts ...grpc.CallOption) (*pb.RpcChatSubscribeLastMessagesResponse, error)
+ ChatUnsubscribe(ctx context.Context, in *pb.RpcChatUnsubscribeRequest, opts ...grpc.CallOption) (*pb.RpcChatUnsubscribeResponse, error)
}
type clientCommandsClient struct {
@@ -1132,6 +1152,15 @@ func (c *clientCommandsClient) ObjectCreateFromUrl(ctx context.Context, in *pb.R
return out, nil
}
+func (c *clientCommandsClient) ObjectChatAdd(ctx context.Context, in *pb.RpcObjectChatAddRequest, opts ...grpc.CallOption) (*pb.RpcObjectChatAddResponse, error) {
+ out := new(pb.RpcObjectChatAddResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectChatAdd", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *clientCommandsClient) ObjectCreateSet(ctx context.Context, in *pb.RpcObjectCreateSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateSetResponse, error) {
out := new(pb.RpcObjectCreateSetResponse)
err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectCreateSet", in, out, opts...)
@@ -2964,6 +2993,78 @@ func (c *clientCommandsClient) DeviceNetworkStateSet(ctx context.Context, in *pb
return out, nil
}
+func (c *clientCommandsClient) ChatAddMessage(ctx context.Context, in *pb.RpcChatAddMessageRequest, opts ...grpc.CallOption) (*pb.RpcChatAddMessageResponse, error) {
+ out := new(pb.RpcChatAddMessageResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatAddMessage", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatEditMessageContent(ctx context.Context, in *pb.RpcChatEditMessageContentRequest, opts ...grpc.CallOption) (*pb.RpcChatEditMessageContentResponse, error) {
+ out := new(pb.RpcChatEditMessageContentResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatEditMessageContent", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatToggleMessageReaction(ctx context.Context, in *pb.RpcChatToggleMessageReactionRequest, opts ...grpc.CallOption) (*pb.RpcChatToggleMessageReactionResponse, error) {
+ out := new(pb.RpcChatToggleMessageReactionResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatToggleMessageReaction", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatDeleteMessage(ctx context.Context, in *pb.RpcChatDeleteMessageRequest, opts ...grpc.CallOption) (*pb.RpcChatDeleteMessageResponse, error) {
+ out := new(pb.RpcChatDeleteMessageResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatDeleteMessage", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatGetMessages(ctx context.Context, in *pb.RpcChatGetMessagesRequest, opts ...grpc.CallOption) (*pb.RpcChatGetMessagesResponse, error) {
+ out := new(pb.RpcChatGetMessagesResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatGetMessages", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatGetMessagesByIds(ctx context.Context, in *pb.RpcChatGetMessagesByIdsRequest, opts ...grpc.CallOption) (*pb.RpcChatGetMessagesByIdsResponse, error) {
+ out := new(pb.RpcChatGetMessagesByIdsResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatGetMessagesByIds", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatSubscribeLastMessages(ctx context.Context, in *pb.RpcChatSubscribeLastMessagesRequest, opts ...grpc.CallOption) (*pb.RpcChatSubscribeLastMessagesResponse, error) {
+ out := new(pb.RpcChatSubscribeLastMessagesResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatSubscribeLastMessages", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *clientCommandsClient) ChatUnsubscribe(ctx context.Context, in *pb.RpcChatUnsubscribeRequest, opts ...grpc.CallOption) (*pb.RpcChatUnsubscribeResponse, error) {
+ out := new(pb.RpcChatUnsubscribeResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ChatUnsubscribe", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// ClientCommandsServer is the server API for ClientCommands service.
type ClientCommandsServer interface {
AppGetVersion(context.Context, *pb.RpcAppGetVersionRequest) *pb.RpcAppGetVersionResponse
@@ -3028,6 +3129,7 @@ type ClientCommandsServer interface {
ObjectCreate(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse
ObjectCreateBookmark(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse
ObjectCreateFromUrl(context.Context, *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse
+ ObjectChatAdd(context.Context, *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
ObjectCreateSet(context.Context, *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse
ObjectGraph(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse
@@ -3278,6 +3380,15 @@ type ClientCommandsServer interface {
DeviceSetName(context.Context, *pb.RpcDeviceSetNameRequest) *pb.RpcDeviceSetNameResponse
DeviceList(context.Context, *pb.RpcDeviceListRequest) *pb.RpcDeviceListResponse
DeviceNetworkStateSet(context.Context, *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse
+ // Chats dummy impl
+ ChatAddMessage(context.Context, *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse
+ ChatEditMessageContent(context.Context, *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse
+ ChatToggleMessageReaction(context.Context, *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse
+ ChatDeleteMessage(context.Context, *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse
+ ChatGetMessages(context.Context, *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse
+ ChatGetMessagesByIds(context.Context, *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse
+ ChatSubscribeLastMessages(context.Context, *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse
+ ChatUnsubscribe(context.Context, *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse
}
// UnimplementedClientCommandsServer can be embedded to have forward compatible implementations.
@@ -3437,6 +3548,9 @@ func (*UnimplementedClientCommandsServer) ObjectCreateBookmark(ctx context.Conte
func (*UnimplementedClientCommandsServer) ObjectCreateFromUrl(ctx context.Context, req *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse {
return nil
}
+func (*UnimplementedClientCommandsServer) ObjectChatAdd(ctx context.Context, req *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse {
+ return nil
+}
func (*UnimplementedClientCommandsServer) ObjectCreateSet(ctx context.Context, req *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse {
return nil
}
@@ -4040,6 +4154,30 @@ func (*UnimplementedClientCommandsServer) DeviceList(ctx context.Context, req *p
func (*UnimplementedClientCommandsServer) DeviceNetworkStateSet(ctx context.Context, req *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse {
return nil
}
+func (*UnimplementedClientCommandsServer) ChatAddMessage(ctx context.Context, req *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatEditMessageContent(ctx context.Context, req *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatToggleMessageReaction(ctx context.Context, req *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatDeleteMessage(ctx context.Context, req *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatGetMessages(ctx context.Context, req *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatGetMessagesByIds(ctx context.Context, req *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatSubscribeLastMessages(ctx context.Context, req *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse {
+ return nil
+}
+func (*UnimplementedClientCommandsServer) ChatUnsubscribe(ctx context.Context, req *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse {
+ return nil
+}
func RegisterClientCommandsServer(s *grpc.Server, srv ClientCommandsServer) {
s.RegisterService(&_ClientCommands_serviceDesc, srv)
@@ -4963,6 +5101,24 @@ func _ClientCommands_ObjectCreateFromUrl_Handler(srv interface{}, ctx context.Co
return interceptor(ctx, in, info, handler)
}
+func _ClientCommands_ObjectChatAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcObjectChatAddRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ObjectChatAdd(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ObjectChatAdd",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ObjectChatAdd(ctx, req.(*pb.RpcObjectChatAddRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _ClientCommands_ObjectCreateSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(pb.RpcObjectCreateSetRequest)
if err := dec(in); err != nil {
@@ -8585,6 +8741,150 @@ func _ClientCommands_DeviceNetworkStateSet_Handler(srv interface{}, ctx context.
return interceptor(ctx, in, info, handler)
}
+func _ClientCommands_ChatAddMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatAddMessageRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatAddMessage(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatAddMessage",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatAddMessage(ctx, req.(*pb.RpcChatAddMessageRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatEditMessageContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatEditMessageContentRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatEditMessageContent(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatEditMessageContent",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatEditMessageContent(ctx, req.(*pb.RpcChatEditMessageContentRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatToggleMessageReaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatToggleMessageReactionRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatToggleMessageReaction(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatToggleMessageReaction",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatToggleMessageReaction(ctx, req.(*pb.RpcChatToggleMessageReactionRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatDeleteMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatDeleteMessageRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatDeleteMessage(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatDeleteMessage",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatDeleteMessage(ctx, req.(*pb.RpcChatDeleteMessageRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatGetMessages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatGetMessagesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatGetMessages(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatGetMessages",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatGetMessages(ctx, req.(*pb.RpcChatGetMessagesRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatGetMessagesByIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatGetMessagesByIdsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatGetMessagesByIds(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatGetMessagesByIds",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatGetMessagesByIds(ctx, req.(*pb.RpcChatGetMessagesByIdsRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatSubscribeLastMessages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatSubscribeLastMessagesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatSubscribeLastMessages(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatSubscribeLastMessages",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatSubscribeLastMessages(ctx, req.(*pb.RpcChatSubscribeLastMessagesRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ClientCommands_ChatUnsubscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcChatUnsubscribeRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ChatUnsubscribe(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ChatUnsubscribe",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ChatUnsubscribe(ctx, req.(*pb.RpcChatUnsubscribeRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
var _ClientCommands_serviceDesc = grpc.ServiceDesc{
ServiceName: "anytype.ClientCommands",
HandlerType: (*ClientCommandsServer)(nil),
@@ -8793,6 +9093,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{
MethodName: "ObjectCreateFromUrl",
Handler: _ClientCommands_ObjectCreateFromUrl_Handler,
},
+ {
+ MethodName: "ObjectChatAdd",
+ Handler: _ClientCommands_ObjectChatAdd_Handler,
+ },
{
MethodName: "ObjectCreateSet",
Handler: _ClientCommands_ObjectCreateSet_Handler,
@@ -9593,6 +9897,38 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{
MethodName: "DeviceNetworkStateSet",
Handler: _ClientCommands_DeviceNetworkStateSet_Handler,
},
+ {
+ MethodName: "ChatAddMessage",
+ Handler: _ClientCommands_ChatAddMessage_Handler,
+ },
+ {
+ MethodName: "ChatEditMessageContent",
+ Handler: _ClientCommands_ChatEditMessageContent_Handler,
+ },
+ {
+ MethodName: "ChatToggleMessageReaction",
+ Handler: _ClientCommands_ChatToggleMessageReaction_Handler,
+ },
+ {
+ MethodName: "ChatDeleteMessage",
+ Handler: _ClientCommands_ChatDeleteMessage_Handler,
+ },
+ {
+ MethodName: "ChatGetMessages",
+ Handler: _ClientCommands_ChatGetMessages_Handler,
+ },
+ {
+ MethodName: "ChatGetMessagesByIds",
+ Handler: _ClientCommands_ChatGetMessagesByIds_Handler,
+ },
+ {
+ MethodName: "ChatSubscribeLastMessages",
+ Handler: _ClientCommands_ChatSubscribeLastMessages_Handler,
+ },
+ {
+ MethodName: "ChatUnsubscribe",
+ Handler: _ClientCommands_ChatUnsubscribe_Handler,
+ },
},
Streams: []grpc.StreamDesc{
{
diff --git a/pkg/lib/localstore/objectstore/objects.go b/pkg/lib/localstore/objectstore/objects.go
index 474713ebd..ab0c56fde 100644
--- a/pkg/lib/localstore/objectstore/objects.go
+++ b/pkg/lib/localstore/objectstore/objects.go
@@ -127,10 +127,15 @@ type VirtualSpacesStore interface {
DeleteVirtualSpace(spaceID string) error
}
+type configProvider interface {
+ GetAnyStoreConfig() *anystore.Config
+}
+
type dsObjectStore struct {
oldStore oldstore.Service
repoPath string
+ anyStoreConfig *anystore.Config
sourceService SourceDetailsFromID
anyStore anystore.DB
objects anystore.Collection
@@ -181,6 +186,7 @@ func (s *dsObjectStore) Init(a *app.App) (err error) {
}
s.arenaPool = &fastjson.ArenaPool{}
s.repoPath = app.MustComponent[wallet.Wallet](a).RepoPath()
+ s.anyStoreConfig = app.MustComponent[configProvider](a).GetAnyStoreConfig()
s.oldStore = app.MustComponent[oldstore.Service](a)
return nil
@@ -203,7 +209,7 @@ func (s *dsObjectStore) Run(ctx context.Context) error {
}
func (s *dsObjectStore) runDatabase(ctx context.Context, path string) error {
- store, err := anystore.Open(ctx, path, nil)
+ store, err := anystore.Open(ctx, path, s.anyStoreConfig)
if err != nil {
return fmt.Errorf("open database: %w", err)
}
diff --git a/pkg/lib/pb/model/models.pb.go b/pkg/lib/pb/model/models.pb.go
index 16430e03c..4449f3cd7 100644
--- a/pkg/lib/pb/model/models.pb.go
+++ b/pkg/lib/pb/model/models.pb.go
@@ -51,6 +51,8 @@ const (
SmartBlockType_FileObject SmartBlockType = 533
SmartBlockType_NotificationObject SmartBlockType = 535
SmartBlockType_DevicesObject SmartBlockType = 536
+ SmartBlockType_ChatObject SmartBlockType = 537
+ SmartBlockType_ChatDerivedObject SmartBlockType = 544
)
var SmartBlockType_name = map[int32]string{
@@ -79,6 +81,8 @@ var SmartBlockType_name = map[int32]string{
533: "FileObject",
535: "NotificationObject",
536: "DevicesObject",
+ 537: "ChatObject",
+ 544: "ChatDerivedObject",
}
var SmartBlockType_value = map[string]int32{
@@ -107,6 +111,8 @@ var SmartBlockType_value = map[string]int32{
"FileObject": 533,
"NotificationObject": 535,
"DevicesObject": 536,
+ "ChatObject": 537,
+ "ChatDerivedObject": 544,
}
func (x SmartBlockType) String() string {
@@ -1666,6 +1672,8 @@ const (
ObjectType_spaceView ObjectTypeLayout = 18
ObjectType_participant ObjectTypeLayout = 19
ObjectType_pdf ObjectTypeLayout = 20
+ ObjectType_chat ObjectTypeLayout = 21
+ ObjectType_chatDerived ObjectTypeLayout = 22
)
var ObjectTypeLayout_name = map[int32]string{
@@ -1690,6 +1698,8 @@ var ObjectTypeLayout_name = map[int32]string{
18: "spaceView",
19: "participant",
20: "pdf",
+ 21: "chat",
+ 22: "chatDerived",
}
var ObjectTypeLayout_value = map[string]int32{
@@ -1714,6 +1724,8 @@ var ObjectTypeLayout_value = map[string]int32{
"spaceView": 18,
"participant": 19,
"pdf": 20,
+ "chat": 21,
+ "chatDerived": 22,
}
func (x ObjectTypeLayout) String() string {
@@ -2171,6 +2183,34 @@ func (MembershipTierDataPeriodType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_98a910b73321e591, []int{31, 0}
}
+type ChatMessageAttachmentAttachmentType int32
+
+const (
+ ChatMessageAttachment_FILE ChatMessageAttachmentAttachmentType = 0
+ ChatMessageAttachment_IMAGE ChatMessageAttachmentAttachmentType = 1
+ ChatMessageAttachment_LINK ChatMessageAttachmentAttachmentType = 2
+)
+
+var ChatMessageAttachmentAttachmentType_name = map[int32]string{
+ 0: "FILE",
+ 1: "IMAGE",
+ 2: "LINK",
+}
+
+var ChatMessageAttachmentAttachmentType_value = map[string]int32{
+ "FILE": 0,
+ "IMAGE": 1,
+ "LINK": 2,
+}
+
+func (x ChatMessageAttachmentAttachmentType) String() string {
+ return proto.EnumName(ChatMessageAttachmentAttachmentType_name, int32(x))
+}
+
+func (ChatMessageAttachmentAttachmentType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34, 1, 0}
+}
+
type SmartBlockSnapshotBase struct {
Blocks []*Block `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
Details *types.Struct `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
@@ -2496,6 +2536,7 @@ type Block struct {
// *BlockContentOfTableColumn
// *BlockContentOfTableRow
// *BlockContentOfWidget
+ // *BlockContentOfChat
Content IsBlockContent `protobuf_oneof:"content"`
}
@@ -2589,6 +2630,9 @@ type BlockContentOfTableRow struct {
type BlockContentOfWidget struct {
Widget *BlockContentWidget `protobuf:"bytes,29,opt,name=widget,proto3,oneof" json:"widget,omitempty"`
}
+type BlockContentOfChat struct {
+ Chat *BlockContentChat `protobuf:"bytes,30,opt,name=chat,proto3,oneof" json:"chat,omitempty"`
+}
func (*BlockContentOfSmartblock) IsBlockContent() {}
func (*BlockContentOfText) IsBlockContent() {}
@@ -2607,6 +2651,7 @@ func (*BlockContentOfTable) IsBlockContent() {}
func (*BlockContentOfTableColumn) IsBlockContent() {}
func (*BlockContentOfTableRow) IsBlockContent() {}
func (*BlockContentOfWidget) IsBlockContent() {}
+func (*BlockContentOfChat) IsBlockContent() {}
func (m *Block) GetContent() IsBlockContent {
if m != nil {
@@ -2783,6 +2828,13 @@ func (m *Block) GetWidget() *BlockContentWidget {
return nil
}
+func (m *Block) GetChat() *BlockContentChat {
+ if x, ok := m.GetContent().(*BlockContentOfChat); ok {
+ return x.Chat
+ }
+ return nil
+}
+
// XXX_OneofWrappers is for the internal use of the proto package.
func (*Block) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -2803,6 +2855,7 @@ func (*Block) XXX_OneofWrappers() []interface{} {
(*BlockContentOfTableColumn)(nil),
(*BlockContentOfTableRow)(nil),
(*BlockContentOfWidget)(nil),
+ (*BlockContentOfChat)(nil),
}
}
@@ -4960,6 +5013,42 @@ func (m *BlockContentWidget) GetViewId() string {
return ""
}
+type BlockContentChat struct {
+}
+
+func (m *BlockContentChat) Reset() { *m = BlockContentChat{} }
+func (m *BlockContentChat) String() string { return proto.CompactTextString(m) }
+func (*BlockContentChat) ProtoMessage() {}
+func (*BlockContentChat) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{2, 1, 17}
+}
+func (m *BlockContentChat) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *BlockContentChat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_BlockContentChat.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *BlockContentChat) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockContentChat.Merge(m, src)
+}
+func (m *BlockContentChat) XXX_Size() int {
+ return m.Size()
+}
+func (m *BlockContentChat) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockContentChat.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockContentChat proto.InternalMessageInfo
+
// Used to decode block meta only, without the content itself
type BlockMetaOnly struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
@@ -8822,6 +8911,314 @@ func (m *DeviceInfo) GetIsConnected() bool {
return false
}
+type ChatMessage struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ OrderId string `protobuf:"bytes,2,opt,name=orderId,proto3" json:"orderId,omitempty"`
+ Creator string `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"`
+ CreatedAt int64 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
+ ModifiedAt int64 `protobuf:"varint,9,opt,name=modifiedAt,proto3" json:"modifiedAt,omitempty"`
+ ReplyToMessageId string `protobuf:"bytes,5,opt,name=replyToMessageId,proto3" json:"replyToMessageId,omitempty"`
+ Message *ChatMessageMessageContent `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"`
+ Attachments []*ChatMessageAttachment `protobuf:"bytes,7,rep,name=attachments,proto3" json:"attachments,omitempty"`
+ Reactions *ChatMessageReactions `protobuf:"bytes,8,opt,name=reactions,proto3" json:"reactions,omitempty"`
+}
+
+func (m *ChatMessage) Reset() { *m = ChatMessage{} }
+func (m *ChatMessage) String() string { return proto.CompactTextString(m) }
+func (*ChatMessage) ProtoMessage() {}
+func (*ChatMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34}
+}
+func (m *ChatMessage) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChatMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChatMessage.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChatMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChatMessage.Merge(m, src)
+}
+func (m *ChatMessage) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChatMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChatMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChatMessage proto.InternalMessageInfo
+
+func (m *ChatMessage) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+func (m *ChatMessage) GetOrderId() string {
+ if m != nil {
+ return m.OrderId
+ }
+ return ""
+}
+
+func (m *ChatMessage) GetCreator() string {
+ if m != nil {
+ return m.Creator
+ }
+ return ""
+}
+
+func (m *ChatMessage) GetCreatedAt() int64 {
+ if m != nil {
+ return m.CreatedAt
+ }
+ return 0
+}
+
+func (m *ChatMessage) GetModifiedAt() int64 {
+ if m != nil {
+ return m.ModifiedAt
+ }
+ return 0
+}
+
+func (m *ChatMessage) GetReplyToMessageId() string {
+ if m != nil {
+ return m.ReplyToMessageId
+ }
+ return ""
+}
+
+func (m *ChatMessage) GetMessage() *ChatMessageMessageContent {
+ if m != nil {
+ return m.Message
+ }
+ return nil
+}
+
+func (m *ChatMessage) GetAttachments() []*ChatMessageAttachment {
+ if m != nil {
+ return m.Attachments
+ }
+ return nil
+}
+
+func (m *ChatMessage) GetReactions() *ChatMessageReactions {
+ if m != nil {
+ return m.Reactions
+ }
+ return nil
+}
+
+type ChatMessageMessageContent struct {
+ Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
+ Style BlockContentTextStyle `protobuf:"varint,2,opt,name=style,proto3,enum=anytype.model.BlockContentTextStyle" json:"style,omitempty"`
+ Marks []*BlockContentTextMark `protobuf:"bytes,3,rep,name=marks,proto3" json:"marks,omitempty"`
+}
+
+func (m *ChatMessageMessageContent) Reset() { *m = ChatMessageMessageContent{} }
+func (m *ChatMessageMessageContent) String() string { return proto.CompactTextString(m) }
+func (*ChatMessageMessageContent) ProtoMessage() {}
+func (*ChatMessageMessageContent) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34, 0}
+}
+func (m *ChatMessageMessageContent) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChatMessageMessageContent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChatMessageMessageContent.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChatMessageMessageContent) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChatMessageMessageContent.Merge(m, src)
+}
+func (m *ChatMessageMessageContent) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChatMessageMessageContent) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChatMessageMessageContent.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChatMessageMessageContent proto.InternalMessageInfo
+
+func (m *ChatMessageMessageContent) GetText() string {
+ if m != nil {
+ return m.Text
+ }
+ return ""
+}
+
+func (m *ChatMessageMessageContent) GetStyle() BlockContentTextStyle {
+ if m != nil {
+ return m.Style
+ }
+ return BlockContentText_Paragraph
+}
+
+func (m *ChatMessageMessageContent) GetMarks() []*BlockContentTextMark {
+ if m != nil {
+ return m.Marks
+ }
+ return nil
+}
+
+type ChatMessageAttachment struct {
+ Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
+ Type ChatMessageAttachmentAttachmentType `protobuf:"varint,2,opt,name=type,proto3,enum=anytype.model.ChatMessageAttachmentAttachmentType" json:"type,omitempty"`
+}
+
+func (m *ChatMessageAttachment) Reset() { *m = ChatMessageAttachment{} }
+func (m *ChatMessageAttachment) String() string { return proto.CompactTextString(m) }
+func (*ChatMessageAttachment) ProtoMessage() {}
+func (*ChatMessageAttachment) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34, 1}
+}
+func (m *ChatMessageAttachment) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChatMessageAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChatMessageAttachment.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChatMessageAttachment) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChatMessageAttachment.Merge(m, src)
+}
+func (m *ChatMessageAttachment) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChatMessageAttachment) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChatMessageAttachment.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChatMessageAttachment proto.InternalMessageInfo
+
+func (m *ChatMessageAttachment) GetTarget() string {
+ if m != nil {
+ return m.Target
+ }
+ return ""
+}
+
+func (m *ChatMessageAttachment) GetType() ChatMessageAttachmentAttachmentType {
+ if m != nil {
+ return m.Type
+ }
+ return ChatMessageAttachment_FILE
+}
+
+type ChatMessageReactions struct {
+ Reactions map[string]*ChatMessageReactionsIdentityList `protobuf:"bytes,1,rep,name=reactions,proto3" json:"reactions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (m *ChatMessageReactions) Reset() { *m = ChatMessageReactions{} }
+func (m *ChatMessageReactions) String() string { return proto.CompactTextString(m) }
+func (*ChatMessageReactions) ProtoMessage() {}
+func (*ChatMessageReactions) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34, 2}
+}
+func (m *ChatMessageReactions) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChatMessageReactions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChatMessageReactions.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChatMessageReactions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChatMessageReactions.Merge(m, src)
+}
+func (m *ChatMessageReactions) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChatMessageReactions) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChatMessageReactions.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChatMessageReactions proto.InternalMessageInfo
+
+func (m *ChatMessageReactions) GetReactions() map[string]*ChatMessageReactionsIdentityList {
+ if m != nil {
+ return m.Reactions
+ }
+ return nil
+}
+
+type ChatMessageReactionsIdentityList struct {
+ Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
+}
+
+func (m *ChatMessageReactionsIdentityList) Reset() { *m = ChatMessageReactionsIdentityList{} }
+func (m *ChatMessageReactionsIdentityList) String() string { return proto.CompactTextString(m) }
+func (*ChatMessageReactionsIdentityList) ProtoMessage() {}
+func (*ChatMessageReactionsIdentityList) Descriptor() ([]byte, []int) {
+ return fileDescriptor_98a910b73321e591, []int{34, 2, 1}
+}
+func (m *ChatMessageReactionsIdentityList) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChatMessageReactionsIdentityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChatMessageReactionsIdentityList.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChatMessageReactionsIdentityList) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChatMessageReactionsIdentityList.Merge(m, src)
+}
+func (m *ChatMessageReactionsIdentityList) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChatMessageReactionsIdentityList) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChatMessageReactionsIdentityList.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChatMessageReactionsIdentityList proto.InternalMessageInfo
+
+func (m *ChatMessageReactionsIdentityList) GetIds() []string {
+ if m != nil {
+ return m.Ids
+ }
+ return nil
+}
+
func init() {
proto.RegisterEnum("anytype.model.SmartBlockType", SmartBlockType_name, SmartBlockType_value)
proto.RegisterEnum("anytype.model.RelationFormat", RelationFormat_name, RelationFormat_value)
@@ -8879,6 +9276,7 @@ func init() {
proto.RegisterEnum("anytype.model.MembershipPaymentMethod", MembershipPaymentMethod_name, MembershipPaymentMethod_value)
proto.RegisterEnum("anytype.model.MembershipEmailVerificationStatus", MembershipEmailVerificationStatus_name, MembershipEmailVerificationStatus_value)
proto.RegisterEnum("anytype.model.MembershipTierDataPeriodType", MembershipTierDataPeriodType_name, MembershipTierDataPeriodType_value)
+ proto.RegisterEnum("anytype.model.ChatMessageAttachmentAttachmentType", ChatMessageAttachmentAttachmentType_name, ChatMessageAttachmentAttachmentType_value)
proto.RegisterType((*SmartBlockSnapshotBase)(nil), "anytype.model.SmartBlockSnapshotBase")
proto.RegisterType((*Search)(nil), "anytype.model.Search")
proto.RegisterType((*SearchResult)(nil), "anytype.model.Search.Result")
@@ -8917,6 +9315,7 @@ func init() {
proto.RegisterType((*BlockContentTableColumn)(nil), "anytype.model.Block.Content.TableColumn")
proto.RegisterType((*BlockContentTableRow)(nil), "anytype.model.Block.Content.TableRow")
proto.RegisterType((*BlockContentWidget)(nil), "anytype.model.Block.Content.Widget")
+ proto.RegisterType((*BlockContentChat)(nil), "anytype.model.Block.Content.Chat")
proto.RegisterType((*BlockMetaOnly)(nil), "anytype.model.BlockMetaOnly")
proto.RegisterType((*Range)(nil), "anytype.model.Range")
proto.RegisterType((*Account)(nil), "anytype.model.Account")
@@ -8970,6 +9369,12 @@ func init() {
proto.RegisterType((*MembershipTierData)(nil), "anytype.model.MembershipTierData")
proto.RegisterType((*Detail)(nil), "anytype.model.Detail")
proto.RegisterType((*DeviceInfo)(nil), "anytype.model.DeviceInfo")
+ proto.RegisterType((*ChatMessage)(nil), "anytype.model.ChatMessage")
+ proto.RegisterType((*ChatMessageMessageContent)(nil), "anytype.model.ChatMessage.MessageContent")
+ proto.RegisterType((*ChatMessageAttachment)(nil), "anytype.model.ChatMessage.Attachment")
+ proto.RegisterType((*ChatMessageReactions)(nil), "anytype.model.ChatMessage.Reactions")
+ proto.RegisterMapType((map[string]*ChatMessageReactionsIdentityList)(nil), "anytype.model.ChatMessage.Reactions.ReactionsEntry")
+ proto.RegisterType((*ChatMessageReactionsIdentityList)(nil), "anytype.model.ChatMessage.Reactions.IdentityList")
}
func init() {
@@ -8977,524 +9382,545 @@ func init() {
}
var fileDescriptor_98a910b73321e591 = []byte{
- // 8268 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x4b, 0x8c, 0x24, 0x59,
- 0x92, 0x50, 0xc6, 0x3f, 0xc2, 0x22, 0x23, 0xf3, 0xe5, 0xab, 0x5f, 0x4c, 0x4c, 0x6d, 0x6d, 0x8d,
- 0xcf, 0x4c, 0x77, 0x4d, 0x4e, 0x4f, 0x56, 0x77, 0xf5, 0x77, 0x7a, 0xa7, 0xbb, 0x27, 0x3f, 0x91,
- 0x95, 0xd1, 0x9d, 0x99, 0x91, 0xe3, 0x11, 0x55, 0x35, 0xd3, 0xda, 0xa5, 0xf0, 0x0c, 0x7f, 0x19,
- 0xe1, 0x9d, 0x1e, 0xee, 0x31, 0xee, 0x2f, 0xf2, 0x33, 0x02, 0xb4, 0xc0, 0xb2, 0xcb, 0x1e, 0x90,
- 0x86, 0x15, 0x0b, 0x5c, 0x80, 0xe5, 0x86, 0xb4, 0x23, 0x56, 0x48, 0x8c, 0x18, 0x24, 0xf6, 0x00,
- 0xa7, 0x95, 0xb8, 0x0c, 0x9c, 0xe0, 0x04, 0x9a, 0x3e, 0xa2, 0x65, 0x25, 0x2e, 0xac, 0x10, 0x12,
- 0xc8, 0xec, 0x3d, 0xff, 0xc4, 0x27, 0xb3, 0xa2, 0x7a, 0x17, 0xb4, 0xa7, 0x70, 0x33, 0x37, 0x33,
- 0x7f, 0x1f, 0x7b, 0xf6, 0xcc, 0xec, 0xd9, 0x0b, 0xf8, 0xda, 0xe8, 0xb4, 0xff, 0xd0, 0x75, 0x8e,
- 0x1f, 0x8e, 0x8e, 0x1f, 0x0e, 0x7d, 0x5b, 0xb8, 0x0f, 0x47, 0x81, 0x2f, 0xfd, 0x50, 0x01, 0xe1,
- 0x06, 0x41, 0xbc, 0x66, 0x79, 0x97, 0xf2, 0x72, 0x24, 0x36, 0x08, 0xdb, 0xb8, 0xdb, 0xf7, 0xfd,
- 0xbe, 0x2b, 0x14, 0xe9, 0xf1, 0xf8, 0xe4, 0x61, 0x28, 0x83, 0x71, 0x4f, 0x2a, 0x62, 0xe3, 0xe7,
- 0x79, 0xb8, 0xdd, 0x19, 0x5a, 0x81, 0xdc, 0x72, 0xfd, 0xde, 0x69, 0xc7, 0xb3, 0x46, 0xe1, 0xc0,
- 0x97, 0x5b, 0x56, 0x28, 0xf8, 0x6b, 0x50, 0x3c, 0x46, 0x64, 0x58, 0xcf, 0xdc, 0xcf, 0x3d, 0xa8,
- 0x3e, 0xba, 0xb9, 0x31, 0x21, 0x78, 0x83, 0x38, 0x4c, 0x4d, 0xc3, 0xdf, 0x80, 0x92, 0x2d, 0xa4,
- 0xe5, 0xb8, 0x61, 0x3d, 0x7b, 0x3f, 0xf3, 0xa0, 0xfa, 0xe8, 0xce, 0x86, 0xfa, 0xf0, 0x46, 0xf4,
- 0xe1, 0x8d, 0x0e, 0x7d, 0xd8, 0x8c, 0xe8, 0xf8, 0xbb, 0x50, 0x3e, 0x71, 0x5c, 0xf1, 0x89, 0xb8,
- 0x0c, 0xeb, 0xb9, 0x6b, 0x79, 0xb6, 0xb2, 0xf5, 0x8c, 0x19, 0x13, 0xf3, 0x6d, 0x58, 0x11, 0x17,
- 0x32, 0xb0, 0x4c, 0xe1, 0x5a, 0xd2, 0xf1, 0xbd, 0xb0, 0x9e, 0xa7, 0x16, 0xde, 0x99, 0x6a, 0x61,
- 0xf4, 0x9e, 0xd8, 0xa7, 0x58, 0xf8, 0x7d, 0xa8, 0xfa, 0xc7, 0x9f, 0x89, 0x9e, 0xec, 0x5e, 0x8e,
- 0x44, 0x58, 0x2f, 0xdc, 0xcf, 0x3d, 0xa8, 0x98, 0x69, 0x14, 0xff, 0x36, 0x54, 0x7b, 0xbe, 0xeb,
- 0x8a, 0x9e, 0xfa, 0x46, 0xf1, 0xfa, 0x6e, 0xa5, 0x69, 0xf9, 0x5b, 0x70, 0x2b, 0x10, 0x43, 0xff,
- 0x4c, 0xd8, 0xdb, 0x31, 0x96, 0xfa, 0x59, 0xa6, 0xcf, 0xcc, 0x7f, 0xc9, 0x37, 0xa1, 0x16, 0xe8,
- 0xf6, 0xed, 0x3b, 0xde, 0x69, 0x58, 0x2f, 0x51, 0xb7, 0xbe, 0x7c, 0x45, 0xb7, 0x90, 0xc6, 0x9c,
- 0xe4, 0xe0, 0x0c, 0x72, 0xa7, 0xe2, 0xb2, 0x5e, 0xb9, 0x9f, 0x79, 0x50, 0x31, 0xf1, 0x91, 0xbf,
- 0x0f, 0x75, 0x3f, 0x70, 0xfa, 0x8e, 0x67, 0xb9, 0xdb, 0x81, 0xb0, 0xa4, 0xb0, 0xbb, 0xce, 0x50,
- 0x84, 0xd2, 0x1a, 0x8e, 0xea, 0x70, 0x3f, 0xf3, 0x20, 0x67, 0x5e, 0xf9, 0x9e, 0xbf, 0xa9, 0x66,
- 0xa8, 0xe5, 0x9d, 0xf8, 0xf5, 0xaa, 0xee, 0xfe, 0x64, 0x5b, 0x76, 0xf5, 0x6b, 0x33, 0x26, 0x34,
- 0xfe, 0x34, 0x0b, 0xc5, 0x8e, 0xb0, 0x82, 0xde, 0xa0, 0xf1, 0x5b, 0x19, 0x28, 0x9a, 0x22, 0x1c,
- 0xbb, 0x92, 0x37, 0xa0, 0xac, 0xc6, 0xb6, 0x65, 0xd7, 0x33, 0xd4, 0xba, 0x18, 0xfe, 0x22, 0xba,
- 0xb3, 0x01, 0xf9, 0xa1, 0x90, 0x56, 0x3d, 0x47, 0x23, 0xd4, 0x98, 0x6a, 0x95, 0xfa, 0xfc, 0xc6,
- 0x81, 0x90, 0x96, 0x49, 0x74, 0x8d, 0xcf, 0x33, 0x90, 0x47, 0x90, 0xdf, 0x85, 0xca, 0xc0, 0xe9,
- 0x0f, 0x5c, 0xa7, 0x3f, 0x90, 0xba, 0x21, 0x09, 0x82, 0x7f, 0x08, 0xab, 0x31, 0x60, 0x5a, 0x5e,
- 0x5f, 0x60, 0x8b, 0xe6, 0x29, 0x3f, 0xbd, 0x34, 0xa7, 0x89, 0x79, 0x1d, 0x4a, 0xb4, 0x1e, 0x5a,
- 0x36, 0x69, 0x74, 0xc5, 0x8c, 0x40, 0x54, 0xb7, 0x68, 0xa6, 0x3e, 0x11, 0x97, 0xf5, 0x3c, 0xbd,
- 0x4d, 0xa3, 0xf8, 0x26, 0xac, 0x46, 0xe0, 0x8e, 0x1e, 0x8d, 0xc2, 0xf5, 0xa3, 0x31, 0x4d, 0x6f,
- 0x7c, 0xbe, 0x07, 0x05, 0x5a, 0x96, 0x7c, 0x05, 0xb2, 0x4e, 0x34, 0xd0, 0x59, 0xc7, 0xe6, 0x0f,
- 0xa1, 0x78, 0xe2, 0x08, 0xd7, 0x7e, 0xe1, 0x08, 0x6b, 0x32, 0xde, 0x84, 0xe5, 0x40, 0x84, 0x32,
- 0x70, 0xb4, 0xf6, 0xab, 0x05, 0xfa, 0x95, 0x79, 0x36, 0x60, 0xc3, 0x4c, 0x11, 0x9a, 0x13, 0x6c,
- 0xd8, 0xed, 0xde, 0xc0, 0x71, 0xed, 0x40, 0x78, 0x2d, 0x5b, 0xad, 0xd3, 0x8a, 0x99, 0x46, 0xf1,
- 0x07, 0xb0, 0x7a, 0x6c, 0xf5, 0x4e, 0xfb, 0x81, 0x3f, 0xf6, 0x70, 0x41, 0xf8, 0x01, 0x75, 0xbb,
- 0x62, 0x4e, 0xa3, 0xf9, 0xeb, 0x50, 0xb0, 0x5c, 0xa7, 0xef, 0xd1, 0x4a, 0x5c, 0x99, 0x99, 0x74,
- 0xd5, 0x96, 0x4d, 0xa4, 0x30, 0x15, 0x21, 0xdf, 0x83, 0xda, 0x99, 0x08, 0xa4, 0xd3, 0xb3, 0x5c,
- 0xc2, 0xd7, 0x4b, 0xc4, 0x69, 0xcc, 0xe5, 0x7c, 0x9a, 0xa6, 0x34, 0x27, 0x19, 0x79, 0x0b, 0x20,
- 0x44, 0x33, 0x49, 0xd3, 0xa9, 0xd7, 0xc2, 0xab, 0x73, 0xc5, 0x6c, 0xfb, 0x9e, 0x14, 0x9e, 0xdc,
- 0xe8, 0xc4, 0xe4, 0x7b, 0x4b, 0x66, 0x8a, 0x99, 0xbf, 0x0b, 0x79, 0x29, 0x2e, 0x64, 0x7d, 0xe5,
- 0x9a, 0x11, 0x8d, 0x84, 0x74, 0xc5, 0x85, 0xdc, 0x5b, 0x32, 0x89, 0x01, 0x19, 0x71, 0x91, 0xd5,
- 0x57, 0x17, 0x60, 0xc4, 0x75, 0x89, 0x8c, 0xc8, 0xc0, 0x3f, 0x80, 0xa2, 0x6b, 0x5d, 0xfa, 0x63,
- 0x59, 0x67, 0xc4, 0xfa, 0xd5, 0x6b, 0x59, 0xf7, 0x89, 0x74, 0x6f, 0xc9, 0xd4, 0x4c, 0xfc, 0x2d,
- 0xc8, 0xd9, 0xce, 0x59, 0x7d, 0x8d, 0x78, 0xef, 0x5f, 0xcb, 0xbb, 0xe3, 0x9c, 0xed, 0x2d, 0x99,
- 0x48, 0xce, 0xb7, 0xa1, 0x7c, 0xec, 0xfb, 0xa7, 0x43, 0x2b, 0x38, 0xad, 0x73, 0x62, 0xfd, 0xfa,
- 0xb5, 0xac, 0x5b, 0x9a, 0x78, 0x6f, 0xc9, 0x8c, 0x19, 0xb1, 0xcb, 0x4e, 0xcf, 0xf7, 0xea, 0x37,
- 0x16, 0xe8, 0x72, 0xab, 0xe7, 0x7b, 0xd8, 0x65, 0x64, 0x40, 0x46, 0xd7, 0xf1, 0x4e, 0xeb, 0x37,
- 0x17, 0x60, 0x44, 0xcb, 0x89, 0x8c, 0xc8, 0x80, 0xcd, 0xb6, 0x2d, 0x69, 0x9d, 0x39, 0xe2, 0xbc,
- 0x7e, 0x6b, 0x81, 0x66, 0xef, 0x68, 0x62, 0x6c, 0x76, 0xc4, 0x88, 0x42, 0xa2, 0xa5, 0x59, 0xbf,
- 0xbd, 0x80, 0x90, 0xc8, 0xa2, 0xa3, 0x90, 0x88, 0x91, 0xff, 0x25, 0x58, 0x3b, 0x11, 0x96, 0x1c,
- 0x07, 0xc2, 0x4e, 0x36, 0xba, 0x3b, 0x24, 0x6d, 0xe3, 0xfa, 0xb9, 0x9f, 0xe6, 0xda, 0x5b, 0x32,
- 0x67, 0x45, 0xf1, 0xf7, 0xa1, 0xe0, 0x5a, 0x52, 0x5c, 0xd4, 0xeb, 0x24, 0xd3, 0x78, 0x81, 0x52,
- 0x48, 0x71, 0xb1, 0xb7, 0x64, 0x2a, 0x16, 0xfe, 0x7d, 0x58, 0x95, 0xd6, 0xb1, 0x2b, 0xda, 0x27,
- 0x9a, 0x20, 0xac, 0x7f, 0x89, 0xa4, 0xbc, 0x76, 0xbd, 0x3a, 0x4f, 0xf2, 0xec, 0x2d, 0x99, 0xd3,
- 0x62, 0xb0, 0x55, 0x84, 0xaa, 0x37, 0x16, 0x68, 0x15, 0xc9, 0xc3, 0x56, 0x11, 0x0b, 0xdf, 0x87,
- 0x2a, 0x3d, 0x6c, 0xfb, 0xee, 0x78, 0xe8, 0xd5, 0xbf, 0x4c, 0x12, 0x1e, 0xbc, 0x58, 0x82, 0xa2,
- 0xdf, 0x5b, 0x32, 0xd3, 0xec, 0x38, 0x89, 0x04, 0x9a, 0xfe, 0x79, 0xfd, 0xee, 0x02, 0x93, 0xd8,
- 0xd5, 0xc4, 0x38, 0x89, 0x11, 0x23, 0x2e, 0xbd, 0x73, 0xc7, 0xee, 0x0b, 0x59, 0xff, 0xa5, 0x05,
- 0x96, 0xde, 0x33, 0x22, 0xc5, 0xa5, 0xa7, 0x98, 0x1a, 0x3f, 0x82, 0xe5, 0xb4, 0x71, 0xe5, 0x1c,
- 0xf2, 0x81, 0xb0, 0x94, 0x61, 0x2f, 0x9b, 0xf4, 0x8c, 0x38, 0x61, 0x3b, 0x92, 0x0c, 0x7b, 0xd9,
- 0xa4, 0x67, 0x7e, 0x1b, 0x8a, 0xca, 0xc5, 0x20, 0xbb, 0x5d, 0x36, 0x35, 0x84, 0xb4, 0x76, 0x60,
- 0xf5, 0x69, 0xfb, 0x29, 0x9b, 0xf4, 0x8c, 0xb4, 0x76, 0xe0, 0x8f, 0xda, 0x1e, 0xd9, 0xdd, 0xb2,
- 0xa9, 0xa1, 0xc6, 0xff, 0xf9, 0x36, 0x94, 0x74, 0xc3, 0x1a, 0xff, 0x28, 0x03, 0x45, 0x65, 0x17,
- 0xf8, 0x47, 0x50, 0x08, 0xe5, 0xa5, 0x2b, 0xa8, 0x0d, 0x2b, 0x8f, 0xbe, 0xb1, 0x80, 0x2d, 0xd9,
- 0xe8, 0x20, 0x83, 0xa9, 0xf8, 0x0c, 0x13, 0x0a, 0x04, 0xf3, 0x12, 0xe4, 0x4c, 0xff, 0x9c, 0x2d,
- 0x71, 0x80, 0xa2, 0x1a, 0x73, 0x96, 0x41, 0xe4, 0x8e, 0x73, 0xc6, 0xb2, 0x88, 0xdc, 0x13, 0x96,
- 0x2d, 0x02, 0x96, 0xe3, 0x35, 0xa8, 0x44, 0xa3, 0x1b, 0xb2, 0x3c, 0x67, 0xb0, 0x9c, 0x9a, 0xb7,
- 0x90, 0x15, 0x1a, 0xff, 0x23, 0x0f, 0x79, 0x5c, 0xc6, 0xfc, 0x6b, 0x50, 0x93, 0x56, 0xd0, 0x17,
- 0xca, 0x9f, 0x8d, 0x7d, 0x8d, 0x49, 0x24, 0xff, 0x20, 0xea, 0x43, 0x96, 0xfa, 0xf0, 0xea, 0x0b,
- 0xcd, 0xc3, 0x44, 0x0f, 0x52, 0x9b, 0x69, 0x6e, 0xb1, 0xcd, 0x74, 0x17, 0xca, 0x68, 0x95, 0x3a,
- 0xce, 0x8f, 0x04, 0x0d, 0xfd, 0xca, 0xa3, 0xf5, 0x17, 0x7f, 0xb2, 0xa5, 0x39, 0xcc, 0x98, 0x97,
- 0xb7, 0xa0, 0xd2, 0xb3, 0x02, 0x9b, 0x1a, 0x43, 0xb3, 0xb5, 0xf2, 0xe8, 0x9b, 0x2f, 0x16, 0xb4,
- 0x1d, 0xb1, 0x98, 0x09, 0x37, 0x6f, 0x43, 0xd5, 0x16, 0x61, 0x2f, 0x70, 0x46, 0x64, 0xa5, 0xd4,
- 0x96, 0xfa, 0xad, 0x17, 0x0b, 0xdb, 0x49, 0x98, 0xcc, 0xb4, 0x04, 0x74, 0xac, 0x82, 0xd8, 0x4c,
- 0x95, 0x68, 0x9f, 0x4f, 0x10, 0xc6, 0xbb, 0x50, 0x8e, 0xfa, 0xc3, 0x97, 0xa1, 0x8c, 0xbf, 0x87,
- 0xbe, 0x27, 0xd8, 0x12, 0xce, 0x2d, 0x42, 0x9d, 0xa1, 0xe5, 0xba, 0x2c, 0xc3, 0x57, 0x00, 0x10,
- 0x3c, 0x10, 0xb6, 0x33, 0x1e, 0xb2, 0xac, 0xf1, 0x2b, 0x91, 0xb6, 0x94, 0x21, 0x7f, 0x64, 0xf5,
- 0x91, 0x63, 0x19, 0xca, 0x91, 0xd5, 0x65, 0x19, 0xe4, 0xdf, 0xb1, 0xc2, 0xc1, 0xb1, 0x6f, 0x05,
- 0x36, 0xcb, 0xf2, 0x2a, 0x94, 0x36, 0x83, 0xde, 0xc0, 0x39, 0x13, 0x2c, 0x67, 0x3c, 0x84, 0x6a,
- 0xaa, 0xbd, 0x28, 0x42, 0x7f, 0xb4, 0x02, 0x85, 0x4d, 0xdb, 0x16, 0x36, 0xcb, 0x20, 0x83, 0xee,
- 0x20, 0xcb, 0x1a, 0xdf, 0x84, 0x4a, 0x3c, 0x5a, 0x48, 0x8e, 0xfb, 0x2f, 0x5b, 0xc2, 0x27, 0x44,
- 0xb3, 0x0c, 0x6a, 0x65, 0xcb, 0x73, 0x1d, 0x4f, 0xb0, 0x6c, 0xe3, 0x2f, 0x93, 0xaa, 0xf2, 0xef,
- 0x4c, 0x2e, 0x88, 0x57, 0x5e, 0xb4, 0x41, 0x4e, 0xae, 0x86, 0x2f, 0xa7, 0xfa, 0xb7, 0xef, 0x50,
- 0xe3, 0xca, 0x90, 0xdf, 0xf1, 0x65, 0xc8, 0x32, 0x8d, 0xff, 0x96, 0x85, 0x72, 0xb4, 0x2f, 0xa2,
- 0x6b, 0x3f, 0x0e, 0x5c, 0xad, 0xd0, 0xf8, 0xc8, 0x6f, 0x42, 0x41, 0x3a, 0x52, 0xab, 0x71, 0xc5,
- 0x54, 0x00, 0xba, 0x5c, 0xe9, 0x99, 0x55, 0x7e, 0xe8, 0xf4, 0x54, 0x39, 0x43, 0xab, 0x2f, 0xf6,
- 0xac, 0x70, 0xa0, 0x3d, 0xd1, 0x04, 0x81, 0xfc, 0x27, 0xd6, 0x19, 0xea, 0x1c, 0xbd, 0x57, 0xce,
- 0x58, 0x1a, 0xc5, 0xdf, 0x84, 0x3c, 0x76, 0x50, 0x2b, 0xcd, 0x2f, 0x4f, 0x75, 0x18, 0xd5, 0xe4,
- 0x28, 0x10, 0x38, 0x3d, 0x1b, 0x18, 0x48, 0x99, 0x44, 0xcc, 0x5f, 0x81, 0x15, 0xb5, 0x08, 0xdb,
- 0x51, 0x18, 0x50, 0x22, 0xc9, 0x53, 0x58, 0xbe, 0x89, 0xc3, 0x69, 0x49, 0x51, 0x2f, 0x2f, 0xa0,
- 0xdf, 0xd1, 0xe0, 0x6c, 0x74, 0x90, 0xc5, 0x54, 0x9c, 0xc6, 0xdb, 0x38, 0xa6, 0x96, 0x14, 0x38,
- 0xcd, 0xcd, 0xe1, 0x48, 0x5e, 0x2a, 0xa5, 0xd9, 0x15, 0xb2, 0x37, 0x70, 0xbc, 0x3e, 0xcb, 0xa8,
- 0x21, 0xc6, 0x49, 0x24, 0x92, 0x20, 0xf0, 0x03, 0x96, 0x6b, 0x34, 0x20, 0x8f, 0x3a, 0x8a, 0x46,
- 0xd2, 0xb3, 0x86, 0x42, 0x8f, 0x34, 0x3d, 0x37, 0x6e, 0xc0, 0xda, 0xcc, 0xb6, 0xda, 0xf8, 0xd7,
- 0x45, 0xa5, 0x21, 0xc8, 0x41, 0x2e, 0x9d, 0xe6, 0x20, 0x6f, 0xed, 0xa5, 0x6c, 0x0c, 0x4a, 0x99,
- 0xb4, 0x31, 0x1f, 0x40, 0x01, 0x3b, 0x16, 0x99, 0x98, 0x05, 0xd8, 0x0f, 0x90, 0xdc, 0x54, 0x5c,
- 0x18, 0x88, 0xf4, 0x06, 0xa2, 0x77, 0x2a, 0x6c, 0x6d, 0xeb, 0x23, 0x10, 0x95, 0xa6, 0x97, 0xf2,
- 0xb2, 0x15, 0x40, 0x2a, 0xd1, 0xf3, 0xbd, 0xe6, 0xd0, 0xff, 0xcc, 0xa1, 0x79, 0x45, 0x95, 0x88,
- 0x10, 0xd1, 0xdb, 0x16, 0xea, 0x88, 0x9e, 0xb6, 0x04, 0xd1, 0x68, 0x42, 0x81, 0xbe, 0x8d, 0x2b,
- 0x41, 0xb5, 0x59, 0x25, 0x0c, 0x5e, 0x59, 0xac, 0xcd, 0xba, 0xc9, 0x8d, 0x9f, 0x64, 0x21, 0x8f,
- 0x30, 0x5f, 0x87, 0x42, 0x80, 0xe1, 0x14, 0x0d, 0xe7, 0x55, 0xa1, 0x97, 0x22, 0xe1, 0x1f, 0x69,
- 0x55, 0xcc, 0x2e, 0xa0, 0x2c, 0xf1, 0x17, 0xd3, 0x6a, 0x79, 0x13, 0x0a, 0x23, 0x2b, 0xb0, 0x86,
- 0x7a, 0x9d, 0x28, 0xc0, 0xf8, 0xbd, 0x0c, 0xe4, 0x91, 0x88, 0xaf, 0x41, 0xad, 0x23, 0x03, 0xe7,
- 0x54, 0xc8, 0x41, 0xe0, 0x8f, 0xfb, 0x03, 0xa5, 0x49, 0x9f, 0x88, 0x4b, 0x65, 0x6f, 0x94, 0x41,
- 0x90, 0x96, 0xeb, 0xf4, 0x58, 0x16, 0xb5, 0x6a, 0xcb, 0x77, 0x6d, 0x96, 0xe3, 0xab, 0x50, 0x7d,
- 0xe2, 0xd9, 0x22, 0x08, 0x7b, 0x7e, 0x20, 0x6c, 0x96, 0xd7, 0xab, 0xfb, 0x94, 0x15, 0x68, 0x2f,
- 0x13, 0x17, 0x92, 0x42, 0x1a, 0x56, 0xe4, 0x37, 0x60, 0x75, 0x6b, 0x32, 0xce, 0x61, 0x25, 0xb4,
- 0x49, 0x07, 0xc2, 0x43, 0x25, 0x63, 0x65, 0xa5, 0xc4, 0xfe, 0x67, 0x0e, 0xab, 0xe0, 0xc7, 0xd4,
- 0x3a, 0x61, 0x60, 0xfc, 0x9b, 0x4c, 0x64, 0x39, 0x6a, 0x50, 0x39, 0xb2, 0x02, 0xab, 0x1f, 0x58,
- 0x23, 0x6c, 0x5f, 0x15, 0x4a, 0x6a, 0xe3, 0x7c, 0x43, 0x59, 0x37, 0x05, 0x3c, 0x52, 0xb6, 0x51,
- 0x01, 0x6f, 0xb2, 0x5c, 0x02, 0xbc, 0xc5, 0xf2, 0xf8, 0x8d, 0xef, 0x8d, 0x7d, 0x29, 0x58, 0x81,
- 0x6c, 0x9d, 0x6f, 0x0b, 0x56, 0x44, 0x64, 0x17, 0x2d, 0x0a, 0x2b, 0x61, 0x9f, 0xb7, 0x51, 0x7f,
- 0x8e, 0xfd, 0x0b, 0x56, 0xc6, 0x66, 0xe0, 0x30, 0x0a, 0x9b, 0x55, 0xf0, 0xcd, 0xe1, 0x78, 0x78,
- 0x2c, 0xb0, 0x9b, 0x80, 0x6f, 0xba, 0x7e, 0xbf, 0xef, 0x0a, 0x56, 0xc5, 0x31, 0x48, 0x19, 0x5f,
- 0xb6, 0x4c, 0x96, 0xd6, 0x72, 0x5d, 0x7f, 0x2c, 0x59, 0xad, 0xf1, 0xa7, 0x39, 0xc8, 0x63, 0x90,
- 0x82, 0x6b, 0x67, 0x80, 0x76, 0x46, 0xaf, 0x1d, 0x7c, 0x8e, 0x57, 0x60, 0x36, 0x59, 0x81, 0xfc,
- 0x7d, 0x3d, 0xd3, 0xb9, 0x05, 0xac, 0x2c, 0x0a, 0x4e, 0x4f, 0x32, 0x87, 0xfc, 0xd0, 0x19, 0x0a,
- 0x6d, 0xeb, 0xe8, 0x19, 0x71, 0x21, 0xee, 0xc7, 0x05, 0xca, 0x81, 0xd0, 0x33, 0xae, 0x1a, 0x0b,
- 0xb7, 0x85, 0x4d, 0x49, 0x6b, 0x20, 0x67, 0x46, 0xe0, 0x1c, 0xeb, 0x55, 0x99, 0x6b, 0xbd, 0x3e,
- 0x88, 0xac, 0x57, 0x69, 0x81, 0x55, 0x4f, 0xcd, 0x4c, 0x5b, 0xae, 0xc4, 0x68, 0x94, 0x17, 0x67,
- 0x4f, 0x6d, 0x26, 0x3b, 0x5a, 0x6b, 0x93, 0x8d, 0xae, 0xac, 0x46, 0x99, 0x65, 0x70, 0x36, 0x69,
- 0xb9, 0x2a, 0x9b, 0xf7, 0xd4, 0xb1, 0x85, 0xcf, 0x72, 0xb4, 0x11, 0x8e, 0x6d, 0xc7, 0x67, 0x79,
- 0xf4, 0xbc, 0x8e, 0x76, 0x76, 0x59, 0xc1, 0x78, 0x25, 0xb5, 0x25, 0x6d, 0x8e, 0xa5, 0xaf, 0xc4,
- 0x90, 0xfa, 0x66, 0x94, 0x36, 0x1e, 0x0b, 0x9b, 0x65, 0x8d, 0x77, 0xe6, 0x98, 0xd9, 0x1a, 0x54,
- 0x9e, 0x8c, 0x5c, 0xdf, 0xb2, 0xaf, 0xb1, 0xb3, 0xcb, 0x00, 0x49, 0x70, 0xdc, 0xf8, 0xe3, 0x5f,
- 0x4e, 0xb6, 0x73, 0xf4, 0x45, 0x43, 0x7f, 0x1c, 0xf4, 0x04, 0x99, 0x90, 0x8a, 0xa9, 0x21, 0xfe,
- 0x5d, 0x28, 0xe0, 0xfb, 0x28, 0x1b, 0xb3, 0xbe, 0x50, 0x48, 0xb6, 0xf1, 0xd4, 0x11, 0xe7, 0xa6,
- 0x62, 0xe4, 0xf7, 0x00, 0xac, 0x9e, 0x74, 0xce, 0x04, 0x22, 0xf5, 0x62, 0x4f, 0x61, 0xf8, 0xdb,
- 0x69, 0xf7, 0xe5, 0xfa, 0x74, 0x62, 0xca, 0xaf, 0xe1, 0x26, 0x54, 0x71, 0xe9, 0x8e, 0xda, 0x01,
- 0xae, 0xf6, 0xfa, 0x32, 0x31, 0xbe, 0xbe, 0x58, 0xf3, 0x1e, 0xc7, 0x8c, 0x66, 0x5a, 0x08, 0x7f,
- 0x02, 0xcb, 0x2a, 0x35, 0xa6, 0x85, 0xd6, 0x48, 0xe8, 0x1b, 0x8b, 0x09, 0x6d, 0x27, 0x9c, 0xe6,
- 0x84, 0x98, 0xd9, 0xec, 0x62, 0xe1, 0xa5, 0xb3, 0x8b, 0xaf, 0xc0, 0x4a, 0x77, 0x72, 0x15, 0xa8,
- 0xad, 0x62, 0x0a, 0xcb, 0x0d, 0x58, 0x76, 0xc2, 0x24, 0xb9, 0x49, 0xa9, 0x8e, 0xb2, 0x39, 0x81,
- 0x6b, 0xfc, 0x87, 0x22, 0xe4, 0x69, 0xe4, 0xa7, 0x53, 0x55, 0xdb, 0x13, 0x26, 0xfd, 0xe1, 0xe2,
- 0x53, 0x3d, 0xb5, 0xe2, 0xc9, 0x82, 0xe4, 0x52, 0x16, 0xe4, 0xbb, 0x50, 0x08, 0xfd, 0x40, 0x46,
- 0xd3, 0xbb, 0xa0, 0x12, 0x75, 0xfc, 0x40, 0x9a, 0x8a, 0x91, 0xef, 0x42, 0xe9, 0xc4, 0x71, 0x25,
- 0x4e, 0x8a, 0x1a, 0xbc, 0xd7, 0x16, 0x93, 0xb1, 0x4b, 0x4c, 0x66, 0xc4, 0xcc, 0xf7, 0xd3, 0xca,
- 0x56, 0x24, 0x49, 0x1b, 0x8b, 0x49, 0x9a, 0xa7, 0x83, 0xeb, 0xc0, 0x7a, 0xfe, 0x99, 0x08, 0xcc,
- 0x54, 0x7e, 0x51, 0x6d, 0xd2, 0x33, 0x78, 0xde, 0x80, 0xf2, 0xc0, 0xb1, 0x05, 0xfa, 0x39, 0x64,
- 0x63, 0xca, 0x66, 0x0c, 0xf3, 0x4f, 0xa0, 0x4c, 0xf1, 0x01, 0x5a, 0xc5, 0xca, 0x4b, 0x0f, 0xbe,
- 0x0a, 0x55, 0x22, 0x01, 0xf8, 0x21, 0xfa, 0xf8, 0xae, 0x23, 0x29, 0xcd, 0x5c, 0x36, 0x63, 0x18,
- 0x1b, 0x4c, 0xfa, 0x9e, 0x6e, 0x70, 0x55, 0x35, 0x78, 0x1a, 0xcf, 0xdf, 0x82, 0x5b, 0x84, 0x9b,
- 0xda, 0x24, 0x71, 0xa9, 0xa1, 0xd0, 0xf9, 0x2f, 0xd1, 0x61, 0x19, 0x59, 0x7d, 0xb1, 0xef, 0x0c,
- 0x1d, 0x59, 0xaf, 0xdd, 0xcf, 0x3c, 0x28, 0x98, 0x09, 0x82, 0xbf, 0x06, 0x6b, 0xb6, 0x38, 0xb1,
- 0xc6, 0xae, 0xec, 0x8a, 0xe1, 0xc8, 0xb5, 0xa4, 0x68, 0xd9, 0xa4, 0xa3, 0x15, 0x73, 0xf6, 0x05,
- 0x7f, 0x1d, 0x6e, 0x68, 0x64, 0x3b, 0x3e, 0x1c, 0x68, 0xd9, 0x94, 0x85, 0xab, 0x98, 0xf3, 0x5e,
- 0x19, 0x07, 0xda, 0x0c, 0xe3, 0x06, 0x8a, 0x71, 0x6a, 0x64, 0x40, 0x43, 0xa9, 0x76, 0xe4, 0xc7,
- 0x96, 0xeb, 0x8a, 0xe0, 0x52, 0x05, 0xb9, 0x9f, 0x58, 0xde, 0xb1, 0xe5, 0xb1, 0x1c, 0xed, 0xb1,
- 0x96, 0x2b, 0x3c, 0xdb, 0x0a, 0xd4, 0x8e, 0xfc, 0x98, 0x36, 0xf4, 0x82, 0xf1, 0x00, 0xf2, 0x34,
- 0xa4, 0x15, 0x28, 0xa8, 0x28, 0x89, 0x22, 0x66, 0x1d, 0x21, 0x91, 0x45, 0xde, 0xc7, 0xe5, 0xc7,
- 0xb2, 0x8d, 0x9f, 0xe5, 0xa0, 0x1c, 0x0d, 0x5e, 0x74, 0x14, 0x90, 0x49, 0x8e, 0x02, 0xd0, 0x8d,
- 0x0b, 0x9f, 0x3a, 0xa1, 0x73, 0xac, 0xdd, 0xd2, 0xb2, 0x99, 0x20, 0xd0, 0x13, 0x3a, 0x77, 0x6c,
- 0x39, 0xa0, 0x35, 0x53, 0x30, 0x15, 0xc0, 0x1f, 0xc0, 0xaa, 0x8d, 0xe3, 0xe0, 0xf5, 0xdc, 0xb1,
- 0x2d, 0xba, 0xb8, 0x8b, 0xaa, 0x34, 0xc1, 0x34, 0x9a, 0xff, 0x00, 0x40, 0x3a, 0x43, 0xb1, 0xeb,
- 0x07, 0x43, 0x4b, 0xea, 0xd8, 0xe0, 0xdb, 0x2f, 0xa7, 0xd5, 0x1b, 0xdd, 0x58, 0x80, 0x99, 0x12,
- 0x86, 0xa2, 0xf1, 0x6b, 0x5a, 0x74, 0xe9, 0x0b, 0x89, 0xde, 0x89, 0x05, 0x98, 0x29, 0x61, 0xc6,
- 0xaf, 0x02, 0x24, 0x6f, 0xf8, 0x6d, 0xe0, 0x07, 0xbe, 0x27, 0x07, 0x9b, 0xc7, 0xc7, 0xc1, 0x96,
- 0x38, 0xf1, 0x03, 0xb1, 0x63, 0xe1, 0xb6, 0x76, 0x0b, 0xd6, 0x62, 0xfc, 0xe6, 0x89, 0x14, 0x01,
- 0xa2, 0x69, 0xe8, 0x3b, 0x03, 0x3f, 0x90, 0xca, 0xb7, 0xa2, 0xc7, 0x27, 0x1d, 0x96, 0xc3, 0xad,
- 0xb4, 0xd5, 0x69, 0xb3, 0xbc, 0xf1, 0x00, 0x20, 0xe9, 0x12, 0xc5, 0x20, 0xf4, 0xf4, 0xc6, 0x23,
- 0x1d, 0x91, 0x10, 0xf4, 0xe8, 0x2d, 0x96, 0x69, 0xfc, 0x51, 0x0e, 0xf2, 0x68, 0x6a, 0x30, 0xfc,
- 0x4a, 0xaf, 0x0b, 0x35, 0x7d, 0x69, 0xd4, 0x17, 0x33, 0x90, 0x28, 0x3b, 0x6d, 0x20, 0xdf, 0x83,
- 0x6a, 0x6f, 0x1c, 0x4a, 0x7f, 0x48, 0xbb, 0x83, 0x3e, 0x47, 0xb9, 0x3d, 0x93, 0xc8, 0x78, 0x6a,
- 0xb9, 0x63, 0x61, 0xa6, 0x49, 0xf9, 0xdb, 0x50, 0x3c, 0x51, 0x13, 0xa1, 0x52, 0x19, 0xbf, 0x74,
- 0xc5, 0x06, 0xa2, 0x07, 0x5b, 0x13, 0x63, 0xbf, 0x9c, 0x19, 0x25, 0x4a, 0xa3, 0xf4, 0x46, 0x50,
- 0x8c, 0x37, 0x82, 0x5f, 0x85, 0x15, 0x81, 0x6e, 0xc5, 0x91, 0x6b, 0xf5, 0xc4, 0x50, 0x78, 0xd1,
- 0xcc, 0xbf, 0xf5, 0x12, 0x3d, 0x26, 0xbf, 0x84, 0xba, 0x3d, 0x25, 0xcb, 0xf8, 0xba, 0x5e, 0xa4,
- 0x25, 0xc8, 0x6d, 0x86, 0x3d, 0x1d, 0x76, 0x8b, 0xb0, 0xa7, 0x7c, 0xfa, 0x6d, 0xea, 0x30, 0xcb,
- 0x1a, 0x6f, 0x40, 0x25, 0x96, 0xc1, 0x19, 0x2c, 0x1f, 0xfa, 0xb2, 0x33, 0x12, 0x3d, 0xe7, 0xc4,
- 0x11, 0xb6, 0x4a, 0x24, 0x74, 0xa4, 0x15, 0x48, 0x95, 0xb9, 0x6a, 0x7a, 0x36, 0xcb, 0x36, 0x7e,
- 0xbf, 0x0c, 0x45, 0x65, 0xf1, 0x75, 0x97, 0x2a, 0x71, 0x97, 0xbe, 0x07, 0x65, 0x7f, 0x24, 0x02,
- 0x4b, 0xfa, 0x81, 0x4e, 0x17, 0xbc, 0xfd, 0x32, 0x3b, 0xc8, 0x46, 0x5b, 0x33, 0x9b, 0xb1, 0x98,
- 0x69, 0x7d, 0xc9, 0xce, 0xea, 0xcb, 0x3a, 0xb0, 0x68, 0xb3, 0x38, 0x0a, 0x90, 0x4f, 0x5e, 0xea,
- 0xe0, 0x6f, 0x06, 0xcf, 0xbb, 0x50, 0xe9, 0xf9, 0x9e, 0xed, 0xc4, 0xa9, 0x83, 0x95, 0x47, 0xef,
- 0xbc, 0x54, 0x0b, 0xb7, 0x23, 0x6e, 0x33, 0x11, 0xc4, 0x5f, 0x83, 0xc2, 0x19, 0x2a, 0x12, 0x69,
- 0xcc, 0xd5, 0x6a, 0xa6, 0x88, 0xf8, 0xa7, 0x50, 0xfd, 0xe1, 0xd8, 0xe9, 0x9d, 0xb6, 0xd3, 0xa9,
- 0xa9, 0xf7, 0x5e, 0xaa, 0x15, 0xdf, 0x4b, 0xf8, 0xcd, 0xb4, 0xb0, 0x94, 0xf2, 0x96, 0xfe, 0x0c,
- 0xca, 0x5b, 0x9e, 0x55, 0x5e, 0x13, 0x6a, 0x9e, 0x08, 0xa5, 0xb0, 0x77, 0xb5, 0x83, 0x00, 0x5f,
- 0xc0, 0x41, 0x98, 0x14, 0x61, 0x7c, 0x15, 0xca, 0xd1, 0x84, 0xf3, 0x22, 0x64, 0x0f, 0xd1, 0x13,
- 0x2f, 0x42, 0xb6, 0x1d, 0x28, 0x6d, 0xdb, 0x44, 0x6d, 0x33, 0xfe, 0x24, 0x03, 0x95, 0x78, 0xd0,
- 0x27, 0x53, 0x5c, 0xcd, 0x1f, 0x8e, 0x2d, 0x97, 0x65, 0x28, 0x46, 0xf3, 0xa5, 0x82, 0xc8, 0x52,
- 0x3d, 0xa6, 0x83, 0xde, 0x80, 0xe5, 0x68, 0x5f, 0x12, 0x61, 0xc8, 0xf2, 0x9c, 0xc3, 0x8a, 0x46,
- 0xb7, 0x03, 0x45, 0x5a, 0xc0, 0x10, 0x0e, 0xdf, 0x46, 0x88, 0xa2, 0xda, 0xc6, 0x4e, 0x85, 0x0a,
- 0x51, 0x0f, 0x7d, 0x49, 0x40, 0x19, 0x1b, 0xd5, 0xf2, 0x58, 0x05, 0xbf, 0x79, 0xe8, 0xcb, 0x96,
- 0xc7, 0x20, 0x89, 0x09, 0xaa, 0xd1, 0xe7, 0x09, 0x5a, 0xa6, 0x88, 0xc3, 0x75, 0x5b, 0x1e, 0xab,
- 0xe9, 0x17, 0x0a, 0x5a, 0x41, 0x89, 0xcd, 0x0b, 0xab, 0x87, 0xec, 0xab, 0x7c, 0x05, 0x00, 0x79,
- 0x34, 0xcc, 0x70, 0x49, 0x36, 0x2f, 0x9c, 0x50, 0x86, 0x6c, 0xcd, 0xf8, 0xf7, 0x19, 0xa8, 0xa6,
- 0x26, 0x18, 0x63, 0x0e, 0x22, 0x44, 0x3b, 0xae, 0x42, 0x90, 0x1f, 0xe0, 0x30, 0x06, 0x76, 0x64,
- 0xa3, 0xbb, 0x3e, 0x3e, 0x66, 0xf1, 0x7b, 0x5d, 0x7f, 0xe8, 0x07, 0x81, 0x7f, 0xae, 0xf6, 0xdb,
- 0x7d, 0x2b, 0x94, 0xcf, 0x84, 0x38, 0x65, 0x79, 0xec, 0xea, 0xf6, 0x38, 0x08, 0x84, 0xa7, 0x10,
- 0x05, 0x6a, 0x9c, 0xb8, 0x50, 0x50, 0x11, 0x85, 0x22, 0x31, 0x6d, 0x02, 0xac, 0x84, 0x86, 0x40,
- 0x53, 0x2b, 0x4c, 0x19, 0x09, 0x90, 0x5c, 0x81, 0x15, 0x0c, 0xeb, 0x55, 0x58, 0xdc, 0x3e, 0xd9,
- 0xb1, 0x2e, 0xc3, 0xcd, 0xbe, 0xcf, 0x60, 0x1a, 0x79, 0xe8, 0x9f, 0xb3, 0x6a, 0x63, 0x0c, 0x90,
- 0x04, 0x02, 0x18, 0x00, 0xa1, 0x42, 0xc4, 0x89, 0x6b, 0x0d, 0xf1, 0x36, 0x00, 0x3e, 0x11, 0x65,
- 0x14, 0x05, 0xbd, 0x84, 0x77, 0x46, 0x7c, 0x66, 0x4a, 0x44, 0xe3, 0xaf, 0x42, 0x25, 0x7e, 0x81,
- 0x71, 0x2f, 0xf9, 0x51, 0xf1, 0x67, 0x23, 0x10, 0x9d, 0x02, 0xc7, 0xb3, 0xc5, 0x05, 0xd9, 0x95,
- 0x82, 0xa9, 0x00, 0x6c, 0xe5, 0xc0, 0xb1, 0x6d, 0xe1, 0x45, 0xc7, 0x0b, 0x0a, 0x9a, 0x77, 0x96,
- 0x9b, 0x9f, 0x7b, 0x96, 0xdb, 0xf8, 0x35, 0xa8, 0xa6, 0x22, 0x95, 0x2b, 0xbb, 0x9d, 0x6a, 0x58,
- 0x76, 0xb2, 0x61, 0x77, 0xa1, 0x12, 0xd5, 0x0f, 0x84, 0xb4, 0x7b, 0x55, 0xcc, 0x04, 0xd1, 0xf8,
- 0x57, 0x59, 0x74, 0x9f, 0xb0, 0x6b, 0xd3, 0xd1, 0xc5, 0x2e, 0x14, 0x31, 0xd4, 0x1e, 0x47, 0x07,
- 0xe1, 0x0b, 0x2e, 0xd0, 0x0e, 0xf1, 0xec, 0x2d, 0x99, 0x9a, 0x9b, 0x7f, 0x00, 0x39, 0x69, 0xf5,
- 0x75, 0x76, 0xee, 0x1b, 0x8b, 0x09, 0xe9, 0x5a, 0xfd, 0xbd, 0x25, 0x13, 0xf9, 0xf8, 0x3e, 0x94,
- 0x7b, 0x3a, 0xa1, 0xa2, 0x8d, 0xe2, 0x82, 0x01, 0x40, 0x94, 0x86, 0xd9, 0x5b, 0x32, 0x63, 0x09,
- 0xfc, 0xbb, 0x90, 0x47, 0x97, 0x46, 0xd7, 0x0b, 0x2c, 0x18, 0xd8, 0xe0, 0x72, 0xd9, 0x5b, 0x32,
- 0x89, 0x73, 0xab, 0x04, 0x05, 0xb2, 0xc1, 0x8d, 0x3a, 0x14, 0x55, 0x5f, 0xa7, 0x47, 0xae, 0x71,
- 0x07, 0x72, 0x5d, 0xab, 0x8f, 0x6e, 0xa5, 0x63, 0x87, 0x3a, 0x3e, 0xc7, 0xc7, 0xc6, 0xd7, 0x92,
- 0xe4, 0x50, 0x3a, 0xef, 0x98, 0x99, 0xc8, 0x3b, 0x36, 0x8a, 0x90, 0xc7, 0x2f, 0x36, 0xee, 0x5e,
- 0xe7, 0xa2, 0x36, 0xfe, 0x67, 0x16, 0xbd, 0x59, 0x29, 0x2e, 0xe6, 0xe6, 0x54, 0x3f, 0x86, 0xca,
- 0x28, 0xf0, 0x7b, 0x22, 0x0c, 0xfd, 0x40, 0xbb, 0x3f, 0xaf, 0xbd, 0xf8, 0xd8, 0x72, 0xe3, 0x28,
- 0xe2, 0x31, 0x13, 0x76, 0xe3, 0xef, 0x64, 0xa1, 0x12, 0xbf, 0x50, 0x4e, 0xb4, 0x14, 0x17, 0x2a,
- 0x7f, 0x76, 0x20, 0x82, 0xa1, 0xe5, 0xd8, 0xca, 0x7a, 0x6c, 0x0f, 0xac, 0xc8, 0xc3, 0xfb, 0x81,
- 0x3f, 0x96, 0xe3, 0x63, 0xa1, 0xf2, 0x26, 0x4f, 0x9d, 0xa1, 0xf0, 0x59, 0x9e, 0x4e, 0x2c, 0x50,
- 0xb1, 0x7b, 0xae, 0x3f, 0xb6, 0x59, 0x01, 0xe1, 0xc7, 0xb4, 0xbd, 0x1d, 0x58, 0xa3, 0x50, 0xd9,
- 0xcc, 0x03, 0x27, 0xf0, 0x59, 0x09, 0x99, 0x76, 0x9d, 0xfe, 0xd0, 0x62, 0x65, 0x14, 0xd6, 0x3d,
- 0x77, 0x24, 0x1a, 0xe1, 0x0a, 0x5f, 0x83, 0x5a, 0x7b, 0x24, 0xbc, 0x8e, 0x0c, 0x84, 0x90, 0x07,
- 0xd6, 0x48, 0x25, 0xd2, 0x4c, 0x61, 0xdb, 0x8e, 0x54, 0xf6, 0x73, 0xd7, 0xea, 0x89, 0x63, 0xdf,
- 0x3f, 0x65, 0xcb, 0x68, 0x68, 0x5a, 0x5e, 0x28, 0xad, 0x7e, 0x60, 0x0d, 0x95, 0x0d, 0xed, 0x0a,
- 0x57, 0x10, 0xb4, 0x42, 0xdf, 0x76, 0xe4, 0x60, 0x7c, 0xfc, 0x18, 0x83, 0x8d, 0x55, 0x75, 0xb8,
- 0x61, 0x8b, 0x91, 0x40, 0x1b, 0xba, 0x0c, 0xe5, 0x2d, 0xc7, 0x75, 0x8e, 0x1d, 0xd7, 0x61, 0x6b,
- 0x48, 0xda, 0xbc, 0xe8, 0x59, 0xae, 0x63, 0x07, 0xd6, 0x39, 0xe3, 0x8d, 0x35, 0x58, 0x9d, 0x3a,
- 0x9e, 0x6d, 0x94, 0x74, 0xfc, 0xd2, 0xa8, 0x41, 0x35, 0x75, 0xe0, 0xd6, 0x78, 0x05, 0xca, 0xd1,
- 0x71, 0x1c, 0xc6, 0x79, 0x4e, 0xa8, 0x12, 0x89, 0x7a, 0xc6, 0x63, 0xb8, 0xf1, 0x87, 0x19, 0x28,
- 0xaa, 0x23, 0x4d, 0xbe, 0x15, 0x97, 0x20, 0x64, 0x16, 0x38, 0xff, 0x52, 0x4c, 0xfa, 0xf4, 0x30,
- 0xae, 0x43, 0xb8, 0x09, 0x05, 0x97, 0x02, 0x3a, 0x6d, 0x8b, 0x08, 0x48, 0x99, 0x8e, 0x5c, 0xda,
- 0x74, 0x18, 0x9b, 0xf1, 0x89, 0x65, 0x94, 0xbc, 0x22, 0x17, 0xaf, 0x1b, 0x08, 0xa1, 0x12, 0x53,
- 0x14, 0x8f, 0x65, 0xc9, 0xf0, 0xfb, 0xc3, 0x91, 0xd5, 0x93, 0x84, 0xa0, 0x2d, 0x11, 0x2d, 0x23,
- 0xcb, 0x1b, 0x27, 0x50, 0x3e, 0xf2, 0xc3, 0xe9, 0x8d, 0xb5, 0x04, 0xb9, 0xae, 0x3f, 0x52, 0x6e,
- 0xe2, 0x96, 0x2f, 0xc9, 0x4d, 0x54, 0xfb, 0xe8, 0x89, 0x54, 0x9a, 0x61, 0x3a, 0xfd, 0x81, 0x54,
- 0x31, 0x5c, 0xcb, 0xf3, 0x44, 0xc0, 0x0a, 0x38, 0x11, 0xa6, 0x18, 0xa1, 0xf3, 0xc9, 0x8a, 0x38,
- 0xf4, 0x84, 0xdf, 0x75, 0x82, 0x50, 0xb2, 0x92, 0xd1, 0xc2, 0x2d, 0xd1, 0xe9, 0xd3, 0x4e, 0x46,
- 0x0f, 0x24, 0x6a, 0x09, 0x9b, 0x46, 0xe0, 0xb6, 0xf0, 0x50, 0x51, 0xe8, 0x70, 0x4c, 0x55, 0xa7,
- 0xd0, 0x07, 0xb2, 0xb8, 0x0d, 0x11, 0xfc, 0xf1, 0x38, 0x94, 0xce, 0xc9, 0x25, 0xcb, 0x19, 0xcf,
- 0xa0, 0x36, 0x51, 0xc7, 0xc2, 0x6f, 0x02, 0x9b, 0x40, 0x60, 0xd3, 0x97, 0xf8, 0x1d, 0xb8, 0x31,
- 0x81, 0x3d, 0x70, 0x6c, 0x9b, 0xb2, 0x84, 0xd3, 0x2f, 0xa2, 0x0e, 0x6e, 0x55, 0xa0, 0xd4, 0x53,
- 0xb3, 0x63, 0x1c, 0x41, 0x8d, 0xa6, 0xeb, 0x40, 0x48, 0xab, 0xed, 0xb9, 0x97, 0x7f, 0xe6, 0x62,
- 0x23, 0xe3, 0x9b, 0x50, 0xa0, 0xac, 0x3e, 0x2e, 0xfa, 0x93, 0xc0, 0x1f, 0x92, 0xac, 0x82, 0x49,
- 0xcf, 0x28, 0x5d, 0xfa, 0x7a, 0xce, 0xb3, 0xd2, 0x37, 0x3e, 0x2f, 0x43, 0x69, 0xb3, 0xd7, 0xf3,
- 0xc7, 0x9e, 0x9c, 0xf9, 0xf2, 0xdb, 0x50, 0xec, 0xf9, 0xde, 0x89, 0xd3, 0xd7, 0x46, 0x75, 0xda,
- 0xbd, 0xd3, 0x7c, 0xa8, 0x68, 0x27, 0x4e, 0xdf, 0xd4, 0xc4, 0xc8, 0xa6, 0x37, 0x85, 0xc2, 0xb5,
- 0x6c, 0xca, 0x32, 0xc6, 0x7b, 0xc0, 0x43, 0xc8, 0x3b, 0xde, 0x89, 0xaf, 0x2b, 0x03, 0xbf, 0x7c,
- 0x05, 0x13, 0x95, 0xc7, 0x11, 0x61, 0xe3, 0xbf, 0x64, 0xa0, 0xa8, 0x3e, 0xcd, 0x5f, 0x81, 0x15,
- 0xe1, 0xe1, 0x22, 0x8a, 0xec, 0xb1, 0x5e, 0x3d, 0x53, 0x58, 0xf4, 0x3c, 0x35, 0x46, 0x1c, 0x8f,
- 0xfb, 0x3a, 0x6a, 0x4f, 0xa3, 0xf8, 0x7b, 0x70, 0x47, 0x81, 0x47, 0x81, 0x08, 0x84, 0x2b, 0xac,
- 0x50, 0x6c, 0x0f, 0x2c, 0xcf, 0x13, 0xae, 0xde, 0x9d, 0xaf, 0x7a, 0xcd, 0x0d, 0x58, 0x56, 0xaf,
- 0x3a, 0x23, 0xab, 0x27, 0x42, 0x7d, 0x52, 0x34, 0x81, 0xe3, 0xdf, 0x82, 0x02, 0x15, 0x4e, 0xd6,
- 0xed, 0xeb, 0xa7, 0x52, 0x51, 0x35, 0xfc, 0x78, 0xfb, 0xd8, 0x04, 0x50, 0xc3, 0x84, 0x91, 0x93,
- 0x5e, 0xf5, 0x5f, 0xb9, 0x76, 0x5c, 0x29, 0x4c, 0x4b, 0x31, 0x61, 0xfb, 0x6c, 0xe1, 0x0a, 0xaa,
- 0x70, 0xc3, 0xed, 0x2d, 0x4b, 0x39, 0xf9, 0x09, 0x5c, 0xe3, 0x37, 0xf2, 0x90, 0xc7, 0x11, 0x46,
- 0xe2, 0x81, 0x3f, 0x14, 0x71, 0x66, 0x52, 0xf9, 0x0b, 0x13, 0x38, 0xf4, 0x4f, 0x2c, 0x75, 0x38,
- 0x1c, 0x93, 0x29, 0xa3, 0x31, 0x8d, 0x46, 0xca, 0x51, 0xe0, 0x9f, 0x38, 0x6e, 0x42, 0xa9, 0x3d,
- 0x99, 0x29, 0x34, 0x7f, 0x07, 0x6e, 0x0f, 0xad, 0xe0, 0x54, 0x48, 0x5a, 0xdd, 0xcf, 0xfc, 0xe0,
- 0x34, 0xc4, 0x91, 0x6b, 0xd9, 0x3a, 0xa5, 0x75, 0xc5, 0x5b, 0x34, 0x9c, 0xb6, 0x38, 0x73, 0x88,
- 0xb2, 0xac, 0x0a, 0x22, 0x23, 0x18, 0x95, 0xc3, 0x52, 0x43, 0xd3, 0xd1, 0xb2, 0xf4, 0x69, 0xc3,
- 0x24, 0x16, 0x9d, 0x20, 0x55, 0x28, 0x12, 0xb6, 0x6c, 0xca, 0xb2, 0x55, 0xcc, 0x04, 0x81, 0xaa,
- 0x43, 0x1f, 0x7b, 0xaa, 0xcc, 0x63, 0x4d, 0x45, 0x86, 0x29, 0x14, 0x52, 0x48, 0xd1, 0x1b, 0x44,
- 0x1f, 0x51, 0x29, 0xb0, 0x34, 0x8a, 0xdf, 0x03, 0xe8, 0x5b, 0x52, 0x9c, 0x5b, 0x97, 0x4f, 0x02,
- 0xb7, 0x2e, 0x54, 0xda, 0x3c, 0xc1, 0x60, 0x6c, 0xe9, 0xfa, 0x3d, 0xcb, 0xed, 0x48, 0x3f, 0xb0,
- 0xfa, 0xe2, 0xc8, 0x92, 0x83, 0x7a, 0x5f, 0xc5, 0x96, 0xd3, 0x78, 0xec, 0xb1, 0x74, 0x86, 0xe2,
- 0x53, 0xdf, 0x13, 0xf5, 0x81, 0xea, 0x71, 0x04, 0x63, 0x4b, 0x2c, 0xcf, 0x72, 0x2f, 0xa5, 0xd3,
- 0xc3, 0xbe, 0x38, 0xaa, 0x25, 0x29, 0x14, 0xf6, 0xd5, 0x13, 0xf2, 0xdc, 0x0f, 0x4e, 0x5b, 0x76,
- 0xfd, 0x33, 0xd5, 0xd7, 0x18, 0x61, 0xb4, 0x01, 0x12, 0x25, 0x42, 0xcb, 0xbc, 0x49, 0xa9, 0x7d,
- 0xb6, 0x84, 0x4e, 0xf7, 0x91, 0xf0, 0x6c, 0xc7, 0xeb, 0xef, 0x68, 0xbd, 0x61, 0x19, 0x44, 0x52,
- 0xd8, 0x2e, 0xec, 0x18, 0x49, 0x1b, 0x3c, 0x41, 0xc2, 0x66, 0x39, 0xe3, 0x7f, 0x67, 0xa0, 0x9a,
- 0x3a, 0xc9, 0xfe, 0x73, 0x3c, 0x7d, 0xc7, 0x1d, 0x73, 0x68, 0xf5, 0x05, 0x0e, 0xa8, 0xd2, 0xa9,
- 0x18, 0xc6, 0xe1, 0xd6, 0x07, 0xed, 0xf8, 0x56, 0x05, 0xe9, 0x29, 0xcc, 0x17, 0x3a, 0x79, 0x37,
- 0x1e, 0xe9, 0x4c, 0x47, 0x15, 0x4a, 0x4f, 0xbc, 0x53, 0xcf, 0x3f, 0xf7, 0xd4, 0x56, 0x48, 0xe5,
- 0x14, 0x13, 0x07, 0x43, 0x51, 0xc5, 0x43, 0xce, 0xf8, 0xe7, 0xf9, 0xa9, 0xca, 0xa3, 0x26, 0x14,
- 0x95, 0x7b, 0x4d, 0x9e, 0xdf, 0x6c, 0xa9, 0x48, 0x9a, 0x58, 0x1f, 0x42, 0xa4, 0x50, 0xa6, 0x66,
- 0x46, 0xbf, 0x37, 0x2e, 0xaf, 0xcb, 0xce, 0x3d, 0x2c, 0x99, 0x10, 0x14, 0x99, 0xc1, 0x89, 0x0a,
- 0xd3, 0x58, 0x42, 0xe3, 0x6f, 0x65, 0xe0, 0xe6, 0x3c, 0x92, 0x74, 0x1d, 0x6e, 0x66, 0xb2, 0x0e,
- 0xb7, 0x33, 0x55, 0xd7, 0x9a, 0xa5, 0xde, 0x3c, 0x7c, 0xc9, 0x46, 0x4c, 0x56, 0xb9, 0x1a, 0x3f,
- 0xc9, 0xc0, 0xda, 0x4c, 0x9f, 0x53, 0x2e, 0x03, 0x40, 0x51, 0x69, 0x96, 0xaa, 0x57, 0x89, 0x2b,
- 0x08, 0x54, 0x06, 0x98, 0x36, 0xd3, 0x50, 0x1d, 0xc9, 0xea, 0x4a, 0x5e, 0xe5, 0x56, 0xe2, 0xac,
- 0xa1, 0xad, 0xee, 0x0b, 0x56, 0xc0, 0xbd, 0x5e, 0xf9, 0x33, 0x1a, 0x53, 0x54, 0xae, 0x9f, 0x4a,
- 0x53, 0xb3, 0x12, 0xd5, 0xc1, 0x8c, 0x47, 0xae, 0xd3, 0x43, 0xb0, 0xcc, 0x1b, 0x70, 0x5b, 0x95,
- 0x73, 0xeb, 0x30, 0xeb, 0xa4, 0x3b, 0x70, 0x68, 0x71, 0xb0, 0x8a, 0x61, 0xc2, 0x8d, 0x39, 0x7d,
- 0xa2, 0x56, 0x3e, 0xd5, 0x2d, 0x5e, 0x01, 0xd8, 0x79, 0x1a, 0xb5, 0x93, 0x65, 0x38, 0x87, 0x95,
- 0x9d, 0xa7, 0x69, 0x81, 0x7a, 0xbd, 0x3c, 0x45, 0x4b, 0x12, 0xb2, 0x9c, 0xf1, 0x9b, 0x99, 0xe8,
- 0x6c, 0xba, 0xf1, 0x57, 0xa0, 0xa6, 0xda, 0x78, 0x64, 0x5d, 0xba, 0xbe, 0x65, 0xf3, 0x26, 0xac,
- 0x84, 0xf1, 0x1d, 0x83, 0xd4, 0x76, 0x30, 0xbd, 0xcd, 0x76, 0x26, 0x88, 0xcc, 0x29, 0xa6, 0x28,
- 0x5a, 0xc8, 0x26, 0x09, 0x6d, 0x4e, 0x71, 0x8f, 0x45, 0xab, 0x6c, 0x99, 0x22, 0x19, 0xcb, 0xf8,
- 0x16, 0xac, 0x91, 0xf1, 0x52, 0x8d, 0x51, 0x9e, 0x28, 0xea, 0x83, 0xb2, 0xbb, 0x3b, 0x91, 0x3e,
- 0x68, 0xd0, 0xf8, 0x83, 0x22, 0x40, 0x92, 0xbc, 0x9f, 0xb3, 0xcc, 0xe7, 0x9d, 0x45, 0xcf, 0x1c,
- 0xa5, 0xe5, 0x5e, 0xfa, 0x28, 0xed, 0xbd, 0xd8, 0x21, 0x56, 0x59, 0xd4, 0xe9, 0xba, 0xda, 0xa4,
- 0x4d, 0xd3, 0x6e, 0xf0, 0x44, 0xa9, 0x46, 0x61, 0xba, 0x54, 0xe3, 0xfe, 0x6c, 0x5d, 0xd7, 0x94,
- 0xfd, 0x49, 0x82, 0xf7, 0xd2, 0x44, 0xf0, 0xde, 0x80, 0x72, 0x20, 0x2c, 0xdb, 0xf7, 0xdc, 0xcb,
- 0xe8, 0xc4, 0x26, 0x82, 0xf9, 0x9b, 0x50, 0x90, 0x74, 0x4d, 0xa2, 0x4c, 0xcb, 0xe5, 0x05, 0x13,
- 0xa7, 0x68, 0xd1, 0x98, 0x39, 0xa1, 0x2e, 0xc6, 0x52, 0x3b, 0x58, 0xd9, 0x4c, 0x61, 0xf8, 0x06,
- 0x70, 0x07, 0x23, 0x19, 0xd7, 0x15, 0xf6, 0xd6, 0xe5, 0x8e, 0x3a, 0x48, 0xa1, 0x5d, 0xb3, 0x6c,
- 0xce, 0x79, 0x13, 0xcd, 0xff, 0x72, 0x32, 0xff, 0xd4, 0xe4, 0x33, 0x27, 0xc4, 0x9e, 0xd6, 0xc8,
- 0x39, 0x88, 0x61, 0xdc, 0x97, 0xa3, 0x35, 0xaa, 0xc6, 0x92, 0xb4, 0x37, 0x39, 0x8d, 0xbc, 0xe2,
- 0xad, 0xf1, 0x8f, 0xb3, 0x71, 0xe0, 0x50, 0x81, 0xc2, 0xb1, 0x15, 0x3a, 0x3d, 0x15, 0x14, 0xea,
- 0x8d, 0x5f, 0x05, 0x0f, 0xd2, 0xb7, 0x7d, 0x96, 0xc5, 0x58, 0x20, 0x14, 0xe8, 0xf5, 0xaf, 0x00,
- 0x24, 0x57, 0x47, 0x58, 0x1e, 0xd7, 0x66, 0x34, 0xdf, 0xaa, 0xa6, 0x82, 0x58, 0x29, 0x8f, 0x64,
- 0xc7, 0xd5, 0x6a, 0x14, 0x11, 0x92, 0xed, 0x67, 0x65, 0xa4, 0xf1, 0x7c, 0x29, 0x54, 0x16, 0x8d,
- 0xb4, 0x93, 0x01, 0x8a, 0x89, 0x6a, 0xa1, 0x59, 0x15, 0x9d, 0xf3, 0x48, 0xa8, 0x4a, 0x7d, 0x85,
- 0x14, 0xb2, 0x2c, 0xe3, 0xea, 0x9c, 0x7c, 0xc1, 0x6a, 0xd8, 0xa2, 0xe4, 0x46, 0x0a, 0x5b, 0x41,
- 0xa9, 0x16, 0x9d, 0xf4, 0xaf, 0xe2, 0xe3, 0x19, 0x9d, 0xff, 0x33, 0xfc, 0x2a, 0xc6, 0xff, 0x6c,
- 0x0d, 0x5b, 0x16, 0xbb, 0x06, 0x8c, 0x63, 0xec, 0x31, 0xb2, 0x30, 0x10, 0x70, 0x46, 0x96, 0x27,
- 0xd9, 0x0d, 0xec, 0xea, 0xc8, 0x3e, 0x61, 0x37, 0x8d, 0xdf, 0x4d, 0x6a, 0x41, 0x5f, 0x8f, 0xdd,
- 0xef, 0x45, 0x14, 0x18, 0x1d, 0xf4, 0x79, 0xab, 0xa9, 0x09, 0x6b, 0x81, 0xf8, 0xe1, 0xd8, 0x99,
- 0x28, 0x74, 0xce, 0x5d, 0x7f, 0x04, 0x3f, 0xcb, 0x61, 0x9c, 0xc1, 0x5a, 0x04, 0x3c, 0x73, 0xe4,
- 0x80, 0xd2, 0x19, 0xfc, 0xcd, 0x54, 0x25, 0x76, 0x66, 0xee, 0x0d, 0x96, 0x58, 0x64, 0x52, 0x79,
- 0x1d, 0xa7, 0xab, 0xb3, 0x0b, 0xa4, 0xab, 0x8d, 0xff, 0x55, 0x4c, 0x65, 0x34, 0x54, 0x40, 0x62,
- 0xc7, 0x01, 0xc9, 0xec, 0x21, 0x5c, 0x92, 0x81, 0xce, 0xbe, 0x4c, 0x06, 0x7a, 0xde, 0x81, 0xf6,
- 0xfb, 0xe8, 0x1f, 0xd3, 0xda, 0x78, 0xba, 0x40, 0x76, 0x7d, 0x82, 0x96, 0x6f, 0xd1, 0x91, 0x9a,
- 0xd5, 0x51, 0xd5, 0x16, 0x85, 0xb9, 0xf7, 0x22, 0xd2, 0x67, 0x67, 0x9a, 0xd2, 0x4c, 0x71, 0xa5,
- 0x2c, 0x49, 0x71, 0x9e, 0x25, 0xc1, 0xd8, 0x50, 0xdb, 0x98, 0x18, 0x56, 0x87, 0x11, 0xea, 0x39,
- 0x12, 0x4f, 0x47, 0xa9, 0x65, 0x73, 0x06, 0x8f, 0x1e, 0xd6, 0x70, 0xec, 0x4a, 0x47, 0xe7, 0xdb,
- 0x15, 0x30, 0x7d, 0x71, 0xab, 0x32, 0x7b, 0x71, 0xeb, 0x43, 0x80, 0x50, 0xa0, 0xe6, 0xef, 0x38,
- 0x3d, 0xa9, 0x6b, 0x32, 0xee, 0x5d, 0xd5, 0x37, 0x7d, 0x4a, 0x90, 0xe2, 0xc0, 0xf6, 0x0f, 0xad,
- 0x8b, 0x6d, 0xf4, 0xb4, 0xf5, 0xe1, 0x71, 0x0c, 0x4f, 0xdb, 0xd7, 0x95, 0x59, 0xfb, 0xfa, 0x26,
- 0x14, 0xc2, 0x9e, 0x3f, 0x12, 0x74, 0xf7, 0xe0, 0xea, 0xf9, 0xdd, 0xe8, 0x20, 0x91, 0xa9, 0x68,
- 0x29, 0x6f, 0x86, 0x16, 0xc8, 0x0f, 0xe8, 0xd6, 0x41, 0xc5, 0x8c, 0xc0, 0x09, 0x1b, 0x77, 0x7b,
- 0xd2, 0xc6, 0x35, 0x6c, 0x28, 0xea, 0x1c, 0xf8, 0x74, 0x20, 0x1c, 0x65, 0xcf, 0xb2, 0xa9, 0xec,
- 0x59, 0x5c, 0xf9, 0x97, 0x4b, 0x57, 0xfe, 0x4d, 0x5d, 0x4c, 0x2a, 0xcc, 0x5c, 0x4c, 0x32, 0x3e,
- 0x85, 0x02, 0xb5, 0x15, 0x1d, 0x04, 0x35, 0xcc, 0xca, 0x7f, 0xc4, 0x4e, 0xb1, 0x0c, 0xbf, 0x09,
- 0x2c, 0x14, 0xe4, 0x60, 0x88, 0x8e, 0x35, 0x14, 0x64, 0x00, 0xb3, 0xbc, 0x0e, 0x37, 0x15, 0x6d,
- 0x38, 0xf9, 0x86, 0xbc, 0x1c, 0xd7, 0x39, 0x0e, 0xac, 0xe0, 0x92, 0xe5, 0x8d, 0x0f, 0xe9, 0xf8,
- 0x35, 0x52, 0xa8, 0x6a, 0x7c, 0x11, 0x4c, 0x99, 0x5c, 0x5b, 0x04, 0xb8, 0x53, 0xa8, 0x53, 0x73,
- 0x1d, 0xfb, 0xa8, 0x5a, 0x22, 0x0a, 0x2e, 0x28, 0xdf, 0xb1, 0x9c, 0xde, 0x65, 0xff, 0xdc, 0xd6,
- 0x9b, 0xb1, 0x95, 0x72, 0xd3, 0x26, 0x8b, 0x83, 0x32, 0x8b, 0x16, 0x07, 0x19, 0x9f, 0xc0, 0xaa,
- 0x39, 0x69, 0xaf, 0xf9, 0x7b, 0x50, 0xf2, 0x47, 0x69, 0x39, 0x2f, 0xd2, 0xcb, 0x88, 0xdc, 0xf8,
- 0x69, 0x06, 0x96, 0x5b, 0x9e, 0x14, 0x81, 0x67, 0xb9, 0xbb, 0xae, 0xd5, 0xe7, 0xef, 0x46, 0x56,
- 0x6a, 0x7e, 0x6c, 0x9d, 0xa6, 0x9d, 0x34, 0x58, 0xae, 0xce, 0xf5, 0xf2, 0x5b, 0xb0, 0x26, 0x6c,
- 0x47, 0xfa, 0x81, 0x72, 0x4e, 0xa3, 0x1a, 0xae, 0x9b, 0xc0, 0x14, 0xba, 0x43, 0x4b, 0xa2, 0xab,
- 0xa6, 0xb9, 0x0e, 0x37, 0x27, 0xb0, 0x91, 0xe7, 0x99, 0xe5, 0x77, 0xa1, 0x9e, 0xec, 0x34, 0x3b,
- 0xbe, 0x27, 0x5b, 0x9e, 0x2d, 0x2e, 0xc8, 0xcd, 0x61, 0x39, 0xe3, 0xb7, 0x4b, 0x91, 0x83, 0xf5,
- 0x54, 0x57, 0x78, 0x05, 0xbe, 0x9f, 0xdc, 0x02, 0xd4, 0x50, 0xea, 0xb6, 0x69, 0x76, 0x81, 0xdb,
- 0xa6, 0x1f, 0x26, 0x37, 0x06, 0xd5, 0x46, 0xf1, 0xb5, 0xb9, 0xbb, 0x0f, 0x15, 0xa6, 0x68, 0x97,
- 0xba, 0x23, 0x52, 0xd7, 0x07, 0xdf, 0xd0, 0x71, 0x54, 0x7e, 0x11, 0x3f, 0x54, 0x1d, 0x98, 0xbf,
- 0x3d, 0x5d, 0xdf, 0xbe, 0x58, 0x81, 0xd8, 0x8c, 0xab, 0x08, 0x2f, 0xed, 0x2a, 0x7e, 0x34, 0x15,
- 0xb2, 0x94, 0xe7, 0xa6, 0x9b, 0xae, 0xb9, 0x84, 0xf7, 0x11, 0x94, 0x06, 0x4e, 0x28, 0xfd, 0x40,
- 0x5d, 0x0c, 0x9d, 0xbd, 0xc8, 0x92, 0x1a, 0xad, 0x3d, 0x45, 0x48, 0xd5, 0x3c, 0x11, 0x17, 0xff,
- 0x3e, 0xac, 0xd1, 0xc0, 0x1f, 0x25, 0x1e, 0x41, 0x58, 0xaf, 0xce, 0xad, 0xa2, 0x4a, 0x89, 0xda,
- 0x9a, 0x62, 0x31, 0x67, 0x85, 0x34, 0xfa, 0x00, 0xc9, 0xfc, 0xcc, 0x58, 0xb1, 0x2f, 0x70, 0x31,
- 0xf4, 0x36, 0x14, 0xc3, 0xf1, 0x71, 0x72, 0x28, 0xa4, 0xa1, 0xc6, 0x05, 0x34, 0x66, 0xbc, 0x83,
- 0x23, 0x11, 0xa8, 0xe6, 0x5e, 0x7b, 0x3b, 0xf5, 0xc3, 0xf4, 0xc4, 0x2b, 0xe5, 0xbc, 0x7f, 0xc5,
- 0xec, 0xc5, 0x92, 0x53, 0x1a, 0xd0, 0x78, 0x1b, 0xaa, 0xa9, 0x41, 0x45, 0xcb, 0x3c, 0xf6, 0x6c,
- 0x3f, 0x4a, 0x71, 0xe2, 0xb3, 0xba, 0xd6, 0x63, 0x47, 0x49, 0x4e, 0x7a, 0x6e, 0x98, 0xc0, 0xa6,
- 0x07, 0xf0, 0x9a, 0xb0, 0xf6, 0x6b, 0x50, 0x4b, 0xb9, 0x6b, 0x71, 0xfa, 0x6b, 0x12, 0x69, 0x9c,
- 0xc1, 0x97, 0x53, 0xe2, 0x8e, 0x44, 0x30, 0x74, 0x42, 0xdc, 0x48, 0x54, 0xb8, 0x46, 0x99, 0x09,
- 0x5b, 0x78, 0xd2, 0x91, 0x91, 0x05, 0x8d, 0x61, 0xfe, 0x2b, 0x50, 0x18, 0x89, 0x60, 0x18, 0x6a,
- 0x2b, 0x3a, 0xad, 0x41, 0x73, 0xc5, 0x86, 0xa6, 0xe2, 0x31, 0xfe, 0x59, 0x06, 0xca, 0x07, 0x42,
- 0x5a, 0xe8, 0x3b, 0xf0, 0x83, 0xa9, 0xaf, 0xcc, 0x1e, 0x64, 0x46, 0xa4, 0x1b, 0x3a, 0x80, 0xdc,
- 0x68, 0x69, 0x7a, 0x0d, 0xef, 0x2d, 0x25, 0x0d, 0x6b, 0x6c, 0x41, 0x49, 0xa3, 0x1b, 0xef, 0xc2,
- 0xea, 0x14, 0x25, 0x8d, 0x8b, 0xf2, 0xdb, 0x3b, 0x97, 0xc3, 0xa8, 0x9e, 0x66, 0xd9, 0x9c, 0x44,
- 0x6e, 0x55, 0xa0, 0x34, 0x52, 0x0c, 0xc6, 0xbf, 0xbb, 0x45, 0x35, 0x1e, 0xce, 0x09, 0x06, 0xd2,
- 0xf3, 0x76, 0xd6, 0x7b, 0x00, 0xb4, 0x35, 0xab, 0x4a, 0x00, 0x95, 0x92, 0x4c, 0x61, 0xf8, 0xfb,
- 0x71, 0x2e, 0x39, 0x3f, 0xd7, 0xa9, 0x4a, 0x0b, 0x9f, 0x4e, 0x28, 0xd7, 0xa1, 0xe4, 0x84, 0xfb,
- 0xb8, 0xb5, 0xe9, 0xfa, 0x98, 0x08, 0xe4, 0xdf, 0x81, 0xa2, 0x33, 0x1c, 0xf9, 0x81, 0xd4, 0xc9,
- 0xe6, 0x6b, 0xa5, 0xb6, 0x88, 0x72, 0x6f, 0xc9, 0xd4, 0x3c, 0xc8, 0x2d, 0x2e, 0x88, 0xbb, 0xfc,
- 0x62, 0xee, 0xe6, 0x45, 0xc4, 0xad, 0x78, 0xf8, 0xf7, 0xa0, 0xd6, 0x57, 0x15, 0x6b, 0x4a, 0xb0,
- 0x36, 0x22, 0xdf, 0xb8, 0x4e, 0xc8, 0xe3, 0x34, 0xc3, 0xde, 0x92, 0x39, 0x29, 0x01, 0x45, 0xa2,
- 0x03, 0x2f, 0x42, 0xd9, 0xf5, 0x3f, 0xf6, 0x1d, 0x8f, 0x02, 0xce, 0x17, 0x88, 0x34, 0xd3, 0x0c,
- 0x28, 0x72, 0x42, 0x02, 0x7f, 0x07, 0x3d, 0x9e, 0x50, 0xea, 0xbb, 0xb9, 0xf7, 0xaf, 0x93, 0xd4,
- 0x15, 0xa1, 0xbe, 0x55, 0x1b, 0x4a, 0x7e, 0x01, 0x8d, 0xd4, 0x22, 0xd1, 0x1f, 0xd9, 0x1c, 0x8d,
- 0x02, 0x1f, 0xa3, 0xd6, 0x1a, 0x49, 0x7b, 0xe7, 0x3a, 0x69, 0x47, 0x57, 0x72, 0xef, 0x2d, 0x99,
- 0xd7, 0xc8, 0xe6, 0x5d, 0x8c, 0xda, 0x74, 0x17, 0xf6, 0x85, 0x75, 0x16, 0xdd, 0xec, 0x5d, 0x5f,
- 0x68, 0x14, 0x88, 0x63, 0x6f, 0xc9, 0x9c, 0x92, 0xc1, 0x7f, 0x0d, 0xd6, 0x26, 0xbe, 0x49, 0xb7,
- 0x00, 0xd5, 0xbd, 0xdf, 0x6f, 0x2d, 0xdc, 0x0d, 0x64, 0xda, 0x5b, 0x32, 0x67, 0x25, 0xf1, 0x31,
- 0x7c, 0x69, 0xb6, 0x4b, 0x3b, 0xa2, 0xe7, 0x3a, 0x9e, 0xd0, 0x57, 0x84, 0xdf, 0x7e, 0xb9, 0xd1,
- 0xd2, 0xcc, 0x7b, 0x4b, 0xe6, 0xd5, 0x92, 0xf9, 0x5f, 0x83, 0xbb, 0xa3, 0xb9, 0x26, 0x46, 0x99,
- 0x2e, 0x7d, 0xc3, 0xf8, 0xbd, 0x05, 0xbf, 0x3c, 0xc3, 0xbf, 0xb7, 0x64, 0x5e, 0x2b, 0x1f, 0x7d,
- 0x67, 0x8a, 0x8e, 0x75, 0x61, 0xad, 0x02, 0xf8, 0x5d, 0xa8, 0x58, 0x3d, 0x77, 0x4f, 0x58, 0x76,
- 0x9c, 0x3d, 0x4f, 0x10, 0x8d, 0x3f, 0xce, 0x40, 0x51, 0xeb, 0xfb, 0xdd, 0xf8, 0xe0, 0x3a, 0x36,
- 0xdd, 0x09, 0x82, 0x7f, 0x00, 0x15, 0x11, 0x04, 0x7e, 0xb0, 0xed, 0xdb, 0x51, 0x55, 0xdf, 0x74,
- 0x6a, 0x57, 0xc9, 0xd9, 0x68, 0x46, 0x64, 0x66, 0xc2, 0xc1, 0xdf, 0x07, 0x50, 0xeb, 0xbc, 0x9b,
- 0xdc, 0x8f, 0x68, 0xcc, 0xe7, 0x57, 0x47, 0x2c, 0x09, 0x75, 0x92, 0x18, 0x8b, 0xce, 0x37, 0x22,
- 0x30, 0x0e, 0x38, 0x0b, 0xa9, 0x80, 0xf3, 0xae, 0xce, 0x11, 0x1c, 0xe2, 0x0b, 0x7d, 0x4b, 0x28,
- 0x46, 0x34, 0xfe, 0x6d, 0x06, 0x8a, 0xca, 0x78, 0xf0, 0xe6, 0x6c, 0x8f, 0x5e, 0x7d, 0xb1, 0xcd,
- 0xd9, 0x98, 0xee, 0xd9, 0x77, 0x00, 0x94, 0x0d, 0x4a, 0xf5, 0xec, 0xee, 0x94, 0x1c, 0xcd, 0x1a,
- 0x95, 0x76, 0x26, 0xf4, 0xc6, 0x23, 0x75, 0x93, 0x85, 0xf2, 0xb0, 0x4f, 0xf6, 0xf7, 0xd9, 0x12,
- 0x5f, 0x83, 0xda, 0x93, 0xc3, 0x4f, 0x0e, 0xdb, 0xcf, 0x0e, 0x9f, 0x37, 0x4d, 0xb3, 0x6d, 0xaa,
- 0x74, 0xec, 0xd6, 0xe6, 0xce, 0xf3, 0xd6, 0xe1, 0xd1, 0x93, 0x2e, 0xcb, 0x36, 0x7e, 0x96, 0x81,
- 0xda, 0x84, 0xed, 0xfa, 0x7f, 0x3b, 0x75, 0xa9, 0xe1, 0xcf, 0xcd, 0x1f, 0xfe, 0xfc, 0x55, 0xc3,
- 0x5f, 0x98, 0x1e, 0xfe, 0xdf, 0xcf, 0x40, 0x6d, 0xc2, 0x46, 0xa6, 0xa5, 0x67, 0x26, 0xa5, 0xa7,
- 0x77, 0xfa, 0xec, 0xd4, 0x4e, 0x6f, 0xc0, 0x72, 0xf4, 0x7c, 0x98, 0x64, 0x1c, 0x26, 0x70, 0x69,
- 0x1a, 0x2a, 0x25, 0xcf, 0x4f, 0xd2, 0x50, 0x39, 0xf9, 0xf5, 0xad, 0xa5, 0xab, 0x73, 0x21, 0xdd,
- 0x2c, 0x6e, 0x5c, 0x6d, 0x41, 0xaf, 0xe9, 0xc2, 0x63, 0xa8, 0x8e, 0x92, 0x65, 0xfa, 0x72, 0x6e,
- 0x49, 0x9a, 0xf3, 0x05, 0xed, 0xfc, 0x49, 0x06, 0x56, 0x26, 0x6d, 0xee, 0x5f, 0xe8, 0x61, 0xfd,
- 0x83, 0x0c, 0xac, 0xcd, 0x58, 0xf2, 0x6b, 0x1d, 0xbb, 0xe9, 0x76, 0x65, 0x17, 0x68, 0x57, 0x6e,
- 0x4e, 0xbb, 0xae, 0xb6, 0x24, 0xd7, 0xb7, 0xb8, 0x03, 0x5f, 0xba, 0x72, 0x4f, 0xb8, 0x66, 0xa8,
- 0x27, 0x84, 0xe6, 0xa6, 0x85, 0xfe, 0x93, 0x0c, 0xdc, 0xbd, 0xce, 0xde, 0xff, 0x7f, 0xd7, 0xab,
- 0xe9, 0x16, 0x1a, 0xef, 0xc6, 0x07, 0xe5, 0x55, 0x28, 0xe9, 0x3f, 0xde, 0xd1, 0xf5, 0xc4, 0x03,
- 0xff, 0xdc, 0x53, 0x59, 0x66, 0x53, 0x58, 0xfa, 0x4e, 0xb3, 0x29, 0x46, 0xae, 0x43, 0x07, 0x93,
- 0x77, 0x00, 0x36, 0x29, 0xae, 0x8b, 0xae, 0x18, 0x6c, 0xef, 0xb7, 0x3b, 0x4d, 0xb6, 0x94, 0x76,
- 0x62, 0x3f, 0x8d, 0x0c, 0xb1, 0x71, 0x04, 0xc5, 0xa4, 0xf8, 0xfc, 0xc0, 0x0a, 0x4e, 0x6d, 0x75,
- 0xfc, 0xb7, 0x0c, 0xe5, 0x23, 0x1d, 0x42, 0xa9, 0x4f, 0x7d, 0xdc, 0x69, 0x1f, 0xaa, 0x84, 0xf6,
- 0x4e, 0xbb, 0xab, 0x4a, 0xd8, 0x3b, 0x4f, 0x1f, 0xab, 0x73, 0xa8, 0xc7, 0xe6, 0xe6, 0xd1, 0xde,
- 0x73, 0xa2, 0x28, 0x18, 0x3f, 0xcb, 0x46, 0xbb, 0x9a, 0x61, 0xea, 0x83, 0x45, 0x80, 0x22, 0x5a,
- 0x73, 0x5f, 0x0b, 0x8e, 0x3f, 0x43, 0x95, 0xa7, 0xcd, 0x0b, 0x95, 0x87, 0x60, 0x59, 0x5e, 0x84,
- 0xec, 0xd1, 0xb1, 0xaa, 0xb0, 0xd9, 0x93, 0x43, 0x57, 0xdd, 0x39, 0xeb, 0x5e, 0x48, 0x56, 0xc0,
- 0x87, 0xed, 0xf0, 0x8c, 0x15, 0x8d, 0xff, 0x9c, 0x81, 0x4a, 0x6c, 0x2a, 0x5f, 0xc6, 0x74, 0x73,
- 0x0e, 0x2b, 0xad, 0xc3, 0x6e, 0xd3, 0x3c, 0xdc, 0xdc, 0xd7, 0x24, 0x39, 0x5e, 0x87, 0x9b, 0x87,
- 0xed, 0xe7, 0xed, 0xad, 0x8f, 0x9b, 0xdb, 0xdd, 0xce, 0xf3, 0x6e, 0xfb, 0x79, 0xeb, 0xe0, 0xa8,
- 0x6d, 0x76, 0x59, 0x81, 0xdf, 0x06, 0xae, 0x9e, 0x9f, 0xb7, 0x3a, 0xcf, 0xb7, 0x37, 0x0f, 0xb7,
- 0x9b, 0xfb, 0xcd, 0x1d, 0x56, 0xe4, 0xaf, 0xc2, 0x57, 0xf7, 0x5b, 0x07, 0xad, 0xee, 0xf3, 0xf6,
- 0xee, 0x73, 0xb3, 0xfd, 0xac, 0xf3, 0xbc, 0x6d, 0x3e, 0x37, 0x9b, 0xfb, 0x9b, 0xdd, 0x56, 0xfb,
- 0xb0, 0xf3, 0xbc, 0xf9, 0xfd, 0xed, 0x66, 0x73, 0xa7, 0xb9, 0xc3, 0x4a, 0xfc, 0x06, 0xac, 0xee,
- 0xb6, 0xf6, 0x9b, 0xcf, 0xf7, 0xdb, 0x9b, 0x3b, 0xfa, 0x7b, 0x65, 0x7e, 0x17, 0xea, 0xad, 0xc3,
- 0xce, 0x93, 0xdd, 0xdd, 0xd6, 0x76, 0xab, 0x79, 0xd8, 0x7d, 0x7e, 0xd4, 0x34, 0x0f, 0x5a, 0x9d,
- 0x0e, 0xf2, 0xb2, 0x8a, 0xf1, 0x5d, 0x28, 0xb6, 0xbc, 0x33, 0x47, 0x92, 0xfa, 0xe9, 0xb9, 0xd2,
- 0x01, 0x49, 0x04, 0x92, 0xd6, 0x38, 0x7d, 0x8f, 0xae, 0x1a, 0x93, 0xf2, 0x2d, 0x9b, 0x09, 0xc2,
- 0xf8, 0x17, 0x59, 0xa8, 0x29, 0x11, 0x51, 0x80, 0xf3, 0x00, 0x56, 0x75, 0xa6, 0xb0, 0x35, 0xb9,
- 0xc2, 0xa7, 0xd1, 0xf4, 0x57, 0x3c, 0x0a, 0x95, 0x5a, 0xe7, 0x69, 0x14, 0x9d, 0x2c, 0x91, 0x70,
- 0x0c, 0x94, 0xd4, 0x99, 0x5a, 0x82, 0xf8, 0xa2, 0x0b, 0x1c, 0x8d, 0x87, 0x22, 0xec, 0xf9, 0xde,
- 0x76, 0x5c, 0xe0, 0x3f, 0x81, 0xe3, 0x9f, 0xc2, 0x9d, 0x18, 0x6e, 0x7a, 0xbd, 0xe0, 0x72, 0x14,
- 0xff, 0x63, 0x56, 0x69, 0x6e, 0xc4, 0xbd, 0xeb, 0xb8, 0x62, 0x82, 0xd0, 0xbc, 0x4a, 0x80, 0xf1,
- 0x27, 0x99, 0x54, 0x58, 0xa8, 0xc2, 0xbe, 0x6b, 0x0d, 0xe2, 0xbc, 0x23, 0x0a, 0x0c, 0xcc, 0x74,
- 0xf3, 0xf5, 0x3e, 0xad, 0x41, 0x7e, 0x04, 0xdc, 0x99, 0x6d, 0x74, 0x7e, 0xc1, 0x46, 0xcf, 0xe1,
- 0x9d, 0xce, 0x30, 0x17, 0x66, 0x33, 0xcc, 0xf7, 0x00, 0xfa, 0xae, 0x7f, 0x6c, 0xb9, 0x29, 0x3f,
- 0x2c, 0x85, 0x31, 0x5c, 0x28, 0x47, 0xff, 0xcb, 0xc5, 0x6f, 0x43, 0x91, 0xfe, 0x99, 0x2b, 0xce,
- 0xb7, 0x29, 0x88, 0xef, 0xc1, 0x8a, 0x98, 0x6c, 0x73, 0x76, 0xc1, 0x36, 0x4f, 0xf1, 0x19, 0xdf,
- 0x86, 0xb5, 0x19, 0x22, 0x1c, 0xc4, 0x91, 0x25, 0xe3, 0x5b, 0xbd, 0xf8, 0x3c, 0x7b, 0x7e, 0x6b,
- 0xfc, 0xc7, 0x2c, 0x2c, 0x1f, 0x58, 0x9e, 0x73, 0x22, 0x42, 0x19, 0xb5, 0x36, 0xec, 0x0d, 0xc4,
- 0xd0, 0x8a, 0x5a, 0xab, 0x20, 0x1d, 0x84, 0x67, 0xd3, 0xe9, 0xed, 0x99, 0xd3, 0x90, 0xdb, 0x50,
- 0xb4, 0xc6, 0x72, 0x10, 0xd7, 0x1c, 0x6b, 0x08, 0xe7, 0xce, 0x75, 0x7a, 0xc2, 0x0b, 0x23, 0xdd,
- 0x8c, 0xc0, 0xa4, 0x82, 0xa3, 0x78, 0x4d, 0x05, 0x47, 0x69, 0x76, 0xfc, 0xef, 0x43, 0x35, 0xec,
- 0x05, 0x42, 0x78, 0xe1, 0xc0, 0x97, 0xd1, 0x7f, 0xba, 0xa5, 0x51, 0x54, 0xb9, 0xe4, 0x9f, 0x7b,
- 0xb8, 0x42, 0xf7, 0x1d, 0xef, 0x54, 0x97, 0xef, 0x4c, 0xe0, 0x50, 0x07, 0x29, 0x05, 0xe1, 0xfc,
- 0x48, 0x50, 0xf8, 0x5b, 0x30, 0x63, 0x98, 0x92, 0x0c, 0x96, 0x14, 0x7d, 0x3f, 0x70, 0x84, 0xca,
- 0xb4, 0x55, 0xcc, 0x14, 0x06, 0x79, 0x5d, 0xcb, 0xeb, 0x8f, 0xad, 0xbe, 0xd0, 0xe7, 0xa1, 0x31,
- 0x6c, 0xfc, 0xf7, 0x02, 0xc0, 0x81, 0x18, 0x1e, 0x8b, 0x20, 0x1c, 0x38, 0x23, 0x3a, 0x09, 0x70,
- 0x74, 0x71, 0x66, 0xcd, 0xa4, 0x67, 0xfe, 0xde, 0x44, 0x11, 0xf4, 0xec, 0xd9, 0x5d, 0xc2, 0x3e,
- 0x9d, 0xa1, 0xc0, 0xc1, 0xb1, 0xa4, 0xd0, 0xc5, 0x33, 0x34, 0xfe, 0x79, 0x33, 0x8d, 0xa2, 0xba,
- 0x26, 0x4b, 0x8a, 0xa6, 0x67, 0xab, 0x0c, 0x48, 0xde, 0x8c, 0x61, 0xba, 0x46, 0x11, 0x6e, 0x8e,
- 0xa5, 0x6f, 0x0a, 0x4f, 0x9c, 0xc7, 0x77, 0x80, 0x12, 0x14, 0x3f, 0x80, 0xda, 0xc8, 0xba, 0x1c,
- 0x0a, 0x4f, 0x1e, 0x08, 0x39, 0xf0, 0x6d, 0x5d, 0xe9, 0xf2, 0xea, 0xd5, 0x0d, 0x3c, 0x4a, 0x93,
- 0x9b, 0x93, 0xdc, 0xa8, 0x13, 0x5e, 0x48, 0xab, 0x44, 0x4d, 0xa3, 0x86, 0xf8, 0x16, 0x80, 0x7a,
- 0xa2, 0xc0, 0xa2, 0x3c, 0x3f, 0x51, 0x63, 0x0d, 0x45, 0x28, 0x82, 0x33, 0x47, 0xd9, 0x31, 0x15,
- 0x3a, 0x25, 0x5c, 0x68, 0xf5, 0xc6, 0xa1, 0x08, 0x9a, 0x43, 0xcb, 0x71, 0xf5, 0x04, 0x27, 0x08,
- 0xfe, 0x16, 0xdc, 0x0a, 0xc7, 0xc7, 0xa8, 0x33, 0xc7, 0xa2, 0xeb, 0x1f, 0x8a, 0xf3, 0xd0, 0x15,
- 0x52, 0x8a, 0x40, 0x1f, 0xad, 0xcf, 0x7f, 0x69, 0xf4, 0x63, 0xaf, 0x80, 0xfe, 0x78, 0x00, 0x9f,
- 0x92, 0x92, 0x9d, 0x18, 0xa5, 0xeb, 0x99, 0x58, 0x86, 0x33, 0x58, 0x56, 0x28, 0x5d, 0xee, 0x94,
- 0xe5, 0x5f, 0x87, 0xaf, 0x4c, 0x10, 0x99, 0xea, 0x9c, 0x34, 0xdc, 0x75, 0x3c, 0xcb, 0x75, 0x7e,
- 0xa4, 0x4e, 0xa4, 0x73, 0xc6, 0x08, 0x6a, 0x13, 0x03, 0x87, 0xdb, 0xbc, 0x7a, 0xd2, 0x05, 0x20,
- 0x0c, 0x96, 0x15, 0xdc, 0x91, 0x81, 0x43, 0x07, 0x00, 0x31, 0x66, 0x1b, 0xd7, 0xb9, 0xcf, 0xb2,
- 0xfc, 0x26, 0x30, 0x85, 0x69, 0x79, 0xd6, 0x68, 0xb4, 0x39, 0x1a, 0xb9, 0x82, 0xe5, 0xe8, 0xae,
- 0x5c, 0x82, 0x55, 0xa5, 0xd0, 0x2c, 0x6f, 0x7c, 0x1f, 0xee, 0xd0, 0xc8, 0x3c, 0x15, 0x41, 0x1c,
- 0xf7, 0xe9, 0xbe, 0xde, 0x82, 0x35, 0xf5, 0x74, 0xe8, 0x4b, 0xf5, 0x9a, 0x7c, 0x21, 0x0e, 0x2b,
- 0x0a, 0x8d, 0xae, 0x40, 0x47, 0x78, 0x52, 0xd5, 0xa1, 0x28, 0x5c, 0x4c, 0x97, 0x35, 0x7e, 0x5a,
- 0x04, 0x9e, 0x28, 0x44, 0xd7, 0x11, 0xc1, 0x8e, 0x25, 0xad, 0x54, 0xe2, 0xae, 0x76, 0xe5, 0xd1,
- 0xf3, 0x8b, 0xab, 0xb5, 0x6e, 0x43, 0xd1, 0x09, 0x31, 0x52, 0xd1, 0xd5, 0x91, 0x1a, 0xe2, 0xfb,
- 0x00, 0x23, 0x11, 0x38, 0xbe, 0x4d, 0x1a, 0x54, 0x98, 0x5b, 0x8b, 0x3e, 0xdb, 0xa8, 0x8d, 0xa3,
- 0x98, 0xc7, 0x4c, 0xf1, 0x63, 0x3b, 0x14, 0xa4, 0x0e, 0x72, 0x8b, 0xd4, 0xe8, 0x34, 0x8a, 0xbf,
- 0x0e, 0x37, 0x46, 0x81, 0xd3, 0x13, 0x6a, 0x3a, 0x9e, 0x84, 0xf6, 0x36, 0xfd, 0xeb, 0x56, 0x89,
- 0x28, 0xe7, 0xbd, 0x42, 0x0d, 0xb4, 0x3c, 0xf2, 0xdf, 0x43, 0x3a, 0xba, 0xd4, 0x77, 0x35, 0x55,
- 0xb5, 0x61, 0xcd, 0x9c, 0xff, 0x92, 0xaf, 0x03, 0xd3, 0x2f, 0x0e, 0x1c, 0x6f, 0x5f, 0x78, 0x7d,
- 0x39, 0x20, 0xe5, 0xae, 0x99, 0x33, 0x78, 0xb2, 0x60, 0xea, 0x4f, 0x51, 0xd4, 0xb1, 0x46, 0xc5,
- 0x8c, 0x61, 0x75, 0xff, 0xd7, 0xf5, 0x83, 0x8e, 0x0c, 0x74, 0x21, 0x64, 0x0c, 0xa3, 0xcf, 0x12,
- 0x52, 0x5b, 0x8f, 0x02, 0xdf, 0x1e, 0x53, 0xd2, 0x5d, 0x19, 0xb1, 0x69, 0x74, 0x42, 0x79, 0x60,
- 0x79, 0xba, 0x64, 0xae, 0x96, 0xa6, 0x8c, 0xd1, 0x14, 0xa2, 0xf8, 0x61, 0x22, 0x70, 0x55, 0x87,
- 0x28, 0x29, 0x9c, 0xa6, 0x49, 0x44, 0xb1, 0x98, 0x26, 0x91, 0x43, 0xfd, 0xb7, 0x03, 0xdf, 0xb1,
- 0x13, 0x59, 0x6b, 0xaa, 0xa0, 0x71, 0x1a, 0x9f, 0xa2, 0x4d, 0x64, 0xf2, 0x09, 0xda, 0x18, 0x6f,
- 0xfc, 0x38, 0x03, 0x90, 0x4c, 0x3e, 0xaa, 0x7c, 0x02, 0x25, 0x4b, 0xfc, 0x0e, 0xdc, 0x48, 0xa3,
- 0xa9, 0xc2, 0x9d, 0xce, 0x3f, 0x39, 0xac, 0x24, 0x2f, 0x76, 0xac, 0xcb, 0x90, 0x65, 0x55, 0x65,
- 0x63, 0x84, 0x7b, 0x26, 0x04, 0xd5, 0x90, 0xdd, 0x04, 0x96, 0x20, 0xe9, 0x36, 0x52, 0xc8, 0xf2,
- 0x93, 0xa4, 0x3f, 0x10, 0x56, 0x10, 0xb2, 0x82, 0xb1, 0x07, 0x45, 0x75, 0xf6, 0x32, 0xe7, 0xd4,
- 0xf4, 0xe5, 0x4a, 0x20, 0xfe, 0x76, 0x06, 0x60, 0x47, 0x15, 0xaf, 0xe2, 0x2e, 0x3e, 0xe7, 0x30,
- 0x7a, 0x9e, 0x47, 0x65, 0xd9, 0x36, 0x95, 0xf5, 0xe6, 0xe2, 0xbf, 0xda, 0x40, 0x10, 0x35, 0xc7,
- 0x8a, 0x8a, 0x86, 0xd4, 0x9a, 0x8b, 0x61, 0xb5, 0x81, 0x6c, 0xfb, 0x9e, 0x27, 0x7a, 0xb8, 0xfd,
- 0xc4, 0x1b, 0x48, 0x8c, 0x5a, 0xff, 0x97, 0x39, 0x58, 0x99, 0x3c, 0xbf, 0xa3, 0xaa, 0x79, 0x75,
- 0x76, 0xdc, 0x76, 0xed, 0x54, 0xe9, 0x23, 0xe3, 0xab, 0x50, 0xd5, 0x1e, 0x21, 0x21, 0xd6, 0x28,
- 0x32, 0xf1, 0x87, 0x82, 0xdd, 0x4f, 0xff, 0x8f, 0xd4, 0xeb, 0x18, 0xe0, 0xa8, 0x2b, 0x09, 0x6c,
- 0xc4, 0x2b, 0xfa, 0x1f, 0x35, 0x7e, 0x3d, 0xcb, 0x6b, 0xa9, 0x02, 0xbc, 0xdf, 0x43, 0x73, 0xb8,
- 0xba, 0x35, 0xf6, 0x6c, 0x57, 0xd8, 0x31, 0xf6, 0x9f, 0xa6, 0xb1, 0x71, 0x39, 0xdd, 0xaf, 0x63,
- 0x54, 0x55, 0xe9, 0x8c, 0x8f, 0x75, 0x29, 0xdd, 0x5f, 0xcf, 0xf3, 0xdb, 0xb0, 0xa6, 0xa9, 0x92,
- 0xba, 0x19, 0xf6, 0x37, 0x70, 0xe2, 0x56, 0x36, 0x95, 0x4d, 0xd1, 0x0d, 0x65, 0x7f, 0x33, 0x8f,
- 0x4d, 0xa0, 0xbb, 0x6e, 0xbf, 0x41, 0x72, 0xe2, 0xa2, 0x62, 0xf6, 0x9b, 0x79, 0xbe, 0x0a, 0xd0,
- 0xe9, 0xc6, 0x1f, 0xfa, 0xed, 0x3c, 0xaf, 0x42, 0xb1, 0xd3, 0x25, 0x69, 0x3f, 0xce, 0xf3, 0x5b,
- 0xc0, 0x92, 0xb7, 0xba, 0x52, 0xe8, 0xef, 0xaa, 0xc6, 0xc4, 0xa5, 0x3f, 0xbf, 0x93, 0xc7, 0x7e,
- 0x45, 0x0e, 0x33, 0xfb, 0x7b, 0x79, 0xce, 0xa0, 0x9a, 0x8a, 0x77, 0xd9, 0xdf, 0xcf, 0x73, 0x0e,
- 0xb5, 0x03, 0x0c, 0x73, 0xbd, 0xbe, 0xee, 0xc1, 0x6f, 0xd1, 0x97, 0x77, 0xe3, 0xba, 0x68, 0xf6,
- 0xbb, 0x79, 0x7e, 0x07, 0x78, 0x3a, 0xc7, 0xa7, 0x5f, 0xfc, 0x03, 0xe2, 0x56, 0xca, 0x12, 0x6a,
- 0xdc, 0x3f, 0xcc, 0xaf, 0xff, 0x94, 0xd2, 0x2c, 0xe9, 0x93, 0x78, 0x8c, 0x1d, 0x5d, 0xdf, 0xeb,
- 0x4b, 0xf5, 0x17, 0x5c, 0x35, 0xa8, 0x84, 0x03, 0x3f, 0x90, 0x04, 0xd2, 0xdd, 0x0b, 0x8f, 0xae,
- 0xd2, 0xa9, 0x12, 0x4a, 0xe5, 0x9d, 0xa8, 0xb0, 0x55, 0x5a, 0x7d, 0x56, 0x8d, 0x0b, 0x9b, 0xf2,
- 0x71, 0xf1, 0x15, 0x5d, 0xe9, 0x8b, 0xae, 0x4c, 0xb1, 0x22, 0x92, 0x8e, 0x03, 0x57, 0x15, 0x61,
- 0x09, 0xdc, 0x99, 0xd4, 0x7f, 0xed, 0x8c, 0x06, 0xb8, 0x01, 0x56, 0x14, 0xd6, 0xff, 0xcc, 0x51,
- 0x97, 0x71, 0x74, 0xdd, 0x83, 0x8d, 0xed, 0x88, 0x8f, 0xf6, 0x98, 0x58, 0xff, 0x9d, 0x0c, 0x2c,
- 0x47, 0x17, 0xd9, 0x9c, 0xbe, 0xe3, 0xa9, 0x32, 0xae, 0xe8, 0x8f, 0xcd, 0x7a, 0xae, 0x33, 0x8a,
- 0xfe, 0x28, 0x68, 0x15, 0xaa, 0x76, 0x60, 0xf5, 0x37, 0x3d, 0x7b, 0x27, 0xf0, 0x47, 0xaa, 0xd9,
- 0x2a, 0x11, 0xab, 0xca, 0xc7, 0xce, 0xc5, 0x31, 0x92, 0x8f, 0x44, 0xc0, 0xf2, 0x54, 0x53, 0x31,
- 0xb0, 0x02, 0xc7, 0xeb, 0x63, 0xf8, 0xec, 0x85, 0xaa, 0x8c, 0xac, 0x0a, 0xa5, 0x71, 0x28, 0x7a,
- 0x56, 0x28, 0x58, 0x11, 0x81, 0xe3, 0xb1, 0xe3, 0x4a, 0xc7, 0x53, 0xff, 0xcf, 0x13, 0xd7, 0x89,
- 0x95, 0xd7, 0xff, 0x30, 0x03, 0x55, 0x9a, 0xd0, 0x24, 0xc3, 0x90, 0x98, 0x98, 0x2a, 0x94, 0xf6,
- 0xe3, 0xff, 0x67, 0x29, 0x42, 0xb6, 0x7d, 0xaa, 0x32, 0x0c, 0x7a, 0x42, 0xd5, 0x0d, 0x16, 0xf5,
- 0x57, 0x2d, 0x79, 0xfe, 0x25, 0xb8, 0x65, 0x8a, 0xa1, 0x2f, 0xc5, 0x33, 0xcb, 0x91, 0xe9, 0x12,
- 0xea, 0x02, 0x7a, 0x23, 0xea, 0x55, 0x54, 0x33, 0x5d, 0x24, 0x6f, 0x04, 0x3f, 0x1b, 0x61, 0x4a,
- 0xd8, 0x69, 0xc2, 0x68, 0xf7, 0xa4, 0x1c, 0x93, 0x7c, 0xec, 0x3b, 0x1e, 0x7e, 0x8d, 0x2e, 0x3f,
- 0x11, 0x86, 0x52, 0x55, 0x88, 0x82, 0xf5, 0x43, 0xb8, 0x3d, 0x3f, 0xc1, 0xa2, 0xae, 0x45, 0xd1,
- 0x9f, 0x02, 0x52, 0x51, 0xed, 0xb3, 0xc0, 0x51, 0x17, 0x63, 0x2a, 0x50, 0x68, 0x9f, 0x7b, 0xa4,
- 0x0d, 0x6b, 0x50, 0x3b, 0xf4, 0x53, 0x3c, 0x2c, 0xb7, 0xde, 0x9b, 0xc8, 0x89, 0x25, 0x83, 0x12,
- 0x35, 0x62, 0x29, 0x55, 0x30, 0x9e, 0x51, 0xd9, 0x16, 0xfa, 0x7b, 0x66, 0x75, 0x65, 0x54, 0xe7,
- 0xa2, 0x6c, 0x75, 0x65, 0x34, 0x6e, 0x66, 0x5e, 0xfd, 0x61, 0x83, 0xd7, 0x13, 0xae, 0xb0, 0x59,
- 0x61, 0xfd, 0x3d, 0x58, 0xd5, 0x5d, 0xed, 0x89, 0x30, 0x8c, 0x0a, 0xae, 0x8f, 0x02, 0xe7, 0x4c,
- 0x5d, 0x4b, 0x5d, 0x86, 0xf2, 0x91, 0x08, 0x42, 0xdf, 0xa3, 0x2b, 0xb9, 0x00, 0xc5, 0xce, 0xc0,
- 0x0a, 0xf0, 0x1b, 0xeb, 0xdf, 0x84, 0x0a, 0x15, 0x60, 0x7f, 0xe2, 0x78, 0x36, 0xf6, 0x64, 0x4b,
- 0xd7, 0x1c, 0x56, 0xa0, 0xb0, 0xed, 0x9f, 0x51, 0xff, 0xca, 0xea, 0xaf, 0xc9, 0x58, 0x76, 0xfd,
- 0x23, 0xe0, 0x2a, 0xb6, 0xb3, 0xc5, 0x85, 0xe3, 0xf5, 0xe3, 0xbb, 0x7a, 0x40, 0x17, 0x6f, 0x6d,
- 0x71, 0x41, 0xae, 0x53, 0x15, 0x4a, 0x11, 0x10, 0x5d, 0xff, 0xdd, 0xf5, 0xc7, 0x1e, 0x7e, 0xed,
- 0x29, 0xdc, 0x54, 0xba, 0x81, 0x9f, 0xa7, 0x8b, 0x1e, 0x57, 0x3a, 0x9c, 0xaa, 0x4a, 0x5e, 0x8e,
- 0xc3, 0x98, 0x96, 0x65, 0xf8, 0x6d, 0xe0, 0xb1, 0xb3, 0x96, 0xe0, 0xb3, 0xeb, 0x06, 0xdc, 0x98,
- 0xe3, 0x31, 0x93, 0x1d, 0x55, 0x7e, 0x03, 0x5b, 0x5a, 0xff, 0x10, 0xd6, 0xd4, 0xca, 0x3f, 0x54,
- 0x85, 0xfb, 0xd1, 0x9f, 0x15, 0x3d, 0x6b, 0xed, 0xb6, 0xd4, 0x10, 0x6d, 0x37, 0xf7, 0xf7, 0x9f,
- 0xec, 0x6f, 0x9a, 0x2c, 0x43, 0x13, 0xd9, 0xee, 0x3e, 0xdf, 0x6e, 0x1f, 0x1e, 0x36, 0xb7, 0xbb,
- 0xcd, 0x1d, 0x96, 0xdd, 0x5a, 0xff, 0xa3, 0x5f, 0xdc, 0xcb, 0xfc, 0xfc, 0x17, 0xf7, 0x32, 0xff,
- 0xf5, 0x17, 0xf7, 0x32, 0x3f, 0xfe, 0xfc, 0xde, 0xd2, 0xcf, 0x3f, 0xbf, 0xb7, 0xf4, 0x9f, 0x3e,
- 0xbf, 0xb7, 0xf4, 0x29, 0x9b, 0xfe, 0x6b, 0xf4, 0xe3, 0x22, 0x6d, 0x55, 0x6f, 0xfe, 0xdf, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xbe, 0xaa, 0x7a, 0x83, 0x35, 0x5d, 0x00, 0x00,
+ // 8596 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0xbd, 0x4d, 0x8c, 0x24, 0xd9,
+ 0x71, 0x18, 0xdc, 0xf5, 0x5f, 0x15, 0xd5, 0xd5, 0xfd, 0xfa, 0xcd, 0x5f, 0xb1, 0x38, 0x1a, 0x0d,
+ 0x93, 0xcb, 0xe5, 0x70, 0xb8, 0xec, 0xd9, 0x9d, 0xdd, 0xe5, 0x2e, 0x57, 0xdc, 0x25, 0xfb, 0xa7,
+ 0x7a, 0xba, 0x76, 0xfb, 0x8f, 0x59, 0x35, 0x33, 0xe4, 0x42, 0xfa, 0xe6, 0xcb, 0xae, 0x7c, 0x5d,
+ 0x95, 0xdb, 0x59, 0x99, 0xc5, 0xcc, 0x57, 0x3d, 0xdd, 0x84, 0x6d, 0xc8, 0xb6, 0x2c, 0x5a, 0x07,
+ 0x03, 0xb4, 0x60, 0xf9, 0xe7, 0x60, 0x88, 0x02, 0x7c, 0x30, 0x20, 0xc2, 0x86, 0x0f, 0x84, 0x29,
+ 0xc0, 0x3a, 0xd8, 0x17, 0x0b, 0xf6, 0x85, 0xf6, 0xc9, 0x3e, 0x18, 0x36, 0xb8, 0x47, 0x43, 0x16,
+ 0xec, 0x8b, 0x05, 0xc3, 0x07, 0x23, 0xe2, 0xbd, 0xfc, 0xab, 0xaa, 0xee, 0xa9, 0x59, 0x49, 0x86,
+ 0x4f, 0x9d, 0x11, 0x19, 0x11, 0xf9, 0x7e, 0xe2, 0xc5, 0x8b, 0x88, 0x17, 0xaf, 0x1a, 0x5e, 0x19,
+ 0x9f, 0x0e, 0x1e, 0xb8, 0xce, 0xf1, 0x83, 0xf1, 0xf1, 0x83, 0x91, 0x6f, 0x0b, 0xf7, 0xc1, 0x38,
+ 0xf0, 0xa5, 0x1f, 0x2a, 0x20, 0x5c, 0x27, 0x88, 0x37, 0x2c, 0xef, 0x42, 0x5e, 0x8c, 0xc5, 0x3a,
+ 0x61, 0x5b, 0xb7, 0x07, 0xbe, 0x3f, 0x70, 0x85, 0x22, 0x3d, 0x9e, 0x9c, 0x3c, 0x08, 0x65, 0x30,
+ 0xe9, 0x4b, 0x45, 0x6c, 0xfc, 0xbc, 0x08, 0x37, 0xbb, 0x23, 0x2b, 0x90, 0x9b, 0xae, 0xdf, 0x3f,
+ 0xed, 0x7a, 0xd6, 0x38, 0x1c, 0xfa, 0x72, 0xd3, 0x0a, 0x05, 0x7f, 0x0d, 0xca, 0xc7, 0x88, 0x0c,
+ 0x9b, 0xb9, 0xbb, 0x85, 0x7b, 0xf5, 0x87, 0xd7, 0xd7, 0x33, 0x82, 0xd7, 0x89, 0xc3, 0xd4, 0x34,
+ 0xfc, 0x0d, 0xa8, 0xd8, 0x42, 0x5a, 0x8e, 0x1b, 0x36, 0xf3, 0x77, 0x73, 0xf7, 0xea, 0x0f, 0x6f,
+ 0xad, 0xab, 0x0f, 0xaf, 0x47, 0x1f, 0x5e, 0xef, 0xd2, 0x87, 0xcd, 0x88, 0x8e, 0xbf, 0x03, 0xd5,
+ 0x13, 0xc7, 0x15, 0x1f, 0x89, 0x8b, 0xb0, 0x59, 0xb8, 0x92, 0x67, 0x33, 0xdf, 0xcc, 0x99, 0x31,
+ 0x31, 0xdf, 0x82, 0x15, 0x71, 0x2e, 0x03, 0xcb, 0x14, 0xae, 0x25, 0x1d, 0xdf, 0x0b, 0x9b, 0x45,
+ 0x6a, 0xe1, 0xad, 0xa9, 0x16, 0x46, 0xef, 0x89, 0x7d, 0x8a, 0x85, 0xdf, 0x85, 0xba, 0x7f, 0xfc,
+ 0x89, 0xe8, 0xcb, 0xde, 0xc5, 0x58, 0x84, 0xcd, 0xd2, 0xdd, 0xc2, 0xbd, 0x9a, 0x99, 0x46, 0xf1,
+ 0x6f, 0x40, 0xbd, 0xef, 0xbb, 0xae, 0xe8, 0xab, 0x6f, 0x94, 0xaf, 0xee, 0x56, 0x9a, 0x96, 0xbf,
+ 0x05, 0x37, 0x02, 0x31, 0xf2, 0xcf, 0x84, 0xbd, 0x15, 0x63, 0xa9, 0x9f, 0x55, 0xfa, 0xcc, 0xfc,
+ 0x97, 0x7c, 0x03, 0x1a, 0x81, 0x6e, 0xdf, 0x9e, 0xe3, 0x9d, 0x86, 0xcd, 0x0a, 0x75, 0xeb, 0xf3,
+ 0x97, 0x74, 0x0b, 0x69, 0xcc, 0x2c, 0x07, 0x67, 0x50, 0x38, 0x15, 0x17, 0xcd, 0xda, 0xdd, 0xdc,
+ 0xbd, 0x9a, 0x89, 0x8f, 0xfc, 0x3d, 0x68, 0xfa, 0x81, 0x33, 0x70, 0x3c, 0xcb, 0xdd, 0x0a, 0x84,
+ 0x25, 0x85, 0xdd, 0x73, 0x46, 0x22, 0x94, 0xd6, 0x68, 0xdc, 0x84, 0xbb, 0xb9, 0x7b, 0x05, 0xf3,
+ 0xd2, 0xf7, 0xfc, 0x4d, 0x35, 0x43, 0x1d, 0xef, 0xc4, 0x6f, 0xd6, 0x75, 0xf7, 0xb3, 0x6d, 0xd9,
+ 0xd1, 0xaf, 0xcd, 0x98, 0xd0, 0xf8, 0xd3, 0x3c, 0x94, 0xbb, 0xc2, 0x0a, 0xfa, 0xc3, 0xd6, 0x0f,
+ 0x73, 0x50, 0x36, 0x45, 0x38, 0x71, 0x25, 0x6f, 0x41, 0x55, 0x8d, 0x6d, 0xc7, 0x6e, 0xe6, 0xa8,
+ 0x75, 0x31, 0xfc, 0x59, 0x74, 0x67, 0x1d, 0x8a, 0x23, 0x21, 0xad, 0x66, 0x81, 0x46, 0xa8, 0x35,
+ 0xd5, 0x2a, 0xf5, 0xf9, 0xf5, 0x7d, 0x21, 0x2d, 0x93, 0xe8, 0x5a, 0x9f, 0xe6, 0xa0, 0x88, 0x20,
+ 0xbf, 0x0d, 0xb5, 0xa1, 0x33, 0x18, 0xba, 0xce, 0x60, 0x28, 0x75, 0x43, 0x12, 0x04, 0xff, 0x00,
+ 0x56, 0x63, 0xc0, 0xb4, 0xbc, 0x81, 0xc0, 0x16, 0xcd, 0x53, 0x7e, 0x7a, 0x69, 0x4e, 0x13, 0xf3,
+ 0x26, 0x54, 0x68, 0x3d, 0x74, 0x6c, 0xd2, 0xe8, 0x9a, 0x19, 0x81, 0xa8, 0x6e, 0xd1, 0x4c, 0x7d,
+ 0x24, 0x2e, 0x9a, 0x45, 0x7a, 0x9b, 0x46, 0xf1, 0x0d, 0x58, 0x8d, 0xc0, 0x6d, 0x3d, 0x1a, 0xa5,
+ 0xab, 0x47, 0x63, 0x9a, 0xde, 0xf8, 0x47, 0x1d, 0x28, 0xd1, 0xb2, 0xe4, 0x2b, 0x90, 0x77, 0xa2,
+ 0x81, 0xce, 0x3b, 0x36, 0x7f, 0x00, 0xe5, 0x13, 0x47, 0xb8, 0xf6, 0x0b, 0x47, 0x58, 0x93, 0xf1,
+ 0x36, 0x2c, 0x07, 0x22, 0x94, 0x81, 0xa3, 0xb5, 0x5f, 0x2d, 0xd0, 0x2f, 0xcc, 0xb3, 0x01, 0xeb,
+ 0x66, 0x8a, 0xd0, 0xcc, 0xb0, 0x61, 0xb7, 0xfb, 0x43, 0xc7, 0xb5, 0x03, 0xe1, 0x75, 0x6c, 0xb5,
+ 0x4e, 0x6b, 0x66, 0x1a, 0xc5, 0xef, 0xc1, 0xea, 0xb1, 0xd5, 0x3f, 0x1d, 0x04, 0xfe, 0xc4, 0xc3,
+ 0x05, 0xe1, 0x07, 0xd4, 0xed, 0x9a, 0x39, 0x8d, 0xe6, 0xaf, 0x43, 0xc9, 0x72, 0x9d, 0x81, 0x47,
+ 0x2b, 0x71, 0x65, 0x66, 0xd2, 0x55, 0x5b, 0x36, 0x90, 0xc2, 0x54, 0x84, 0x7c, 0x17, 0x1a, 0x67,
+ 0x22, 0x90, 0x4e, 0xdf, 0x72, 0x09, 0xdf, 0xac, 0x10, 0xa7, 0x31, 0x97, 0xf3, 0x49, 0x9a, 0xd2,
+ 0xcc, 0x32, 0xf2, 0x0e, 0x40, 0x88, 0x66, 0x92, 0xa6, 0x53, 0xaf, 0x85, 0x2f, 0xcf, 0x15, 0xb3,
+ 0xe5, 0x7b, 0x52, 0x78, 0x72, 0xbd, 0x1b, 0x93, 0xef, 0x2e, 0x99, 0x29, 0x66, 0xfe, 0x0e, 0x14,
+ 0xa5, 0x38, 0x97, 0xcd, 0x95, 0x2b, 0x46, 0x34, 0x12, 0xd2, 0x13, 0xe7, 0x72, 0x77, 0xc9, 0x24,
+ 0x06, 0x64, 0xc4, 0x45, 0xd6, 0x5c, 0x5d, 0x80, 0x11, 0xd7, 0x25, 0x32, 0x22, 0x03, 0x7f, 0x1f,
+ 0xca, 0xae, 0x75, 0xe1, 0x4f, 0x64, 0x93, 0x11, 0xeb, 0x17, 0xaf, 0x64, 0xdd, 0x23, 0xd2, 0xdd,
+ 0x25, 0x53, 0x33, 0xf1, 0xb7, 0xa0, 0x60, 0x3b, 0x67, 0xcd, 0x35, 0xe2, 0xbd, 0x7b, 0x25, 0xef,
+ 0xb6, 0x73, 0xb6, 0xbb, 0x64, 0x22, 0x39, 0xdf, 0x82, 0xea, 0xb1, 0xef, 0x9f, 0x8e, 0xac, 0xe0,
+ 0xb4, 0xc9, 0x89, 0xf5, 0x4b, 0x57, 0xb2, 0x6e, 0x6a, 0xe2, 0xdd, 0x25, 0x33, 0x66, 0xc4, 0x2e,
+ 0x3b, 0x7d, 0xdf, 0x6b, 0x5e, 0x5b, 0xa0, 0xcb, 0x9d, 0xbe, 0xef, 0x61, 0x97, 0x91, 0x01, 0x19,
+ 0x5d, 0xc7, 0x3b, 0x6d, 0x5e, 0x5f, 0x80, 0x11, 0x2d, 0x27, 0x32, 0x22, 0x03, 0x36, 0xdb, 0xb6,
+ 0xa4, 0x75, 0xe6, 0x88, 0xe7, 0xcd, 0x1b, 0x0b, 0x34, 0x7b, 0x5b, 0x13, 0x63, 0xb3, 0x23, 0x46,
+ 0x14, 0x12, 0x2d, 0xcd, 0xe6, 0xcd, 0x05, 0x84, 0x44, 0x16, 0x1d, 0x85, 0x44, 0x8c, 0xfc, 0xff,
+ 0x83, 0xb5, 0x13, 0x61, 0xc9, 0x49, 0x20, 0xec, 0x64, 0xa3, 0xbb, 0x45, 0xd2, 0xd6, 0xaf, 0x9e,
+ 0xfb, 0x69, 0xae, 0xdd, 0x25, 0x73, 0x56, 0x14, 0x7f, 0x0f, 0x4a, 0xae, 0x25, 0xc5, 0x79, 0xb3,
+ 0x49, 0x32, 0x8d, 0x17, 0x28, 0x85, 0x14, 0xe7, 0xbb, 0x4b, 0xa6, 0x62, 0xe1, 0xdf, 0x85, 0x55,
+ 0x69, 0x1d, 0xbb, 0xe2, 0xf0, 0x44, 0x13, 0x84, 0xcd, 0xcf, 0x91, 0x94, 0xd7, 0xae, 0x56, 0xe7,
+ 0x2c, 0xcf, 0xee, 0x92, 0x39, 0x2d, 0x06, 0x5b, 0x45, 0xa8, 0x66, 0x6b, 0x81, 0x56, 0x91, 0x3c,
+ 0x6c, 0x15, 0xb1, 0xf0, 0x3d, 0xa8, 0xd3, 0xc3, 0x96, 0xef, 0x4e, 0x46, 0x5e, 0xf3, 0xf3, 0x24,
+ 0xe1, 0xde, 0x8b, 0x25, 0x28, 0xfa, 0xdd, 0x25, 0x33, 0xcd, 0x8e, 0x93, 0x48, 0xa0, 0xe9, 0x3f,
+ 0x6f, 0xde, 0x5e, 0x60, 0x12, 0x7b, 0x9a, 0x18, 0x27, 0x31, 0x62, 0xc4, 0xa5, 0xf7, 0xdc, 0xb1,
+ 0x07, 0x42, 0x36, 0x7f, 0x69, 0x81, 0xa5, 0xf7, 0x94, 0x48, 0x71, 0xe9, 0x29, 0x26, 0x54, 0xe3,
+ 0xfe, 0xd0, 0x92, 0xcd, 0x3b, 0x0b, 0xa8, 0xf1, 0xd6, 0xd0, 0x22, 0x5b, 0x81, 0x0c, 0xad, 0x1f,
+ 0xc0, 0x72, 0xda, 0x2a, 0x73, 0x0e, 0xc5, 0x40, 0x58, 0x6a, 0x47, 0xa8, 0x9a, 0xf4, 0x8c, 0x38,
+ 0x61, 0x3b, 0x92, 0x76, 0x84, 0xaa, 0x49, 0xcf, 0xfc, 0x26, 0x94, 0x95, 0x6f, 0x42, 0x06, 0xbf,
+ 0x6a, 0x6a, 0x08, 0x69, 0xed, 0xc0, 0x1a, 0xd0, 0xbe, 0x55, 0x35, 0xe9, 0x19, 0x69, 0xed, 0xc0,
+ 0x1f, 0x1f, 0x7a, 0x64, 0xb0, 0xab, 0xa6, 0x86, 0x5a, 0x3f, 0x7c, 0x0f, 0x2a, 0xba, 0x51, 0xad,
+ 0x7f, 0x98, 0x83, 0xb2, 0x32, 0x28, 0xfc, 0x5b, 0x50, 0x0a, 0xe5, 0x85, 0x2b, 0xa8, 0x0d, 0x2b,
+ 0x0f, 0xbf, 0xb2, 0x80, 0x11, 0x5a, 0xef, 0x22, 0x83, 0xa9, 0xf8, 0x0c, 0x13, 0x4a, 0x04, 0xf3,
+ 0x0a, 0x14, 0x4c, 0xff, 0x39, 0x5b, 0xe2, 0x00, 0x65, 0x35, 0x59, 0x2c, 0x87, 0xc8, 0x6d, 0xe7,
+ 0x8c, 0xe5, 0x11, 0xb9, 0x2b, 0x2c, 0x5b, 0x04, 0xac, 0xc0, 0x1b, 0x50, 0x8b, 0xa6, 0x25, 0x64,
+ 0x45, 0xce, 0x60, 0x39, 0x35, 0xe1, 0x21, 0x2b, 0xb5, 0xfe, 0x47, 0x11, 0x8a, 0xb8, 0xfe, 0xf9,
+ 0x2b, 0xd0, 0x90, 0x56, 0x30, 0x10, 0xca, 0x11, 0x8e, 0x9d, 0x94, 0x2c, 0x92, 0xbf, 0x1f, 0xf5,
+ 0x21, 0x4f, 0x7d, 0xf8, 0xf2, 0x0b, 0xed, 0x4a, 0xa6, 0x07, 0xa9, 0x5d, 0xb8, 0xb0, 0xd8, 0x2e,
+ 0xbc, 0x03, 0x55, 0x34, 0x67, 0x5d, 0xe7, 0x07, 0x82, 0x86, 0x7e, 0xe5, 0xe1, 0xfd, 0x17, 0x7f,
+ 0xb2, 0xa3, 0x39, 0xcc, 0x98, 0x97, 0x77, 0xa0, 0xd6, 0xb7, 0x02, 0x9b, 0x1a, 0x43, 0xb3, 0xb5,
+ 0xf2, 0xf0, 0xab, 0x2f, 0x16, 0xb4, 0x15, 0xb1, 0x98, 0x09, 0x37, 0x3f, 0x84, 0xba, 0x2d, 0xc2,
+ 0x7e, 0xe0, 0x8c, 0xc9, 0xbc, 0xa9, 0xbd, 0xf8, 0x6b, 0x2f, 0x16, 0xb6, 0x9d, 0x30, 0x99, 0x69,
+ 0x09, 0xe8, 0x91, 0x05, 0xb1, 0x7d, 0xab, 0x90, 0x83, 0x90, 0x20, 0x8c, 0x77, 0xa0, 0x1a, 0xf5,
+ 0x87, 0x2f, 0x43, 0x15, 0xff, 0x1e, 0xf8, 0x9e, 0x60, 0x4b, 0x38, 0xb7, 0x08, 0x75, 0x47, 0x96,
+ 0xeb, 0xb2, 0x1c, 0x5f, 0x01, 0x40, 0x70, 0x5f, 0xd8, 0xce, 0x64, 0xc4, 0xf2, 0xc6, 0xaf, 0x44,
+ 0xda, 0x52, 0x85, 0xe2, 0x91, 0x35, 0x40, 0x8e, 0x65, 0xa8, 0x46, 0xe6, 0x9a, 0xe5, 0x90, 0x7f,
+ 0xdb, 0x0a, 0x87, 0xc7, 0xbe, 0x15, 0xd8, 0x2c, 0xcf, 0xeb, 0x50, 0xd9, 0x08, 0xfa, 0x43, 0xe7,
+ 0x4c, 0xb0, 0x82, 0xf1, 0x00, 0xea, 0xa9, 0xf6, 0xa2, 0x08, 0xfd, 0xd1, 0x1a, 0x94, 0x36, 0x6c,
+ 0x5b, 0xd8, 0x2c, 0x87, 0x0c, 0xba, 0x83, 0x2c, 0x6f, 0x7c, 0x15, 0x6a, 0xf1, 0x68, 0x21, 0x39,
+ 0x6e, 0xdc, 0x6c, 0x09, 0x9f, 0x10, 0xcd, 0x72, 0xa8, 0x95, 0x1d, 0xcf, 0x75, 0x3c, 0xc1, 0xf2,
+ 0xad, 0xff, 0x9f, 0x54, 0x95, 0x7f, 0x33, 0xbb, 0x20, 0x5e, 0x7d, 0xd1, 0xce, 0x9a, 0x5d, 0x0d,
+ 0x9f, 0x4f, 0xf5, 0x6f, 0xcf, 0xa1, 0xc6, 0x55, 0xa1, 0xb8, 0xed, 0xcb, 0x90, 0xe5, 0x5a, 0xff,
+ 0x35, 0x0f, 0xd5, 0x68, 0x43, 0xc5, 0x98, 0x60, 0x12, 0xb8, 0x5a, 0xa1, 0xf1, 0x91, 0x5f, 0x87,
+ 0x92, 0x74, 0xa4, 0x56, 0xe3, 0x9a, 0xa9, 0x00, 0xf4, 0xd5, 0xd2, 0x33, 0xab, 0x1c, 0xd8, 0xe9,
+ 0xa9, 0x72, 0x46, 0xd6, 0x40, 0xec, 0x5a, 0xe1, 0x50, 0xbb, 0xb0, 0x09, 0x02, 0xf9, 0x4f, 0xac,
+ 0x33, 0xd4, 0x39, 0x7a, 0xaf, 0xbc, 0xb8, 0x34, 0x8a, 0xbf, 0x09, 0x45, 0xec, 0xa0, 0x56, 0x9a,
+ 0x5f, 0x9e, 0xea, 0x30, 0xaa, 0xc9, 0x51, 0x20, 0x70, 0x7a, 0xd6, 0x31, 0x02, 0x33, 0x89, 0x98,
+ 0xbf, 0x0a, 0x2b, 0x6a, 0x11, 0x1e, 0x46, 0xf1, 0x43, 0x85, 0x24, 0x4f, 0x61, 0xf9, 0x06, 0x0e,
+ 0xa7, 0x25, 0x45, 0xb3, 0xba, 0x80, 0x7e, 0x47, 0x83, 0xb3, 0xde, 0x45, 0x16, 0x53, 0x71, 0x1a,
+ 0x6f, 0xe3, 0x98, 0x5a, 0x52, 0xe0, 0x34, 0xb7, 0x47, 0x63, 0x79, 0xa1, 0x94, 0x66, 0x47, 0xc8,
+ 0xfe, 0xd0, 0xf1, 0x06, 0x2c, 0xa7, 0x86, 0x18, 0x27, 0x91, 0x48, 0x82, 0xc0, 0x0f, 0x58, 0xa1,
+ 0xd5, 0x82, 0x22, 0xea, 0x28, 0x1a, 0x49, 0xcf, 0x1a, 0x09, 0x3d, 0xd2, 0xf4, 0xdc, 0xba, 0x06,
+ 0x6b, 0x33, 0xfb, 0x71, 0xeb, 0x0f, 0xca, 0x4a, 0x43, 0x90, 0x83, 0x7c, 0x41, 0xcd, 0x41, 0x6e,
+ 0xde, 0x4b, 0xd9, 0x18, 0x94, 0x92, 0xb5, 0x31, 0xef, 0x43, 0x09, 0x3b, 0x16, 0x99, 0x98, 0x05,
+ 0xd8, 0xf7, 0x91, 0xdc, 0x54, 0x5c, 0x18, 0xc1, 0xf4, 0x87, 0xa2, 0x7f, 0x2a, 0x6c, 0x6d, 0xeb,
+ 0x23, 0x10, 0x95, 0xa6, 0x9f, 0x72, 0xcf, 0x15, 0x40, 0x2a, 0xd1, 0xf7, 0xbd, 0xf6, 0xc8, 0xff,
+ 0xc4, 0xa1, 0x79, 0x45, 0x95, 0x88, 0x10, 0xd1, 0xdb, 0x0e, 0xea, 0x88, 0x9e, 0xb6, 0x04, 0xd1,
+ 0x6a, 0x43, 0x89, 0xbe, 0x8d, 0x2b, 0x41, 0xb5, 0x59, 0x65, 0x1a, 0x5e, 0x5d, 0xac, 0xcd, 0xba,
+ 0xc9, 0xad, 0x9f, 0xe4, 0xa1, 0x88, 0x30, 0xbf, 0x0f, 0xa5, 0x00, 0xe3, 0x30, 0x1a, 0xce, 0xcb,
+ 0x62, 0x36, 0x45, 0xc2, 0xbf, 0xa5, 0x55, 0x31, 0xbf, 0x80, 0xb2, 0xc4, 0x5f, 0x4c, 0xab, 0xe5,
+ 0x75, 0x28, 0x8d, 0xad, 0xc0, 0x1a, 0xe9, 0x75, 0xa2, 0x00, 0xe3, 0xc7, 0x39, 0x28, 0x22, 0x11,
+ 0x5f, 0x83, 0x46, 0x57, 0x06, 0xce, 0xa9, 0x90, 0xc3, 0xc0, 0x9f, 0x0c, 0x86, 0x4a, 0x93, 0x3e,
+ 0x12, 0x17, 0xca, 0xde, 0x28, 0x83, 0x20, 0x2d, 0xd7, 0xe9, 0xb3, 0x3c, 0x6a, 0xd5, 0xa6, 0xef,
+ 0xda, 0xac, 0xc0, 0x57, 0xa1, 0xfe, 0xd8, 0xb3, 0x45, 0x10, 0xf6, 0xfd, 0x40, 0xd8, 0xac, 0xa8,
+ 0x57, 0xf7, 0x29, 0x2b, 0xd1, 0x5e, 0x26, 0xce, 0x25, 0xc5, 0x42, 0xac, 0xcc, 0xaf, 0xc1, 0xea,
+ 0x66, 0x36, 0x40, 0x62, 0x15, 0xb4, 0x49, 0xfb, 0xc2, 0x43, 0x25, 0x63, 0x55, 0xa5, 0xc4, 0xfe,
+ 0x27, 0x0e, 0xab, 0xe1, 0xc7, 0xd4, 0x3a, 0x61, 0x60, 0xfc, 0x8b, 0x5c, 0x64, 0x39, 0x1a, 0x50,
+ 0x3b, 0xb2, 0x02, 0x6b, 0x10, 0x58, 0x63, 0x6c, 0x5f, 0x1d, 0x2a, 0x6a, 0xe3, 0x7c, 0x43, 0x59,
+ 0x37, 0x05, 0x3c, 0x54, 0xb6, 0x51, 0x01, 0x6f, 0xb2, 0x42, 0x02, 0xbc, 0xc5, 0x8a, 0xf8, 0x8d,
+ 0xef, 0x4c, 0x7c, 0x29, 0x58, 0x89, 0x6c, 0x9d, 0x6f, 0x0b, 0x56, 0x46, 0x64, 0x0f, 0x2d, 0x0a,
+ 0xab, 0x60, 0x9f, 0xb7, 0x50, 0x7f, 0x8e, 0xfd, 0x73, 0x56, 0xc5, 0x66, 0xe0, 0x30, 0x0a, 0x9b,
+ 0xd5, 0xf0, 0xcd, 0xc1, 0x64, 0x74, 0x2c, 0xb0, 0x9b, 0x80, 0x6f, 0x7a, 0xfe, 0x60, 0xe0, 0x0a,
+ 0x56, 0xc7, 0x31, 0x48, 0x19, 0x5f, 0xb6, 0x4c, 0x96, 0xd6, 0x72, 0x5d, 0x7f, 0x22, 0x59, 0xa3,
+ 0xf5, 0xa7, 0x05, 0x28, 0x62, 0x74, 0x83, 0x6b, 0x67, 0x88, 0x76, 0x46, 0xaf, 0x1d, 0x7c, 0x8e,
+ 0x57, 0x60, 0x3e, 0x59, 0x81, 0xfc, 0x3d, 0x3d, 0xd3, 0x85, 0x05, 0xac, 0x2c, 0x0a, 0x4e, 0x4f,
+ 0x32, 0x87, 0xe2, 0xc8, 0x19, 0x09, 0x6d, 0xeb, 0xe8, 0x19, 0x71, 0x21, 0xee, 0xc7, 0x25, 0x4a,
+ 0x9e, 0xd0, 0x33, 0xae, 0x1a, 0x0b, 0xb7, 0x85, 0x0d, 0x49, 0x6b, 0xa0, 0x60, 0x46, 0xe0, 0x1c,
+ 0xeb, 0x55, 0x9b, 0x6b, 0xbd, 0xde, 0x8f, 0xac, 0x57, 0x65, 0x81, 0x55, 0x4f, 0xcd, 0x4c, 0x5b,
+ 0xae, 0xc4, 0x68, 0x54, 0x17, 0x67, 0x4f, 0x6d, 0x26, 0xdb, 0x5a, 0x6b, 0x93, 0x8d, 0xae, 0xaa,
+ 0x46, 0x99, 0xe5, 0x70, 0x36, 0x69, 0xb9, 0x2a, 0x9b, 0xf7, 0xc4, 0xb1, 0x85, 0xcf, 0x0a, 0xb4,
+ 0x11, 0x4e, 0x6c, 0xc7, 0x67, 0x45, 0xf4, 0xbc, 0x8e, 0xb6, 0x77, 0x58, 0xc9, 0x78, 0x35, 0xb5,
+ 0x25, 0x6d, 0x4c, 0xa4, 0xaf, 0xc4, 0x90, 0xfa, 0xe6, 0x94, 0x36, 0x1e, 0x0b, 0x9b, 0xe5, 0x8d,
+ 0xaf, 0xcf, 0x31, 0xb3, 0x0d, 0xa8, 0x3d, 0x1e, 0xbb, 0xbe, 0x65, 0x5f, 0x61, 0x67, 0x97, 0x01,
+ 0x92, 0xa8, 0xba, 0xf5, 0xc7, 0xbf, 0x9c, 0x6c, 0xe7, 0xe8, 0x8b, 0x86, 0xfe, 0x24, 0xe8, 0x0b,
+ 0x32, 0x21, 0x35, 0x53, 0x43, 0xfc, 0xdb, 0x50, 0xc2, 0xf7, 0x51, 0x1a, 0xe7, 0xfe, 0x42, 0xb1,
+ 0xdc, 0xfa, 0x13, 0x47, 0x3c, 0x37, 0x15, 0x23, 0xbf, 0x03, 0x60, 0xf5, 0xa5, 0x73, 0x26, 0x10,
+ 0xa9, 0x17, 0x7b, 0x0a, 0xc3, 0xdf, 0x4e, 0xbb, 0x2f, 0x57, 0xe7, 0x21, 0x53, 0x7e, 0x0d, 0x37,
+ 0xa1, 0x8e, 0x4b, 0x77, 0x7c, 0x18, 0xe0, 0x6a, 0x6f, 0x2e, 0x13, 0xe3, 0xeb, 0x8b, 0x35, 0xef,
+ 0x51, 0xcc, 0x68, 0xa6, 0x85, 0xf0, 0xc7, 0xb0, 0xac, 0x72, 0x6a, 0x5a, 0x68, 0x83, 0x84, 0xbe,
+ 0xb1, 0x98, 0xd0, 0xc3, 0x84, 0xd3, 0xcc, 0x88, 0x99, 0x4d, 0x4b, 0x96, 0x5e, 0x3a, 0x2d, 0xf9,
+ 0x2a, 0xac, 0xf4, 0xb2, 0xab, 0x40, 0x6d, 0x15, 0x53, 0x58, 0x6e, 0xc0, 0xb2, 0x13, 0x26, 0x59,
+ 0x51, 0xca, 0x91, 0x54, 0xcd, 0x0c, 0xae, 0xf5, 0xef, 0xca, 0x50, 0xa4, 0x91, 0x9f, 0xce, 0x71,
+ 0x6d, 0x65, 0x4c, 0xfa, 0x83, 0xc5, 0xa7, 0x7a, 0x6a, 0xc5, 0x93, 0x05, 0x29, 0xa4, 0x2c, 0xc8,
+ 0xb7, 0xa1, 0x14, 0xfa, 0x81, 0x8c, 0xa6, 0x77, 0x41, 0x25, 0xea, 0xfa, 0x81, 0x34, 0x15, 0x23,
+ 0xdf, 0x81, 0xca, 0x89, 0xe3, 0x4a, 0x9c, 0x14, 0x35, 0x78, 0xaf, 0x2d, 0x26, 0x63, 0x87, 0x98,
+ 0xcc, 0x88, 0x99, 0xef, 0xa5, 0x95, 0xad, 0x4c, 0x92, 0xd6, 0x17, 0x93, 0x34, 0x4f, 0x07, 0xef,
+ 0x03, 0xeb, 0xfb, 0x67, 0x22, 0x30, 0x53, 0x89, 0x49, 0xb5, 0x49, 0xcf, 0xe0, 0x79, 0x0b, 0xaa,
+ 0x43, 0xc7, 0x16, 0xe8, 0xe7, 0x90, 0x8d, 0xa9, 0x9a, 0x31, 0xcc, 0x3f, 0x82, 0x2a, 0xc5, 0x07,
+ 0x68, 0x15, 0x6b, 0x2f, 0x3d, 0xf8, 0x2a, 0x54, 0x89, 0x04, 0xe0, 0x87, 0xe8, 0xe3, 0x3b, 0x8e,
+ 0xa4, 0xfc, 0x74, 0xd5, 0x8c, 0x61, 0x6c, 0x30, 0xe9, 0x7b, 0xba, 0xc1, 0x75, 0xd5, 0xe0, 0x69,
+ 0x3c, 0x7f, 0x0b, 0x6e, 0x10, 0x6e, 0x6a, 0x93, 0xc4, 0xa5, 0x86, 0x42, 0xe7, 0xbf, 0x44, 0x87,
+ 0x65, 0x6c, 0x0d, 0xc4, 0x9e, 0x33, 0x72, 0x64, 0xb3, 0x71, 0x37, 0x77, 0xaf, 0x64, 0x26, 0x08,
+ 0xfe, 0x1a, 0xac, 0xd9, 0xe2, 0xc4, 0x9a, 0xb8, 0xb2, 0x27, 0x46, 0x63, 0xd7, 0x92, 0xa2, 0x63,
+ 0x93, 0x8e, 0xd6, 0xcc, 0xd9, 0x17, 0xfc, 0x75, 0xb8, 0xa6, 0x91, 0x87, 0xf1, 0xa9, 0x42, 0xc7,
+ 0xa6, 0xf4, 0x5d, 0xcd, 0x9c, 0xf7, 0xca, 0xd8, 0xd7, 0x66, 0x18, 0x37, 0x50, 0x8c, 0x53, 0x23,
+ 0x03, 0x1a, 0x4a, 0xb5, 0x23, 0x3f, 0xb2, 0x5c, 0x57, 0x04, 0x17, 0x2a, 0xc8, 0xfd, 0xc8, 0xf2,
+ 0x8e, 0x2d, 0x8f, 0x15, 0x68, 0x8f, 0xb5, 0x5c, 0xe1, 0xd9, 0x56, 0xa0, 0x76, 0xe4, 0x47, 0xb4,
+ 0xa1, 0x97, 0x8c, 0x7b, 0x50, 0xa4, 0x21, 0xad, 0x41, 0x49, 0x45, 0x49, 0x14, 0x31, 0xeb, 0x08,
+ 0x89, 0x2c, 0xf2, 0x1e, 0x2e, 0x3f, 0x96, 0x6f, 0xfd, 0xac, 0x00, 0xd5, 0x68, 0xf0, 0xa2, 0x33,
+ 0x84, 0x5c, 0x72, 0x86, 0x80, 0x6e, 0x5c, 0xf8, 0xc4, 0x09, 0x9d, 0x63, 0xed, 0x96, 0x56, 0xcd,
+ 0x04, 0x81, 0x9e, 0xd0, 0x73, 0xc7, 0x96, 0x43, 0x5a, 0x33, 0x25, 0x53, 0x01, 0xfc, 0x1e, 0xac,
+ 0xda, 0x38, 0x0e, 0x5e, 0xdf, 0x9d, 0xd8, 0xa2, 0x87, 0xbb, 0xa8, 0x4a, 0x13, 0x4c, 0xa3, 0xf9,
+ 0xf7, 0x00, 0xa4, 0x33, 0x12, 0x3b, 0x7e, 0x30, 0xb2, 0xa4, 0x8e, 0x0d, 0xbe, 0xf1, 0x72, 0x5a,
+ 0xbd, 0xde, 0x8b, 0x05, 0x98, 0x29, 0x61, 0x28, 0x1a, 0xbf, 0xa6, 0x45, 0x57, 0x3e, 0x93, 0xe8,
+ 0xed, 0x58, 0x80, 0x99, 0x12, 0x66, 0xfc, 0x2a, 0x40, 0xf2, 0x86, 0xdf, 0x04, 0xbe, 0xef, 0x7b,
+ 0x72, 0xb8, 0x71, 0x7c, 0x1c, 0x6c, 0x8a, 0x13, 0x3f, 0x10, 0xdb, 0x16, 0x6e, 0x6b, 0x37, 0x60,
+ 0x2d, 0xc6, 0x6f, 0x9c, 0x48, 0x11, 0x20, 0x9a, 0x86, 0xbe, 0x3b, 0xf4, 0x03, 0xa9, 0x7c, 0x2b,
+ 0x7a, 0x7c, 0xdc, 0x65, 0x05, 0xdc, 0x4a, 0x3b, 0xdd, 0x43, 0x56, 0x34, 0xee, 0x01, 0x24, 0x5d,
+ 0xa2, 0x18, 0x84, 0x9e, 0xde, 0x78, 0xa8, 0x23, 0x12, 0x82, 0x1e, 0xbe, 0xc5, 0x72, 0xad, 0x3f,
+ 0x2a, 0x40, 0x11, 0x4d, 0x0d, 0x86, 0x5f, 0xe9, 0x75, 0xa1, 0xa6, 0x2f, 0x8d, 0xfa, 0x6c, 0x06,
+ 0x12, 0x65, 0xa7, 0x0d, 0xe4, 0xbb, 0x50, 0xef, 0x4f, 0x42, 0xe9, 0x8f, 0x68, 0x77, 0xd0, 0x07,
+ 0x30, 0x37, 0x67, 0x12, 0x19, 0x4f, 0x2c, 0x77, 0x22, 0xcc, 0x34, 0x29, 0x7f, 0x1b, 0xca, 0x27,
+ 0x6a, 0x22, 0x54, 0x2a, 0xe3, 0x97, 0x2e, 0xd9, 0x40, 0xf4, 0x60, 0x6b, 0x62, 0xec, 0x97, 0x33,
+ 0xa3, 0x44, 0x69, 0x94, 0xde, 0x08, 0xca, 0xf1, 0x46, 0xf0, 0xab, 0xb0, 0x22, 0xd0, 0xad, 0x38,
+ 0x72, 0xad, 0xbe, 0x18, 0x09, 0x2f, 0x9a, 0xf9, 0xb7, 0x5e, 0xa2, 0xc7, 0xe4, 0x97, 0x50, 0xb7,
+ 0xa7, 0x64, 0x19, 0x5f, 0xd2, 0x8b, 0xb4, 0x02, 0x85, 0x8d, 0xb0, 0xaf, 0xc3, 0x6e, 0x11, 0xf6,
+ 0x95, 0x4f, 0xbf, 0x45, 0x1d, 0x66, 0x79, 0xe3, 0x0d, 0xa8, 0xc5, 0x32, 0x38, 0x83, 0xe5, 0x03,
+ 0x5f, 0x76, 0xc7, 0xa2, 0xef, 0x9c, 0x38, 0xc2, 0x56, 0x89, 0x84, 0xae, 0xb4, 0x02, 0xa9, 0x32,
+ 0x57, 0x6d, 0xcf, 0x66, 0xf9, 0xd6, 0xef, 0x57, 0xa1, 0xac, 0x2c, 0xbe, 0xee, 0x52, 0x2d, 0xee,
+ 0xd2, 0x77, 0xa0, 0xea, 0x8f, 0x45, 0x60, 0x49, 0x3f, 0xd0, 0xe9, 0x82, 0xb7, 0x5f, 0x66, 0x07,
+ 0x59, 0x3f, 0xd4, 0xcc, 0x66, 0x2c, 0x66, 0x5a, 0x5f, 0xf2, 0xb3, 0xfa, 0x72, 0x1f, 0x58, 0xb4,
+ 0x59, 0x1c, 0x05, 0xc8, 0x27, 0x2f, 0x74, 0xf0, 0x37, 0x83, 0xe7, 0x3d, 0xa8, 0xf5, 0x7d, 0xcf,
+ 0x76, 0xe2, 0xd4, 0xc1, 0xca, 0xc3, 0xaf, 0xbf, 0x54, 0x0b, 0xb7, 0x22, 0x6e, 0x33, 0x11, 0xc4,
+ 0x5f, 0x83, 0xd2, 0x19, 0x2a, 0x12, 0x69, 0xcc, 0xe5, 0x6a, 0xa6, 0x88, 0xf8, 0xc7, 0x50, 0xff,
+ 0xfe, 0xc4, 0xe9, 0x9f, 0x1e, 0xa6, 0x53, 0x53, 0xef, 0xbe, 0x54, 0x2b, 0xbe, 0x93, 0xf0, 0x9b,
+ 0x69, 0x61, 0x29, 0xe5, 0xad, 0xfc, 0x19, 0x94, 0xb7, 0x3a, 0xab, 0xbc, 0x26, 0x34, 0x3c, 0x11,
+ 0x4a, 0x61, 0xef, 0x68, 0x07, 0x01, 0x3e, 0x83, 0x83, 0x90, 0x15, 0x61, 0x7c, 0x11, 0xaa, 0xd1,
+ 0x84, 0xf3, 0x32, 0xe4, 0x0f, 0xd0, 0x13, 0x2f, 0x43, 0xfe, 0x30, 0x50, 0xda, 0xb6, 0x81, 0xda,
+ 0x66, 0xfc, 0x49, 0x0e, 0x6a, 0xf1, 0xa0, 0x67, 0x53, 0x5c, 0xed, 0xef, 0x4f, 0x2c, 0x97, 0xe5,
+ 0x28, 0x46, 0xf3, 0xa5, 0x82, 0xc8, 0x52, 0x3d, 0xa2, 0x13, 0xe2, 0x80, 0x15, 0x68, 0x5f, 0x12,
+ 0x61, 0xc8, 0x8a, 0x9c, 0xc3, 0x8a, 0x46, 0x1f, 0x06, 0x8a, 0xb4, 0x84, 0x21, 0x1c, 0xbe, 0x8d,
+ 0x10, 0x65, 0xb5, 0x8d, 0x9d, 0x0a, 0x15, 0xa2, 0x1e, 0xf8, 0x92, 0x80, 0x2a, 0x36, 0xaa, 0xe3,
+ 0xb1, 0x1a, 0x7e, 0xf3, 0xc0, 0x97, 0x1d, 0x8f, 0x41, 0x12, 0x13, 0xd4, 0xa3, 0xcf, 0x13, 0xb4,
+ 0x4c, 0x11, 0x87, 0xeb, 0x76, 0x3c, 0xd6, 0xd0, 0x2f, 0x14, 0xb4, 0x82, 0x12, 0xdb, 0xe7, 0x56,
+ 0x1f, 0xd9, 0x57, 0xf9, 0x0a, 0x00, 0xf2, 0x68, 0x98, 0xe1, 0x92, 0x6c, 0x9f, 0x3b, 0xa1, 0x0c,
+ 0xd9, 0x9a, 0xf1, 0x6f, 0x73, 0x50, 0x4f, 0x4d, 0x30, 0xc6, 0x1c, 0x44, 0x88, 0x76, 0x5c, 0x85,
+ 0x20, 0xdf, 0xc3, 0x61, 0x0c, 0xec, 0xc8, 0x46, 0xf7, 0x7c, 0x7c, 0xcc, 0xe3, 0xf7, 0x7a, 0xfe,
+ 0xc8, 0x0f, 0x02, 0xff, 0xb9, 0xda, 0x6f, 0xf7, 0xac, 0x50, 0x3e, 0x15, 0xe2, 0x94, 0x15, 0xb1,
+ 0xab, 0x5b, 0x93, 0x20, 0x10, 0x9e, 0x42, 0x94, 0xa8, 0x71, 0xe2, 0x5c, 0x41, 0x65, 0x14, 0x8a,
+ 0xc4, 0xb4, 0x09, 0xb0, 0x0a, 0x1a, 0x02, 0x4d, 0xad, 0x30, 0x55, 0x24, 0x40, 0x72, 0x05, 0xd6,
+ 0x30, 0xac, 0x57, 0x61, 0xf1, 0xe1, 0xc9, 0xb6, 0x75, 0x11, 0x6e, 0x0c, 0x7c, 0x06, 0xd3, 0xc8,
+ 0x03, 0xff, 0x39, 0xab, 0xb7, 0x26, 0x00, 0x49, 0x20, 0x80, 0x01, 0x10, 0x2a, 0x44, 0x9c, 0xb8,
+ 0xd6, 0x10, 0x3f, 0x04, 0xc0, 0x27, 0xa2, 0x8c, 0xa2, 0xa0, 0x97, 0xf0, 0xce, 0x88, 0xcf, 0x4c,
+ 0x89, 0x68, 0xfd, 0x65, 0xa8, 0xc5, 0x2f, 0x30, 0xee, 0x25, 0x3f, 0x2a, 0xfe, 0x6c, 0x04, 0xa2,
+ 0x53, 0xe0, 0x78, 0xb6, 0x38, 0x27, 0xbb, 0x52, 0x32, 0x15, 0x80, 0xad, 0x1c, 0x3a, 0xb6, 0x2d,
+ 0xbc, 0xe8, 0x78, 0x41, 0x41, 0xf3, 0x0e, 0x81, 0x8b, 0x73, 0x0f, 0x81, 0x5b, 0xbf, 0x06, 0xf5,
+ 0x54, 0xa4, 0x72, 0x69, 0xb7, 0x53, 0x0d, 0xcb, 0x67, 0x1b, 0x76, 0x1b, 0x6a, 0x51, 0xe1, 0x41,
+ 0x48, 0xbb, 0x57, 0xcd, 0x4c, 0x10, 0xad, 0x7f, 0x9e, 0x47, 0xf7, 0x09, 0xbb, 0x36, 0x1d, 0x5d,
+ 0xec, 0x40, 0x19, 0x43, 0xed, 0x49, 0x74, 0x82, 0xbe, 0xe0, 0x02, 0xed, 0x12, 0xcf, 0xee, 0x92,
+ 0xa9, 0xb9, 0xf9, 0xfb, 0x50, 0x90, 0xd6, 0x40, 0x67, 0xe7, 0xbe, 0xb2, 0x98, 0x90, 0x9e, 0x35,
+ 0xd8, 0x5d, 0x32, 0x91, 0x8f, 0xef, 0x41, 0xb5, 0xaf, 0x13, 0x2a, 0xda, 0x28, 0x2e, 0x18, 0x00,
+ 0x44, 0x69, 0x98, 0xdd, 0x25, 0x33, 0x96, 0xc0, 0xbf, 0x0d, 0x45, 0x74, 0x69, 0x74, 0xa1, 0xc1,
+ 0x82, 0x81, 0x0d, 0x2e, 0x97, 0xdd, 0x25, 0x93, 0x38, 0x37, 0x2b, 0x50, 0x22, 0x1b, 0xdc, 0x6a,
+ 0x42, 0x59, 0xf5, 0x75, 0x7a, 0xe4, 0x5a, 0xb7, 0xa0, 0xd0, 0xb3, 0x06, 0xe8, 0x56, 0x3a, 0x76,
+ 0xa8, 0xe3, 0x73, 0x7c, 0x6c, 0xbd, 0x92, 0x24, 0x87, 0xd2, 0x79, 0xc7, 0x5c, 0x26, 0xef, 0xd8,
+ 0x2a, 0x43, 0x11, 0xbf, 0xd8, 0xba, 0x7d, 0x95, 0x8b, 0xda, 0xfa, 0x9f, 0x79, 0xf4, 0x66, 0xa5,
+ 0x38, 0x9f, 0x9b, 0x53, 0xfd, 0x10, 0x6a, 0xe3, 0xc0, 0xef, 0x8b, 0x30, 0xf4, 0x03, 0xed, 0xfe,
+ 0xbc, 0xf6, 0xe2, 0xf3, 0xce, 0xf5, 0xa3, 0x88, 0xc7, 0x4c, 0xd8, 0x8d, 0xbf, 0x95, 0x87, 0x5a,
+ 0xfc, 0x42, 0x39, 0xd1, 0x52, 0x9c, 0xab, 0xfc, 0xd9, 0xbe, 0x08, 0x46, 0x96, 0x63, 0x2b, 0xeb,
+ 0xb1, 0x35, 0xb4, 0x22, 0x0f, 0xef, 0x7b, 0xfe, 0x44, 0x4e, 0x8e, 0x85, 0xca, 0x9b, 0x3c, 0x71,
+ 0x46, 0xc2, 0x67, 0x45, 0x3a, 0xb1, 0x40, 0xc5, 0xee, 0xbb, 0xfe, 0xc4, 0x66, 0x25, 0x84, 0x1f,
+ 0xd1, 0xf6, 0xb6, 0x6f, 0x8d, 0x43, 0x65, 0x33, 0xf7, 0x9d, 0xc0, 0x67, 0x15, 0x64, 0xda, 0x71,
+ 0x06, 0x23, 0x8b, 0x55, 0x51, 0x58, 0xef, 0xb9, 0x23, 0xd1, 0x08, 0xd7, 0xf8, 0x1a, 0x34, 0x0e,
+ 0xc7, 0xc2, 0xeb, 0xca, 0x40, 0x08, 0xb9, 0x6f, 0x8d, 0x55, 0x22, 0xcd, 0x14, 0xb6, 0xed, 0x48,
+ 0x65, 0x3f, 0x77, 0xac, 0xbe, 0x38, 0xf6, 0xfd, 0x53, 0xb6, 0x8c, 0x86, 0xa6, 0xe3, 0x85, 0xd2,
+ 0x1a, 0x04, 0xd6, 0x48, 0xd9, 0xd0, 0x9e, 0x70, 0x05, 0x41, 0x2b, 0xf4, 0x6d, 0x47, 0x0e, 0x27,
+ 0xc7, 0x8f, 0x30, 0xd8, 0x58, 0x55, 0x87, 0x1b, 0xb6, 0x18, 0x0b, 0xb4, 0xa1, 0xcb, 0x50, 0xdd,
+ 0x74, 0x5c, 0xe7, 0xd8, 0x71, 0x1d, 0xb6, 0x86, 0xa4, 0xed, 0xf3, 0xbe, 0xe5, 0x3a, 0x76, 0x60,
+ 0x3d, 0x67, 0xbc, 0xb5, 0x06, 0xab, 0x53, 0xe7, 0xba, 0xad, 0x8a, 0x8e, 0x5f, 0x5a, 0x0d, 0xa8,
+ 0xa7, 0x0e, 0xdc, 0x5a, 0xaf, 0x42, 0x35, 0x3a, 0x8e, 0xc3, 0x38, 0xcf, 0x09, 0x55, 0x22, 0x51,
+ 0xcf, 0x78, 0x0c, 0xb7, 0xfe, 0x30, 0x07, 0x65, 0x75, 0x16, 0xca, 0x37, 0xe3, 0xda, 0x85, 0xdc,
+ 0x02, 0xe7, 0x5f, 0x8a, 0x49, 0x9f, 0x1e, 0xc6, 0x05, 0x0c, 0xd7, 0xa1, 0xe4, 0x52, 0x40, 0xa7,
+ 0x6d, 0x11, 0x01, 0x29, 0xd3, 0x51, 0x48, 0x9b, 0x0e, 0x63, 0x23, 0x3e, 0xb1, 0x8c, 0x92, 0x57,
+ 0xe4, 0xe2, 0xf5, 0x02, 0x21, 0x54, 0x62, 0x8a, 0xe2, 0xb1, 0x3c, 0x19, 0x7e, 0x7f, 0x34, 0xb6,
+ 0xfa, 0x92, 0x10, 0xb4, 0x25, 0xa2, 0x65, 0x64, 0x45, 0x54, 0xd9, 0xad, 0xa1, 0x25, 0x8d, 0x13,
+ 0xa8, 0x1e, 0xf9, 0xe1, 0xf4, 0x06, 0x5b, 0x81, 0x42, 0xcf, 0x1f, 0x2b, 0x77, 0x71, 0xd3, 0x97,
+ 0xe4, 0x2e, 0xaa, 0xfd, 0xf4, 0x44, 0x2a, 0x0d, 0x31, 0x9d, 0xc1, 0x50, 0xaa, 0x58, 0xae, 0xe3,
+ 0x79, 0x22, 0x60, 0x25, 0x9c, 0x10, 0x53, 0x8c, 0xd1, 0x09, 0x65, 0x65, 0x9c, 0x02, 0xc2, 0xef,
+ 0x38, 0x41, 0x28, 0x59, 0xc5, 0xe8, 0xe0, 0xd6, 0xe8, 0x0c, 0x68, 0x47, 0xa3, 0x07, 0x12, 0xb5,
+ 0x84, 0x4d, 0x24, 0x70, 0x4b, 0x78, 0xa8, 0x30, 0x74, 0x48, 0xa6, 0xca, 0x5b, 0xe8, 0x03, 0x79,
+ 0xdc, 0x8e, 0x08, 0xfe, 0x70, 0x12, 0x4a, 0xe7, 0xe4, 0x82, 0x15, 0x8c, 0xa7, 0xd0, 0xc8, 0x14,
+ 0xc2, 0xf0, 0xeb, 0xc0, 0x32, 0x08, 0x6c, 0xfa, 0x12, 0xbf, 0x05, 0xd7, 0x32, 0xd8, 0x7d, 0xc7,
+ 0xb6, 0x29, 0x5b, 0x38, 0xfd, 0x22, 0xea, 0xe0, 0x66, 0x0d, 0x2a, 0x7d, 0x35, 0x4b, 0xc6, 0x11,
+ 0x34, 0x68, 0xda, 0xf6, 0x85, 0xb4, 0x0e, 0x3d, 0xf7, 0xe2, 0xcf, 0x5c, 0xad, 0x64, 0x7c, 0x15,
+ 0x4a, 0x94, 0xdd, 0xc7, 0xc5, 0x7f, 0x12, 0xf8, 0x23, 0x92, 0x55, 0x32, 0xe9, 0x19, 0xa5, 0x4b,
+ 0x5f, 0xcf, 0x7d, 0x5e, 0xfa, 0xc6, 0xa7, 0x55, 0xa8, 0x6c, 0xf4, 0xfb, 0xfe, 0xc4, 0x93, 0x33,
+ 0x5f, 0x7e, 0x1b, 0xca, 0x7d, 0xdf, 0x3b, 0x71, 0x06, 0xda, 0xb8, 0x4e, 0xbb, 0x79, 0x9a, 0x0f,
+ 0x15, 0xee, 0xc4, 0x19, 0x98, 0x9a, 0x18, 0xd9, 0xf4, 0xe6, 0x50, 0xba, 0x92, 0x4d, 0x59, 0xc8,
+ 0x78, 0x2f, 0x78, 0x00, 0x45, 0xc7, 0x3b, 0xf1, 0x75, 0x69, 0xe1, 0xe7, 0x2f, 0x61, 0xa2, 0xfa,
+ 0x3a, 0x22, 0x6c, 0xfd, 0xe7, 0x1c, 0x94, 0xd5, 0xa7, 0xf9, 0xab, 0xb0, 0x22, 0x3c, 0x5c, 0x4c,
+ 0x91, 0x5d, 0xd6, 0xab, 0x68, 0x0a, 0x8b, 0x1e, 0xa8, 0xc6, 0x88, 0xe3, 0xc9, 0x40, 0x47, 0xef,
+ 0x69, 0x14, 0x7f, 0x17, 0x6e, 0x29, 0xf0, 0x28, 0x10, 0x81, 0x70, 0x85, 0x15, 0x8a, 0xad, 0xa1,
+ 0xe5, 0x79, 0xc2, 0xd5, 0xbb, 0xf4, 0x65, 0xaf, 0xb9, 0x01, 0xcb, 0xea, 0x55, 0x77, 0x6c, 0xf5,
+ 0x45, 0xa8, 0x4f, 0x8c, 0x32, 0x38, 0xfe, 0x35, 0x28, 0x51, 0xe5, 0x65, 0xd3, 0xbe, 0x7a, 0x2a,
+ 0x15, 0x55, 0xcb, 0x8f, 0xb7, 0x91, 0x0d, 0x00, 0x35, 0x4c, 0x18, 0x41, 0xe9, 0xd5, 0xff, 0x85,
+ 0x2b, 0xc7, 0x95, 0xc2, 0xb5, 0x14, 0x13, 0xb6, 0xcf, 0x16, 0xae, 0xa0, 0x12, 0x39, 0xdc, 0xe6,
+ 0xf2, 0x94, 0x9b, 0xcf, 0xe0, 0x5a, 0xbf, 0x51, 0x84, 0x22, 0x8e, 0x30, 0x12, 0x0f, 0xfd, 0x91,
+ 0x88, 0x33, 0x94, 0xca, 0x6f, 0xc8, 0xe0, 0xd0, 0x4f, 0xb1, 0xd4, 0x21, 0x71, 0x4c, 0xa6, 0x8c,
+ 0xc7, 0x34, 0x1a, 0x29, 0xc7, 0x81, 0x7f, 0xe2, 0xb8, 0x09, 0xa5, 0xf6, 0x68, 0xa6, 0xd0, 0xfc,
+ 0xeb, 0x70, 0x73, 0x64, 0x05, 0xa7, 0x42, 0xd2, 0xea, 0x7e, 0xea, 0x07, 0xa7, 0x21, 0x8e, 0x5c,
+ 0xc7, 0xd6, 0xa9, 0xad, 0x4b, 0xde, 0xa2, 0x01, 0xb5, 0xc5, 0x99, 0x43, 0x94, 0x55, 0x55, 0x51,
+ 0x19, 0xc1, 0xa8, 0x1c, 0x96, 0x1a, 0x9a, 0xae, 0x96, 0xa5, 0x4f, 0x1d, 0xb2, 0x58, 0x74, 0x86,
+ 0x54, 0xa5, 0x49, 0xd8, 0xb1, 0x29, 0xdb, 0x56, 0x33, 0x13, 0x04, 0xaa, 0x0e, 0x7d, 0xec, 0x89,
+ 0x32, 0x93, 0x0d, 0x15, 0x21, 0xa6, 0x50, 0x48, 0x21, 0x45, 0x7f, 0x18, 0x7d, 0x44, 0xa5, 0xc2,
+ 0xd2, 0x28, 0x7e, 0x07, 0x60, 0x60, 0x49, 0xf1, 0xdc, 0xba, 0x78, 0x1c, 0xb8, 0x4d, 0xa1, 0xd2,
+ 0xe7, 0x09, 0x06, 0x63, 0x4c, 0xd7, 0xef, 0x5b, 0x6e, 0x57, 0xfa, 0x81, 0x35, 0x10, 0x47, 0x96,
+ 0x1c, 0x36, 0x07, 0x2a, 0xc6, 0x9c, 0xc6, 0x63, 0x8f, 0xa5, 0x33, 0x12, 0x1f, 0xfb, 0x9e, 0x68,
+ 0x0e, 0x55, 0x8f, 0x23, 0x18, 0x5b, 0x62, 0x79, 0x96, 0x7b, 0x21, 0x9d, 0x3e, 0xf6, 0xc5, 0x51,
+ 0x2d, 0x49, 0xa1, 0xb0, 0xaf, 0x9e, 0x90, 0xcf, 0xfd, 0xe0, 0xb4, 0x63, 0x37, 0x3f, 0x51, 0x7d,
+ 0x8d, 0x11, 0xc6, 0x21, 0x40, 0xa2, 0x44, 0x68, 0x99, 0x37, 0x28, 0xc5, 0xcf, 0x96, 0xd0, 0xf9,
+ 0x3e, 0x12, 0x9e, 0xed, 0x78, 0x83, 0x6d, 0xad, 0x37, 0x2c, 0x87, 0x48, 0x0a, 0xdf, 0x85, 0x1d,
+ 0x23, 0x69, 0xa3, 0x27, 0x48, 0xd8, 0xac, 0x60, 0xfc, 0xef, 0x1c, 0xd4, 0x53, 0x27, 0xda, 0x7f,
+ 0x8e, 0xa7, 0xf0, 0xb8, 0x73, 0x8e, 0xac, 0x81, 0xc0, 0x01, 0x55, 0x3a, 0x15, 0xc3, 0x38, 0xdc,
+ 0xfa, 0xc0, 0x1d, 0xdf, 0xaa, 0x60, 0x3d, 0x85, 0xf9, 0x4c, 0x27, 0xf0, 0xc6, 0x43, 0x9d, 0xf1,
+ 0xa8, 0x43, 0xe5, 0xb1, 0x77, 0xea, 0xf9, 0xcf, 0x3d, 0xb5, 0x25, 0x52, 0x59, 0x45, 0xe6, 0x80,
+ 0x28, 0xaa, 0x7c, 0x28, 0x18, 0xff, 0xa4, 0x38, 0x55, 0x81, 0xd4, 0x86, 0xb2, 0x72, 0xb3, 0xc9,
+ 0x03, 0x9c, 0x2d, 0x19, 0x49, 0x13, 0xeb, 0xc3, 0x88, 0x14, 0xca, 0xd4, 0xcc, 0xe8, 0xff, 0xc6,
+ 0xf5, 0x79, 0xf9, 0xb9, 0x87, 0x26, 0x19, 0x41, 0x91, 0x19, 0xcc, 0x94, 0xa8, 0xc6, 0x12, 0x5a,
+ 0x7f, 0x23, 0x07, 0xd7, 0xe7, 0x91, 0xa4, 0x0b, 0x79, 0x73, 0xd9, 0x42, 0xde, 0xee, 0x54, 0x61,
+ 0x6c, 0x9e, 0x7a, 0xf3, 0xe0, 0x25, 0x1b, 0x91, 0x2d, 0x93, 0x35, 0x7e, 0x92, 0x83, 0xb5, 0x99,
+ 0x3e, 0xa7, 0x5c, 0x06, 0x80, 0xb2, 0xd2, 0x2c, 0x55, 0xb7, 0x12, 0x57, 0x12, 0xa8, 0x4c, 0x30,
+ 0x6d, 0xa6, 0xa1, 0x3a, 0x9a, 0xd5, 0xa5, 0xc0, 0xca, 0xbd, 0xc4, 0x59, 0x43, 0x5b, 0x3d, 0x10,
+ 0xac, 0x84, 0x7b, 0xbd, 0xf2, 0x6b, 0x34, 0xa6, 0xac, 0x5c, 0x40, 0x95, 0xae, 0x66, 0x15, 0xaa,
+ 0x87, 0x99, 0x8c, 0x5d, 0xa7, 0x8f, 0x60, 0x95, 0xb7, 0xe0, 0xa6, 0xaa, 0x07, 0xd7, 0xe1, 0xd6,
+ 0x49, 0x6f, 0xe8, 0xd0, 0xe2, 0x60, 0x35, 0xc3, 0x84, 0x6b, 0x73, 0xfa, 0x44, 0xad, 0x7c, 0xa2,
+ 0x5b, 0xbc, 0x02, 0xb0, 0xfd, 0x24, 0x6a, 0x27, 0xcb, 0x71, 0x0e, 0x2b, 0xdb, 0x4f, 0xd2, 0x02,
+ 0xf5, 0x7a, 0x79, 0x82, 0x96, 0x24, 0x64, 0x05, 0xe3, 0x37, 0x73, 0xd1, 0x19, 0x75, 0xeb, 0x2f,
+ 0x41, 0x43, 0xb5, 0xf1, 0xc8, 0xba, 0x70, 0x7d, 0xcb, 0xe6, 0x6d, 0x58, 0x09, 0xe3, 0x4b, 0x0a,
+ 0xa9, 0xed, 0x60, 0x7a, 0x9b, 0xed, 0x66, 0x88, 0xcc, 0x29, 0xa6, 0x28, 0x6a, 0xc8, 0x27, 0x89,
+ 0x6d, 0x4e, 0xf1, 0x8f, 0x45, 0xab, 0x6c, 0x99, 0x22, 0x1a, 0xcb, 0xf8, 0x1a, 0xac, 0x91, 0xf1,
+ 0x52, 0x8d, 0x51, 0x1e, 0x29, 0xea, 0x83, 0xb2, 0xbb, 0xdb, 0x91, 0x3e, 0x68, 0xd0, 0xf8, 0x37,
+ 0x65, 0x80, 0x24, 0x89, 0x3f, 0x67, 0x99, 0xcf, 0x3b, 0x93, 0x9e, 0x39, 0x52, 0x2b, 0xbc, 0xf4,
+ 0x91, 0xda, 0xbb, 0xb1, 0x63, 0xac, 0xb2, 0xa9, 0xd3, 0x85, 0xb9, 0x49, 0x9b, 0xa6, 0xdd, 0xe1,
+ 0x4c, 0xc9, 0x46, 0x69, 0xba, 0x64, 0xe3, 0xee, 0x6c, 0x7d, 0xd7, 0x94, 0xfd, 0x49, 0x82, 0xf8,
+ 0x4a, 0x26, 0x88, 0x6f, 0x41, 0x35, 0x10, 0x96, 0xed, 0x7b, 0xee, 0x45, 0x74, 0x72, 0x13, 0xc1,
+ 0xfc, 0x4d, 0x28, 0x49, 0xba, 0x67, 0x51, 0xa5, 0xe5, 0xf2, 0x82, 0x89, 0x53, 0xb4, 0x68, 0xcc,
+ 0x9c, 0x50, 0x17, 0x65, 0xa9, 0x1d, 0xac, 0x6a, 0xa6, 0x30, 0x7c, 0x1d, 0xb8, 0x83, 0x11, 0x8d,
+ 0xeb, 0x0a, 0x7b, 0xf3, 0x62, 0x5b, 0x1d, 0xa8, 0xd0, 0xae, 0x59, 0x35, 0xe7, 0xbc, 0x89, 0xe6,
+ 0x7f, 0x39, 0x99, 0x7f, 0x6a, 0xf2, 0x99, 0x13, 0x62, 0x4f, 0x1b, 0xe4, 0x1c, 0xc4, 0x30, 0xee,
+ 0xcb, 0xd1, 0x1a, 0x55, 0x63, 0x49, 0xda, 0x9b, 0x9c, 0x4a, 0x5e, 0xf2, 0xd6, 0xf8, 0x83, 0x7c,
+ 0x1c, 0x40, 0xd4, 0xa0, 0x74, 0x6c, 0x85, 0x4e, 0x5f, 0x05, 0x87, 0x7a, 0xe3, 0x57, 0x41, 0x84,
+ 0xf4, 0x6d, 0x9f, 0xe5, 0x31, 0x16, 0x08, 0x05, 0x7a, 0xfd, 0x2b, 0x00, 0xc9, 0xdd, 0x13, 0x56,
+ 0xc4, 0xb5, 0x19, 0xcd, 0xb7, 0xaa, 0xad, 0x20, 0x56, 0xca, 0x27, 0xd9, 0x71, 0xd5, 0x1a, 0x45,
+ 0x86, 0x64, 0xfb, 0x59, 0x15, 0x69, 0x3c, 0x5f, 0x0a, 0x95, 0x4d, 0x23, 0xed, 0x64, 0x80, 0x62,
+ 0xa2, 0x62, 0x6a, 0x56, 0x47, 0xe7, 0x3c, 0x12, 0xaa, 0x52, 0x60, 0x21, 0x85, 0x2e, 0xcb, 0xb8,
+ 0x3a, 0xb3, 0x2f, 0x58, 0x03, 0x5b, 0x94, 0x5c, 0x69, 0x61, 0x2b, 0x28, 0xd5, 0xa2, 0x13, 0xff,
+ 0x55, 0x7c, 0x3c, 0xa3, 0x3a, 0x00, 0x86, 0x5f, 0xb5, 0xd1, 0x60, 0xac, 0x61, 0xcb, 0x62, 0xd7,
+ 0x80, 0x71, 0x8c, 0x3d, 0xc6, 0x16, 0x06, 0x02, 0xce, 0xd8, 0xf2, 0x24, 0xbb, 0x86, 0x5d, 0x1d,
+ 0xdb, 0x27, 0xec, 0x3a, 0xb2, 0xf4, 0x87, 0x96, 0x64, 0x37, 0x90, 0x06, 0x9f, 0xb6, 0x45, 0x80,
+ 0xf3, 0xc9, 0x6e, 0x1a, 0xbf, 0x93, 0x94, 0x8b, 0xbe, 0x1e, 0x7b, 0xe6, 0x8b, 0xe8, 0x36, 0xfa,
+ 0xee, 0xf3, 0x16, 0x5a, 0x1b, 0xd6, 0x02, 0xf1, 0xfd, 0x89, 0x93, 0x29, 0xa2, 0x2e, 0x5c, 0x7d,
+ 0x4a, 0x3f, 0xcb, 0x61, 0x9c, 0xc1, 0x5a, 0x04, 0x3c, 0x75, 0xe4, 0x90, 0x32, 0x1e, 0xfc, 0xcd,
+ 0x54, 0x95, 0x77, 0x6e, 0xee, 0xed, 0x98, 0x58, 0x64, 0x52, 0xd5, 0x1d, 0x67, 0xb4, 0xf3, 0x0b,
+ 0x64, 0xb4, 0x8d, 0xff, 0x55, 0x4e, 0x25, 0x3d, 0x54, 0xac, 0x62, 0xc7, 0xb1, 0xca, 0xec, 0x39,
+ 0x5d, 0x92, 0xa4, 0xce, 0xbf, 0x4c, 0x92, 0x7a, 0xde, 0x99, 0xf7, 0x7b, 0xe8, 0x3a, 0xd3, 0xb2,
+ 0x79, 0xb2, 0x40, 0x02, 0x3e, 0x43, 0xcb, 0x37, 0xe9, 0xd4, 0xcd, 0xea, 0xaa, 0x82, 0x8c, 0xd2,
+ 0xdc, 0x3b, 0x17, 0xe9, 0xe3, 0x35, 0x4d, 0x69, 0xa6, 0xb8, 0x52, 0x46, 0xa6, 0x3c, 0xcf, 0xc8,
+ 0x60, 0xd8, 0xa8, 0xcd, 0x4f, 0x0c, 0xab, 0xf3, 0x0a, 0xf5, 0x1c, 0x89, 0xa7, 0xd3, 0xd6, 0xaa,
+ 0x39, 0x83, 0x47, 0xe7, 0x6b, 0x34, 0x71, 0xa5, 0xa3, 0x53, 0xf2, 0x0a, 0x98, 0xbe, 0x14, 0x56,
+ 0x9b, 0xbd, 0x14, 0xf6, 0x01, 0x40, 0x28, 0x70, 0x51, 0x6c, 0x3b, 0x7d, 0xa9, 0xcb, 0x36, 0xee,
+ 0x5c, 0xd6, 0x37, 0x7d, 0x90, 0x90, 0xe2, 0xc0, 0xf6, 0x8f, 0xac, 0xf3, 0x2d, 0x74, 0xc2, 0xf5,
+ 0xf9, 0x72, 0x0c, 0x4f, 0x9b, 0xde, 0x95, 0x59, 0xd3, 0xfb, 0x26, 0x94, 0xc2, 0xbe, 0x3f, 0x16,
+ 0x74, 0xaf, 0xe1, 0xf2, 0xf9, 0x5d, 0xef, 0x22, 0x91, 0xa9, 0x68, 0x29, 0xb5, 0x86, 0xc6, 0xc9,
+ 0x0f, 0xe8, 0x46, 0x43, 0xcd, 0x8c, 0xc0, 0x8c, 0xf9, 0xbb, 0x99, 0x35, 0x7f, 0x2d, 0x1b, 0xca,
+ 0x3a, 0x4d, 0x3e, 0x1d, 0x23, 0x47, 0x09, 0xb6, 0x7c, 0x2a, 0xc1, 0x16, 0x17, 0x07, 0x16, 0xd2,
+ 0xc5, 0x81, 0x53, 0x97, 0x9e, 0x4a, 0x33, 0x97, 0x9e, 0x8c, 0x8f, 0xa1, 0x44, 0x6d, 0x45, 0xdf,
+ 0x41, 0x0d, 0xb3, 0x72, 0x2d, 0xb1, 0x53, 0x2c, 0xc7, 0xaf, 0x03, 0x0b, 0x05, 0xf9, 0x1e, 0xa2,
+ 0x6b, 0x8d, 0x04, 0xd9, 0xc6, 0x3c, 0x6f, 0xc2, 0x75, 0x45, 0x1b, 0x66, 0xdf, 0x90, 0x03, 0xe4,
+ 0x3a, 0xc7, 0x81, 0x15, 0x5c, 0xb0, 0xa2, 0xf1, 0x01, 0x9d, 0xd0, 0x46, 0x0a, 0x55, 0x8f, 0x2f,
+ 0x99, 0x29, 0x6b, 0x6c, 0x6b, 0xa3, 0x43, 0x07, 0xeb, 0x3a, 0x2c, 0x52, 0xe5, 0x46, 0x14, 0x77,
+ 0x50, 0x2a, 0x64, 0x39, 0xbd, 0x01, 0xff, 0xb9, 0xad, 0x37, 0x63, 0x33, 0xe5, 0xc1, 0x65, 0xeb,
+ 0x87, 0x72, 0x8b, 0xd6, 0x0f, 0x19, 0x1f, 0xc1, 0xaa, 0x99, 0x35, 0xe5, 0xfc, 0x5d, 0xa8, 0xf8,
+ 0xe3, 0xb4, 0x9c, 0x17, 0xe9, 0x65, 0x44, 0x6e, 0xfc, 0x34, 0x07, 0xcb, 0x1d, 0x4f, 0x8a, 0xc0,
+ 0xb3, 0xdc, 0x1d, 0xd7, 0x1a, 0xf0, 0x77, 0x22, 0x2b, 0x35, 0x3f, 0xec, 0x4e, 0xd3, 0x66, 0x0d,
+ 0x96, 0xab, 0xd3, 0xc1, 0xfc, 0x06, 0xac, 0x09, 0xdb, 0x91, 0x7e, 0xa0, 0xfc, 0xd6, 0xa8, 0xcc,
+ 0xeb, 0x3a, 0x30, 0x85, 0xee, 0xd2, 0x92, 0xe8, 0xa9, 0x69, 0x6e, 0xc2, 0xf5, 0x0c, 0x36, 0x72,
+ 0x4a, 0xf3, 0xfc, 0x36, 0x34, 0x93, 0x4d, 0x68, 0xdb, 0xf7, 0x64, 0xc7, 0xb3, 0xc5, 0x39, 0x79,
+ 0x40, 0xac, 0x60, 0xfc, 0x56, 0x25, 0xf2, 0xbd, 0x9e, 0xe8, 0x22, 0xb0, 0xc0, 0xf7, 0x93, 0x1b,
+ 0x86, 0x1a, 0x4a, 0xdd, 0x64, 0xcd, 0x2f, 0x70, 0x93, 0xf5, 0x83, 0xe4, 0x36, 0xa2, 0xda, 0x28,
+ 0x5e, 0x99, 0xbb, 0xfb, 0x50, 0xed, 0x8a, 0xf6, 0xb6, 0xbb, 0x22, 0x75, 0x35, 0xf1, 0x0d, 0x1d,
+ 0x62, 0x15, 0x17, 0x71, 0x51, 0xd5, 0x99, 0xfa, 0xdb, 0xd3, 0x25, 0xf0, 0x8b, 0xd5, 0x90, 0xcd,
+ 0x78, 0x91, 0xf0, 0xd2, 0x5e, 0xe4, 0xb7, 0xa6, 0xa2, 0x99, 0xea, 0xdc, 0x4c, 0xd4, 0x15, 0x17,
+ 0xfc, 0xbe, 0x05, 0x95, 0xa1, 0x13, 0x4a, 0x3f, 0x50, 0x97, 0x4e, 0x67, 0x2f, 0xc9, 0xa4, 0x46,
+ 0x6b, 0x57, 0x11, 0x52, 0xc1, 0x4f, 0xc4, 0xc5, 0xbf, 0x0b, 0x6b, 0x34, 0xf0, 0x47, 0x89, 0xb3,
+ 0x10, 0x36, 0xeb, 0x73, 0x0b, 0xad, 0x52, 0xa2, 0x36, 0xa7, 0x58, 0xcc, 0x59, 0x21, 0xad, 0x01,
+ 0x40, 0x32, 0x3f, 0x33, 0x56, 0xec, 0x33, 0x5c, 0x3a, 0xbd, 0x09, 0xe5, 0x70, 0x72, 0x9c, 0x9c,
+ 0x1b, 0x69, 0xa8, 0x75, 0x0e, 0xad, 0x19, 0xef, 0xe0, 0x48, 0x04, 0xaa, 0xb9, 0x57, 0xde, 0x7c,
+ 0xfd, 0x20, 0x3d, 0xf1, 0x4a, 0x39, 0xef, 0x5e, 0x32, 0x7b, 0xb1, 0xe4, 0x94, 0x06, 0xb4, 0xde,
+ 0x86, 0x7a, 0x6a, 0x50, 0xd1, 0x32, 0x4f, 0x3c, 0xdb, 0x8f, 0xb2, 0x9f, 0xf8, 0xac, 0x6e, 0xfe,
+ 0xd8, 0x51, 0xfe, 0x93, 0x9e, 0x5b, 0x26, 0xb0, 0xe9, 0x01, 0xbc, 0x22, 0xe2, 0x7d, 0x05, 0x1a,
+ 0x29, 0x4f, 0x2e, 0xce, 0x8c, 0x65, 0x91, 0xc6, 0x19, 0x7c, 0x3e, 0x25, 0xee, 0x48, 0x04, 0x23,
+ 0x27, 0xc4, 0x8d, 0x44, 0x45, 0x72, 0x94, 0xb4, 0xb0, 0x85, 0x27, 0x1d, 0x19, 0x59, 0xd0, 0x18,
+ 0xe6, 0xbf, 0x02, 0xa5, 0xb1, 0x08, 0x46, 0xa1, 0xb6, 0xa2, 0xd3, 0x1a, 0x34, 0x57, 0x6c, 0x68,
+ 0x2a, 0x1e, 0xe3, 0x1f, 0xe7, 0xa0, 0xba, 0x2f, 0xa4, 0x85, 0xbe, 0x03, 0xdf, 0x9f, 0xfa, 0xca,
+ 0xec, 0x59, 0x67, 0x44, 0xba, 0xae, 0x63, 0xcb, 0xf5, 0x8e, 0xa6, 0xd7, 0xf0, 0xee, 0x52, 0xd2,
+ 0xb0, 0xd6, 0x26, 0x54, 0x34, 0xba, 0xf5, 0x0e, 0xac, 0x4e, 0x51, 0xd2, 0xb8, 0x28, 0x97, 0xbe,
+ 0x7b, 0x31, 0x8a, 0x4a, 0x6e, 0x96, 0xcd, 0x2c, 0x72, 0xb3, 0x06, 0x95, 0xb1, 0x62, 0x30, 0xfe,
+ 0xd5, 0x0d, 0x2a, 0x03, 0x71, 0x4e, 0x30, 0xc6, 0x9e, 0xb7, 0xb3, 0xde, 0x01, 0xa0, 0xad, 0x59,
+ 0x15, 0x0b, 0xa8, 0x6c, 0x65, 0x0a, 0xc3, 0xdf, 0x8b, 0xd3, 0xcc, 0xc5, 0xb9, 0x4e, 0x55, 0x5a,
+ 0xf8, 0x74, 0xae, 0xb9, 0x09, 0x15, 0x27, 0xdc, 0xc3, 0xad, 0x4d, 0x97, 0xd0, 0x44, 0x20, 0xff,
+ 0x26, 0x94, 0x9d, 0xd1, 0xd8, 0x0f, 0xa4, 0xce, 0x43, 0x5f, 0x29, 0xb5, 0x43, 0x94, 0xbb, 0x4b,
+ 0xa6, 0xe6, 0x41, 0x6e, 0x71, 0x4e, 0xdc, 0xd5, 0x17, 0x73, 0xb7, 0xcf, 0x23, 0x6e, 0xc5, 0xc3,
+ 0xbf, 0x03, 0x8d, 0x81, 0x2a, 0x6a, 0x53, 0x82, 0xb5, 0x11, 0xf9, 0xca, 0x55, 0x42, 0x1e, 0xa5,
+ 0x19, 0x76, 0x97, 0xcc, 0xac, 0x04, 0x14, 0x89, 0x0e, 0xbc, 0x08, 0x65, 0xcf, 0xff, 0xd0, 0x77,
+ 0x3c, 0x8a, 0x45, 0x5f, 0x20, 0xd2, 0x4c, 0x33, 0xa0, 0xc8, 0x8c, 0x04, 0xfe, 0x75, 0xf4, 0x78,
+ 0x42, 0xa9, 0xef, 0xfd, 0xde, 0xbd, 0x4a, 0x52, 0x4f, 0x84, 0xfa, 0xc6, 0x6e, 0x28, 0xf9, 0x39,
+ 0xb4, 0x52, 0x8b, 0x44, 0x7f, 0x64, 0x63, 0x3c, 0x0e, 0x7c, 0x0c, 0x68, 0x1b, 0x24, 0xed, 0xeb,
+ 0x57, 0x49, 0x3b, 0xba, 0x94, 0x7b, 0x77, 0xc9, 0xbc, 0x42, 0x36, 0xef, 0x61, 0x40, 0xa7, 0xbb,
+ 0xb0, 0x27, 0xac, 0xb3, 0xe8, 0xd6, 0xf0, 0xfd, 0x85, 0x46, 0x81, 0x38, 0x76, 0x97, 0xcc, 0x29,
+ 0x19, 0xfc, 0xd7, 0x60, 0x2d, 0xf3, 0x4d, 0xba, 0x28, 0xa8, 0xee, 0x14, 0x7f, 0x6d, 0xe1, 0x6e,
+ 0x20, 0xd3, 0xee, 0x92, 0x39, 0x2b, 0x89, 0x4f, 0xe0, 0x73, 0xb3, 0x5d, 0xda, 0x16, 0x7d, 0xd7,
+ 0xf1, 0x84, 0xbe, 0x7e, 0xfc, 0xf6, 0xcb, 0x8d, 0x96, 0x66, 0xde, 0x5d, 0x32, 0x2f, 0x97, 0xcc,
+ 0xff, 0x0a, 0xdc, 0x1e, 0xcf, 0x35, 0x31, 0xca, 0x74, 0xe9, 0xdb, 0xcb, 0xef, 0x2e, 0xf8, 0xe5,
+ 0x19, 0xfe, 0xdd, 0x25, 0xf3, 0x4a, 0xf9, 0xe8, 0x3b, 0x53, 0xe0, 0xac, 0x6b, 0x6f, 0x15, 0xc0,
+ 0x6f, 0x43, 0xcd, 0xea, 0xbb, 0xbb, 0xc2, 0xb2, 0xe3, 0xc4, 0x7a, 0x82, 0x68, 0xfd, 0x71, 0x0e,
+ 0xca, 0x5a, 0xdf, 0x6f, 0xc7, 0x67, 0xdb, 0xb1, 0xe9, 0x4e, 0x10, 0xfc, 0x7d, 0xa8, 0x89, 0x20,
+ 0xf0, 0x83, 0x2d, 0xdf, 0x8e, 0x0a, 0xff, 0xa6, 0xb3, 0xbe, 0x4a, 0xce, 0x7a, 0x3b, 0x22, 0x33,
+ 0x13, 0x0e, 0xfe, 0x1e, 0x80, 0x5a, 0xe7, 0xbd, 0xe4, 0x0a, 0x45, 0x6b, 0x3e, 0xbf, 0x3a, 0x7d,
+ 0x49, 0xa8, 0x93, 0x9c, 0x59, 0x74, 0xf4, 0x11, 0x81, 0x71, 0xc0, 0x59, 0x4a, 0x05, 0x9c, 0xb7,
+ 0x75, 0xfa, 0xe0, 0x00, 0x5f, 0xe8, 0x8b, 0x44, 0x31, 0xa2, 0xf5, 0x2f, 0x73, 0x50, 0x56, 0xc6,
+ 0x83, 0xb7, 0x67, 0x7b, 0xf4, 0xe5, 0x17, 0xdb, 0x9c, 0xf5, 0xe9, 0x9e, 0x7d, 0x13, 0x40, 0xd9,
+ 0xa0, 0x54, 0xcf, 0x6e, 0x4f, 0xc9, 0xd1, 0xac, 0x51, 0xf5, 0x67, 0x42, 0x6f, 0x3c, 0x54, 0x97,
+ 0x5d, 0x28, 0x45, 0xfb, 0x78, 0x6f, 0x8f, 0x2d, 0xf1, 0x35, 0x68, 0x3c, 0x3e, 0xf8, 0xe8, 0xe0,
+ 0xf0, 0xe9, 0xc1, 0xb3, 0xb6, 0x69, 0x1e, 0x9a, 0x2a, 0x53, 0xbb, 0xb9, 0xb1, 0xfd, 0xac, 0x73,
+ 0x70, 0xf4, 0xb8, 0xc7, 0xf2, 0xad, 0x9f, 0xe5, 0xa0, 0x91, 0xb1, 0x5d, 0x7f, 0xb1, 0x53, 0x97,
+ 0x1a, 0xfe, 0xc2, 0xfc, 0xe1, 0x2f, 0x5e, 0x36, 0xfc, 0xa5, 0xe9, 0xe1, 0xff, 0xfd, 0x1c, 0x34,
+ 0x32, 0x36, 0x32, 0x2d, 0x3d, 0x97, 0x95, 0x9e, 0xde, 0xe9, 0xf3, 0x53, 0x3b, 0xbd, 0x01, 0xcb,
+ 0xd1, 0xf3, 0x41, 0x92, 0x71, 0xc8, 0xe0, 0xd2, 0x34, 0x54, 0x6d, 0x5e, 0xcc, 0xd2, 0x50, 0xc5,
+ 0xf9, 0xd5, 0xad, 0xa5, 0xdb, 0x75, 0x21, 0x5d, 0x3e, 0x6e, 0x5d, 0x6e, 0x41, 0xaf, 0xe8, 0xc2,
+ 0x23, 0xa8, 0x8f, 0x93, 0x65, 0xfa, 0x72, 0x6e, 0x49, 0x9a, 0xf3, 0x05, 0xed, 0xfc, 0x49, 0x0e,
+ 0x56, 0xb2, 0x36, 0xf7, 0xff, 0xe9, 0x61, 0xfd, 0xa7, 0x39, 0x58, 0x9b, 0xb1, 0xe4, 0x57, 0x3a,
+ 0x76, 0xd3, 0xed, 0xca, 0x2f, 0xd0, 0xae, 0xc2, 0x9c, 0x76, 0x5d, 0x6e, 0x49, 0xae, 0x6e, 0x71,
+ 0x17, 0x3e, 0x77, 0xe9, 0x9e, 0x70, 0xc5, 0x50, 0x67, 0x84, 0x16, 0xa6, 0x85, 0xfe, 0x6e, 0x0e,
+ 0x6e, 0x5f, 0x65, 0xef, 0xff, 0xaf, 0xeb, 0xd5, 0x74, 0x0b, 0x8d, 0x77, 0xe2, 0x33, 0xf4, 0x3a,
+ 0x54, 0xf4, 0x8f, 0xfa, 0xe8, 0x92, 0xe3, 0xa1, 0xff, 0xdc, 0x53, 0x09, 0x68, 0x53, 0x58, 0xfa,
+ 0xda, 0xb3, 0x29, 0xc6, 0xae, 0x43, 0x67, 0x96, 0xb7, 0x00, 0x36, 0x28, 0xae, 0x8b, 0x6e, 0x21,
+ 0x6c, 0xed, 0x1d, 0x76, 0xdb, 0x6c, 0x29, 0xed, 0xc4, 0x7e, 0x1c, 0x19, 0x62, 0xe3, 0x08, 0xca,
+ 0x49, 0x7d, 0xfa, 0xbe, 0x15, 0x9c, 0xda, 0xea, 0x64, 0x70, 0x19, 0xaa, 0x47, 0x3a, 0x84, 0x52,
+ 0x9f, 0xfa, 0xb0, 0x7b, 0x78, 0xa0, 0x72, 0xdd, 0xdb, 0x87, 0x3d, 0x55, 0xe5, 0xde, 0x7d, 0xf2,
+ 0x48, 0x1d, 0x51, 0x3d, 0x32, 0x37, 0x8e, 0x76, 0x9f, 0x11, 0x45, 0xc9, 0xf8, 0x59, 0x3e, 0xda,
+ 0xd5, 0x0c, 0x53, 0x9f, 0x39, 0x02, 0x94, 0xd1, 0x9a, 0xfb, 0x5a, 0x70, 0xfc, 0x19, 0x2a, 0x4e,
+ 0x6d, 0x9f, 0xab, 0x3c, 0x04, 0xcb, 0xf3, 0x32, 0xe4, 0x8f, 0x8e, 0x55, 0x11, 0xce, 0xae, 0x1c,
+ 0xb9, 0xea, 0x5a, 0x5a, 0xef, 0x5c, 0xb2, 0x12, 0x3e, 0x6c, 0x85, 0x67, 0xac, 0x6c, 0xfc, 0xc7,
+ 0x1c, 0xd4, 0x62, 0x53, 0xf9, 0x32, 0xa6, 0x9b, 0x73, 0x58, 0xe9, 0x1c, 0xf4, 0xda, 0xe6, 0xc1,
+ 0xc6, 0x9e, 0x26, 0x29, 0xf0, 0x26, 0x5c, 0x3f, 0x38, 0x7c, 0x76, 0xb8, 0xf9, 0x61, 0x7b, 0xab,
+ 0xd7, 0x7d, 0xd6, 0x3b, 0x7c, 0xd6, 0xd9, 0x3f, 0x3a, 0x34, 0x7b, 0xac, 0xc4, 0x6f, 0x02, 0x57,
+ 0xcf, 0xcf, 0x3a, 0xdd, 0x67, 0x5b, 0x1b, 0x07, 0x5b, 0xed, 0xbd, 0xf6, 0x36, 0x2b, 0xf3, 0x2f,
+ 0xc3, 0x17, 0xf7, 0x3a, 0xfb, 0x9d, 0xde, 0xb3, 0xc3, 0x9d, 0x67, 0xe6, 0xe1, 0xd3, 0xee, 0xb3,
+ 0x43, 0xf3, 0x99, 0xd9, 0xde, 0xdb, 0xe8, 0x75, 0x0e, 0x0f, 0xba, 0xcf, 0xda, 0xdf, 0xdd, 0x6a,
+ 0xb7, 0xb7, 0xdb, 0xdb, 0xac, 0xc2, 0xaf, 0xc1, 0xea, 0x4e, 0x67, 0xaf, 0xfd, 0x6c, 0xef, 0x70,
+ 0x63, 0x5b, 0x7f, 0xaf, 0xca, 0x6f, 0x43, 0xb3, 0x73, 0xd0, 0x7d, 0xbc, 0xb3, 0xd3, 0xd9, 0xea,
+ 0xb4, 0x0f, 0x7a, 0xcf, 0x8e, 0xda, 0xe6, 0x7e, 0xa7, 0xdb, 0x45, 0x5e, 0x56, 0x33, 0xbe, 0x0d,
+ 0xe5, 0x8e, 0x77, 0xe6, 0x48, 0x52, 0x3f, 0x3d, 0x57, 0x3a, 0x20, 0x89, 0x40, 0xd2, 0x1a, 0x67,
+ 0xe0, 0xd1, 0x6d, 0x64, 0x52, 0xbe, 0x65, 0x33, 0x41, 0x18, 0xff, 0x2c, 0x0f, 0x0d, 0x25, 0x22,
+ 0x0a, 0x70, 0xee, 0xc1, 0xaa, 0xce, 0x14, 0x76, 0xb2, 0x2b, 0x7c, 0x1a, 0x4d, 0x3f, 0xf3, 0xa3,
+ 0x50, 0xa9, 0x75, 0x9e, 0x46, 0xd1, 0xa1, 0x13, 0x09, 0xc7, 0x40, 0x49, 0x1d, 0xb7, 0x25, 0x88,
+ 0xcf, 0xba, 0xc0, 0xd1, 0x78, 0x28, 0xc2, 0xbe, 0xef, 0x6d, 0xc5, 0x77, 0x00, 0x32, 0x38, 0xfe,
+ 0x31, 0xdc, 0x8a, 0xe1, 0xb6, 0xd7, 0x0f, 0x2e, 0xc6, 0xf1, 0xaf, 0x71, 0x55, 0xe6, 0x46, 0xdc,
+ 0x3b, 0x8e, 0x2b, 0x32, 0x84, 0xe6, 0x65, 0x02, 0x8c, 0x3f, 0xc9, 0xa5, 0xc2, 0x42, 0x15, 0xf6,
+ 0x5d, 0x69, 0x10, 0xe7, 0x1d, 0x51, 0x60, 0x60, 0xa6, 0x9b, 0xaf, 0xf7, 0x69, 0x0d, 0xf2, 0x23,
+ 0xe0, 0xce, 0x6c, 0xa3, 0x8b, 0x0b, 0x36, 0x7a, 0x0e, 0xef, 0x74, 0x86, 0xb9, 0x34, 0x9b, 0x61,
+ 0xbe, 0x03, 0x30, 0x70, 0xfd, 0x63, 0xcb, 0x4d, 0xf9, 0x61, 0x29, 0x8c, 0xe1, 0x42, 0x35, 0xfa,
+ 0xcd, 0x2f, 0x7e, 0x13, 0xca, 0xf4, 0xab, 0x5f, 0x71, 0xbe, 0x4d, 0x41, 0x7c, 0x17, 0x56, 0x44,
+ 0xb6, 0xcd, 0xf9, 0x05, 0xdb, 0x3c, 0xc5, 0x67, 0x7c, 0x03, 0xd6, 0x66, 0x88, 0x70, 0x10, 0xc7,
+ 0x96, 0x8c, 0x2f, 0xfe, 0xe2, 0xf3, 0xec, 0xd1, 0xae, 0xf1, 0xef, 0xf3, 0xb0, 0xbc, 0x6f, 0x79,
+ 0xce, 0x89, 0x08, 0x65, 0xd4, 0xda, 0xb0, 0x3f, 0x14, 0x23, 0x2b, 0x6a, 0xad, 0x82, 0x74, 0x10,
+ 0x9e, 0x4f, 0xa7, 0xb7, 0x67, 0x4e, 0x43, 0x6e, 0x42, 0xd9, 0x9a, 0xc8, 0x61, 0x5c, 0x96, 0xac,
+ 0x21, 0x9c, 0x3b, 0xd7, 0xe9, 0x0b, 0x2f, 0x8c, 0x74, 0x33, 0x02, 0x93, 0xe2, 0x8e, 0xf2, 0x15,
+ 0xc5, 0x1d, 0x95, 0xd9, 0xf1, 0xbf, 0x0b, 0xf5, 0xb0, 0x1f, 0x08, 0xe1, 0x85, 0x43, 0x5f, 0x46,
+ 0xbf, 0x17, 0x97, 0x46, 0x51, 0x51, 0x93, 0xff, 0xdc, 0xc3, 0x15, 0xba, 0xe7, 0x78, 0xa7, 0xba,
+ 0xb2, 0x27, 0x83, 0x43, 0x1d, 0xa4, 0x14, 0x84, 0xf3, 0x03, 0x41, 0xe1, 0x6f, 0xc9, 0x8c, 0x61,
+ 0x4a, 0x32, 0x58, 0x52, 0x0c, 0xfc, 0xc0, 0x11, 0x2a, 0xd3, 0x56, 0x33, 0x53, 0x18, 0xe4, 0x75,
+ 0x2d, 0x6f, 0x30, 0xb1, 0x06, 0x42, 0x1f, 0x95, 0xc6, 0xb0, 0xf1, 0xdf, 0x4a, 0x00, 0xfb, 0x62,
+ 0x74, 0x2c, 0x82, 0x70, 0xe8, 0x8c, 0xe9, 0x24, 0xc0, 0xd1, 0xf5, 0x9b, 0x0d, 0x93, 0x9e, 0xf9,
+ 0xbb, 0x99, 0x3a, 0xe9, 0xd9, 0xb3, 0xbb, 0x84, 0x7d, 0x3a, 0x43, 0x81, 0x83, 0x63, 0x49, 0xa1,
+ 0xeb, 0x6a, 0x68, 0xfc, 0x8b, 0x66, 0x1a, 0x45, 0x25, 0x4f, 0x96, 0x14, 0x6d, 0xcf, 0x56, 0x19,
+ 0x90, 0xa2, 0x19, 0xc3, 0x74, 0xd3, 0x22, 0xdc, 0x98, 0x48, 0xdf, 0x14, 0x9e, 0x78, 0x1e, 0x5f,
+ 0x13, 0x4a, 0x50, 0x7c, 0x1f, 0x1a, 0x63, 0xeb, 0x62, 0x24, 0x3c, 0xb9, 0x2f, 0xe4, 0xd0, 0xb7,
+ 0x75, 0x11, 0xcc, 0x97, 0x2f, 0x6f, 0xe0, 0x51, 0x9a, 0xdc, 0xcc, 0x72, 0xa3, 0x4e, 0x78, 0x21,
+ 0xad, 0x12, 0x35, 0x8d, 0x1a, 0xe2, 0x9b, 0x00, 0xea, 0x89, 0x02, 0x8b, 0xea, 0xfc, 0x44, 0x8d,
+ 0x35, 0x12, 0xa1, 0x08, 0xce, 0x1c, 0x65, 0xc7, 0x54, 0xe8, 0x94, 0x70, 0xa1, 0xd5, 0x9b, 0x84,
+ 0x22, 0x68, 0x8f, 0x2c, 0xc7, 0xd5, 0x13, 0x9c, 0x20, 0xf8, 0x5b, 0x70, 0x23, 0x9c, 0x1c, 0xa3,
+ 0xce, 0x1c, 0x8b, 0x9e, 0x7f, 0x20, 0x9e, 0x87, 0xae, 0x90, 0x52, 0x04, 0xfa, 0xd4, 0x7d, 0xfe,
+ 0x4b, 0x63, 0x10, 0x7b, 0x05, 0xf4, 0xdb, 0x04, 0xf8, 0x94, 0x54, 0xf3, 0xc4, 0x28, 0x5d, 0xea,
+ 0xc4, 0x72, 0x9c, 0xc1, 0xb2, 0x42, 0xe9, 0x4a, 0xa8, 0x3c, 0xff, 0x12, 0x7c, 0x21, 0x43, 0x64,
+ 0xaa, 0x73, 0xd2, 0x70, 0xc7, 0xf1, 0x2c, 0xd7, 0xf9, 0x81, 0x3a, 0xac, 0x2e, 0x18, 0x63, 0x68,
+ 0x64, 0x06, 0x0e, 0xb7, 0x79, 0xf5, 0xa4, 0x6b, 0x43, 0x18, 0x2c, 0x2b, 0xb8, 0x2b, 0x03, 0x87,
+ 0x0e, 0x00, 0x62, 0xcc, 0x16, 0xae, 0x73, 0x9f, 0xe5, 0xf9, 0x75, 0x60, 0x0a, 0xd3, 0xf1, 0xac,
+ 0xf1, 0x78, 0x63, 0x3c, 0x76, 0x05, 0x2b, 0xd0, 0x75, 0xba, 0x04, 0xab, 0xaa, 0xa5, 0x59, 0xd1,
+ 0xf8, 0x2e, 0xdc, 0xa2, 0x91, 0x79, 0x22, 0x82, 0x38, 0xee, 0xd3, 0x7d, 0xbd, 0x01, 0x6b, 0xea,
+ 0xe9, 0xc0, 0x97, 0xea, 0x35, 0xf9, 0x42, 0x1c, 0x56, 0x14, 0x1a, 0x5d, 0x81, 0xae, 0xf0, 0xa4,
+ 0x2a, 0x51, 0x51, 0xb8, 0x98, 0x2e, 0x6f, 0xfc, 0xb4, 0x0c, 0x3c, 0x51, 0x88, 0x9e, 0x23, 0x82,
+ 0x6d, 0x4b, 0x5a, 0xa9, 0xc4, 0x5d, 0xe3, 0xd2, 0xa3, 0xe7, 0x17, 0x17, 0x72, 0xdd, 0x84, 0xb2,
+ 0x13, 0x62, 0xa4, 0xa2, 0x0b, 0x27, 0x35, 0xc4, 0xf7, 0x00, 0xc6, 0x22, 0x70, 0x7c, 0x9b, 0x34,
+ 0xa8, 0x34, 0xb7, 0x5c, 0x7d, 0xb6, 0x51, 0xeb, 0x47, 0x31, 0x8f, 0x99, 0xe2, 0xc7, 0x76, 0x28,
+ 0x48, 0x1d, 0xe4, 0x96, 0xa9, 0xd1, 0x69, 0x14, 0x7f, 0x1d, 0xae, 0x8d, 0x03, 0xa7, 0x2f, 0xd4,
+ 0x74, 0x3c, 0x0e, 0xed, 0x2d, 0xfa, 0x45, 0xaf, 0x0a, 0x51, 0xce, 0x7b, 0x85, 0x1a, 0x68, 0x79,
+ 0xe4, 0xbf, 0x87, 0x74, 0x74, 0xa9, 0xaf, 0x73, 0xaa, 0x42, 0xc4, 0x86, 0x39, 0xff, 0x25, 0xbf,
+ 0x0f, 0x4c, 0xbf, 0xd8, 0x77, 0xbc, 0x3d, 0xe1, 0x0d, 0xe4, 0x90, 0x94, 0xbb, 0x61, 0xce, 0xe0,
+ 0xc9, 0x82, 0xa9, 0xdf, 0x4d, 0x51, 0xc7, 0x1a, 0x35, 0x33, 0x86, 0xd5, 0x15, 0x61, 0xd7, 0x0f,
+ 0xba, 0x32, 0xd0, 0x35, 0x92, 0x31, 0x8c, 0x3e, 0x4b, 0x48, 0x6d, 0x3d, 0x0a, 0x7c, 0x7b, 0x42,
+ 0x49, 0x77, 0x65, 0xc4, 0xa6, 0xd1, 0x09, 0xe5, 0xbe, 0xe5, 0xe9, 0x6a, 0xba, 0x46, 0x9a, 0x32,
+ 0x46, 0x53, 0x88, 0xe2, 0x87, 0x89, 0xc0, 0x55, 0x1d, 0xa2, 0xa4, 0x70, 0x9a, 0x26, 0x11, 0xc5,
+ 0x62, 0x9a, 0x44, 0x0e, 0xf5, 0xdf, 0x0e, 0x7c, 0xc7, 0x4e, 0x64, 0xad, 0xa9, 0x5a, 0xc7, 0x69,
+ 0x7c, 0x8a, 0x36, 0x91, 0xc9, 0x33, 0xb4, 0x31, 0xde, 0xf8, 0x51, 0x0e, 0x20, 0x99, 0x7c, 0x54,
+ 0xf9, 0x04, 0x4a, 0x96, 0xf8, 0x2d, 0xb8, 0x96, 0x46, 0x53, 0x11, 0x3c, 0x9d, 0x7f, 0x72, 0x58,
+ 0x49, 0x5e, 0x6c, 0x5b, 0x17, 0x21, 0xcb, 0xab, 0xa2, 0xc7, 0x08, 0xf7, 0x54, 0x08, 0x2a, 0x2f,
+ 0xbb, 0x0e, 0x2c, 0x41, 0xd2, 0x85, 0xa5, 0x90, 0x15, 0xb3, 0xa4, 0xdf, 0x13, 0x56, 0x10, 0xb2,
+ 0x92, 0xb1, 0x0b, 0x65, 0x75, 0xf6, 0x32, 0xe7, 0xd4, 0xf4, 0xe5, 0x4a, 0x20, 0xfe, 0x66, 0x0e,
+ 0x60, 0x5b, 0xd5, 0xb5, 0xe2, 0x2e, 0x3e, 0xe7, 0x30, 0x7a, 0x9e, 0x47, 0x65, 0xd9, 0x36, 0x55,
+ 0xfc, 0x16, 0xe2, 0x5f, 0xe3, 0x40, 0x10, 0x35, 0xc7, 0x8a, 0xea, 0x89, 0xd4, 0x9a, 0x8b, 0x61,
+ 0xb5, 0x81, 0x6c, 0xf9, 0x9e, 0x27, 0xfa, 0xb8, 0xfd, 0xc4, 0x1b, 0x48, 0x8c, 0x32, 0xfe, 0x75,
+ 0x05, 0xea, 0x5b, 0x43, 0x4b, 0xee, 0x8b, 0x30, 0xb4, 0x06, 0x62, 0xa6, 0x2d, 0x4d, 0xa8, 0xf8,
+ 0x81, 0x2d, 0x82, 0xe4, 0xd2, 0x91, 0x06, 0xd3, 0x47, 0xf0, 0x85, 0xec, 0x11, 0xfc, 0x6d, 0xa8,
+ 0xa9, 0x04, 0xbf, 0xbd, 0xa1, 0xcc, 0x40, 0xc1, 0x4c, 0x10, 0xb8, 0x57, 0x8f, 0x7c, 0x9b, 0x8c,
+ 0xd1, 0x86, 0xca, 0x8d, 0x17, 0xcc, 0x14, 0x46, 0x55, 0x3c, 0x8c, 0xdd, 0x8b, 0x9e, 0xaf, 0xdb,
+ 0xd4, 0xb1, 0x93, 0x1b, 0x9a, 0x59, 0x3c, 0xdf, 0x82, 0xca, 0x48, 0x01, 0x3a, 0xcf, 0x3f, 0x9d,
+ 0x11, 0x4f, 0x75, 0x6d, 0x5d, 0xff, 0xd5, 0xf7, 0x2a, 0xcc, 0x88, 0x13, 0x23, 0x58, 0x4b, 0x4a,
+ 0xab, 0x3f, 0x1c, 0x69, 0x13, 0x51, 0x98, 0x73, 0xe4, 0x97, 0x16, 0xb4, 0x11, 0x53, 0x9b, 0x69,
+ 0x4e, 0xbe, 0x09, 0xb5, 0x40, 0x58, 0x99, 0x53, 0xc7, 0x57, 0xae, 0x10, 0x63, 0x46, 0xb4, 0x66,
+ 0xc2, 0xd6, 0xfa, 0xbd, 0x1c, 0xac, 0x64, 0x1b, 0xfa, 0x17, 0xf1, 0x83, 0x4a, 0xdf, 0x4c, 0x7e,
+ 0x50, 0xe9, 0x33, 0xfc, 0x38, 0xd1, 0xef, 0xe6, 0x00, 0x92, 0x31, 0x40, 0x93, 0xaf, 0x7e, 0xf8,
+ 0x25, 0x72, 0x42, 0x15, 0xc4, 0x77, 0x33, 0x57, 0xb3, 0xdf, 0x5a, 0x68, 0x40, 0x53, 0x8f, 0xa9,
+ 0x62, 0xdd, 0x07, 0xb0, 0x92, 0xc5, 0xd3, 0x4f, 0xb9, 0x74, 0xf6, 0xda, 0x2a, 0x03, 0xd0, 0xd9,
+ 0xdf, 0x78, 0xd4, 0xd6, 0xf7, 0x58, 0x3a, 0x07, 0x1f, 0xb1, 0x7c, 0xeb, 0xbf, 0xe7, 0xa0, 0x16,
+ 0x0f, 0x2f, 0xff, 0x4e, 0x7a, 0x5e, 0x54, 0x19, 0xc1, 0x9b, 0x8b, 0xcc, 0x4b, 0xf2, 0xd4, 0xf6,
+ 0x64, 0x70, 0x91, 0x9e, 0x26, 0x1f, 0x56, 0xb2, 0x2f, 0xe7, 0xd8, 0x84, 0x47, 0x59, 0x9b, 0xf0,
+ 0xc6, 0x42, 0x9f, 0x8c, 0x22, 0xaf, 0x3d, 0x27, 0x94, 0xda, 0x5c, 0xbc, 0x97, 0x7f, 0x37, 0xd7,
+ 0xba, 0x0b, 0xcb, 0xe9, 0x57, 0xb3, 0x37, 0xcf, 0xee, 0xff, 0xa7, 0x02, 0xac, 0x64, 0x4f, 0xe2,
+ 0xe9, 0x6a, 0x8c, 0xaa, 0x02, 0x39, 0x74, 0xed, 0x54, 0x7d, 0x33, 0xe3, 0xab, 0x50, 0xd7, 0xb1,
+ 0x1d, 0x21, 0xd6, 0x28, 0xc7, 0xe0, 0x8f, 0x04, 0xbb, 0x9b, 0xfe, 0xd1, 0xb8, 0xd7, 0x39, 0x44,
+ 0x97, 0x96, 0xd8, 0x98, 0xd7, 0xf4, 0xcf, 0xe7, 0xfc, 0x7a, 0x9e, 0x37, 0x52, 0x55, 0xb6, 0x3f,
+ 0x46, 0xc7, 0x66, 0x75, 0x73, 0xe2, 0xd9, 0xae, 0xb0, 0x63, 0xec, 0xef, 0xa5, 0xb1, 0x71, 0xcd,
+ 0xec, 0xaf, 0x17, 0xf9, 0x0a, 0xd4, 0xba, 0x93, 0x63, 0x5d, 0x2f, 0xfb, 0x57, 0x8b, 0xfc, 0x26,
+ 0xac, 0x69, 0xaa, 0xa4, 0x02, 0x8e, 0xfd, 0x35, 0x34, 0xc1, 0x2b, 0x1b, 0x6a, 0xbc, 0x74, 0x43,
+ 0xd9, 0x5f, 0x2f, 0x62, 0x13, 0xe8, 0x62, 0xeb, 0x6f, 0x90, 0x9c, 0xf8, 0xe6, 0x00, 0xfb, 0xcd,
+ 0x22, 0x5f, 0x05, 0xe8, 0xf6, 0xe2, 0x0f, 0xfd, 0x56, 0x91, 0xd7, 0xa1, 0xdc, 0xed, 0x91, 0xb4,
+ 0x1f, 0x15, 0xf9, 0x0d, 0x60, 0xc9, 0x5b, 0x5d, 0x0e, 0xf8, 0xb7, 0x55, 0x63, 0xe2, 0xfa, 0xbe,
+ 0xdf, 0x2e, 0x62, 0xbf, 0xa2, 0x51, 0x66, 0x7f, 0xa7, 0xc8, 0x19, 0xd4, 0x53, 0x99, 0x2b, 0xf6,
+ 0x77, 0x8b, 0x9c, 0x43, 0x63, 0xdf, 0x09, 0x43, 0xc7, 0x1b, 0xe8, 0x1e, 0xfc, 0x90, 0xbe, 0xbc,
+ 0x13, 0x5f, 0x7e, 0x60, 0xbf, 0x53, 0xe4, 0xb7, 0x80, 0xa7, 0xb3, 0xf5, 0xfa, 0xc5, 0xdf, 0x23,
+ 0x6e, 0x65, 0xf6, 0x43, 0x8d, 0xfb, 0xfb, 0xc4, 0x8d, 0x9a, 0xa0, 0x11, 0xff, 0x80, 0x06, 0x64,
+ 0x2b, 0x29, 0x20, 0xd4, 0xf8, 0x1f, 0x17, 0xef, 0xff, 0x94, 0x32, 0xab, 0xe9, 0xe2, 0x1b, 0xbe,
+ 0x0c, 0x55, 0xd7, 0xf7, 0x06, 0x52, 0xfd, 0x30, 0x5f, 0x03, 0x6a, 0xe1, 0xd0, 0x0f, 0x24, 0x81,
+ 0x74, 0x13, 0xcb, 0xa3, 0x0b, 0xb6, 0xaa, 0xa0, 0x5a, 0x05, 0x24, 0x2a, 0x53, 0x25, 0xad, 0x01,
+ 0xab, 0xc7, 0x65, 0x8e, 0xc5, 0xb8, 0x14, 0x93, 0x2e, 0xfa, 0x46, 0x17, 0x29, 0x59, 0x19, 0x49,
+ 0x27, 0x81, 0xab, 0x4a, 0x32, 0x05, 0x3a, 0xa3, 0xea, 0x17, 0xb8, 0xc6, 0x43, 0xf4, 0x79, 0x6b,
+ 0x0a, 0xeb, 0x7f, 0xe2, 0xa8, 0x2b, 0x7a, 0xba, 0xd4, 0xc9, 0xc6, 0x76, 0xc4, 0xa7, 0xf9, 0x4c,
+ 0xdc, 0xff, 0xed, 0x1c, 0x2c, 0x47, 0xd7, 0x5b, 0x9d, 0x81, 0xe3, 0xa9, 0xa2, 0xce, 0xe8, 0xe7,
+ 0x0e, 0xfb, 0xae, 0x33, 0x8e, 0x7e, 0x3e, 0x6c, 0x15, 0xea, 0x76, 0x60, 0x0d, 0x36, 0x3c, 0x7b,
+ 0x3b, 0xf0, 0xc7, 0xaa, 0xd9, 0xea, 0xec, 0x45, 0x15, 0x93, 0x3e, 0x17, 0xc7, 0x48, 0x3e, 0x16,
+ 0x01, 0x2b, 0x52, 0x19, 0xd5, 0xd0, 0x0a, 0x1c, 0x6f, 0xd0, 0x3e, 0x97, 0xc2, 0x0b, 0x55, 0x51,
+ 0x69, 0x1d, 0x2a, 0x93, 0x50, 0xf4, 0xad, 0x50, 0xb0, 0x32, 0x02, 0xc7, 0x13, 0xc7, 0x95, 0x8e,
+ 0xa7, 0x7e, 0xb5, 0x2b, 0xae, 0x1a, 0xad, 0xde, 0xff, 0xc3, 0x1c, 0xd4, 0x69, 0xe6, 0x93, 0xa4,
+ 0x62, 0xe2, 0x55, 0xd4, 0xa1, 0xb2, 0x17, 0xff, 0x6a, 0x53, 0x19, 0xf2, 0x87, 0xa7, 0x2a, 0xa9,
+ 0xa8, 0x67, 0x5e, 0xdd, 0x67, 0x53, 0x3f, 0xe0, 0x54, 0xe4, 0x9f, 0x83, 0x1b, 0xa6, 0x18, 0xf9,
+ 0x52, 0x3c, 0xb5, 0x1c, 0x99, 0xbe, 0x50, 0x51, 0xc2, 0x00, 0x44, 0xbd, 0x8a, 0x6e, 0x50, 0x94,
+ 0x29, 0x00, 0xc1, 0xcf, 0x46, 0x98, 0x0a, 0x76, 0x9a, 0x30, 0x3a, 0x22, 0xa9, 0xc6, 0x24, 0x1f,
+ 0xfa, 0x8e, 0x87, 0x5f, 0xa3, 0x2b, 0x91, 0x84, 0xa1, 0xec, 0x34, 0xa2, 0xe0, 0xfe, 0x01, 0xdc,
+ 0x9c, 0x9f, 0x53, 0x55, 0x97, 0x25, 0xe9, 0xa7, 0x42, 0xa9, 0xc4, 0xfe, 0x69, 0xe0, 0xa8, 0x6b,
+ 0x72, 0x35, 0x28, 0x1d, 0x3e, 0xf7, 0x48, 0x1b, 0xd6, 0xa0, 0x71, 0xe0, 0xa7, 0x78, 0x58, 0xe1,
+ 0x7e, 0x3f, 0x93, 0x06, 0x4f, 0x06, 0x25, 0x6a, 0xc4, 0x52, 0xea, 0xfa, 0x48, 0x4e, 0x25, 0x58,
+ 0xe9, 0xd7, 0xde, 0xd5, 0x45, 0x72, 0x9d, 0x7e, 0xb6, 0xd5, 0x45, 0xf2, 0xb8, 0x99, 0x45, 0xf5,
+ 0x33, 0x2e, 0x5e, 0x5f, 0xb8, 0xc2, 0x66, 0xa5, 0xfb, 0xef, 0xc2, 0xaa, 0xee, 0x6a, 0x5f, 0x84,
+ 0x61, 0x74, 0xfd, 0xe2, 0x28, 0x70, 0xce, 0xd4, 0x65, 0xf5, 0x65, 0xa8, 0x1e, 0x89, 0x20, 0xf4,
+ 0x3d, 0xba, 0xa8, 0x0f, 0x50, 0xee, 0x0e, 0xad, 0x00, 0xbf, 0x71, 0xff, 0xab, 0x50, 0xa3, 0xeb,
+ 0x18, 0x1f, 0x39, 0x9e, 0x8d, 0x3d, 0xd9, 0xd4, 0x15, 0xc8, 0x35, 0x28, 0x6d, 0xf9, 0x67, 0xd4,
+ 0xbf, 0xaa, 0xfa, 0xc1, 0x42, 0x96, 0xbf, 0xff, 0x2d, 0xe0, 0x2a, 0x9d, 0x63, 0x8b, 0x73, 0xc7,
+ 0x1b, 0xc4, 0x37, 0x78, 0x81, 0xae, 0xe3, 0xdb, 0xe2, 0x9c, 0xa2, 0xa5, 0x3a, 0x54, 0x22, 0x20,
+ 0xfa, 0x51, 0x80, 0x1d, 0x7f, 0xe2, 0xe1, 0xd7, 0x9e, 0xc0, 0x75, 0xa5, 0x1b, 0xf8, 0x79, 0xba,
+ 0xf6, 0x75, 0x69, 0x8c, 0xa9, 0xee, 0xcc, 0xc8, 0x49, 0x18, 0xd3, 0xb2, 0x1c, 0xbf, 0x09, 0x3c,
+ 0x8e, 0xcf, 0x12, 0x7c, 0xfe, 0xbe, 0x01, 0xd7, 0xe6, 0x04, 0xc9, 0x64, 0x70, 0x55, 0xa8, 0xc0,
+ 0x96, 0xee, 0x7f, 0x00, 0x6b, 0xca, 0x44, 0x1c, 0xa8, 0x6b, 0x3c, 0xd1, 0x6e, 0xf7, 0xb4, 0xb3,
+ 0xd3, 0x51, 0x43, 0xb4, 0xd5, 0xde, 0xdb, 0x7b, 0xbc, 0xb7, 0x61, 0xb2, 0x1c, 0x4d, 0xe4, 0x61,
+ 0xef, 0xd9, 0xd6, 0xe1, 0xc1, 0x41, 0x7b, 0xab, 0xd7, 0xde, 0x66, 0xf9, 0xcd, 0xfb, 0x7f, 0xf4,
+ 0x8b, 0x3b, 0xb9, 0x9f, 0xff, 0xe2, 0x4e, 0xee, 0xbf, 0xfc, 0xe2, 0x4e, 0xee, 0x47, 0x9f, 0xde,
+ 0x59, 0xfa, 0xf9, 0xa7, 0x77, 0x96, 0xfe, 0xc3, 0xa7, 0x77, 0x96, 0x3e, 0x66, 0xd3, 0xff, 0x69,
+ 0xe1, 0xb8, 0x4c, 0xde, 0xe9, 0x9b, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x51, 0xf3, 0xf8, 0x60,
+ 0x84, 0x61, 0x00, 0x00,
}
func (m *SmartBlockSnapshotBase) Marshal() (dAtA []byte, err error) {
@@ -10263,6 +10689,29 @@ func (m *BlockContentOfWidget) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
return len(dAtA) - i, nil
}
+func (m *BlockContentOfChat) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *BlockContentOfChat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.Chat != nil {
+ {
+ size, err := m.Chat.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xf2
+ }
+ return len(dAtA) - i, nil
+}
func (m *BlockRestrictions) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -11984,6 +12433,29 @@ func (m *BlockContentWidget) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *BlockContentChat) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *BlockContentChat) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *BlockContentChat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
func (m *BlockMetaOnly) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -12464,20 +12936,20 @@ func (m *Restrictions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
}
if len(m.Object) > 0 {
- dAtA40 := make([]byte, len(m.Object)*10)
- var j39 int
+ dAtA41 := make([]byte, len(m.Object)*10)
+ var j40 int
for _, num := range m.Object {
for num >= 1<<7 {
- dAtA40[j39] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA41[j40] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j39++
+ j40++
}
- dAtA40[j39] = uint8(num)
- j39++
+ dAtA41[j40] = uint8(num)
+ j40++
}
- i -= j39
- copy(dAtA[i:], dAtA40[:j39])
- i = encodeVarintModels(dAtA, i, uint64(j39))
+ i -= j40
+ copy(dAtA[i:], dAtA41[:j40])
+ i = encodeVarintModels(dAtA, i, uint64(j40))
i--
dAtA[i] = 0xa
}
@@ -12505,20 +12977,20 @@ func (m *RestrictionsDataviewRestrictions) MarshalToSizedBuffer(dAtA []byte) (in
var l int
_ = l
if len(m.Restrictions) > 0 {
- dAtA42 := make([]byte, len(m.Restrictions)*10)
- var j41 int
+ dAtA43 := make([]byte, len(m.Restrictions)*10)
+ var j42 int
for _, num := range m.Restrictions {
for num >= 1<<7 {
- dAtA42[j41] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA43[j42] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j41++
+ j42++
}
- dAtA42[j41] = uint8(num)
- j41++
+ dAtA43[j42] = uint8(num)
+ j42++
}
- i -= j41
- copy(dAtA[i:], dAtA42[:j41])
- i = encodeVarintModels(dAtA, i, uint64(j41))
+ i -= j42
+ copy(dAtA[i:], dAtA43[:j42])
+ i = encodeVarintModels(dAtA, i, uint64(j42))
i--
dAtA[i] = 0x12
}
@@ -12700,20 +13172,20 @@ func (m *ObjectType) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x48
}
if len(m.Types) > 0 {
- dAtA44 := make([]byte, len(m.Types)*10)
- var j43 int
+ dAtA45 := make([]byte, len(m.Types)*10)
+ var j44 int
for _, num := range m.Types {
for num >= 1<<7 {
- dAtA44[j43] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA45[j44] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j43++
+ j44++
}
- dAtA44[j43] = uint8(num)
- j43++
+ dAtA45[j44] = uint8(num)
+ j44++
}
- i -= j43
- copy(dAtA[i:], dAtA44[:j43])
- i = encodeVarintModels(dAtA, i, uint64(j43))
+ i -= j44
+ copy(dAtA[i:], dAtA45[:j44])
+ i = encodeVarintModels(dAtA, i, uint64(j44))
i--
dAtA[i] = 0x42
}
@@ -15175,6 +15647,270 @@ func (m *DeviceInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *ChatMessage) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChatMessage) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChatMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.ModifiedAt != 0 {
+ i = encodeVarintModels(dAtA, i, uint64(m.ModifiedAt))
+ i--
+ dAtA[i] = 0x48
+ }
+ if m.Reactions != nil {
+ {
+ size, err := m.Reactions.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x42
+ }
+ if len(m.Attachments) > 0 {
+ for iNdEx := len(m.Attachments) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Attachments[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x3a
+ }
+ }
+ if m.Message != nil {
+ {
+ size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x32
+ }
+ if len(m.ReplyToMessageId) > 0 {
+ i -= len(m.ReplyToMessageId)
+ copy(dAtA[i:], m.ReplyToMessageId)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.ReplyToMessageId)))
+ i--
+ dAtA[i] = 0x2a
+ }
+ if m.CreatedAt != 0 {
+ i = encodeVarintModels(dAtA, i, uint64(m.CreatedAt))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Creator) > 0 {
+ i -= len(m.Creator)
+ copy(dAtA[i:], m.Creator)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.Creator)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.OrderId) > 0 {
+ i -= len(m.OrderId)
+ copy(dAtA[i:], m.OrderId)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.OrderId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Id) > 0 {
+ i -= len(m.Id)
+ copy(dAtA[i:], m.Id)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.Id)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChatMessageMessageContent) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChatMessageMessageContent) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChatMessageMessageContent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Marks) > 0 {
+ for iNdEx := len(m.Marks) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Marks[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ }
+ if m.Style != 0 {
+ i = encodeVarintModels(dAtA, i, uint64(m.Style))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.Text) > 0 {
+ i -= len(m.Text)
+ copy(dAtA[i:], m.Text)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.Text)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChatMessageAttachment) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChatMessageAttachment) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChatMessageAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Type != 0 {
+ i = encodeVarintModels(dAtA, i, uint64(m.Type))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.Target) > 0 {
+ i -= len(m.Target)
+ copy(dAtA[i:], m.Target)
+ i = encodeVarintModels(dAtA, i, uint64(len(m.Target)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChatMessageReactions) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChatMessageReactions) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChatMessageReactions) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Reactions) > 0 {
+ for k := range m.Reactions {
+ v := m.Reactions[k]
+ baseI := i
+ if v != nil {
+ {
+ size, err := v.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintModels(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ i -= len(k)
+ copy(dAtA[i:], k)
+ i = encodeVarintModels(dAtA, i, uint64(len(k)))
+ i--
+ dAtA[i] = 0xa
+ i = encodeVarintModels(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ChatMessageReactionsIdentityList) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChatMessageReactionsIdentityList) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChatMessageReactionsIdentityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Ids) > 0 {
+ for iNdEx := len(m.Ids) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Ids[iNdEx])
+ copy(dAtA[i:], m.Ids[iNdEx])
+ i = encodeVarintModels(dAtA, i, uint64(len(m.Ids[iNdEx])))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func encodeVarintModels(dAtA []byte, offset int, v uint64) int {
offset -= sovModels(v)
base := offset
@@ -15555,6 +16291,18 @@ func (m *BlockContentOfWidget) Size() (n int) {
}
return n
}
+func (m *BlockContentOfChat) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Chat != nil {
+ l = m.Chat.Size()
+ n += 2 + l + sovModels(uint64(l))
+ }
+ return n
+}
func (m *BlockRestrictions) Size() (n int) {
if m == nil {
return 0
@@ -16326,6 +17074,15 @@ func (m *BlockContentWidget) Size() (n int) {
return n
}
+func (m *BlockContentChat) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
func (m *BlockMetaOnly) Size() (n int) {
if m == nil {
return 0
@@ -17792,6 +18549,126 @@ func (m *DeviceInfo) Size() (n int) {
return n
}
+func (m *ChatMessage) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Id)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ l = len(m.OrderId)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ l = len(m.Creator)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if m.CreatedAt != 0 {
+ n += 1 + sovModels(uint64(m.CreatedAt))
+ }
+ l = len(m.ReplyToMessageId)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if m.Message != nil {
+ l = m.Message.Size()
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if len(m.Attachments) > 0 {
+ for _, e := range m.Attachments {
+ l = e.Size()
+ n += 1 + l + sovModels(uint64(l))
+ }
+ }
+ if m.Reactions != nil {
+ l = m.Reactions.Size()
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if m.ModifiedAt != 0 {
+ n += 1 + sovModels(uint64(m.ModifiedAt))
+ }
+ return n
+}
+
+func (m *ChatMessageMessageContent) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Text)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if m.Style != 0 {
+ n += 1 + sovModels(uint64(m.Style))
+ }
+ if len(m.Marks) > 0 {
+ for _, e := range m.Marks {
+ l = e.Size()
+ n += 1 + l + sovModels(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *ChatMessageAttachment) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Target)
+ if l > 0 {
+ n += 1 + l + sovModels(uint64(l))
+ }
+ if m.Type != 0 {
+ n += 1 + sovModels(uint64(m.Type))
+ }
+ return n
+}
+
+func (m *ChatMessageReactions) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Reactions) > 0 {
+ for k, v := range m.Reactions {
+ _ = k
+ _ = v
+ l = 0
+ if v != nil {
+ l = v.Size()
+ l += 1 + sovModels(uint64(l))
+ }
+ mapEntrySize := 1 + len(k) + sovModels(uint64(len(k))) + l
+ n += mapEntrySize + 1 + sovModels(uint64(mapEntrySize))
+ }
+ }
+ return n
+}
+
+func (m *ChatMessageReactionsIdentityList) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Ids) > 0 {
+ for _, s := range m.Ids {
+ l = len(s)
+ n += 1 + l + sovModels(uint64(l))
+ }
+ }
+ return n
+}
+
func sovModels(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -19457,6 +20334,41 @@ func (m *Block) Unmarshal(dAtA []byte) error {
}
m.Content = &BlockContentOfWidget{v}
iNdEx = postIndex
+ case 30:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Chat", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &BlockContentChat{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Content = &BlockContentOfChat{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipModels(dAtA[iNdEx:])
@@ -24208,6 +25120,56 @@ func (m *BlockContentWidget) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *BlockContentChat) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Chat: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Chat: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *BlockMetaOnly) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -33567,6 +34529,825 @@ func (m *DeviceInfo) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ChatMessage) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChatMessage: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChatMessage: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Id = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field OrderId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.OrderId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Creator = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CreatedAt", wireType)
+ }
+ m.CreatedAt = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.CreatedAt |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReplyToMessageId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ReplyToMessageId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Message == nil {
+ m.Message = &ChatMessageMessageContent{}
+ }
+ if err := m.Message.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Attachments", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Attachments = append(m.Attachments, &ChatMessageAttachment{})
+ if err := m.Attachments[len(m.Attachments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Reactions", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Reactions == nil {
+ m.Reactions = &ChatMessageReactions{}
+ }
+ if err := m.Reactions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 9:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ModifiedAt", wireType)
+ }
+ m.ModifiedAt = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ModifiedAt |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChatMessageMessageContent) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MessageContent: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MessageContent: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Text = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Style", wireType)
+ }
+ m.Style = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Style |= BlockContentTextStyle(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Marks", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Marks = append(m.Marks, &BlockContentTextMark{})
+ if err := m.Marks[len(m.Marks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChatMessageAttachment) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Attachment: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Attachment: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Target = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
+ }
+ m.Type = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Type |= ChatMessageAttachmentAttachmentType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChatMessageReactions) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Reactions: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Reactions: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Reactions", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Reactions == nil {
+ m.Reactions = make(map[string]*ChatMessageReactionsIdentityList)
+ }
+ var mapkey string
+ var mapvalue *ChatMessageReactionsIdentityList
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return ErrInvalidLengthModels
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var mapmsglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ mapmsglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if mapmsglen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postmsgIndex := iNdEx + mapmsglen
+ if postmsgIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postmsgIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = &ChatMessageReactionsIdentityList{}
+ if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
+ return err
+ }
+ iNdEx = postmsgIndex
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.Reactions[mapkey] = mapvalue
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ChatMessageReactionsIdentityList) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: IdentityList: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: IdentityList: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthModels
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthModels
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Ids = append(m.Ids, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipModels(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthModels
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipModels(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/pkg/lib/pb/model/protos/models.proto b/pkg/lib/pb/model/protos/models.proto
index 6eef89f03..a0a3253dc 100644
--- a/pkg/lib/pb/model/protos/models.proto
+++ b/pkg/lib/pb/model/protos/models.proto
@@ -51,6 +51,9 @@ enum SmartBlockType {
NotificationObject = 0x217;
DevicesObject = 0x218;
+
+ ChatObject = 0x219; // Container for any-store based chats
+ ChatDerivedObject = 0x220; // Any-store based object for chat
}
message Search {
@@ -97,6 +100,7 @@ message Block {
Content.TableColumn tableColumn = 27;
Content.TableRow tableRow = 28;
Content.Widget widget = 29;
+ Content.Chat chat = 30;
}
message Restrictions {
@@ -574,6 +578,9 @@ message Block {
View = 4;
}
}
+ message Chat {
+
+ }
}
}
@@ -751,6 +758,8 @@ message ObjectType {
participant = 19;
pdf = 20;
+ chat = 21;
+ chatDerived = 22;
}
}
@@ -1308,4 +1317,41 @@ message DeviceInfo {
int64 addDate = 3;
bool archived = 4;
bool isConnected = 5;
+}
+
+message ChatMessage {
+ string id = 1; // Unique message identifier
+ string orderId = 2; // Used for subscriptions
+ string creator = 3; // Identifier for the message creator
+ int64 createdAt = 4;
+ int64 modifiedAt = 9;
+ string replyToMessageId = 5; // Identifier for the message being replied to
+ MessageContent message = 6; // Message content
+ repeated Attachment attachments = 7; // Attachments slice
+ Reactions reactions = 8; // Reactions to the message
+
+ message MessageContent {
+ string text = 1; // The text content of the message part
+ Block.Content.Text.Style style = 2; // The style/type of the message part
+ repeated Block.Content.Text.Mark marks = 3; // List of marks applied to the text
+ }
+
+ message Attachment {
+ string target = 1; // Identifier for the attachment object
+ AttachmentType type = 2; // Type of attachment
+
+ enum AttachmentType {
+ FILE = 0; // File attachment
+ IMAGE = 1; // Image attachment
+ LINK = 2; // Link attachment
+ }
+ }
+
+ message Reactions {
+ map reactions = 1; // Map of emoji to list of user IDs
+
+ message IdentityList {
+ repeated string ids = 1; // List of user IDs
+ }
+ }
}
\ No newline at end of file
diff --git a/space/spacecore/localdiscovery/common.go b/space/spacecore/localdiscovery/common.go
index a7dcb8d49..c68b289da 100644
--- a/space/spacecore/localdiscovery/common.go
+++ b/space/spacecore/localdiscovery/common.go
@@ -1,8 +1,17 @@
package localdiscovery
import (
+ "fmt"
+ gonet "net"
+ "runtime"
+ "strings"
+
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/logger"
+
+ "github.com/anyproto/anytype-heart/net/addrs"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+ "github.com/anyproto/anytype-heart/util/slice"
)
const (
@@ -14,6 +23,16 @@ const (
var log = logger.NewNamed(CName)
+type DiscoveryPossibility int
+
+const (
+ DiscoveryPossible DiscoveryPossibility = 0
+ DiscoveryNoInterfaces DiscoveryPossibility = 2
+ DiscoveryLocalNetworkRestricted DiscoveryPossibility = 3
+)
+
+type HookCallback func(state DiscoveryPossibility)
+
type DiscoveredPeer struct {
Addrs []string
PeerId string
@@ -33,3 +52,79 @@ type LocalDiscovery interface {
Start() error // Start the local discovery. Used when automatic start is disabled.
app.ComponentRunnable
}
+
+type NetworkStateService interface {
+ RegisterHook(hook func(network model.DeviceNetworkType))
+}
+
+// filterMulticastInterfaces filters out interfaces that doesn't make sense to use for multicast discovery.
+// Also filters out loopback interfaces to make less mess.
+// Please note: this call do a number of underlying syscalls to get addrs for each interface, but they will be cached after first call.
+func filterMulticastInterfaces(ifaces []addrs.NetInterfaceWithAddrCache) []addrs.NetInterfaceWithAddrCache {
+ return slice.Filter(ifaces, func(iface addrs.NetInterfaceWithAddrCache) bool {
+ if iface.Flags&gonet.FlagUp != 0 && iface.Flags&gonet.FlagMulticast != 0 && iface.Flags&gonet.FlagLoopback == 0 {
+ if len(iface.GetAddr()) > 0 {
+ return true
+ }
+ }
+ return false
+ })
+}
+
+func (l *localDiscovery) getP2PPossibility(newAddrs addrs.InterfacesAddrs) DiscoveryPossibility {
+ // some sophisticated logic for ios, because of possible Local Network Restrictions
+ var err error
+ interfaces := newAddrs.Interfaces
+ for _, iface := range interfaces {
+ if runtime.GOOS == "ios" {
+ // on ios we have to check only en interfaces
+ if !strings.HasPrefix(iface.Name, "en") {
+ // en1 used for wifi
+ // en2 used for wired connection
+ continue
+ }
+ }
+ addrs := iface.GetAddr()
+ if len(addrs) == 0 {
+ continue
+ }
+ for _, addr := range addrs {
+ if ip, ok := addr.(*gonet.IPNet); ok {
+ ipv4 := ip.IP.To4()
+ if ipv4 == nil {
+ continue
+ }
+ err = testSelfConnection(ipv4.String())
+ if err != nil {
+ log.Warn(fmt.Sprintf("self connection via %s to %s failed: %v", iface.Name, ipv4.String(), err))
+ } else {
+ return DiscoveryPossible
+ }
+ break
+ }
+ }
+ }
+ if err != nil {
+ // todo: double check network state provided by the client?
+ return DiscoveryLocalNetworkRestricted
+ }
+ return DiscoveryNoInterfaces
+}
+
+func (l *localDiscovery) notifyP2PPossibilityState(state DiscoveryPossibility) {
+ l.hookMu.Lock()
+ defer l.hookMu.Unlock()
+ if state == l.hookState {
+ return
+ }
+ l.hookState = state
+ for _, callback := range l.hooks {
+ callback(state)
+ }
+}
+
+func (l *localDiscovery) RegisterDiscoveryPossibilityHook(hook func(state DiscoveryPossibility)) {
+ l.hookMu.Lock()
+ defer l.hookMu.Unlock()
+ l.hooks = append(l.hooks, hook)
+}
diff --git a/space/spacecore/localdiscovery/localdiscovery.go b/space/spacecore/localdiscovery/localdiscovery.go
index c20b058d5..ada558215 100644
--- a/space/spacecore/localdiscovery/localdiscovery.go
+++ b/space/spacecore/localdiscovery/localdiscovery.go
@@ -20,19 +20,13 @@ import (
"github.com/anyproto/anytype-heart/core/anytype/config"
"github.com/anyproto/anytype-heart/net/addrs"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/space/spacecore/clientserver"
)
-var interfacesSortPriority = []string{"en", "wlan", "wl", "eth", "lo"}
-
type Hook int
-const (
- PeerToPeerImpossible Hook = 0
- PeerToPeerPossible Hook = 1
-)
-
-type HookCallback func()
+var interfacesSortPriority = []string{"wlan", "wl", "en", "eth", "tun", "tap", "utun", "lo"}
type localDiscovery struct {
server *zeroconf.Server
@@ -54,12 +48,14 @@ type localDiscovery struct {
notifier Notifier
m sync.Mutex
- hookMu sync.Mutex
- hooks map[Hook][]HookCallback
+ hookMu sync.Mutex
+ hookState DiscoveryPossibility
+ hooks []HookCallback
+ networkState NetworkStateService
}
func New() LocalDiscovery {
- return &localDiscovery{hooks: make(map[Hook][]HookCallback, 0)}
+ return &localDiscovery{hooks: make([]HookCallback, 0)}
}
func (l *localDiscovery) SetNotifier(notifier Notifier) {
@@ -70,8 +66,10 @@ func (l *localDiscovery) Init(a *app.App) (err error) {
l.manualStart = a.MustComponent(config.CName).(*config.Config).DontStartLocalNetworkSyncAutomatically
l.nodeConf = a.MustComponent(config.CName).(*config.Config).GetNodeConf()
l.peerId = a.MustComponent(accountservice.CName).(accountservice.Service).Account().PeerId
- l.periodicCheck = periodicsync.NewPeriodicSync(10, 0, l.checkAddrs, log)
+ l.periodicCheck = periodicsync.NewPeriodicSync(5, 0, l.refreshInterfaces, log)
l.drpcServer = app.MustComponent[clientserver.ClientServer](a)
+ l.networkState = app.MustComponent[NetworkStateService](a)
+
return
}
@@ -86,7 +84,7 @@ func (l *localDiscovery) Run(ctx context.Context) (err error) {
func (l *localDiscovery) Start() (err error) {
if !l.drpcServer.ServerStarted() {
- l.executeHook(PeerToPeerImpossible)
+ l.notifyP2PPossibilityState(DiscoveryNoInterfaces)
return
}
l.m.Lock()
@@ -95,6 +93,9 @@ func (l *localDiscovery) Start() (err error) {
return
}
l.started = true
+ l.networkState.RegisterHook(func(_ model.DeviceNetworkType) {
+ l.refreshInterfaces(l.ctx)
+ })
l.port = l.drpcServer.Port()
l.periodicCheck.Run()
@@ -142,27 +143,21 @@ func (l *localDiscovery) Close(ctx context.Context) (err error) {
return nil
}
-func (l *localDiscovery) RegisterP2PNotPossible(hook func()) {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- l.hooks[PeerToPeerImpossible] = append(l.hooks[PeerToPeerImpossible], hook)
-}
-
-func (l *localDiscovery) RegisterResetNotPossible(hook func()) {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- l.hooks[PeerToPeerPossible] = append(l.hooks[PeerToPeerPossible], hook)
-}
-
-func (l *localDiscovery) checkAddrs(ctx context.Context) (err error) {
+func (l *localDiscovery) refreshInterfaces(ctx context.Context) (err error) {
+ l.m.Lock()
+ defer l.m.Unlock()
newAddrs, err := addrs.GetInterfacesAddrs()
- l.notifyPeerToPeerStatus(newAddrs)
- if err != nil {
- return
+ if !addrs.NetAddrsEqualUnordered(l.interfacesAddrs.Addrs, newAddrs.Addrs) {
+ // only replace existing interface structs in case if we have a different set of addresses
+ // this optimization allows to save syscalls to get addrs for every iface, as we have a cache
+ newAddrs.Interfaces = filterMulticastInterfaces(newAddrs.Interfaces)
+ newAddrs.SortInterfacesWithPriority(interfacesSortPriority)
}
- newAddrs.SortWithPriority(interfacesSortPriority)
+ l.notifyP2PPossibilityState(l.getP2PPossibility(newAddrs))
if newAddrs.Equal(l.interfacesAddrs) && l.server != nil {
+ // we do additional check after we filter and sort multicast interfaces
+ // so this equal check is more precise
return
}
l.interfacesAddrs = newAddrs
@@ -174,22 +169,45 @@ func (l *localDiscovery) checkAddrs(ctx context.Context) (err error) {
}
l.ctx, l.cancel = context.WithCancel(ctx)
if err = l.startServer(); err != nil {
- return
+ return fmt.Errorf("starting mdns server: %w", err)
}
l.startQuerying(l.ctx)
return
}
+func (l *localDiscovery) getAddresses() (ipv4, ipv6 []gonet.IP) {
+ for _, iface := range l.interfacesAddrs.Interfaces {
+ for _, addr := range iface.GetAddr() {
+ ip := addr.(*gonet.IPNet).IP
+ if ip.To4() != nil {
+ ipv4 = append(ipv4, ip)
+ } else {
+ ipv6 = append(ipv6, ip)
+ }
+ }
+ }
+
+ if len(ipv4) == 0 {
+ // fallback in case we have no ipv4 addresses from interfaces
+ for _, addr := range l.interfacesAddrs.Addrs {
+ ip := strings.Split(addr.String(), "/")[0]
+ ipVal := gonet.ParseIP(ip)
+ if ipVal.To4() != nil {
+ ipv4 = append(ipv4, ipVal)
+ } else {
+ ipv6 = append(ipv6, ipVal)
+ }
+ }
+ l.interfacesAddrs.SortIPsLikeInterfaces(ipv4)
+ }
+ return
+}
+
func (l *localDiscovery) startServer() (err error) {
l.ipv4 = l.ipv4[:0]
- l.ipv6 = l.ipv6[:0]
- for _, addr := range l.interfacesAddrs.Addrs {
- ip := strings.Split(addr.String(), "/")[0]
- if gonet.ParseIP(ip).To4() != nil {
- l.ipv4 = append(l.ipv4, ip)
- } else {
- l.ipv6 = append(l.ipv6, ip)
- }
+ ipv4, _ := l.getAddresses() // ignore ipv6 for now
+ for _, ip := range ipv4 {
+ l.ipv4 = append(l.ipv4, ip.String())
}
log.Debug("starting mdns server", zap.Strings("ips", l.ipv4), zap.Int("port", l.port), zap.String("peerId", l.peerId))
l.server, err = zeroconf.RegisterProxy(
@@ -200,10 +218,10 @@ func (l *localDiscovery) startServer() (err error) {
l.peerId,
l.ipv4, // do not include ipv6 addresses, because they are disabled
nil,
- l.interfacesAddrs.Interfaces,
- zeroconf.TTL(60),
+ l.interfacesAddrs.NetInterfaces(),
+ zeroconf.TTL(3600), // big ttl because we don't have re-broadcasting
zeroconf.ServerSelectIPTraffic(zeroconf.IPv4), // disable ipv6 for now
- zeroconf.WriteTimeout(time.Second*1),
+ zeroconf.WriteTimeout(time.Second*3),
)
return
}
@@ -223,6 +241,7 @@ func (l *localDiscovery) readAnswers(ch chan *zeroconf.ServiceEntry) {
continue
}
var portAddrs []string
+ l.interfacesAddrs.SortIPsLikeInterfaces(entry.AddrIPv4)
for _, a := range entry.AddrIPv4 {
portAddrs = append(portAddrs, fmt.Sprintf("%s:%d", a.String(), entry.Port))
}
@@ -242,47 +261,17 @@ func (l *localDiscovery) readAnswers(ch chan *zeroconf.ServiceEntry) {
func (l *localDiscovery) browse(ctx context.Context, ch chan *zeroconf.ServiceEntry) {
defer l.closeWait.Done()
- newAddrs, err := addrs.GetInterfacesAddrs()
- l.notifyPeerToPeerStatus(newAddrs)
-
- if err != nil {
- return
- }
- newAddrs.SortWithPriority(interfacesSortPriority)
if err := zeroconf.Browse(ctx, serviceName, mdnsDomain, ch,
- zeroconf.ClientWriteTimeout(time.Second*1),
- zeroconf.SelectIfaces(newAddrs.Interfaces),
+ zeroconf.ClientWriteTimeout(time.Second*3),
+ zeroconf.SelectIfaces(l.interfacesAddrs.NetInterfaces()),
zeroconf.SelectIPTraffic(zeroconf.IPv4)); err != nil {
log.Error("browsing failed", zap.Error(err))
}
}
-func (l *localDiscovery) notifyPeerToPeerStatus(newAddrs addrs.InterfacesAddrs) {
- if l.notifyP2PNotPossible(newAddrs) {
- l.executeHook(PeerToPeerImpossible)
- } else {
- l.executeHook(PeerToPeerPossible)
+func (l *localDiscovery) GetOwnAddresses() OwnAddresses {
+ return OwnAddresses{
+ Addrs: l.ipv4,
+ Port: l.port,
}
}
-
-func (l *localDiscovery) notifyP2PNotPossible(newAddrs addrs.InterfacesAddrs) bool {
- return len(newAddrs.Interfaces) == 0 || addrs.IsLoopBack(newAddrs.Interfaces)
-}
-
-func (l *localDiscovery) executeHook(hook Hook) {
- hooks := l.getHooks(hook)
- for _, callback := range hooks {
- callback()
- }
-}
-
-func (l *localDiscovery) getHooks(hook Hook) []HookCallback {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- if hooks, ok := l.hooks[hook]; ok {
- callback := make([]HookCallback, 0, len(hooks))
- callback = append(callback, hooks...)
- return callback
- }
- return nil
-}
diff --git a/space/spacecore/localdiscovery/localdiscovery_android.go b/space/spacecore/localdiscovery/localdiscovery_android.go
index 665d389a3..3b4b2bcc1 100644
--- a/space/spacecore/localdiscovery/localdiscovery_android.go
+++ b/space/spacecore/localdiscovery/localdiscovery_android.go
@@ -2,9 +2,7 @@ package localdiscovery
import (
"context"
- "net"
gonet "net"
- "slices"
"strings"
"sync"
@@ -14,6 +12,7 @@ import (
"github.com/anyproto/anytype-heart/core/anytype/config"
"github.com/anyproto/anytype-heart/net/addrs"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/space/spacecore/clientserver"
)
@@ -22,13 +21,6 @@ var proxyLock = sync.Mutex{}
type Hook int
-const (
- PeerToPeerImpossible Hook = 0
- PeerToPeerPossible Hook = 1
-)
-
-type HookCallback func()
-
type NotifierProvider interface {
Provide(notifier Notifier, port int, peerId, serviceName string)
Remove()
@@ -54,9 +46,11 @@ type localDiscovery struct {
notifier Notifier
drpcServer clientserver.ClientServer
manualStart bool
- m sync.Mutex
- hooks map[Hook][]HookCallback
- hookMu sync.Mutex
+
+ hookMu sync.Mutex
+ hookState DiscoveryPossibility
+ hooks []HookCallback
+ networkState NetworkStateService
}
func (l *localDiscovery) PeerDiscovered(peer DiscoveredPeer, own OwnAddresses) {
@@ -66,7 +60,7 @@ func (l *localDiscovery) PeerDiscovered(peer DiscoveredPeer, own OwnAddresses) {
}
// TODO: move this to android side
newAddrs, err := addrs.GetInterfacesAddrs()
- l.notifyPeerToPeerStatus(newAddrs)
+ l.notifyP2PPossibilityState(l.getP2PPossibility(newAddrs))
if err != nil {
return
@@ -87,7 +81,7 @@ func (l *localDiscovery) PeerDiscovered(peer DiscoveredPeer, own OwnAddresses) {
}
func New() LocalDiscovery {
- return &localDiscovery{hooks: make(map[Hook][]HookCallback, 0)}
+ return &localDiscovery{hooks: make([]HookCallback, 0)}
}
func (l *localDiscovery) SetNotifier(notifier Notifier) {
@@ -98,6 +92,7 @@ func (l *localDiscovery) Init(a *app.App) (err error) {
l.peerId = a.MustComponent(accountservice.CName).(accountservice.Service).Account().PeerId
l.drpcServer = a.MustComponent(clientserver.CName).(clientserver.ClientServer)
l.manualStart = a.MustComponent(config.CName).(*config.Config).DontStartLocalNetworkSyncAutomatically
+ l.networkState = app.MustComponent[NetworkStateService](a)
return
}
@@ -110,10 +105,18 @@ func (l *localDiscovery) Run(ctx context.Context) (err error) {
return l.Start()
}
+func (l *localDiscovery) refreshInterfaces() {
+ newAddrs, err := addrs.GetInterfacesAddrs()
+ if err != nil {
+ return
+ }
+ newAddrs.Interfaces = filterMulticastInterfaces(newAddrs.Interfaces)
+ l.notifyP2PPossibilityState(l.getP2PPossibility(newAddrs))
+}
+
func (l *localDiscovery) Start() (err error) {
- l.m.Lock()
- defer l.m.Unlock()
if !l.drpcServer.ServerStarted() {
+ l.notifyP2PPossibilityState(DiscoveryNoInterfaces)
return
}
provider := getNotifierProvider()
@@ -121,6 +124,11 @@ func (l *localDiscovery) Start() (err error) {
return
}
provider.Provide(l, l.drpcServer.Port(), l.peerId, serviceName)
+ l.networkState.RegisterHook(func(_ model.DeviceNetworkType) {
+ l.refreshInterfaces()
+ })
+
+ l.refreshInterfaces()
return
}
@@ -128,18 +136,6 @@ func (l *localDiscovery) Name() (name string) {
return CName
}
-func (l *localDiscovery) RegisterP2PNotPossible(hook func()) {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- l.hooks[PeerToPeerImpossible] = append(l.hooks[PeerToPeerImpossible], hook)
-}
-
-func (l *localDiscovery) RegisterResetNotPossible(hook func()) {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- l.hooks[PeerToPeerPossible] = append(l.hooks[PeerToPeerPossible], hook)
-}
-
func (l *localDiscovery) Close(ctx context.Context) (err error) {
if !l.drpcServer.ServerStarted() {
return
@@ -151,38 +147,3 @@ func (l *localDiscovery) Close(ctx context.Context) (err error) {
provider.Remove()
return nil
}
-func (l *localDiscovery) notifyPeerToPeerStatus(newAddrs addrs.InterfacesAddrs) {
- if l.notifyP2PNotPossible(newAddrs) {
- l.executeHook(PeerToPeerImpossible)
- } else {
- l.executeHook(PeerToPeerPossible)
- }
-}
-
-func (l *localDiscovery) notifyP2PNotPossible(newAddrs addrs.InterfacesAddrs) bool {
- return len(newAddrs.Interfaces) == 0 || IsLoopBack(newAddrs.Interfaces)
-}
-
-func IsLoopBack(interfaces []net.Interface) bool {
- return len(interfaces) == 1 && slices.ContainsFunc(interfaces, func(n net.Interface) bool {
- return n.Flags&net.FlagLoopback != 0
- })
-}
-
-func (l *localDiscovery) executeHook(hook Hook) {
- hooks := l.getHooks(hook)
- for _, callback := range hooks {
- callback()
- }
-}
-
-func (l *localDiscovery) getHooks(hook Hook) []HookCallback {
- l.hookMu.Lock()
- defer l.hookMu.Unlock()
- if hooks, ok := l.hooks[hook]; ok {
- callback := make([]HookCallback, 0, len(hooks))
- callback = append(callback, hooks...)
- return callback
- }
- return nil
-}
diff --git a/space/spacecore/localdiscovery/localdiscovery_test.go b/space/spacecore/localdiscovery/localdiscovery_test.go
index 5cf59233b..293ed80c5 100644
--- a/space/spacecore/localdiscovery/localdiscovery_test.go
+++ b/space/spacecore/localdiscovery/localdiscovery_test.go
@@ -15,6 +15,7 @@ import (
"go.uber.org/mock/gomock"
"github.com/anyproto/anytype-heart/core/anytype/config"
+ "github.com/anyproto/anytype-heart/core/device/mock_device"
"github.com/anyproto/anytype-heart/core/event/mock_event"
"github.com/anyproto/anytype-heart/space/spacecore/clientserver/mock_clientserver"
"github.com/anyproto/anytype-heart/tests/testutil"
@@ -22,10 +23,11 @@ import (
type fixture struct {
LocalDiscovery
- nodeConf *mock_nodeconf.MockService
- eventSender *mock_event.MockSender
- clientServer *mock_clientserver.MockClientServer
- account *mock_accountservice.MockService
+ nodeConf *mock_nodeconf.MockService
+ eventSender *mock_event.MockSender
+ clientServer *mock_clientserver.MockClientServer
+ deviceService *mock_device.MockNetworkState
+ account *mock_accountservice.MockService
}
func newFixture(t *testing.T) *fixture {
@@ -33,7 +35,7 @@ func newFixture(t *testing.T) *fixture {
c := &config.Config{}
nodeConf := mock_nodeconf.NewMockService(ctrl)
eventSender := mock_event.NewMockSender(t)
-
+ deviceService := mock_device.NewMockNetworkState(t)
clientServer := mock_clientserver.NewMockClientServer(t)
accountKeys, err := accountdata.NewRandom()
assert.Nil(t, err)
@@ -45,6 +47,7 @@ func newFixture(t *testing.T) *fixture {
Register(testutil.PrepareMock(ctx, a, nodeConf)).
Register(testutil.PrepareMock(ctx, a, eventSender)).
Register(account).
+ Register(testutil.PrepareMock(ctx, a, deviceService)).
Register(testutil.PrepareMock(ctx, a, clientServer))
discovery := New()
@@ -56,6 +59,7 @@ func newFixture(t *testing.T) *fixture {
nodeConf: nodeConf,
eventSender: eventSender,
clientServer: clientServer,
+ deviceService: deviceService,
account: account,
}
return f
@@ -65,10 +69,10 @@ func TestLocalDiscovery_Init(t *testing.T) {
t.Run("init success", func(t *testing.T) {
// given
f := newFixture(t)
-
// when
f.clientServer.EXPECT().ServerStarted().Return(true)
f.clientServer.EXPECT().Port().Return(6789)
+ f.deviceService.EXPECT().RegisterHook(mock.Anything).Return()
err := f.Run(context.Background())
assert.Nil(t, err)
@@ -80,34 +84,34 @@ func TestLocalDiscovery_Init(t *testing.T) {
}
func TestLocalDiscovery_checkAddrs(t *testing.T) {
- t.Run("checkAddrs - server run successfully", func(t *testing.T) {
+ t.Run("refreshInterfaces - server run successfully", func(t *testing.T) {
// given
f := newFixture(t)
// when
ld := f.LocalDiscovery.(*localDiscovery)
ld.port = 6789
- err := ld.checkAddrs(context.Background())
+ err := ld.refreshInterfaces(context.Background())
// then
assert.Nil(t, err)
})
- t.Run("checkAddrs - server run successfully and send update to peer to peer status hook", func(t *testing.T) {
+ t.Run("refreshInterfaces - server run successfully and send update to peer to peer status hook", func(t *testing.T) {
// given
f := newFixture(t)
// when
ld := f.LocalDiscovery.(*localDiscovery)
- var hookCalled atomic.Bool
- ld.RegisterResetNotPossible(func() {
- hookCalled.Store(true)
+ var hookCalled atomic.Int64
+ ld.RegisterDiscoveryPossibilityHook(func(state DiscoveryPossibility) {
+ hookCalled.Store(int64(state))
})
ld.port = 6789
- err := ld.checkAddrs(context.Background())
+ err := ld.refreshInterfaces(context.Background())
// then
assert.Nil(t, err)
- assert.True(t, hookCalled.Load())
+ assert.True(t, hookCalled.Load() == int64(DiscoveryPossible))
})
}
diff --git a/space/spacecore/localdiscovery/selfconnect.go b/space/spacecore/localdiscovery/selfconnect.go
new file mode 100644
index 000000000..d6b4d3994
--- /dev/null
+++ b/space/spacecore/localdiscovery/selfconnect.go
@@ -0,0 +1,84 @@
+package localdiscovery
+
+import (
+ "bufio"
+ "fmt"
+ "net"
+ "strings"
+ "time"
+)
+
+const expectedMessage = "test"
+
+func handleConnection(conn net.Conn) error {
+ defer conn.Close()
+
+ reader := bufio.NewReader(conn)
+ message, err := reader.ReadString('\n')
+ if err != nil {
+ return fmt.Errorf("error reading message: %w", err)
+ }
+
+ // Trim newline characters and validate the message
+ message = strings.TrimSpace(message)
+
+ if message != expectedMessage {
+ return fmt.Errorf("unexpected message received: %s", message)
+ }
+
+ return nil
+}
+
+func startServer(ip string) (listener net.Listener, port int, err error) {
+ listener, err = net.Listen("tcp", ip+":0")
+ if err != nil {
+ return nil, 0, fmt.Errorf("error starting server: %w", err)
+ }
+
+ port = listener.Addr().(*net.TCPAddr).Port
+
+ return listener, port, nil
+}
+
+func sendMessage(ip string, port int, message string) error {
+ conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", ip, port), 3*time.Second)
+ if err != nil {
+ return fmt.Errorf("error connecting: %w", err)
+ }
+ defer conn.Close()
+
+ _, err = fmt.Fprintf(conn, "%s\n", message)
+ if err != nil {
+ return fmt.Errorf("error sending message: %w", err)
+ }
+
+ return nil
+}
+
+func testSelfConnection(ip string) error {
+ listener, port, err := startServer(ip)
+ if err != nil {
+ return err
+ }
+ var err2 error
+ defer listener.Close()
+ ch := make(chan struct{})
+ go func() {
+ defer close(ch)
+ for {
+ conn, err := listener.Accept()
+ if err != nil {
+ err2 = err
+ return
+ }
+ err2 = handleConnection(conn)
+ return
+ }
+ }()
+ err = sendMessage(ip, port, expectedMessage)
+ if err != nil {
+ return err
+ }
+ <-ch
+ return err2
+}
diff --git a/space/spacecore/localdiscovery/selfconnect_test.go b/space/spacecore/localdiscovery/selfconnect_test.go
new file mode 100644
index 000000000..308eac2e6
--- /dev/null
+++ b/space/spacecore/localdiscovery/selfconnect_test.go
@@ -0,0 +1,15 @@
+package localdiscovery
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+func Test_testSelfConnection(t *testing.T) {
+ err := testSelfConnection("127.0.0.1")
+ require.NoError(t, err)
+
+ err = testSelfConnection("11.11.11.11")
+ require.Error(t, err)
+}
diff --git a/space/spacecore/rpchandler.go b/space/spacecore/rpchandler.go
index 76800390e..07509fea1 100644
--- a/space/spacecore/rpchandler.go
+++ b/space/spacecore/rpchandler.go
@@ -3,11 +3,13 @@ package spacecore
import (
"context"
"fmt"
+ "net/url"
"github.com/anyproto/any-sync/commonspace"
"github.com/anyproto/any-sync/commonspace/spacesyncproto"
"github.com/anyproto/any-sync/net/peer"
"go.uber.org/zap"
+ "golang.org/x/exp/slices"
"github.com/anyproto/anytype-heart/space/spacecore/clientspaceproto"
)
@@ -49,8 +51,21 @@ func (r *rpcHandler) SpaceExchange(ctx context.Context, request *clientspaceprot
return nil, err
}
var portAddrs []string
+ peerAddr := peer.CtxPeerAddr(ctx)
+
+ if peerAddr != "" {
+ // prioritize address remote peer connected us from
+ if u, errParse := url.Parse(peerAddr); errParse == nil {
+ portAddrs = append(portAddrs, u.Host)
+ }
+ }
+
for _, ip := range request.LocalServer.Ips {
- portAddrs = append(portAddrs, fmt.Sprintf("%s:%d", ip, request.LocalServer.Port))
+ addr := fmt.Sprintf("%s:%d", ip, request.LocalServer.Port)
+ if slices.Contains(portAddrs, addr) {
+ continue
+ }
+ portAddrs = append(portAddrs, addr)
}
r.s.peerService.SetPeerAddrs(peerId, portAddrs)
r.s.peerStore.UpdateLocalPeer(peerId, request.SpaceIds)
diff --git a/space/spacecore/service.go b/space/spacecore/service.go
index e857484d3..4ca2e36d2 100644
--- a/space/spacecore/service.go
+++ b/space/spacecore/service.go
@@ -81,12 +81,6 @@ type service struct {
peerService peerservice.PeerService
poolManager PoolManager
streamHandler *streamHandler
- syncStatusService syncStatusService
-}
-
-type syncStatusService interface {
- RegisterSpace(space commonspace.Space, sw objectsyncstatus.StatusWatcher)
- UnregisterSpace(space commonspace.Space)
}
func (s *service) Init(a *app.App) (err error) {
@@ -101,7 +95,6 @@ func (s *service) Init(a *app.App) (err error) {
s.spaceStorageProvider = a.MustComponent(spacestorage.CName).(storage.ClientStorage)
s.peerStore = a.MustComponent(peerstore.CName).(peerstore.PeerStore)
s.peerService = a.MustComponent(peerservice.CName).(peerservice.PeerService)
- s.syncStatusService = app.MustComponent[syncStatusService](a)
localDiscovery := a.MustComponent(localdiscovery.CName).(localdiscovery.LocalDiscovery)
localDiscovery.SetNotifier(s)
s.streamHandler = &streamHandler{spaceCore: s}
@@ -242,7 +235,7 @@ func (s *service) loadSpace(ctx context.Context, id string) (value ocache.Object
if err != nil {
return
}
- ns, err := newAnySpace(cc, s.syncStatusService, statusService)
+ ns, err := newAnySpace(cc)
if err != nil {
return
}
diff --git a/space/spacecore/space.go b/space/spacecore/space.go
index e1e5d2545..672969399 100644
--- a/space/spacecore/space.go
+++ b/space/spacecore/space.go
@@ -5,22 +5,14 @@ import (
"time"
"github.com/anyproto/any-sync/commonspace"
-
- "github.com/anyproto/anytype-heart/core/syncstatus/objectsyncstatus"
)
-func newAnySpace(cc commonspace.Space, status syncStatusService, statusWatcher objectsyncstatus.StatusWatcher) (*AnySpace, error) {
- return &AnySpace{
- Space: cc,
- status: status,
- statusWatcher: statusWatcher,
- }, nil
+func newAnySpace(cc commonspace.Space) (*AnySpace, error) {
+ return &AnySpace{Space: cc}, nil
}
type AnySpace struct {
commonspace.Space
- status syncStatusService
- statusWatcher objectsyncstatus.StatusWatcher
}
func (s *AnySpace) Init(ctx context.Context) (err error) {
@@ -28,7 +20,6 @@ func (s *AnySpace) Init(ctx context.Context) (err error) {
if err != nil {
return
}
- s.status.RegisterSpace(s, s.statusWatcher)
return
}
@@ -37,6 +28,5 @@ func (s *AnySpace) TryClose(objectTTL time.Duration) (close bool, err error) {
}
func (s *AnySpace) Close() (err error) {
- s.status.UnregisterSpace(s)
return s.Space.Close()
}
diff --git a/space/spacecore/storage/sqlitestorage/service.go b/space/spacecore/storage/sqlitestorage/service.go
index 39daf2703..fed45cd03 100644
--- a/space/spacecore/storage/sqlitestorage/service.go
+++ b/space/spacecore/storage/sqlitestorage/service.go
@@ -30,6 +30,7 @@ var (
type configGetter interface {
GetSpaceStorePath() string
+ GetTempDirPath() string
}
type storageService struct {
@@ -64,6 +65,7 @@ type storageService struct {
getBind *sql.Stmt
}
dbPath string
+ dbTempPath string
lockedSpaces map[string]*lockSpace
ctx context.Context
@@ -88,6 +90,7 @@ func New() *storageService {
func (s *storageService) Init(a *app.App) (err error) {
s.dbPath = a.MustComponent("config").(configGetter).GetSpaceStorePath()
+ s.dbTempPath = a.MustComponent("config").(configGetter).GetTempDirPath()
s.lockedSpaces = map[string]*lockSpace{}
if s.checkpointAfterWrite == 0 {
s.checkpointAfterWrite = time.Second
@@ -123,6 +126,13 @@ func (s *storageService) Run(ctx context.Context) (err error) {
return
}
s.writeDb.SetMaxOpenConns(1)
+ if s.dbTempPath != "" {
+ if _, err = s.writeDb.Exec("PRAGMA temp_store_directory = '" + s.dbTempPath + "';"); err != nil {
+ log.Error("write:: failed to set temp store directory", zap.Error(err))
+ return
+ }
+ }
+
if _, err = s.writeDb.Exec(sqlCreateTables); err != nil {
log.With(zap.String("db", "spacestore_sqlite"), zap.String("type", "createtable"), zap.Error(err)).Error("failed to open db")
return
@@ -132,6 +142,12 @@ func (s *storageService) Run(ctx context.Context) (err error) {
log.With(zap.String("db", "spacestore_sqlite"), zap.String("type", "read"), zap.Error(err)).Error("failed to open db")
return
}
+ if s.dbTempPath != "" {
+ if _, err = s.readDb.Exec("PRAGMA temp_store_directory = '" + s.dbTempPath + "';"); err != nil {
+ log.Error("read:: failed to set temp store directory", zap.Error(err))
+ return
+ }
+ }
s.readDb.SetMaxOpenConns(10)
if err = initStmts(s); err != nil {
diff --git a/space/spacecore/storage/sqlitestorage/service_test.go b/space/spacecore/storage/sqlitestorage/service_test.go
index 3d5ed4bab..279b79aa0 100644
--- a/space/spacecore/storage/sqlitestorage/service_test.go
+++ b/space/spacecore/storage/sqlitestorage/service_test.go
@@ -195,6 +195,9 @@ type testConfig struct {
func (t *testConfig) GetSpaceStorePath() string {
return filepath.Join(t.tmpDir, "spaceStore.db")
}
+func (t *testConfig) GetTempDirPath() string {
+ return ""
+}
func (t *testConfig) Init(a *app.App) (err error) {
return nil
diff --git a/util/persistentqueue/queue.go b/util/persistentqueue/queue.go
index ddf4dca3c..2b0afad76 100644
--- a/util/persistentqueue/queue.go
+++ b/util/persistentqueue/queue.go
@@ -312,6 +312,7 @@ func (q *Queue[T]) notifyWaiters() {
for _, w := range q.waiters {
close(w.waitCh)
}
+ q.waiters = nil
q.currentProcessingKey = nil
}